stringtranslate.com

MD2 (хэш-функция)

Алгоритм MD2 Message-Digest — это криптографическая хеш-функция, разработанная Рональдом Ривестом в 1989 году. [2] Алгоритм оптимизирован для 8-битных компьютеров. MD2 описан в IETF RFC 1319. [3] «MD» в MD2 означает «Message Digest».

Несмотря на то, что MD2 еще не полностью скомпрометирован, IETF в 2011 году отменил MD2 до статуса «исторического», сославшись на «признаки слабости». Он устарел в пользу SHA-256 и других сильных алгоритмов хеширования. [4]

Тем не менее, по состоянию на 2014 год он продолжал использоваться в инфраструктурах открытых ключей как часть сертификатов, созданных с помощью MD2 и RSA . [ необходима ссылка ]

Описание

128-битное хэш-значение любого сообщения формируется путем дополнения его до кратного длине блока (128 бит или 16 байт ) и добавления к нему 16-байтной контрольной суммы . Для фактического расчета используются 48-байтный вспомогательный блок и 256-байтная S-таблица . Константы были сгенерированы путем перетасовки целых чисел от 0 до 255 с использованием варианта алгоритма Дюрстенфельда с генератором псевдослучайных чисел на основе десятичных цифр числа π (пи) [3] [5] (см. nothing up my sleeve number ). Алгоритм проходит через цикл, в котором он переставляет каждый байт во вспомогательном блоке 18 раз для каждых 16 обработанных входных байтов. После того, как все блоки (удлиненного) сообщения были обработаны, первый частичный блок вспомогательного блока становится хэш-значением сообщения.

Значения S-таблицы в шестнадцатеричном формате:

{ 0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3, 0xC0, 0xC7, 0x73, 0x8C, 0x98, 0x93, 0x2B, 0xD9, 0xBC, 0x4C, 0x82, 0xCA, 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16, 0x67, 0x42, 0x6F, 0x18, 0x8A, 0x17, 0xE5, 0x12, 0xBE, 0x4E, 0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49, 0xA0, 0xFB, 0xF5, 0x8E, 0xBB, 0x2F, 0xEE, 0x7A, 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2, 0x07, 0x3F, 0x94, 0xC2, 0x10, 0x89, 0x0B, 0x22, 0x5F, 0x21, 0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27, 0x35, 0x3E, 0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x03, 0xFF, 0x19, 0x30, 0xB3, 0x48, 0xA5, 0xB5, 0xD1, 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56, 0xAA, 0xC6, 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6, 0x76, 0xFC, 0x6B, 0xE2, 0x9C, 0x74, 0x04, 0xF1, 0x45, 0x9D, 0x70, 0x59, 0x64, 0x71, 0x87, 0x20, 0x86, 0x5B, 0xCF, 0x65, 0xE6, 0x2D, ​​0xA8, 0x02, 0x1B, 0x60, 0x25, 0xAD, 0xAE, 0xB0, 0xB9, 0xF6, 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F, 0x55, 0x47, 0xA3, 0x23, 0xDD, 0x51, 0xAF, 0x3A, 0xC3, 0x5C, 0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26, 0x2C, 0x53, 0x0D, 0x6E, 0x85, 0x28, 0x84, 0x09, 0xD3, 0xDF, 0xCD, 0xF4, 0x41, 0x81, 0x4D, 0x52, 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA, 0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A, 0x78, 0x88, 0x95, 0x8B, 0xE3, 0x63, 0xE8, 0x6D, 0xE9, 0xCB, 0xD5, 0xFE, 0x3B, 0x00, 0x1D, 0x39, 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58, 0xD0, 0xE4, 0xA6, 0x77, 0x72, 0xF8, 0xEB, 0x75, 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 и соответствующий хэш MD2:

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

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

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

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

МД2("") = 8350e5a3e24c153df2275c9f80692773

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

Рожье и Шоуво представили в 1995 году [6] коллизии функции сжатия MD2 , хотя они не смогли расширить атаку на полный MD2. Описанные коллизии были опубликованы в 1997 году. [7]

В 2004 году было показано, что MD2 уязвим к атаке на прообраз со сложностью по времени, эквивалентной 2 104 применений функции сжатия. [8] Автор заключает: «MD2 больше нельзя считать безопасной односторонней хэш-функцией».

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

В 2009 году было показано, что MD2 уязвим к атаке коллизии со сложностью по времени 2 63,3 оценки функции сжатия и требованиями к памяти 2 52 хэш-значений. Это немного лучше, чем атака дня рождения , которая, как ожидается, потребует 2 65,5 оценки функции сжатия. [10]

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

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

Ссылки

  1. ^ Linn, John (август 1989 г.). «Алгоритм дайджеста сообщений RSA-MD2». Улучшение конфиденциальности электронной почты в Интернете: часть III — алгоритмы, режимы и идентификаторы. Rivest, Ron. IETF . раздел 4.2. doi : 10.17487/RFC1115 . RFC 1115. Получено 26 апреля 2021 г.
  2. ^ RSA Laboratories. "Что такое MD2, MD4 и MD5?". Стандарты криптографии с открытым ключом (PKCS): PKCS #7: Cryptographic Message Syntax Standard . RSA Laboratories. Архивировано из оригинала 16 января 2017 г.
  3. ^ ab Kaliski, Burt (апрель 1992 г.). Алгоритм MD2 Message-Digest. IETF . стр. 3. doi : 10.17487/RFC1319 . RFC 1319. Получено 22 ноября 2014 г.
  4. ^ RFC  6149, MD2 в статусе «История»
  5. ^ «Как построена S-таблица хэш-функции MD2 из числа Пи?». Cryptography Stack Exchange . Stack Exchange. 2 августа 2014 г. . Получено 23 мая 2021 г. .
  6. ^ Rogier, N.; Chauvaud, Pascal (18–19 мая 1995 г.). Функция сжатия MD2 не является бесколлизионной . Selected Areas in Cryptography (SAC) 1995, Оттава, Канада (запись семинара).
  7. ^ Rogier, N.; Chauvaud, Pascal (1997). «MD2 не является безопасным без байта контрольной суммы». Designs, Codes and Cryptography . 12 (3): 245–251. doi :10.1023/A:1008220711840. S2CID  21613457.
  8. ^ Мюллер, Фредерик (2004). Хэш-функция MD2 не является односторонней (PDF) . ASIACRYPT 2004. стр. 214–229. doi : 10.1007/978-3-540-30539-2_16 . Получено 26 апреля 2021 г. – через Международную ассоциацию криптологических исследований .
  9. ^ Томсен, Сорен С. (2008). «Улучшенная атака прообразом на MD2» (PDF) . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  10. ^ Кнудсен, Ларс Р.; Матиассен, Джон Эрик; Мюллер, Фредерик; Томсен, Сорен С. (2009). «Криптоанализ MD2». Журнал криптологии . 23 : 72–90. дои : 10.1007/s00145-009-9054-1 . S2CID  2443076.
  11. ^ CVE - 2009-2409

Дальнейшее чтение

Внешние ссылки