Популярные услуги

Курсовой проект по деталям машин под ключ
ДЗ по ТММ в бауманке
Все лабораторные под ключ! КМ-1. Комбинационные логические схемы + КМ-2. Комбинационные функциональные узлы и устройства + КМ-3. Проектирование схем
КМ-3. Типовое задание к теме прямые измерения. Контрольная работа (ИЗ1) - любой вариант!
Любая лабораторная в течение 3 суток! КМ-1. Комбинационные логические схемы / КМ-2. Комбинационные функциональные узлы и устройства / КМ-3. Проектирование схем
КМ-2. Выпрямители. Письменная работа (Электроника семинары)
Допуски и посадки и Сборочная размерная цепь + Подетальная размерная цепь
ДЗ по матведу любого варианта за 7 суток
Курсовой проект по деталям машин под ключ в бауманке
Задача по гидравлике/МЖГ

Современные симметричные криптосистемы

2021-03-09СтудИзба

3. Современные симметричные криптосистемы

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

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

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

         В составных шифрах в качестве простых шифров чаще всего используются простые перестановки и подстановки. При перестановке просто перемешивают символы открытого текста, причем конкретный вид перемешивания определяется секретным ключом. При подстановке каждый символ открытого текста заменяют другим символом из того же алфавита, а конкретный вид подстановки также определяется секретным ключом. Следует заметить, что в современном блочном шифре блоки открытого текста и шифртекста представляют собой двоичные последовательности обычно длиной 64 бита. В принципе каждый блок может принимать 264 значений. Поэтому подстановки выполняются в очень большом алфавите, содержащем до 264  1019 "символов".

         При многократном чередовании простых перестановок и подстановок, управляемых достаточно длинным секретным ключом, можно получить очень стойкий шифр с хорошим рассеиванием и перемешиванием. Рассмотренные ниже криптоалгоритмы DES, IDEA и отечественный стандарт шифрования данных построены в полном соответствии с указанной методологией.

3.1 Классическая сеть Фейстеля

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

         Структура классической сети Фейстеля показана на рис. 3.1

Рекомендуемые материалы

.

Рисунок 3.1 – Структура классической сети Фейстеля

         Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме Фейстеля их две. Величины Vi называются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функциии и последующего наложения ее результата на другую ветвь с обменом местами называется циклом или раундом сети Фейстеля. Оптимальное число раундов K − от 8 до 32.

         Увеличение количества раундов значительно повышает криптостойкость любого симметричного блочного шифра. Благодаря этой особенности сети Фейстеля получили широкое распространение – при обнаружении слабого места в алгоритме почти всегда достаточно не переписывая сам алгоритм увеличить количество раундов на 4-8.

         В соответствии с описанной методикой построены блочные симметричные криптоалгоритмы DES, IDEA, ГОСТ 28147-89 и ряд других алгоритмов.

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

            Стандарт шифрования данных DES (Data Encryption Standard) опубликован в 1977 г. Национальным бюро стандартов США. Стандарт DES предназначен  для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США. Алгоритм, положенный в основу стандарта, распространялся достаточно быстро, и уже в 1980 г. был одобрен Национальным институтом стандартов и технологий США (НИСТ). С этого момента DES превращается в стандарт не только по названию (Data Encryption Standard), но и фактически. Появляются программное обеспечение и специализированные микроЭВМ, предназначенные для шифрования и расшифрования информации в сетях передачи данных.

К настоящему времени DES является наиболее распространенным алгоритмом, используемым в системах защиты коммерческой информации. Более того, реализация алгоритма DES в таких системах становится признаком хорошего тона.

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

· используется только один ключ длиной 56 бит;

· зашифровав сообщение с помощью одного пакета программ, для расшифровки можно использовать любой другой пакет программ, соответствующий стандарту DES;

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

· достаточно высокая стойкость алгоритма.

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


Рисунок 3.2 – Обобщенная  схема  шифрования  в  алгоритме  DES

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

         Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа. При описании алгоритма DES (рис. 3.3) применены следующие обозначения:

L и R – последовательности битов (левая (left) и правая (right));

Рисунок 3.3 – Структура  алгоритма DES

LR – конкатенация последовательностей L и R, т.е. такая последовательность битов, длина которой равна сумме длин L и R; в последовательности LR биты последовательности R следуют за битами последовательности L;

 – операция побитового сложения по модулю 2.

            Пусть из файла исходного текста считан очередной 64-битовый (8-байтовый) блок Т. Этот блок Т преобразуется с помощью матрицы начальной перестановки IP (табл. 3.1).

                                                                                               Таблица 3.1

Матрица начальной перестановки IP

58

50

42

34

26

18

10

2

60

52

44

36

28

20

12

4

62

54

46

38

30

22

14

6

64

56

48

40

32

24

16

8

57

49

41

33

25

17

  9

1

59

51

43

35

27

19

11

3

61

53

45

37

29

21

13

5

63

55

47

39

31

23

15

7

            Биты входного блока Т (64 бита) переставляются в соответствии с матрицей IP: бит 58 входного блока Т становится битом 1, бит 50 – битом 2 и т.д. Эту перестановку можно описать выражением  Т0 = IP(T). Полученная последовательность битов  Т0  разделяется на две последовательности: L0 – левые или старшие биты,  R0 – правые  или  младшие  биты, каждая из которых содер-жит 32 бита.

         Затем выполняется итеративный процесс шифрования, состоящий из 16 шагов (циклов). Пусть Тi – результат i-й итерации:

Тi = Li Ri,

где  Li = t1 t2 ... t32  (первые 32 бита);  Ri = t33 t34 ... t64 (последние 32 бита). Тогда результат i-й итерации описывается следующими формулами:

Li = Ri–1,   i = 1, 2, ..., 16;

Ri = Li–1  f (Ri–1, Ki),   i =  1, 2, ..., 16.

Функция f называется функцией шифрования. Ее аргументами являются последовательность Ri–1, получаемая на предыдущем шаге итерации, и 48-битовый ключ  Кi, который является результатом преобразования 64-битового ключа шифра К. (Подробнее функция шифрования  f  и алгоритм получения ключа  Кi  описаны ниже.)

         На последнем шаге итерации получают последовательности R16 и L16 (без перестановки местами), которые конкатенируются в 64-битовую последовательность  R16 L16.

         По окончании шифрования осуществляется восстановление  позиций  битов  с  помощью  матрицы  обратной перестановки IP–1 (табл.3.2).


                                                                                               Таблица 3.2

Матрица обратной перестановки IP–1

40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

31

38

6

46

14

54

22

62

30

37

5

45

13

53

21

61

29

36

4

44

12

52

20

60

28

35

3

43

11

51

19

59

27

34

2

42

10

50

18

58

26

33

1

41

  9

49

17

57

25

Пример того, как соотносятся элементы первой строки матрицы IP–1 с элементами матрицы IP приведен в табл. 3.3.

Таблица 3.3

Связь элементов матриц

Элемент матрицы IP–1

Элемент матрицы IP

            40

              8

            48

            16

            56

             ...

01

02

03

04

05

...

            Процесс расшифрования данных является инверсным по отношению к процессу шифрования. Все действия должны быть выполнены в обратном порядке. Это означает, что расшифровываемые данные сначала переставляются в соответствии с матрицей IP–1, а затем над последовательностью битов  R16L16  выполняются те же действия, что и в процессе шифрования, но в обратном порядке.

         Итеративный процесс расшифрования может быть описан следующими формулами:

Ri–1 = Li,   i = 1, 2, ..., 16;

Li–1 = Ri  f (Li, Ki),   i = 1, 2, ..., 16.         Таким образом, для процесса расшифрования с переставленным входным блоком R16L16 на первой итерации используется ключ  К16, на второй итерации – К15  и т.д. На 16-й итерации используется ключ К1. На последнем шаге итерации будут получены последовательности L0 и R0, которые конкатенируются в 64‑битовую последовательность L0R0. Затем в этой последовательности 64 бита переставляются в соответствии с матрицей IP. Результат такого преобразования – исходная последовательность битов (расшифрованное 64-битовое значение).

         Теперь рассмотрим, что скрывается под преобразованием, обозначенным буквой  f. Схема вычисления функции шифрования f (Ri–1,Ki) показана на рис. 3.4.


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

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

· функция Е (расширение 32 бит до 48);

· функция S1, S2, ..., S8 (преобразование 6-битового числа в 4-битовое);

· функция  Р  (перестановка  битов  в 32-битовой последователь-

     ности).

         Приведем определения этих функций.

         Аргументами функции шифрования f являются  Ri–1 (32 бита) и Ki (48 бит). Результат функции  Е (Ri–1)  есть 48-битовое число. Функция расширения Е, выполняющая расширение 32 бит до 48 (принимает блок из 32 бит и порождает блок из 48 бит), определяется табл. 3.4.

В соответствии с табл. 3.4 первые три бита E (Ri–1) – это биты 32, 1 и 2, а последние – 31, 32, 1. Полученный результат (обозначим его E(Ri–1)) складывается по модулю 2 (операция XOR) с текущим значением

                                                                                     Таблица 3.4

Функция расширения 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

ключа Кi и затем разбивается на восемь 6-битовых блоков В1, В2, ..., В8:

Е (Ri–1)  Кi = В1 В2 ... В8.

Далее каждый из этих блоков используется как номер элемента в функциях-матрицах S1, S2, ..., S8, содержащих 4-битовые значения (табл. 3.5).

Таблица 3.5

Функции преобразования S1, S2, ..., S8

Номер столбца

  0

  1

  2

  3

  4

  5

  6

  7

  8

  9

10

11

12

13

14

15

0

14

  4

13

  1

  2

15

11

  8

  3

10

  6

12

  5

  9

  0

  7

1

  0

15

  7

  4

14

  2

13

  1

10

  6

12

11

  9

  5

  3

  8

S1

2

  4

  1

  4

  8

13

  6

  2

11

15

12

  9

  7

  3

10

  5

  0

3

15

12

  8

  2

  4

  9

  1

  7

  5

11

  3

14

10

  0

  6

13

0

15

  1

  8

14

  6

11

  3

  4

  9

  7

  2

13

12

  0

  5

10

1

  3

13

  4

  7

15

  2

  8

14

12

  0

  1

10

  6

  9

11

  5

S2

2

  0

14

  7

11

10

  4

13

  1

  5

  8

12

  6

  9

  3

  2

15

3

13

  8

10

  1

  3

15

  4

  2

11

  6

  7

12

  0

  5

14

  9

0

10

  0

  9

14

  6

  3

15

  5

  1

13

12

  7

11

  4

  2

  8

1

13

  7

  0

  9

  3

  4

  6

10

  2

  8

  5

14

12

11

15

  1

S3

2

13

  6

  4

  9

  8

15

  3

  0

11

  1

  2

12

  5

10

14

  7

Н

3

  1

10

13

  0

  6

  9

  8

  7

  4

15

14

  3

11

  5

  2

12

о

0

  7

13

14

  3

  0

  6

  9

10

  1

  2

  8

  5

11

12

  4

15

м

1

13

  8

11

  5

  6

15

  0

  3

  4

  7

  2

12

  1

10

14

  9

S4

е

2

10

  6

  9

  0

12

11

  7

13

15

  1

  3

14

  5

  2

  8

  4

р

3

  3

15

  0

  6

10

  1

13

  8

  9

  4

  5

11

12

  7

  2

14

0

  2

12

  4

  1

  7

10

11

  6

  8

  5

  3

15

13

  0

14

  9

1

14

11

  2

12

  4

  7

13

  1

  5

  0

15

10

  3

  9

  8

  6

S5

с

2

  4

  2

  1

11

10

13

  7

  8

15

  9

12

  5

  6

  3

  0

14

т

3

11

  8

12

  7

  1

14

  2

13

  6

15

  0

  9

10

  4

  5

  3

р

0

12

  1

10

15

  9

  2

  6

  8

  0

13

  3

  4

14

  7

  5

11

о

1

10

15

  4

  2

  7

12

  9

  5

  6

  1

13

14

  0

11

  3

  8

S6

к

2

  9

14

15

  5

  2

  8

12

  3

  7

  0

  4

10

  1

13

  1

  6

и

3

  4

  3

  2

12

  9

  5

15

10

11

14

  1

  7

  6

  0

  8

13

0

  4

11

  2

14

15

  0

  8

13

  3

12

  9

  7

  5

10

  6

  1

1

13

  0

11

  7

  4

  9

  1

10

14

  3

  5

12

  2

15

  8

  6

S7

2

  1

  4

11

13

12

  3

  7

14

10

15

  6

  8

  0

  5

  9

  2

3

  6

11

13

  8

  1

  4

10

  7

  9

  5

  0

15

14

  2

  3

12

0

13

  2

  8

  4

  6

15

11

  1

10

  9

  3

14

  5

  0

12

  7

1

  1

15

13

  8

10

  3

  7

  4

12

  5

  6

11

  0

14

  9

  2

S8

2

  7

11

  4

  1

  9

12

14

  2

  0

  6

10

13

15

  3

  5

  8

3

  2

  1

14

  7

  4

10

  8

13

15

12

  9

  0

  3

  5

  6

11

         Следует отметить, что выбор элемента в матрице Sj осуществляется достаточно оригинальным образом. Пусть на вxод матрицы  Sj  поступает 6-битовый блок  Bj = b1 b2 b3 b4 b5 b6, тогда двухбитовое число  b1 b6  указывает номер строки матрицы, а четырехбитовое число  b2 b3 b4 b5 – номер столбца. Например, если на вход матрицы S1 поступает 6-битовый блок В1= b1 b2 b3 b4 b5 b6 = 100110, то 2-битовое число  b1 b6 = 10(2) = 2(10)  указывает строку с номером 2 матрицы S1, а 4‑битовое число  b2 b3 b4 b5=0011(2)=3(10)  указывает столбец с номером  3  матрицы S1. Это означает, что в матрице S1 блок В1 = 100110 выбирает элемент на пересечении строки  с  номером  2  и  столбца  с  номером  3, т.е. элемент 8(10) =

=1000(2). Совокупность 6-битовых блоков В1, В2,..., В8 обеспечивает выбор четырехбитового элемента в каждой из матриц S1, S2, ..., S8.

         В результате получаем S11) S22) S33) ... S88), т.е. 32‑битовый блок (поскольку матрицы Sj содержат 4-битовые элементы). Этот 32-битовый блок преобразуется с помощью функции перестановки битов Р (табл.3.6).

         Таким образом, функция шифрования

f (Ri–1, Ki) = P(S1(B1), ..., S8(B8)).

         Как нетрудно заметить, на каждой итерации используется новое значение ключа Кi (длиной 48 бит). Новое значение ключа  Кi  вычисляется из начального ключа  К  (рис.3.5). Ключ К представляет собой 64‑битовый блок с 8 битами контроля по четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64. Для удаления контрольных битов и подготовки ключа к работе используется функция G первоначальной подготовки ключа (табл. 3.7).

Рисунок 3.5 – Схема алгоритма вычисления ключей Ki   Табл. 3.7 разделена на две части. Результат преобразования G(K)  разбивается на две половины С0 и D0 по 28 бит каждая. Первые  четыре  строки  матрицы  G  определяют,  как   выбираются биты последовательности С0  (первым  битом  С0 будет  бит  57 ключа шифра, затем бит 49 и т.д., а последними битами – биты 44 и 36 ключа).

Таблица 3.6

Таблица 3.7

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

Функция G первоначальной подготовки ключа (переставленная выборка 1)

16

  7

20

21

57

49

41

33

25

17

  9

29

12

28

17

  1

58

50

42

34

26

18

  1

15

23

26

10

  2

59

51

43

35

27

  5

18

31

10

19

11

  3

60

52

44

36

  2

  8

24

14

63

55

47

39

31

23

15

32

27

  3

  9

  7

62

54

46

38

30

22

19

13

30

  6

14

  6

61

53

45

37

29

22

11

  4

25

21

13

  5

28

20

12

4

         Следующие четыре строки матрицы G определяют, как выбираются биты последовательности D0 (т.е. последовательность D0 будет состоять из битов 63, 55, 47, ...,12, 4 ключа шифра).

         Как видно из табл. 3.7, для генерации последовательностей С0 и D0 не используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут служить для других целей (например, для контроля по четности). Таким образом, в действительности ключ шифра является 56-битовым.

         После определения С0 и  D0 рекурсивно определяются  Сi и Di, I = 1, 2, ..., 16. Для этого применяются операции циклического сдвига влево на один или два бита в зависимости от номера шага итерации, как показано в табл. 3.8.

         Операции сдвига выполняются для последовательностей  Сi и  Di  независимо. Например, последовательность С3 получается посредством циклического сдвига влево на две позиции последовательности С2, а последовательность D3 – посредством сдвига влево на две позиции последовательности D2, С16 и D16 получаются из С15 и D15 посредством сдвига влево на одну позицию.

Таблица 3.8

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

Номер итерации

Количество si сдвигов влево, бит

Номер итерации

Количество si сдвигов влево, бит

1

1

           9

1

2

1

         10

2

3

2

         11

2

4

2

         12

2

5

2

         13

2

6

2

         14

2

7

2

         15

2

8

2

         16

1

            Ключ Кi, определяемый на каждом шаге итерации, есть результат выбора конкретных битов из 56-битовой последовательности  Сi Di  и их перестановки. Другими словами, ключ Кi=H(Сi Di), где функция H определяется матрицей, завершающей обработку ключа (табл. 3.9).

                                                                                             Таблица 3.9

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

(переставленная выборка 2)

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

            Как следует из табл.3.9, первым битом ключа  Кi будет 14-й бит последовательности  Сi Di, вторым – 17-й бит, 47-м битом ключа  Кi  будет 29-й бит  Сi Di, а 48-м битом – 32-й бит  Сi Di.

3.2.1. Основные режимы работы алгоритма DES

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

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

· электронная кодовая книга ECB (Electronic Code Book);

· сцепление блоков шифра CBC (Cipher Block Chaining);

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

· обратная связь по выходу OFB (Output Feed Back).

Режим "Электронная кодовая книга"

         Длинный файл разбивают на 64-битовые отрезки (блоки) по 8 байтов. Каждый из этих блоков шифруют независимо с использованием одного и того же ключа шифрования (рис.3.6).

         Основное достоинство – простота реализации. Недостаток – относительно слабая  устойчивость  против  квалифицированных криптоаналитиков. Из-за фиксированного характера шифрования при ограниченной длине блока 64 бита возможно проведение криптоанализа "со словарем". Блок такого размера может повториться  в  сообщении  вследствие  большой избыточности в тексте на естественном языке.

Рисунок 3.6 – Схема алгоритма DES в режиме электронной кодовой  книги

Это приводит к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками шифртекста, что дает криптоаналитику некоторую информацию о содержании сообщения.

Режим "Сцепление блоков шифра"

         В этом режиме исходный файл М разбивается на 64-битовые блоки: М = М1М2...Мn. Первый блок М1 складывается по модулю 2 с 64‑битовым начальным вектором IV, который меняется ежедневно и держится в секрете (рис.3.7). Полученная сумма затем шифруется с использованием ключа DES, известного и отправителю, и получателю информации. Полученный 64-битовый шифр С1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64‑битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста.

         Таким образом, для всех  i = 1…n (n – число блоков) результат шифрования  Сi  определяется  следующим  образом: Сi =

=DES (Мi  Ci–1), где С0 = IV – начальное значение шифра, равное начальному вектору (вектору инициализации).

            Очевидно, что последний 64-битовый блок шифртекста является функцией секретного  ключа, начального  вектора  и  каждого бита

Рисунок 3.7 – Схема алгоритма DES в режиме сцепления блоков шифра

открытого текста независимо от его длины. Этот блок шифртекста называют кодом аутентификации сообщения (КАС).

            Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением.

         Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче.

         Блок Мi является функцией только Сi–1 и Сi. Поэтому ошибка  при  передаче  приведет  к потере только двух блоков исходно-го текста.

Режим "Обратная связь по шифру"

         В этом режиме размер блока может отличаться от 64 бит (рис.3.8). Файл, подлежащий шифрованию (расшифрованию), считывается последовательными блоками длиной k битов (k =1…64).

            Входной блок (64-битовый регистр сдвига) вначале содержит вектор инициализации, выровненный по правому краю.

         Предположим, что в результате разбиения на блоки мы получили n блоков длиной k битов каждый (остаток дописывается нулями  или  пробелами).  Тогда  для  любого  i =1…n  блок шифр-текста

С i = Mi  Pi–1,

где Рi–1 обозначает k старших битов предыдущего зашифрованного блока.

         Обновление сдвигового регистра осуществляется путем удаления его старших k битов и записи  Сi  в регистр. Восстановление зашифрованных данных также выполняется относительно просто:  Рi–1  и  Сi  вычисляются аналогичным образом и

М i = С i  Рi–1.

Рисунок 3.8 – Схема алгоритма DES в режиме обратной связи по шифртексту

Режим "Обратная связь по выходу"

         Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме СFB, а именно – входной блок вначале содержит вектор инициализации IV, выровненный по правому краю (рис.3.9). При этом для  каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом.

         Положим

М = М 1 М 2 ... Mn.

         Для всех  i = 1… n

С i = M i  Pi,

где Рi – старшие k битов операции DES (Сi–1).

         Отличие от режима обратной связи по шифртексту состоит в методе обновления сдвигового регистра.

            Это осуществляется путем отбрасывания старших k битов и дописывания справа Рi.

Рисунок 3.9 – Схема алгоритма DES в режиме обратной связи по выходу

3.3. Области применения алгоритма DES

            Каждому из рассмотренных режимов (ЕСВ, СВС, CFB, OFB) свойственны свои достоинства и недостатки, что обусловливает области их применения.

         Режим ЕСВ хорошо подходит для шифрования ключей: режим CFB, как правило, предназначается для шифрования отдельных символов, а режим OFB нередко применяется для шифрования в спутниковых системах связи.

         Режимы СВС и CFB пригодны для аутентификации данных. Эти режимы позволяют использовать алгоритм DES для:

· интерактивного шифрования при обмене данными между терминалом и главной ЭВМ;

· шифрования криптографического ключа в практике автоматизированного распространения ключей;

· шифрования файлов, почтовых отправлений, данных спутников и других практических задач.

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

         В системах автоматической обработки данных человек не в состоянии просмотреть данные, чтобы установить, не внесены ли в них какие-либо изменения. При огромных объемах данных, проходящих в современных системах обработки, просмотр занял бы слишком много времени. К тому же избыточность данных может оказаться недостаточной для обнаружения ошибок. Даже в тех случаях, когда просмотр человеком возможен, данные могут быть изменены таким образом, что обнаружить эти изменения человеку очень трудно. Например, "do" может быть заменено на "do not", "$1900" – на "$9100". Без дополнительной информации человек при просмотре может легко принять измененные данные за подлинные. Такие опасности могут существовать даже при использовании шифрования данных. Поэтому желательно иметь автоматическое средство обнаружения преднамеренных и непреднамеренных изменений данных.

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

         Этот процесс описывает стандарт для аутентификации данных ЭВМ (FIPS 113). Суть стандарта состоит в том, что данные зашифровываются в режиме обратной связи по шифртексту (режим CFB) или в режиме сцепления блоков шифра (режим СВС), в результате чего получается окончательный блок шифра, представляющий собой функцию всех разрядов открытого текста. После этого сообщение, которое содержит открытый текст, может быть передано с использованием вычисленного окончательного блока шифра, служащего в качестве криптографической контрольной суммы.

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

му тексту.

         Шифрование и аутентификацию используют для защиты данных, хранящихся в ЭВМ. Во многих ЭВМ пароли зашифровывают необратимым образом и хранят в памяти машины. Когда пользователь обращается к ЭВМ и вводит пароль, последний зашифровывается и сравнивается с хранящимся значением. Если обе зашифрованные величины одинаковы, пользователь получает доступ к машине, в противном случае следует отказ.

         Нередко зашифрованный пароль вырабатывают с помощью алгоритма DES, причем ключ полагается равным паролю, а открытый текст – коду идентификации пользователя.

         С помощью алгоритма DES можно также зашифровать файлы ЭВМ для их хранения.

         Одним из наиболее важных применений алгоритма DES является защита сообщений электронной системы платежей (ЭСП) при операциях с широкой клиентурой и между банками.

         Алгоритм DES реализуется в банковских автоматах, терминалах в торговых точках, автоматизированных рабочих местах и главных ЭВМ. Диапазон защищаемых им данных весьма широк – от оплат $50 до переводов на многие миллионы долларов. Гибкость основного алгоритма DES позволяет использовать его в самых разнообразных областях применения электронной системы платежей.

3.4. Комбинирование блочных алгоритмов

            В настоящее время блочный алгоритм DES считается относительно безопасным алгоритмом шифрования. Он подвергался тщательному криптоанализу в течение 20 лет, и самым практичным способом его взламывания является метод перебора всех возможных вариантов ключа. Ключ DES имеет длину 56 бит, поэтому существует 256 возможных вариантов такого ключа. Если предположить, что суперкомпьютер может испытать миллион вариантов ключа за секунду, то потребуется 2285 лет для нахождения правильного ключа. Если бы ключ имел длину 128 бит, то потребовалось бы 1025 лет (для сравнения: возраст Вселенной около 1010 лет).

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

         Возникает естественный вопрос: нельзя ли использовать DES в качестве строительного блока для создания другого алгоритма с более длинным ключом?

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

 не влияет   на   сложность   криптоаналитической   атаки  полного  перебора.

         Рассмотрим эффективность двухкратного шифрования блока открытого текста с помощью двух разных ключей. Сначала шифруют блок Р ключом К1, а затем получившийся шифртекст ЕК1(Р) шифруют ключом К2. В результате двухкратного шифрования получают криптограмму

С = ЕК2К1(Р)).

         Расшифрование является обратным процессом:

Р = DК1(DК2(C)).

         Если блочный алгоритм обладает свойствами группы, то всегда найдется такой ключ К3, что

С = ЕК2К1(Р)) = ЕК3(Р).

            Если же блочный алгоритм не является группой, то результирующий двухкратно шифрованный блок текста окажется намного сложнее для взламывания методом полного перебора вариантов. Вместо 2n попыток, где n – длина ключа в битах, потребуется  22n попыток. В частности, если n=64, то двухкратно зашифрованный  блок  текста  потребует  2128 попыток  для нахожде-ния ключа.

         Однако Р.Меркль и М.Хеллман показали на примере DES, что, используя метод "обмена времени на память" и криптоаналитическую атаку "встреча посредине", можно взломать такую схему двухкратного шифрования за 2n+1 попыток [34]. Хотя эта атака потребует очень большого объема памяти (для алгоритма с 56-битовым ключом потребуется 256 64-битовых блоков или 1017 бит памяти).

         Более привлекательную идею предложил У.Тачмен [125]. Суть этой идеи состоит в том, чтобы шифровать блок открытого текста Р три раза с помощью двух ключей К1 и К2 (рис.3.10). Процедура шифрования:

С = ЕК1(DК2 (EК1(Р))),

т.е. блок открытого текста Р сначала шифруется ключом К1, затем расшифровывается ключом К2 и окончательно зашифровывается ключом К1.

         Этот режим иногда называют режимом EDE (encrypt-decrypt-encrypt). Введение в данную схему операции расшифрования DК2 позволяет обеспечить совместимость этой схемы со схемой однократного использования алгоритма DES. Если в схеме трехкратного использования DES выбрать все ключи одинаковыми, то эта схема превращается в схему однократного использования DES.

Рисунок 3.10 – Схемы трехкратного применения алгоритма DES

с двумя разными ключами

Процедура расшифрования выполняется в обратном порядке:

Р = DК1К2(DК1(C))),

т.е. блок шифртекста С сначала расшифровывается ключом К1, затем зашифровывается ключом К2 и окончательно расшифровывается ключом К1.

         Если исходный блочный алгоритм имеет n-битовый ключ, то схема трехкратного шифрования имеет 2n-битовый ключ. Чередование ключей К1 и К2 позволяет предотвратить криптоаналитическую атаку "встреча посредине". Данная схема приводится в стандартах Х9.17 и ISO 8732 в качестве средства улучшения характеристик алгоритма DES.

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

С = ЕК3(DК2(EК1(P))),

Р = DК1К2(DК3(C))).

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

3.5. Алгоритм шифрования данных IDEA

            Алгоритм IDEA (International Data Encryption Algorithm) является блочным шифром. Он оперирует 64-битовыми блоками открытого текста. Несомненным достоинством алгоритма IDEA является то, что его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для расшифрования.

            Первая версия алгоритма IDEA была предложена в 1990 г., ее авторы – Х.Лей и Дж.Мэсси. Первоначальное название алгоритма PES (Proposed Encryption Standard). Улучшенный вариант этого алгоритма, разработанный в 1991 г., получил название IPES (Improved Proposed Encryption Standard). В 1992 г. IPES изменил свое имя на IDEA. Как и большинство других блочных шифров, алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, причем все процессы легко реализуются аппаратными и программными средствами.

         В алгоритме IDEA используются следующие математические операции:

· поразрядное сложение по модулю 2 (операция "исключающее ИЛИ"); операция обозначается как ;

· сложение беззнаковых целых по модулю 216 (модуль 65536); операция обозначается как ⊞ ;

· умножение целых по модулю (216+1) (модуль 65537), рассматриваемых как беззнаковые целые, за исключением того, что блок из 16 нулей рассматривается как 216; операция обозначается  как ⊙.

Все операции выполняются над 16-битовыми субблоками.

Эти три операции несовместимы в том смысле, что:

· никакая пара из этих трех операций не удовлетворяет ассоциативному закону,

например  a ⊞ (b  c)  (a ⊞ b)  c;

· никакая пара из этих трех операций не удовлетворяет дистрибутивному закону,

например  a ⊞ (b⊙ c)  (a ⊞ b)⊙ (a ⊞ c).

         Комбинирование этих трех операций обеспечивает комплексное  преобразование  входа, существенно  затрудняя крипто-анализ IDEA по сравнению с DES, который базируется исключительно на операции "исключающее ИЛИ".

         Общая схема алгоритма IDEA приведена на рис.3.11. 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле имеет место следующая последовательность операций:

(1)

умножение субблока Х1 и первого подключа.

(2)

сложение субблока Х2 и второго подключа.

(3)

сложение субблока Х3 и третьего подключа.

(4)

умножение субблока Х4 и четвертого подключа.

(5)

сложение результатов шагов (1) и (3).

(6)

сложение результатов шагов (2) и (4).

(7)

умножение результата шага (5) и пятого подключа.

(8)

сложение результатов шагов (6) и (7).

(9)

умножение результата шага (8) с шестым подключом.

(10)

сложение результатов шагов (7) и (9).

(11)

сложение результатов шагов (1) и (9).

(12)

сложение результатов шагов (3) и (9).

(13)

сложение результатов шагов (2) и (10).

(14)

сложение результатов шагов (4) и (10).

         Выходом цикла являются четыре субблока, которые получают как результаты выполнения шагов (11), (12), (13) и (14). В завершение цикла переставляют местами два внутренних субблока (за исключением последнего цикла), и в результате формируется вход для следующего цикла.

                Обозначения:

            Xi – 16-битовый субблок открытого текста, i = 1…4

            Yi – 16-битовый субблок шифртекста, i = 1…4

            Zj(r) – 16-битовый подключ (субблок ключа), j = 1…6, r = 1…8

– поразрядное суммирование по модулю 2  16-битовых субблоков


                  – сложение по модулю 216 16-битовых целых


                  – умножение по модулю 216 16-битовых целых (с нулевым субблоком,

                    соответствующим 216)

Рисунок 3.11 – Схема алгоритма IDEA (режим шифрования)

            После восьмого цикла осуществляют заключительное преобразование выхода:

(1)

умножение субблока Х1 и первого подключа.

(2)

сложение субблока Х2 и второго подключа.

(3)

сложение субблока Х3 и третьего подключа.

(4)

умножение субблока Х4 и четвертого подключа.

Наконец, эти результирующие четыре субблока  Y1…Y4  вновь объединяют для получения блока шифртекста.

            Создание подключей Zj также относительно несложно. Алгоритм использует всего 52 подключа (по шесть для каждого из восьми циклов и еще четыре для преобразования выхода). Сначала 128-битовый ключ делят на восемь 16-битовых подключей. Это – первые восемь подключей для алгоритма (шесть подключей – для первого цикла и первые два подключа – для второго цикла). Затем 128-битовый ключ циклически сдвигается влево на 25 бит и снова делится на восемь подключей. Первые четыре из них используют во втором цикле; последние четыре – в третьем цикле. Ключ снова циклически сдвигается влево еще на 25 бит для получения следующих восьми подключей и т.д., пока выполнение алгоритма не завершится.

         Расшифрование осуществляют аналогичным образом, за исключением того, что порядок использования подключей становится обратным, причем ряд значений подключей заменяется на обратные значения. Подключи расшифрования являются в основном либо аддитивными, либо мультипликативными обратными величинами подключей шифрования (табл.3.10).

         Для реализации алгоритма IDEA было принято предположение, что нулевой субблок равен 216= –1; при этом мультипликативная обратная величина от 0 равна 0 [121]. Вычисление значений мультипликативных обратных величин требует некоторых затрат, но это приходится делать только один раз для каждого ключа расшифрования.

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

Таблица 3.10

Подключи шифрования и расшифрования алгоритма IDEA

Цикл

Подключи шифрования

Подключи расшифрования

1

Z1(1)   Z2(1)   Z3(1)   Z4(1)   Z5(1)   Z6(1)

Z1(9)–1  –Z2(9)    –Z3(9)    Z4(9)–1   Z5(8)    Z6(8)

2

Z1(2)   Z2(2)   Z3(2)   Z4(2)   Z5(2)   Z6(2)

Z1(8)–1  –Z3(8)    –Z2(8)    Z4(8)–1   Z5(7)    Z6(7)

3

Z1(3)   Z2(3)   Z3(3)   Z4(3)   Z5(3)   Z6(3)

Z1(7)–1  –Z3(7)    –Z2(7)    Z4(7)–1   Z5(6)    Z6(6)

4

Z1(4)   Z2(4)   Z3(4)   Z4(4)   Z5(4)   Z6(4)

Z1(6)–1  –Z3(6)    –Z2(6)    Z4(6)–1   Z5(5)    Z6(5)

5

Z1(5)   Z2(5)   Z3(5)   Z4(5)     Z5(5)   Z6(5)

Z1(5)–1  –Z3(5)    –Z2(5)    Z4(5)–1   Z5(4)    Z6(4)

6

Z1(6)   Z2(6)   Z3(6)   Z4(6)   Z5(6)   Z6(6)

Z1(4)–1  –Z3(4)    –Z2(4)    Z4(4)–1   Z5(3)    Z6(3)

7

Z1(7)   Z2(7)   Z3(7)   Z4(7)   Z5(7)   Z6(7)

Z1(3)–1  –Z3(3)    –Z2(3)    Z4(3)–1   Z5(2)    Z6(2)

8

Z1(8)   Z2(8)   Z3(8)   Z4(8)   Z5(8)   Z6(8)

Z1(2)–1  –Z3(2)    –Z2(2)    Z4(2)–1   Z5(1)    Z6(1)

Преобра-зование выхода

Z1(9)   Z2(9)   Z3(9)   Z4(9)

Z1(1)–1  –Z2(1)    –Z3(1)    Z4(1)–1

на IBM PC/486 со скоростью 2,4 Мбит/с. Реализация IDEA на СБИС  шифрует данные со скоростью 177 Мбит/с при частоте 25 Мгц. Алгоритм IDEA запатентован в Европе и США.

3.6. Отечественный  стандарт  шифрования данных

            В нашей стране установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отдельных вычислительных комплексах и ЭВМ, который определяется ГОСТ 28147-89. Стандарт обязателен для организаций, предприятий и учреждений, применяющих криптографическую защиту данных, хранимых и передаваемых в сетях ЭВМ, в отдельных вычислительных комплексах и ЭВМ.

         Этот алгоритм криптографического преобразования данных предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. Алгоритм шифрования данных представляет собой 64-битовый блочный алгоритм с 256-битовым ключом.

         При описании алгоритма используются следующие обозначения:

L и R – последовательности битов;

LR – конкатенация последовательностей L и R, в которой биты последовательности R следуют за битами последовательности L;

 – операция побитового сложения по модулю 2;

⊞ – операция сложения по модулю 232 двух 32-разрядных двоичных чисел;

⊞´– операция сложения двух 32-разрядных чисел по модулю 232 –1.

            Два целых числа  a, b,  где  0  a, b  232 –1,

a= (a32a31 ... a2a1),   b = (b32, b31, ..., b2, b1),

представленные в двоичном виде, т.е.

a= a32231 + a31230 +...+ a221 + a1,

b = b32231 + b31230 +...+ b221 + b1,

суммируются   по   модулю   232  (операция ⊞) по следующему правилу:

a ⊞ b = a + b,  если  a + b < 232,

a ⊞ b = a + b – 232,  если  a + b  232.

         Правила суммирования чисел по модулю  232 – 1:

a ⊞´ b = a + b,  если  a + b < 232– 1,

a ⊞´ b = a + b – (232 – 1),  если  a + b  232 – 1.

            Алгоритм предусматривает четыре режима работы:

· шифрование данных в режиме простой замены;

· шифрование данных в режиме гаммирования;

· шифрование данных в режиме гаммирования с обратной связью;

· выработка имитовставки.

Режим простой замены

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

N1, N2 – 32-разрядные накопители;

СМ1 – 32-разрядный сумматор по модулю 232 (⊞);

СМ2 – 32-разрядный сумматор по модулю 2 ();

R – 32-разрядный регистр циклического сдвига;

КЗУ – ключевое запоминающее устройство на 256 бит, состоящее из восьми 32-разрядных накопителей Х0, Х1, Х2, ..., Х7;

S – блок подстановки, состоящий из восьми узлов замены (S-блоков замены) S1, S2, S3, ..., S7, S8.

Зашифрование открытых данных в режиме простой замены. Открытые данные, подлежащие зашифрованию, разбивают на 64‑разрядные блоки Т0. Процедура зашифрования 64-разрядного блока Т0 в режиме простой замены включает 32 цикла (j = 1…32). В ключевое запоминающее устройство вводят 256 бит ключа К в виде восьми 32-разрядных подключей (чисел) Кi:

К=К7К6К5К4К3К2К1К0.

Последовательность битов блока

Т0=(a1(0), a2(0), ..., a31(0), a32(0), b1(0), b2(0),..., b31(0), b32(0))

разбивают на две последовательности по 32 бита: b(0) a(0), где b(0) – левые или старшие биты, a(0) – правые или младшие биты.Эти последовательности вводят в накопители N1 и N2 перед началом первого цикла зашифрования. В результате начальное заполнение накопителя N1

a (0) = (a32(0), a31(0), ..., a2(0), a1(0)),

     32,         31,       ...      2,         1         номер разряда N1

начальное заполнение накопителя N2

b(0) = (b32(0), b31(0), ..., b2(0), b1(0)).

              32,         31,       ...      2,         1        номер разряда N2

Рисунок 3.12 – Схема реализации режима простой замены

Первый цикл (j=1) процедуры зашифрования 64-разрядного блока открытых данных можно описать уравнениями:

           

Здесь a (1) – заполнение N1 после 1-го цикла зашифровaния; b (1) – заполнение N2 после 1-го цикла зашифрования; f функция шифрования.

         Аргументом функции f является сумма по модулю 232 числа a(0) (начального заполнения накопителя N1) и числа К0 – подключа, считываемого из накопителя Х0 КЗУ. Каждое из этих чисел равно 32 битам.

         Функция f включает две операции над полученной 32-разрядной суммой  (a (0) ⊞ К0).

         Первая операция называется подстановкой (заменой) и выполняется блоком подстановки S. Блок подстановки S состоит из восьми узлов замены (S-блоков замены) S1,S2,...,S8 с памятью 64 бит каждый. Поступающий из СМ1 на блок подстановки S 32-разрядный вектор разбивают на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в четырехразрядный вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати четырехразрядных двоичных чисел в диапазоне 0000…1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем четырехразрядные выходные векторы последовательно объединяют в 32‑разрядный вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сети ЭВМ и редко изменяются. Эти узлы замены должны сохраняться в секрете.

         Вторая операция – циклический сдвиг влево (на 11 разрядов) 32‑разрядного вектора, полученного с выхода блока подстановки S. Циклический сдвиг выполняется регистром сдвига R.

            Далее результат работы функции шифрования f суммируют поразрядно по модулю 2 в сумматоре СМ2 с 32-разрядным начальным заполнением b(0) накопителя N2. Затем полученный на выходе СМ2 результат (значение a(1)) записывают в накопитель N1, а старое значение N1 (значение a(0)) переписывают в накопитель N2 (значение b(1) = a(0)). Первый цикл завершен.

         Последующие циклы осуществляются аналогично, при этом во втором цикле из КЗУ считывают заполнение Х1 – подключ К1, в третьем цикле – подключ К2 и т.д., в восьмом цикле – подключ К7. В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й подключи из КЗУ считываются в том же порядке: К0, К1, К2,...,К6, К7. В последних восьми циклах с 25-го по 32-й порядок считывания подключей из КЗУ обратный: К7, К6, ..., К2, К1, К0. Таким образом, при зашифровании в 32 циклах осуществляется следующий порядок выборки из КЗУ подключей:

К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7,

К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0.

            В 32-м цикле результат из сумматора СМ2 вводится в накопитель N2, а в накопителе N1 сохраняется прежнее заполнение. Полученные после 32-го цикла зашифрования заполнения накопителей N1 и N2 являются блоком зашифрованных данных Тш, соответствующим блоку открытых данных Т0.

         Уравнения   зашифрования   в   режиме   простой    замены имеют  вид:

               при  j=1…24,

                  при  j=25…31,

                      при  j=32

где  a (j) = (a32(j), a31(j), ..., a1(j)) – заполнение N1 после j-го цикла зашифрования;

        b (j) = (b32(j), b31(j), ..., b1(j)) – заполнение N2 после j-го цикла зашифрования,  j=1…32.

Блок зашифрованных данных Тш (64 разряда) выводится из накопителей N1, N2 в следующем порядке: из разрядов 1…32 накопителя N1, затем из разрядов 1…32 накопителя N2, т.е. начиная с младших разрядов:

Тш = (a1(32), a2(32), ..., a32(32), b1(32), b2(32), ..., b32(32)).

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

Расшифрование в режиме простой замены. Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид, что и при зашифровании (см. рис. 3.12).

         В КЗУ вводят 256 бит ключа, на котором осуществлялось зашифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты  на  блоки  Тш  по  64 бита  в  каждом.  Ввод  любо-го блока

Тш = (a1(32), a2(32), ..., a32(32), b1(32), b2(32), ..., b32(32))

в накопители N1 и N2 производят так, чтобы начальное значение накопителя N1 имело вид

(a32(32), a31(32), ..., a2(32), a1(32)),

      32,         31,        ...,     2,              1           номер разряда N1

а начальное заполнение накопителя N2 – вид

(b32(32), b31(32), ..., b2(32), b1(32)).

    32,           31,       ...,            2,           1            номер разряда N2

            Расшифрование осуществляется по тому же алгоритму, что и зашифрование, с тем изменением, что заполнения накопителей X0, Х1, ..., Х7 считываются из КЗУ в циклах расшифрования в следующем порядке:


К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0,

К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0.

         Уравнения расшифрования имеют вид:

     при  j=1…8;

       при  j=9…31;

                                         при  j=32.

         Полученные после 32 циклов работы заполнения накопителей N1 и N2 образуют блок открытых данных

Т0 = (a1(0), a2(0), ..., a32(0), b1(0), b2(0),..., b32(0)),

соответствующий блоку зашифрованных данных Тш. При этом состояние накопителя N1

(a32(0), a31(0), ..., a2(0), a1(0)),

    32,        31,     ...,        2,        1          номер разряда N1

состояние накопителя N2

(b32(0), b31(0), ..., b2(0), b1(0)).

     32,       31,      ...,        2,        1          номер разряда N2

         Аналогично расшифровываются остальные блоки зашифрованных данных.

            Если алгоритм зашифрования в режиме простой замены 64‑битового блока Т0 обозначить через А, то

А(Т0) = А(a (0), b(0)) = (a (32), b(32))=Тш.

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

Режим гаммирования

Зашифрование открытых данных в режиме гаммирования. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования, показана на рис.3.13. Открытые данные разбивают на 64‑разрядные блоки

Т0(1), Т0(2), ..., Т0(i), ..., Т0(m),

где Т0(i) – i-й 64-разрядный блок открытых данных, i = 1…m, m определяется объемом шифруемых данных.

Эти блоки поочередно зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 в сумматоре СМ5 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита, т.е.

Гш=(Гш(1), Гш(2), ..., Гш(i), Гш(m)),

где Гш(i) – i-й  64-разрядный блок, i = 1…m.

Рисунок 3.13 – Схема реализации режима гаммирования

            Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока Гш(m) отбрасывается.

         Уравнение зашифрования данных в режиме гаммирования имеет вид

Тш(i) = Т0(i)  Гш(i),

где Гш(i)=А(Yi–1 ⊞ C2, Zi–1 ⊞´C1), i=1…m; Тш(i) – i-й блок 64-разрядного блока зашифрованного текста; А(·) – функция зашифрования в режиме простой замены; С1, С2 – 32-разрядные двоичные константы; Yi, Zi – 32‑разрядные двоичные последовательности.

         Величины Yi, Zi определяются итерационно по мере формирования гаммы Гш следующим образом:

(Y0, Z0) = А (),

где      –  синхропосылка   (64-разрядная   двоичная   последова-тельность),

(Yi, Zi) = (Yi–1 ⊞ С2,  Zi–1 ⊞ C1),  i = 1…m.

            Рассмотрим реализацию процедуры зашифрования в режиме гаммирования. В накопители N6 и N5 заранее записаны 32-разрядные двоичные константы С1 и С2, имеющие следующие значения (в шестнадцатеричной форме):

С1 = 01010104(16),   С2 = 01010101(16).

         В КЗУ вводится 256 бит ключа; в накопители N1 и N2 – 64-разрядная двоичная последовательность (синхропосылка)

 = (S1, S2, ..., S64).

Синхропосылка  является исходным заполнением накопителей N1 и N2 для последовательной выработки m блоков гаммы шифра.

            Исходное заполнение накопителя N1:

(S32, S31, ...,S2, S1);

    32,    31,  ...,   2,   1   номер разряда N1

исходное заполнение накопителя N2:

(S64, S63, ..., S34, S33).

    64,    63,  ...,   34,    33    номер разряда N2

         Исходное заполнение N1 и N2 (синхропосылка ) зашифровывается в режиме простой замены. Результат зашифрования

A() = (Y0, Z0)

переписывается в 32-разрядные накопители N3 и N4 так, что заполнение N1 переписывается в N3, а заполнение N2 – в N4.

         Заполнение накопителя N4 суммируют по модулю (232 –1) в сумматоре СМ4 с 32-разрядной константой С1 из накопителя N6. Результат записывается в N4. Заполнение накопителя N3 суммируется по модулю 232 в сумматоре СМ3 с 32-разрядной константой С2 из накопителя N5. Результат записывается в N3. Заполнение N3 переписывают в N1, а заполнение N4 – в N2, при этом заполнения N3, N4 сохраняются. Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены.

         Полученное в результате зашифрования заполнение накопителей N1, N2 образует первый 64-разрядный блок гаммы шифра Гш(1)=(1(1), 2(1), ..., 63(1), 64(1)), который суммируют поразрядно по модулю 2 в сумматоре СМ5 с первым 64-разрядным блоком открытых данных

Т0(1) = (t1(1), t2(1), ..., t63(1), t64(1)).

В результате суммирования по модулю 2 значений Гш(1) и Т0(1)  получают первый 64-разрядный блок зашифрованнных данных:

Тш(1) = Гш(1)  Т0(1) = (1(1), 2(1), ..., 63(1), 64(1)),

где  i(1) = ti(1)  i(1),   i = 1…64.

         Для получения следующего 64-разрядного блока гаммы шифра Гш(2) заполнение N4 суммируется по модулю (232 –1) в сумматоре СМ4 с константой С1 из N6. Результат записывается в N4. Заполнение N3 суммируется по модулю 232 в сумматоре СМ3 с константой С2 из N5. Результат записывается в N3. Новое заполнение N3 переписывают в N1, а новое заполнение N4 – в N2 , при этом заполнения N3 и N4 сохраняют. Заполнения N1, N2 зашифровывают в режиме простой замены.

         Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра Гш(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2):

Тш(2) = Гш(2)  Т0(2).

Аналогично вырабатываются блоки гаммы шифра Гш(3), Гш(4), ..., Гш(m) и зашифровываются блоки открытых данных Т0(3), Т0(4), ..., Т0(m).

         В канал связи или память ЭВМ передаются синхропосылка  и блоки зашифрованных данных

Тш(1), Тш(2), ..., Тш(m).

Расшифрование в режиме гаммирования. При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. рис.3.13).

         Уравнение расшифрования:

Т0(i) = Тш(i)  Гш(i) = Tш(i)  A (Yi–1 ⊞ C2, Zi–1 ⊞´ C1),  i = 1…m.

         Следует отметить, что расшифрование данных возможно только при наличии синхропосылки, которая не является секретным  элементом  шифра  и  может  храниться  в  памяти  ЭВМ  или передаваться   по  каналам   связи    вместе   с   зашифрованными данными.

         Рассмотрим реализацию процедуры расшифрования. В КЗУ вводят 256 бит ключа, с помощью которого осуществляется зашифрование данных Т0(1), Т0(2), ..., Т0(m). В накопители N1 и N2 вводится синхропосылка, и осуществляется процесс выработки m блоков гаммы шифра Гш(1), Гш(2), ..., Гш(m). Блоки зашифрованных данных Тш(1), Тш(2), ..., Тш(m) суммируются поразрядно по модулю 2 в сумматоре СМ5 с блоками гаммы шифра Гш(1), ..., Гш(m). В результате получаются блоки открытых данных

Т0(1), Т0(2), ..., Т0(m);

при этом Т0(m) может содержать меньше 64 разрядов.

Режим гаммирования с обратной связью

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

         Открытые данные, разбитые на 64-разрядные блоки Т0(1), Т0(2), ..., Т0(m), зашифровываются в режиме гаммирования с обратной связью путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита:

Гш = (Гш(1), Гш(2), ..., Гш(m)).

Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Гш(m) отбрасывается.

         Уравнения зашифрования в режиме гаммирования с обратной связью имеют вид:

Тш(1) = А ()  Т0(1) = Гш(1)  Т0(1),

Тш(i) = A (Тш(i–1))  Т0(i) = Гш(i)  Т0(i),  i = 2…m.

 

Рисунок 3.14 – Схема реализации режима гаммирования с обратной связью

Здесь Тш(i) – i-й 64-разрядный блок зашифрованного текста; А(·) – функция зашифрования в режиме простой замены; m – определяется объемом открытых данных.

            Аргументом функции А (·) на первом шаге итеративного алгоритма является 64-разрядная синхропосылка , а на всех последующих   шагах – предыдущий   блок   зашифрованных  дан-ных  Тш(i–1).

Процедура зашифрования данных в режиме гаммирования с обратной связью реализуется следующим образом. В КЗУ вводятся 256 бит ключа. В накопители N1 и N2 вводится синхро-посылка = (S1, S2, ..., S64) из 64 бит. Исходное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует первый 64‑разрядный блок гаммы шифра Гш(1)=A(), который  суммируется поразрядно по модулю 2 в сумматоре СМ5 с первым 64-разрядным блоком открытых данных

Т0(1) = (t1(1), t2(1),..., t64(1)).

В результате получают первый 64-разрядный блок зашифрованных данных

ТШ(1) = ГШ(1)  Т0(1),

где  ТШ(1) = (1(1), 2(1), ..., 64(1)).

         Блок зашифрованных данных ТШ(1) одновременно является также исходным состоянием накопителей N1, N2 для выработки второго блока гаммы шифра ГШ(2), и поэтому по обратной связи ТШ(1) записывается в указанные накопители N1 и N2.

Заполнение накопителя N1

(32(1), 31(1), ..., 2(1), 1(1)).

    32,      31,     ...,   2,       1       номер разряда N1

Заполнение накопителя N2

(64(1), 63(1), ..., 34(1), 33(1)).

   32,      31,     ...,     2,        1         номер разряда N2

Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра ГШ(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2):

ГШ(2)  Т0(2) = ТШ(2).

Выработка последующих блоков гаммы шифра ГШ(i) и зашифрование соответствующих блоков открытых данных Т0(i) (i=3…m) производится аналогично.

         Если длина последнего m-го блока открытых данных Т0(m) меньше 64 разрядов, то из ГШ(m) используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

         В канал связи или память ЭВМ передаются синхропосылка  и блоки зашифрованных данных  ТШ(1), ТШ(2), ..., ТШ(m).

Расшифрование в режиме гаммирования с обратной связью. При расшифровании криптосхема имеет тот же вид, что и при зашифровании (см. рис.3.14).

         Уравнения расшифрования:

Т0(1) = А()  Тш(1) = Гш(1)  Тш(1),

Т0(i) = Гш(i)  Тш(i) = A (Тш(i–1) )  Тш(i),  i = 2…m.

         Реализация процедуры расшифрования зашифрованных данных  в  режиме  гаммирования с  обратной  связью  происходит следующим образом. В КЗУ вводят 256 бит того же ключа, на котором осуществлялось зашифрование открытых блоков Т0(1), Т0(2), ..., Т0(m). В накопители N1 и N2 вводится синхропосылка . Исходное заполнение накопителей N1 и N2 (синхропосылка ) зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение N1 и N2 образует первый блок гаммы шифра

ГШ(1) = А(),

который суммируется поразрядно по модулю 2 в сумматоре СМ5 с блоком зашифрованных данных ТШ(1).

         В результате получается первый блок открытых данных

Т0(1) = Гш(1)  Тш(1).

Блок зашифрованных данных Тш(1) является исходным заполнением накопителей N1 и N2 для выработки второго блока гаммы шифра ГШ(2): ГШ(2) = А(ТШ(1)). Полученное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Образованный в результате зашифрования блок ГШ(2) суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком зашифрованных данных ТШ(2). В результате получают второй блок открытых данных. Аналогично в N1, N2 последовательно записывают блоки зашифрованных данных ТШ(2), ТШ(3), ..., ТШ(m), из которых в режиме простой замены вырабатываются блоки гаммы шифра ГШ(3), ГШ(4), ..., ГШ(m).

         Блоки гаммы шифра суммируются поразрядно по модулю 2 в сумматоре СМ5 с блоками зашифрованных данных ТШ(3)Ш(4), ..., ТШ(m).

         В результате получают блоки открытых данных

Т0(3), Т0(4), ..., Т0(m),

при этом последний блок открытых данных Т0(m) может содержать меньше 64 разрядов.

Режим выработки имитовставки

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

         Имитозащита – это защита системы шифрованной связи от навязывания ложных данных.

         В стандарте ГОСТ 28147-89 определяется процесс выработки имитовставки, который единообразен для любого из режимов шифрования данных. Имитовставка Ир вырабатывается из блоков открытых данных либо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не зашифровываются.

         Значение параметра Р (число двоичных разрядов в имитовставке)     определяется    криптографическими    требованиями с   учетом   того,  что   вероятность   навязывания   ложных   помех равна  1/2р.

            Для выработки имитовставки открытые данные  представляют   в   виде   последовательности   64-разрядных   блоков   Т0(i), i = 1…m.

         Первый блок открытых данных Т0(1) подвергают преобразованию (·), соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. В качестве ключа для выработки имитовставки используют ключ длиной 256 бит, по которому шифруют данные.

         Полученное после 16 циклов 64-разрядное число 0(1)) суммируют по модулю 2 со вторым блоком открытых данных Т0(2). Результат суммирования (0(1))  Т0(2)) снова подвергают преобразованию (·).

         Полученное 64-разрядное число (0(1))  Т0(2)) суммируют по модулю 2 с третьим блоком Т0(3) и снова подвергают преобразованию (·), получая 64-разрядное число

((0(1))  Т0(2))  Т0(3)),   и т.д.

            Последний блок Т0(m) (при необходимости дополненный нулями до полного 64-разрядного блока) суммируют по модулю 2 с результатом вычислений на шаге (m–1), после чего зашифровывают в режиме простой замены, используя преобразование (·).

         Из полученного 64-разрядного числа выбирают отрезок Ир (имитовставку) длиной Р бит:

Ир = [a(m)32–p+1(16), a(m)32–p+2(16), ..., a(m)32(16)],

где  ai(m) – i-й бит 64-разрядного числа, полученного после 16-го цикла последнего преобразования (·), 32 – р + 1  i  32.

         Имитовставка Ир передается по каналу связи  или в память ЭВМ в конце зашифрованных данных, т.е.

Тш(1), Тш(2), ..., Тш(m), Ир.

         Поступившие к получателю зашифрованные данные

Тш(1), Тш(2), ..., Тш(m)

расшифровываются, и из полученных блоков открытых данных Т0(1), Т0(2), ..., Т0(m) аналогичным образом вырабатывается имитовставка Ир. Эта имитовставка Ир сравнивается с имитовставкой Ир, полученной вместе с зашифрованными данными из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок полученные при расшифровании блоки открытых данных Т0(1), Т0(2), ..., Т0(m) считают ложными.

3.7. Блочные и поточные шифры

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

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

         Можно выделить следующие характерные признаки методов шифрования данных:

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

2) Зависимость или независимость функции шифрования от результатов шифрования предыдущих частей сообщения.

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

4) Симметрия или асимметрия функции шифрования. Эта важная характеристика определяет существенное различие между обычными симметричными (одноключевыми) криптосистемами и асимметричными (двухключевыми) криптосистемами с открытым ключом. Основное различие между ними состоит в том, что в асимметричной криптосистеме знания ключа шифрования (или расшифрования) недостаточно для раскрытия соответствующего ключа расшифрования (или шифрования).

         В табл. 3.11 приведены типы криптосистем и их основные характеристики.

Таблица 3.11

Основные характеристики криптосистем

Тип

криптосистемы

Операции с битами или

блоками

Зависимость от

предыдущих знаков

Позиционная

зависимость

Наличие

симметрии

функции

шифрования

Поточного

шифрования

Биты

Не зависит

Зависит

Симметричная

Блочного

шифрования

Блоки

Не зависит

Не зависит

Симметричная или несимметричная

С обратной     связью от  шифртекста

Биты или блоки

Зависит

Не зависит

Симметричная

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

         Поточные шифры широко применяются для шифрования преобразованных в цифровую форму речевых сигналов и цифровых данных, требующих оперативной доставки потребителю информации. До недавнего времени такие применения были преобладающими для данного метода шифрования. Это обусловлено, в частности, относительной простотой проектирования и реализации генераторов хороших шифрующих последовательностей. Но самым важным фактором, конечно, является отсутствие размножения ошибок в поточном шифре. Стандартным методом генерирования последовательностей для поточного шифрования является метод, применяемый в стандарте шифрования DES в режиме обратной связи по выходу (режим OFB).

         При блочном шифровании открытый текст сначала разбивается на равные по длине блоки, затем применяется зависящая от ключа функция шифрования для преобразования блока открытого текста длиной  m  бит в блок шифртекста такой же длины. Достоинством блочного шифрования является то, что каждый бит блока шифртекста зависит от значений всех битов соответствующего блока открытого текста, и никакие два блока открытого текста не могут быть представлены одним и тем же блоком шифртекста. Алгоритм блочного шифрования может использоваться в различных режимах. Четыре режима шифрования алгоритма DES фактически применимы к любому блочному шифру: режим прямого шифрования или шифрования с использованием электронной книги кодов ЕСВ (Electronic code Book), шифрование со сцеплением блоков шифртекста СВС (Cipher block chaining), шифрование с обратной связью по шифртексту CFB (Cipher feedback) и шифрование с обратной связью по выходу OFB (Output feedback).

         Основным достоинством прямого блочного шифрования ECB является то, что в хорошо спроектированной системе блочного шифрования небольшие изменения в шифртексте вызывают большие и непредсказуемые изменения в соответствующем открытом тексте, и наоборот. Вместе с тем применение блочного шифра в данном режиме имеет серьезные недостатки. Первый из них заключается в том, что вследствие детерминированного характера шифрования при фиксированной длине блока 64 бита можно осуществить криптоанализ шифртекста "со словарем" в ограниченной форме. Это обусловлено тем, что идентичные блоки открытого текста длиной 64 бита в исходном сообщении представляются идентичными блоками шифртекста, что позволяет криптоаналитику сделать определенные выводы о содержании сообщения. Другой потенциальный недостаток этого шифра связан с размножением ошибок. Результатом изменения только одного бита в принятом блоке шифртекста будет неправильное расшифрование всего блока. Это, в свою очередь, приведет к появлению искаженных битов (от 1 до 64) в восстановленном блоке исходно-го текста.

Если Вам понравилась эта лекция, то понравится и эта - 1 Вопросы к экзамену.

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

         Криптосистема с открытым ключом также является системой блочного шифрования и должна оперировать блоками довольно большой длины. Это обусловлено тем, что криптоаналитик знает открытый ключ шифрования и мог бы заранее вычислить и составить таблицу соответствия блоков открытого текста и шифртекста. Если длина блоков мала, например 30 бит, то число возможных блоков не слишком большое (при длине 30 бит это 230 = 109), и может быть составлена полная таблица, позволяющая моментально расшифровать любое сообщение с использованием известного открытого ключа. Асимметричные криптосистемы с открытым ключом подробно разбираются в следующей главе.

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

         Практически важным шифром с обратной связью является шифр со сцеплением блоков шифртекста СВС. В этом случае m бит предыдущего шифртекста суммируются по модулю 2 со следующими m битами открытого текста, а затем применяется алгоритм блочного шифрования под управлением ключа для получения следующего блока шифртекста. Еще один вариант шифра с обратной связью получается из стандартного режима CFB алгоритма DES, т.е. режима с обратной связью по шифртексту.

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

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

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5168
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее