Коллизия - это ситуация, когда для двух разных сообщений, m1 и m2, ha sh совпадает, т.е. ha sh (m1) = ha sh (m2).
Чем длиннее может быть вывод функции ha sh (m), тем меньше вероятность столкновения. Например, давайте подумаем о ситуации, когда функция ha sh (m) должна отображать сообщение m только в один бит, т.е. она может отображаться только в 0 или 1. Тогда риск столкновения будет очень высоким. :)
Тогда возникает вопрос качества функции ha sh. Он должен отображать сообщение в значение с одинаковой вероятностью для всех сообщений. Для MD5 это не так, некоторые значения используются чаще. Это увеличивает риск столкновения. У MD5 есть серьезный fl aws, такой как атака на день рождения.
Мы знаем (http://www.faqs.org/rfcs/rfc4270.html), что успешные атаки против MD5 могут быть выполнены на домашнем P C. Лучше перейти на SHA-1. Microsoft рекомендует SHA256 или SHA512.