Triple DES

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:27, 27 февраля 2017.
Triple Data Encryption Algorithm
Изобретен IBM
Год создания 1978
Вид Блочный шифр
Размер ключа 112 (2TDES) или 168 bits (3TDES)
Прародитель DES


Triple DES (3DES), официальное название Triple Data Encryption Algorithm (TDEA или Triple DEA) - симметричный блочный шифр, созданный Уитфилдом Диффи, Мартином Хеллманом и Уолтом Тачманном в 1978 году на основе алгоритма DES. Скорость работы 3DES в 3 раза ниже, чем у DES, но криптостойкость намного выше — время, требуемое для криптоанализа 3DES, может быть в миллиард раз больше, чем время, нужное для вскрытия DES. Вместо официального названия поставщики, пользователи и разработчики криптосистем используют термин "3DES".

Упоминания в нормативных документах

Алгоритм 3DES упоминается в следующих нормативных документах:

  • ANS X9.52-1998 Triple Data Encryption Algorithm Modes of Operation (отменен)
  • FIPS PUB 46-3 Data Encryption Standard (DES) (отменен)
  • NIST Special Publication 800-67 Revision 1 Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher
  • ISO/IEC 18033-3:2010: Part 3: Block ciphers

Причины появления

Прародитель шифра 3DES - DES - был создан в далеком 1975 году. Однако, вместе с развитием технологий защиты информации, развивались и технологии взлома. Именно скорость в подборе ключей, зашифрованных с помощью DES стала основной проблемой этого метода шифрования. Но изобретение нового алгоритма шифрования потребовало бы много денег и времени не только на саму разработку, но и на то, чтобы изменить существую структуру безопасности многих мировых компаний, которые уже использовали DES. Вскоре, прагматичное решение было найдено. Предлагалось изменить не сам шифр, а способ его применения. Именно тогда появился 3DES.

Алгоритм

Шифрование с использованием EDE3
Дешифровка с использованием алгоритма EDE3

Существует 2 основных варианта шифрования алгоритмом 3DES: 3-key Triple DES и 2-key Triple DES. Как видно из названия, принципиальное различие этих методов - количество ключей (три и два соответственно). В свою очередь, каждый из этих алгоритмов имеет по 2 разных типа: EEE (encryption-encryption-encryption) и EDE (encryption-decryption-encryption) шифрование. Начнем с трех ключей:

  • DES-EEE3: Исходный текст шифруется три раза, используя разные ключи.
  • DES-EDE3: Исходный текст шифруется, затем дешифруется (уже другим ключом), затем снова шифруется (третьим ключом). Наглядное представление можно увидеть ниже.
  • DES-EEE2: Исходный текст шифруется три раза, однако ключи на первом и последнем шаге одинаковые.
  • DES-EDE2: Исходный текст шифруется, затем дешифруется (другим ключом), затем снова шифруется (ключом, используемым при первом шифровании).

На практике, самый используемый тип 3DES шифрования - DES-EDE3.

Выбор ключей

При выполнении шифрования, ключи можно выбрать несколькими способами. Ниже, в порядке понижения криптостойкости, представлены эти способы:

  • Все ключи независимы, т.е. разные.
  • Ключи, используемые при первом и последнем шифровании одинаковы, второй ключ отличен от них.
  • Все ключи одинаковые.

Первый вариант является самым стойким, так как 3 раза повторяет шифрование разными ключами. Если при шифровании DES длина ключа 56 бит (в каждом байте используется 7 бит, вместо 8), то при шифровании 3DES с разными ключами, длина итогового ключа увеличивается в три раза - 168 бит.

Второй вариант менее надежен - длина его ключа лишь 112 бит. Однако, этот вариант шифрования более надежен, чем обычное двойное шифрование с помощью DES: он защищает от атак "встреча посередине", ведь вместо двух последовательных шифрований, также имеет в своем составе дешифровку, которая затрудняет составление таблиц и нахождение одинаковых значений в этих таблицах (основные действия при таком типе атаки).

Третий вариант имеет такую же криптостойкость, как и сам DES - длина ключа 56 бит. Кроме того, при использовании алгоритма EDE3, имея одинаковые ключи, шаги шифрования и дешифрования сводят друг друга на нет.

Каждый ключ DES хранится и передается как 8 байтов, каждый байт - с нечетным паритетом, так что полный набор ключей займет 24 байта в первом варианте, 16 во втором и 8 в третьем.

Шифрование нескольких блоков

Шифрование нескольких блоков, как правило, происходит с использованием одного из режимов шифрования, которые не зависят от алгоритма шифрования каждого конкретного блока. Однако, некоторые нормативные документы накладывают ограничения на использование некоторых режимов шифрования. Например, согласно ANS X9.52, при использовании режима сцепления блоков вектор инициализации должен меняться каждый раз. Другие нормативные документы не накладывают никаких ограничений, рассматривая шифрование 3DES, как шифрование одного блока. Если сравнивать криптостойкость режимов шифрования, то режим сцепления блоков является самым безопасным за счет использования дополнительного вектора инициализации. Однако, режим электронной кодовой книги (Triple ECB), используется чаще, благодаря своей скорости и возможности распараллеливания.

Применение

3DES с тремя ключами реализован во многих приложениях, ориентированных на работу с Интернет, в том числе в PGP и S/mime. Тройной DES является довольно популярной альтернативой DES и используется при управлении ключами в стандартах ANSI X9.17 и ISO 8732 и в PEM (Privacy Enhanced Mail). Индустрия электронных платежей использует 3DES и продолжает активно разрабатывать и публиковать стандарты, основанные на нем (например, EMV). Microsoft OneNote, Microsoft Outlook 2007 и Microsoft System Center Configuration Manager 2012 используют 3DES для защиты данных системы и пользователей с помощью паролей. Известных криптографических атак, применимых на практике, на 3DES не существует.

Несмотря на то, что специалисты утверждают о том, что алгоритм 3DES-EDE с тремя различными ключами останется надежным до 2030 года, 3DES понемногу уходит: на смену ему приходит новый алгоритм AES Rijndael. Rijndael, реализованный программно, работает в шесть раз быстрее. Поэтому 3DES больше подходит для аппаратных реализаций. Многие системы безопасности продолжают поддерживать как 3DES, так и AES, по умолчанию используя AES. Хотя 3DES может поддерживаться для обратной совместимости, он больше не рекомендован к использованию.

См.также

Литература