2013-12-10 13 views
5

Se si esegue una sequenza a 32 bit e si esegue un CRC32 su di esso, si ottiene un'altra sequenza a 32 bit come risultato; se fai CRC32 di questo, ne ottieni un altro, e così via. È facile dimostrare che se continui a farlo, finisci con un ciclo singolo di sequenze 2^32 bit, prima di ricominciare.Il round trip SHA256

Domanda semplice: qualcuno sa se lo stesso vale (o meno) per SHA256, a partire da una sequenza a 256 bit? Un ciclo di processo simile passerebbe attraverso un ciclo di tutte le 2^256 possibili sequenze a 256 bit prima di ricominciare? O ci sono (o probabilmente) cicli più brevi all'interno di questo hash?

Brian

risposta

2

SHA256 non è stato progettato per soddisfare la proprietà di 2^256 loop. Tuttavia, per quanto ne so, nessuno ha dimostrato che non esiste un tale ciclo. Inoltre, non si conoscono loop più brevi perché se qualcuno ne trovasse qualcuno, allora troverebbe anche una collisione e dalla natura della funzione di hash crittografica, è difficile.

Quindi, poiché nessuno lo ha provato, sì, esiste una probabilità che il ciclo 2^256 esista. Tuttavia, è estremamente improbabile che io sia disposto a scommettere il mio testicolo sinistro per questo. :-)

Consentitemi anche di notare che, IMO per progettare una funzione di hash crittografica con loop 2^256 sarebbe estremamente difficile anche per i migliori esperti di crittografia.