MD2 (хеш-функция) - MD2 (hash function)

MD2
Общее
ДизайнеровРональд Ривест
Впервые опубликованоАвгуст 1989 г.[1]
СерииMD2, MD4, MD5, MD6
Деталь
Размеры дайджеста128 бит
Раундов18

В Алгоритм дайджеста сообщения MD2 это криптографическая хеш-функция разработан Рональд Ривест в 1989 г.[2] Алгоритм оптимизирован для 8 бит компьютеры. MD2 указан в RFC 1319. Хотя MD2 больше не считается безопасным, даже с 2014 года, он продолжает использоваться в инфраструктуры открытых ключей как часть сертификаты сгенерирован с помощью MD2 и ЮАР. «MD» в MD2 означает «дайджест сообщения».

Описание

128-битное хеш-значение любого сообщения формируется путем его дополнения до кратной длины блока (128 бит или 16 байты ) и добавив 16-байтовый контрольная сумма к нему. Для фактических расчетов 48-байтовый вспомогательный блок и 256-байтовый Стабильный генерируется косвенно из цифр Пи используются (см. ничего в моем рукаве номер ). Алгоритм проходит через цикл, в котором он переставляет каждый байт во вспомогательном блоке 18 раз на каждые 16 обработанных входных байтов. После того, как все блоки (удлиненного) сообщения были обработаны, первый частичный блок вспомогательного блока становится хеш-значением сообщения.

Значения S-таблицы выводятся из Pi,[3][4] и в шестнадцатеричном виде:

{0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3, 0x7C0, 0x7C0, 0x7C0, 0x7C0 , 0x93, 0x2B, 0xD9, 0xBC, 0x4C, 0x82, 0xCA, 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16, 0x67, 0x42, 0x6F, 0x18, 0x8A, 0x5x12, 0x12E , 0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49, 0xA0, 0xFB, 0xF5, 0x8E, 0xBB, 0x2F, 0xEE, 0x7A, 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2, 0x07, 0x07, 0x07 , 0x89, 0x0B, 0x22, 0x5F, 0x21, 0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27, 0x35, 0x3E, 0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x30, 0x19, 0xBF , 0x48, 0xA5, 0xB5, 0xD1, 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56, 0xAA, 0xC6, 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6, 0x6, 0x6, 0x6, 0xE2 , 0x74, 0x04, 0xF1, 0x45, 0x9D, 0x70, 0x59, 0x64, 0x71, 0x87, 0x20, 0x86, 0x5B, 0xCF, 0x65, 0xE6, 0x2D, ​​0xA8, 0x02, 0x1B, 0x0A, 0x60, 0xAAD , 0xB9, 0xF6, 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F, 0x55, 0x47, 0xA3, 0 x23, 0xDD, 0x51, 0xAF, 0x3A, 0xC3, 0x5C, 0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26, 0x2C, 0x53, 0x0D, 0x6E, 0x85, 0x28, 0x84, 0x04, 0xD, 0xD 0x41, 0x81, 0x4D, 0x52, 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA, 0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A, 0x3x95, 0x88 0x63, 0xE8, 0x6D, 0xE9, 0xCB, 0xD5, 0xFE, 0x3B, 0x00, 0x1D, 0x39, 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58, 0xD0, 0xE4, 0xA8x72, 0x77, 0xE4, 0xA8x72, 0x77, 0xE4 0x4B, 0x0A, 0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A, 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14}

MD2 хеши

128-битные (16-байтовые) хэши MD2 (также называемые дайджесты сообщений) обычно представлены как 32-значные шестнадцатеричный числа. Ниже показано 43-байтовое ASCII input и соответствующий хеш MD2:

 MD2 («Быстрая коричневая лиса перепрыгивает через ленивого dog ") = 03d85a0d629d2c442e987525319fc471

В результате лавинный эффект в MD2 даже небольшое изменение входящего сообщения (с подавляющей вероятностью) приведет к совершенно другому хешу. Например, изменение буквы d к c в сообщении приводит к:

 MD2 ("Быстрая коричневая лисица перепрыгивает через ленивого cog ") = 6b890c9292668cdbbfda00a4ebf31f05

Хеш строки нулевой длины:

 MD2 ("") = 8350e5a3e24c153df2275c9f80692773

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

Rogier и Chauvaud (1997) описали столкновения MD2 функция сжатия, хотя они не смогли распространить атаку на полную MD2.

В 2004 году было показано, что MD2 уязвим для атака на прообраз с временная сложность эквивалент 2104 применения функции сжатия (Muller, 2004). Автор заключает: "MD2 больше не может считаться безопасной односторонней хеш-функцией".

В 2008 году в MD2 были внесены дальнейшие улучшения в атака на прообраз с временная сложность из 273 оценки функции сжатия и требования к памяти 273 блоки сообщений.[5]

В 2009 году было показано, что MD2 уязвим для столкновение с временная сложность из 263.3 оценки функции сжатия и требования к памяти 252 хеш-значения. Это немного лучше, чем атака на день рождения что, как ожидается, займет 265.5 оценки функции сжатия.[6]

В 2009 году были выпущены обновления безопасности, отключающие MD2 в OpenSSL, GnuTLS, и Услуги сетевой безопасности.[7]

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

Рекомендации

  • Берт Калиски, RFC 1319 - Алгоритм дайджеста сообщений MD2, апрель 1992 г.
  • Н. Рожье, Паскаль Шово, Функция сжатия MD2 не свободна от столкновений, Избранные области криптографии - SAC'95 Оттава, Канада, 18–19 мая 1995 г. (протокол семинара).
  • Н. Рожье, Паскаль Шово, MD2 небезопасен без байта контрольной суммы, Конструкции, коды и криптография, 12 (3), pp245–251, 1997.
  • Фредерик Мюллер, Хеш-функция MD2 не односторонняя, ASIACRYPT 2004, стр 214–229.
  • Ларс Р. Кнудсен и Джон Эрик Матиассен, Preimage and Collision Attacks на MD2. FSE 2005.
  1. ^ Джон Линн, RFC 1115 - Повышение конфиденциальности электронной почты в Интернете: Часть III - Алгоритмы, режимы и идентификаторы, раздел 4.2, август 1989 г., Источник Рон Л. Ривест, октябрь 1988 г.
  2. ^ "Что такое MD2, MD4 и MD5?". Стандарты криптографии с открытым ключом (PKCS): PKCS # 7: Стандарт синтаксиса криптографических сообщений: 3.6 Другие криптографические методы: 3.6.6 Что такое MD2, MD4 и MD5?. RSA Laboratories. Получено 2011-04-29.
  3. ^ Калиски, Берт (Апрель 1992 г.). «RFC 1319 - алгоритм дайджеста сообщения MD2». RSA Laboratories. п. 3. Получено 22 ноября 2014.
  4. ^ «Как устроена S-таблица хеш-функции MD2 из числа Пи?». Обмен криптографическим стеком. Обмен стеками. 2 августа 2014 г.. Получено 22 ноября 2014.
  5. ^ Сорен С. Томсен (2008). «Улучшенная атака прообраза на MD2» (PDF). Цитировать журнал требует | журнал = (Помогите)
  6. ^ Knudsen, Lars R .; Матиассен, Джон Эрик; Мюллер, Фредерик; Томсен, Сорен С. (2009). «Криптоанализ MD2». Журнал криптологии. 23: 72–90. Дои:10.1007 / s00145-009-9054-1. S2CID  2443076.
  7. ^ CVE -2009-2409

внешняя ссылка