Процедура формирования подключей




Принцип работы блочного шифра

Рассмотрим принцип работы блочного шифра. Входом в блочный шифр и результатом его работы является блок длины n — последовательность, состоящая из n бит. Число n постоянно. При необходимости шифрования сообщения длиной, большей n, оно разбивается на блоки, каждый из которых шифруется отдельно. Различные режимы работы связаны с дополнительными усложнениями блочного шифра при переходах от блока к блоку. В стандарте DES длина блока n = 64.

В режиме ECB шифрование блока открытого текста В производится за 16 однотипных итераций, именуемых циклами. Схема преобразования приведена на рис. 1.1. Блок рассматривается как конкатенация (сцепление) двух подблоков равной длины: 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 циклов. Биты входного блока перед первым циклом переставляются в соответствии с табл. 1.1 в ходе так называемой начальной перестановки (IP — initial permutation). После выхода из последнего цикла L и Rпереставляются местами, после чего соединяются в блок. Биты полученного блока снова переставляются в соответствии с перестановкой IP-1, обратной начальной. Результат принимается в качестве блока шифртекста.

Рис. 1.1 Блок-схема работы алгоритма DES

Таблица 1.1. Начальная перестановка IP

               
               
               
               
               
               
               
               

Процедура формирования подключей

Рис. 1.2 Формирование подключей

На каждом цикле (рис. 1.2) из ключа X длиной 56бит формируется ключ Xi размером 48 бит. Сам ключ X размещается в восьмибайтовом слове, причем восьмые разряды каждого байта являются контрольными и в ключ не входят. Перед шифрованием, в соответствии с процедурой выбора PC1 (табл. 1.2), из X выбираются 56 бит, которыми заполняются два регистра (C и D) длиной 28 бит каждый. В дальнейшем, при входе в очередной цикл с номером i, регистры сдвигаются циклически влево. Величина сдвига зависит от номера цикла, ноявляется фиксированной и заранее известна. После сдвига оба подблока объединяются в порядке (C, D). Затем, в соответствии с функцией выбора PC2 (табл. 1.3), из них выбираются 48 бит подключа Xi. Шифрование и расшифровывание отличаются направлением сдвигов (табл. 1.4).

Таблица 1.2 Преобразование PC1

Заполнение С Заполнение D
                           
                           
                           
                           

Таблица 1.3 Преобразование PC2

               
               
               
               
               
               

Выбор битов по таблицам 1.2–1.4 из соответствующих блоков производится следующим образом. Таблица рассматривается как последовательность ее строк, записанных друг за другом, начиная с первой строки. Биты блока данных соответствующей длины нумеруются слева направо, начиная с единицы. Каждый элемент s таблицы рассматривается, как номер бита bs в блоке данных. Преобразование заключается в замене всех элементов s на биты bs.

Таблица 1.4. Соответствие сдвигов номерам циклов DES

Номер цикла                                
Сдвиг влево (шифрование)                                
Сдвиг вправо (расшифровывание)                                

 

Цикловая функция производит следующие действия.

1. Расширение блока Ri-1 до 48 бит за счет повторения битов блока с помощью функции расширения EP (табл. 1.5).

2. Поразрядное сложение результата с ключомXi.

3. Преобразование полученной суммы с помощью замены (используя так называемые S-блоки), в результате которого получается блок длиной 32 бит.

4. Применение перестановки P (табл. 1.6), что дает значение функции
Y = f(R,X).

Таблица 1.5 Преобразование EP Таблица 1.6 Перестановка P

                             
                             
                             
                             
                             
                             
                             
                             


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: