Triple DES (3DES) — симметричный блочный шифр, созданный Уитфилдом Диффи, Мартином Хеллманом и Уолтом Тачманном в 1978 году на основе алгоритма DES с целью устранения главного недостатка последнего — малой длины ключа (56 бит), который может быть взломан методом полного перебора ключа. Скорость работы 3DES в 3 раза ниже, чем у DES, но криптостойкость намного выше — время, требуемое для криптоанализа 3DES, может быть в миллиард раз больше, чем время, нужное для вскрытия DES. 3DES используется чаще, чем DES, который легко взламывается при помощи сегодняшних технологий (в 1998 году организация Electronic Frontier Foundation, используя специальный компьютер DES Cracker, вскрыла DES за 3 дня). 3DES является простым способом устранения недостатков DES. Алгоритм 3DES построен на основе DES, поэтому для его реализации возможно использовать программы, созданные для DES. Официальное название алгоритма, используемое в стандартах — TDEA или Triple DEA (англ. Triple Data Encryption Algorithm). Однако, термин «3DES» используется более широко поставщиками, пользователями и разработчиками криптосистем.
При выполнении алгоритма 3DES ключи могут быть выбраны так:
, , независимы.
, независимы, а
Самым безопасным является первый вариант: длина ключа DES равна 56 битов, а длина 3DES в 3 раза больше, то есть равна 168 битов (в каждом байте 64-разрядного ключа DES используется только 7 битов, поэтому на самом деле длина ключа равна 56 битов, а не 64, и длина ключа 3DES равна 168, а не 192 бита).
Второй вариант является несколько менее стойким, с длиной ключа, равной 2 × 56 = 112 бит. Однако, этот вариант шифрования более надёжен, чем обычное двойное шифрование с помощью DES с ключами и : он защищает от атак «встреча посередине».
Третий вариант эквивалентен по надёжности DES: здесь длина ключа тоже равна 56 битам. При использовании алгоритма DES-EDE3, из-за такого выбора ключей, шифрование (первый шаг) и расшифрование (второй шаг) сводят друг друга на нет. Такой выбор ключей теперь не рекомендуется национальным институтом стандартов и технологий (НИСТ)[1] и не поддерживается стандартом ISO/IEC 18033-3.
Каждый ключ DES хранится и передаётся как 8 байтов, каждый байт — с нечётным паритетом[2], так что полный набор ключей займёт 24 байта в первом варианте, 16 во втором и 8 в третьем.
Как и с другими блочными шифрами, шифрование и расшифрование нескольких блоков данных может быть произведено с помощью одного из режимов шифрования, определяемых независимо от самого алгоритма блочного шифрования. Однако, ANSI X9.52 указывает напрямую, а NIST SP 800-67 — через SP 800-38A[3], что некоторые режимы могут быть использованы только с определёнными ограничениями, не являющимися необходимыми в общем случае. Например, ANSI X9.52 уточняет, что для режима сцепления блоков шифротекставектор инициализации должен каждый раз меняться, тогда как ISO/IEC 10116[4] этого не требует. FIPS PUB 46-3 и ISO/IEC 18033-3 определяют 3DES только для одного блока и не накладывают никаких ограничений на режимы шифрования нескольких блоков. Несмотря на то, что режим сцепления блоков шифротекста (Triple CBC) улучшает стойкость шифра, режим электронной кодовой книги (Triple ECB) на данный момент более распространён.
3DES с тремя различными ключами имеет длину ключа, равную 168 бит, но из-за атак «встреча посередине» эффективная криптостойкость составляет только 112 бит. В варианте DES-EDE c номинальный размер ключа также составляет 112 бит. Однако, такой выбор ключей уязвим для определённых атак на основе открытых текстов, что уменьшает эффективную длину ключа до 80 бит.
Для успешной атаки на 3DES потребуется около бит известного открытого текста, шагов, циклов DES-шифрования и бит памяти[5]. На данный момент это непрактично, и, по оценкам НИСТ, алгоритм с выбором трёх различных ключей должен остаться надёжным до 2030-х.
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 понемногу выходит из употребления: на смену ему приходит новый алгоритмом AES Rijndael. Rijndael, реализованный программно, работает в шесть раз быстрее. Поэтому 3DES больше подходит для аппаратных реализаций. Многие системы безопасности продолжают поддерживать как 3DES, так и AES, по умолчанию используя AES. Хотя 3DES может поддерживаться для обратной совместимости, он больше не рекомендован к использованию.
↑
ANSI X3.92-1981 (один из стандартов, определяющих DES), секция 3.5: «One bit in each 8-bit byte of the KEY may be utilized for error detection in key generation, distribution, and storage. Bits 8, 16,…, 64 are for use in ensuring that each byte is of odd parity.»