Passa al contenuto principale

RFC 1321 - L'algoritmo MD5 Message-Digest

  • Stato: Informational
  • Pubblicato: April 1992
  • Stream: IETF
  • Errata: Nessun errata

Stato di questo memorandum​

Questo memorandum fornisce informazioni alla comunità Internet. Non specifica uno standard Internet. La distribuzione di questo memorandum è illimitata.


Ringraziamenti​

Vorremmo ringraziare Don Coppersmith, Burt Kaliski, Ralph Merkle, David Chaum e Noam Nisan per i numerosi commenti e suggerimenti utili.


Indice​

Appendici​

Sezioni aggiuntive​


Risorse correlate​



2. Terminology and Notation (Terminologia e notazione)​

In questo documento, una « parola (Word) » è una quantità a 32 bit e un « byte (Byte) » è una quantità a otto bit. Una sequenza di bit può essere interpretata in modo naturale come una sequenza di byte, dove ogni gruppo consecutivo di otto bit è interpretato come un byte con il bit più significativo (Most Significant Bit) di ciascun byte elencato per primo. Analogamente, una sequenza di byte può essere interpretata come una sequenza di parole a 32 bit, dove ogni gruppo consecutivo di quattro byte è interpretato come una parola con il byte meno significativo (Least Significant Byte) dato per primo.

Sia x_i «x indice i». Se l'indice è un'espressione, lo racchiudiamo tra parentesi graffe, come in x_{i+1}. Analogamente, usiamo ^ per gli esponenti (esponenziazione), in modo che x^i denoti x alla potenza i.

Il simbolo « + » denota l'addizione di parole (cioè, addizione modulo 2^32). X <<< s denota il valore a 32 bit ottenuto spostando circolarmente (rotazione) X a sinistra di s posizioni di bit. not(X) denota il complemento bit a bit di X, e X v Y denota l'OR bit a bit di X e Y. X xor Y denota lo XOR bit a bit di X e Y, e XY denota l'AND bit a bit di X e Y.



4. Summary (Sommario)​

L'algoritmo di message-digest MD5 è semplice da implementare e fornisce un'« impronta digitale » o message digest di un messaggio di lunghezza arbitraria. Si ritiene che la difficoltà di trovare due messaggi con lo stesso message digest sia dell'ordine di 2^64 operazioni, e che la difficoltà di trovare un messaggio con un message digest dato sia dell'ordine di 2^128 operazioni. L'algoritmo MD5 è stato attentamente esaminato per individuare eventuali debolezze. Tuttavia, si tratta di un algoritmo relativamente nuovo e un'ulteriore analisi della sicurezza è ovviamente giustificata, come nel caso di qualsiasi nuova proposta di questo tipo.



5. Differences Between MD4 and MD5 (Differenze tra MD4 e MD5)​

Le seguenti sono le differenze tra MD4 e MD5:

  1. È stato aggiunto un quarto round.

  2. Ogni passo ha ora una costante additiva unica.

  3. La funzione g nel round 2 è stata cambiata da (XY v XZ v YZ) a (XZ v Y not(Z)) per rendere g meno simmetrica.

  4. Ogni passo ora aggiunge il risultato del passo precedente. Questo promuove un « effetto valanga » più rapido.

  5. L'ordine in cui le parole di input vengono accedute nei round 2 e 3 è stato cambiato, per rendere questi modelli meno simili tra loro.

  6. Gli importi di spostamento in ogni round sono stati approssimativamente ottimizzati, per ottenere un « effetto valanga » più rapido. Gli spostamenti in diversi round sono distinti.



Security Considerations (Considerazioni sulla sicurezza)​

Il livello di sicurezza discusso in questo memorandum è considerato sufficiente per implementare schemi di firma digitale ibrida ad altissima sicurezza basati su MD5 e un sistema di crittografia a chiave pubblica.