Perché è importante che il segreto sia alla fine quando si firma con MD5?


16

si dice spesso che quando si utilizza l'algoritmo MD5 per firmare alcune informazioni arbitrarie, il segreto condiviso deve essere alla fine. Perché?


2
Puoi per favore essere più specifico invece di dire "spesso detto". Puoi citare riferimenti e anche ampliare il motivo per cui il problema è rilevante?
Suresh Venkat,

C'è un refuso nel titolo della domanda: puoi cambiare "e" in "fine"?
Carlos Scheidegger,

Risposte:


16

Vedi "attacchi di estensione" nella costruzione Merkle-Damgard . Questo problema sorge nell'uso delle funzioni hash per l' autenticazione dei messaggi .

In breve, mettere il segreto all'inizio consente all'attaccante, dato un messaggio e il suo hash, di forgiare qualsiasi messaggio che ha il messaggio dato come prefisso. Questo è un problema per codici ingenui ma viene evitato da codici noti come HMAC .


1
Da quello che ho capito se interrompi lo stream di input e la chiave condivisa è l'inizio dello stream, allora il primo blocco otterrà quasi sempre lo stesso hash e quindi la chiave condivisa può essere indovinata dall'uso di attacchi arcobaleno, giusto?
Alexandru,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.