Основные современные криптографические методы защиты электронной документации. Методы кодирования и шифрования в криптографии, страница 13

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

Подстановка относится к простейшим методам шифрования. Ключом является переставленный алфавит, буквами которого заменяют буквы нормального алфавита.  Так,  например,  если  букву  А  заменить  на  букву Б, а букву Б на букву В и т. д., то слово ОХРАНА будет выглядеть как ПЦСБОБ. В случае перестановки переставляются не буквы алфавита, а буквы в сообщении открытого текста. При этом открытый текст разбивается на отдельные сообщения, например,  по 6 символов, и в каждом сообщении буквы переставляются по определенной схеме, например, по схеме, задаваемой таблицей:

1

2

3

4

5

6

6

4

2

1

3

5

Тогда слово ОХРАНА преобразуется в слово ААХОРН. Если к результату перестановки применить описанную выше подстановку, получим ББЦПСО. При многократном чередовании простых перестановок и подстановок можно получить очень стойкий шифр (криптоалгоритм) с хорошим рассеиванием и перемешиванием.

Стандарт шифрованных данных DES – один из наиболее удачных примеров криптоалгоритма, разработанного в соответствии с принципами рассеивания и перемешивания. В нем открытый текст, криптограмма и ключ являются  двоичными  последовательностями длиной соответственно  М =64, N = 64, K = 56 бит. Криптоалгоритм представляет собой суперпозицию элементарных шрифтов, состоящую из 16 последовательных шифроциклов, в каждом из которых довольно простые перестановки с подстановками в четырехбитовых группах.

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

Преобразование блока открытого текста в блок шифрованного состоит из нескольких этапов. Прежде всего из ключа в 56 бит составляется ключевая таблица из 16 строк по 48 бит в каждой строке. Эту таблицу можно выписать в явном виде. Онако ее удобно получить с помощью следующего алгоритма. Ключ из 56 бит разбивается на два блока по 28 бит (С(0), D(0)) (рис. 5).

C(0)

 
 


         K(1)

 


           K(2)

Рис. 5

Блок-схема формирования ключевой таблицы

Далее строятся блоки (С(1), D(1)),.......(C(16),D(16)).

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

Так, заполнение (С(0), D(0)) обозначим через с12,.......с28,                                   d1, d2,......d28, то заполнение (С(1), D(1)) будет получено со сдвигом на 1 влево

Т(с12,.......с28) = (с23,.......с281),          Т(d1, d2,......d28,) = (d2,......d28,d1).

Таблица сдвигов является параметром алгоритма и имеет вид

1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1.

Строка ключа К(i) получается из (С(i), D(i)) выбором некоторых 48 координат. Таблица выбора задана, она одна и та же для всех итераций. Таким образом, на первом этапе из одного ключа в 56 бит получается 16 ключей К1, К2,......К16 по 48 бит каждый. Эти ключи помещаются в ключевую таблицу К.

Замена 64-х битов открытого текста О на 64 бита шифрованного текста Z получается путем более простых замен:

Z = F(K16)F(K15)......F(K1) O.

Отображение F открытого текста О в шифрованный текст Z удобно описать вс помощью блок-схемы (рис. 6):

 


                                                                      ............

 


Рис. 6

Блок-схема шифрования в стандарте DES

В схеме присутствуют накопители R2...R6 – фактически регистры, состоящие из ячеек памяти, где хранятся бинарные вектора. На вход сумматора, обозначенного символом  , поступают два двоичных вектора, а на выходе получается координатная сумма по модулю 2 этих векторов. Суммой векторов 010010, 110100 будет вектор 100110.