MD5: различия между версиями
Нет описания правки
Lexusuns (обсуждение | вклад) |
|||
=== Шаг 1. Выравнивание потока ===
Входные данные выравниваются так, чтобы их новый размер L'
=== Шаг 2. Добавление длины сообщения ===
Метод позволяет для заданного инициализирующего вектора найти две пары <math>M,M'</math> и <math>N,N'</math>, такие что <math>f(f(s,M),M')=f(f(s,N),N')</math>. Важно отметить, что этот метод работает для любого инициализирующего вектора, а не только для вектора используемого по стандарту.
Эта атака является разновидностью [[Дифференциальный криптоанализ|''дифференциальной'']] атаки, которая, в отличие от других атак этого типа, использует целочисленное вычитание а не [[Сложение по модулю 2|XOR]] в качестве меры разности. При поиске коллизий используется метод модификации сообщений: сначала выбирается произвольное сообщение ''M''<sub>''0''</sub>, далее оно модифицируется по некоторым правилам, сформулированным в статье, после чего вычисляется дифференциал хеш-функции, причём <math>M'_0=M_0+dM_0</math> с вероятностью 2<sup>
Применение этой атаки к [[MD4]] позволяет найти коллизию меньше чем за секунду. Она также применима к другим хеш-функциям, таким как [[RIPEMD-160|RIPEMD]] и [[HAVAL]].
* [[Perl]] : [http://perldoc.perl.org/Digest/MD5.html Digest::MD5]
* [[PHP]]: [http://ru2.php.net/manual/en/function.md5.php md5() function]
{{Хеш-алгоритмы}}
|