Académique Documents
Professionnel Documents
Culture Documents
2009-10
O. KHADIR, FSTM
Ce chapitre traite des fonctions de hachage dont l’importance réside dans deux applica-
tions fondamentales :
1. Protéger l’intégrite des documents qui se transmettent à travers un canal non sûr ou
qui sont stockés sur des supports exposés, comme les mots de passe.
2. Permettre les signatures de messages et de contrats de grande taille.
I. Introduction et définitions
Une fonction de hachage h est une fonction qui transforme un long message donné M
en un autre, noté h(M ), de taille plus courte et ayant des qualité lui permettant de
caractériser le long message de départ M . Le nouveau message obtenu h(M ) s’appelle
résumé, empreinte ou haché (Message digest, MD).
Une fonction de hachage doit donc posséder des qualités telles que :
1. h(M ) se calcule rapidement.
2. La connaissance de l’empreinte h(M1 ) d’un message M1 , ne permet pas de calculer
facilement ni M1 ni un autre message M2 tel que h(M1 ) = h(M2 ).
3. Il est difficile dans la pratique de construire deux message M1 et M2 tels que : h(M1 ) =
h(M2 ).
Plus précisément :
Définition 2 Une fonction de hachage h est dite fortement résistante aux collisions si, il
est difficile de trouver deux messages M1 et M2 tels que h(M1 ) = h(M2 ).
33
Université Hassan II-Mohammedia Ann. Univ. 2009-10
Un célèbre exemple des fonctions de hachage est la fonction proposées par Chaum et
Lors de la construction de fonctions de hachage, nous devons rendre la recherche des col-
lisions calculatoirement difficile. C’est pour cela que nous devons tenir compte de certains
resultats mathématiques comme le paradoxe des anniversaires.
q ≤ e−k(k−1)/2n (2)
34
Université Hassan II-Mohammedia Ann. Univ. 2009-10
Le paradoxe
Dimensionnement
35
Université Hassan II-Mohammedia Ann. Univ. 2009-10
Ce qui donne
z = 447 − ||Mn || (5)
36
Université Hassan II-Mohammedia Ann. Univ. 2009-10
Les 4 fonctions intervenant dans le traitement des 128 bits mélangés aux 512 bits pris au
message sont :
f1 (X,Y,Z) = Si X alors Y sinon Z= (X et Y ) ou (X et Z)
f2 (X,Y,Z) = Si Z alors X sinon Y = (Z et X) ou (Z et Y )
f3 (X,Y,Z) =somme modulo 2=X ⊕ Y ⊕ Z
f4 (X,Y,Z) = Y ⊕ (X ou Z)
37
Université Hassan II-Mohammedia Ann. Univ. 2009-10
4. Algorithme MD5
A titre d’illustration , on va exposer ce qu’est l’étape1. Les 3 autres autres lui sont
semblables.
On remplit un tableau T par 64 valeurs égales à la partie entière de 232 | sin i|; i = 1 à 64.
On note [abcd k s i] l’opération
Tous les termes sont formés de 32 bits et << est la permutation circulaire à gauche de s
bits; 0 ≤ s ≤ 31.
L’étape1 consiste en les 16 opérations :
[ABCD 0 7 1] [CDAB 2 17 3]
[ABCD 4 7 5] [CDAB 6 17 7]
[ABCD 8 7 9] [CDAB 10 17 11]
[ABCD 12 7 13] [CDAB 14 17 15]
[DABC 1 12 2] [BCDA 3 22 4]
[DABC 5 12 6] [BCDA 7 22 8]
[DABC 9 12 10] [BCDA 11 22 12]
[DABC 13 12 14] [BCDA 15 22 16]
A suivre ...
38
Université Hassan II-Mohammedia Ann. Univ. 2009-10
1. Principe : SHA1 est une fonction de hachage de 160 bits pour chaque message de 512
bits. Elle améliore le MD5 qui, lui était sur 128 bits seulement.
Les 4 fonctions intervenant dans le traitement des 160 bits mélangés aux 512 bits pris au
message sont :
f1 (X,Y,Z) =Si X alors Y sinon Z=(X et Y ) ou (X et Z)
f2 (X,Y,Z) =somme modulo 2=X ⊕ Y ⊕ Z
f3 (X,Y,Z) = vote(X,Y,Z) = (X et Y ) ou (Y et Z) ou (Z et X)
f4 (X,Y,Z) = f2 (X,Y,Z)
On partage chaque paquet Mi de 512 bits en des mots de 32 bits, donc 16 : W0 , . . . ,W15
On complète à 80 mots de 32 bits de la manière suivante :
Pour k = 16,...,79 : Wk = (Wk−3 ⊕ Wk−8 ⊕ Wk−14 ⊕ Wk−16 ) << 1
Voici le détail de l’algorithme
39
Université Hassan II-Mohammedia Ann. Univ. 2009-10
Algorithme SHA1
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
40