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.