2013-02-20 6 views

risposta

20

Questa domanda è simile al cosiddetto "birthday paradox".

In teoria della probabilità, il problema del compleanno o compleanno paradosso riguarda la probabilità che, in una serie di n persone scelte a caso, alcuni coppia di loro avrà lo stesso compleanno. Secondo il principio del pigeonhole, la probabilità raggiunge il 100% quando il numero di persone raggiunge 367 (poiché ci sono 366 possibili compleanni, incluso il 29 febbraio). Tuttavia, la probabilità del 99% viene raggiunta con solo 57 persone e il 50% di probabilità con 23 persone. Queste conclusioni si basano sul presupposto che ogni giorno dell'anno (tranne il 29 febbraio) sia ugualmente probabile per un compleanno.

La matematica alla base di questo problema ha portato a un noto attacco crittografico chiamato birthday attack, che utilizza questo modello probabilistico per ridurre la complessità del cracking di una funzione hash.

Secondo l'articolo di Wikipedia, la probabilità di una collisione quando si sceglie n = 2 numeri casuali da uno spazio con d = 2 numeri è di circa:

Generalized birthday problem math

Se si work this calculation out la possibilità è di circa 2,7 × 10 -20. Questa è una probabilità molto piccola, ma si noti che è 9 ordini di grandezza superiore al calcolo proposto.

+7

E ciò presuppone che l'algeur md5 abbia una diffusione perfettamente uniforme di hash. Dal momento che non lo fa, le tue possibilità di collisione sono ancora più grandi. – neelsg

Problemi correlati