В составных шифрах в качестве элементарных составляющих чаще всего используются простые подстановки и перестановки.
Подстановка относится к простейшим методам шифрования. Ключом является переставленный алфавит, буквами которого заменяют буквы нормального алфавита. Так, например, если букву А заменить на букву Б, а букву Б на букву В и т. д., то слово ОХРАНА будет выглядеть как ПЦСБОБ. В случае перестановки переставляются не буквы алфавита, а буквы в сообщении открытого текста. При этом открытый текст разбивается на отдельные сообщения, например, по 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).
|
||||
K(1)
K(2)
Рис. 5
Блок-схема формирования ключевой таблицы
Далее строятся блоки (С(1), D(1)),.......(C(16),D(16)).
Каждый следующий блок получается циклическим сдвигом из предыдущего. Сдвиг осуществляется на 1 или 2 шага влево.
Так, заполнение (С(0), D(0)) обозначим через с1,с2,.......с28, d1, d2,......d28, то заполнение (С(1), D(1)) будет получено со сдвигом на 1 влево
Т(с1,с2,.......с28) = (с2,с3,.......с28,с1), Т(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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.