Triple DES
Triple DES (3DES, тройной DES) — это симметричный блочный шифр, разработанный как усиленная версия алгоритма Data Encryption Standard (DES). Он основан на трёхкратном применении шифра DES к каждому блоку данных, что позволяет значительно повысить криптостойкость по сравнению с оригинальным DES, уязвимым к атаке полным перебором ключа. Triple DES был стандартизирован в 1998 году и до недавнего времени широко применялся в финансовом секторе и других областях, где требовалась совместимость с устаревшим оборудованием.
История
Предпосылки создания
В 1970-х годах Национальное бюро стандартов США (NBS, ныне NIST) приняло DES в качестве федерального стандарта шифрования. Однако к концу 1990-х годов длина ключа DES (56 бит) стала недостаточной: в 1998 году проект Electronic Frontier Foundation (EFF) с помощью специализированной машины Deep Crack взломал DES за 56 часов. Стало очевидно, что для защиты данных требуется более стойкий алгоритм, но при этом желательно сохранить обратную совместимость с существующими реализациями DES.
Разработка и стандартизация
Идея тройного применения DES была предложена Уолтером Татчем (Walter Tuchman) в 1978 году. В 1998 году NIST опубликовал стандарт FIPS PUB 46-3, который официально утвердил Triple DES как преемника DES. В 1999 году он был включён в ANSI X9.52 для использования в финансовой индустрии. Позднее Triple DES был принят международными стандартами ISO/IEC 18033-3.
Устаревание и отказ
Несмотря на высокую стойкость, Triple DES имеет существенные недостатки: низкую скорость работы (в три раза медленнее DES) и уязвимость к атакам на основе связанных ключей. В 2017 году NIST объявил Triple DES устаревшим (deprecated), рекомендовав переходить на Advanced Encryption Standard (AES). В 2023 году NIST полностью запретил использование Triple DES для новых приложений, разрешив лишь обработку ранее зашифрованных данных.
Принцип работы
Общая схема
Triple DES применяет шифр DES три раза к каждому 64-битному блоку открытого текста. В зависимости от количества используемых ключей различают три основных варианта:
- 3DES-EEE (Encrypt-Encrypt-Encrypt): все три операции — шифрование.
- 3DES-EDE (Encrypt-Decrypt-Encrypt): шифрование — расшифрование — шифрование. Этот вариант чаще используется для совместимости с DES: если все три ключа одинаковы, то EDE превращается в обычный DES.
Режимы использования ключей
- TDEA с одним ключом (Keying Option 1): K1 = K2 = K3. Фактически эквивалентен DES, не даёт усиления стойкости. Не рекомендуется.
- TDEA с двумя ключами (Keying Option 2): K1 ≠ K2, K3 = K1. Эффективная длина ключа — 112 бит. Наиболее распространённый вариант.
- TDEA с тремя ключами (Keying Option 3): K1 ≠ K2 ≠ K3. Эффективная длина ключа — 168 бит. Обеспечивает максимальную стойкость.
Режимы шифрования
Triple DES может работать в различных режимах блочного шифрования, определённых в стандарте NIST SP 800-38A:
- ECB (Electronic Codebook): каждый блок шифруется независимо. Уязвим к атакам по шаблонам, не рекомендуется.
- CBC (Cipher Block Chaining): каждый блок XOR-ится с предыдущим зашифрованным блоком. Наиболее распространённый режим.
- CFB (Cipher Feedback), OFB (Output Feedback), CTR (Counter): режимы, превращающие блочный шифр в потоковый.
Криптостойкость
Атаки на Triple DES
- Атака полным перебором: для варианта с тремя ключами (168 бит) требуется около 2^168 операций — практически нереализуемо.
- Атака «встреча посередине» (Meet-in-the-Middle): для 3DES с двумя ключами (112 бит) сложность снижается до 2^112 операций, что всё ещё считается безопасным.
- Атака на основе связанных ключей: при определённых условиях (например, если злоумышленник может выбирать ключи) 3DES уязвим. Однако на практике такие атаки маловероятны.
- Атака по времени (Timing attack): возможна, если реализация не защищена от утечек по времени.
Сравнение с AES
AES (Rijndael) с длиной ключа 128 бит считается более стойким и быстрым, чем Triple DES. AES использует 10–14 раундов (в зависимости от длины ключа) против 48 раундов у 3DES (3 × 16 раундов DES). При этом AES обеспечивает сопоставимую или лучшую защиту при значительно меньших вычислительных затратах.
Применение
Финансовый сектор
Triple DES долгое время был стандартом в банковских системах, особенно для шифрования PIN-кодов и данных на магнитных полосах карт. Стандарты EMV (Europay, Mastercard, Visa) и ANSI X9.52 предусматривали использование 3DES.
Устаревшие системы
Многие устройства, выпущенные до 2010 года (банкоматы, POS-терминалы, смарт-карты), поддерживают только DES или 3DES. Переход на AES в таких системах требует замены аппаратного обеспечения.
Почтовые протоколы
В некоторых реализациях S/MIME и PGP использовался Triple DES для шифрования электронной почты, хотя сейчас предпочтение отдаётся AES.
Критика и ограничения
Низкая производительность
Тройное шифрование делает 3DES в 3–4 раза медленнее DES и в 6–8 раз медленнее AES на современных процессорах. Для высоконагруженных систем это критично.
Уязвимость к атакам на основе связанных ключей
В 2016 году исследователи показали, что при наличии 2^32 пар открытых и зашифрованных текстов можно восстановить ключ 3DES с двумя ключами за 2^88 операций. Хотя эта атака требует огромных ресурсов, она демонстрирует недостатки алгоритма.
Ограничение по размеру блока
64-битный блок данных делает 3DES уязвимым к атакам на основе коллизий (например, Sweet32 attack, 2016 год). При шифровании больших объёмов данных (более 32 ГБ) вероятность коллизии становится неприемлемой.
Статус в России
В Российской Федерации Triple DES не входит в список рекомендованных криптографических алгоритмов, утверждённых Федеральной службой безопасности (ФСБ). Для государственных и коммерческих систем в России используются отечественные стандарты шифрования: ГОСТ 28147-89 («Магма») и ГОСТ Р 34.12-2015 («Кузнечик»). Использование Triple DES в системах, подлежащих сертификации ФСБ, не допускается.
Будущее
С 2023 года NIST полностью запретил использование Triple DES для новых разработок. Существующие системы, использующие 3DES, должны быть мигрированы на AES или другие современные алгоритмы. В финансовом секторе переход на AES завершается, хотя некоторые устаревшие банкоматы и терминалы всё ещё поддерживают 3DES.
Источники
- NIST Special Publication 800-67 Rev. 2: «Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher» (2017).
- NIST Special Publication 800-38A: «Recommendation for Block Cipher Modes of Operation» (2001).
- NIST FIPS PUB 46-3: «Data Encryption Standard (DES)» (1999).
- ANSI X9.52: «Triple Data Encryption Algorithm Modes of Operation» (1998).
- Eli Biham, Adi Shamir: «Differential Cryptanalysis of the Data Encryption Standard» (1993).
- Sweet32 attack: Karthikeyan Bhargavan, Gaëtan Leurent: «On the Practical (In-)Security of 64-bit Block Ciphers» (2016).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →