Главная / Веб-программирование / Веб-программирование Стандарт шифрования данных

Веб-программирование Стандарт шифрования данных

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

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

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

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

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

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

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

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

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

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

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

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

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

Данная логика перестановки обычно описывается в виде таблицы из описания алгоритма 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» был подготовлен дружной командой проекта Сайтостроение от А до Я.

О нас seoexpert

продвижение сайта,seo оптимизация,поисковое продвижение,раскрутка сайтов,поисковая оптимизация,продвижение сайта в гугл,seo раскрутка,продвижение сайтов в яндексе,продвижение сайта в google,продвижение сайтов в топ 10,Оптимизация и продвижение сайтов,услуги продвижения сайта,заказать продвижение,продвижение сайтов в топ,сео раскрутка сайта

Смотрите также

Определение типа данных double в C, C++ и C#

Double – 64-разрядная переменная с плавающей запятой Тип double — это основной тип данных, который ...