Aller au contenu principal

RFC 1321 - L'algorithme de hachage MD5

  • Statut: Informational
  • Publié: April 1992
  • Stream: IETF
  • Errata: Pas d'errata

Statut de ce mémorandum​

Ce mémorandum fournit des informations à la communauté Internet. Il ne spécifie pas une norme Internet. La distribution de ce mémorandum est illimitée.


Remerciements​

Nous tenons à remercier Don Coppersmith, Burt Kaliski, Ralph Merkle, David Chaum et Noam Nisan pour leurs nombreux commentaires et suggestions utiles.


Table des matières​

Annexes​

Sections supplémentaires​


Ressources associées​



2. Terminology and Notation (Terminologie et notation)​

Dans ce document, un « mot (Word) » est une quantité de 32 bits et un « octet (Byte) » est une quantité de huit bits. Une séquence de bits peut être interprétée de manière naturelle comme une séquence d'octets, où chaque groupe consécutif de huit bits est interprété comme un octet avec le bit de poids fort (Most Significant Bit) de chaque octet listé en premier. De même, une séquence d'octets peut être interprétée comme une séquence de mots de 32 bits, où chaque groupe consécutif de quatre octets est interprété comme un mot avec l'octet de poids faible (Least Significant Byte) donné en premier.

Soit x_i désigne « x indice i ». Si l'indice est une expression, nous l'entourons d'accolades, comme dans x_{i+1}. De même, nous utilisons ^ pour les exposants (exponentiation), de sorte que x^i désigne x à la puissance i.

Le symbole « + » désigne l'addition de mots (c'est-à-dire l'addition modulo 2^32). X <<< s désigne la valeur 32 bits obtenue en décalant circulairement (rotation) X vers la gauche de s positions de bits. not(X) désigne le complément bit à bit de X, et X v Y désigne le OU bit à bit de X et Y. X xor Y désigne le XOR bit à bit de X et Y, et XY désigne le ET bit à bit de X et Y.



4. Summary (Résumé)​

L'algorithme de hachage MD5 est simple à implémenter et fournit une « empreinte numérique » ou un hachage de message d'un message de longueur arbitraire. Il est supposé que la difficulté de trouver deux messages ayant le même hachage est de l'ordre de 2^64 opérations, et que la difficulté de trouver un message ayant un hachage donné est de l'ordre de 2^128 opérations. L'algorithme MD5 a été soigneusement examiné pour détecter les faiblesses. Il s'agit cependant d'un algorithme relativement nouveau et une analyse de sécurité supplémentaire est bien sûr justifiée, comme c'est le cas pour toute nouvelle proposition de ce type.



5. Differences Between MD4 and MD5 (Différences entre MD4 et MD5)​

Les différences entre MD4 et MD5 sont les suivantes :

  1. Un quatrième round a été ajouté.

  2. Chaque étape a maintenant une constante additive unique.

  3. La fonction g dans le round 2 a été modifiée de (XY v XZ v YZ) à (XZ v Y not(Z)) pour rendre g moins symétrique.

  4. Chaque étape ajoute maintenant le résultat de l'étape précédente. Cela favorise un « effet d'avalanche » plus rapide.

  5. L'ordre dans lequel les mots d'entrée sont accessibles dans les rounds 2 et 3 a été modifié, pour rendre ces motifs moins semblables les uns aux autres.

  6. Les montants de décalage dans chaque round ont été approximativement optimisés, pour obtenir un « effet d'avalanche » plus rapide. Les décalages dans différents rounds sont distincts.



Security Considerations (Considérations de sécurité)​

Le niveau de sécurité discuté dans ce mémorandum est considéré comme suffisant pour implémenter des schémas de signature numérique hybride de très haute sécurité basés sur MD5 et un système de cryptographie à clé publique.