Стандарт шифрования данных

Data Encryption Standard (DES) — это шифр на основе блоков симметричных ключей, разработанный национальным институтом стандартов и технологий (NIST).

Алгоритм DES является реализацией шифра Фейстеля. Он использует 16-уровневую структуру Фейстеля. Размер блока — 64 бита. Хотя длина ключа составляет 64 бита, значимая длина ключа — 56 бит, так как 8 из 64 битов ключа не используются алгоритмом шифрования (используются только для проверки битов). Общая структура стандарта приведена на рисунке ниже:

Поскольку DES основан на шифре Фейстеля, все, что требуется для его определения, это:

  • Функция уровня;
  • Список ключей;
  • Дополнительная обработка — начальная и завершающая перестановки.

Начальная и завершающая перестановки

Начальная и конечная перестановки представляют собой прямые блоки перестановки (P-боксы), которые являются обратными друг другу. Они не имеют криптографического значения в алгоритме шифрования DES. Начальные и конечные перестановки проиллюстрированы на рисунке ниже:

Начальная и завершающая перестановки

Функция уровня

Суть этого шифра заключается в функции DES, f. Функция использует 48-битный ключ к крайним правым 32 битам, чтобы сформировать 32-битовый результат:

Функция уровня

Блок перестановки с расширением, потому что вводимые данные имеют 32 бита, а ключ уровня является 48-битным. В первую очередь нам необходимо расширить вводимые данные до 48 бит. Логика перестановка графически представлена на рисунке ниже:

Функция уровня - 2

Данная логика перестановки обычно описывается в виде таблицы из описания алгоритма DES, приведенного на рисунке ниже:

XOR (отбеливатель) — после перестановки с расширением DES выполняет операцию XOR с расширенной правой секцией и ключом уровня. Ключ уровня используется только в этой операции.

Блоки замены (S-боксы) — S-боксы осуществляют фактическое смешивание. Стандарт использует 8 S-боксов, каждый из которых с 6-битным входом данных и 4-битным выходом.

Смотрите рисунок ниже:

Правило S-боксов иллюстрирует приведенный ниже рисунок:

В общей сложности есть восемь таблиц S-боксов. Выходные данные всех восьми S-боксов затем объединяются в 32-битную секцию.

Прямая перестановка — 32-битные выходные данные S-боксов затем подвергают прямой перестановке с помощью правила, показанного на рисунке ниже:

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

Генератор ключей уровня создает шестнадцать 48-битных ключей из 56-битного ключа шифра. Процесс генерации ключей показан на рисунке ниже:

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

Логика для введения равнозначных данных, сдвига и P-бокса сжатия, приводится в описании алгоритма DES схемы.

Анализ DES

Коммутатор DES удовлетворяет обоим требуемым свойствам блочного шифра. Эти два свойства делают шифр надежным.

  • Лавинообразный эффект — небольшое изменение открытого текста приводит к огромным изменениям в шифрованном тексте;
  • Полнота — каждый бит шифрованного текста зависит от многих битов открытого текста.

В течение последних нескольких лет в результате криптоанализа были выявлены некоторые недостатки стандарта в случае, когда выбирались ненадежные ключи. Этого следует избегать.

Алгоритм шифрования данных DES показал себя как хорошо продуманный блочный шифр. Кроме перебора ключей не было выявлено никаких других криптоаналитических возможностей взломать его.

Вадим Дворниковавтор-переводчик статьи «Data Encryption Standard»