Открыть сервис

DESX

DESX — это симметричный блочный шифр, модификация алгоритма DES (Data Encryption Standard), разработанная компанией RSA Laboratories (ныне подразделение корпорации EMC, входит в Dell Technologies) в 1990-х годах. Основная цель создания DESX заключалась в повышении стойкости классического DES к атаке полным перебором ключа (brute-force) без изменения внутренней структуры шифра. DESX использует 64-битный блок и 120-битный ключ, что делает его более устойчивым к линейному и дифференциальному криптоанализу, а также к атаке «встреча посередине» (meet-in-the-middle).

История

Алгоритм DES был принят в качестве стандарта шифрования в США в 1977 году и использовался в банковской сфере, правительственных учреждениях и коммерческих приложениях. Однако к началу 1990-х годов его 56-битный ключ стал уязвимым для атак полным перебором: в 1998 году проект Electronic Frontier Foundation (EFF) с помощью специализированного устройства «Deep Crack» взломал DES за 56 часов. Для продления срока службы алгоритма без радикальной замены инфраструктуры RSA Laboratories предложила простую модификацию — DESX.

В 1999 году алгоритм был опубликован в техническом отчёте RSA Laboratories. DESX не стал официальным стандартом (например, ANSI или NIST), но нашёл применение в ряде коммерческих продуктов, включая ранние версии шифрования в Microsoft Windows (например, в системе шифрования файлов EFS). Позднее, с появлением более надёжных алгоритмов (AES, Triple DES), DESX утратил актуальность.

Устройство и принцип работы

DESX основан на стандартном DES, но с дополнительными операциями наложения ключа до и после основного преобразования. Формально шифрование DESX описывается как:

\[ C = K_3 \oplus DES_{K_1}(P \oplus K_2) \]

где:

  • \(P\) — 64-битный открытый текст;
  • \(C\) — 64-битный шифротекст;
  • \(K_1\) — 56-битный ключ DES (внутренний);
  • \(K_2\) и \(K_3\) — 64-битные ключи (внешние «отбеливающие» ключи);
  • \(\oplus\) — операция побитового исключающего ИЛИ (XOR);
  • \(DES_{K_1}\) — шифрование по алгоритму DES с ключом \(K_1\).

Общий ключ DESX имеет длину 56 + 64 + 64 = 184 бита, однако эффективная длина ключа с учётом атаки «встреча посередине» оценивается в 119 бит (с округлением до 120 бит). Это значительно выше, чем у DES (56 бит), и сопоставимо с Triple DES (112 или 168 бит).

Отличия от DES

  • Дополнительное отбеливание: перед шифрованием DES открытый текст XORится с ключом \(K_2\), а после шифрования результат XORится с ключом \(K_3\). Это усложняет атаки полным перебором и линейный криптоанализ.
  • Сохранение внутренней структуры: все раунды DES (16 раундов, S-блоки, перестановки) остаются без изменений, что упрощает аппаратную реализацию на существующих чипах DES.
  • Увеличение ключа: ключ DESX в 3,3 раза длиннее ключа DES, что делает прямой перебор практически невозможным.

Криптоанализ и стойкость

DESX был разработан для защиты от атак, которые угрожали классическому DES:

  • Атака полным перебором: для DESX требуется перебор \(2^{120}\) вариантов ключа, что на порядки превышает возможности современных вычислительных систем (по состоянию на 2025 год). Однако теоретически возможна атака «встреча посередине» с трудоёмкостью \(2^{119}\) операций, что всё равно остаётся недостижимым для практических целей.
  • Линейный криптоанализ: отбеливание ключами \(K_2\) и \(K_3\) не влияет на внутреннюю структуру DES, поэтому DESX сохраняет ту же уязвимость к линейному криптоанализу, что и DES (требуется около \(2^{47}\) известных открытых текстов). Однако на практике такой объём данных редко доступен атакующему.
  • Дифференциальный криптоанализ: аналогично, DESX не улучшает защиту от дифференциальных атак по сравнению с DES (требуется \(2^{47}\) выбранных открытых текстов).

В 1998 году криптографы Джо Килман и Филипп Рогэвей доказали, что DESX устойчив к атакам «встреча посередине» с эффективной длиной ключа 119 бит. В 2000 году была предложена атака с использованием связанных ключей (related-key attack), но она требовала нереалистичных условий (например, доступа к шифрованию на связанных ключах).

Применение

DESX использовался в следующих областях:

  • Программное обеспечение: в ранних версиях Microsoft Windows (Windows 2000, Windows XP) для шифрования файлов в системе EFS (Encrypting File System) применялся DESX как один из алгоритмов по умолчанию.
  • Банковские системы: некоторые финансовые учреждения использовали DESX как временную меру для защиты данных при переходе с DES на Triple DES или AES.
  • Аппаратные модули безопасности (HSM): в некоторых HSM поддерживался DESX для обратной совместимости с устаревшими протоколами.

С 2000-х годов DESX практически вытеснен более современными алгоритмами: AES (Rijndael), Triple DES (TDEA) и ГОСТ 28147-89 («Магма»). В 2023 году Национальный институт стандартов и технологий США (NIST) официально объявил DES устаревшим, что автоматически распространяется и на его модификации, включая DESX.

Критика

Основные недостатки DESX:

  • Слабая защита от линейного криптоанализа: внутренняя структура DES не была изменена, поэтому DESX уязвим к тем же атакам, что и DES, при условии большого объёма известных открытых текстов.
  • Неэффективность против атак по сторонним каналам: отбеливание ключами не защищает от атак, основанных на анализе времени выполнения, энергопотребления или электромагнитного излучения.
  • Устаревшая архитектура: 64-битный блок шифра делает DESX уязвимым для атак на основе коллизий (например, атака «день рождения»), особенно при шифровании больших объёмов данных (более \(2^{32}\) блоков).
  • Отсутствие стандартизации: DESX не был принят ни одним международным или национальным органом стандартизации, что ограничивало его использование в критических приложениях.

Интересные факты

  • Название «DESX» расшифровывается как «DES eXtended» или «DES with XOR».
  • Алгоритм был запатентован RSA Laboratories (патент США № 5,675,649), но патент истёк в 2015 году.
  • В 1999 году компания RSA Laboratories предложила вариант DESX с 64-битным ключом \(K_2\) и 64-битным ключом \(K_3\), но в некоторых реализациях \(K_2\) и \(K_3\) были равны, что снижало стойкость до 119 бит.
  • DESX упоминается в книге «Applied Cryptography» Брюса Шнайера как пример простого улучшения DES.

Источники

  • Kilian J., Rogaway P. How to Protect DES Against Exhaustive Key Search (1996).
  • RSA Laboratories. Technical Report TR-001: The DESX Algorithm (1999).
  • Menezes A., van Oorschot P., Vanstone S. Handbook of Applied Cryptography (1996).
  • Schneier B. Applied Cryptography: Protocols, Algorithms, and Source Code in C (1996).
  • NIST Special Publication 800-67: Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher (2017).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →