
394 Глава 18. Криптографическая защита
c = (h(m))
d
(mod n). Здесь функция h, называемая хеш-функцией, отображает сообще-
ния произвольной длины в короткие блоки фиксированной длины, причем так, что кро-
ме блока
m подобрать другой блок z со свойством h(m) = h(z) практически невозмож-
но.
Стандарт шифрования данных DES
Стандарт шифрования данных (DES — Data Encryption Standard) принят в США в
1977 году в качестве федерального. В стандарт входит описание блочного шифра типа
шифра Файстеля, а также различных режимов его работы, как составной части несколь-
ких процедур криптографического преобразования данных. Обычно под аббревиатурой
DES понимается именно блочный шифр, который в стандарте соответствует процедуре
шифрования в
режиме электронной кодовой книги (ECB —Е1есtrоnic Соdеbооk Моdе).
Название вызвано тем, что любой блочный шифр является простым подстановочным
шифром и в этом отношении подобен кодовой книге.
Принцип работы блочного шифра
Рассмотрим принцип работы блочного шифра. Входом в блочный шифр и результа-
том его работы является блок длины
n — последовательность, состоящая из n бит. Чис-
ло
n постоянно. При необходимости шифрования сообщения длиной, большей n, оно
разбивается на блоки, каждый из которых шифруется отдельно. Различные режимы ра-
боты связаны с дополнительными усложнениями блочного шифра при переходах от
блока к блоку. В стандарте DES длина блока
n = 64.
В режиме ECB шифрование блока открытого текста
В производится за 16 однотип-
ных итераций, именуемых циклами. Схема преобразования приведена на рис. 18.7. Блок
рассматривается как конкатенация (сцепление) двух подблоков равной длины:
B = (L ,
R)
. На каждом цикле применяется свой ключ (X
i
), обычно вырабатываемый из некото-
рого основного ключа (
X). Ключи, используемые в циклах, называются подключами.
Основным элементом шифра является несекретная цикловая функция вида
Y =
f(R,X)
. Входом в цикл является выход из предыдущего цикла. Если упомянутый вход
имеет вид
(L, R), то выход имеет вид (R, L ⊕ f(R, X)), где ⊕ — поразрядное сложение
по модулю 2. Например, для выхода цикла с номером
i это означает: R
i
= L
i-1
⊕ f(R
i-1
,
X
i
), L
i
= R
i-1
(i = 1,…,16).
В режиме ЕСВ алгоритм DES зашифровывает 64-битовый блок за 16 циклов. Биты
входного блока перед первым циклом переставляются в соответствии с табл. 18.1 в ходе
так называемой начальной перестановки (
IP — initial permutation). После выхода из по-
следнего цикла
L и R переставляются местами, после чего соединяются в блок. Биты
полученного блока снова переставляются в соответствии с перестановкой
IP
-1
, обратной
начальной. Результат принимается в качестве блока шифртекста.