Принцип работы блочного шифра
Рассмотрим принцип работы блочного шифра. Входом в блочный шифр и результатом его работы является блок длины n — последовательность, состоящая из n бит. Число n постоянно. При необходимости шифрования сообщения длиной, большей n, оно разбивается на блоки, каждый из которых шифруется отдельно. Различные режимы работы связаны с дополнительными усложнениями блочного шифра при переходах от блока к блоку. В стандарте DES длина блока n = 64.
В режиме ECB шифрование блока открытого текста В производится за 16 однотипных итераций, именуемых циклами. Схема преобразования приведена на рис. 18.7. Блок рассматривается как конкатенация (сцепление) двух подблоков равной длины: B = (L , R). На каждом цикле применяется свой ключ (Xi), обычно вырабатываемый из некоторого основного ключа (X). Ключи, используемые в циклах, называются подключами.
Основным элементом шифра является несекретная цикловая функция вида Y = f(R,X). Входом в цикл является выход из предыдущего цикла. Если упомянутый вход имеет вид (L, R), то выход имеет вид (R, L Å f(R, X)),
где Å — поразрядное сложение по модулю 2. Например, для выхода цикла с номером i
это означает: Ri = Li-1 Å f(Ri-1, Xi), Li = Ri-1 (i = 1,…,16).
В режиме ЕСВ алгоритм DES зашифровывает 64-битовый блок за 16 циклов. Биты входного блока перед первым циклом переставляются в соответствии с табл.18.1 в ходе так называемой начальной перестановки (IP — initial permutation). После выхода из последнего цикла L и R
переставляются местами, после чего соединяются в блок. Биты полученного блока снова переставляются в соответствии с перестановкой IP-1, обратной начальной. Результат принимается в качестве блока шифртекста.
Рис. 18.7.
Блок-схема работы алгоритма DES
Таблица 18.1.
Начальная перестановка 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 |