Звичайна відповідь випливає так: яка ймовірність того, що шахрайський астероїд зазнає аварії на Землі протягом наступної секунди, знищивши цивілізацію, як ми це знаємо, і вбивши кілька мільярдів людей? Можна стверджувати, що будь-яка нещасна подія з ймовірністю нижчою, ніж насправді, не є дуже важливою.
Якщо у нас є «ідеальна» хеш - функція з вихідними розміром п , і ми маємо р повідомлення в хеш (індивідуальна довжина повідомлення не має значення), то ймовірність зіткнення становить близько р 2 /2 п + 1 (це наближення , яке справедливо для "малого" р , тобто істотно менше 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 здається досить надійним.