Die übliche Antwort lautet wie folgt: Wie hoch ist die Wahrscheinlichkeit, dass ein Schurken-Asteroid innerhalb der nächsten Sekunde auf der Erde abstürzt, die Zivilisation, wie wir sie kennen, auslöscht und einige Milliarden Menschen tötet? Es kann argumentiert werden, dass jedes unglückliche Ereignis mit einer geringeren Wahrscheinlichkeit nicht wirklich sehr wichtig ist.
Wenn wir eine „perfekte“ Hash - Funktion mit einer Ausgangsgröße haben n , und wir haben p - Nachrichten an hash (individuelle Nachrichtenlänge nicht wichtig ist), dann wird die Kollisionswahrscheinlichkeit , ist etwa p 2 /2 n + 1 (dies ist eine Annäherung , die ist gültig für "kleines" p , dh wesentlich kleiner als 2 n / 2 ). Beispielsweise beträgt bei SHA-256 ( n = 256 ) und einer Milliarde Nachrichten ( p = 10 9 ) die Wahrscheinlichkeit etwa 4,3 * 10 -60 .
Ein Massenmörder-Weltraumfelsen kommt durchschnittlich alle 30 Millionen Jahre vor. Dies führt zu einer Wahrscheinlichkeit , ein solches Ereignis in der nächsten Sekunde auftreten , zu etwa 10 -15 . Das sind 45 Größenordnungen wahrscheinlicher als die SHA-256-Kollision. Kurz gesagt, wenn Sie SHA-256-Kollisionen als beängstigend empfinden, sind Ihre Prioritäten falsch.
In einem Sicherheits-Setup, in dem ein Angreifer die Nachrichten auswählen kann, die gehasht werden sollen, kann der Angreifer wesentlich mehr als eine Milliarde Nachrichten verwenden. Sie werden jedoch feststellen, dass die Erfolgswahrscheinlichkeit des Angreifers immer noch gering ist. Das ist der springende Punkt bei der Verwendung einer Hash-Funktion mit einer 256-Bit-Ausgabe: Damit Kollisionsrisiken vernachlässigt werden können.
Bei alledem wird natürlich davon ausgegangen, dass SHA-256 eine "perfekte" Hash-Funktion ist, die bei weitem nicht bewiesen ist. Trotzdem scheint SHA-256 ziemlich robust zu sein.