Основы криптографии Учебное пособие - Алферов А.П.
ISBN 5-85438-025-0
Скачать (прямая ссылка):
Рис. 25
Преобразование, реализуемое сетью Фейстеля в / -м цикле шифрования, имеет вид
208
Ьлочные системы шифрования
Yi=X2,
Y2 =Xt Qfl(X2Jl),
(1)
где X — входной блок, разделенный на две половины X1 и X2 ,a (Y19Y2) — результат зашифрования блока X на ключе к, с помощью функции ft.
Алгоритм шифрования реализуется несколькими итерациями преобразования сети Фейстеля с использованием ключа к . При этом очередная (і -я) итерация использует в качестве входного блока X результат предыдущей итерации и ключ к,, вычисляемый определенным образом по ключу к .
Функция ft может зависеть или не зависеть от номера итерации.
Ценность преобразований подобного вида заключается в том, что даже если ft не является обратимой функцией, преобразование сети Фейстеля обратимо. В самом деле, из (1) сразу следует, что
§ 8.2. Примеры блочных шифров
Американский стандарт шифрования данных DES
Стандарт шифрования данных DES (Data Encryption Standard) опубликован Национальным бюро стандартов США в 1977 г. В 1980 г. этот алгоритм был принят Национальным институтом стандартов и технологий США (НИСТ) в качестве стандарта шифрования данных для защиты от несанкционированного доступа к важной, но несекретной
209
І лава 8
информации в государственных и коммерческих организациях США.
К достоинствам DES можно отнести простоту ключевой системы, высокую скорость аппаратной и программной реализации, достаточно высокую криптографическую стойкость алгоритма шифрования при заданной длине ключа.
Алгоритм DES, используя комбинацию ряда подстановок и перестановок, осуществляет шифрование 64-битовых блоков данных с помощью 56-битового ключа к. Схема алгоритма DES изображена на рис. 26, 27.
Рис. 26
Процесс шифрования состоит в начальной перестановке битов входного блока, шестнадцати циклах шифрования и, наконец, конечной перестановке битов.
Отметим, что все приводимые ниже таблицы являются стандартными и должны использоваться при реализации алгоритма DES в неизменном виде. Все перестановки и коды в аблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс вскрытия шифра путем подбора ключа.
210
Ьлочные системы шифрования
Рис. 27
211
/ лава 8
В приводимом ниже описании алгоритма DES использованы следующие обозначения:
L1 и R1 — левая и правая половины 64-битного блока
LA-,
® — операция побитового сложения векторов-блоков по модулю 2;
Icl — 48-битовые ключи; f — функция шифрования;
IP — начальная перестановка степени 64.
При зашифровании очередного блока T (см. рис. 27) его биты подвергаются начальной перестановке IP согласно табл. 9.
Таблица 9. Начальная перестановка 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
При этом бит 58 блока T становится битом 1, бит 50 — битом 2 и т. д. Полученный после перестановки блок IP(T)
разделяется на две половины: L0, состоящую из 32 старших
бит, и R0, состоящую из 32 младших бит.
Затем выполняется итеративный процесс шифрования, состоящий из 16 циклов преобразования Фейстеля. Пусть Tt_x = Lt_xRt_x —результат (/ — 1)-й итерации.
Тогда результат Z-й итерации T1=L1R1 определяется формулами
212
ьлочные системы шифрования
[ L -
1 --------------------------- (2)
I©/(*,_!,U Z = 1,16.
Функция f называется функцией шифрования. Ее аргументами являются 32-битовый вектор Rt_} и 48-битовый ключ kt, который является результатом преобразования 56-битового ключа шифра к. Результатом последней итерации является блок T16 = Rx6Lxe. По окончании шифрования осуществляется восстановление позиций битов применением к T1 * обратной перестановки IP 1.
При расшифровании данных все действия выполняются в обратном порядке, при этом вместо соотношений (2) следует использовать соотношения
|^(-i = А»
[L1^=R1Q/(L^kl), / = 16Д
пользуясь которыми можно “спуститься” от Z16 и i?16 к I0 и i?0 .
Схема вычисления значения функции шифрования /(i?i4,) изображенана рис 28.
Для вычисления значения функции / используются: функция расширения E; преобразование Sf, составленное из восьми преобразований S-блоков Sj,S2,...,Sg; перестановка P . Аргументами функции f являются вектор (32 бита) и вектор kt (48 бит). Функция E “расширяет” 32-битовый вектор Rt_j до 48-битового вектора EiRl^) путем дублирования некоторых битов вектора Rt_x, при этом порядок следования битов в E(R^1) указан в табл. 10.
213
/лава Ь
у
е
Si
Aj (4 8 бит)
Ss
N f
Перестановка битов P
\ /
Л^іЬ) (32 бита)
Рис. 28
Таблица 10
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
214
Ьлочные системы шифрования
Первые три бита в E(R^1) — это соответственно биты 32, 1 и 2 вектора , а последние три бита — это соответственно биты 31, 32, 1 вектора R{_}.
Полученный результат складывается побитно по модулю 2 с текущим значением ключа кг и затем представляется