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

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

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

des_structure

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

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

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

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

final_permutation

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

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

round_function

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

permutation_logic

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

des_specification

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

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

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

s-boxes

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

s_box_rule

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

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

straight_permutation

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

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

key_generation

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

Анализ DES

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

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

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

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

Перевод статьи «Data Encryption Standard» был подготовлен дружной командой проекта Сайтостроение от А до Я.

30 марта 2016 в 18:16
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок