hash function


I - Définition


On donne une donnée en entrée et la fonction calcule et retourne une empreinte unique associée à cette donnée. On peut dire que l’empreinte est l’ID de la donnée.

On parle de collision lorsque pour 2 données en entré de l’algorithme de hashage, l’empreinte est identique.

Une fonction de hashage est dite parfaite si elle ne contient aucune collision.

Ces fonctions sont utilisées dans les structures de données comme les tables de hashage pour identifier une donnée, empreinte en tant que clé du tableau. Elles utilisent une heuristique pour faire les calculs.

En cryptographie, utilisé par exemple pour garder des mots de passes sans les stocker. Même si on posséde la BDD on a juste les hashs. Problème des rainbow table.

Le problème pour les mdp est que si 2 personnes ont le même mot de passe, leur hash sera identique. Ce qui facilitera les attaques de type brute force ou par dictionnaire. Pour contrer cela, on ajouter un salt au mdp. Le salt est soit statique (identique) ou dynamique (change pour chaque user). Dans ce cas on stocke: identifiant | hachage(mot de passe + salage (nonce)) | salage


II - MD5


Message Digest 5

  • Aujourd’hui dépassé, et considéré comme non sécurisé.
  • empreinte de 128 bits ou 32 caractères en hexa.
  • remplacé par sha-1 ou sha-256
  • mais largement utilisé aujourd’hui pour les téléchargement et les signatures de messages
  • utilisation de md5sum ou sha1sum
  • sur GNU/Linux sha-512 actuellement ou sha-256 ou DES
  • cisco utilise md5 lors de enable secret (5 pour md5 et 4 pour sha-256)
  • on peut parler d’empreinte ou de somme de contrôle
  • cassé en 1996, 2004

III - SHA


  • Secure Hash Algorithm
  • SHA-0: inspiré de MD4 et MD5, 160 bits
  • SHA-1: légère modif de SHA-0, 160 bits
  • SHA-2: famille de fonction de hashage publié en 2001, SHA-224, SHA-256, SHA-384 et SHA-512, SHA-512/256 (haché de 256 bits) et SHA-512/224 (haché de 224 bits), algo similaires, inspiré de SHA-1
  • SHA-3: suite à concours de 2007, suite faiblesse de MD5 et SHA-1 et crainte sur SHA-2 car s’inspire, haches de 224, 256, 384 et 512 bits, principde tout à fait différent de MD5 ou SHA-1 ou SHA-2