Шифр DES

Шифр DES

vengeware
В предыдущей статье я подробно описал ВСЁ ПРО ШИФРОВАНИЕ. Кому интересно, можете глянуть)

Общая информация

Полное название этого алгоритма - Data Encryption Standard, впервые он был использован правительством США в конце 70-х годов. Обычно его применяют в банкоматах (для шифрования ПИН-кодов) и используют в шифровании паролей UNIX.

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

После публикации алгоритм жестко критиковался по двум причинам. Первая: критиковалась сомнительно маленькая длина ключа 56 битов, что могло сделать шифр уязвимым к атаке "грубой силой". Вторая причина: критики были обеспокоены некоторым скрытым построением внутренней структуры DES.

Они подозревали, что S-боксы имеет скрытую лазейку, которая позволит Национальному агентству по безопасности США расшифровывать сообщения без ключа. Впоследствии проектировщики IBM сообщили, что внутренняя структура была доработана, чтобы предотвратить криптоанализ. Федеральный Регистр объявил DES стандартом шифрования и он быстро стал наиболее широко используемым блочным шифром.

Структура шифра DES

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

Начальная IP и конечная IP-1 перестановки

На вход каждой из них поступает 64 бита, которые затем переставляются в соответствии с заданными таблицами. Эти перестановки взаимно обратны. Другими словами, 58-й бит на входе начальной перестановке переходит в 1-ую позицию на выходе из нее. А финальная перестановка 1-ый входной бит переведет в 58-ую позицию на выходе.

Обе перестановки не имеют никакого значения для криптографии. Причина, почему они включены в DES, не ясна и не указана проектировщиками DES. Пример начальная перестановка:

вход: 0000000000000010000000000000000000000000000000000000000000000 001

выход: 0000000000000000000000001000000000000000000000000000000000000 010

Генерация ключей

DES создает 16 раундовых ключей i k по 48 битов из ключа k шифра на 56 битов. Однако, чтобы задать ключ шифра надо среди 56 битов ключа дополнительно вписать 8 битов в позиции 8,16,...,64 для проверки четности таким образом, чтобы каждый байт содержал нечетное число единиц. С помощью этой операции выявляют ошибки при обмене и хранении ключей. Ключевое расписание состоит из этапов: 1). Перестановка сжатия для удаления битов проверки – из 64- битового ключа удаляют биты 8,16,24, 32,…,64 и переставляет остальные биты согласно таблице (в ходе перестановки сохраняется нумерация битов расширенного ключа).

2) После перестановки 56 битов ключа делятся на два блока C0 и D0 по 28 бит каждый. Далее для генерации раундовых ключей из блоков C0 и D0 с помощью операции циклического сдвига влево на 1-2 бита строятся блоки Ci и Di , i 1,2,...,16 . В раундах 1,2,9 и 16 смещение – на 1 бит, в других раундах — на 2 бита. После определения блоков Ci и Di биты этих блоков объединяются в один ключ на 56 битов.

3). Перестановка сжатия (P-бокс, таблица) изменяет 56 битов на 48 битов, которые образуют раундовый ключ.

При расшифровывании – раундовые ключи те же, что и при зашифровывании, но теперь они используются в обратном порядке !

Всем спасибо, всем удачи!

Report Page