Vous êtes sur la page 1sur 15

1

FONCTION DE HACHAGE

BAKA KOUMÉABALO FLORENT


MASTER1 SÉCURITÉ DES SYSTÈMES INFORMATIQUES
2
1- Concept et Propriétés
Une fonction de hachage est une fonction permettant d'obtenir un condensé (appelé aussi
condensat ou haché) d'un texte de taille quelconque, c'est-à-dire une suite de caractères assez
courte représentant le texte qu'il condense.
Propriétés d’une fonction de hachage :
-Sens unique: Impossible de trouver le message initiale à partir de l’empreinte.
-Sans collision: impossible de trouver deux messages ayant la même empreinte.
-Publique: son algorithme est connu.
-Caractérisée par une empreinte générée de taille fixe quelque soit la longueur du message en
entrée
-Rapide à calculer quelque soit le message en entrée.
-Aléatoire: absence de relation entre haché et message, on ne peut pas prédire le haché à partir
du message sans le calculer  
2- Quelques algorithmes de hachages 3

On constate des similitudes dans l'évolution des fonctions de hachage et la puissance


croissante des attaques par force brute
Ce qui pousse à l'évolution dans les algorithmes
 de MD4 et de MD5 à Sha-1, Sha-2, Sha-3 et à Ripemd-160
Ces algorithmes ont tendance à employer la même structure itérative que les
chiffrements symétriques
MD5 (Message Digest 5) 4

Présentation du MD5 :
-Conçue par River Rivest
-Le dernier d’une série (MD2, MD4)
-Produit un condensé de 128 bits
-Était jusqu’à la l’algorithme de hachage le plus largement répondu : la cryptanalyse
et l’attaque par force brute l’ont affaibli
-Spécification Internet : RFC 1321
5

Fonctionnement du MD5

-Complétion : Ajout de padding nécessaire afin que le message est une longueur de 448 mod 512
-Ajout de la longueur : on ajoute la longueur réelle du message (64 bits) après les 448 mod 512.
On obtient un message dont la longueur totale est un multiple de 512 bits
-Initialisation : On définit 4 mots (buffers) de 32 bits chacun A,B,C et D
-Calcul itératif :
 traiter le message par blocs de 512 bits
 4 rondes de 16 opérations fonction du bloc (512), des buffers et de fonctions primitives
 Le résultat (4*32 bits) est utilisé pour l’initialisation des registres suivants
-Le résultat final est obtenu en additionnant A,B,C,D
Description du fonctionnement du MD5 6
Secure Hash Algorithm ( SHA-1) 7

-SHA a été conçu par NIST (SHA-0) et NSA en 1993, révisé 1995(SHA-1)
-SHA-0 et SHA-1 utilisent presque la même fonction de compression
-L'algorithme SHA-1 transforme un message de longueur inférieure à 2 64 bits en un
haché, ou condensé de ce message, qui est de longueur 160 bits. Il adopte la
construction de Merkle-Damgård : schéma itératif à partir d’une fonction de
compression dont l'entrée est de taille fixe, et ajout en fin de message de sa longueur
-La fonction de compression F prend en entrée
– un haché intermédiaire de 160 bits vu comme 5 mots de 32 bits = (A B C D E)
– un bloc de message de 512 bits
Fonctionnement du SHA-1 8

1. Complétion : le message condensé doit être de longueur 448 mod 512


2. Ajout de la longueur une valeur codée sur 64 bits
3. Initialisation : Initialiser 5 buffers de 32 bits – A,B,C,D,E
4. Calcul itératif :
 4 rondes de 20 itérations chacune : Un tour élémentaire est itéré 80 fois dans F
( fonction de compression)
 Le résultat est utilisé pour initialiser les buffers du bloc suivant.
5. À la fin des 80 tours, on additionne le résultat avec le vecteur initial. Lorsque tous
les blocs ont été traités, les cinq variables concaténées (5 × 32 = 160 bits)
représentent la signature
Autres algorithmes de hachage 9

 SHA-256 et SHA-512
SHA-256 et SHA-512 sont des algorithmes de type SHA-2 qui calcule un hash de
256 bits et 512 bits respectivement. Inspirés de celui de SHA-1, Elles utilisent des
algorithmes très similaires mais opèrent sur des tailles de mot différentes (32 bits
pour SHA-256 et 64 bits pour SHA-512).
Les attaques connues sur SHA-1 n'ont pu être transposées à SHA-2, même si la
construction est proche.
Niveau de sécurité des fonctions de 10

hachage
En particulier, les algorithmes de hachage doivent montrer certaines résistances :
- Résistance à la préimage : pour une valeur h de hash donnée, il est très difficile de trouver un
message m tel que h = hash(m).
- Résistance à la seconde préimage : pour un message m donné, il est très difficile de trouver un
message m’ tel que hash(m) = hash(m’).
- Résistance à la collision : il est très difficile que deux messages différents produisent la même
sortie.
Niveau de sécurité des fonctions de 11

hachage
- MD2 : attaque en préimages
exemple : Fabriquer un faux certificat à partir d’un certificat valide → Attaque en
Seconde Préimage
- MD4 : attaque en collisions
- MD5 : attaque en collisions
- SHA-0 : attaque en collisions
- SHA-1 : attaque en collisions : Une attaque basée sur le paradoxe des anniversaires
permet de trouver une collision complète sur le SHA-1 avec un nombre d'opérations de 2 80
Avec cet algorithme (160 bits) on a 2 160 empreintes possibles et on 1/2160 probabilité de
collision
- SHA-256 : pas d’attaque encore
Application des fonctions de hachage 12

La fonction de hachage est généralement utilisé pour :


 Intégrité de fichier
On veut vérifier qu’un fichier n’a pas été modifié, on calcule son empreinte La
modification d'un fichier lors d'une transmission peut être vérifiée en comparant la
valeur de hachage(empreinte) du fichier avant et après la transmission.
 Stockage de mots de passe
Au lieu de stocker un mot de passe « en clair » sur une machine, on stocke son haché h
= H(password). Pour s’authentifier, un utilisateur envoie h. Cela rend la base de
données moins sensible

 Signature numérique
Signature électronique 13

Les documents envoyés sont passés dans une fonction de hachage, et


l’empreinte est envoyée chiffrée (avec le mécanisme de clés
asymétriques) en même temps que les documents. Il suffit au
destinataire de déchiffrer l’empreinte reçue et vérifier que celle-ci
correspond bien au calcul de l’empreinte des données reçues.
Pour des raisons d’efficacité et de sécurité, on ne signe jamais
directement un message M mais toujours son haché H(M).

Illustration :
14
CONCLUSION 15

Dans le domaine des fonctions de hachage,


- Attaques en collision contre MD4, MD5, SHA-0
- Attaques théoriques contre SHA-1 en 263
- En pratique, seul SHA-256 résiste encore