Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кодирование и шифрование информации в радиоэлектронных системах передачи информации

..pdf
Скачиваний:
16
Добавлен:
05.02.2023
Размер:
20.44 Mб
Скачать

471

непредсказуемым образом, а при расшифровании блока в режиме гаммирования изменения предсказуемы. В режиме гаммирования с обратной связью искаженными оказываются два блока, один предсказуемым, а другой непредсказуемым образом. Значит ли это, что с точки зрения защиты от навязывания ложных данных режим гаммирования является плохим, а

режимы простой замены и гаммирования с обратной связью хорошими? Ни в коем случае.

При анализе данной ситуации необходимо учесть то, что непредсказуемые изменения в расшифрованном блоке данных могут быть обнаружены только в случае избыточности этих самых данных, причем чем больше степень избыточности, тем вероятнее обнаружение искажения. Очень большая избыточность имеет место, например, для текстов на естественных и искусственных языках, в этом случае факт искажения обнаруживается практически неизбежно. Однако в других случаях, например, при искажении сжатых звуковых образов, мы получим просто другой образ, который сможет воспринять наше ухо.

Искажение в этом случае останется необнаруженным, если, конечно, нет априорной информации о характере звука. Вывод здесь такой: поскольку способность некоторых режимов шифрования обнаруживать искажения, внесенные в шифрованные данные,

существенным образом опирается на наличие и степень избыточности шифруемых данных,

эта способность не является имманентным (внутренне присущим) свойством соответствующих режимов и не может рассматриваться как их достоинство.

Для решения задачи обнаружения искажений в зашифрованном массиве данных с заданной вероятностью в ГОСТе предусмотрен дополнительный режим криптографичес-

кого преобразования – выработка имитовставки. Имитовставка – это контрольная ком-

бинация, зависящая от открытых данных и секретной ключевой информации. Целью использования имитовставки является обнаружение всех случайных или преднамеренных изменений в массиве информации. Проблема, изложенная в предыдущем пункте, может быть успешно решена с помощью добавления к шифрованным данным имитовставки. Для потенциального злоумышленника две следующие задачи практически неразрешимы, если он не владеет ключевой информацией:

вычисление имитовставки для заданного открытого массива информации;

подбор открытых данных под заданную имитовставку;

Схема алгоритма выработки имитовставки приведена на рисунке 2.7.

472

Начало (Tо)

S = 0

i = 1 .. n

S = Ц16-З (S Т iо )

И = (s0, s1, …, sr–1)

Конец (И)

Рис. 7.7. Алгоритм выработки имитовставки для массива данных

В качестве имитовставки берется часть блока, полученного на выходе, обычно 32 его младших бита. При выборе размера имитовставки надо принимать во внимание, что вероятность успешного навязывания ложных данных равна величине 2–|И| на одну попытку подбора. При использовании имитовставки размером 32 бита эта вероятность равна 2–32

0,23 10–9.

Американский стандарт шифрования данных DES

Стандарт шифрования данных DES (Data Encryption Standard) опубликован Национальным бюро стандартов США в 1977 г. В 1980 г. этот алгоритм был принят Нацио-

нальным институтом стандартов и технологий США (НИСТ) в качестве стандарта шифрования данных для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США.

Основные достоинства алгоритма DES:

простота ключевой системы (используется только один ключ длиной 56

бит);

относительная простота алгоритма обеспечивает высокую скорость аппаратной и программной реализации;

достаточно высокая криптографическая стойкость алгоритма шифрования.

Алгоритм DES использует комбинацию подстановок и перестановок. DES осуществляет шифрование 64-битовых блоков данных с помощью 56-битового ключа k, в котором значащими являются 56 бит (остальные 8 бит – проверочные биты для контроля на четность). Дешифрование в DES является операцией, обратной шифрованию, и выполняется

473

путем повторения операций шифрования в обратной последовательности. Структура алго-

ритма DES изображена на рисунке 2.8.

Li, Ri – левая и правая половины 64-битового блока;

– операция побитового сложения блоков по модулю 2 (XOR); ki – 48-битовые ключи, получаемые из исходного ключа k;

f – функция шифрования;

IP – начальная перестановка степени 64.

Рис. 7.8. Структура алгоритма DES

474

Процесс шифрования состоит в начальной перестановке битов 64-битового входного блока, шестнадцати циклах шифрования и, наконец, конечной перестановке битов.

Отметим, что все приводимые ниже таблицы являются стандартными и должны использоваться при реализации алгоритма DES в неизменном виде. Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс вскрытия шифра путем подбора ключа.

При зашифровании очередного блока Т его биты подвергаются начальной перестановке

IP согласно приводимой таблице 7.1.

Таблица 7.1. Начальная перестановка IP

8

0

2

4

6

8

0

 

 

 

 

 

 

 

 

 

0

2

4

6

8

0

2

 

 

 

 

 

 

 

 

 

2

4

6

8

0

2

4

 

 

 

 

 

 

 

 

 

4

6

8

0

2

4

6

 

 

 

 

 

 

 

 

 

7

9

1

3

5

7

 

 

 

 

 

 

 

 

 

 

9

1

3

5

7

9

1

 

 

 

 

 

 

 

 

 

1

3

5

7

9

1

3

 

 

 

 

 

 

 

 

 

3

5

7

9

1

3

5

 

 

 

 

 

 

 

 

 

При этом бит 58 блока T становится битом 1, бит 50 – битом 2 и т. д. Полученный после перестановки блок IP(T) разделяется на две половины: L0, состоящую из 32 старших бит, и

R0, состоящую из 32 младших бит.

Затем выполняется итеративный процесс шифрования, состоящий из 16 циклов преобразования Фейстеля. Пусть Ti–1 = Li–1Ri–1 – результат (i – 1)-й итерации.

Тогда результат i-й итерации Ti = LiRi определяется формулами

475

Li

Ri 1

,

 

 

 

 

(6)

R

 

 

R

 

 

 

L

f

, k

, i 1,16.

i

i 1

i

i 1

i

 

 

 

Функция f называется функцией шифрования. Ее аргументами являются 32-битовый вектор Ri–1 и 48-битовый ключ ki, который является результатом преобразования 56-битового ключа шифра k. Результатом последней итерации является блок T16 = L16R16. По окончании шифрования осуществляется восстановление позиций битов применением к T16 обратной перестановки IP–1.

При расшифровании данных все действия выполняются в обратном порядке, при этом вместо соотношений (4.2) следует пользоваться соотношениями

R

L ,

 

 

 

 

 

 

Li 1

Ri

f

 

L , k

 

, i

 

 

i

i

16,1,

i 1

i

 

i

 

 

 

пользуясь которыми можно "спуститься" от L16 и R16 к R0 и L0.

Схема вычисления значения функции шифрования f(Ri–1, ki) изображена на рисунке 2.9.

Рис. 7.9. Схема вычисления функции шифрования f

Для вычисления значения функции f используются:

функция расширения Е;

преобразование S, составленное из восьми преобразований S-блоков S1,

S2, …, S8;

476

перестановка Р.

Аргументами функции f являются вектор Ri–1 (32 бита) и вектор ki (48 бит). Функция Е

"расширяет" 32-битный вектор Ri–1 до 48-битного вектора E(Ri–1) путем дублирования некоторых битов вектора Ri–1, при этом порядок следования битов в E(Ri–1) указан в таблице

2.2.

Таблица 7.2. Функция расширения E

32

1

2

3

4

5

 

 

 

 

 

 

4

5

6

7

8

9

 

 

 

 

 

 

8

9

10

11

12

13

 

 

 

 

 

 

12

13

14

15

16

17

 

 

 

 

 

 

16

17

18

19

20

21

 

 

 

 

 

 

20

21

22

23

24

25

 

 

 

 

 

 

24

25

26

27

28

29

 

 

 

 

 

 

28

29

30

31

32

1

 

 

 

 

 

 

Первые три бита в E(Ri–1) – это соответственно биты 32, 1 и 2 вектора Ri–1, а последние три бита – это соответственно биты 31, 32, 1 вектора Ri–1.

Полученный результат складывается побитно по модулю 2 с текущим значением ключа ki и затем представляется в виде восьми последовательных 6-битовых блоков B1, B2, …, B8:

E(Ri–1) ki = B1 B8.

Далее каждый из блоков Bj трансформируется в 4-битовый блок B j с помощью подходящей таблицы S-блока Sj, список которых приведен в таблице 3.

477

Таблица 7.3. Функция преобразования S

Преобразование блока Bj и B j осуществляется следующим образом. Пусть, например, В2

равен 111010. Первый и последний разряды B2 являются двоичной записью числа a, 0 a 3.

Аналогично средние 4 разряда представляют число b, 0 b 15. В нашем примере a = 2, b = 13.

Строки и столбцы таблицы S2 пронумерованы числами a и b. Таким образом, пара (a, b)

однозначно определяет число, находящееся на пересечении строки с номером a и столбца с номером b. В данном случае это число равно 3. Записывая его в двоичной форме, получаем

B 2, равный 0011.

478

Значение f(Ri–1, ki) теперь получается применением перестановки битов P, заданной таблицей к результирующему 32-битовому блоку B 1, B 2, …, B 8.

Таблица 7.4. Функция P перестановки битов

16

7

20

21

 

 

 

 

29

12

28

17

 

 

 

 

1

15

23

26

 

 

 

 

5

18

31

10

 

 

 

 

2

8

24

14

 

 

 

 

32

27

3

9

 

 

 

 

19

13

30

6

 

 

 

 

22

11

4

25

 

 

 

 

На каждой итерации используется текущее значение ключа ki (48 бит), получаемое из исходного ключа k следующим образом.

Сначала пользователи выбирают сам ключ k, содержащий 56 случайных значащих битов.

Восемь битов, находящихся в позициях 8,16,...,64, добавляются в ключ таким образом, чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Значащие 56 бит ключа подвергаются перестановке,

приведенной в таблице 7.5.

Таблица 7.5. Функция первоначальной подготовки ключа

 

4

3

2

1

57

 

 

 

9

9

1

3

5

7

 

5

4

3

2

1

 

 

 

18

8

0

2

4

6

 

5

5

4

3

10

 

 

 

27

 

9

1

3

5

 

 

6

5

4

19

3

 

 

36

1

 

0

2

4

 

 

 

 

 

 

4

3

3

2

63

 

 

 

15

5

7

9

1

3

 

5

4

3

3

7

 

 

 

22

2

4

6

8

0

 

 

 

 

 

479

 

6

5

4

3

14

 

 

 

29

1

 

3

5

7

 

 

2

2

1

21

5

 

 

4

3

 

8

0

2

 

 

 

 

 

Эта перестановка определяется двумя блоками C0 и D0 по 28 бит в каждом (они занимают соответственно верхнюю и нижнюю половины таблицы). Так, первые три бита в C0 есть

соответственно 57, 49, 41 биты ключа. Затем индуктивно определяются блоки Ci и Di = 1,16 .

Если уже определены Ci–1 и Di–1, то Ci и Di получаются из них одним или двумя левыми циклическими сдвигами согласно таблице 7.6.

Таблица 7. 6. Таблица сдвигов для вычисления ключа

i

0

1

2

3

4

5

6

Число сдвигов

Теперь определим ключи ki, 1 i 16. Ключ ki состоит из 48 битов, выбираемых из битов блока CiDi согласно таблице 7. Первыми тремя битами в ki являются биты 14, 17, 11 из блока

CiDi. Отметим, что 8 из 56 бит (с номерами 9, 18, 22, 25, 35, 38, 43, 54) из CiDi отсутствуют в ki.

Таблица 7.7. Функция завершающей обработки ключа

14

17

11

24

1

5

 

 

 

 

 

 

3

28

15

6

21

10

 

 

 

 

 

 

23

19

12

4

26

8

 

 

 

 

 

 

16

7

27

20

13

2

 

 

 

 

 

 

41

52

31

37

47

55

 

 

 

 

 

 

30

40

51

45

33

48

 

 

 

 

 

 

44

49

39

56

34

53

 

 

 

 

 

 

46

42

50

36

29

32

 

 

 

 

 

 

Официально DES являлся стандартом шифрования данных до 31 декабря 1998 г. В 1997

г. был объявлен конкурс на новый стандарт, который был назван AES (Advanced Encryption Standard). 2 октября 2000 г. Национальный институт стандартов и технологий (НИСТ) США объявил победителя конкурса AES. Однако для того, чтобы этот алгоритм завоевал мировое

480

признание, необходимы серьезные исследования его свойств специалистами различных стран.

Основные режимы шифрования

Алгоритм DES вполне подходит как для шифрования, так и для аутентификации данных.

Он позволяет непосредственно преобразовывать 64-битовый входной открытый текст в 64-

битовый выходной шифрованный текст, однако данные редко ограничиваются 64 разрядами.

Чтобы использовать алгоритм DES для решения разнообразных криптографических задач, разработаны четыре режимах:

режим электронной кодовой книги (ЕСВ – Electronic Code Book);

режим сцепления блоков шифра (СВС – Cipher Block Chaining);

режим обратной связи по шифртексту (CFB – Cipher Feed Back);

режим обратной связи по выходу (OFB – Output Feed Back).

Лабораторная работа №1

Изучение стандарта криптографической защиты AES (Advanced Encryption Standart)

Цель работы

Ознакомиться с криптографическим стандартом шифрования AES и его особенностями,

изучить различными режимами блочного шифрования.

Краткие теоретические сведения

Историческая справка

В 1997 г. Национальный институт стандартов и технологий США (NIST) объявил о начале программы по принятию нового стандарта криптографической защиты - стандарта

XXI в. для закрытия важной информации правительственного уровня на замену существующему с 1974 г. алгоритму DES, самому распространенному криптоалгоритму в мире.

Требования к кандидатам были следующие:

криптоалгоритм должен быть открыто опубликован;

криптоалгоритм должен быть симметричным блочным шифром, допускающим размеры ключей в 128, 192 и 256 бит;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]