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

Triple Data Encryption Algorithm

Triple Data Encryption Algorithm (TDEA, также известный как Triple DES, 3DES) — это симметричный блочный шифр, основанный на трёхкратном применении алгоритма Data Encryption Standard (DES) к каждому блоку данных. TDEA был разработан для повышения стойкости DES, ключ которого (56 бит) стал уязвим для атак полным перебором. Алгоритм использует ключи длиной 112 или 168 бит и обеспечивает значительно более высокий уровень защиты, чем исходный DES, хотя в XXI веке считается устаревшим и не рекомендованным для новых разработок.

История

Предпосылки создания

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

Разработка и стандартизация

Идея тройного применения DES была предложена Уолтером Тачменом (Walter Tuchman) в 1979 году. Первоначально TDEA использовался в финансовом секторе, где требовалась обратная совместимость с DES. В 1999 году алгоритм был формализован в стандарте ANSI X9.52, а затем включён в федеральный стандарт США FIPS PUB 46-3. В 2005 году TDEA был описан в международном стандарте ISO/IEC 18033-3. Национальный институт стандартов и технологий США (NIST) рекомендовал TDEA как временную замену DES до внедрения Advanced Encryption Standard (AES).

Статус на 2025 год

В 2017 году NIST объявил о постепенном выводе TDEA из эксплуатации, разрешив его использование только для legacy-систем до 2023 года. В 2023 году NIST официально запретил применение TDEA для новых систем, рекомендовав AES. Многие международные организации, включая PCI DSS (стандарт безопасности данных платёжных карт), также перестали принимать TDEA в качестве допустимого алгоритма шифрования.

Принцип работы

Общая схема

TDEA применяет алгоритм DES трижды к каждому 64-битному блоку данных. В зависимости от режима использования ключей, возможны три варианта:

  • TDEA с тремя ключами (3TDEA): используются три независимых 56-битных ключа (K1, K2, K3), общая длина ключа — 168 бит.
  • TDEA с двумя ключами (2TDEA): используются два ключа (K1 и K2), причём K3 = K1, общая длина — 112 бит.
  • TDEA с одним ключом: все три ключа равны, что эквивалентно обычному DES (не рекомендуется).

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

Для каждого блока данных выполняется последовательность:

  1. Шифрование с ключом K1 (E_K1).
  2. Дешифрование с ключом K2 (D_K2).
  3. Шифрование с ключом K3 (E_K3).

Формула: C = E_K3(D_K2(E_K1(P))), где P — открытый текст, C — шифротекст.

Использование дешифрования на втором шаге не является ошибкой: оно позволяет сделать алгоритм обратно совместимым с DES (если все три ключа равны, TDEA превращается в DES). Кроме того, такая конструкция повышает стойкость к некоторым криптоаналитическим атакам.

Режимы работы

TDEA может использоваться в различных режимах блочного шифрования, определённых в стандарте NIST SP 800-38A:

  • ECB (Electronic Codebook): каждый блок шифруется независимо, что делает его уязвимым для атак по шаблонам.
  • CBC (Cipher Block Chaining): каждый блок XOR-ится с предыдущим шифротекстом перед шифрованием.
  • CFB, OFB, CTR: режимы, превращающие блочный шифр в поточный.

На практике для TDEA чаще всего использовался режим CBC.

Криптостойкость

Теоретическая стойкость

Эффективная длина ключа TDEA с тремя ключами составляет 168 бит, что делает атаку полным перебором (2^168 операций) практически невозможной. Однако из-за особенностей алгоритма существуют более эффективные атаки:

  • Атака «встреча посередине» (meet-in-the-middle): для 2TDEA снижает сложность до 2^112 операций, для 3TDEA — до 2^112 (при известных открытых текстах). На практике это всё ещё считается безопасным, но требует больших объёмов памяти.
  • Атака на связанные ключи (related-key attack): в 2010 году группа исследователей (Киёси Като, Кодзи Накамура и др.) показала, что при определённых условиях 3TDEA может быть взломан с трудоёмкостью 2^99,5 операций, что ниже теоретического предела.

Практическая уязвимость

Основная проблема TDEA — его 64-битный размер блока. При шифровании больших объёмов данных (более 2^32 блоков, то есть около 32 ГБ) возникает эффект «дня рождения»: вероятность коллизии блоков становится значительной, что позволяет атаковать шифр через анализ повторяющихся блоков. В 2016 году исследователи показали, что для TDEA в режиме CBC атака Sweet32 позволяет восстановить часть открытого текста при шифровании трафика HTTPS.

Применение

Финансовый сектор

TDEA широко применялся в банковских системах для шифрования PIN-кодов, номеров карт и транзакций. Стандарты ISO 9564 (PIN-блоки) и ANSI X9.24 (управление ключами) долгое время базировались на TDEA. В России TDEA использовался в некоторых платёжных решениях, но с 2018 года Центральный банк РФ рекомендовал переход на ГОСТ 28147-89 и AES.

Электронная коммерция

Протоколы SSL/TLS до версии 1.2 поддерживали TDEA в качестве одного из алгоритмов шифрования. Однако с 2016 года все основные браузеры (Chrome, Firefox, Safari) прекратили поддержку TDEA из-за атаки Sweet32.

Наследие (legacy)

Многие старые системы, включая банкоматы, POS-терминалы и серверы баз данных, продолжают использовать TDEA. Миграция на AES требует замены аппаратного обеспечения, что в ряде случаев экономически нецелесообразно.

Сравнение с другими алгоритмами

ХарактеристикаTDEA (3DES)AES-256ГОСТ 28147-89
Длина ключа112/168 бит256 бит256 бит
Размер блока64 бита128 бит64 бита
Скорость (программная)НизкаяВысокаяСредняя
Аппаратная поддержкаШирокая (устаревшая)СовременнаяОграниченная
СтатусЗапрещён NISTРекомендованДопустим в РФ

Критика и недостатки

Низкая производительность

Трёхкратное применение DES делает TDEA в три раза медленнее исходного алгоритма. В программных реализациях скорость шифрования TDEA составляет около 10–20 МБ/с (на процессорах 2010-х годов), тогда как AES-256 достигает 200–500 МБ/с.

Устаревшая архитектура

64-битный блок — главный недостаток TDEA. Современные алгоритмы (AES, ChaCha20) используют блоки 128 бит и более, что исключает атаки на основе коллизий. Кроме того, TDEA не поддерживает аутентифицированное шифрование (AEAD) без дополнительных протоколов.

Проблемы совместимости

Из-за различных режимов работы и вариантов ключей (2TDEA vs 3TDEA) возможны ошибки при взаимодействии систем. Например, некоторые реализации по умолчанию используют 2TDEA, что снижает стойкость.

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

  • TDEA иногда называют «DES-EDE» (Encrypt-Decrypt-Encrypt) из-за последовательности операций.
  • В 1999 году группа учёных из MIT и IBM предложила модификацию TDEA с 56-битным ключом, но она не была принята.
  • В России TDEA не входил в состав государственных стандартов шифрования (ГОСТ), но использовался в коммерческих системах до внедрения ГОСТ Р 34.12-2015.
  • Алгоритм TDEA был реализован в аппаратных модулях безопасности (HSM) многих производителей, включая Thales и Utimaco.

Источники

  • NIST Special Publication 800-67 Rev. 2: «Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher» (2017).
  • ISO/IEC 18033-3:2005 «Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers».
  • «A Meet-in-the-Middle Attack on 3DES» (K. Kato, K. Nakamura, 2010).
  • «Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN» (K. Bhargavan, G. Leurent, 2016).
  • FIPS PUB 46-3: «Data Encryption Standard (DES)» (1999, отозван в 2005).

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

На главную BFOmetr →