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

Петров А.А. Комп без-ть

.pdf
Скачиваний:
39
Добавлен:
28.03.2016
Размер:
16.03 Mб
Скачать

Алгоритмы блочного шифрования

41

Рис. 19

В некоторых реализациях БЕЗ блоки открытого сообщения перед тем, как они будут загружены в регистр сдвига длиной две ячейки и размером ячейки 32 бита, проходят процедуру начальной перестановки, которая применяется для того, чтобы осуществить начальное рассеивание стати­ стической структуры сообщения. Пример начальной перестановки при­ веден в табл. 1 .2 .

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

58

50

42

34

26

18

1 0

2

60

52

44

36

28

2 0

1 2

4

62

54

46

38

36

2 2

14

6

64

56

48

40

32

24

16

8

57

49

41

33

25

17

9

1

59

51

43

35

27

19

1 1

3

61

53

45

37

29

2 1

13

5

63

55

47

39

31

23

15 ,

7

В случае использования начальной перестановки после завершения 16 раундов к полученному блоку применяется обратная перестановка.

Работа алгоритма заключается в следующем:

1.Входной блок разбивается на две части по 32 бита в каждой (Ц - ле­ вая половина, К| - правая половина).

2.Правая половина преобразуется функцией 1 с использованием теку­ щей ключевой последовательности длиной 48 бит, снятой с выхода блока выработки ключевой последовательности.

3.Результат преобразования правой части складывается по модулю 2

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

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

и- ъ-1

К.)

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

42

Общие сведения по классической криптографии

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

Таблица 1.3. Завершающая перестановка

40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

31

38

6

46

14

54

2 2

62

30

37

5

45

13

53

2 1

61

29

36

4

44

1 2

52

2 0

60

28

35

3

43

1 1

51

19

59

27

34

2

42

1 0

50

18

58

26

33

1

41

9

49

17

57

25

Преобразование 1 (рис.

1.10) начинается с опе­

 

рации расширения исходной 32-битной последова­

Входной блок длиной 32 бита

тельности до 48 бит. Эта операция предполагает

 

дописывание в исходную последовательность от­

 

дельных битов в соответствии с подстановкой (см.

 

табл.

1.4).

 

 

 

 

 

 

 

 

 

 

Таблица 1.4. Подстановка расширения

 

 

 

 

 

32

1

2

3

4

5

4

5

6

7

8

Г

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

Входной блок длиной 32 бита

Результат преобразования суммируется по моду­

Рис. 1.10

лю 2 с 48-битной ключевой последовательностью,

Структура функции (

которая вырабатывается из 56-битного ключа, запи­

 

санного в два 28-битных циклических регистра сдвига, которые перемеща­ ют содержимое в каждом такте на количество битов, зависящее от номера раунда (табл. 1.5).

Таблица 1.5. Таблица зависимости количества сдвигаемых битов от номера раунда

-

-

-

 

-

-

-

 

-

.

_

-

 

_

_

_

_

16'

1

1

2

2

2

 

2

2

2

1

 

2

2

2

2

2

 

2

1

Результирующая ключевая последовательность получается путем вы­

борки 48 бит из содержимого регистров в соответствии с подстановкой

(табл. 1 .6 ).

 

Алгоритмы блочного шифрования

 

 

 

 

 

 

 

43

Таблица 1.6. Подстановка для выборки ключа

 

 

 

 

 

 

 

57

49

41

33

 

25

17

9

1

58

 

50

42

34

26

18

1 0

2

59

51

 

43

35

27

19

1 1

 

3

60

52

44

36

63

55

47

39

 

31

23

15

7

62

 

54

46

38

30

2 2

14

6

61

53

 

45

37

29

2 1

13

 

5

28

2 0

1 2

4

 

Полученный путем сложения 48-битный век­

 

 

 

 

 

тор поступает иа вход 8 -боксов, основная задача

 

 

 

 

 

которых заключается в замене 48-битного векто­

 

 

48 бит

 

 

ра на 32-битный. Всего в Б Е 8

используются во­

 

 

 

 

 

семь 8 -боксов с 6 -битными входами и 4-битными

 

 

 

 

 

выходами. Подстановка в 8 -боксах осуществля­

 

 

 

 

 

ется в соответствии с табл. 1.7: здесь номер стро­

 

 

 

 

 

ки задается первым и последним входом 8 -бок­

 

 

 

 

 

са, а номер столбца - средними четырьмя битами

 

 

32 бита

 

 

входа. Битовое представление числа в ячейке за­

 

 

 

 

 

дано входной последовательностью и будет яв-

Рис.

1 11. Структура 5-боксов

ляться выходом 8 -бокса.

 

 

 

 

 

 

 

 

 

 

Таблица 1.7. Подстановки в 5-боксах

 

 

 

 

 

 

 

 

5-бокс 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

4

13

1

2

15

1 1

8

3

1 0

6

1 2

5

9

0

7

0

15

7

4

14

2

13

1

1 0

6

1 2

1 1

9

5

3

8

4

1

14

8

13

6

2

1 1

15

1 2

9

7

3

1 0

5

0

15

1 2

8

2

4

9

1

7

5

1 1

3

14

1 0

0

6

13

5-бокс 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

1

8

14

6

1 1

3

4

9

7

2

13

1 2

0

5

1 0

3

13

4

7

15

2

8

14

1 2

0

1

1 0

6

9

1 1

5

0

14

7

1 1

1 0

4

13

1

5

8

1 2

6

9

3

2

15

13

8

1 0

1

3

15

4 ' 2

1 1

6

7

1 2

0

5

14

9

5-бокс 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

0

9

14

6

3

15

5

1

13

1 2

7

1 1

4

2

8

13

7

0

9

3

4

6

1 0

2

8

5

14

1 2

1 1

15

1

13

6

4

9

8

15

3

0

1 1

1

2

1 2

5

1 0

14

7

1

1 0

13

0

6

9

8

7

4

15

14

3

1 1

5

2

1 2

5-бокс 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

13

14

3

0

6

9

1 0

1

2

8

5

1 1

1 2

4

15

13

8

1 1

5

6

15

0

3

4

7

2

1 2

1

1 0

14

9

1 0

6

9

0

1 2

1 1

7

13

15

1

3

14

5

2

8

4

3

15

0

6

1 0

1

13

8

9

4

5

1 1

1 2

7

2

14

44

 

 

 

 

 

Общие сведения по классической криптографии

Таблица

1.7. Подстановки в 3-боксах (окончание)

 

 

 

 

 

 

5-бокс 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1 2

4

1

7

1 0

1 1

6

8

5

3

15

13

0

14

9

14

1 1

2

1 2

4

7

13

1

5

0

15

1 0

3

6

8

6

4

2

1

1 1

1 0

13

7

8

15

9

1 2

5

6

3

0

14

1 1

8

1 2

7

1

14

2

13

6

15

0

9

1 0

4

5

3

5-бокс 6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 2

1

1 0

15

9

2

6

8

0

13

3

4

14

7

5

1 1

1 0

15

4

2

7

1 2

9

5

6

1

13

14

0

1 1

3

8

9

14

15

5

2

8

1 2

3

7

0

4

1 0

1

13

1 1

6

4

3

2

1 2

9

5

15

1 0

1 1

14

1

7

6

0

8

13

5-бокс 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

1 1

2

14

15

0

8

13

3

1 2

9

7

5

1 0

6

1

13

0

1 1

7

4

9

1

1 0

14

3

5

1 2

2

15

8

6

1

4

1 1

13

1 2

3

7

14

1 0

15

6

8

0

5

9

2

6

1 1

13

8

1

4

1 0

7

9

5

0

15

14

2

3

1 2

5-бокс 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

2

8

4

6

15

1 1

1

1 0

9

3

14

5

0

1 2

7

1

15

13

8

1 0

3

7

4

1 2

5

6

1 1

0

14

9

2

7

1 1

4

1

9

1 2

14

2

0

6

1 0

13

15

3

5

8

2

1

14

7

4

1 0

8

13

15

1 2

9

0

3

5

6

1 1

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

Выход 3-боксов поступает на Р-блок, где происходит перестановка (табл. 1 .8 ).

Таблица 1.8. Перестановка в Р-блоке

Тб

7

2 0

2 1

29

1 2

28

17

1

15

23

26

5

18

31

16

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

Расшифрование в алгоритме БЕЗ происходит аналогично зашифрова­ нию с той только разницей, что выборка ключевой последовательности в раундах расшифрования будет обратная, то есть К 16, К^.-.К^ если в про­ цессе зашифрования выборку ключевой последовательности обозначать К ь К 2...К15, К 16.

Алгоритмы блочного шифрования

45

Стойкость 0Е8

Говоря о БЕЗ, невозможно обойти стороной тему безопасности данного алгоритма и возможных атак на него. Многолетний опыт эксплуатации БЕЗ и его открытость (исходные тексты алгоритма и документацию на него можно встретить в открытых источниках) привели к тому, что БЕЗ стал одним из популярнейших алгоритмов с точки зрения проверки тех или иных методов дешифрования и криптоанализа. За все время существования алгоритма на него было проведено немало атак; при этом внимательно изу­ чались и учитывались его многочисленные слабости, выявленные за столь долгий срок эксплуатации. Следует иметь в виду: некоторые из атак реали­ зуемы только исходя из предположения, что атакующий обладает некото­ рыми возможностями (вычислительными, временными и т.д.), и в ряде случаев подобные попытки с точки зрения практического осуществления относятся к разряду возможных лишь в теоретическом плане. Хотя не ис­ ключено, что со временем они вполне могут стать практически осуществи­ мыми.

Среди основных недостатков БЕЗ, существенно снижающих уровень его безопасности, можно выделить следующие:

наличие слабых ключей, вызванное тем, что при генерации ключевой последовательности используются два регистра сдвига, которые ра­ ботают независимо друг от друга. Примером слабого ключа может служить 1Р1Р1Р1Р 0Е0Е0Е0Е (с учетом битов контроля четности),

Вданном случае результатом генерации будут ключевые последова­ тельности, одинаковые с исходным ключом во всех 16 раундах. Суще­ ствуют также разновидности слабых ключей, которые дают при гене­ рации всего лишь две (четы ре) ключевые последовательности. Д ля неполиораундовых схем БЕЗ характерно наличие связанных ключей (например, ключ, полученный из другого ключа посредством инверсии

одного бита);

• небольшая длина ключа 56 бит (и ли 64 бита с контролем четности). На современном уровне развития микропроцессорных средств данная длина ключа не может обеспечивать должной защиты для некоторых типов информации (табл. 1.1 и 1.10). Применение тройного БЕЗ (Тпр1е БЕЗ, схема его реализации приведена на рис. 1.12) не дает ощ у­ тимого результата, хотя в новой версии используются три разных клю ­ ча (К !, К 2, К3). Дело в том, что в конечном итоге работа с тремя ключа­ ми эквивалентна зашифрованию на другом ключе К 4, то есть для любых К ь К 2, К 3 найдется такой ключ К4, что:

Е Кз(Б К 2(Е К 1(Р ) ) ) - ЕК 4(Р );

46

Общие сведения по классической криптографии

избыточность ключа, обусловленная контролем четности для каждого в отдельности байта ключа. Бихам и Шамир предложили достаточно эффективную атаку на реализацию БЕЗ в смарт-картах или банковс­ ких криптографических модулях, использующих ЕЕРКОМ -память для хранения ключей. Эта методика наглядно высветила еще одну очевидную слабость БЕЗ, заключающуюся в наличии контроля четно­ сти каждого байта ключа, в силу которой и создается его избыточность, что позволяет восстанавливать ключи, хранящиеся в памяти устрой­ ства, при сбое в данном участке памяти;

использование статических подстановок в 3-боксах, что, несмотря на большое количество раундов, позволяет криптоаналитикам проводить атаки на этот алгоритм.

к,

К2

К3

Рис. 1.12. Схема Тпр1е йЕ5

Здесь следует заметить, что на сегодняшний день автору неизвестны ус­ пешные атаки на 16-раундовый БЕЗ, проведенные на основании последне­ го в списке факта, однако успешные атаки на неполнораундовые схемы БЕЗ имели место. Так, Мартин Хэллман предложил атаку на 8 -раундовый БЕЗ. Она позволяет восстанавливать на рабочей станции 51ЛЧ-4 10 бит ключа за десять секунд. В случае выбора 512 открытых текстов вероят­ ность успеха составляет 80%, а при выборе 768 открытых текстов - 95%. Восстановив 10 бит ключа, можно воспользоваться алгоритмами перебора всех оставшихся вариантов, сводя таким образом задачу нахождения 56-битного ключа к поиску 46-битного ключа.

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

1.2.3. Алгоритм блочного шифрования

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

Алгоритмы блочного шифрования

47

высокую криптографическую стойкость алгоритма;

возможность эффективного программного исполнения (за счет исполь­ зования узлов, реализуемых на современной аппаратно-программной платформе).

Алгоритм (рис. 1.13) работает с 64-битными входными блоками, 64-бит­ ными выходными блоками и ключами длиной 256 бит. Использование 256-битного ключа позволяет не обращать внимания на возможность ата­ ки с применением «грубой силы », поскольку мощность большинства клю ­ чей равна 2256. При этом данный алгоритм предполагает как эффективную программную, так и аппаратную реализацию.

 

З аш иф рованны й блок

 

 

Блок

 

 

открытого

Накопитель Ыб

Н акопитель N5

[ Э - — текста

 

I

Гш

 

 

Накопитель N4

Н акопитель N3

 

11

к

 

Г

 

 

Накопитель N2

Н акопитель N 4

 

 

 

КЗУ

 

 

Ко

 

 

К1

 

3 -б о ксы

Кг

 

 

К3

 

Ц иклический

К4

 

ре ги стр сд в и га

К5

 

 

Кб

к7

Рис. 1.13 Схема алгоритма ГОСТ28147-89

Алгоритм может применяться в следующих рабочих режимах:

простая замена;

гаммирование;

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

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

48

Общие сведения по классической криптографии

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

П = Км

где Ь и К - соответственно левая и правая часть 64-битного блока.

Это преобразование характерно для всех раундов (всего их 32), кроме последнего. Для него преобразование будет иметь вид:

П = Ьи 0 ДКИ, ко

К; = Ки 1 = 32

Для каждого раунда функция 1 остается неизменной. Перед началом преобразования блок открытого текста разбивается на две 32-битные по­ ловины Ь и К, которые помещаются в два 32-разрядных регистра иЫ 2 соответственно. Также перед началом зашифрования 256-битный ключ, разбитый на восемь частей по 32 бита каждая (К 0...К7), помещается в клю­ чевое запоминающееся устройство (К З У ). Далее содержимое регистра И) суммируется по модулю 2 32 с очередным заполнением устройства, а клю ­ чевые последовательности выбираются из К З У в следующем порядке:

• в раундах с 1-го по 24-й -

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

• в раундах с 25-го по 32-й -

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

Полученная битовая последовательность разбивается на восемь блоков по 4 бита в каждом и поступает на вход 3-боксов. В них реализуется под­ становка, имеющая, например, следующий вид:

7, 10, 13, 1, 0, 8 , 9, 15, 14, 4, 6 , 12, 4, И , 2, 5, 3

Числовое представление битового входа однозначно определяет после­ довательный номер числа в подстановке и битовое представление соответ­ ствующего числа; таким же оно будет и на выходе 3-бокса. Для каждого 3-бокса задается своя подстановка, которая является долговременным сек­ ретным ключом. Генерация подстановок в 3-боксах является сложной ма­ тематической задачей, от решения которой как раз и зависит стойкость этого алгоритма. Подобный прием служит также для развязывания раз­ личных сетей передачи данных - очевидно, что расшифрование будет успешным, если принимающая и передающая стороны используют оди­ наковые подстановки. Таким образом, в сети передачи данных абоненты с одинаковыми подстановками имеют возможность обмениваться за­ шифрованной информацией, что позволяет создавать выделенные группы пользователей с засекреченной связью.

После 3-боксов последовательность поступает в циклический регистр сдвига, который осуществляет смещение на 1 1 шагов влево. Использование

Алгоритмы блочного шифрования

49

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

Далее происходит поразрядное суммирование по модулю 2 содержимо­ го регистра циклического сдвига с содержимым регистра N 2. Результат суммирования записывается в регистр N 4, а содержимое регистра N 2 при­ нимает предыдущее значение N 1.

Все эти операции составляют один раунд преобразования (реализация функции Г) очередного блока открытого текста. Специфика различных типов применения ГО С Т вносит свои дополнения в раунды зашифрова­ ния и соответственно расшифрования.

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

В данном режиме блок открытого текста шифруется описанным выше ме­ тодом без каких-либо добавлений. Результат зашифрования после прохож­ дения 32 раундов находится в регистрах К, и N 2.

Процесс расшифрования аналогичен процессу зашифрования с той лишь разницей, что ключи считываются из К З У в следующем порядке:

• с 1-го по 8 -й раунд -

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

• с 9-го по 32-й раунд -

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

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

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

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

Выработка гаммы происходит следующим образом:

1. В накопители N 1 и N 2 записывается синхропосылка 8 длиной 64 бита.

2 . 8 шифруется в режиме простой замены, и результат зашифрования из регистров Ы! и N 2 записывается в регистры N 3 и N 4 соответственно.

50

Общие сведения по классической криптографии

3.

Содержимое регистра N 4 суммируется по модулю (232 -

1) с содержи­

 

мым регистра N 6, в котором находится константа С 1 ( 2 24 + 2 16 + 2 8 + 2 2),

 

а содержимое регистра N 5 суммируется по модулю 2 32 с содержимым

 

регистра N5, в котором находится константа С2 ( 2 24 + 2 16 + 2 8+ 1 ).

4.

Содержимое регистров N 3 и N 4 записывается в регистры

и N 2 соот­

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

5.Алгоритм генерации остальных блоков гаммы заключается в сумми­ ровании содержимого регистров N 3 и N 4 с содержимым регистров N 5

и N 6 соответственно, с сохранением результата в N3 и N4, переписыва­

нием содержимого N 3 и N 4 в N 1 и N 2 соответственно и последующем шифровании в режиме простой замены содержимого регистров ^ и N 2.

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

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

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

Шифрование в этом режиме производится путем суммирования по моду­ лю 2 блоков открытого текста с блоками выработанной гаммы. Синхро­ посылка 3 зашифровывается в режиме простой замены, и полученный результат из регистров N 1 и N 2 является первым блоком гаммы, которая суммируется по модулю 2 с первым блоком открытого текста. Блок зашиф­ рованного текста одновременно является заполнением регистров и N 2

для шифрования следующего блока открытого текста.

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

Данный режим предназначен для защиты от навязывания ложных сооб­ щений во время передачи информации по открытым каналам. Защита обеспечивается путем генерации имитовставки - отрезка информации фиксированной длины, полученного по определенному правилу из откры­ тых данных и ключа и добавленного к зашифрованным данным для обес­ печения имитозащиты. Его длина Б выбирается в зависимости от требова­ ний, выдвигаемых к системам имитозащиты в конкретных сетях передачи данных, при этом необходимо учитывать, что вероятность навязывания ложных сообщений обычно принимается равной 2~Ч