I file diversi hanno sempre codici hash MD5 o SHA1 diversi?

2

La mia domanda è se i file diversi portano sempre a diversi codici hash MD5 o SHA1?

    
posta John 03.10.2018 - 00:30
fonte

4 risposte

9

@ 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.

    
risposta data 03.10.2018 - 01:07
fonte
6

No, non lo fanno. Se ci pensate, l'output di sha1 ha 160 bit. Ci sono più di 2 ^ 160 possibili file, quindi ci devono essere più (infinitamente) molti file potenziali con gli stessi hash. Il problema è trovarli.

Qui sono due file che hanno lo stesso sha1.

    
risposta data 03.10.2018 - 00:31
fonte
1

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:

  • Un hash ha una lunghezza di bit specifica, ad esempio a . Per SHA256, a = 256 .
  • Di conseguenza, possono esistere valori hash 2 ^ a univoci. Per SHA256, questo è 2 ^ 256 (2 elevato a 256) valori hash univoci.
  • Se la dimensione del file è b bit, allora possiamo avere 2 ^ b file unici.
  • La dimensione di un file è molto maggiore di a (altrimenti non avremmo bisogno di hash). Questo può accadere solo se file diversi sono associati allo stesso hash.

Tuttavia, è molto difficile per qualcuno produrre un secondo file con lo stesso hash. Questo è dovuto alle proprietà dell'algoritmo di hashing.

    
risposta data 23.10.2018 - 12:40
fonte
0

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 .

    
risposta data 23.10.2018 - 13:21
fonte

Leggi altre domande sui tag