DESX

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
DESX
Создатель:

Рональд Ривест

Создан:

1984

Размер ключа:

184 бит

Размер блока:

64 бит

Число раундов:

16

Тип:

Сеть Фейстеля

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

История[править | править вики-текст]

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

Описание[править | править вики-текст]

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

\mbox{DES-X(}M) = K_2 \oplus \mbox{DES}_K (M \oplus K_1)

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

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

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

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

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

Криптостойкость[править | править вики-текст]

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

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

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]