Тройной DES
Общий | |
---|---|
Впервые опубликовано | 1981 |
Получено из | ПРИНАДЛЕЖАЩИЙ |
Деталь шифрования | |
Размеры ключей | 112 или 168 бит |
Размеры блоков | 64 бита |
Структура | Сеть Фейстеля |
Раунды | 48 раундов, эквивалентных DES |
Лучший публичный криптоанализ | |
Счастливчик: 2 32 известные открытые тексты, 2 113 операции, в том числе 2 90 шифрование, 2 88 память; Бихам: найди один из 2 28 целевые ключи с несколькими выбранными открытыми текстами для каждого ключа и 2 84 шифрование |
В криптографии , Triple DES ( 3DES или TDES ), официально называемый тройным алгоритмом шифрования данных ( TDEA или Triple DEA ), представляет собой с симметричным ключом блочный шифр который применяет алгоритм шифрования DES трижды к каждому блоку данных. 56-битный ключ стандарта шифрования данных (DES) больше не считается адекватным перед лицом современных криптоаналитических методов и мощности суперкомпьютеров; Тройной DES увеличивает эффективную безопасность до 112 бит. CVE , выпущенная в 2016 году -2016-2183 , выявила серьезную уязвимость безопасности в алгоритмах шифрования DES и 3DES. Этот CVE в сочетании с неадекватным размером ключа 3DES привел к тому, что NIST отказался от поддержки 3DES в 2019 году и запретил все виды использования (кроме обработки уже зашифрованных данных) к концу 2023 года. [1] Он был заменен более безопасным и надежным AES .
Хотя государственные и отраслевые стандарты США сокращают название алгоритма как TDES (тройной DES) и TDEA (алгоритм тройного шифрования данных), [2] В RFC 1851 он упоминался как 3DES с момента первого обнародования этой идеи, и с тех пор этот тезка широко используется большинством поставщиков, пользователей и криптографов. [3] [4] [5] [6]
История
[ редактировать ]предложил метод тройного шифрования с использованием DES с двумя 56-битными ключами В 1978 году Уолтер Тачман ; в 1981 году Меркл и Хеллман предложили более безопасную версию 3DES с тремя ключами и 112 битами безопасности. [7]
Стандарты
[ редактировать ]Алгоритм тройного шифрования данных по-разному определяется в нескольких стандартных документах:
- RFC 1851, Тройное преобразование DES ESP [8] (утвержден в 1995 г.)
- ANSI ANS X9.52-1998 Режимы работы алгоритма тройного шифрования данных [9] (утвержден в 1998 г., отозван в 2008 г.) [10] )
- FIPS PUB 46-3 (DES) Стандарт шифрования данных [11] (утвержден в 1999 г., отозван в 2005 г.) [12] )
- NIST Специальная публикация 800-67, редакция 2. Рекомендации по блочному шифру с тройным алгоритмом шифрования данных (TDEA). [13] (утвержден в 2017 г., отозван в 2024 г.) [14] )
- ISO / IEC 18033-3:2010: Часть 3: Блочные шифры [15] (утверждено в 2005 г.)
Алгоритм
[ редактировать ]исходного шифра DES, Размер ключа равный 56 битам, считался в целом достаточным на момент его разработки, но доступность растущей вычислительной мощности сделала возможными атаки методом грубой силы . Тройной DES обеспечивает относительно простой метод увеличения размера ключа DES для защиты от таких атак без необходимости разработки совершенно нового алгоритма блочного шифрования.
Наивный подход к повышению надежности алгоритма блочного шифрования с короткой длиной ключа (например, DES) заключался бы в использовании двух ключей. вместо одного и зашифруйте каждый блок дважды: . Если исходная длина ключа бит, можно было бы надеяться, что эта схема обеспечивает безопасность, эквивалентную использованию ключа. биты длинные. К сожалению, этот подход уязвим для атаки «встреча посередине» : при наличии известной пары открытого текста , такой, что , можно восстановить пару ключей в шаги вместо шаги, которые можно было бы ожидать от идеально безопасного алгоритма с кусочки ключа.
Таким образом, Triple DES использует «связку ключей», состоящую из трех ключей DES . , и , каждый из 56 бит (исключая биты четности ). Алгоритм шифрования:
То есть зашифровать с помощью , расшифровать с помощью , затем зашифруйте с помощью .
Расшифровка обратная:
То есть расшифровать с помощью , зашифровать с помощью , затем расшифруйте с помощью .
Каждое тройное шифрование шифрует один блок из 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», для которого требуется всего 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 (и текущая версия 2.0 спецификаций TCG утвержденных алгоритмов для 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 определяют только одноблочный алгоритм и не накладывают никаких ограничений на режимы работы для нескольких блоков.
Безопасность
[ редактировать ]В общем, тройной DES с тремя независимыми ключами ( вариант ключа 1) имеет длину ключа 168 бит (три 56-битных ключа DES), но из-за атаки «встреча посередине» эффективная безопасность, которую он обеспечивает, составляет только 112 бит. [16] Вариант шифрования 2 уменьшает эффективный размер ключа до 112 бит (поскольку третий ключ такой же, как и первый). Однако этот вариант подвержен определенным атакам с использованием выбранного или известного открытого текста . [21] [22] и поэтому NIST определил, что он имеет только 80 бит безопасности . [16] Это можно считать небезопасным; как следствие, NIST объявил о запланированном прекращении поддержки Triple DES в 2017 году. [23]
Размер короткого блока в 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:
- Ботан
- Надувной замок
- криптлиб
- Крипто++
- Libgcrypt
- Крапива
- OpenSSL
- волкSSL
- Доверенный платформенный модуль (TPM)
Некоторые реализации, описанные выше, могут не включать 3DES в сборку по умолчанию в более поздних или более поздних версиях.
См. также
[ редактировать ]Ссылки и примечания
[ редактировать ]- ^ Баркер, Элейн; Рогинский, Аллен (01 марта 2019 г.). «Переход на использование криптографических алгоритмов и длины ключей» (PDF) . Гейтерсбург, Мэриленд: Публикации NIST. п. 7. дои : 10.6028/нист.сп.800-131ар2 . NIST SP 800-131A Редакция 2. Архивировано (PDF) из оригинала 11 мая 2019 г. Проверено 20 сентября 2022 г.
- ^ «Тройное шифрование DES» . ИБМ . Проверено 17 мая 2010 г.
- ^ Аланази, Хамдан. О.; Зайдан, Б.Б.; Зайдан, А.А.; Джалаб, Хамид А.; Шаббир, М.; Аль-Набхани, Ю. (март 2010 г.). «Новое сравнительное исследование DES, 3DES и AES по девяти факторам» Журнал вычислительной техники . 2 (3). arXiv : 1003.4085 . Бибкод : 2010arXiv1003.4085A ISSN 2151-9617 .
- ^ «Руководство по началу работы с устройством безопасности Cisco PIX 515E: получение лицензии DES или лицензии 3DES-AES» (PDF) . Циско . 2006. Архивировано (PDF) из оригинала 7 февраля 2016 г. Проверено 5 сентября 2017 г.
- ^ «Обновление 3DES: большинство банков закончили работу, но…» Новости банкоматов и дебета . 29 марта 2007 г. Архивировано из оригинала 10 мая 2013 г. Проверено 5 сентября 2017 г.
- ^ RFC 2828 и RFC 4949.
- ^ Меркл, Р. и М. Хеллман, «О безопасности множественного шифрования», Communications of ACM, vol. 24, нет. 7, стр. 465–467, июль 1981 г.
- ^ Карн, П.; Мецгер, П.; Симпсон, В. (сентябрь 1995 г.). Тройное преобразование ESP DES . дои : 10.17487/RFC1851 . РФК 1851 .
- ^ Jump up to: а б «Режимы работы алгоритма тройного шифрования данных ANSI X9.52-1998» . Проверено 5 сентября 2017 г. Расширяет алгоритм шифрования данных ANSI X3.92-1981 .
- ^ «Уведомление о выходе: ANS прошло не менее 10 лет после даты утверждения» (PDF) . Действие стандартов ANSI . Том. 39, нет. 46. АНСИ . 14 ноября 2008 г. п. 5. ISSN 0038-9633 . Архивировано (PDF) из оригинала 06 сентября 2017 г. Проверено 5 сентября 2017 г.
- ^ «FIPS PUB 46-3: Стандарт шифрования данных (DES)» (PDF) . Министерство торговли США . 25 октября 1999 г. Архивировано (PDF) из оригинала 5 апреля 2003 г. Проверено 5 сентября 2017 г.
- ^ «Объявление об одобрении отмены Федерального стандарта обработки информации (FIPS) 46–3…» (PDF) . Федеральный реестр . 70 (96). 19 мая 2005 г. Архивировано (PDF) из оригинала 17 сентября 2008 г. Проверено 5 сентября 2017 г.
- ^ Jump up to: а б с Баркер, Элейн; Муха, Ники (ноябрь 2017 г.). «Специальная публикация NIST 800-67, редакция 2: Рекомендации по блочному шифру тройного алгоритма шифрования данных (TDEA)» (PDF) . НИСТ . дои : 10.6028/NIST.SP.800-67r2 . Архивировано (PDF) из оригинала 1 декабря 2017 г. Проверено 21 ноября 2017 г.
- ^ NIST отзовет специальную публикацию 800-67, редакция 2 https://csrc.nist.gov/news/2023/nist-to-withdraw-sp-800-67-rev-2
- ^ «ISO/IEC 18033-3:2010 Информационные технологии. Методы обеспечения безопасности. Алгоритмы шифрования. Часть 3. Блочные шифры» . ИСО . Декабрь 2010 года . Проверено 5 сентября 2017 г.
- ^ Jump up to: а б с д и ж Баркер, Элейн (январь 2016 г.). «Специальная публикация NIST 800-57: Рекомендации по управлению ключами, часть 1: Общие сведения» (PDF) (4-е изд.). НИСТ . Архивировано (PDF) из оригинала 7 февраля 2016 г. Проверено 5 сентября 2017 г.
- ^ Jump up to: а б «Руководство по криптографии: тройной DES» . Криптографический мир. Архивировано из оригинала 12 марта 2017 г. Проверено 5 сентября 2017 г.
- ^ Кац, Джонатан; Линделл, Иегуда (2015). Введение в современную криптографию . Чепмен и Холл/CRC . п. 223. ИСБН 9781466570269 .
- ^ Специальная публикация NIST 800-38A, Рекомендации по режимам работы, методам и технологиям блочного шифрования , издание 2001 г. (PDF)
- ^ «ISO/IEC 10116:2006 Информационные технологии. Методы обеспечения безопасности. Режимы работы n-битного блочного шифра» (3-е изд.). Февраль 2006 года . Проверено 5 сентября 2017 г.
- ^ Меркл, Ральф ; Хеллман, Мартин (июль 1981 г.). «О безопасности множественного шифрования» (PDF) . Коммуникации АКМ . 24 (7): 465–467. CiteSeerX 10.1.1.164.251 . дои : 10.1145/358699.358718 . S2CID 11583508 . Архивировано из оригинала (PDF) 10 февраля 2013 г. Проверено 15 ноября 2013 г.
- ^ ван Оршот, Пол ; Винер, Майкл Дж. (1990). Атака с использованием известного открытого текста на тройное шифрование с двумя ключами . EUROCRYPT '90, LNCS 473. стр. 318–325. CiteSeerX 10.1.1.66.6575 .
- ^ «Обновление текущего использования и прекращение поддержки TDEA» . nist.gov . 11 июля 2017 года . Проверено 2 августа 2019 г.
- ^ «Sweet32: День рождения атаки на 64-битные блочные шифры в TLS и OpenVPN» . Sweet32.info . Проверено 5 сентября 2017 г.
- ^ Зальц, Рич (24 августа 2016 г.). «Проблема SWEET32, CVE-2016-2183» . OpenSSL . Проверено 5 сентября 2017 г.
- ^ «Утвержденные Приложением 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.
- ^ Эскапа, Дэниел (9 ноября 2006 г.). «Шифрование разделов, защищенных паролем» . Блог OneNote Дэниела Эскапы . Архивировано из оригинала 16 декабря 2009 г. Проверено 28 января 2010 г.
- ^ «Шифрование сообщений электронной почты – Outlook – Microsoft Office Online» . office.microsoft.com . Архивировано из оригинала 25 декабря 2008 г.
Применяется к: Microsoft Office Outlook 2007.
- ^ Документация по продукту Microsoft TechNet, Технический справочник по криптографическим элементам управления, используемым в Configuration Manager , октябрь 2012 г.
- ^ «Портал администратора» . портал.office.com . Проверено 14 марта 2023 г.
- ^ Исходный код Mozilla NSS . Дополнительную информацию см . в разделе «Объяснение структуры каталогов» (особенно вводных разделов и разделов «Безопасность»).