Intgrit, Authentification Pierre-Alain FOUQUE quipe de Cryptographie cole normale suprieure Initiation la cryptographie 2 Algorithme pour la Factorisation Strassen - Pollard Mthode Rho Mthode p-1 ! Courbe elliptique Carr alatoire ! Crible quadratique ! Crible de corps de nombre Initiation la cryptographie 3 Algorithme de Strassen Algorithme dterministe prouv en temps O(N 1/4 log 2 (N)) B = N 1/4 et f(x) = x(x-1)(x-B+1) ! f(jB) = (jB)!/((j-1)B)! Si pgcd(N,f(jB))>1, alors facteur de N ! recherche exhaustive parmi B valeurs Calcul de pgcd(N,f(jB)) pour j=1, , B en temps O(Blog 2 (B)) Initiation la cryptographie 4 Mthode Rho de Pollard Ide: f:Z N !Z N et x 0 "Z N et x i =f(x i-1 ) #i!1 On espre que x 0 ,x 1 ,x 2 , sera une suite de valeurs de Z N alatoires et indpendantes Si p facteur inconnu de N, on aura une collision mod p si $t et l>0 t.q. x t =x t+l mod p Si N nest pas premier et q un autre facteur, et x i mod N alatoire, alors x i mod p et x i mod q sont indpendants et alatoires (CRT) Improbable x t =x t+l mod q, pgcd(x t- x t+l ,N)=p Mthode heuristique: O(%&p) et f(x)=x 2 +1 Amlioration mmoire: Astuce de Floyd Initiation la cryptographie 5 Mthode p-1 N=pq tq p-1 est B-lisse x B-lisse si tous ces facteurs prem "B Soit Q=' i| q"B q (ln N/ln q) (p-1)|Q, #a"Z* p a Q =1 mod p (Fermat) Alors pgcd(a Q -1,N)=p Temps de calcul: O(B ln N/ln B) mult. mod. ECF: Extension de p-1 p-c car lordre de la courbe est dans lintervalle p+1%& p Cot ECF: L p (1/2,1) o L q (*,c)=O(exp((c+o(1))(ln q) * (ln ln q) 1-* )) Initiation la cryptographie 6 Carrs alatoires Si x 2 =y 2 mod N et x+y mod N, alors pgcd(x-y,N) facteur non-trivial de N Choisir une base de facteur S={p 1 ,p t } ! Trouver des paires (a i ,b i ) tq " a i 2 =b i mod N " b i =' j p j eij e ij !0, (b i est p t -lisse) ! Trouver un sous-ensemble des b i dont le produit est un carr parfait (utiliser de lalgbre creuse) Algorithme de Dixon: ! a i est choisi au hasard et division par les p i Crible quadratique: ! x=(%& N) et q(x)=(x+m) 2 -N. q(x)=x 2 -2mx+m 2 -N,x 2 +2mx ! Si a i =(x+m) avec x petit, b i =(x+m) 2 -N sera petit et p t -lisse avec plus forte proba. Rq: si p i |b i alors (N|p i )=1 Initiation la cryptographie 7 Algorithme pour le Log. Discret Baby-Step Giant-Step Rho de Pollard (sans mmoire) Pohlig-Hellman Initiation la cryptographie 8 Baby Step Giant Step Compromis temps/mmoire Soit n ordre de *, m=-%&n., Si /=* x , x=i0m+j o 0"i,j<m et * x =* im 0* j donc, /(* -m ) i = * j Faire une table avec lensemble des valeurs (j,* j ) et trier suivant * j Prcalculer * -m et matcher /(* -m ) i Cot: O(%& n) mult. mod. et comparaisons Initiation la cryptographie 9 Pohlig-Hellman Si n=' i p i ei , alors pour chaque pi, on peut rechercher lordre mod p i ei On recherche lordre mod p i avec la technique prcdente ou directement x=x 0 +x 1 p i +x i p ei x i aprs lautre x i-1 Finir avec CRT Initiation la cryptographie 10 Notion de scurit Pour dterminer la taille des cls utiliser, on utilise le meilleur algorithme pour casser la primitive et laide de sa complexit C, on value le plus petit entier n tq C(n)!2 80 Aujourdhui, des calculs ont t faits jusqu 2 64 oprations de chiffrement symtrique (DES par exemple) avec 40 000 machines pendant 5 ans 2 80 est le niveau le plus bas 2 128 pour les applications plus sensibles Initiation la cryptographie 11 Record de Factorisation et Log Discret et Consquences Factorisation: ! RSA200: 663 bits en mai 2005 (200 chiffres dcimaux) avec 80 AMD Opteron Log Discret: ! Mod p: en juin 2005 (130 chiffres dcimaux) avec 16 processeurs en un mois ! Dans GF(2 n ) : n=607 et n=613 16 processeurs en 2 mois 1024 bits est un minimum pour RSA et DL sur Z p * Sur EC, on peut prendre p de 160 bits car les algorithmes pour DL sont plus lents Initiation la cryptographie 12 Introduction: scurit prouve Historiquement, la cryptographie a t une course entre les cryptographes et les cryptanalystes Au dbut des annes 1980, on a cherch formaliser et asseoir la cryptographie sur des bases solides Initiation la cryptographie 13 Problme des hypothses On ne sait pas si RSA est quivalent la factorisation (RSA " Fact.) Schma de Rabin: ! E(m)=m 2 mod N o N=pq ! D(c)=CRT(rac. carre mod p, rac. carre mod q) ! Par ex. si p=q=3 mod 4, x 1/2 =x (p+1)/4 mod p Si on sait dchiffrer, alors on sait factoriser ! Si A sait dchiffrer, construire une MT qui utilise A comme sous-routine et factorise Initiation la cryptographie 14 Scurit par rduction Prouver la scurit dun schma: technique des preuves par rduction en complexit ! Si P1 se rduit P2, not P1"P2, et si P1 est difficile, alors P2 sera aussi difficile Rduction vers problmes algorithmiques conjecturs comme difficile (P1) Preuve par labsurde ! On montre que sil existe un adversaire contre le schma cryptographique (algo A), alors il existe un attaquant (algo B) contre le problme algorithmique ! Comme le problme algorithmique est suppos difficile, il nexiste pas dalgo B et donc pas dalgo A Initiation la cryptographie 15 Formalisation dune attaque Description dune attaque en terme de problme algorithmique Adversaire: algorithme But de ladversaire: ce quil cherche faire ! calculer une fonction ou son inverse sur une entre prcise Modle dattaque: les moyens quil a sa disposition ! valeurs entres/sorties de la fonction quil connat Dans certains cas, modliser des fonctions difficiles dcrire en terme mathmatique ! Modle de loracle alatoire (Fonction de hachage = fonction alatoire) Initiation la cryptographie 16 Algorithme efficace Algorithme efficace: MTD probabiliste en temps et mmoire polynomial (PPT) ! Bande supplmentaire externe qui contient des bits gnrs selon une distribution uniforme et indpendamment les uns des autres r"{0,1} t M (x) ! La sortie et le temps dpendent de la valeur r des bits alatoires. M(x,r) et t M (x) sont des VA ! Indpendamment de r, M sarrte aprs t M (x) pas de calculs et donc r est born Pr(M(x,r)=y : r"{0,1} tM(x) ) = |{r"{0,1} tM(x) :M(x,r)=y}|/2 tM(x) Initiation la cryptographie 17 Adversaire et Probabilits Adversaire: algo. PPT ! viter quun adversaire dchiffre ou signe avec proba 1/2 ! On aimerait Pr(A(y)=x : x1Dom, y=E(x)) " 1/2 n o n est la taille de y en bits Probabilit : ! Proba. crasante ! 1-1/p(n) pour tout polynme p et n ! N (par exemple 1-1/2 n ) ! Proba. ngligeable " 1/p(n) pour tout polynme p et n ! N (par exemple = 1/2 n ) ! En pratique, ds que proba. ! 1-1/2 80 (crasante) et proba. " 1/2 80 (ngligeable) Initiation la cryptographie 18 Scurit pratique On veut que les rductions russissent avec la meilleure proba. ! Si on casse avec proba. 2 le schma initial, alors on casse lhypothse algorithmique avec proba. 2=q2 (q nombre de questions par ex) ! or 2=2 61 pour |N|=768 et donc si q=2 60 , alors la preuve nous dit que la proba de casser le schma est 1/2 ce qui est loin dtre ngligeable ! en pratique, il faut donc choisir 2=2 80 , et si q=2 40 , alors 2=2 120 pour |N|=4096 3 moins eff. Preuve fine: 2,2 Initiation la cryptographie 19 Efficacit pratique Pour valuer lefficacit dune rduction, utiliser le rapport T/2 o ! T reprsente le temps de la rduction et ! 2 la probabilit de russite Si le temps de la rduction est trop grand, alors on augmente aussi le temps pour casser lhypothse ! avec plus de temps, on peut casser des modules plus grand par exemple Initiation la cryptographie 20 Intgrit et Authentification Intgrit: garantir que le contenu dune communication ou dun fichier na pas t modifi Authentification: garantir lidentit dune entit (identification) ou lorigine dune communication ou dun fichier (authentification de donnes) ! Non-rpudiation (signature): le signataire ne peut pas dnier sa signature Initiation la cryptographie 21 Identification Pour sidentifier une fois Bob ou Charlie, Alice utilise une fonction sens unique et leur envoie y=f(x) Pour sidentifier, Alice envoie x Pour se faire passer pour Alice, Charlie doit calculer x tq f(x)=f(x) Si un tel adversaire existe, alors on a casser la fonction sens unique Initiation la cryptographie 22 Identification Multiple Pour sidentifier n fois auprs du mme serveur, on utilise OTP (One-Time Password) Soit f une fonction sens unique (fonction de hachage par exemple H), On choisit x alatoire et on calcule y n =f n (x) (n fois f), on envoie y n au serveur La i-ime fois, on envoie x n-i tq f(x n-i )=y n-i et le serveur remplace y n-i par x n-i Initiation la cryptographie 23 Signature Proprits garanties: Intgrit des donns transmises Authentification de lmetteur (preuve de connaissance de la cl secrte) Non-rpudiation Similaire au MAC mais avec de la cl publique Initiation la cryptographie 24 Schma de signature G(1 n ): PPT algo. de gnration de cl S sk (m): PPT algo. de gnration de signature V pk (m,s): algo. de vrification valeur {0,1} ! 1 =signature valide, 0 =signature invalide Pour tout m"M n , V pk (m,S sk (m))=1 Initiation la cryptographie 25 Buts de ladversaire Cassage total: retrouver la cl secrte Falsification : Un schma de signature S est dit difficile falsifier (contrefaire) si: Falsification universelle (algo. quivalent signer) Falsification slective (falsifier certains messages dtermins lavance) Falsification existentielle (falsifier au moins un message - exemple: RSA) Pr[A(m)=s : (sk,pk)1G(1 n ),m1M n ,V pk (m,s)=1] 4negl(n) Initiation la cryptographie 26 Modle de scurit Moyens: ! Attaque messages connus ! Attaque messages choisis gnrique (indpendamment de la cl) ! Attaque messages choisis orient ! Attaque messages choisis adaptative (CMA) Notion de scurit: Association entre ! Le but de ladversaire: ce quil cherche faire pour casser le systme ! Les moyens dy parvenir ! Exemple: EF-CMA, Pr[A(m)=s : (sk,pk)1G(1 n ),m1M n ,m+m i , s i 1A S (m i ), V pk (m,s)=1] 4 negl(n) Initiation la cryptographie 27 Signature de Lamport A partir de nimporte quelle OWF, schma de signature sr contre une seule signature Pour signer un message de k bits: m=m 1 m k On gnre 2k valeurs x i j alatoires dans le domaine dentre de f et les images y i j =f(x i j ) Cl publique: {y i j } i=1,.., k pour j=0 et 1 Cl secrte: {x i j } i=1,.., k pour j=0 et 1 Signature: x 1 m 1 x 2 m 2 x k m k Th: Si on sait casser signature avec proba 2, on sait inverser f avec proba 2/2 Initiation la cryptographie 28 Signature padding fixe RSA PKCS#1 v1.5 avec padding fixe x=00||FFFFFFFFFFFFFFFFFFF||H(M) o H est une fonction sur 160 bits et s=x d mod N Si on casse la fonction de hachage, alors on peut casser EF-CMA Initiation la cryptographie 29 Signature RSA f(x)=x e mod N et son inverse g(x)=x d mod N Cl publique: f ou de manire quivalente (e,N) Cl secrte: g ou (d,N) H une fonction de hachage de {0,1}* vers Z N S(m)=g(H(m))=s V(m,s)=(f(s)==H(m)) Si H:{0,1}*!Z N , le schma est appel FDH (Full Domain Hash) Rem: Si on ne hache pas m, falsification existentielle (m=s e mod N, s) est un couple message-signature valide !!! Initiation la cryptographie 30 Scurit Th: Dans le modle de loracle alatoire, RSA-FDH est EF-CMA ! Preuve: Supposons quil existe un adversaire F contre le schma RSA-FDH avec proba. non ngligeable 5(n), on peut construire un adversaire I qui inverse RSA avec proba. 2(n)>5(n)/(q H +q S ) o q H est le nombre de questions loracle H et q S le nombre loracle de signature Initiation la cryptographie 31 Scurit Th: Dans le modle de loracle alatoire, le schma RSA-FDH est EF-CMA ! Preuve: Supposons quil existe un adversaire F contre le schma RSA-FDH proba. non ngligeable 5(n), on peut alors construire un adversaire I qui inverse RSA avec proba. 2(n)> 5(n)/q S (n) o q S (n) est le nombre de questions loracle S Initiation la cryptographie 32 Schmas de signature bass sur des preuves ZK Les preuves ZK permettent de construire des schmas dauthentification Prouver la connaissance dune cl secrte Les signatures garantissent en plus lintgrit dun document et la preuve dauthentification est attache au msg Initiation la cryptographie 33 Heuristique Fiat-Shamir Ex. Signature Schnorr Soit p un nombre premier, q un grand diviseur premier de p-1 et g un gnrateur du sous-groupe dordre q P a une cl secrte x et une cl publique y=g x mod p Signature: choisir k1Z q , et r=g k mod p c=H(p,q,g,r,m) et s=k+xc mod q Signature: (m,(c,s)) Vrification: H(p,q,g, g s 0y -c ,m)=c Initiation la cryptographie 34 Schma de signature DSA Soit p un nombre premier, q un grand diviseur premier de p-1 et g un gnrateur du sous-groupe dordre q P a une cl secrte x et une cl publique y=g x mod p Signataire: k1Z q , et r=(g k mod p) mod q s=(xr+H(m))/k mod q Signature: (m,(r,s)) Vrification:u=H(m)/s et v=r/s et vrifie si r==(g u y v mod p) mod q Initiation la cryptographie 35 Signature base sur DDH G un groupe dordre q premier PK=(g,h,y 1 ,y 2 ) tq y 1 =g x "G et y 2 =h x "G SK=x Sign(m)=(c,s) tq c=H(PK,A,B,m)"Z q , s=cx+r mod q Ver(m,(c,s))=1 si c==H(PK,A,B,m) o A=g s y 1 -c et B=h s y 2 -c Initiation la cryptographie 36 Conclusion Les preuves par rduction ne sont pas des preuves absolues (modulo lhypothse algorithmique) Elles donnent cependant confiance dans le schma sil ny a pas dattaque dans ce modle Est-ce que le modle couvre toutes les attaques ?