La mia domanda è se i file diversi portano sempre a diversi codici hash MD5 o SHA1?
@ La risposta di PeterHarmann è completamente corretta, ma per aggiungerla: algoritmi di hash sicuro (che MD5 doveva essere, e che letteralmente significa "SHA") sono supposti per essere altamente resistente a collisioni dove due input hanno lo stesso output. Mentre tali collisioni esisteranno sempre per qualsiasi algoritmo che può richiedere un input più lungo (in termini di bit arbitrari di dati) rispetto al suo output, si suppone che trovarli sia quasi impossibile. Idealmente, farlo richiede un attacco di forza bruta su uno spazio di ricerca infinitamente grande, anche quando si utilizza un attacco di compleanno . In altre parole, mentre è vero che file differenti non possono hanno sempre diversi hash diger, in pratica dovrebbe essere possibile agire come se lo facessero.
SHA1 è deprecato perché è stato dimostrato che è vulnerabile a un attacco di collisione, come mostra il link di Peter. MD5 è anche peggio, però; è stato dimostrato che è vulnerabile ad un attacco di collisione prefisso scelto , in cui due input distinti possono avere suffissi aggiunti in modo che abbiano lo stesso hash digest. Questo è stato dimostrato come un modo per rompere le protezioni offerte dalle firme crittografiche (uno degli usi chiave degli hash sicuri) creando collisioni con certificati X.509, consentendo a un utente malintenzionato di generare un certificato fraudolento (con la propria chiave pubblica) che ha il stesso hash e quindi la stessa firma di un certificato valido firmato da un'autorità di certificazione attendibile. Il malware Fiamma ha utilizzato un certificato fraudolento presumibilmente firmato da Microsoft, cosa possibile perché Microsoft aveva una CA che era ancora emettere certificati firmati MD5.
In teoria non lo fanno, e questo è noto come il " principio Pigeonhole ". Tuttavia, la probabilità di avere 2 hash identici è molto piccola. Il principio di Pigeonhole per gli hash in breve:
Tuttavia, è molto difficile per qualcuno produrre un secondo file con lo stesso hash. Questo è dovuto alle proprietà dell'algoritmo di hashing.
Non sempre. Oltre alle precedenti risposte ben spiegate, Google ha un annuncio per la collisione per l'algoritmo SHA-1: (Google) Annuncio della prima collisione SHA1 .
Inoltre, la collisione MD5 è stata annunciata nel 2004 a partire da Cryptosense .
Leggi altre domande sui tag hash