stringtranslate.com

Тройной DES

В криптографии Triple DES ( 3DES или TDES ), официально называемый тройным алгоритмом шифрования данных ( TDEA или Triple DEA ), представляет собой блочный шифр с симметричным ключом , который применяет алгоритм шифрования DES трижды к каждому блоку данных. 56-битный ключ стандарта шифрования данных (DES) больше не считается адекватным перед лицом современных криптоаналитических методов и мощности суперкомпьютеров. CVE -2016-2183 , выпущенная в 2016 году, выявила серьезную уязвимость безопасности в алгоритмах шифрования DES и 3DES. Этот CVE в сочетании с неадекватным размером ключа DES и 3DES привел к тому, что NIST отказался от использования DES и 3DES для новых приложений в 2017 году, а к концу 2023 года для всех приложений. [1] Он был заменен более безопасным и удобным. надежный AES .

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

История

В 1978 году Уолтер Тачман предложил метод тройного шифрования с использованием DES с двумя 56-битными ключами ; в 1981 году Меркл и Хеллман предложили более безопасную версию 3DES с тройным ключом и 112 битами безопасности. [7]

Стандарты

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

Алгоритм

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

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

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

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

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

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

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

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

Варианты ввода

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

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

Каждый ключ DES состоит из 8 байтов нечетной четности , из которых 56 бит ключа и 8 бит обнаружения ошибок. [9] Для комплекта ключей требуется 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. 0Е,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. ФЭ.Ф1,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. ФЭ.0Е.01.Ф1.ФЭ,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 Е.01.0Е.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. ФЭ.01.Е0.0Е.ФЭ.01.Ф1,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. ФЭ.0Е,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. ФЭ.1Ф.ФЕ.0Е.ФЕ.0Е.ФЕ,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. Е0.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. Е0.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. Е0.1Ф.0Е.Ф1.Ф1.0Е,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. Е0.1Ф.Е0.0Е.Ф1.0Е.Ф1,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. 0Э.0Э.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. Е0.Е0.0Е.0Е.Ф1.Ф1,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 [19] указывает , что некоторые режимы должны использоваться только с определенными ограничениями, которые не обязательно применимы к общим спецификациям этих режимов. Например, ANS X9.52 определяет, что для цепочки блоков шифрования вектор инициализации должен каждый раз быть другим, тогда как ISO/IEC 10116 [20] этого не делает. FIPS PUB 46-3 и ISO/IEC 18033-3 определяют только одноблочный алгоритм и не накладывают никаких ограничений на режимы работы для нескольких блоков.

Безопасность

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

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

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

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

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

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

Тройной DES-2304

Тройной DES использует три 56-битных (т.е. 168-битных) ключа. Однако внутренние клавиши гораздо больше. Тройной DES использует три 56-битных ключа для генерации 3 * 16 48-битных подключей, т. е. 2304 бита. Ограничение ключа в 168 бит является искусственным, поэтому его можно увеличить до 2304 бит. В 2014 году был выпущен Triple DES-2304. Он использует тот же принцип, что и Triple DES, но подразделы 3 * 16 генерируются односторонней хэш-функцией. В результате получается алгоритм, работающий с той же скоростью, что и Triple DES, но с ключом длиной 2304 бита. [26] Обратите внимание, что в Triple DES-2304 не существует слабых ключей, поскольку подразделы генерируются односторонней хеш-функцией.

Применение

По состоянию на 2008 год индустрия электронных платежей использует Triple DES и продолжает разрабатывать и распространять основанные на нем стандарты, такие как EMV . [27]

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

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

Реализации

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

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

Смотрите также

Ссылки и примечания

  1. ^ Баркер, Элейн; Рогинский, Аллен (01 марта 2019 г.). «Переход на использование криптографических алгоритмов и длины ключей» (PDF) . NIST SP 800–131Ar2 (2-я редакция). Гейтерсбург, Мэриленд: Публикации NIST: 7. doi : 10.6028/nist.sp.800-131ar2. Архивировано (PDF) из оригинала 11 мая 2019 г. {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  2. ^ «Тройное шифрование DES» . ИБМ . Проверено 17 мая 2010 г.
  3. ^ Аланази, Хамдан. О.; Зайдан, Б.Б.; Зайдан, А.А.; Джалаб, Хамид А.; Шаббир, М.; Аль-Набхани, Ю. (март 2010 г.). «Новое сравнительное исследование DES, 3DES и AES по девяти факторам». Журнал вычислительной техники . 2 (3). arXiv : 1003.4085 . Бибкод : 2010arXiv1003.4085A. ISSN  2151-9617.
  4. ^ «Руководство по началу работы с устройством безопасности Cisco PIX 515E: получение лицензии DES или лицензии 3DES-AES» (PDF) . Циско . 2006. Архивировано (PDF) из оригинала 7 февраля 2016 г. Проверено 5 сентября 2017 г.
  5. ^ «Обновление 3DES: большинство банков закончили работу, но ...» Новости банкоматов и дебета . 29 марта 2007 г. Архивировано из оригинала 10 мая 2013 г. Проверено 5 сентября 2017 г.
  6. ^ RFC 2828 и RFC 4949.
  7. ^ Меркл, Р. и М. Хеллман, «О безопасности множественного шифрования», Communications of ACM, vol. 24, нет. 7, стр. 465–467, июль 1981 г.
  8. ^ Карн, П.; Мецгер, П.; Симпсон, В. (сентябрь 1995 г.). Тройное преобразование DES ESP. дои : 10.17487/RFC1851 . РФК 1851.
  9. ^ ab «Режимы работы алгоритма тройного шифрования данных ANSI X9.52-1998» . Проверено 5 сентября 2017 г.Расширяет алгоритм шифрования данных ANSI X3.92-1981 .
  10. ^ «Действие по стандартам ANSI» (PDF) . Том. 39, нет. 46. ​​АНСИ . 14 ноября 2008 г. Архивировано (PDF) из оригинала 06 сентября 2017 г. Проверено 5 сентября 2017 г. {{cite magazine}}: Журналу Cite требуется |magazine=( помощь )
  11. ^ «FIPS PUB 46-3: Стандарт шифрования данных (DES)» (PDF) . Министерство торговли США . 25 октября 1999 г. Архивировано (PDF) из оригинала 5 апреля 2003 г. Проверено 5 сентября 2017 г.
  12. ^ «Объявление об одобрении отмены Федерального стандарта обработки информации (FIPS) 46–3...» (PDF) . Федеральный реестр . 70 (96). 19 мая 2005 г. Архивировано (PDF) из оригинала 17 сентября 2008 г. Проверено 5 сентября 2017 г.
  13. ^ abc Баркер, Элейн; Муха, Ники (ноябрь 2017 г.). «Специальная публикация NIST 800-67, редакция 2: Рекомендации по блочному шифру тройного алгоритма шифрования данных (TDEA)». НИСТ . дои : 10.6028/NIST.SP.800-67r2 . {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  14. ^ NIST отзовет специальную публикацию 800-67, редакция 2 https://csrc.nist.gov/news/2023/nist-to-withdraw-sp-800-67-rev-2
  15. ^ «ISO/IEC 18033-3:2010 Информационные технологии. Методы обеспечения безопасности. Алгоритмы шифрования. Часть 3. Блочные шифры». ИСО . Декабрь 2010 года . Проверено 5 сентября 2017 г.
  16. ^ abcdef Баркер, Элейн (январь 2016 г.). «Специальная публикация NIST 800-57: Рекомендации по управлению ключами, часть 1: Общие сведения» (PDF) (4-е изд.). НИСТ . Архивировано (PDF) из оригинала 7 февраля 2016 г. Проверено 5 сентября 2017 г.
  17. ^ ab «Руководство по криптографии: тройной DES». Криптографический мир. Архивировано из оригинала 12 марта 2017 г. Проверено 5 сентября 2017 г.
  18. ^ Кац, Джонатан; Линделл, Иегуда (2015). Введение в современную криптографию . Чепмен и Холл/CRC . п. 223. ИСБН 9781466570269.
  19. ^ Специальная публикация NIST 800-38A, Рекомендации по режимам работы, методам и техникам блочного шифрования, издание 2001 г. (PDF)
  20. ^ «ISO/IEC 10116:2006 Информационные технологии. Методы обеспечения безопасности. Режимы работы n-битного блочного шифра» (3-е изд.). Февраль 2006 года . Проверено 5 сентября 2017 г.
  21. ^ Меркл, Ральф ; Хеллман, Мартин (июль 1981 г.). «О безопасности множественного шифрования» (PDF) . Коммуникации АКМ . 24 (7): 465–467. CiteSeerX 10.1.1.164.251 . дои : 10.1145/358699.358718. S2CID  11583508. Архивировано из оригинала (PDF) 10 февраля 2013 г. Проверено 15 ноября 2013 г. 
  22. ^ ван Ооршот, Пол ; Винер, Майкл Дж. (1990). Атака с использованием известного открытого текста на тройное шифрование с двумя ключами . EUROCRYPT '90, LNCS 473. стр. 318–325. CiteSeerX 10.1.1.66.6575 . 
  23. ^ «Обновление текущего использования и прекращение поддержки TDEA» . nist.gov . 11 июля 2017 года . Проверено 2 августа 2019 г.
  24. ^ «Sweet32: Атаки на день рождения на 64-битные блочные шифры в TLS и OpenVPN» . Sweet32.info . Проверено 5 сентября 2017 г.
  25. ^ Зальц, Рич (24 августа 2016 г.). «Проблема SWEET32, CVE-2016-2183». OpenSSL . Проверено 5 сентября 2017 г.
  26. ^ «3DES-2304 для GCC» . Веб-страница Александра Пуколла . 2014.
  27. ^ «Утвержденные Приложением B криптографические алгоритмы - Стандарт шифрования данных B1.1 (DES)» . EMV 4.2: Книга 2 – Безопасность и управление ключами (изд. 4.2). ЭМВКо . Июнь 2008. с. 137. Архивировано из оригинала 18 июля 2017 г. Проверено 21 марта 2009 г. Алгоритм шифрования тройного DES с ключом двойной длины (см. ISO/IEC 18033-3) является одобренным криптографическим алгоритмом, который будет использоваться в механизмах шифрования и MAC, указанных в Приложении A1. Алгоритм основан на (едином) алгоритме DES, стандартизированном в ISO 16609.
  28. ^ Блог Дэниела Эскапы OneNote, Шифрование для разделов, защищенных паролем, ноябрь 2006 г.
  29. ^ «Шифрование сообщений электронной почты – Outlook – Microsoft Office Online» . office.microsoft.com . Архивировано из оригинала 25 декабря 2008 г. Применяется к: Microsoft Office Outlook 2007.
  30. ^ Документация по продукту Microsoft TechNet, Технический справочник по криптографическим элементам управления, используемым в Configuration Manager, октябрь 2012 г.
  31. ^ «Портал администратора». портал.office.com . Проверено 14 марта 2023 г.
  32. ^ Исходный код Mozilla NSS. Дополнительную информацию см. в разделе «Объяснение структуры каталогов» (особенно вводных разделов и разделов «Безопасность»).