- •Современные симметричные криптосистемы
- •Стандарт шифрования данных (des)
- •Общая характеристика шифра
- •Общая схема процесса шифрования des
- •Надежность des
- •Структура раунда des
- •Применение s-матриц вDes
- •Вычисление подключей в des
- •Отечественный стандарт шифрования данных
- •Общая характеристика шифра
- •Процедура шифрования данных
- •Режимы работы блочных шифров
- •Общая характеристика режимов
- •Режим электронной шифровальной книги
- •Режим сцепления шифрованных блоков
- •Режим шифрованной обратной связи
- •Режим обратной связи по выходу
- •Характеристики современных симметричных блочных шифров
- •Развитие схемы Файстеля и des
Структура раунда des
На рис. 2 показана внутренняя структура алгоритма, используемого при итерациях.

Рис. 2.
Перестановки:
Начальная (IP) 8х8
Обратная начальной (IP-1) 8х8
Перестановка с расширением (E) 32->48 8х6
Перестановка (P) 4х8
1-ая перестановка для ключей PC-1 8х7
2-ая перестановка для ключей PC-2 8х7
8 S-матриц 4х16
Как и прежде, начнем рассмотрение с левой части рисунка. Левая (L) и правая (R) половины каждого 64-битового значения рассматриваются как независимые 32-битовые величины. Как и в случае любого классического шифра Файстеля, операции, выполняемые на каждой итерации, можно записать в виде следующих формул:
Li = Ri-1,
Ri = Li-1F(Ri-1,Ki).
Для любого раунда длина ключа Кi равна 48 битам, а длина элемента входных данных R — 32 битам. Сначала входное значение R расширяется до 48 битов с помощью таблицы, задающей перестановку с расширением, заключающемся в повторении 16 битов значения R. Полученное 48-битовое значение складывается с Кi с помощью операции XOR (исключающее "ИЛИ"). Результат, длина которого тоже равна 48 битам, передается функции подстановки, которая генерирует 32-битовое значение.
Применение s-матриц вDes
Роль S-матриц в функции F раскрывается иллюстрацией на рис. 3.9. Механизм подстановки определяется набором из восьми S-матриц, каждая из которых получает на вход 6 битов данных и выдает 4-битовый результат. Преобразования определяются по табл. 3.3 по следующему правилу. Первый и последний биты входного значения для матрицы Si представляют 2-битовое двоичное число, задающее одну из четырех подстановок, определяемых четырьмя строками таблицы для Si. Остальные четыре бита определяют столбец. Десятичное значение, находящееся на пересечении заданных таким образом столбца и строки, в 4-битовом представлении будет результатом. Например, если на вход Si поступает значение 011001, оно задает строку 01 (десятичное 1) и столбец 1100 (десятичное 12). На пересечении строки 1 и столбца 12 находится значение 9, поэтому результат в двоичном представлении будет иметь вид 1001.
|
S1 |
14 |
4 |
13 |
1 |
2 |
15 |
11 |
8 |
3 |
10 |
6 |
12 |
5 |
9 |
0 |
7 |
|
0 |
15 |
7 |
4 |
14 |
2 |
13 |
1 |
10 |
6 |
12 |
11 |
9 |
5 |
3 |
8 | |
|
4 |
1 |
14 |
8 |
13 |
6 |
2 |
11 |
15 |
12 |
9 |
7 |
3 |
10 |
5 |
0 | |
|
15 |
12 |
8 |
2 |
4 |
9 |
1 |
7 |
5 |
11 |
3 |
14 |
10 |
0 |
6 |
13 |
Вычисление подключей в des
Возвращаясь к рис. 3.7 и 3.8, заметим, что 56-битовые ключи, используемые в качестве входных данных алгоритма, сначала преобразуются с помощью перестановки, задаваемой таблицей первой перестановки с выбором (РС-1), табл. 3.4(а). Полученное в результате 56-битовое значение рассматривается как комбинация двух 28-битовых значений, для которых используются обозначения C0 и D0. В каждом раунде шифрования к значениям Сi-1 и Di-1 по отдельности применяются операции циклического сдвига влево (вращения) на 1 или 2 бита в соответствии с табл. 3.4(в). Полученные после сдвига значения поступают на вход следующего раунда шифрования. Те же значения подаются на вход второй перестановки с выбором (РС-2) (см. табл. 3.4(6)), с помощью которой получается 48-битовое выходное значение Кi, требуемое для выполнения функции F(Ri-1, Ki).
