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

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 бит). Этот вариант менее стойкий.

Процесс шифрования

Алгоритм выполняет три последовательные операции:

  1. Шифрование первого блока открытого текста с использованием ключа K1 (функция DES).
  2. Дешифрование результата с использованием ключа K2 (функция DES-1).
  3. Шифрование полученного результата с использованием ключа 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

Параметр3DESAES
Размер блока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 →