Ответ 1
Обычный ответ таков: какова вероятность того, что астероид изгоев врезается на Землю в течение следующей секунды, уничтожая цивилизацию, как мы ее знаем, и убивая несколько миллиардов человек? Можно утверждать, что любое несчастливое событие с вероятностью, меньшей, чем это, на самом деле не очень важно.
Если у нас есть "идеальная" хеш-функция с размером вывода n, и у нас есть p-сообщения для хэша (длина отдельного сообщения не важна), тогда вероятность столкновения примерно равна p 2/2 n + 1 (это приближение, справедливое для "малого" p, т.е. существенно меньше 2 n/2). Например, с SHA-256 (n = 256) и одним миллиардом сообщений (p = 10 9), то вероятность составляет около 4.3 * 10 -60.
Космический рок массового убийцы происходит примерно раз в 30 миллионов лет в среднем. Это приводит к вероятности того, что такое событие произойдет в следующую секунду примерно до 10 -15. Это 45 на порядок больше вероятнее столкновения SHA-256. Короче говоря, если вы обнаружите, что столкновения SHA-256 страшны, ваши приоритеты неправильны.
В настройке безопасности, когда злоумышленник выбирает сообщения, которые будут хешированы, злоумышленник может использовать значительно более миллиарда сообщений; однако вы обнаружите, что вероятность успеха злоумышленника будет по-прежнему незначительно мала. То, что весь смысл использования хэш-функции с 256-битным выходом: так что рисками столкновения можно пренебречь.
Конечно, все вышесказанное предполагает, что SHA-256 является "идеальной" хэш-функцией, что далеко не доказано. Тем не менее, SHA-256 кажется довольно надежным.