Esistono collisioni hash MD5 note di messaggi di lunghezza diversa?

3

Tutti gli esempi di collisioni di hash MD5 che ho incontrato comprendono due diversi messaggi (input) di la stessa lunghezza . Il primo e il secondo messaggio hanno valori diversi per un numero di bit e gli MD5 risultanti sono uguali.

La teoria di trovare una collisione di hash MD5 (sfruttando la debolezza dell'algoritmo) prescrive che le lunghezze dei messaggi siano le stesse? In altre parole, la teoria sarebbe inutilizzabile per trovare una collisione di due messaggi di lunghezza diversa? È mai stata trovata una collisione di questo tipo?

    
posta mgr326639 26.01.2016 - 22:53
fonte

2 risposte

4

Secondo questo articolo , chosen collisione prefisso l'algoritmo è stato utilizzato per

produce two executable files with the same MD5 hash, but different behaviors. Unlike the old method, where the two files could only differ in a few carefully chosen bits, the chosen prefix method allows two completely arbitrary files to have the same MD5 hash, by appending a few thousand bytes at the end of each file.

Anche se i file di esempio possono avere la stessa lunghezza, gli reclami degli autori ;

Our chosen-prefix collisions have only the requirement that after the collision the files should be exactly equal. Before the collision the two files, for which a collision is to be found, can be anything: our chosen-prefix collision finding method will always produce a collision that can be incorporated into the two files, irrespective of what data is present before the collision.

Quindi sì, ci sono difetti in MD5 che possono trovare collisioni di diverse lunghezze.

    
risposta data 27.01.2016 - 00:48
fonte
1

Dimostrare l'esistenza di due pianificazioni di lunghezza diversa che entrano in collisione con MD5 richiede solo che il numero di ingressi (e il numero di lunghezze diverse degli ingressi) sia molto maggiore rispetto al numero di uscite possibili.

Dato che MD5 può ricevere input di qualsiasi lunghezza e può emettere solo un hash di dimensioni di 128 bit, ciò significa che per tutte le stringhe di byte di qualsiasi lunghezza devono mappare agli stessi 2 ^ 128 possibili hash MD5.

Per ogni testo in chiaro di input di lunghezza 128, c'è garantito come collisione con un testo in chiaro di dimensioni inferiori a 128, perché se MD5 fosse un algoritmo di hashing perfetto avrebbe hash ciascuno di quei testi in chiaro a 128 bit di lunghezza (suggerimento: ce ne sono 2 ^ 128, lo stesso numero di output possibili) al proprio hash unico, ma lo stesso set di hash di output deve essere stato utilizzato anche per hash di dimensione 127 bit o meno, quindi ci deve essere una collisione da qualche parte! Data questa informazione possiamo provare matematicamente l'esistenza di due testi in chiaro di lunghezze diverse che hanno lo stesso hash.

    
risposta data 26.01.2016 - 23:59
fonte

Leggi altre domande sui tag