Voici, un billet présentant les fonctions de hachage en cryptographie
Le hachage (hash) est un moyen de vérifier l'intégrité de l'information et donc prouvé que les données transmises n’ont pas été modifiées entre la source et la destination. Les fonctions de hachage permettent de créer une empreinte électronique (fingerprint ou message digest).
Les mécanismes les plus courants pour la vérification de l’intégrité d’un message sont Message Digest 5 (MD5), Secure Hash Algorithm (SHA-1, SHA-256, SHA-384 et SHA-512), Message Authentication Code (MAC) et Keyed-Hash Message Authentication Code (HMAC).
Le chiffrement assure l'intégrité de manière intrinsèque puisque si un bloc de texte chiffré a été modifié, le bloc ne sera pas déchiffré correctement. La signature numérique fournit également l'intégrité, car elle utilise des fonctions de hachage.
Figure 1 : Les mécanismes assurant l'intégrité
Les empreintes électroniques ou hachages doivent être uniques. Cette unicité est nécessaire parce que deux documents qui sont très semblables ont besoin de créer des hachages complètement différent pour aider à protéger les fichiers d’une falsification.
Une propriété souhaitable de toute fonction de hachage cryptographique est l'effet avalanche. L'objectif est qu’un tout petit changement en entrée doit entraîner un changement important en sortie. Si un attaquant venait à modifier un bit dans le fichier, l’empreinte électronique doit changer d’au moins 50 % de ses bits. Cela empêche un attaquant de comparer deux hachages similaires et de déterminer que ses valeurs proches de hachage signifient que les fichiers sont deux fichiers similaires.
Une fonction de hachage doit avoir les propriétés suivantes :
• Compression : La valeur de hachage a une longueur fixe quel que soit la taille du message.
• Efficacité : Il est relativement facile à calculer pour un message donné.
• Sens-unique : Il est mathématiquement impossible d’inverser le hachage.
• Forte résistance aux collisions : « Impossibilité » d’obtenir deux haches identiques à partir de deux différents messages.
Une fonction de hachage est une « fonction de hachage forte» si elle satisfait toutes les propriétés ci-dessus.
Figure 2 : Processus de vérification d'intégrité