~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 0FE84D2289C3AD75DFE317C6B4D49D93__1717754820 ✰
Заголовок документа оригинал.:
✰ MD5 - Wikipedia ✰
Заголовок документа перевод.:
✰ MD5 — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/MD5 ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/0f/93/0fe84d2289c3ad75dfe317c6b4d49d93.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/0f/93/0fe84d2289c3ad75dfe317c6b4d49d93__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 09:34:07 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 7 June 2024, at 13:07 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

MD5 — Википедия Jump to content

MD5

Из Википедии, бесплатной энциклопедии

MD5
Общий
Дизайнеры Рональд Ривест
Впервые опубликовано апрель 1992 г.
Ряд МД2 , МД4 , МД5, МД6
Деталь шифрования
Размеры дайджеста 128 бит
Размеры блоков 512 бит
Состав Строительство Меркле – Дамгорда
Раунды 4 [1]
Лучший публичный криптоанализ
Атака Се Тао, Фаньбао Лю и Дэнго Фэна в 2013 году преодолела сопротивление столкновению MD5 в 2 раза. 18 время. На обычном компьютере эта атака выполняется менее чем за секунду. [2] MD5 подвержен атакам расширения длины .

Алгоритм дайджеста сообщения MD5 — это широко используемая хеш-функция, создающая 128- битное хэш-значение. MD5 был разработан Рональдом Ривестом в 1991 году для замены более ранней хэш-функции MD4 . [3] и был указан в 1992 году как RFC 1321.

MD5 можно использовать в качестве контрольной суммы для проверки целостности данных на предмет непреднамеренного повреждения. Исторически он широко использовался в качестве криптографической хэш-функции ; однако было обнаружено, что он имеет множество уязвимостей. Он по-прежнему подходит для других некриптографических целей, например, для определения раздела для определенного ключа в многораздельной базе данных , и может быть предпочтительнее из-за меньших вычислительных требований, чем более поздние алгоритмы безопасного хеширования . [4]

История и криптоанализ [ править ]

MD5 — один из серии алгоритмов дайджеста сообщений , разработанных профессором Рональдом Ривестом из Массачусетского технологического института (Rivest, 1992). Когда аналитическая работа показала, что предшественник MD5, MD4, скорее всего, будет небезопасным, Ривест разработал MD5 в 1991 году как безопасную замену. ( Ганс Доббертин действительно позднее обнаружил слабые места в MD4.)

В 1993 году Ден Бур и Босселерс дали ранний, хотя и ограниченный, результат обнаружения « псевдоколлизии MD5 » функции сжатия ; то есть два разных вектора инициализации , которые создают идентичный дайджест.

В 1996 году Доббертин объявил о коллизии функции сжатия MD5 (Доббертин, 1996). Хотя это не была атака на полную хеш-функцию MD5, она была достаточно близка к тому, чтобы криптографы рекомендовали переключиться на замену, такую ​​как SHA-1 (с тех пор также скомпрометированная) или RIPEMD-160 .

Размер хеш-значения (128 бит) достаточно мал, чтобы можно было предположить атаку на день рождения . MD5CRK — это распределенный проект , начатый в марте 2004 года с целью продемонстрировать, что MD5 практически небезопасен за счет обнаружения коллизий с помощью атаки «день рождения».

MD5CRK завершился вскоре после 17 августа 2004 года, когда столкновениях для полного MD5. объявили о Сяоюнь Ван , Дэнго Фэн, Сюэцзя Лай и Хунбо Юй [5] [6] Сообщается, что их аналитическая атака на кластере IBM p690 заняла всего один час . [7]

1 марта 2005 года Арьен Ленстра , Сяоюнь Ван и Бенне де Вегер продемонстрировали создание двух сертификатов X.509 с разными открытыми ключами и одинаковым значением хеш-функции MD5, что является очевидным практическим столкновением. [8] В конструкцию включены закрытые ключи для обоих открытых ключей. Несколько дней спустя Властимил Клима описал улучшенный алгоритм, способный создавать коллизии MD5 за несколько часов на одном ноутбуке. [9] 18 марта 2006 года Клима опубликовал алгоритм, который может обнаружить столкновение за одну минуту на одном ноутбуке, используя метод, который он называет туннелированием. [10]

связанные с MD5 различные ошибки RFC, Были опубликованы . В 2009 году Киберкомандование США использовало хеш-значение MD5 своей миссии как часть своей официальной эмблемы. [11]

24 декабря 2010 года Тао Се и Дэнго Фэн объявили о первой опубликованной одноблочной (512-битной) коллизии MD5. [12] (Предыдущие открытия столкновений основывались на многоблочных атаках.) По «соображениям безопасности» Се и Фэн не раскрыли новый метод атаки. Они бросили вызов криптографическому сообществу, предложив вознаграждение в размере 10 000 долларов США тому, кто первым обнаружит другую 64-байтовую коллизию до 1 января 2013 года. Марк Стивенс ответил на вызов и опубликовал конфликтующие одноблочные сообщения, а также алгоритм построения и источники. [13]

В 2011 году информационный RFC 6151. [14] было одобрено для обновления соображений безопасности в MD5 [15] и HMAC-MD5. [16]

Безопасность [ править ]

Одним из основных требований к любой криптографической хеш-функции является то, что с вычислительной точки зрения невозможно найти два разных сообщения, которые хэшируют одно и то же значение. MD5 катастрофически не соответствует этому требованию. 31 декабря 2008 года Институт программной инженерии CMU пришел к выводу, что MD5 по сути «криптографически взломан и непригоден для дальнейшего использования». [17] Слабые стороны MD5 использовались в полевых условиях, наиболее печально известная вредоносная программа Flame в 2012 году. По состоянию на 2019 год MD5 продолжает широко использоваться, несмотря на его хорошо задокументированные недостатки и неодобрение экспертами по безопасности. [18]

Существует атака коллизий , которая позволяет обнаружить коллизии за секунды на компьютере с процессором Pentium 4 2,6 ГГц (сложность 2 24.1 ). [19] Кроме того, существует также атака коллизии выбранного префикса , которая может вызвать коллизию двух входных данных с указанными префиксами в течение нескольких секунд с использованием готового вычислительного оборудования (сложность 2). 39 ). [20] Способности находить коллизии во многом способствовало использование готовых графических процессоров . На графическом процессоре NVIDIA GeForce 8400GS можно вычислить 16–18 миллионов хешей в секунду. NVIDIA GeForce 8800 Ultra может вычислять более 200 миллионов хэшей в секунду. [21]

Эти атаки хеширования и коллизий были публично продемонстрированы в различных ситуациях, включая конфликтующие файлы документов. [22] [23] и цифровые сертификаты . [24] По состоянию на 2015 год было продемонстрировано, что MD5 по-прежнему довольно широко используется, особенно компаниями, занимающимися исследованиями в области безопасности, и антивирусными компаниями. [25]

, что по состоянию на 2019 год четверть широко используемых систем управления контентом Сообщалось все еще используют MD5 для хеширования паролей . [18]

Обзор проблем безопасности [ править ]

В 1996 году в конструкции MD5 был обнаружен недостаток. Хотя в то время это не считалось фатальной слабостью, криптографы начали рекомендовать использование других алгоритмов, таких как SHA-1 , который с тех пор также оказался уязвимым. [26] В 2004 году было показано, что MD5 не устойчив к столкновениям . [27] Таким образом, MD5 не подходит для таких приложений, как SSL сертификаты или цифровые подписи , которые полагаются на это свойство для цифровой безопасности. Исследователи также обнаружили более серьезные недостатки в MD5 и описали возможную коллизионную атаку — метод создания пары входных данных, для которых MD5 выдает идентичные контрольные суммы . [5] [28] Дальнейшие успехи в взломе MD5 были достигнуты в 2005, 2006 и 2007 годах. [29] В декабре 2008 года группа исследователей использовала этот метод для подделки действительности сертификата SSL . [24] [30]

По состоянию на 2010 год Институт программной инженерии CMU считает MD5 «криптографически взломанным и непригодным для дальнейшего использования». [31] и большинству правительственных приложений США теперь требуется SHA-2 . семейство хеш-функций [32] В 2012 году вредоносная программа Flame использовала недостатки MD5 для подделки цифровой подписи Microsoft . [33]

Уязвимости столкновений [ править ]

В 1996 году были обнаружены коллизии в функции сжатия MD5, и Ханс Доббертин написал в техническом бюллетене RSA Laboratories : «Представленная атака пока не угрожает практическому применению MD5, но она достаточно близка к этому... в будущем MD5 должен больше не будет реализован... там, где требуется устойчивая к коллизиям хеш-функция». [34]

В 2005 году исследователям удалось создать пары PostScript . документов [35] и X.509 сертификаты [36] с тем же хешем. Позже в том же году дизайнер MD5 Рон Ривест написал, что «md5 и sha1 явно сломаны (с точки зрения устойчивости к столкновениям)». [37]

30 декабря 2008 года группа исследователей объявила на 25-м Конгрессе Chaos Communication , как они использовали коллизии MD5 для создания промежуточного сертификата центра сертификации, который оказался законным при проверке его хеша MD5. [24] Исследователи использовали кластер PS3 в EPFL в Лозанне , Швейцария. [38] изменить обычный сертификат SSL, выданный RapidSSL , на рабочий сертификат CA для этого издателя, который затем можно будет использовать для создания других сертификатов, которые будут выглядеть законными и выданными RapidSSL. VeriSign , эмитенты сертификатов RapidSSL, заявили, что прекратили выпуск новых сертификатов, использующих MD5 в качестве алгоритма контрольной суммы для RapidSSL, как только было объявлено об уязвимости. [39] Хотя компания Verisign отказалась отозвать существующие сертификаты, подписанные с использованием MD5, их ответ был признан адекватным авторами эксплойта ( Александр Сотиров , Марк Стивенс , Якоб Аппельбаум , Арьен Ленстра , Дэвид Молнар, Даг Арне Освик и Бенне де Вегер). [24] Брюс Шнайер написал об атаке, что «мы уже знали, что MD5 — это неработающая хэш-функция» и что «никто больше не должен использовать MD5». [40] Исследователи SSL написали: «Мы желаем, чтобы центры сертификации прекратили использовать MD5 при выдаче новых сертификатов. Мы также надеемся, что использование MD5 в других приложениях также будет пересмотрено». [24]

По данным Microsoft , в 2012 году авторы вредоносного ПО Flame использовали коллизию MD5 для подделки сертификата подписи кода Windows. [33]

MD5 использует конструкцию Меркла-Дамгарда , поэтому, если можно создать два префикса с одинаковым хешем, к обоим можно добавить общий суффикс, чтобы повысить вероятность того, что коллизия будет принята приложением, использующим его, как действительные данные. Более того, современные методы поиска коллизий позволяют указывать произвольный префикс : злоумышленник может создать два конфликтующих файла, каждый из которых начинается с одинакового содержимого. Все, что нужно злоумышленнику для создания двух конфликтующих файлов, — это файл шаблона со 128-байтовым блоком данных, выровненным по границе 64 байта, который может быть свободно изменен алгоритмом поиска коллизий. Пример коллизии MD5, когда два сообщения отличаются на 6 бит:

d131dd02c5e6eec4 693d9a0698aff95c 2fcab5  8  712467eab 4004583eb8fb7f89 
  55ad340609f4b302 83e4888325  7  1415a 085125e8f7cdc99f d91dbd  f  280373c5b 
  d8823e3156348f5b ae6dacd436c919c6 dd53e2  b  487da03fd 02396306d248cda0 
  e99f33420f577ee8 ce54b67080  a  80d1e c69821bcb6a88393 96f965  2  b6ff72a70 
 
d131dd02c5e6eec4 693d9a0698aff95c 2fcab5  0  712467eab 4004583eb8fb7f89 
  55ad340609f4b302 83e4888325  f  1415a 085125e8f7cdc99f d91dbd  7  280373c5b 
  d8823e3156348f5b ae6dacd436c919c6 dd53e2  3  487da03fd 02396306d248cda0 
  e99f33420f577ee8 ce54b67080  2  80d1e c69821bcb6a88393 96f965  a  b6ff72a70 
 

Оба создают хэш MD5. 79054025255fb1a26e4bc422aef54eb4. [41] Разница между двумя выборками состоит в том, что старший бит в каждом полубайте перевернут. Например, 20-й байт (смещение 0x13) в верхнем образце, 0x87, равен 10000111 в двоичном формате. Ведущий бит в байте (также ведущий бит в первом полубайте) инвертируется, образуя 00000111, то есть 0x07, как показано в нижнем примере.

Позже также оказалось возможным создавать коллизии между двумя файлами с отдельно выбранными префиксами. Этот метод использовался при создании мошеннического сертификата CA в 2008 году. новый вариант параллельного поиска коллизий с использованием MPI , который позволил обнаружить коллизию за 11 часов на вычислительном кластере. В 2014 году Антон Кузнецов предложил [42]

Уязвимость прообраза [ править ]

В апреле 2009 года была опубликована атака на MD5, которая ломает устойчивость MD5 к прообразу . Эта атака является лишь теоретической, с вычислительной сложностью 2 123.4 для полного прообраза. [43] [44]

Приложения [ править ]

Дайджесты MD5 широко используются в мире программного обеспечения для обеспечения некоторой уверенности в том, что переданный файл доставлен в целости и сохранности. Например, файловые серверы часто предоставляют предварительно вычисленную MD5 (известную как md5sum ) контрольную сумму для файлов, чтобы пользователь мог сравнить с ней контрольную сумму загруженного файла. Большинство операционных систем на базе Unix включают в свои дистрибутивы утилиты суммирования MD5; Пользователи Windows могут использовать включенную функцию PowerShell «Get-FileHash», включенную функцию командной строки «certutil -hashfile <filename> md5», [45] [46] установите утилиту Microsoft, [47] [48] или использовать сторонние приложения. ПЗУ Android также используют этот тип контрольной суммы.

Диаграмма, показывающая использование хеширования MD5 при передаче файлов
Diagram showing use of MD5 hashing in file transmission

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

Исторически MD5 использовался для хранения одностороннего хеша пароля , часто с растяжением ключа . [49] [50] NIST не включает MD5 в список рекомендуемых хешей для хранения паролей. [51]

MD5 также используется в области электронного раскрытия информации , чтобы предоставить уникальный идентификатор каждому документу, которым обмениваются в процессе юридического раскрытия. Этот метод может быть использован для замены системы нумерации марок Бейтса , которая десятилетиями использовалась при обмене бумажными документами. Как указано выше, такое использование не рекомендуется из-за простоты атак коллизий.

Алгоритм [ править ]

Рисунок 1. Одна операция MD5. MD5 состоит из 64 таких операций, сгруппированных в четыре раунда по 16 операций. F – нелинейная функция; в каждом раунде используется одна функция. Mi i обозначает 32-битный блок ввода сообщения, а K обозначает 32-битную константу, разную для каждой операции. <<< s обозначает поворот левого бита на s мест; s варьируется для каждой операции. обозначает сложение по модулю 2 32 .

MD5 преобразует сообщение переменной длины в выходные данные фиксированной длины в 128 бит. Входное сообщение разбивается на блоки по 512 бит (шестнадцать 32-битных слов); сообщение дополняется так, что его длина делится на 512. Заполнение работает следующим образом: сначала к концу сообщения добавляется один бит, 1. За этим следует столько нулей, сколько необходимо, чтобы довести длину сообщения до 64 бит меньше, чем кратное 512. Оставшиеся биты заполняются 64 битами, представляющими длину исходного сообщения по модулю 2. 64 .

Основной алгоритм MD5 работает с 128-битным состоянием, разделенным на четыре 32-битных слова, A , B , C и D. обозначенных Они инициализируются определенными фиксированными константами. Затем основной алгоритм по очереди использует каждый 512-битный блок сообщения для изменения состояния. Обработка блока сообщения состоит из четырех аналогичных этапов, называемых раундами ; каждый раунд состоит из 16 аналогичных операций, основанных на нелинейной функции F , модульном сложении и вращении влево. Рисунок 1 иллюстрирует одну операцию в течение раунда. Есть четыре возможных функции; В каждом раунде используется другой:

обозначают операции XOR , AND , OR и NOT соответственно.

Псевдокод [ править ]

По этому алгоритму рассчитывается MD5-хеш. [52] Все значения имеют прямой порядок байтов .

//  : Все переменные являются 32-битными беззнаковыми и переносятся по модулю 2^32 при вычислении 
 var   int  s[64], K[64] 
  вар   int  я 

  //  s указывает величину сдвига за раунд 
  s[ 0..15] := { 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22 } 
  s[16..31] := { 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20 } 
  s[32..47] := { 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23 } 
  s[48..63] := { 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21 } 

  //  Используем двоичную целочисленную часть синусов целых чисел (радианы) в качестве констант: 
 для  i  от  0  до  63  делаем 
      K[i] := пол(2 32 × абс(грех(я + 1))) 
  end for 
 //  (Или просто используйте следующую заранее вычисленную таблицу): 
  K[ 0.. 3] := { 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee } 
  K[ 4.. 7] := { 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501 } 
  K[ 8..11] := { 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be } 
  K[12..15] := { 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821 } 
  K[16..19] := { 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa } 
  K[20..23] := { 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8 } 
  K[24..27] := { 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed } 
  K[28..31] := { 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a } 
  K[32..35] := { 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c } 
  K[36..39] := { 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70 } 
  K[40..43] := { 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05 } 
  K[44..47] := { 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665 } 
  K[48..51] := { 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039 } 
  K[52..55] := { 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1 } 
  K[56..59] := { 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1 } 
  K[60..63] := { 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 } 

 //  Инициализируем переменные: 
 var   int  a0 := 0x67452301  // A 
 var   int  b0 := 0xefcdab89  // B 
 var   int  c0 := 0x98badcfe  // C 
 var   int  d0 := 0x10325476  // D 

 //  Предварительная обработка: добавление одного 1 бит 
 добавляет  бит «1»  к  сообщению<     
   // Обратите внимание: входные байты считаются битовыми строками, 
   // где первый бит является старшим битом байта. [53] 

//  Предварительная обработка: заполнение нулями, 
 добавление  бита «0»  до тех пор, пока  длина сообщения в битах не станет ≡ 448 (модуль 512) 

  // Обратите внимание: два приведенных выше шага заполнения реализованы более простым способом 
    // в реализациях, которые работают только с полными байтами: добавьте 0x80 
    // и дополняем байтами 0x00, чтобы длина сообщения в байтах ≡ 56 (по модулю 64). 

  добавить  исходную длину в битах,  мод  2 64  отправить  сообщение 

  //  Обработка сообщения последовательными 512-битными фрагментами: 
 для каждого   512-битного  дополненного  фрагмента  сообщения  выполните 
      разбить фрагмент на шестнадцать 32-битных слов M[j], 0 ≤ j ≤ 15 
    //  Инициализируем хеш-значение для этого фрагмента: 
     var   int  A := a0 
      вар   int  B := b0 
      вар   int  C := c0 
      вар   int  D := d0 
    //  Основной цикл: 
     для  i  от  0  до  63  do 
         var   int  F, g 
          если  0 ≤ i ≤ 15  , то 
              F := (B  и  C)  или  ((  не  B)  и  D) 
              г := я 
          иначе, если  16 ≤ i ≤ 31  , то 
              F := (D  и  B)  или  ((  не  D)  и  C) 
              г := (5×i + 1)  мод  16 
          иначе, если  32 ≤ i ≤ 47  , то 
              F := B  xили  C  xили  D 
              г := (3×i + 5)  мод  16 
          иначе, если  48 ≤ i ≤ 63  , то 
              F := C  xor  (B  или  (  не  D)) 
              г := (7×i)  мод  16 
    //  Будьте осторожны с приведенными ниже определениями a,b,c,d 
          F := F + A + K[i] + M[g]  //  M[g] должен быть 32-битным блоком 
          А := Д 
          Д := С 
          С := Б 
          B := B +  поворот влево  (F, s[i]) 
      end for 
 //  Добавьте хэш этого фрагмента к текущему результату: 
      а0 := а0 + А 
      b0 := b0 + B 
      с0 := с0 + С 
      d0 := d0 + D 
 end for 

 var   char  ignore[16] := a0  add  b0  add  c0  add  d0  //  (вывод в формате с прямым порядком байтов) 

Вместо показанной формулировки из исходного RFC 1321 для повышения эффективности можно использовать следующую формулировку (полезно, если используется язык ассемблера — в противном случае компилятор обычно оптимизирует приведенный выше код. Поскольку в этих формулировках каждое вычисление зависит от другого, это часто медленнее, чем описанный выше метод, в котором nand/and можно распараллелить):

( 0 ≤ i ≤ 15): F := D  xor  (B  и  (C  xor  D)) 
  (16 ≤ i ≤ 31): F := C  xor  (D  и  (B  xor  C)) 
 

Хэши MD5 [ править ]

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

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

Даже небольшое изменение в сообщении (с подавляющей вероятностью) приведет к совершенно другому хешу из-за лавинного эффекта . Например, добавив точку в конце предложения:

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

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

MD5("") = 
 d41d8cd98f00b204e9800998ecf8427e
 

Алгоритм MD5 указан для сообщений, состоящих из любого количества битов; он не ограничен кратными восьми битам ( октетам , байтам ). Некоторые реализации MD5, такие как md5sum , могут быть ограничены октетами или не поддерживать потоковую передачу сообщений изначально неопределенной длины.

Реализации [ править ]

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

См. также [ править ]

Ссылки [ править ]

  1. ^ Ривест, Р. (апрель 1992 г.). «Шаг 4. Обработка сообщения блоками по 16 слов» . Алгоритм дайджеста сообщений MD5 . IETF . п. 5. сек. 3.4. дои : 10.17487/RFC1321 . РФК 1321 . Проверено 10 октября 2018 г.
  2. ^ Се Тао; Фаньбао Лю; Дэнго Фэн (2013). «Быстрая атака столкновений на MD5» (PDF) . Архив электронной печати по криптологии . Архивировано (PDF) оригинала 2 февраля 2021 года . Проверено 3 декабря 2013 г.
  3. ^ Чампа, Марк (2009). Подробно о CompTIA Security+ 2008 . Австралия; США: Курс технологии/Cengage Learning. п. 290 . ISBN  978-1-59863-913-1 .
  4. ^ Клеппманн, Мартин (2 апреля 2017 г.). Проектирование приложений с интенсивным использованием данных: большие идеи, лежащие в основе надежных, масштабируемых и ремонтопригодных систем (1-е изд.). О'Рейли Медиа. п. 203. ИСБН  978-1449373320 .
  5. ^ Перейти обратно: а б Дж. Блэк, М. Кокран, Т. Хайленд: Исследование атак MD5: идеи и улучшения. Архивировано 1 января 2015 г. в Wayback Machine , 3 марта 2006 г. Проверено 27 июля 2008 г.
  6. ^ Хоукс, Филип; Пэддон, Майкл; Роуз, Грегори Г. (13 октября 2004 г.). «Размышления о столкновении Ванга и др. MD5» . Архив электронной печати по криптологии . Архивировано из оригинала 5 ноября 2018 года . Проверено 10 октября 2018 г.
  7. ^ Бишоп Фокс (26 сентября 2013 г.). «Быстрые генераторы столкновений MD5 и MD4» . БишопФокс . Архивировано из оригинала 26 апреля 2017 года . Проверено 10 февраля 2014 г.
  8. ^ Ленстра, Арьен ; Ван, Сяоюнь ; Вегер, Бенне де (1 марта 2005 г.). «Конфликт сертификатов X.509» . Архив электронной печати по криптологии . Архивировано из оригинала 23 мая 2017 года . Проверено 10 октября 2018 г.
  9. ^ Клима, Властимил (5 марта 2005 г.). «Нахождение коллизий MD5 — игрушка для ноутбука» . Архив электронной печати по криптологии . Архивировано из оригинала 17 мая 2017 года . Проверено 10 октября 2018 г.
  10. ^ Властимил Клима: Туннели в хеш-функциях: коллизии MD5 за минуту. Архивировано 6 августа 2011 г. в Wayback Machine , Архивный отчет Cryptology ePrint 2006/105, 18 марта 2006 г., исправлено 17 апреля 2006 г. Проверено 27 июля 2008 г.
  11. ^ «Код взломан! Тайна логотипа киберкомандования раскрыта» . ЮСКИБЕРКОМ . Проводные новости . 8 июля 2010 года. Архивировано из оригинала 17 февраля 2014 года . Проверено 29 июля 2011 г.
  12. ^ Тао Се; Дэнго Фэн (2010). «Создание коллизий MD5, используя только один блок сообщения» (PDF) . Архивировано из оригинала 14 мая 2017 года . Проверено 28 июля 2011 г.
  13. ^ «Марк Стивенс – Исследование – Атака с коллизиями одного блока на MD5» . Марк-Стивенс.nl. 2012. Архивировано из оригинала 15 мая 2017 года . Проверено 10 апреля 2014 г.
  14. ^ Тернер, Шон (март 2011 г.). «RFC 6151 — Обновленные соображения безопасности для дайджеста сообщений MD5 и алгоритмов HMAC-MD5» . Рабочая группа по интернет-инжинирингу . дои : 10.17487/RFC6151 . Архивировано из оригинала 15 июня 2017 года . Проверено 11 ноября 2013 г.
  15. ^ Ривест, Рональд Л. (апрель 1992 г.). «RFC 1321 – Алгоритм дайджеста сообщений MD5» . Рабочая группа по интернет-инжинирингу . дои : 10.17487/RFC1321 . Архивировано из оригинала 9 апреля 2021 года . Проверено 5 октября 2013 г.
  16. ^ Кравчик, Хьюго; Белларе, Михир; Канетти, Ран (февраль 1997 г.). «RFC 2104 – HMAC: хеширование ключей для аутентификации сообщений» . Рабочая группа по интернет-инжинирингу . дои : 10.17487/RFC2104 . Архивировано из оригинала 15 апреля 2021 года . Проверено 5 октября 2013 г.
  17. ^ Чад Р., Догерти (31 декабря 2008 г.). «Примечание об уязвимости VU#836068 MD5, уязвимой для атак на основе коллизий» . База данных заметок об уязвимостях . CERT Институт программной инженерии Университета Карнеги-Меллон. Архивировано из оригинала 26 июля 2011 года . Проверено 3 февраля 2017 г.
  18. ^ Перейти обратно: а б Чимпану, Каталин. «Четверть основных CMS используют устаревший MD5 в качестве схемы хеширования паролей по умолчанию» . ЗДНет . Архивировано из оригинала 24 января 2021 года . Проверено 17 июня 2019 г.
  19. ^ MMJ Стивенс (июнь 2007 г.). О столкновениях для MD5 (PDF) (магистерская диссертация). Архивировано (PDF) из оригинала 17 мая 2017 года . Проверено 31 марта 2010 г.
  20. ^ Марк Стивенс; Арьен Ленстра; Мусорный контейнер от Weger (16 июня 2009 г.). «Конфликты выбранного префикса для MD5 и приложений» (PDF) . Федеральный технологический институт в Лозанне . Архивировано из оригинала (PDF) 9 ноября 2011 года . Проверено 31 марта 2010 г.
  21. ^ «Новый взломщик GPU MD5 взламывает более 200 миллионов хэшей в секунду» . Архивировано из оригинала 11 мая 2011 года . Проверено 25 марта 2011 г.
  22. ^ Магнус Даум, Стефан Лакс . «Хеш-коллизии (атака отравленных сообщений)» . Eurocrypt Итоговая сессия 2005 . Архивировано из оригинала 27 марта 2010 года.
  23. ^ Макс Гебхардт; Георг Иллиес; Вернер Шиндлер (31 октября 2005 г.). «Заметка о практической ценности одиночных коллизий хэшей для специальных форматов файлов» (PDF) . Национальный институт стандартов и технологий . Архивировано из оригинала (PDF) 17 сентября 2008 года.
  24. ^ Перейти обратно: а б с д Это Сотиров, Александр; Марк Стивенс; Джейкоб Аппелбаум; Арьен Ленстра; Дэвид Молнар; Даг Арне Освик; Бенне де Вегер (30 декабря 2008 г.). «MD5 сегодня считается вредным» . Архивировано из оригинала 25 марта 2017 года . Проверено 30 декабря 2008 г. Объявлено. Архивировано 16 ноября 2018 года в Wayback Machine на 25-м Конгрессе Chaos Communication .
  25. ^ «Ядовитый MD5 — Волки среди овец | Технический блог Silent Signal» . 10 июня 2015 г. Архивировано из оригинала 10 июня 2015 г. Проверено 10 июня 2015 г.
  26. ^ Ганс Доббертин (лето 1996 г.). «Состояние MD5 после недавней атаки» . Криптобайты . Проверено 22 октября 2013 г.
  27. ^ Сяоюнь Ван; Хунбо Ю (2005). «Как взломать MD5 и другие хэш-функции» (PDF) . Достижения в криптологии – конспекты лекций по информатике . стр. 19–35. Архивировано из оригинала (PDF) 21 мая 2009 года . Проверено 21 декабря 2009 г.
  28. ^ Сяоюнь Ван, Дэнго, к.,м.,м, HAVAL-128 и RIPEMD , Отчет об архиве криптологии ePrint 2004/199, 16 августа 2004 г., исправлено 17 августа 2004 г. Проверено 27 июля 2008 г.
  29. ^ Марк Стивенс, Арьен Ленстра, Бенне де Вегер: Уязвимость целостности программного обеспечения и приложений для подписи кода из-за конфликтов выбранных префиксов для MD5. Архивировано 13 декабря 2007 г. на Wayback Machine , 30 ноября 2007 г. Проверено 27 июля 2008 г.
  30. ^ Стрэй, Джонатан (30 декабря 2008 г.). «Недостаток веб-браузера может поставить под угрозу безопасность электронной коммерции» . CNET.com . Архивировано из оригинала 28 августа 2013 года . Проверено 24 февраля 2009 г.
  31. ^ «Примечание об уязвимости CERT VU#836068» . Kb.cert.org. Архивировано из оригинала 21 марта 2017 года . Проверено 9 августа 2010 г.
  32. ^ «NIST.gov — Отдел компьютерной безопасности — Ресурсный центр компьютерной безопасности» . Csrc.nist.gov. Архивировано из оригинала 9 июня 2011 года . Проверено 9 августа 2010 г.
  33. ^ Перейти обратно: а б «Объяснение атаки на коллизию вредоносного ПО Flame» . Архивировано из оригинала 8 июня 2012 года . Проверено 7 июня 2012 г.
  34. ^ Доббертин, Ганс (лето 1996 г.). «Состояние MD5 после недавней атаки» (PDF) . RSA Laboratories CryptoBytes . 2 (2): 1 . Проверено 10 августа 2010 г. Представленная атака пока не угрожает практическому применению MD5, но достаточно близка к этому. .... [ sic ] в будущем MD5 больше не должен быть реализован... [ sic ] там, где требуется устойчивая к коллизиям хеш-функция. [ постоянная мертвая ссылка ]
  35. ^ «Шнайер о безопасности: больше коллизий MD5» . Шнайер.com. Архивировано из оригинала 11 апреля 2021 года . Проверено 9 августа 2010 г.
  36. ^ «Конфликт сертификатов X.509» . Win.tue.nl. Архивировано из оригинала 15 мая 2017 года . Проверено 9 августа 2010 г.
  37. ^ «[Python-Dev] hashlib — быстрее md5/sha, добавляет поддержку sha256/512» . Mail.python.org. 16 декабря 2005 г. Архивировано из оригинала 6 мая 2021 г. Проверено 9 августа 2010 г.
  38. ^ «Исследователи используют кластер PlayStation для подделки ключа веб-скелета» . Проводной . 31 декабря 2008 г. Архивировано из оригинала 21 апреля 2009 г. Проверено 31 декабря 2008 г.
  39. ^ Каллан, Тим (31 декабря 2008 г.). «Атака MD5 сегодня утром решена» . Веризайн. Архивировано из оригинала 16 января 2009 года . Проверено 31 декабря 2008 г.
  40. ^ Брюс Шнайер (31 декабря 2008 г.). «Подделка SSL-сертификатов» . Шнайер по безопасности. Архивировано из оригинала 9 ноября 2020 года . Проверено 10 апреля 2014 г.
  41. ^ Эрик Рескорла (17 августа 2004 г.). «Настоящее столкновение MD5» . Образованные догадки (блог) . Архивировано из оригинала 15 августа 2014 года . Проверено 13 апреля 2015 г.
  42. ^ Антон Алексеевич Кузнецов. «Алгоритм одноблочной коллизионной атаки MD5 с использованием высокопроизводительного вычислительного кластера» (PDF) . МАКР. Архивировано (PDF) из оригинала 4 июня 2016 года . Проверено 3 ноября 2014 г.
  43. ^ Ю Сасаки; Кадзумаро Аоки (16 апреля 2009 г.). «Поиск прообразов в полном MD5 быстрее, чем полный поиск». Достижения в криптологии – EUROCRYPT 2009 . Конспекты лекций по информатике. Том. 5479. Шпрингер Берлин Гейдельберг . стр. 134–152. дои : 10.1007/978-3-642-01001-9_8 . ISBN  978-3-642-01000-2 .
  44. ^ Мин Мао, Шаохуэй Чен и Цзинь Сюй (2009). «Построение исходной структуры для атаки прообразом MD5». 2009 Международная конференция по вычислительному интеллекту и безопасности . Том. 1. IEEE Компьютерное общество . стр. 442–445. дои : 10.1109/CIS.2009.214 . ISBN  978-0-7695-3931-7 . S2CID   16512325 .
  45. ^ «Нахождение значений контрольной суммы в Windows 10» . Сообщество Майкрософт. Архивировано из оригинала 11 января 2024 года . Проверено 23 ноября 2023 г.
  46. ^ «сертутил» . сертификат ​ Microsoft Learn. Архивировано из оригинала 23 ноября 2023 года . Проверено 23 ноября 2023 г.
  47. ^ «Наличие и описание утилиты File Checksum Integrity Verifier» . Поддержка Майкрософт. 17 июня 2013 года. Архивировано из оригинала 15 февраля 2015 года . Проверено 10 апреля 2014 г.
  48. ^ «Как вычислить криптографические хеш-значения MD5 или SHA-1 для файла» . Поддержка Майкрософт. 23 января 2007 г. Архивировано из оригинала 9 марта 2015 г. . Проверено 10 апреля 2014 г.
  49. ^ «Справочник FreeBSD, Безопасность – DES, Blowfish, MD5 и Crypt» . Архивировано из оригинала 18 февраля 2017 года . Проверено 19 октября 2014 г.
  50. ^ «Сводка – раздел 4 страниц руководства: Форматы файлов» . Документы.oracle.com. 1 января 2013 года. Архивировано из оригинала 4 марта 2016 года . Проверено 10 апреля 2014 г.
  51. ^ NIST SP 800-132. Архивировано 1 декабря 2016 г. в Wayback Machine, раздел 5.1.
  52. ^ «Справочный источник» . Архивировано из оригинала 21 июня 2021 года . Проверено 23 декабря 2020 г.
  53. ^ RFC 1321, раздел 2, «Терминология и обозначения», страница 2.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 0FE84D2289C3AD75DFE317C6B4D49D93__1717754820
URL1:https://en.wikipedia.org/wiki/MD5
Заголовок, (Title) документа по адресу, URL1:
MD5 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)