lundi 29 août 2011

Introduction au mécanisme de hash en cryptographie

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.

integrite_mecanisme_hash

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.

verification_integrite_hash

Figure 2 : Processus de vérification d'intégrité

Lire la suite »