3DES
3DES (Triple Data Encryption Standard, тройной стандарт шифрования данных) — это симметричный блочный шифр, разработанный на основе более раннего алгоритма DES (Data Encryption Standard). Он применяется для защиты данных путём последовательного шифрования каждого блока информации три раза с использованием двух или трёх независимых ключей. 3DES был создан как временное решение для повышения криптостойкости DES, который к концу 1990-х годов стал уязвим для атак полным перебором.
История
Предпосылки создания
Стандарт DES, принятый Национальным институтом стандартов и технологий США (NIST) в 1977 году, использовал 56-битный ключ. К началу 1990-х годов развитие вычислительной техники сделало возможным подбор ключа методом полного перебора. В 1997 году был взломан DES-зашифрованный текст в рамках открытого конкурса, а в 1998 году организация Electronic Frontier Foundation (EFF) с помощью специализированного устройства «Deep Crack» продемонстрировала возможность взлома DES за 56 часов. Это потребовало разработки более стойкого алгоритма.
Разработка и стандартизация
Концепция тройного шифрования была предложена Уолтером Тачменом (Walter Tuchman) в 1978 году. В 1999 году NIST опубликовал стандарт FIPS PUB 46-3, в котором 3DES был официально признан временной заменой DES. Алгоритм также был включён в международный стандарт ISO/IEC 18033-3. В течение 2000-х годов 3DES широко применялся в финансовых системах (банкоматы, платёжные терминалы), протоколах SSH и TLS.
Вывод из эксплуатации
С развитием криптоанализа и появлением более эффективных атак (например, атака на основе связанных ключей) 3DES перестал считаться безопасным. В 2016 году NIST рекомендовал прекратить использование 3DES к 2023 году. В 2018 году NIST объявил о полном выводе алгоритма из эксплуатации, рекомендовав перейти на AES (Advanced Encryption Standard). С 2024 года 3DES не поддерживается в большинстве современных криптографических библиотек и протоколов.
Алгоритм работы
Основные параметры
3DES является блочным шифром, работающим с блоками данных фиксированного размера — 64 бита (8 байт). Размер ключа зависит от режима:
- 3DES-EEE с тремя ключами (3TDEA) — три независимых ключа (K1, K2, K3), общая длина 168 бит (3 × 56 бит).
- 3DES-EDE с двумя ключами (2TDEA) — два ключа (K1 = K3, K2), общая длина 112 бит (2 × 56 бит). Этот вариант менее стойкий.
Процесс шифрования
Алгоритм выполняет три последовательные операции:
- Шифрование первого блока открытого текста с использованием ключа K1 (функция DES).
- Дешифрование результата с использованием ключа K2 (функция DES-1).
- Шифрование полученного результата с использованием ключа K3 (функция DES).
Режим EDE (Encrypt-Decrypt-Encrypt) обеспечивает совместимость с DES: если все три ключа одинаковы, 3DES эквивалентен однократному DES.
Режимы работы
3DES поддерживает стандартные режимы блочных шифров:
- ECB (Electronic Codebook) — каждый блок шифруется независимо. Уязвим для атак по шаблонам.
- CBC (Cipher Block Chaining) — каждый блок XOR-ится с предыдущим зашифрованным блоком. Требует вектор инициализации (IV).
- CFB, OFB, CTR — режимы, превращающие блочный шифр в потоковый.
Криптостойкость
Атаки на 3DES
- Атака полным перебором: для 3TDEA (168-битный ключ) требует 2^168 операций — практически невыполнимо. Для 2TDEA (112-битный ключ) — 2^112 операций.
- Атака «встреча посередине» (Meet-in-the-Middle): снижает эффективную стойкость 3DES до 112 бит для 3TDEA и до 56 бит для 2TDEA. Требует больших объёмов памяти (2^56 блоков).
- Атака на основе связанных ключей: использует уязвимости в структуре DES. В 2016 году группа исследователей (Kelsey, Schneier, Wagner) показала, что 3DES с двумя ключами может быть взломан за 2^80 операций при определённых условиях.
- Атака по сторонним каналам: анализ времени выполнения, энергопотребления или электромагнитного излучения может раскрыть ключ.
Сравнение с AES
| Параметр | 3DES | AES |
|---|---|---|
| Размер блока | 64 бита | 128 бит |
| Размер ключа | 112 или 168 бит | 128, 192 или 256 бит |
| Скорость шифрования | ~3-5 МБ/с (программная реализация) | ~50-100 МБ/с |
| Стойкость к квантовым атакам | Уязвим (алгоритм Гровера снижает стойкость до 56 бит) | Более устойчив |
Применение
Финансовый сектор
До середины 2010-х годов 3DES был основным алгоритмом в банковских системах:
- Шифрование PIN-кодов в банкоматах (стандарт ANSI X9.52).
- Защита данных на магнитных полосах карт.
- Протоколы EMV (Europay, Mastercard, Visa) для чиповых карт.
Протоколы передачи данных
- SSL/TLS: до версии 1.3 поддерживал 3DES в наборе шифров (TLS_RSA_WITH_3DES_EDE_CBC_SHA). В 2019 году IETF объявил 3DES устаревшим для TLS.
- SSH: использовался в некоторых реализациях (OpenSSH до версии 7.6).
- IPsec: мог применяться в режиме ESP (Encapsulating Security Payload).
Недостатки и критика
Малый размер блока
64-битный блок делает 3DES уязвимым для атаки Sweet32 (2016 год). После шифрования ~32 ГБ данных (2^32 блоков) коллизии блоков становятся вероятными, что позволяет восстановить открытый текст.
Низкая производительность
Программные реализации 3DES в 10-20 раз медленнее AES из-за трёхкратного выполнения операций DES. Аппаратные реализации (например, в банкоматах) также уступают AES по скорости.
Устаревшая архитектура
DES был спроектирован для аппаратной реализации 1970-х годов. Его S-блоки и перестановки оптимизированы под 8-битные микропроцессоры, что снижает эффективность на современных 64-битных архитектурах.
Интересные факты
- 3DES иногда называют «DESede» или «DEA-3» (Data Encryption Algorithm-3) в документах ANSI.
- Алгоритм использовался в криптографической системе «Криптон» (разработка СССР/России) для защиты государственных секретов в 1990-х годах.
- В 2018 году NIST опубликовал отчёт, в котором признал, что 3DES не соответствует современным требованиям безопасности, и рекомендовал полный переход на AES к 2023 году.
Источники
- National Institute of Standards and Technology. FIPS PUB 46-3: Data Encryption Standard (DES). — 1999.
- National Institute of Standards and Technology. NIST Special Publication 800-67: Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher. — 2012 (revised 2017).
- Kelsey J., Schneier B., Wagner D. Key-Schedule Cryptanalysis of 3DES // Journal of Cryptology. — 2016.
- Bhargavan K., Leurent G. Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN // Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. — 2016.
- International Organization for Standardization. ISO/IEC 18033-3: Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers. — 2010.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →