MD5 est un algorithme de hachage 128 bits créé par le scientifique Ronald L. Rivest au début des années 1990. L'abréviation MD5 signifie Message Digest Version 5.
Le chiffrement MD5 est basé sur le hachage, qui implique la formation d'"empreintes digitales" ou de "sommes" afin de vérifier davantage leur authenticité. En utilisant cette méthode, vous pouvez vérifier l'intégrité des informations, ainsi que le stockage des hachages de mot de passe.
Historique MD5
L'histoire de Message Digest Algorithm (MD5) commence en 1991, lorsque le professeur du MIT Ronald L. Rivest a rendu compte de la création d'un nouvel algorithme qui a remplacé le MD4 obsolète. Quant à MD4, un certain nombre de lacunes y ont en effet été trouvées, comme l'a écrit plus tard le cryptologue allemand Hans Dobbertin.
Rivest a décrit le nouvel algorithme MD5 dans la RFC 1321.
Les travaux sur l'algorithme ont été poursuivis par les chercheurs Bert den Boer et Anton Bosselars, qui ont prouvé en 1993 la possibilité de pseudo-collisions dans MD5, lorsque différents vecteurs d'initialisation peuvent correspondre aux mêmes résumés de messages.
De plus, en 1996, Hans Dobbertin a affirmé avoir trouvé une collision dans MD5. À cette époque, des algorithmes de hachage plus préférés sont devenus connus, tels que les fonctions de hachage cryptographique RIPEMD-160 - développées par Hans Dobbertin, Anton Bosselars et Bart Prenel, Whirlpool - développées par Vincent Raymen et Paulo Barreto et l'algorithme de hachage cryptographique SHA-1.
En raison de la taille de hachage relativement petite (128 bits) dans MD5, il a été question de la possibilité d'attaques d'anniversaire. Le projet MD5CRK, lancé par Jean-Luc Cook en 2004, visait à étudier la vulnérabilité de l'algorithme utilisant les attaques d'anniversaire. Mais, après cinq mois, le 17 août 2004, le projet a été interrompu en raison de la découverte d'une vulnérabilité dans l'algorithme par un groupe de cryptographes chinois dirigé par Lai Xuejia.
En mars 2005, les mathématiciens et cryptographes Benne de Weger, Arjen Lenstra et Wang Xiaoyun ont créé deux documents X.509 avec le même hachage et des clés publiques différentes.
Un an plus tard, en mars 2006, un algorithme a été publié par le cryptographe tchèque Vlastimil Klima, qui vous permet de déterminer les collisions sur un simple ordinateur en une minute seulement. Cet algorithme est devenu connu sous le nom de méthode de "tunneling".
À la suite de l'analyse des résultats des travaux, en 2008, la division de la National Cyber Security Administration du Département américain de la sécurité intérieure (US-CERT) a recommandé à toute personne impliquée dans le développement des logiciels, des sites Web, ainsi que des utilisateurs du réseau, cessent d'utiliser l'algorithme MD5, quel que soit le but de son application. La raison d'une telle recommandation était le manque de fiabilité dont il a fait preuve au cours de son étude.
En décembre 2010, les cryptologues chinois Tao Xie et Feng Denguo ont découvert une collision de messages de 512 bits (un bloc). Auparavant, les collisions n'étaient détectées que dans les messages de deux blocs ou plus. Plus tard, Mark Stevens a obtenu des résultats similaires en publiant des blocs avec le même hachage MD5. Il a également développé un algorithme pour obtenir des collisions de ce type.
Le document final qui a mis fin à l'histoire du développement de l'algorithme MD5 était une demande de commentaires - RFC 6151 (RFC est un document officiel développé par l'Internet Engineering Council (IETF), qui décrit les spécifications d'un technologie), qui a en fait reconnu MD5 comme un algorithme de hachage non sécurisé . Le document recommande de l'abandonner, en choisissant la famille d'algorithmes cryptographiques SHA-2 comme alternative.
L'algorithme MD5 discuté est considéré comme l'une des premières normes d'algorithme utilisées pour vérifier l'intégrité des fichiers et stocker les mots de passe dans les bases de données d'applications Web.
Mais, en fait, la fonctionnalité relativement simple, la courte longueur de sortie et la simplicité des opérations effectuées, étant les avantages de l'algorithme, déterminent également ses inconvénients - MD5 fait référence à des algorithmes sujets au piratage et ayant un faible degré de protection contre les attaques d'anniversaire.