DLP Exemple Calcul du logarithme discret

Transcription

DLP Exemple Calcul du logarithme discret
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Exemple
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Soit G = Z�7 un groupe cyclique. Pour le logarithme en base 2,
seuls 1, 2 et 4 possèdent un logarithme discret. En base g=3, on
obtient le tableau suivant :
Log discret, ElGamal et hachage
Bruno MARTIN,
Université de Nice - Sophia Antipolis
nombre y
logarithme
1
6
2
2
3
1
4
4
5
5
6
3
Par exemple pour nombre = 1 et log = 6. Cela signifie que
log3 1 = 6, ce qu’on vérifie par 36 mod 7 = 1.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
1
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
3
Calcul du logarithme discret – Shanks
S’applique à tout groupe�fini G.
�
Complexité en temps O( |G| log |G|) en espace O( |G|)
Idée : construire deux listes de puissances de g :
√
une liste de petits pas {g i : i = 0..� n� − 1} avec n = |G|
� �
√ �
√ �
une liste de pas de géant y g −� n�j : j = 0..� n� .
DLP problème du logarithme discret de y en base g
Problème
Instance : g, y ∈ G, groupe fini
Question : trouver x tel que g x ≡ y dans G
Puis trouver un terme commun aux 2 listes. Ainsi,
√
√
g i0 = y (g −j0 � n� ) et m = i0 + j0 � n�
ou, pour p un grand premier, g un générateur de G = Z�p , g x ≡ y
mod p et x = logg (y ) mod p.
Plus généralement, tout élément y ∈ G possède un logarithme
discret en base g si et seulement si G est cyclique de générateur g.
Log discret, ElGamal et hachage
Log discret, ElGamal et hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Un autre problème difficile : DLP
Bruno MARTIN, Université de Nice - Sophia Antipolis
Bruno MARTIN, Université de Nice - Sophia Antipolis
Calcul du log. discret de groupes de faible cardinalité facile,
opération difficile quand le cardinal de G croît.
2
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
4
Exemple
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Plan
√
On travaille dans Z×
n = r = 11.
113 =< 3 > d’ordre n = 112 ;
Quel est le log. discret de y = 57 en base g = 3 ?
Liste (non ordonnée) des petits pas, forme (exposant, valeur) :
B = {(0, 1), (1, 3), (2, 9), (3, 27), (4, 81),
(5, 17), (6, 51), (7, 40), (8, 7), (9, 21), (10, 63)}
1
Logarithme discret
2
Chiffre d’ElGamal
3
Hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
4
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Liste (non ordonnée) des pas de géant, forme (exposant, valeur) :
L = {(0, 57), (1, 29), (2, 100), (3, 37), (4, 112), (5, 55), (6, 26),
(7, 39), (8, 2), (9, 3), (10, 61), (11, 35)}
3 commun aux 2 listes, i0 = 1 dans B et j0 = 9 dans L. Log.
discret : x = i0 + r .j0 = 100. Vérification : g x mod 113 = 57.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Shanks
Log discret, ElGamal et hachage
5
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
7
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Le chiffre d’ElGamal [1]
Algorithme :
Entrée : n le cardinal de G,g et y ∈ G
√
Sortie : logarithme discret de y en base
g dans G. r := � n�
√
Construire la liste B := {g i : i =
√ 0..� n� − 1}
√
Construire la liste L := {y (g −� n�j ) : j = 0..� n�}
Trier les listes B et L selon un ordre sur les g i et les g −rj .
Trouver i0 et j0 tel que : g i0 = yg −rj0 .
RETURN(i0 + j0 r ).
Preuve : √
Pour r = � n�, on a :
Construction des listes : r + 1 + r opérations de groupes : O(r )
Tri des listes : O(r log(r ))
Recherche d’un même élément dans deux listes triées : O(log(r )) �
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
Repose sur le problème du logarithme discret.
1
2
3
4
5
choisir p premier t.q. DLP est dur dans Zp �
choisir α ∈ Zp � un élément primitif
choisir 2 ≤ a < p − 1, la clé privée
calculer β ≡ αa mod p
clé publique : p, α, β.
Chiffrer : E : (x , k) �→ (y1 = αk mod p, y2 = x β k mod p)
pour k aléatoire secret de Z�p et x ∈ Zp
Déchiffrer : (y1 , y2 ) �→ y2 (y1 a )−1 mod p
6
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
8
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Fonctionnement
Difficulté du logarithme discret
G = �g� d’ordre p − 1, ∀y ∈ G, ∃!x : g x = y (on note x = logg y )
DLP : donnés g, y , calculer x dans G.
E : (x , k) �→ (y1 = αk
mod p, y2 = x β k
G algo polytime : entrée 1n retourne G = �g� d’ordre p − 1.
Expérience DLogA,G (n) :
mod p)
k aléatoire secret de Z�p .
Clair « masqué » par β k .
Valeur de αk transmise comme partie du chiffré comme y1 .
lance G(1n ) pour avoir (G, p, g) (générateur de groupe)
u
y ←G
A reçoit (G, p, g, y ) et retourne x
résultat expérience 1 si g x = y sinon 0
Bob, avec sk a, calcule β k = αak . Comme β = αa , il calcule
(αk )a = β k . Reste à multiplier y2 par (β k )−1 mod p = x .
Définition (Hypothèse DH)
Le pb du log discret est difficile pour G si pour tout algo A PPT, il
existe negl : Pr (DLogA,G (n) = 1) ≤ negl(n)
Observons que le crypto est deux fois plus long que le clair.
Les problèmes CDH et DDH permettent de construire de bons G
Bruno MARTIN, Université de Nice - Sophia Antipolis
Exemple
Log discret, ElGamal et hachage
9
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
y1 = 2
= 435
11
Computational Diffie Hellman CDH
y2 = 1299.(949)
853
�g� = G y1 , y2 ∈ G DHg (y1 , y2 ) = g logg y1 logg y2
y1 = g x y2 = g z ⇒ DHg (y1 , y2 ) = g xz = (y1 )z = (y2 )x
∆
= 2396
CDH = calculer DHg (y1 , y2 ) pour y1 , y2 choisis au hasard
Bob reçoit (435, 2396) et connait a = 765. Il calcule (y1 )a
mod p = 435765 mod 2579 = 2424, cherche l’inverse mod p par
Euclide étendu : (2424, 2579) = −599.2424 + 563.2579 = 1 ⇔
(β k )−1 = −599 = 1980.
Puis il calcule 2396.1980 mod 2579 = 1299.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Soit p = 2579, α = 2 a = 765. β = 2765 mod 2579 = 949.
Alice veut transmettre x = 1299 à Bob.
Elle choisit k ∈ Z�p = 853 et calcule ( mod 2579) :
853
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
Si DLP relatif à G facile, CDH aussi
Si log discret difficile, CDH difficile ?
10
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
12
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Decisional Diffie Hellman DDH
ElGamal (rappel)
Le chiffre d’ElGamal Π est :
DDH revient à distinguer DHg (y1 , y2 ) d’un élément aléatoire de G :
u
pour y1 , y2 ← G et y � une solution, DDH revient à décider si
u
y � = DHg (y1 , y2 ) ou si y � ← G.
u
Gen :1n �→ G(1n ) �→ (G, p, g), a ← Z�p ,
pk = (G, p, g, β) et sk = (G, p, g, a)
β := g a ;
u
E : reçoit (pk, m) ; k ← Z�p ; renvoie c = (y1 , y2 ) = (g k , mβ k )
Définition
DDH est difficile relativement à G si, pour tout algo D PPT, il
existe negl. tq
D : reçoit sk et c = (y1 , y2 ) ; renvoie m := y2 (y1a )−1
Théorème
Si DDH est difficile pour G, ElGamal est IND-CPA.
|Pr (D(G, p, g, g x , g y , g z ) = 1) − Pr (D(G, p, g, g x , g y , g xy ) = 1)| ≤ negl(n)
Comparer fonctionnement de Π à celui de Π� qui ressemble
syntaxiquement à Π en remplaçant toutes ses sorties par des VA.
u
pour G(1n ) qui renvoie (G, p, g) et x , y , z ← Zp
On montre IND-EAV plutôt que IND-CPA (équivalent).
Bruno MARTIN, Université de Nice - Sophia Antipolis
Lemme utile
Log discret, ElGamal et hachage
13
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
15
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
CPA
IND-EAV : PubKEAV
A,Π ≡PubKA,Π
1
Le multiple d’un élément y tiré uniformément est unif. distribué.
Ou, y � ne contient pas d’information sur m.
2
3
Lemme
G groupe fini, m ∈ G qcq. Les distrib. de probabilité relatives à :
4
u
5
y ← G et y � := m · y
u
y� ← G
Gen(1n ) produit (pk, sk)
A reçoit pk et retourne m0 , m1 ∈ M(pk) de même long.
u
b ← {0, 1} ; c ← Epk (mb ) et envoyer c à A
A retourne un bit b �
A réussit l’expérience (i.e. renvoie 1) ssi b = b �
Définition
Π est CPA-sûr si, pour tout adversaire A PPT, il existe negl(.) tq :
sont identiques. Autrement dit, ∀ŷ ∈ G, Pr (m · y = ŷ ) = 1/�G
ŷ ∈ G qcq. Alors Pr (m · y = ŷ ) = Pr (y = m−1 · ŷ ).
u
Comme y ← G, la proba. pour que y soit un élément donné de G
est 1/�G
Pr (PubKCPA
A,Π = 1) ≤
1
+ negl(n)
2
On pose : ε(n) = Pr (PubKEAV
A,Π (n) = 1) qu’il faut évaluer.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
14
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
16
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Le chiffre Π� , pas déchiffrable mais convenable pour A
g3 = g z A, appelé par D fonctionnera ĉ ds PubKEAV
A,Π� (n) sur
un chiffré de la forme (g y , mg z ). Donc
Gen’ =Gen rend pk = (G, p, g, β) et sk = (G, p, g, a)
u
E : donné (pk, m) ; y , z ←
Z�p
; rend c = (y1 , y2 ) =
Pr (D(pk, g y , g z ) = 1) = Pr (PubKEAV
A,Π� (n) = 1) = 1/2
(g y , mg z )
g3 = g xy A, appelé par D fonctionnera ĉ ds PubKEAV
A,Π (n) sur
y
x
y
un chiffré de la forme (g , m(g ) ). Donc
Par le lemme :
y2 unif. distribué sur G et indépendant de m
Pr (D(pk, g y , g xy ) = 1) = Pr (PubKEAV
A,Π (n) = 1) = ε(n)
y1 est unif. distribué et indépendant de m.
On ne tire pas d’information sur m à partir de c :
Pr (PubKEAV
A,Π� (n)
Bruno MARTIN, Université de Nice - Sophia Antipolis
par hyp. DDH difficile pour G donc ∃ negl. tq negl(n)≥
1
= 1) =
2
Log discret, ElGamal et hachage
�
� Pr (D(pk, g y , g z ) = 1)−
�
� Pr (D(pk, g y , g xy ) = 1)
17
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
19
Partage des paramètres
Dans la définition d’ElGamal, on demande aux sujets de lancer G
pour engendrer G, p, g. En pratique, ces paramètres sont souvent
engendrés une fois pour toutes.
P.e. un admin système peut fixer ces paramètre pour un paramètre
de sécurité donné n et tout le monde peut partager ces valeurs.
x
y
D reçoit
� pk et c :(G, p, g, g = β, g = y1 , g3 = y2 ) avec
g xy
u
g3 =
où x , y , z ← Z�p .
gz
pk := (G, p, g, g x = β) et appelle A pour obtenir m0 , m1
u
b ← {0, 1} ; y1 := g y et y2 := mb g3
Dans un BSD sous /etc/moduli. Demander man moduli
donne (y1 , y2 ) à A qui renvoie b �
DESCRIPTION The /etc/moduli file contains prime
numbers and generators for use by sshd in the
Diffie-Hellman Group Exchange key exchange method.
résultat expérience 1 si b � = b sinon 0
Deux comportements possibles pour D selon g3
Log discret, ElGamal et hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Algo D PPT qui résout DDH relativement à G
Bruno MARTIN, Université de Nice - Sophia Antipolis
�
�
� = |1/2 − ε(n)| ⇒ ε(n) ≤ 1/2 + negl(n)
�
18
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
20
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Plan
Logarithme discret
2
Chiffre d’ElGamal
3
Hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Une fonction de hachage h calcule
z = h(m)
où m message de taille arbitraire et z empreinte de taille fixe.
h à sens unique, i.e.
h(m) rapide à calculer à partir de m
z difficile à inverser.
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Conditions à satisfaire
1
4
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Log discret, ElGamal et hachage
21
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Classification
Log discret, ElGamal et hachage
23
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Résistance aux collisions
collision : 2 mots distincts (x , x � ) tels que h(x ) = h(x � ).
h est
faiblement résistante aux collisions si, pour x donné, il est
difficile de calculer une collision.
MDC ou MIC (message integrity code) à IV=0
fonctions de hachage à sens unique (OWHF)
fonctions de hachage résistantes aux collisions (CRHF)
fortement résistante aux collisions s’il est difficile de
calculer la moindre collision (x , x � ).
MAC
assure authentification et intégrité
IV�=0
préimage-résistante si, donné z, il est difficile de trouver un
x tq h(x ) = z
2e préimage-résistante si, donnés h, x et z = h(x ), il est
difficile de trouver un x � tq x �= x � et h(x ) = h(x � )
Difficile = sécurité calculatoire (sait-on faire mieux ?)
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
22
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
24
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Relations entre les propriétes de résistance
1
2
3
Formalisation de la sécurité
Définition (Expérience de recherche de collisions Hash-collA,Π (n))
résistance aux collisions ⇒ 2e préimage-résistance
1
résistance aux collisions ne garantit pas la préimage résistance
pour MAC hk ; hk pour des attaques CPA doit être à la fois :
2
2e préimage-résistante et résistante aux collisions
préimage-résistante
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
3
25
Engendrer s par Gen(1n )
l’adversaire A reçoit s et construit x , x � . Si Π est une fonction
�
de compression d’entrées de taille �� (n), x , x � ∈ {0, 1}� (n)
la sortie de l’expérience est 1 ssi x �= x � et hs (x ) = hs (x � ).
Dans ce cas, A a trouvé une collision.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Formalisation d’une fonction de hachage
Log discret, ElGamal et hachage
27
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Formalisation de la résistance aux collisions
Définition
Une fonction de hachage est la donnée de 2 algos PPT (Gen, h)
qui satisfont :
Définition
Une fonction de hachage Π = (Gen,h) est résistante aux collisions
si pour tout adversaire A PPT, il existe une fonction negl tq
Gen est un algo PPT reçevant 1n et produisant s utile pour
choisir une fonction de hachage au sein d’une famille
Pr (Hash-collA,Π (n)) ≤ negl(n)
∃� polynôme tq hs sur l’entrée x ∈ {0, 1}� fournit
hs (x ) ∈ {0, 1}�(n) où n est la valeur du paramètre de sécurité
implicite dans s
C’est la plus forte condition de sécurité qu’on puisse demander à
une fonction de hachage.
Si hs n’est définie que pour des entrée x ∈ {0, 1}� (n) pour
�� (n) > �(n), (Gen, h) est une fonction de hachage à longueur fixée
sur des entrées de taille �� (n) (fonction de compression).
�
Bruno MARTIN, Université de Nice - Sophia Antipolis
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Log discret, ElGamal et hachage
26
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
28
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Attaques
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Quelques attaques de base
contre MDC :
tentatives répétées : une fonction de hachage de long. n a une
robustesse idéale si elle satisfait les bornes sup. de OWHF et
CRHF
OWHF : donné z, trouver x tq h(x ) = z.
CRHF : trouver deux entrées x �= x � tq h(x ) = h(x � ) (attaque
des anniversaires).
recherche exhaustive de clé MAC (KPA) demande 2�k
opérations
contre MAC :
sans connaître k, donnés (xi , h(xi )), calculer x , hk (x )), x �= xi
KPA, CPA, . . .
falsification sélective et existentielle
deviner MAC demande 2n opérations
précalcul d’empreintes http://gdataonline.com/
(beaucoup plus de résultats de sécurité prouvée)
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Log discret, ElGamal et hachage
parallélisation pour 2epréimage
29
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Objectifs de sécurité
Log discret, ElGamal et hachage
31
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Attaque par force brute
En O(|D|) sur h : {0, 1}k × D → {0, 1}n tq (D, <) = (D1 , . . . Dd ).
Algorithme
Type de H
OWHF
CRHF
MAC
Conception
préimage-res
2-préimage-res
rés. collisions
key non-recovery
sécurité calc.
Bruno MARTIN, Université de Nice - Sophia Antipolis
sécurité
2n
2n
2n/2
2n
min{2n , 2�(k) }
Adversaire
trouve préimage
trouve 2e préimage
trouve collision
trouve clé MAC
trouve nouv. MAC.
Log discret, ElGamal et hachage
x1 ← D ; y := hk (x1 )
pour i := 1 . . . d faire
si (hk (Di ) = y ∧ x1 �= Di ) alors
retourne x1 , Di
fsi
retourne echec
U
30
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
32
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Paradoxe des anniversaires
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Fonctions de hachage efficaces
Donnée : B = (b1 , . . . , bk ) ∈ {1, 2, . . . , n}k .
Problème : Proba p qu’il existe au moins 2 élts identiques de B ?
�
��
�
�
� k−1
�
��
1
2
k −1
i
1−p =q =1 1−
1−
... 1 −
=
1−
n
n
n
n
i=1
�
�
1
de tirer b1 ; 1 − n1 proba de tirer b2 �= b1 car P(b2 = b1 ) =
� proba
�
1 − ni proba de tirer bi �= b1 , . . . , bi−1
�k−1
1
�k−1
(k−1)k
i
Comme 1 − x ≤ e −x : q ≤ i=1 e − n = e − n i=1 i = e − 2n .
Passage au logarithme : 2n ln q = −(k − 1)k ⇔ 2n ln q1 ∝ k 2
√
√
√
Pour p > 12 , k ≥ 2n ln 2 et k ∝ O( n) car 2 ln 2 = 1, 17
Exemple : n = 365, k = 23 personnes. (n = 12, k = 5).
Utilité : dimensionner la longueur n de l’empreinte d’une fonction de
hachage pour éviter les collisions.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
1
n
Les plus courantes :
nom
MD5
SHA
;
Log discret, ElGamal et hachage
33
100
50
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
150
75
Log discret, ElGamal et hachage
35
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Dans la plupart des algos, on découpe m en n blocs et on effectue :
message
200
100
Log discret, ElGamal et hachage
vitesse relative
1
0,28
Hachage par compression
valeur
initiale
En calculant > 2n/2 empreintes, on a une collision avec proba > 1/2.
Pour que h soit CR, on choisit n pour que le calcul de 2n/2 images par h
soit irréaliste. A ce jour, n ≥ 128 voire même n ≥ 160.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Bruno MARTIN, Université de Nice - Sophia Antipolis
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Calculer et trier des couples (x , h(x )) pour détecter des collisions.
Combien de couples pour en trouver 2 identiques parmi 2n à p > 1/2 ?
Hyp : les images par h suivent une distribution uniforme.
√
n
Pour k entrées on a p > 1/2 d’avoir une collision avec k ∝ O( 2n ) ≈ 2 2
50
25
tours×étapes
4×16
4×20
A quoi servent-elles et comment sont-elles construites ?
Attaque basée sur le paradoxe de h : {0, 1}� → {0, 1}n
n
k
bits
128
160
34
bloc 1
bloc 2
bloc n
MD5
MD5
MD5
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
valeur
hachée
36
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Construire une fonction de hachage cryptographique
Construction d’une fonction de hachage (Merkle)
Soit r = m − n > 1. On construit h : {0, 1}� → {0, 1}n à partir de
g : {0, 1}m → {0, 1}n (compression).
Soit x ∈ {0, 1}� et � sa longueur en binaire.
compléter x avec des "0" : u = 0i x t.q. |u| ≡ 0 mod r
compléter � avec des "0" : y = 0j � t.q. |y | ≡ 0 mod r −1
découper y en blocs de r − 1 bits et ajouter un "1" au début
de chacun des blocs pour former le mot v
construire w = u0r v composé de t blocs de longueur r .
A partir d’un chiffre symétrique ek , construire une fonction de
compression :
g : {0, 1}m → {0, 1}n
pour m, n ∈ N,
m>n
Etendre la fonction de compression en fonction de hachage :
h : {0, 1}� → {0, 1}n
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Exemple
pour n ∈ N
r = 4, x = 11101, � = 101. On forme u = 0001 1101, v = 1101.
w = 0001 1101 0000 1101 = w1 w2 w3 w4 (t = 4)
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
37
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Construction d’une fonction de compression
Log discret, ElGamal et hachage
39
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Proposition
h est résistante aux collisions si g l’est aussi.
A partir de ek : {0, 1}n × {0, 1}n → {0, 1}n
on construit une fonction de compression
g : {0, 1}n × {0, 1}n → {0, 1}n
H déf. inductive : H0 = 0n ; Hi = g(Hi−1 wi ), 1 ≤ i ≤ t, h(x ) = Ht
Soit (x , x � ) une collision de h, on construit une collision de g.
(x , x � ) = (w1 . . . wt , w1� . . . wt� ) obtenues de H0 , . . . , Ht et H0� , . . . , Ht�� .
On suppose t ≤ t � . Puisque (x , x � ) est une collision de h, Ht = Ht� � .
pour n ∈ N
Hyp : ∃i, 0 ≤ i < t tq Ht−i = Ht� � −i et Ht−i−1 �= Ht�� −i−1 . Alors
Ht−i−1 wt−i �= Ht�� −i−1 wt�� −i et
g(Ht−i−1 wt−i ) = Ht−i = Ht�� −i = g(Ht�� −i−1 wt�� −i ) collision de g.
Le chiffre est utilisée soit directement s’il est résistant aux
collisions soit en le « perturbant » un peu :
Hyp : Ht−i = Ht� � −i pour 0 ≤ i ≤ t. Alors, ∃i, 0 ≤ i < t t.q.
wt−i �= wt�� −i soit pcq |w | =
� |w � | soit pcq w �= w � (sinon h
serait sans collision). Alors,
g(Ht−i−1 wt−i ) = Ht−i = Ht� � −i = g(Ht� � −i−1 wt�� −i ) et
Ht−i−1 wt−i �= Ht� � −i−1 wt�� −i .
g(k, x ) = ek (x ) ⊕ x
g(k, x ) = ek (x ) ⊕ x ⊕ k
g(k, x ) = ek (x ⊕ k) ⊕ x
g(k, x ) = ek (x ⊕ k) ⊕ x ⊕ k
Dobbertin a montré que g de MD5 n’est pas robuste aux collisions.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
38
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
40
Plan
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
MD5c
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Par 64 valeurs d’étapes intermédiaires Qi 0 ≤ i < 64 (4 tours de 16
étapes) tq :
1
Logarithme discret
2
Chiffre d’ElGamal
3
Hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
4
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Ti := Φ(Qi−1 , Qi−2 , Qi−3 ) + Qi−4 + wi + yj
Qi := Qi−1 + (Ti << si )
Q4 := cv0 , Q3 := cv3 , Q2 := cv2 , Q1 := cv1
si et yi ctes dépendant de l’étape, wi le i ebloc de l’expansion initiale du
message (pour 0 ≤ i < 64, wi = mj pour un certain 0 ≤ j < 16).
L’opération + est mod 232 et x << y décalage circulaire x de y
positions à gauche. Initialisation CV cte.
Φi (x , y , z) = F (x , y , z) = (x ∧ y ) ∨ (¬x ∧ z)
Φi (x , y , z) = G(x , y , z) = (x ∧ z) ∨ (y ∧ ¬z)
Φi (x , y , z) = H(x , y , z) = x ⊕ y ⊕ z
Φi (x , y , z) = I(x , y , z) = y ⊕ (x ⊕ ¬z)
A la fin, MD5c calcule :
0 ≤ i < 16
16 ≤ i < 32
32 ≤ i < 48
48 ≤ i < 64
cv0� := cv0 + Q60 , cv1� := cv1 + Q63 , cv2� := cv2 + Q62 , cv3� := cv3 + Q61
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
41
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Fonctionnement MD5
Log discret, ElGamal et hachage
43
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Attaque de Wang et al [4]
MD5 suit la construction MD et sa sécurité est équivalente à celle
de sa fonction de compression MD5c qui produit 128 bits
d’empreinte avec en entrée :
δ0 = (0, 0, 0, 0, 231 , 0, 0, 0, 0, 0, 0, 215 , 0, 0, 231 , 0)
δ1 = (0, 0, 0, 0, 231 , 0, 0, 0, 0, 0, 0, −215 , 0, 0, 231 , 0)
M := M0 M1 de 1024 bits. Pour chaque M, soit M0� = M0 + δ0
(idem pour M1� ) et M � := M0� M1� (additions mod 232 ).
L’attaque de [4] décrit un algorithme efficace pour trouver de tels
M tq MD5(M)=MD5(M � ) en pistant les différences dans les
valeurs étapes intermédiaires par une attaque différentielle
généralisée.
CV : 128 bits de valeur de chaînage = cv0 , cv1 , cv2 , cv3
bloc M de 512 bits
Sur un message M = M0 M1 . . . Mk découpé en blocs de 512 bits,
MD5(m) est calculé inductivement par Hi+1 = MD5c(Hi , Mi ) pour
1 ≤ i ≤ k avec MD5(M)=Hk+1
Bruno MARTIN, Université de Nice - Sophia Antipolis
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
42
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
44
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Notes bibliographiques
Si Qi (resp Qi� ) est la sortie de la i e étape du calcul de M (resp
M � ), Wang produit 128 valeurs (64 par bloc) ai tq si leur méthode
trouve une collision, Qi� − Qi = ai pour tous les Qi calculés
pendant MD5c(M0 ) et MD5c(M0� ) et Qi� − Qi = ai+64 pour les Qi
calculés pendant MD5c(M1 ) et MD5c(M1� ). Ce sont les différentiels
des valeurs ai . Elle donne 4 valeurs supplémentaires qui fixent les
différentiels pour les CV ie les sorties intermédiares des fonctions
de compression ou les sorties de MD5c(M0 ) et MD5c(M0� ).
L’article ne décrit pas la manière de trouver les ai . Cependant, ils
décrivent comment trouver efficacement de tels M en posant les
conditions sur les Qi . Si ces conditions sont satisfaites, alors les
différentiels occurrent avec forte proba. Les détails ont été ensuite
décrits par plusieurs autres chercheurs.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
Beaucoup d’améliorations de cette attaque !
Klima [2] a construit un premier algorithme améliorant
l’attaque de Wang et al. et l’a amélioré : http:
//cryptography.hyperlink.cz/MD5_collisions.html
Joscak http:
//cryptography.hyperlink.cz/2006/diplomka.pdf :
mémoire de master (algèbre) avec étude de la complexité des
attaques
Stevens http://www.win.tue.nl/hashclash/ freewares et
mémoire de master (p.e. pour des collisions X509)
et il y en a encore d’autres (attaques en qques minutes)
45
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Recherche de collisions
Log discret, ElGamal et hachage
47
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Et maintenant ?
Avenir du hachage :
Algorithme
MD5 : no future
SHA-0 : collisions touvées
tant que non collision faire
chercher M qui satisfait la plupart des conditions sur Qi
(germes tirés aléatoirement puis méthodes dét.)
calcul Qi , Qi� pour vérifier la correction des différentiels
collision := (différentiels-validés == vrai)
ftq
retourne M
SHA-1 ; recherche collisions en 269 ; recherche collisions
(over), http:
//boincstats.com/page/project_news.php?pr=sha1
NIST : nouveau concours pour fonctions de hachage
http://csrc.nist.gov/groups/ST/hash/index.html ;
paramètres demandés (deadline était 20081031 !) :
conception : famille de fonctions de 224, 256, 384 et 512 bits
de sortie
compatible avec les standards cryptographiques
sécurité : CR, OW, autres critères de résistance
efficace : au moins aussi rapide que SHA-256
algo exécuté pour chaque bloc de M. Trouve d’abord un bloc M0
qui satisfait les différentiels puis un bloc M1 .
Bruno MARTIN, Université de Nice - Sophia Antipolis
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
Log discret, ElGamal et hachage
46
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
48
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Plan
Vérification de mots de passe
Comparaison par hachage
Vérification de mots de passe
1
Logarithme discret
2
Chiffre d’ElGamal
3
Hachage
Paradoxe des anniversaires
Construction de Merkle-Damgard
Attaques contre MD5
4
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
mdp de A est p et le serveur mémorise p = h(p)
A → B : p sur canal sûr ; B vérifie h(p) = p
sûr tq Eve qui obtiendrait p ne peut retrouver p (OWHF)
attaques possibles par dictionnaire.
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis
Utilisation
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
49
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Log discret, ElGamal et hachage
51
Vérification de mots de passe
Comparaison par hachage
Identification & authentification
identification procédé qui permet de vérifier l’identité d’une entité.
authentification similaire ; permet à une entité d’accéder à une
ressource (comme un compte internet). L’authentification ne met
pas nécéssairement en jeu l’identification d’une entité. Elle
détermine si l’entité est autorisée à accomplir une certaine tâche.
Principales différences
mécanisme de base dans les protocoles cryptographiques
outil essentiel pour des applications
Pour l’identification, le vérificateur teste l’information présentée en
fonction de toutes les entités connues ; pour l’authentification, il faut que
l’information soit vérifiée par une seule entité précédemment identifiée.
L’identification doit identifier de manière unique une entité,
l’authentification ne requiert pas l’unicité.
Exemple : une personne qui se connecte à un compte partagé n’est pas
identifiée de façon unique mais en connaissant le mot de passe partagé,
elle est authentifiée comme un utilisateur du compte.
cryptographiques
et autres...
Bruno MARTIN, Université de Nice - Sophia Antipolis
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
50
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
52
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Mots de passe jetables de Lamport [3]
Fonctionnement des OTP
connu du
système
Application du hachage pour le service de contrôle d’accès.
Accès distant : identification par login/ mot de passe. Un pirate
peut découvrir le mot de passe de l’utilisateur de trois manières
différentes :
1
en accédant aux informations contenues au sein du système,
par exemple en accédant au fichier des mots de passe ;
i
par la divulgation du mot de passe de l’utilisateur si ce dernier
a choisi un mot de passe qu’il est facile de deviner.
Remèdes
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
p1=hN-1(s)
N-1
itération
de h
hN-i+1(s)=h(pi)
pi=hN-i(s)
N-i
h(s)
N
53
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
pN=h0(s)=s
0
fourni par
l'utilisateur
Log discret, ElGamal et hachage
55
Vérification de mots de passe
Comparaison par hachage
Fonctionnement des OTP
On fixe N nombre maximal de connexions et s secret initial. Le
système et l’utilisateur partagent soit une fonction à sens unique
soit une fonction de hachage cryptographique h.
Le i e mot de passe pi est hN−i (s). La suite des N mots de passe de
connexion fournis par l’utilisateur est :
conserver les mots de passe chiffrés. C’est ce qui est réalisé à
l’heure actuelle dans la plupart des systèmes.
ne pas utiliser un unique mot de passe mais une suite de mots
de passe. Méthode utilisée dans les systèmes à mot de passe
jetables (OTP : One time passwords) comme S/Key, Opie ou
encore LogDaemon en faisant appel à une fonction de hachage
cryptographique.
hN−1 (s), hN−2 (s), . . . , h(h(h(s))), h(h(s)), h(s), s
et celle du système pour identifier l’utilisateur par :
De plus en plus appel à des systèmes biométriques
(empreintes vocales, digitales ou rétiniennes).
Bruno MARTIN, Université de Nice - Sophia Antipolis
hN(s)
login
en interceptant l’envoi du mot de passe par l’utilisateur par
l’espionnage de la ligne de connexion ou par un programme
d’espionnage sur l’ordinateur de l’utilisateur ;
Bruno MARTIN, Université de Nice - Sophia Antipolis
Vérification de mots de passe
Comparaison par hachage
Log discret, ElGamal et hachage
hN (s), hN−1 (s), . . . , h(h(h(s))), h(h(s)), h(s)
54
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
56
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Vérification de mots de passe
Comparaison par hachage
Fonctionnement des OTP
Vérification de mots de passe
Comparaison par hachage
Comparaison par hachage
Connexion i/N ; connus du système : hN−i+1 et i n◦ de connexion.
Demande de connexion
Système envoie un défi : numéro de
connexion, i
utilisateur utilise h en fonction de s, N et i :
calcule pi = hN−i (s) et le transmet au système
A (resp. B) possède un grand fichier FA (resp. FB )
ils veulent savoir si FA = FB
Vérification système reçoit pi = hN−i (s), calcule
h(pi ) = h(hN−i (s)) = hN−i+1 qu’il connaît. S’il y a
égalité, il accepte la connexion et mémorise la valeur
pi reçue de l’utilisateur pour la prochaine connexion.
A → B : h(FA ) et B teste h(FA ) = h(FB )
Chaque des mots de passe est la valeur requise par le système pour
la connexion suivante.
Bruno MARTIN, Université de Nice - Sophia Antipolis
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
57
Vérification de mots de passe
Comparaison par hachage
Deux connexions consecutives
connu du
système
h100(s)
1
p1=h99(s)
login
50
p50=h50(s)
Références
connu du
système
h100(s)
1
100-1
itération
de h
h51(s)=h(p50)
51
100
49
h49(s)
h(s)
p100=h0(s)=s
0
fourni par
l'utilisateur
Bruno MARTIN, Université de Nice - Sophia Antipolis
100
X. Wang and H. Yu.
How to break MD5 and other hash functions.
In EUROCRYPT, pages 19–35, 2005.
p100=h0(s)=s
0
fourni par
l'utilisateur
Log discret, ElGamal et hachage
Vérification de mots de passe
Comparaison par hachage
L. Lamport.
Password authentication with insecure communication.
Communications of the ACM, 24(11) :770–772, 1981.
h50(s)=h(p49)
p49=h49(s)
59
V. Klima.
Finding MD5 collisions - a toy for a notebook, 2005.
itération
de h
login
Logarithme discret
Chiffre d’ElGamal
Hachage
Utilité des fonctions de hachage
Log discret, ElGamal et hachage
T. ElGamal.
A public-key cryptosystem and a signature scheme based on discrete logarihms.
IEEE trans. on Info. Theory, 31(4) :469–472, 1985.
p1=h100-1(s) 100-1
50
h50(s)
Bruno MARTIN, Université de Nice - Sophia Antipolis
58
Bruno MARTIN, Université de Nice - Sophia Antipolis
Log discret, ElGamal et hachage
60
Dies ist ein WWF-Dokument und kann nicht ausgedruckt werden!
Das WWF-Format ist ein PDF, das man nicht ausdrucken kann. So einfach können unnötige Ausdrucke von
Dokumenten vermieden, die Umwelt entlastet und Bäume gerettet werden. Mit Ihrer Hilfe. Bestimmen Sie
selbst, was nicht ausgedruckt werden soll, und speichern Sie es im WWF-Format. saveaswwf.com
This is a WWF document and cannot be printed!
The WWF format is a PDF that cannot be printed. It’s a simple way to avoid unnecessary printing. So here’s
your chance to save trees and help the environment. Decide for yourself which documents don’t need
printing – and save them as WWF. saveaswwf.com
Este documento es un WWF y no se puede imprimir.
®
SAVE AS WWF, SAVE A TREE
Un archivo WWF es un PDF que no se puede imprimir. De esta sencilla manera, se evita la impresión
innecesaria de documentos, lo que beneficia al medio ambiente. Salvar árboles está en tus manos. Decide
por ti mismo qué documentos no precisan ser impresos y guárdalos en formato WWF. saveaswwf.com
Ceci est un document WWF qui ne peut pas être imprimé!
Le format WWF est un PDF non imprimable. L’idée est de prévenir très simplement le gâchis de papier afin
de préserver l’environnement et de sauver des arbres. Grâce à votre aide. Définissez vous-même ce qui n’a
pas besoin d’être imprimé et sauvegardez ces documents au format WWF. saveaswwf.com
® WWF International – World Wide Fund For Nature, Gland/Switzerland.