DESX

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

DESX
Создатель Рональд Ривест
Создан 1984
Размер ключа 184 бит
Размер блока 64 бит
Число раундов 16
Тип Сеть Фейстеля

История

Исходный алгоритм DES был утвержден в качестве стандарта в 1977 и имел длину ключа 56 бит (  возможных ключей). Алгоритм подвергался критике из-за того что вычислительные мощности для полного перебора ключей были доступны крупным организациям и правительствам, в частности Агентству Национальный Безопасности США. Для увеличения длины ключа алгоритма DES без его существенной переработки криптоаналитиком Рональдом Ривестом из компании RSA был предложен алгоритм DESX в 1984 г. Повышенная стойкость алгоритма была формально продемонстрирована Джо Килиан и Филипом Роугвей в 1996 г.

Описание

Суть алгоритма состоит в том, что перед выполнением однократного DES и после него на данные операцией XOR накладываются различные 64-битные фрагменты ключа:

 

Таким образом, длина ключа увеличивается до 56 + 2 × 64 = 184 бит.

DESX полностью совместим с алгоритмом DES в случае, если К1 = К2 = 0. Авторы алгоритма дают ряд несложных рекомендаций, позволяющих использовать переменный размер ключа шифрования, предварительно применив к нему хеширование алгоритмом SHA-1. Кроме того, авторы алгоритма допускают использование 120-битного ключа шифрования, при этом К1 устанавливается равным К2. Существует вариант DESX, также разработанный компанией RSA, со 120-битным ключом, состоящим из К и К1, а значение К2 является функцией всех 16 байтов ключа шифрования. Известен еще один вариант алгоритма DESX, в котором вместо обеих операций XOR выполняется сложение по модулю  .

Скорость алгоритма DESX приблизительно равна скорости DES.

DESX достаточно стоек, имеет аппаратную реализацию и широко используется.

Реализация DESX включена в криптографические библиотеки BSAFE компании RSA Security с конца 80х годов.

Криптостойкость

Хотя длина ключа алгоритма DESX — 184 бита, эффективная длина ключа составляет 56 + 64 — 1 — log2(M) = 119 — log2(M) = ~119 бит, где М — число известных пар открытый текст/шифротекст. Более того длина ключа падает до 88 бит при   известных открытых текстах и при использовании атаки на основе адаптивно подобранного открытого текста. Поэтому некоторые реализации используют ключ К2 как одностороннюю функцию от К1 и К.

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

Ссылки