Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В криптографии , Triple DES ( 3DES или TDES ), официально Тройной алгоритм шифрования данных ( TDEA или Тройной DEA ), является симметричным ключом блочного шифра , который применяет к нему DES алгоритм шифра три раза в каждом блоке данных. 56-битный ключ стандарта шифрования данных (DES) больше не считается адекватным перед лицом современных криптоаналитических методов и вычислительной мощности. Однако адаптированная версия DES, Triple DES (3DES), использует тот же алгоритм для обеспечения более безопасного шифрования.

В то время как правительственные и отраслевые стандарты сокращают название алгоритма как TDES (Triple DES) и TDEA (Triple Data Encryption Algorithm), [1] RFC 1851 называл его 3DES с того момента, как он впервые провозгласил идею, и с тех пор этот тезка широко используется большинством поставщиков, пользователей и криптографов. [2] [3] [4] [5]

Стандарты [ править ]

Алгоритм тройного шифрования данных по-разному определяется в нескольких стандартных документах:

  • RFC 1851, ESP Triple DES Transform [6] (утвержден в 1995 г.)
  • Режимы работы алгоритма тройного шифрования данных ANSI ANS X9.52-1998 [7] (утвержден в 1998 г., отозван в 2008 г. [8] )
  • FIPS PUB 46-3 Стандарт шифрования данных (DES) [9] (утвержден в 1999 г., отменен в 2005 г. [10] )
  • Специальная публикация NIST 800-67, редакция 2, Рекомендация по блочному шифру алгоритма тройного шифрования данных (TDEA) [11] (утверждена в 2017 г.)
  • ISO / IEC 18033-3: 2010: Часть 3: Блочные шифры [12] (утвержден в 2005 г.)

Алгоритм [ править ]

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

Наивный подход к увеличению прочности алгоритма блочного шифрования с короткой длиной ключа (например , DES) будет использовать два ключа , а не один, и шифровать каждый блок дважды . Если исходная длина ключа составляет биты, можно надеяться, что эта схема обеспечивает безопасность, эквивалентную использованию длинных битов ключа . К сожалению, этот подход уязвит для Meet-в-середины атаки : дал известную открытый текст пару , так что , можно восстановить пару ключей в шагах, вместо шагов можно было бы ожидать от идеально безопасного алгоритма с битами ключа .

Поэтому, Triple DES использует «ключевой пакет» , который включает три DES ключей , , и , каждый из 56 бит ( за исключением бит четности ). Алгоритм шифрования:

То есть шифрование DES с помощью , расшифровка DES с помощью , затем шифрование DES с помощью .

Расшифровка обратная:

То есть, расшифровывать с , шифровать с , а затем расшифровывать с .

Каждое тройное шифрование шифрует один блок из 64 бит данных.

В каждом случае средняя операция противоположна первой и последней. Это повышает надежность алгоритма при использовании варианта ключа 2 и обеспечивает обратную совместимость с DES с вариантом ключа 3.

Параметры ключа [ править ]

Стандарты определяют три варианта кодирования:

Вариант ключа 1
Все три клавиши независимы. Иногда известен как 3TDEA [13] или ключи тройной длины. [14]
Это самый сильный, с 3 × 56 = 168 независимых битов ключа. Он по-прежнему уязвим для атаки «встреча посередине» , но для атаки требуется 2 шага 2 × 56 .
Вариант ключа 2
K 1 и K 2 независимы, а K 3 = K 1 . Иногда известен как 2TDEA [13] или ключи двойной длины. [14]
Это обеспечивает более короткую длину ключа 112 бит и разумный компромисс между DES и вариантом 1 с использованием ключей с той же оговоркой, что и выше. [15] Это улучшение по сравнению с "двойным DES", для атаки которого требуется всего 2 56 шагов. NIST отказался от этой опции. [13]
Вариант ключа 3
Все три ключа идентичны, т.е. K 1 = K 2 = K 3 .
Это обратно совместимо с DES, поскольку две операции отменяются. ISO / IEC 18033-3 никогда не допускал эту опцию, а NIST больше не допускает K 1 = K 2 или K 2 = K 3 . [13] [11]

Каждый ключ DES состоит из 8 байтов с контролем четности , из которых 56 бит ключа и 8 бит обнаружения ошибок. [7] Для связки ключей требуется 24 байта для варианта 1, 16 для варианта 2 или 8 для варианта 3.

NIST (и текущие спецификации TCG версии 2.0 утвержденных алгоритмов для Trusted Platform Module ) также запрещают использование любого из следующих 64-х 64-битных значений в любых ключах (обратите внимание, что 32 из них являются двоичным дополнением 32 других; и что 32 из этих ключей также представляют собой обратную перестановку байтов остальных 32), перечисленных здесь в шестнадцатеричном формате (в каждом байте младший бит является сгенерированным битом с нечетной четностью, он отбрасывается при формировании эффективных 56-битных ключей) :

01.01.01.01.01.01.01.01, FE.FE.FE.FE.FE.FE.FE.FE, E0.FE.FE.E0.F1.FE.FE.F1, 1F.01.01.1F.0E.01.01. 0E,01.01.FE.FE.01.01.FE.FE, FE.FE.01.01.FE.FE.01.01, E0.FE.01.1F.F1.FE.01.0E, 1F.01.FE.E0.0E.01. FE.F1,01.01.E0.E0.01.01.F1.F1, FE.FE.1F.1F.FE.FE.0E.0E, E0.FE.1F.01.F1.FE.0E.01, 1F.01.E0. FE.0E.01.F1.FE,01.01.1F.1F.01.01.0E.0E, FE.FE.E0.E0.FE.FE.F1.F1, E0.FE.E0.FE.F1.FE.F1.FE, 1F.01.1F.01.0 E.01.0E.01,01.FE.01.FE.01.FE.01.FE, FE.01.FE.01.FE.01.FE.01, E0.01.FE.1F.F1.01.FE.0E, 1F. FE.01.E0.0E.FE.01.F1,01.FE.FE.01.01.FE.FE.01, FE.01.01.FE.FE.01.01.FE, E0.01.01.E0.F1.01.01.F1, 1F.FE.FE.1F.0E.FE. FE.0E,01.FE.E0.1F.01.FE.F1.0E, FE.01.1F.E0.FE.01.0E.F1, E0.01.1F.FE.F1.01.0E.FE, 1F.FE.E0. 01.0E.FE.F1.01,01.FE.1F.E0.01.FE.0E.F1, FE.01.E0.1F.FE.01.F1.0E, E0.01.E0.01.F1.01.F1.01, 1F. FE.1F.FE.0E.FE.0E.FE,01.E0.01.E0.01.F1.01.F1, FE.1F.FE.1F.FE.0E.FE.0E, E0.1F.FE.01.F1.0E.FE.01, 1F. E0.01.FE.0E.F1.01.FE,01.E0.FE.1F.01.F1.FE.0E, FE.1F.01.E0.FE.0E.01.F1, E0.1F.01.FE.F1.0E.01.FE, 1F. E0.FE.01.0E.F1.FE.01,01.E0.E0.01.01.F1.F1.01, FE.1F.1F.FE.FE.0E.0E.FE, E0.1F.1F.E0.F1.0E.0E.F1, 1F.E0. E0.1F.0E.F1.F1.0E,01.E0.1F.FE.01.F1.0E.FE, FE.1F.E0.01.FE.0E.F1.01, E0.1F.E0.1F.F1.0E.F1.0E, 1F. E0.1F.E0.0E.F1.0E.F1,01.1F.01.1F.01.0E.01.0E, FE.E0.FE.E0.FE.F1.FE.F1, E0.E0.FE.FE.F1.F1.FE.FE, 1F.1F.01.01. 0E.0E.01.01,01.1F.FE.E0.01.0E.FE.F1, FE.E0.01.1F.FE.F1.01.0E, E0.E0.01.01.F1.F1.01.01, 1F.1F.FE.FE.0E. 0E.FE.FE,01.1F.E0.FE.01.0E.F1.FE, FE.E0.1F.01.FE.F1.0E.01, E0.E0.1F.1F.F1.F1.0E.0E, 1F.1F. E0.E0.0E.0E.F1.F1,01.1F.1F.01.01.0E.0E.01, FE.E0.E0.FE.FE.F1.F1.FE, E0.E0.E0.E0.F1.F1.F1.F1, 1F.1F.1F .1F.0E.0E.0E.0E,

С этими ограничениями на разрешенные ключи, Triple DES был повторно одобрен только с вариантами ввода 1 и 2. Обычно три ключа генерируются путем взятия 24 байтов из сильного случайного генератора, и следует использовать только вариант ввода ключа 1 (для варианта 2 требуется только 16 случайных байтов, но сильные случайные генераторы трудно утверждать, и считается лучшей практикой использовать только вариант 1 ).

Шифрование более одного блока [ править ]

Как и все блочные шифры, шифрование и дешифрование множества блоков данных может выполняться с использованием множества режимов работы , которые обычно могут быть определены независимо от алгоритма блочного шифрования. Однако ANS X9.52 указывает напрямую, а NIST SP 800-67 указывает через SP 800-38A [16], что некоторые режимы должны использоваться только с определенными ограничениями на них, которые не обязательно относятся к общим спецификациям этих режимов. Например, АНС X9.52 определяет , что для цепочки цифровых блоков , то вектор инициализации должен отличаться каждый раз, в то время как ISO / IEC 10116 [17]не. FIPS PUB 46-3 и ISO / IEC 18033-3 определяют только алгоритм с одним блоком и не накладывают никаких ограничений на режимы работы для нескольких блоков.

Безопасность [ править ]

В общем, тройной DES с тремя независимыми ключами ( вариант  1) имеет длину ключа 168 бит (три 56-битных ключа DES), но из -за атаки « встречай посередине» эффективная безопасность, которую он обеспечивает, составляет всего лишь 112 бит. [13] Вариант 2 с ключом уменьшает эффективный размер ключа до 112 бит (потому что третий ключ такой же, как и первый). Однако эта опция подвержена определенным атакам с выбранным или известным открытым текстом [18] [19], и, таким образом, NIST определяет ее как имеющую только 80  бит защиты . [13] Это можно считать небезопасным, и, как следствие, Triple DES был объявлен устаревшим NIST в 2017 году. [20]

Логотип атаки Sweet32

Короткий размер блока в 64 бита делает 3DES уязвимым для атак с коллизией блоков, если он используется для шифрования больших объемов данных одним и тем же ключом. Атака Sweet32 показывает, как это можно использовать в TLS и OpenVPN. [21] Практическая атака Sweet32 на наборы шифров на основе 3DES в TLS требовала блоков (785 ГБ) для полной атаки, но исследователям посчастливилось получить коллизию сразу после нескольких блоков, что заняло всего 25 минут.

На безопасность TDEA влияет количество блоков, обрабатываемых одним набором ключей. Один комплект ключей не должен использоваться для применения криптографической защиты (например, шифрования) более чем 64-битных блоков данных.

-  Рекомендация по блочному шифру алгоритма тройного шифрования данных (TDEA) (SP 800-67 Rev2) [11]

OpenSSL не включает 3DES по умолчанию с версии 1.1.0 (август 2016 г.) и считает его «слабым шифром». [22]

Использование [ править ]

Электронная платежная индустрия использует Triple DES и продолжает разрабатывать и издавать стандарты , основанные на нем, такие как EMV . [23]

Более ранние версии Microsoft OneNote , [24] Microsoft Outlook 2007 [25] и Microsoft System Center Configuration Manager 2012 [26] использовать Triple DES для данных контента пользователя и системы защиты паролем. Однако в декабре 2018 года Microsoft объявила о прекращении использования 3DES в своей службе Office 365. [27]

Firefox и Mozilla Thunderbird [28] используют Triple DES в режиме CBC для шифрования учетных данных для входа на веб-сайт при использовании главного пароля.

Реализации [ править ]

Ниже приведен список библиотек криптографии, поддерживающих Triple DES:

  • Ботан
  • Надувной Замок
  • cryptlib
  • Крипто ++
  • Libgcrypt
  • Крапива
  • OpenSSL
  • wolfSSL
  • Trusted Platform Module (псевдоним TPM, аппаратная реализация)

Некоторые реализации, указанные выше, могут не включать 3DES в сборку по умолчанию в более поздних или более поздних версиях.

См. Также [ править ]

  • DES-X
  • Расширенный стандарт шифрования (AES)
  • Шифр Фейстеля
  • Уолтер Такман

Ссылки и примечания [ править ]

  1. ^ "Тройное шифрование DES" . IBM . Проверено 17 мая 2010 .
  2. ^ Alanazi, Хамдан. O .; Зайдан, ББ; Зайдан, АА; Jalab, Hamid A .; Шабир, М .; Ан-Набхани, Ю. (март 2010 г.). «Новое сравнительное исследование DES, 3DES и AES с использованием девяти факторов». Журнал вычислительной техники . 2 (3). arXiv : 1003,4085 . Bibcode : 2010arXiv1003.4085A . ISSN 2151-9617 . 
  3. ^ «Руководство по началу работы с устройством безопасности Cisco PIX 515E: получение лицензии DES или лицензии 3DES-AES» (PDF) . Cisco . 2006 . Проверено 5 сентября 2017 .
  4. ^ «Обновление 3DES: большинство банков готово, но ...» Новости банкоматов и дебетов . 2007-03-29. Архивировано из оригинала на 2013-05-10 . Проверено 5 сентября 2017 .
  5. ^ RFC 2828 и RFC 4949
  6. ^ Karn, P .; Metzger, P .; Симпсон, В. (сентябрь 1995 г.). Преобразование ESP Triple DES . DOI : 10,17487 / RFC1851 . RFC 1851 .
  7. ^ a b "Режимы работы алгоритма тройного шифрования данных ANSI X9.52-1998" . Проверено 5 сентября 2017 .Расширяет алгоритм шифрования данных ANSI X3.92-1981 .
  8. ^ «Действия по стандартам ANSI» (PDF) . Vol. 39 нет. 46. ANSI . 2008-11-14 . Проверено 5 сентября 2017 . Cite magazine requires |magazine= (help)
  9. ^ «FIPS PUB 46-3: Стандарт шифрования данных (DES)» (PDF) . Министерство торговли США . 25 октября 1999 . Проверено 5 сентября 2017 .
  10. ^ «Объявление об утверждении отзыва Федерального стандарта обработки информации (FIPS) 46–3 ...» (PDF) . Федеральный регистр . 70 (96). 2005-05-19 . Проверено 5 сентября 2017 .
  11. ^ a b c Баркер, Элейн; Муха, Ники (ноябрь 2017 г.). «Специальная публикация NIST 800-67, редакция 2: Рекомендации по блочному шифру алгоритма тройного шифрования данных (TDEA)» . NIST . DOI : 10.6028 / NIST.SP.800-67r2 . Cite journal requires |journal= (help)
  12. ^ «ISO / IEC 18033-3: 2010 Информационные технологии - Методы безопасности - Алгоритмы шифрования - Часть 3: Блочные шифры» . ISO . Декабрь 2010 . Проверено 5 сентября 2017 .
  13. ^ Б с д е е Баркер, Элейн (январь 2016). «Специальная публикация NIST 800-57: Рекомендации по управлению ключами, часть 1: Общие» (PDF) (4-е изд.). NIST . Проверено 5 сентября 2017 .
  14. ^ a b «Руководство по криптографии: тройной DES» . Мир криптографии. Архивировано из оригинала на 2017-03-12 . Проверено 5 сентября 2017 .
  15. ^ Кац, Джонатан; Линделл, Иегуда (2015). Введение в современную криптографию . Чепмен и Холл / CRC . п. 223. ISBN 9781466570269.
  16. ^ Специальная публикация NIST 800-38A, Рекомендации по режимам работы, методам и методам блочного шифрования , издание 2001 г. (PDF)
  17. ^ "ISO / IEC 10116: 2006 Информационные технологии - Методы безопасности - Режимы работы для n-битового блочного шифра" (3-е изд.). Февраль 2006 . Проверено 5 сентября 2017 .
  18. ^ Меркл, Ральф ; Хеллман, Мартин (июль 1981). «О безопасности множественного шифрования» (PDF) . Коммуникации ACM . 24 (7): 465–467. CiteSeerX 10.1.1.164.251 . DOI : 10.1145 / 358699.358718 . S2CID 11583508 .   
  19. ^ ван Оршот, Пол ; Винер, Майкл Дж. (1990). Атака с использованием известного открытого текста на двойное тройное шифрование . EUROCRYPT '90, LNCS 473. С. 318–325. CiteSeerX 10.1.1.66.6575 . 
  20. ^ «Обновление до текущего использования и прекращения поддержки TDEA» . nist.gov . Дата обращения 2 августа 2019 .
  21. ^ «Sweet32: День рождения атак на 64-битные блочные шифры в TLS и OpenVPN» . sweet32.info . Проверено 5 сентября 2017 .
  22. ^ Зальц, Rich (2016-08-24). «Проблема SWEET32, CVE-2016-2183» . OpenSSL . Проверено 5 сентября 2017 .
  23. ^ «Приложение B Утвержденные криптографические алгоритмы - Стандарт шифрования данных B1.1 (DES)» . EMV 4.2: Книга 2 - Безопасность и управление ключами (4.2 ред.). EMVCo . Июнь 2008. с. 137. Алгоритм шифрования тройной DES с двойным ключом (см. ИСО / МЭК 18033-3) - это утвержденный криптографический алгоритм, который будет использоваться в механизмах шифрования и MAC, указанных в Приложении A1. Алгоритм основан на (единственном) алгоритме DES, стандартизированном в ISO 16609.
  24. ^ OneNote Блог Даниэля Escapa, в Шифрование паролей защищенных разделов , ноябрь 2006 года.
  25. ^ «Шифрование сообщений электронной почты - Outlook - Microsoft Office Online» . office.microsoft.com . Архивировано из оригинала на 2008-12-25. Применимо к: Microsoft Office Outlook 2007
  26. ^ Документация по продукту Microsoft TechNet, Технический справочник по криптографическим элементам управления, используемым в Configuration Manager , октябрь 2012 г.
  27. ^ https://portal.office.com/AdminPortal/home?switchtomodern=true#/MessageCenter?id=MC171089
  28. ^ Исходный код Mozilla NSS . См. Объяснение структуры каталогов (особенно вводный раздел и разделы «Безопасность») для получения справочной информации.