DESX
DESX | |
---|---|
Создатель | Рональд Ривест |
Создан | 1984 |
Размер ключа | 184 бит |
Размер блока | 64 бит |
Число раундов | 16 |
Тип | Сеть Фейстеля |
DESX — симметричный алгоритм шифрования, разработанный на основе блочного шифра DES (Data Encryption Standard). Данный алгоритм использует метод отбеливания ключа с целью усиления устойчивости к атакам на основе полного перебора.
История
Исходный алгоритм DES был утвержден в качестве стандарта в 1977 и имел длину ключа 56 бит ([math]\displaystyle{ 2^{56} }[/math] возможных ключей). Алгоритм подвергался критике из-за того что вычислительные мощности для полного перебора ключей были доступны крупным организациям и правительствам, в частности Агентству Национальный Безопасности США. Для увеличения длины ключа алгоритма DES без его существенной переработки криптоаналитиком Рональдом Ривестом из компании RSA был предложен алгоритм DESX в 1984 г. Повышенная стойкость алгоритма была формально продемонстрирована Джо Килиан и Филипом Роугвей в 1996 г.
Описание
Суть алгоритма состоит в том, что перед выполнением однократного DES и после него на данные операцией XOR накладываются различные 64-битные фрагменты ключа:
[math]\displaystyle{ \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]\displaystyle{ 2^{64} }[/math].
Скорость алгоритма DESX приблизительно равна скорости DES.
DESX достаточно стоек, имеет аппаратную реализацию и широко используется.
Реализация DESX включена в криптографические библиотеки BSAFE компании RSA Security с конца 80х годов.
Криптостойкость
Хотя длина ключа алгоритма DESX — 184 бита, эффективная длина ключа составляет 56 + 64 — 1 — log2(M) = 119 — log2(M) = ~119 бит, где М — число известных пар открытый текст/шифротекст. Более того длина ключа падает до 88 бит при [math]\displaystyle{ 2^{32} }[/math] известных открытых текстах и при использовании атаки на основе адаптивно подобранного открытого текста. Поэтому некоторые реализации используют ключ К2 как одностороннюю функцию от К1 и К.
DESX также увеличивает стойкость DES к дифференциальному и линейному криптоанализу, хотя улучшение не столь значительное, чем в случае атаки на основе полного перебора ключей. Для успешной атаки на алгоритм DESX дифференциальный криптоанализ потребует [math]\displaystyle{ 2^{61} }[/math] известных открытых текстов ([math]\displaystyle{ 2^{47} }[/math] для DES), а линейный криптоанализ — [math]\displaystyle{ 2^{60} }[/math] текстов([math]\displaystyle{ 2^{43} }[/math] для DES).
Ссылки
- Joe Kilian and Phillip Rogaway, How to protect DES against exhaustive key search (PDF), Advances in Cryptology — Crypto '96, Springer-Verlag (1996), pp. 252—267.
- Phillip Rogaway, The security of DESX (PostScript)
- A. Biryukov and D. Wagner, Advanced Slide Attacks, Eurocrypt 2000, Springer-Verlag (2000), pp.589-606