Triple DES

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Triple DES
изображение
Создатель:

IBM

Опубликован:

1978 г.

Размер ключа:

112 (2TDES) или 168 bits (3TDES)

Размер блока:

64 бит

Число раундов:

48 DES-эквивалентных раундов

Тип:

Сеть Фейстеля

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.

Алгоритм[править | править вики-текст]

Схема алгоритма 3DES имеет такой вид, как на рисунке. Простой вариант 3DES можно представить так:

DES(k_3;DES(k_2;DES(k_1;M)))\,\!

где k_1\,\!, k_2\,\!, k_3\,\! — ключи для каждого DES-шага, M \,\! — входные данные, которые нужно шифровать. Это вариант известен как в ЕЕЕ, так как 3DES операции являются шифрованием. Существует 3 типа алгоритма 3DES:

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

Самый популярная разновидность 3DES — это DES-EDE3, для него алгоритм выглядит так:

Шифрование: C = E_{k_3}(E^{-1}_{k_2} (E_{k_1} (P)))
Расшифрование: P = E^{-1}_{k_1}(E_{k_2} (E^{-1}_{k_3} (C)))

При выполнении алгоритма 3DES ключи могут быть выбраны так:

  • k_1\,\!, k_2\,\!, k_3\,\! независимы.
  • k_1\,\!, k_2\,\! независимы, а k_1=k_3\,\!
  • k_1=k_2=k_3\,\!

3DES выполняет 3 раза алгоритм DES, длина ключа DES равна 56 бита, а длина 3DES в 3 раза больше, то есть равна 168 битов. Для DES 64-разрядный ключ делился на 8 байтов, в каждом байте используется только 7 битов, поэтому на самом деле длина ключа равна 56 битов, а не 64, поэтому длина ключа 3DES на самом деле равна 168, а не 192 бита.

Криптостойкость[править | править вики-текст]

3DES с различными ключами имеет длину ключа равную 168 бит, но из-за атак «встреча посередине» эффективная криптостойкость составляет только 112 бит. В варианте DES-EDE, в котором k_1=k_3\,\!, эффективный ключ имеет длину 80 бит. Для успешной атаки на 3DES потребуется около 2^{32}\,\! бит известного открытого текста, 2^{113}\,\! шагов, 2^{90}\,\! циклов DES-шифрования и 2^{88}\,\! бит памяти.

Применение 3DES[править | править вики-текст]

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

Тем не менее, 3DES (который ещё обозначают как TDES) понемногу выходит из употребления, заменяемый новым алгоритмом AES Rijndael. Rijndael, реализованный программно, работает в шесть раз быстрее. Поэтому 3DES больше подходит для аппаратных реализаций.

Наибольшее применение в прикладных системах нашел вариант 3DES/Triple DES, использующий 2 ключа длиной 56 бит каждый (8-й бит -- четности): исходный открытый текст шифруется первым ключом, полученный результат расшифровывается вторым, полученный результат (т.е.полная бессмыслица) повторно шифруется первым ключом. Таким образом, длина ключа в алгоритме 3DES составляет 112 (2*56) бит.

Ссылки[править | править вики-текст]

См. также[править | править вики-текст]