Round di MD5 e SHA512 Hashing Algorithms

4

Qual è il numero esatto di round utilizzati dagli algoritmi di hashing MD5 e SHA512?

Secondo varie fonti, l'algoritmo di hash SHA512 impiega un totale di 80 round ( link ).

D'altra parte, sono confuso quando si tratta dell'algoritmo di hashing MD5. Secondo Wikipedia, MD5 impiega 64 round ( link ). Tuttavia, un altro sito web afferma che MD5 impiega 4 round ( link ). Chi è il corretto dei due per favore?

Non riesco a trovare una fonte affidabile di informazioni sul numero di round. Inoltre, quali sono esattamente questi round? In termini semplici, cosa fa l'algoritmo di hashing durante questi round? Grazie mille:))

    
posta Matthew 23.07.2013 - 18:39
fonte

2 risposte

10

Non esiste una nozione oggettiva, sistematica e coerente di ciò che è un "giro". Ogni specifica dell'algoritmo definisce le cose a modo suo.

MD5 è descritto come primo riempimento e quindi suddivisione del suo input in blocchi a 512 bit . Quindi, come dice la RFC, ci sono quattro round dove ogni round sembra essere una sequenza di 16 operazioni molto simili. Quindi potremmo dire che MD5 usa "quattro round" (per blocco). Tuttavia, i crittografi hanno presto evitato questa terminologia e, quando parlano delle potenziali debolezze di MD5, si concentrano sulle operazioni interne, che chiamano "round". In quella vista, MD5 ha 64 round.

SHA-512 viene specificato allo stesso modo di padding e di input di interruzione dati in blocchi da 1024 bit e ogni blocco viene elaborato con un ciclo che ripete 80 volte una sequenza di 4 passi . Quindi potremmo dire che SHA-512 usa "320 passi" (per blocco). Anche in questo caso, i crittografi sono d'accordo, più o meno implicitamente, a parlare di "80 round". Si può notare che ognuno di questi round implica approssimativamente il doppio delle operazioni di un MD5 "round" (quando si dice che MD5 abbia 64 round), quindi si potrebbe sostenere che SHA-512 abbia effettivamente 160 round. Oppure no.

Questi problemi terminologici non sono importanti finché tutti sono d'accordo su ciò di cui stanno parlando. Il punto importante è che non esiste una nozione assoluta di "round", che è più corretta di ogni altra, o che potrebbe consentire di confrontare diversi algoritmi basati su "quanti turni hanno".

Per sapere cosa succede nei round, il modo più semplice per sapere è leggere le specifiche e implementarle in una lingua. Questo non è difficile (inizia con MD5) ed è un grande esperimento pedagogico.

    
risposta data 23.07.2013 - 19:57
fonte
9

Le funzioni di hash funzionano generalmente eseguendo una singola operazione più e più volte. Ogni volta è chiamato "round".

È un po 'come mescolare un piatto: non puoi aspettarti di mescolare accuratamente nulla con un solo giro del cucchiaio. Ma mescolare abbastanza a lungo e lo stato originale degli ingredents non può più essere determinato.

Ecco un esempio di un round di SHA-1. Un singolo blocco di dati è suddiviso in blocchi più piccoli, con determinate operazioni eseguite su ciascun blocco a seconda della loro posizione. Alla fine, le posizioni vengono spostate un po 'e si esegue nuovamente la funzione.


[Vedi la pagina di Wikipedia per cosa significano i simboli]

Per quanto riguarda dove trovare il numero di round; la maggior parte delle descrizioni tecniche fornirà questi dettagli, tra cui in genere anche Wikipedia. Ma se vuoi la definizione più precisa e affidabile, la specifica tecnica originale archiviata con NIST è la fonte definitiva.

    
risposta data 23.07.2013 - 19:13
fonte

Leggi altre domande sui tag