Come può il contenuto di un file fare riferimento al proprio MD5?

26

Quindi ho appena visto questa foto su Imgur: link

La cosa interessante è che l'immagine si riferisce a una vecchia canzone dei Daft Punk chiamata "Face 2 Face". L'MD5 dell'immagine è 6b0cc07a5c4d3d8fface2face79d8205 che, sorprendentemente, contiene la frase face2face in essa.

Come si fa a generare questo tipo di hash? Ho sempre pensato che si ottiene un hash completamente diverso quando anche un byte del messaggio viene modificato.

Che tipo di potenza di calcolo è necessaria per eseguire questo trucco? Naturalmente, presumo che questa non sia una semplice coincidenza.

Inoltre mi piacerebbe sapere se ci sono altri esempi di tali hash e quali sono alcuni strumenti disponibili per Linux o Windows?

    
posta John Blatz 27.09.2015 - 18:50
fonte

2 risposte

28

'face2face' è solo 9 caratteri, cioè 36 bit poiché utilizziamo la codifica esadecimale. È sufficiente generare molte immagini con alcune variazioni interne (variazioni sottili che non influiscono sull'output grafico) e cancellarle tutte fino a ottenere la stringa di destinazione. Poiché stiamo cercando un pattern a 36 bit e accettiamo quel pattern ovunque appaia nell'output di 32 caratteri (24 posizioni possibili), il numero medio di immagini da produrre e l'hash saranno circa 2 36 / 24, cioè circa 2,8 miliardi. Poiché un PC desktop di base può calcolare diversi (molti) milioni di hash MD5 al secondo, questo dovrebbe essere fatto in meno di un'ora con un codice decentemente ottimizzato.

Questo non ha nulla a che fare con le note debolezze di MD5 per quanto riguarda le collisioni. Lo stesso potrebbe essere fatto con SHA-1 o SHA-256.

Questo è già stato discusso in questa domanda .

    
risposta data 27.09.2015 - 20:46
fonte
-2

Tutto è molto semplice. Il nome è stato coniato per la canzone, già dopo l'hash computato. Probabilmente non potevano pensare ad un nome per una canzone e qualcuno ha misurato casualmente l'hash e ha notato che c'è una sequenza insolita, a causa di ciò, il nome è stato inventato! =)

    
risposta data 23.06.2016 - 21:59
fonte

Leggi altre domande sui tag