stringtranslate.com

Тройной DES

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

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

История

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

Стандарты

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

Алгоритм

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

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

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

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

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

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

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

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

Варианты ввода ключей

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

Вариант ключа 1
Все три ключа независимы. Иногда их называют 3TDEA [16] или ключами тройной длины. [17]

Это самый сильный, с 3 × 56 = 168 независимыми битами ключа. Он по-прежнему уязвим для атаки meet-in-the-middle , но атака требует 2 2 × 56 шагов.

Вариант 2
K 1 и K 2 независимы, и K 3 = K 1 . Иногда известны как 2TDEA [16] или ключи двойной длины. [17]

Это обеспечивает более короткую длину ключа 56*2 или 112 бит и разумный компромисс между DES и вариантом ключа 1, с той же оговоркой, что и выше. [18] Это улучшение по сравнению с «двойным DES», которому требуется всего 2 56 шагов для атаки. NIST запретил этот вариант в 2015 году. [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.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.0E.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, [19] , что некоторые режимы должны использоваться только с определенными ограничениями на них, которые не обязательно применяются к общим спецификациям этих режимов. Например, ANS X9.52 указывает, что для цепочки блоков шифра вектор инициализации должен быть каждый раз разным, тогда как ISO/IEC 10116 [20] этого не делает. FIPS PUB 46-3 и ISO/IEC 18033-3 определяют только алгоритм с одним блоком и не накладывают никаких ограничений на режимы работы для нескольких блоков.

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

В общем, Triple DES с тремя независимыми ключами (вариант ключа 1) имеет длину ключа 168 бит (три 56-битных ключа DES), но из-за атаки meet-in-the-middle эффективная безопасность, которую он обеспечивает, составляет всего 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]

Использование

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

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

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

Реализации

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

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

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

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

  1. ^ Баркер, Элейн; Рогински, Аллен (2019-03-01). «Переход на использование криптографических алгоритмов и длин ключей» (PDF) . Гейтерсберг, Мэриленд: NIST Publications. стр. 7. doi :10.6028/nist.sp.800-131ar2. NIST SP 800-131A Revision 2. Архивировано (PDF) из оригинала 2019-05-11 . Получено 2022-09-20 .
  2. ^ "Triple DES Encryption". IBM . Получено 2010-05-17 .
  3. ^ Аланази, Хамдан. О.; Зайдан, Б.Б.; Зайдан, А.А.; Джалаб, Хамид А.; Шаббир, М.; Аль-Набхани, Ю. (март 2010 г.). «Новое сравнительное исследование DES, 3DES и AES по девяти факторам». Журнал вычислений . 2 (3). arXiv : 1003.4085 . Бибкод : 2010arXiv1003.4085A. ISSN  2151-9617.
  4. ^ "Руководство по началу работы с устройством безопасности Cisco PIX 515E: получение лицензии DES или лицензии 3DES-AES" (PDF) . Cisco . 2006. Архивировано (PDF) из оригинала 2016-02-07 . Получено 2017-09-05 .
  5. ^ "Обновление 3DES: большинство банков прекратили работу, но..." Новости банкоматов и дебетовых карт . 2007-03-29. Архивировано из оригинала 2013-05-10 . Получено 2017-09-05 .
  6. ^ RFC  2828 и RFC 4949
  7. Меркл, Р. и М. Хеллман, «О безопасности множественного шифрования», Communications of the ACM, т. 24, № 7, стр. 465–467, июль 1981 г.
  8. ^ Карн, П.; Мецгер, П.; Симпсон, В. (сентябрь 1995 г.). Преобразование ESP Triple DES. doi : 10.17487/RFC1851 . RFC 1851.
  9. ^ ab "Режимы работы алгоритма тройного шифрования данных ANSI X9.52-1998" . Получено 05.09.2017 .Расширяет алгоритм шифрования данных ANSI X3.92-1981 .
  10. ^ "Уведомление об отзыве: ANS не менее 10 лет с даты утверждения" (PDF) . ANSI Standards Action . Vol. 39, no. 46. ANSI . 2008-11-14. p. 5. ISSN  0038-9633. Архивировано (PDF) из оригинала 2017-09-06 . Получено 2017-09-05 .
  11. ^ "FIPS PUB 46-3: Стандарт шифрования данных (DES)" (PDF) . Министерство торговли США . 25 октября 1999 г. Архивировано (PDF) из оригинала 2003-04-05 . Получено 2017-09-05 .
  12. ^ "Объявление об утверждении отмены Федерального стандарта обработки информации (FIPS) 46–3..." (PDF) . Федеральный реестр . 70 (96). 2005-05-19. Архивировано (PDF) из оригинала 2008-09-17 . Получено 2017-09-05 .
  13. ^ abc Баркер, Элейн; Муха, Ники (ноябрь 2017 г.). "Специальная публикация NIST 800-67, редакция 2: Рекомендация по блочному шифру алгоритма тройного шифрования данных (TDEA)" (PDF) . NIST . doi : 10.6028/NIST.SP.800-67r2 . Архивировано (PDF) из оригинала 01.12.2017 . Получено 21.11.2017 .
  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: Блочные шифры". ISO . Декабрь 2010 . Получено 2017-09-05 .
  16. ^ abcdef Баркер, Элейн (январь 2016 г.). "Специальная публикация NIST 800-57: Рекомендации по управлению ключами. Часть 1: Общие положения" (PDF) (4-е изд.). NIST . Архивировано (PDF) из оригинала 2016-02-07 . Получено 2017-09-05 .
  17. ^ ab "The Cryptography Guide: Triple DES". Cryptography World. Архивировано из оригинала 2017-03-12 . Получено 2017-09-05 .
  18. ^ Кац, Джонатан; Линделл, Йехуда (2015). Введение в современную криптографию . Chapman and Hall/CRC . стр. 223. ISBN 9781466570269.
  19. ^ Специальная публикация NIST 800-38A, Рекомендации по режимам работы, методам и технологиям блочного шифрования, издание 2001 г. (PDF)
  20. ^ "ISO/IEC 10116:2006 Информационные технологии — Методы безопасности — Режимы работы n-битного блочного шифра" (3-е изд.). Февраль 2006 г. Получено 05.09.2017 г.
  21. ^ Merkle, Ralph ; Hellman, Martin (июль 1981 г.). «О безопасности множественного шифрования» (PDF) . Communications of the ACM . 24 (7): 465–467. CiteSeerX 10.1.1.164.251 . doi :10.1145/358699.358718. S2CID  11583508. Архивировано из оригинала (PDF) 2013-02-10 . Получено 2013-11-15 . 
  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 . Получено 05.09.2017 .
  25. ^ Salz, Rich (2016-08-24). "Проблема SWEET32, CVE-2016-2183". OpenSSL . Получено 2024-10-11 .
  26. ^ "Приложение B Approved Cryptographic Algorithms – B1.1 Data Encryption Standard (DES)". EMV 4.2: Book 2 – Security and Key Management (4.2 ed.). EMVCo . Июнь 2008. стр. 137. Архивировано из оригинала 2017-07-18 . Получено 2009-03-21 . Алгоритм шифрования тройного DES с ключом двойной длины (см. ISO/IEC 18033-3) является одобренным криптографическим алгоритмом для использования в механизмах шифрования и MAC, указанных в Приложении A1. Алгоритм основан на (одиночном) алгоритме DES, стандартизированном в ISO 16609.
  27. ^ Эскапа, Дэниел (2006-11-09). «Шифрование для защищенных паролем разделов». Блог Дэниела Эскапы OneNote . Архивировано из оригинала 2009-12-16 . Получено 2010-01-28 .
  28. ^ "Шифрование сообщений электронной почты – Outlook – Microsoft Office Online". office.microsoft.com . Архивировано из оригинала 2008-12-25. Применимо к: Microsoft Office Outlook 2007
  29. ^ Документация по продукту Microsoft TechNet, Технический справочник по криптографическим элементам управления, используемым в Configuration Manager, октябрь 2012 г.
  30. ^ "Портал администратора". portal.office.com . Получено 2023-03-14 .
  31. ^ Исходный код Mozilla NSS. См. Объяснение структуры каталогов (особенно вводный раздел и раздел «безопасность») для получения справочной информации.