Алгоритм шифрования DES – описание

Данные шифруются 64-битными блоками на основе 56-битного ключа (ключ 64-битный, но используются в нем только 56 бит). Для расшифровки используется тот же ключ. Зашифровка состоит из предварительного перемешивания, 16 одинаковых по структуре итераций и заключительного перемешивания посредством перестановки, обратной начальной.

На каждой итерации используется , строго говоря, не 56-битный ключ Алгоритм шифрования DES – описание - student2.ru , а выбранные из него подключи Алгоритм шифрования DES – описание - student2.ru по 48 битов каждый.

Рассмотрим алгоритм порождения подключей:

1. В цикле от 1 до 16 выполнить:

2. Ключ Алгоритм шифрования DES – описание - student2.ru разделить на две части: Алгоритм шифрования DES – описание - student2.ru и Алгоритм шифрования DES – описание - student2.ru ; в первый поместить левые 28 битов, а во второй – правые 28 битов.

3. Прокрутить циклически влево каждый подключ на число битов, заданное в таблице и оставить из 28 битов первые 24, получив укороченные подключи Алгоритм шифрования DES – описание - student2.ru и Алгоритм шифрования DES – описание - student2.ru ;

4. Конкатенировать Алгоритм шифрования DES – описание - student2.ru с Алгоритм шифрования DES – описание - student2.ru и запомнить укороченный 48-битовый ключ Алгоритм шифрования DES – описание - student2.ru ; конкатенировать Алгоритм шифрования DES – описание - student2.ru и Алгоритм шифрования DES – описание - student2.ru , чтобы получить полный 56-битный ключ для начала следующей итерации.

5. end

После начального перемешивания 64-битный блок делится на две половины. Правая часть без изменений переносится в левую часть следующей итерации, а левая часть предыдущей итерации подвергается четырем преобразованиям, прежде чем стать правой частью следующей итерации.

Преобразование Р2. 32 бита входного слова делятся на 8 четверок, а потом каждая четверка преобразуется в шестерку. Таким образом, входное 32-битное слово преобразуется в 48-битное.

Схема алгоритма:

Алгоритм шифрования DES – описание - student2.ru

где:

Text исходный текст (блок 64 бита)
Crypt зашифрованный блок
Key 64-х разрядный ключ
Числа разрядность на данной ветке алгоритма
P, Pk перестановки
S подстановка 6 бит Алгоритм шифрования DES – описание - student2.ru 4 бита
L(i) сдвиг (i - номер итерации)
xor сложение по модулю 2 (поразрядное сложение двоичных чисел, без переноса лишней единицы в старший разряд)
Алгоритм шифрования DES – описание - student2.ru конкатенация битовых строк, причем верхняя - спереди
Алгоритм шифрования DES – описание - student2.ru разбиение строки на две, причем первая - наверху
Алгоритм шифрования DES – описание - student2.ru ограниченный точками участок повторяется 16 раз

Перестановки выполняются по обычной формуле D[i]=S[P[i]], где

S исходная строка (массив символов, нумерация с единицы)
D результат перестановки (массив символов, нумерация с единицы)
P таблица перестановок (массив индексов в строке S)

S - подстановка 6 Алгоритм шифрования DES – описание - student2.ru 4. 48-битный результат предыдущей операции делится на 8 шестерок, и каждая шестерка преобразуется в четверку по своей таблице. Каждая из таблиц S1, S2, …, S8 состоит из 16-тиричных (то есть 4-битовых) чисел, содержит 4 строки с номерами 0, 1, 2, 3 и 16 столбцов с номерами 0, 1, 2, …, 15. Подстановка производится по следующему правилу: пусть исходная битовая строка - /abcdef/, тогда /af/ - номер строки, а /bcde/ - номер столбца. Строка и столбец определяют местонахождение результата в S-таблице. Например, при использовании таблицы S6, число 58 (111010) переводится в 13 (1101).

Помимо обычного его применения, этот алгоритм можно использовать для создания "односторонних" функций. Для этого ключ и исходный текст меняются местами: в формуле Crypt=DES(Text,Key) исходный текст может быть несекретным и фиксированным. А Crypt рассматривается как функция ключа - Key.

Наши рекомендации