Md5 (message digest 5)
MD5 (Message Digest 5) est une fonction de hachage cryptographique qui calcule, à partir d'un fichier numérique, son empreinte numérique (en l'occurrence une séquence de 128 bits ou 32 caractères en notation hexadécimale) avec une probabilité très forte que deux fichiers différents donnent deux empreintes différentes.
Le programme John the ripper permet de casser (trouver une collision pour) les MD5 triviaux par force brute. Des serveurs de « tables inverses » (à accès direct, et qui font parfois plusieurs gigaoctets) permettent de les craquer souvent en moins d'une seconde – cf. les Rainbow attacks.
En 2004, une équipe chinoise découvre des collisions complètes. MD5 n'est donc plus considéré comme sûr au sens cryptographique. On suggère maintenant d'utiliser plutôt des algorithmes tels que SHA-256, RIPEMD-160 ou Whirlpool.
Voici l'empreinte (appelée abusivement signature) obtenue sur une phrase :
MD5("snicdal robocup") = C0E1B59EF3C7A73308164D9E70EEE5D5
En modifiant un caractère, cette empreinte change radicalement :
MD5("Snicdal robocup") = B79E35A10166CF7A0BBA6446D4AAE013
Très concrètement, la vérification de l'empreinte ou somme de contrôle MD5 peut être réalisée de la façon suivante: lors du téléchargement d'un programme, on note la série de caractères indiquée sur la page de téléchargement. Quand ce téléchargement est terminé, on lance un utilitaire de calcul MD5, comme par exemple HashCalc ou md5sums, qui indique entre autres la somme de contrôle correspondant au fichier. Si les deux valeurs correspondent, on peut alors raisonnablement considérer que le fichier n'a pas été corrompu (volontairement ou non d'ailleurs). On constate plusieurs fragilités dans ce processus : la page d'origine a pu être modifiée, et l'utilitaire de