Jump to content

MD5

(Перенаправлено с MD5 Hash )

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 2fcab58712467eab 4004583eb8fb7f89
55ad340609f4b302 83e488832571415a 085125e8f7cdc99f d91dbdf280373c5b
d8823e3156348f5b ae6dacd436c919c6 dd53e2b487da03fd 02396306d248cda0
e99f33420f577ee8 ce54b67080a80d1e c69821bcb6a88393 96f9652b6ff72a70
d131dd02c5e6eec4 693d9a0698aff95c 2fcab50712467eab 4004583eb8fb7f89
55ad340609f4b302 83e4888325f1415a 085125e8f7cdc99f d91dbd7280373c5b
d8823e3156348f5b ae6dacd436c919c6 dd53e23487da03fd 02396306d248cda0
e99f33420f577ee8 ce54b67080280d1e c69821bcb6a88393 96f965ab6ff72a70

Оба создают хэш 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 <имя файла> 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 K битный блок ввода сообщения, а обозначает 32 - i обозначает 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] Все значения имеют прямой порядок байтов .

// : All variables are unsigned 32 bit and wrap modulo 2^32 when calculating
var int s[64], K[64]
var int i

// s specifies the per-round shift amounts
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 }

// Use binary integer part of the sines of integers (Radians) as constants:
for i from 0 to 63 do
    K[i] := floor(232 × abs(sin(i + 1)))
end for
// (Or just use the following precomputed table):
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 }

// Initialize variables:
var int a0 := 0x67452301   // A
var int b0 := 0xefcdab89   // B
var int c0 := 0x98badcfe   // C
var int d0 := 0x10325476   // D

// Pre-processing: adding a single 1 bit
append "1" bit to message<    
 // Notice: the input bytes are considered as bit strings,
 //  where the first bit is the most significant bit of the byte.[53]

// Pre-processing: padding with zeros
append "0" bit until message length in bits ≡ 448 (mod 512)

// Notice: the two padding steps above are implemented in a simpler way
  //  in implementations that only work with complete bytes: append 0x80
  //  and pad with 0x00 bytes so that the message length in bytes ≡ 56 (mod 64).

append original length in bits mod 264 to message

// Process the message in successive 512-bit chunks:
for each 512-bit chunk of padded message do
    break chunk into sixteen 32-bit words M[j], 0 ≤ j ≤ 15
    // Initialize hash value for this chunk:
    var int A := a0
    var int B := b0
    var int C := c0
    var int D := d0
    // Main loop:
    for i from 0 to 63 do
        var int F, g
        if 0 ≤ i ≤ 15 then
            F := (B and C) or ((not B) and D)
            g := i
        else if 16 ≤ i ≤ 31 then
            F := (D and B) or ((not D) and C)
            g := (5×i + 1) mod 16
        else if 32 ≤ i ≤ 47 then
            F := B xor C xor D
            g := (3×i + 5) mod 16
        else if 48 ≤ i ≤ 63 then
            F := C xor (B or (not D))
            g := (7×i) mod 16
        // Be wary of the below definitions of a,b,c,d
        F := F + A + K[i] + M[g]  // M[g] must be a 32-bit block
        A := D
        D := C
        C := B
        B := B + leftrotate(F, s[i])
    end for
    // Add this chunk's hash to result so far:
    a0 := a0 + A
    b0 := b0 + B
    c0 := c0 + C
    d0 := d0 + D
end for

var char digest[16] := a0 append b0 append c0 append d0 // (Output is in little-endian)

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

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

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

MD5("The quick brown fox jumps over the lazy dog") =
9e107d9d372bb6826bd81d3542a419d6

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

MD5("The quick brown fox jumps over the lazy dog.") = 
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. ^ Марк Стивенс; Арьен Ленстра; Бенне де Вегер (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
Номер скриншота №: 890970cce2cae9429fd0c4e968782b84__1722660840
URL1:https://arc.ask3.ru/arc/aa/89/84/890970cce2cae9429fd0c4e968782b84.html
Заголовок, (Title) документа по адресу, URL1:
MD5 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)