Русская Википедия:DESX

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

История

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

Описание

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

<math>\mbox{DES-X(}M) = K_2 \oplus \mbox{DES}_K (M \oplus K_1)</math>

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

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

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

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

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

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

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

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

Ссылки

Шаблон:Симметричные криптоалгоритмы