Plan Cryptographie à clé publique II 1 Bruno MARTIN, Université Nice Sophia Antipolis 2 3 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 1 Un autre problème di cile Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 2 DLP : problème du logarithme discret de y en base g Problème Instance : g, y 2 G, groupe fini Question : trouver x tel que g x ydansg ou, pour p un grand premier, g un générateur de G = Z? p, g x y mod p et x = log g (y) mod p Plus généralement, tout y 2 G possède un logarithme discret en base g ssi G cyclique de générateur g. Soit G = Z? 7 groupe cyclique, d ordre 6. 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 : nombre y 1 2 3 4 5 6 logarithme 6 2 1 4 5 3 Par exemple pour nombre = 1 et log = 6. Cela signifie que log 3 1 = 6, ce qu on vérifie par 3 6 mod 7 = 1. Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 3 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 4
Calcul du logarithme discret Shanks S applique à tout groupe fini G. Complexité en temps O( p G log G ) enespaceo( p G ) Idée : construire deux listes de puissances de g : une liste de petits pas {g i : i =0..d p ne 1} avec n = G n une liste de pas de géant y g dp nej : j =0..d p o ne. Puis trouver un terme commun aux 2 listes. Ainsi, g i 0 = y(g j 0d p ne )etm = i 0 + j 0 d p ne Calcul du log. discret de groupes de faible cardinalité facile, opération di cile quand le cardinal de G croît. Shanks Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 5 On travaille dans Z 113 =< 3 > d ordre n = 112 ; p n = r = 11. On cherche le logarithme 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)} 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 est commun aux petits pas et aux grands pas, il a été engendré pour i 0 =1danslalisteB et pour j 0 =9danslalisteL. Le logarithme discret que l on cherchait est x = i 0 + r.j 0 = 100. Vérification : on calcule g x mod 113 = 57. Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 6 Le chi re d El Gamal [1] Algorithme : Entrée : n le cardinal de G,g et y 2 G Sortie : logarithme discret de y en base g dans G. r := d p ne Construire la liste B := {g i : i =0..d p ne 1} Construire la liste L := {y(g dp nej ):j =0..d p ne} Trier les listes B et L selon un ordre sur les g i et les g rj. Trouver i 0 et j 0 tel que : g i 0 = yg rj 0. RETURN(i 0 + j 0 r). Preuve : Pour r = d p ne, 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)) Repose sur le problème du logarithme discret. 1 choisir p premier t.q. DLP est dur dans Z p? 2 choisir 2 Z p? un élément primitif 3 choisir 2 apple a < p 1, la clé privée 4 calculer a mod p 5 clé publique : p,,. Chi rer : E :(x, k) 7! (y 1 = k mod p, y 2 = x k mod p)? pour k aléatoire secret de Z p 1 Déchi rer : (y 1, y 2 ) 7! y 2 (y a 1 ) 1 mod p ElGamal Rockstar Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 7 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 9
Fonctionnement E :(x, k) 7! (y 1 = k mod p, y 2 = x k mod p) k aléatoire secret de Z p 1?. Clair est masqué par k. Valeur de k transmise comme partie du chi ré comme y 1. Bob, avec sk a, calcule k = ak. Comme = a,ilcalcule ( k ) a = k.resteàmultipliery 2 par ( k ) 1 mod p = x. Observons que le chi ré est deux fois plus long que le clair. Soit p = 2579, = 2, a = 765. =2 765 mod 2579 = 949. Alice veut transmettre x = 1299 à Bob. Elle choisit k 2 Z? p = 853 et calcule ( mod 2579) : y 1 =2 853 = 435 y 2 = 1299.(949) 853 = 2396 Bob reçoit (435, 2396) et connait a = 765. Ilcalcule(y 1 ) a mod p = 435 765 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. Di Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 10 culté du logarithme discret Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 11 Computational Di e Hellman CDH G = hgi d ordre p 1, 8y 2 G, 9!x : g x = y (on note x = log g y) DLP : donnés g, y, calculerx dans G. G algo polytime : entrée 1 n retourne G = hgi d ordre p 1. Expérience DLog A,G (n) : lance G(1 n ) pour avoir (G, p, g) (générateur de groupe) y u G A reçoit (G, p, g, y) et retourne x résultat expérience 1 si g x = y sinon 0 Définition (Hypothèse DH) Le pb du log discret est di cile pour G si pour tout algo A PPT, il existe negl : Pr(DLog A,G (n) = 1) apple negl(n) hgi = G y 1, y 2 2 G DH g (y 1, y 2 ) = g log g y 1 log g y 2 y 1 = g x y 2 = g z ) DH g (y 1, y 2 )=g xz =(y 1 ) z =(y 2 ) x CDH = calculer DH g (y 1, y 2 ) pour y 1, y 2 choisis au hasard Si DLP relatif à G facile, CDH aussi Si log discret di cile, CDH di cile? Les problèmes CDH et DDH permettent de construire de bons G Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 12 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 13
Decisional Di ehellmanddh Lemme utile DDH revient à distinguer DH g (y 1, y 2 ) d un élément aléatoire de G : pour y 1, y 2 u G et y 0 une solution, DDH revient à décider si y 0 = DH g (y 1, y 2 ) ou si y 0 u G. Définition DDH est di cile relativement à G si, pour tout algo D PPT, il existe negl. tq Pr(D(G, p, g, g x, g y, g z )=1) pour G(1 n ) qui renvoie (G, p, g) et x, y, z u Pr(D(G, p, g, g x, g y, g xy )=1) apple negl(n) Z p Le multiple d un élément y tiré uniformément est unif. distribué. Ou, y 0 ne contient pas d information sur m. Lemme G groupe fini, m 2 G qcq. Les distrib. de probabilité relatives à : y u Gety 0 := m y y 0 u G sont identiques. Autrement dit, 8ŷ 2 G, Pr(m y =ŷ) =1/]G ŷ 2 G qcq. Alors Pr(m y =ŷ) =Pr(y = m 1 ŷ). Comme y u G, la proba. pour que y soit un élément donné de G est 1/]G Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 14 ElGamal (rappel) Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 15 IND-EAV : PubK EAV A, PubKCPA A, Le chi re d ElGamal est : Gen :1 n 7! G(1 n ) 7! (G, p, g), a u Z? p, := g a ; pk =(G, p, g, )etsk =(G, p, g, a) E : reçoit (pk, m); k u Z? p ; renvoie c =(y 1, y 2 )=(g k, m k ) D : reçoit sk et c =(y 1, y 2 ) ; renvoie m := y 2 (y a 1 ) 1 Théorème Si DDH est di cile pour G, ElGamalestIND-CPA. Comparer fonctionnement de à celui de 0 qui ressemble syntaxiquement à en remplaçant toutes ses sorties par des VA. On montre IND-EAV plutôt que IND-CPA (équivalent). 1 Gen(1 n )produit(pk, sk) 2 A reçoit pk et retourne m 0, m 1 2 M(pk) de même long. 3 b u {0, 1} ; c E pk (m b )etenvoyerc à A 4 A retourne un bit b 0 5 A réussit l expérience (i.e. renvoie 1) ssi b = b 0 Définition est CPA-sûr si, pour tout adversaire A PPT, il existe negl(.) tq : Pr(PubK CPA A, (n) = 1) apple 1 2 + negl(n) On pose : "(n) =Pr(PubK EAV A, (n) = 1) qu il faut évaluer. Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 16 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 17
Le chi re 0, pas déchi rable mais convenable pour A Algo D PPT qui résout DDH relativement à G Gen =Gen rend pk =(G, p, g, )etsk =(G, p, g, a) E : donné (pk, m); y, z u Z? p ;rendc =(y 1, y 2 )=(g y, mg z ) Par le lemme : y 2 unif. distribué sur G et indépendant de m y 1 est unif. distribué et indépendant de m. On ne tire pas d information sur m à partir de c : Pr(PubK EAV A, 0(n) = 1) = 1 2 D reçoit pk et c :(G, p, g, g x = g xy g 3 = g z où x, y, z u Z? p., g y = y 1, g 3 = y 2 )avec pk := (G, p, g, g x = )etappellea pour obtenir m 0, m 1 b u {0, 1} ; y 1 := g y et y 2 := m b g 3 donne (y 1, y 2 )àa qui renvoie b 0 résultat expérience 1 si b 0 = b sinon 0 Deux comportements possibles pour D selon g 3 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 18 g 3 = g z g 3 = g xy par hyp. DDH di A,appeléparD fonctionnera ĉ ds PubK EAV A, 0 (n) sur un chi ré de la forme (g y, mg z ). Donc Pr(D(pk, g y, g z ) = 1) = Pr(PubK EAV A, 0(n) = 1) = 1/2 A,appeléparD fonctionnera ĉ ds PubK EAV A, (n) sur un chi ré de la forme (g y, m(g x ) y ). Donc Pr(D(pk, g y, g z ) = 1) Pr(D(pk, g y, g xy ) = 1) Pr(D(pk, g y, g xy ) = 1) = Pr(PubK EAV A, (n) = 1) = "(n) cile pour G donc 9 negl. tq negl(n) = 1/2 "(n) ) "(n) apple 1/2 + negl(n) Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 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. Dans un BSD sous /etc/moduli. Demander man moduli DESCRIPTION The /etc/moduli file contains prime numbers and generators for use by sshd in the Diffie-Hellman Group Exchange key exchange method. Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 20 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 21
Objectifs des PKI Où se tenir au courant? confidentialité : message chi ré doit rester secret. authentification : assurance de l authenticité (expéditeur/origine) identification : preuve électronique de son identité intégrité : message n a pas été altéré durant la transmission non répudiation : l expéditeur ne peut nier l envoi du message Techniques utilisées signature : moyen d associer l expéditeur à un message certificat : attestation (d un tiers) confirmant une a (d identité) tiers de confiance : autorité qui délivre les certificats rmation estampillage : ajout dates ou jetons! unicité du message Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 22 Tous les standards sont enregistrés dans les PKCS 1 qui se trouvent à http://www.rsasecurity.com/rsalabs/pkcs/ These standards cover RSA encryption, Di e-hellman key agreement, password-based encryption, extended-certificate syntax, cryptographic message syntax, private-key information syntax, and certification request syntax, as well as selected attributes. 1. Public Key Cryptographic Standards Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 23 Cahier des charges But traditionnel de la crypto : assurer la confidentialité. Autre application : les signatures introduites par Di eethellman. But des signatures : garantir intégrité et authentification. Signature dépend de l id. du signataire et du contenu du message. Signature empêche deux types de fraudes : la falsification de la signature par le destinataire ; la non-reconnaissance du message par l expéditeur. Utilisation électronique légale depuis le 29 février 2000 Art.3 :L écrit sur support électronique a la même force probante que l écrit sur support papier Le cahier des charges d une signature S(M) est: elle doit être calculable par le signataire pour tout message M ; tout individu (surtout le destinataire) peut la vérifier ; elle doit être impossible à falsifier ; l expéditeur ne doit pouvoir a rmer que sa signature a été imitée. Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 24 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 25
Mécanisme général de signature Expérience Sig-forge A, (n) Une signature est composée de 3 algos PPT : génération de clés noté gen (pk, sk) fonction de 1 n signature (privée) noté sig qui, pour une clé fixée sk, retourne une signature s pour un clair m ; sig sk (m) =s vérification (déterministe et publique) noté ver qui, à une clé fixée pk et pour tout couple clair/signature (m, s) vavérifier si la signature correspond bien au clair. vrai si s =sigpk (m) ver pk (m, s) = faux si s 6= sig pk (m) Formalise l attaque du faussaire (Adversaire change m et calcule une signature valide en usurpant l identité de Bob). L expérience Sig-forge A, (n) : 1 Gen(1 n )produit(pk, sk) 2 A reçoit pk et l accès à un oracle Sig sk (.) 2. A renvoie (m, s). Soit Q l ensemble des messages pour lesquels A a eu recours à l oracle 3 A réussit l expérience (i.e. renvoie 1) ssi 1 ver pk (m, s) =1et 2 m 62 Q Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 26 Sécurité des signatures Sig-forge A, (n) 2. l oracle fournit sig sk (m) àtoutm choisi par A Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 27 Signer avec RSA Bob désire envoyer un message M signé à Alice. Paramètres RSA : Définition Un mécanisme de signature est existentiellement infalsifiable pour une attaque adaptative à messages choisis si pour tout adversaire A PPT, il existe negl tq : Pr(Sig-forge A, (n) = 1) apple negl(n) Procédé de signature : Vérification : Privés Publics Alice d A n A, e A Bob d B n B, e B sig sk (M) =M d B mod n B = S ver pk (M, S) =vrai, S e B mod n B M Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 28 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 29
d envoi d un message secret signé (RSAKE) Falsification sans message Comment Bob peut-il envoyer à Alice un message secret signé? Fonctions de chi rement et de déchi rement d Alice et Bob : Privés Publics Alice D A (C) =C d A mod n A E A (M) =M e A mod n A Bob D B (C) =C d B mod n B E B (M) =M e B mod n B Bob envoie le message C = E A (D B (M)) Et Alice le déchi re en E B (D A (C)) Pour cela, il faut que M < n B < n A. Faussaire reçoit pk =(n, e), choisit s 2 Z? n calcule m := s e (m, s) valide qui n a pas été signé par le propriétaire de sk! mod n Faussaire n a pas le choix de m mais... que se passe-t-il dans le cas d une authentification par défi? Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 30 Falsification d un message choisi Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 31 C est plus sûr en hachant! Si le faussaire obtient 2 signatures du propriétaire de sk il peut signer un message m de son choix : m 1 u Z? n m 2 := m.m 1 1 mod n obtient s 1 et s 2, signatures de m 1 et m 2 s := s 1 s 2 mod n signe m! Vous acceptez de signer n importe quoi? Et vous savez si votre protocole favori signe ce qu on lui présente? En remplaçant m par h(m), la signature devient plus sûre (hashed RSA signature scheme). Il faut h résistante aux collisions, sinon, on trouve m 1 6= m 2 avec h(m 1 )=h(m 2 ) qui donnent les mêmes signatures. Les 2 attaques précédentes échouent (du fait de CR de h) Utilisé en pratique ; sous certaines hypothèses, prouvé sûr avec SHA-1. Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 32 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 33
Signature Soit p un nombre premier pour lequel DLP est di cile dans Z p et un générateur de Z p. Le message M 2 Z p et sa signature est (M, S) 2 Z p Z p Z p 1.L ensembledesclésest K = {(p,, a, ): = a mod p} Secrets Publics a p,, On choisit k 2 Z p 1 aléatoire et secret qui vérifie gcd(k, p 1) = 1 On définit une signature comme : sig K (M, k) =(, ) pour = k mod p =(M a )k 1 mod (p 1) Soit p = 467 et a = 127. On a bien que gcd(a, p =2unélémentprimitifdeZ p.oncalcule = a mod p =2 127 mod 467 = 132 1) = 1. Soit Si Bob veut signer le message M = 100 pour la valeur aléatoire k = 213 qui est tq gcd(k, p 1) = 1, il calcule k 1 mod p 1 par Euclide étendu qui donne k 1 = 431 alors, et = k mod p =2 213 mod 467 = 29 =(M a )k 1 mod (p 1) = (100 127.29).431 mod 466 = 51 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 34 Fonctionnement Vérification Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 35 Digital Signature Standard DSA 1991 Pour M, 2 Z p et 2 Z p 1, on définit ver K (M,, )=vrai, M mod p Si la signature est construite correctement, la vérification authentifie la signature car : a k mod p M mod p en utilisant le fait que a + k M mod (p 1) On vérifie la signature de (100, 29, 51) par ver K (M,, )=vrai : Variante d El Gamal qui diminue la taille de la signature. DSS-DSA proposé en 1991 par D.W. Kravitz (NSA) ; adopté en 1993. Un module de 512 bits d El Gamal donne une signature de 1024 bits. DSA : avoir une signature plus courte. Par une astuce, DSA raccourcit les tailles en o rant une signature de 320 bits sur un message de 160 bits en impliquant un module de 512 bits. Astuce : travailler dans un sous-groupe de Z p de taille 2 160. M mod p, 132 29 29 51 2 100 mod p 189 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 36 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 37
Fonctionnement de DSS Soit p un premier de 512 bits, q facteur premier de 160 bits de p 1 et racine q e primitive de 1 modulo p tq DLP dans le sous-groupe engendré par est di cile. Message h(m) 2 Z p ; signature : (h(m), S) 2 Z p Z q Z q.l ensembledesclésest K = {(p, q,, a, ): = a mod p} Privé Publics a p, q,, Choisir 1 < k apple q 1 aléatoire et secret ; la signature est : sig K (h(m), k) =(, ) On choisit q = 101 et p = 78q + 1 = 7879. Une racine primitive de Z 7879 est 3 et on peut prendre On suppose que a = 75, on a : =3 78 mod 7879 = 170 = a mod 7879 = 4567 Bob souhaite signer M d empreinte h(m) = 1234 et choisit comme valeur de k = 50. k 1 mod 101 = 99. On a = (170 50 mod 7879) mod 101 = 2518 mod 101 = 94 pour = k mod q =(h(m)+a )k 1 mod q et = (1234 + 75.94)99 mod 101 = 97 La signature du message d empreinte 1234 est alors (94, 97) Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 38 Vérification par DSS Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 39 Inconvénient Pour h(m) 2 Z p et, 2 Z q,ver K (h(m),, )=vrai, ( e 1 e 2 mod p) modq = 1 e1 = h(m) mod q pour 1 e 2 = mod q NB : 6 0 mod q car 1 mod q est nécessaire à la vérification. Si on a 0 mod q, il faut choisir une nouvelle valeur de k. La signature de 1234 est (94, 97) ; vérification : 1 = 97 1 mod 101 = 25 e 1 = 1234.25 mod 101 = 45; e 2 = 94.25 mod 101 = 27 Procédé plus lent que RSA d un facteur compris entre 10 et 40. Générer des clés est plus rapide que pour RSA. Autre inconvénient : une taille de clé de 512 bits est trop petite. C est pourquoi la taille des clés DSA est passée à 1024 bits. La fonction de hachage est aussi en train de changer dans FIPS 186-3 qui devra utiliser SHA-224/256/384/512. La taille des clés évolue aussi : Le grand groupe passe à 2048 ou 3072 bits et le sous-groupe à 224 ou 256 bits. et (170 45 4567 27 mod 7879) mod 101 = 2518 mod 101 = 94 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 40 Bruno MARTIN, Université Nice Sophia Antipolis Cryptographie à clé publique II 41