ELGamal Andreea Dragut (dragut@unvmed.fr) Cours de cryptographe Chaptre IV 4.0.1 Fonctons conjecturées à sens unque : Le problème du logarthme dscret Defnton. Un groupe cyclque G, est un groupe dans lequel l exste un élément g tel que tout élément du groupe pusse s exprmer sous forme d un multple/pussance de g, cet élément g est appelé générateur du groupe et on note G =< g >. En notaton addtve : (G, +) [n]g En notaton multplcatve : (G, ) g n Defnton. Sot G un groupe et g G, alors le groupe sous-groupe H généré par g, noté H =< g >, est le plus pett sous-groupe de G contenant g. Defnton. L ordre d un élément g d un groupe G est l ordre du sous-groupe H =< g > généré par cet élément. L ordre de g est noté ordre(g) ou o(g). S l ordre est fn, l est le plus pett enter m > 0 En notaton addtve : mg = 0 En notaton multplcatve : g m = 1 On peut dre que s l ordre de g est fn ordre(g) = H = < g > la cardnalté sous-groupe H =< g > généré par g. Exemple. Trouver l ordre de l élément 2 dans F 11 = (Z/11Z) = {1, 2,..., 10} le groupe multplcatf de restes modulo 11 F 17 = (Z/17Z) = {1, 2,..., 16} le groupe multplcatf de restes modulo 17 Dans F 11 nous avons 2 0 = 1, 2 1 = 2, 2 2 = 4, 2 3 = 8, 2 4 5, 2 5 10, 2 6 9, 2 7 7, 2 8 3, 2 9 6. Mas 2 10 1 et on commence à répéter les éléments. Donc ordre(2) = 10 et l génère tout le groupe G. Dans F 17 nous avons 2 0 = 1, 2 1 = 2, 2 2 = 4, 2 3 = 8,2 4 = 16, 2 5 15, 2 6 13, 2 7 9. Mas 2 8 1 et on commence à répéter les éléments. Donc 2 n est pas un générateur pour 1
F 17. Il génére que le sous-groupe H =< 2 >= {1, 2, 4, 8, 9, 13, 15, 16} et son ordre est la cardnalté de ce sous-groupe, donc 8. Le problème DLP peut être formulé pour un groupe générque H et < g >= G H. On va étuder après le DLP sur des groupes partculers : le groupe multplcatf (Z/pZ) et le groupe addtf de courbes ellptques. Pour certans groupes le problème du logarthme dscret est dffcle : sot on ne connaît aucun algorthme sous-exponentel qu résout le problème DLP, sot on ne connaît aucun algorthme qu résout le problème DLP pour des talles grandes (dsons de 1024 bts et plus). Defnton. [Le problème du logarthme dscret DLP] Sot H un groupe et g un générateur d ordre p d un sous-groupe G H. Étant donnés A G, trouver x tel que A = g x log g (A) = x. Le système de chffrement El Gamal est basé sur le problème du logarthme dscret, c est à dre d nverser l exponentelle modulare. Il a été créé par Taher Elgamal. Cet algorthme est utlsé par GNU Prvacy Guard et de récentes versons de PGP. La clé prvée de de ElGamal est a. La clé publque de ElGamal est A = g a (mod p), où g H avec un ordre p grand. Décrypter clé publque de ElGamal en partant de sa clé publque revent à résoudre un problème du logarthme dscret pour y = A. Créaton d un paramètre publque Un ters part de confance Trent : H le groupe chos g H avec un ordre p grand Créaton de clé on chost 1 a p 1. on calcule A = g a (mod p) on puble la clé publque (H, p, g, A) Cryptage Input : la clé publque (H, p, g, A) le message m une clé éphémère k calcul : y 1 = g k (mod p) y 2 = m A k (mod p) Output : (y 1, y 2 ) 2
Décryptage Input : la clé prvée a le message chffré (y 1, y 2 ) calcul : (y a 1) 1 y 2 (mod p) Théorème. [El Gamal fonctonne correctement] Sot H un groupe et g un générateur d ordre p d un sous-groupe G H (donc G a p éléments). Sot la clé prvée a tel que 1 a p = ord(g). Sot le message x et une clé éphémère k. En calculant A = g a (mod p), y 1 = g k (mod p), y 2 = m A k (mod p) selon l algorthme du ElGamal nous avons que (y a 1) 1 y 2 x (mod p) Preuve. On peut calculer (y a 1) 1 parce que avec la clé prvée on peut calculer d abord z = y a 1 (mod p) et après z 1 (mod p). (y a 1) 1 y 2 (g ak ) 1 (m A k ) (g ak ) 1 ( m(g a ) k) parce que A = g a (mod p) donc (y a 1) 1 y 2 m (mod p). Algorthmes générques pour résoudre le problème DLP Proposton. Sot G un groupe et g G un élément d ordre N p = ord(g). Le problème DLP :trouver x tel que g x = A peut être résolu en O(N) = O(S x ) pas. Preuve. On génère par multplcaton successve la lste des valeurs S x pour x = 0, 1,..., N 1. S l exste une soluton g x = A on va la retrouver dans la lste. Le problème DLP et l algorthme de Shanks peuvent être formulés pour un groupe générque H et < g >= G H. Proposton. [Shanks pas de bébé, pas de géant] Sot (G, ) un groupe et g G un élément d ordre N > 2 (pour H = G = Z p, N = p 1. L algorthme suvant résout le problème DLP en O( N log N) pas. 1. sot s = 1 + N > N 2. calculer g s 3. créer deux lstes L 1 e, g, g 2, g 3,..., g s A, A g s, A g 2s, A g 3s,..., A g s2 L 2 4. trouver une occurence commune g r0 = A g k 0 s 5. x = r 0 + k 0 s est une soluton pour g x = A. Complexté d attaque de Shanks : O(s log s) O( N log N) créer les deux lstes : 2s multplcatons 3
s une occurrence commune exste, on peut la trouver en O(log s) Preuve. On utlse le théorème d Euclde. Sot x 0 la soluton du DLP g x = A. Alors, ls exstent k 0, r 0 enters tels que x 0 = sk 0 + r 0, 0 r 0 < s, donc 1 x 0 < N. q 0 = x 0 r 0 s < N s < s, parce que nous avons chos s < N. On peut réécrre g x 0 = A comme L 1 g r 0 = A g k 0 s, L 2, 0 r < s, 0 k < s. Donc chaque lste a au plus s éléments. Réducton à un problème connu Supposons que dans le groupe G on peut résoudre (DLP) g x = A (mod ord(g) = p) faclement (c.à-d. en complexté sous-exponentelle). Alors, dans un groupe plus genéral on essaye de rédure faclement le (DLP) dans le groupe H à pluseurs problèmes (DLP) g x = A (mod ord(g) = p) dans des sous-groupes de type G =< g >, avec ord(g) = p un enter premer. Ce derner problème étant smlare au (DLP) g x = A (mod ord(g) = p). 1. G =< g > avec ord(g) = p k : en construsant g pk 1 qu est un élément d ordre p. 2. G =< g > avec ord(g) = p k 1 1,..., p kn n : en construsant g = g N/pk qu est un élément d ordre ord(g ) = p k et en utlsant le théorème des restes chnos pour assembler les solutons. Proposton. Sot G un groupe, p un nombre premer, g G. Il faut S p pas pour résoudre le problème DLP p : g x = h et ord(g) = p Alors s ord(g) = p k l faut O(kS p ) pour résoudre DLP g x = h. Preuve (ébauche). Sot x la soluton du DLP. x = x 0 + x 1 p + + x pk 1 k 1 ord(g pk 1 ) = p élever à la pussance p k 1, donc h pk 1 = (g x ) pk 1 = (g x 0+x 1 p+ +x k 1 p k 1 ) pk 1 = g0p x k 1 (g pk ) }{{} =1 = (g pk 1) x 0 x 1 +x 2 p+ +x k 1 p k 1 (DLP p facle) :(g pk 1 ) x 0 = h pk 1, g pk 1 G et son ordre est ord(g pk 1 ) = p 4
Pour détermner x 1, l faut élever à la pussance p k 2. Donc h pk 2 = g x 0p k 2 g xpk 1 1 (g pk 1 ) x 1 = (h g x 0 ) pk 2 Proposton. Sot G un groupe et g G, ord(g) = N = p k 1 1 p kt t. Sot un algorthme qu résout DLP k p en O(S p k ) pas, alors DLP g x = h peut être résolu dans O( t =1 S p k +log N) pas. Algorthme Pohlng Hellmann 1. Pour chaque 1 t, g = g N/pk (mod N) et h = h N/pk z sot z la soluton du DLP g = h. (mod N), ord(g ) = p k est 2. on résout le système x z 1 (mod p k 1 1 ). x z t (mod p kt t ) Preuve. Le premer pas prend O( k S p ) et le système du théorème des restes chnos prend O(log N) pas. S x est la soluton du système de congruences pour chaque l exste un w enter et x = z + p k w. (g x ) N/pk = g (z +p k = g Nz p k w ) N p k g Nw = g Nz p k (g N ) w g N 1 (mod N) parce que ord(g) = N ( N ) z p = g k N = g z p = h = h k Donc N x N log p k p k g h (mod N). ( ) N Parce que pgcd = 1 pour tout j, nous avons qu l exste les enters α 1,..., α t donc p k, N p k j j t =1 donc x = log g h (mod N). α N p k α 1 N p k 1 1 x + + α t N p kt t t =1 = 1 N α log p k g (h) (mod N) 5
El Gamal sur ((Z/nZ) = Z/nZ, +), (F p = Z/pZ, ) Le problème du logarthme dscret en (Z/nZ) = Z/nZ, ) est dffcle, mas pas autant que dans un groupe générque. En (Z/nZ), ) on connaît des algorthmes sous-exponentels pour le résoudre, comme l algorthme de calcul d ndex. Dans un groupe générque on dot se contanter des algorthmes de Shanks et Pohlng et d autres, mas qu sont tous exponentels. Cec a des conséquences sur la talle du groupe à utlser pour que le problème DLP reste dffcle. Le nombre premer p dot avor au mnmum 1024 bts pour le (Z/nZ), pour assurer la même sécurté qu un groupe générque d ordre ayant 160 bts. Rappel sur le groupe (F p = Z/pZ, ) Proposton. L anneau Z/nZ est un corps s, et seulement s, n est un nombre premer. Plus, pour tout nombre premer p, F p est le seul corps de cardnal p. La structure du groupe multplcatf de Z/pZ est celle d un groupe abelén fn cyclque d ordre φ(p) = p 1. Théorème. [racne prmtve/générateur] Sot p premer. Alors l exste g F p tel que (F p, ) = {1, g,..., g p 2 }. L ordre de g est ord(g) = F p = p 1. Corollare. (du Th. Lagrange) Sot p un enter premer. Sot G =< g > (F p, ) et ord(g) = G = q. Alors q/p 1. Exemple. F 11 : 2 0 = 1, 2 1 = 2, 2 2 = 4, 2 3 = 8, 2 4 5, 2 5 10, 2 6 9, 2 7 7, 2 8 3, 2 9 6, 2 10 1, mas 2 n est pas un générateur pour Z 17. Exemple. Le groupe multplcatf F 11 a la cardnalté 10, donc les ordres des elements de Z 11 sont : 1, 2, 5, 10. Defnton (DLP Problème du logarthme dscret en (F p = Z/pZ, )). Sot p premer, g un générateur (racne prmtve) de F p, et h F p. DLPp : trouver 1 x p 1 tel que g x = h (mod p). Le nombre x s appelle le logarthme dscret de h en base g. Remarque. log g F p Z p 1 est une foncton ben défne, et log g (ab) = log g (a) + log g (b), a, b F p. Remarque. S DLPp a une soluton, l a a une nfnté. S x 0 est une soluton, on a g x 0 = h. Mas selon le pett théorème de Fermat, g p 1 1 (mod p). Donc x 0 + k(p 1), avec k enter, est auss une soluton. 6
Exercce. Coder A = 01,B = 02,...,Z = 26. Un mot devenne une sequence de nombres (AB = 0102 = 102, OB = 1502). Sot p = 150001, g = 7,a = 113 tel que a k = 7 113 66436 (mod p). La clé publque est(p, g, A) = (150001, 7, 66436). La clé prvée est a = 113. Sot le message H Mom : x 1 = 0809 = 809 et x 2 = 131513. Cryptage : Sot la clé éphémère k = 1000. On calcule y 11 = g k 7 1000 90429 (mod 150001). Donc y 1 = 90429. On calcule y 21 = x 1 A k = 809 (7 113 ) 1000, donc y 21 809 66436 1000 809 4654 15061 (mod 150001) et y 2 2 = x 2 A k = 131513 (7 113 ) 1000 57422 (mod 150001). On transmet les deux pares (90429, 15061) et (90429, 57422). Décryptage : On calcule (y a 11) 1 y 21 (90429 113 ) 1 15061 (mod 150001), Donc (y a 11) 1 y 21 4654 1 15061 80802 15061 809 (mod 150001). Exercce. A résoudre en utlsant le logcel de calcul modulare de http ://ptrow.com/perl/calculator.pl (a) Sot p = 541, g = 2, a = 113 et k = 101. Crypter x = 200 and x = 201 en utlsant ElGamal. (b) Sot p = 541, g = 2, a = 101. Décrypter les chffrés ElGamal y = (54, 300) and y = (54, 301). Exercce. Sot F 13 Sot p = 13, g = 2,a = 7. On calcule la clé publque A = a k = 2 7 11 (mod 13). La clé publque est(p, g, A) = (13, 7, 11). La clé prvée est a = 113. Sot le message : x = 3. Cryptage : Sot la clé éphémère k = 5. On calcule y 1 = g k 2 5 6 (mod 13). On calcule y 2 = x A k = 3 (11) 5, donc y 2 3 7 8 (mod 13). On transmet la pare (6, 8). Décryptage : On calcule (y a 1) 1 y 2 (6 7 ) 1 8 7 1 8 2 8 3 Exercce. Calculer log 3 525 en H = Z/(p 1)Z, p = 809. Donc n p + 1 = 29. Pas de bébé : (j, 525 (3 j ) 1 (mod p) pour j = 0,, 28 : L 2 : ( 0, 525 ) ( 1, 175 ) ( 2, 328 ) ( 3, 379 ) ( 4, 396 ) ( 5, 132 ) ( 6, 44 ) ( 7, 554 ) ( 8, 724 ) ( 9, 511 ) ( 10, 440 ) ( 11, 686 ) ( 12, 768 ) ( 13, 256 ) ( 14, 355 ) ( 15, 388 ) ( 16, 399 ) ( 17, 133 ) ( 18, 314 ) ( 19, 644 ) ( 20, 754 ) ( 21, 521 ) ( 22, 713 ) ( 23, 777 ) ( 24, 259 ) ( 25, 356 ) ( 26, 658 ) ( 27, 489 ) ( 28, 163 ) Pas de géant : (j, 3 j s (mod p)) pour j = 0,, 28 : L 1 : ( 0, 1 ) ( 1, 99 ) ( 2, 93 ) ( 3, 308 ) ( 4, 559 ) ( 5, 329 ) ( 6, 211 ) ( 7, 664 ) ( 8, 207 ) ( 9, 268 ) ( 10, 644 ) ( 11, 654 ) ( 12, 26 ) ( 13, 147 ) ( 14, 800 ) ( 15, 727 ) ( 16, 781 ) ( 17, 464 ) ( 18, 632 ) ( 19, 275 ) ( 20, 528 ) ( 21, 496 ) ( 22, 564 ) ( 23, 15 ) ( 24, 676 ) ( 25, 586 ) ( 26, 575 ) ( 27, 295 ) ( 28, 81 ) Donct = 10 p + 1 + 19 = 309 Attaques : El Gamal en (F p) Le problème DLP est facle à résoudre pour F p : un algorthme du type calcul d ndex résout le problème en temps sous-exponentel. 7
Remarque. Parce que F p = p 1 pour p premer l est donc toujours pare. Donc c est meux de chosr p = 2q + 1 avec q un nombre premer large. Exemple. On résout 5448 x = 6909 dans Z 11251 Le nombre premer p = 11251 a la proprété que p 1 est dvsle par 5 4, et l est facle de vérfer que 5448 a l ordre exactement 5 4 dans Z 11251. Le premer pas est la résoluton de ( 5448 53) x 0 = 6909 5 3, ce qu se rédut à 11089 x 0 = 11089. Cette équaton est facle la soluton est x 0 = 1, donc notre valeur ntale pour x est x = 1. Le pas suvant est la résoluton de ( 5448 53) x 1 = (6909 5448 x 0 ) 52 = (6909 5448 1 ) 52, ce qu se rédut à 11089 x 1 = 3742. Remarquons qu l sufft de vérfer seulement des valeurs de x 1 entre 1 et 4, même s dans le cas où q serat grand, l serat plus convenable d utlser un algorthme plus rapde comme celu de Shanks avec les pas de bébé-pas de géant pour résoudre ce problème de logarthme dscret. De toutes manères, la soluton est x 1 = 2, donc la valeur de x est mantenant x = 11 = 1 + 2 5. Contnuant, nous résolvons mantenant ( 5448 53) x 2 = (6909 5448 x 0 x 1 5 ) 5 = (6909 5448 11 ) 5, ce qu se rédut à 11089 x 2 = 1. Donc x 2 = 0, ce qu veut dre que la valeur de x reste à x = 11. Le pas fnal est la résoluton de ( 5448 53) x 3 = 6909 5448 x 0 x 1 5 x 2 5 2 = 6909 5448 11. Cec se rédut à résoudre 11089 x 3 = 6320, ce qu a la soluton x 3 = 4. Donc notre réponse fnale est x = 511 = 1 + 2 5 + 4 5 3. Pour vérfer le résultat, on peut calculer 5448 5 11 = 6909 dans Z 11251. Exemple. Consdérons le problème de logarthme dscret 23 x = 9689 dans Z 11251. 8
q e g (p 1/qe ) h (p 1/qe ) Résoltn ( g ) (p 1/qe ) x = h (p 1/q e) pour x 2 1 11250 11250 1 3 2 5029 10724 4 5 4 5448 6909 511 Table 4.1 Tros sous-problèmes du logarthme dscret La base 23 est une racne prmtve dans Z 11251, c est-à-dre elle a l ordre 11250. Comme 11250 = 2 3 2 5 4 est un produt de nombres premers petts, l algorthme de Pohlg-Hellman devrat fonctonner ben. Dans la notaton de sa descrpton, on pose p = 11251, g = 23, h = 9689, N = p 1 = 2 3 2 5 4. Le premer pas est la résoluton de tros sous-problèmes de logarthme dscret, comme ndqué dans la table 4.1. Remarquons que le premer problème est trval, tands que le trosème problème est le problème qu on vent de résoudre dans l exemple 4.0.1. De toutes manères, les problèmes ndvduels dans ce pas de l algorthme peuvent être résolus avec Shanks. Le second pas est l utlsaton du théorème des restes chnos pour résoudre les congruences smultanées x 1 (mod 2), x 4 (mod 3 2 ), x = 511 (mod 5 4 ) La plus pette soluton est x = 4261. On vérfe notre réponse en calculant 23 4261 = 9689 dans Z 11251. Exemple. Illustrer la méthode pas-de-bébé-pas-de-géant (babystep-gantstep) en l utlsant pour résoudre le problème du logarthme dscret g x = h dans Z p avec g = 9704, h = 13896, et p = 17389. Le nombre 9704 a l ordre 1242 dans Z 17389. Sot n = 1242 + 1 = 36 et u = g n = 9704 36 = 2494. La table 4.2 donne les valeurs de g k et h u k pour k = 1, 2,...,. Depus la table on trouve la collson 9704 7 = 14567 = 13896 2494 32 dans Z 17389. Utlsant le fat que 2494 = 9704 36, on calcule 13896 = 9704 7 2494 32 = 9704 7 (9704 36 ) 32 = 9704 1159 dans Z 17389. Par conséquent, x = 1159 résout le problème 9704 x = 13896 dans Z 17389. 9
k g k h u k 1 9704 347 2 6181 13357 3 5763 12423 4 1128 13153 5 8431 7928 6 16568 1139 7 14567 6259 8 2987 12013 k g k h u k 9 15774 16564 10 12918 11741 11 16360 16367 12 13259 7315 13 4125 2549 14 16911 10221 15 4351 16289 16 1612 4062 k g k h u k 17 10137 10230 18 17264 3957 19 4230 9195 20 9880 13628 21 9963 10126 22 15501 5416 23 6854 13640 24 15680 5276 k g k h u k 25 4970 12260 26 9183 6578 27 10596 7705 28 2427 1425 29 6902 6594 30 11969 12831 31 6045 4754 32 7583 14567 Table 4.2 Pas-de-bébé-pas-de-géant pour résoudre 9704 x 13896 (mod 17389) El Gamal Courbes ellptques On s nteresse aux courbes ellptques élémentares en forme d équaton de Weerstrass. Defnton. Sot a, b R. Une courbe ellptque E(a,b) est une courbe algébrque du trosème degré (cubque) (c.à-d l ensemble des ponts (x, y) R R et un pont à l nfn) vérfant l équaton : y 2 = x 3 + ax + b (mod p) où a, b R tels que δ := 16(4a 3 + 27b 2 ) 0, c.à-d où le second membre, polynôme du 3ème degré en x, n a pas de soluton double. La quantté δ s appelle le dscrmnant de la courbe. Le graphe d une courbe ellptque depend du sgne du dscrmnant : postf : l présente deux composantes (Ex : y 2 = x 3 x, δ := 64, le polynôme cubque x 3 + ax + b a exactement tros racnes réelles dstnctes) négatf :l présente deux composantes (Ex : y 2 = x 3 x + 1, δ := 368, le polynôme cubque x 3 + ax + b a exactement une racne réelle) 10
Fgure 4.1 Courbes ellptques Addton sur les courbes ellptques : Théorème (Bézout). Deux courbes algébrques projectves planes C,D de degrés m et n, défnes sur un corps algébrquement clos et sans composante rréductble commune, ont exactement mn ponts d ntersectons, comptés avec multplctés. Par deux ponts dstncts P, Q stués sur une courbe ellptque passe une drote ben défne. Comme consequence une drote sécante passant par deux ponts d une courbe ellptque recoupe la courbe en un trosème pont (dstnct ou non). Ce pont est consderé la somme P+Q.(vor fgure 4.2). Lemme 1. Sot a, b R. Les ponts ratonnels d une courbe ellptque E(a,b) forment un groupe abélen E(a, b) avec l operaton d addton suvante : Sot P = (x 1, y 1 ), Q = (x 2, y 2 ) E(a, b). S P = O alors P + Q = P S Q = O alors P + Q = Q S x 2 = x 1 et y 2 = y 1 alors P + Q = O Autrement P +Q = (x 3, y 3 ) avec x 3 = λ 2 x 1 x 2, y 3 = λ(x 1 x 3 ) y 1, où λ = 3x 2 1+a 2y 1 s P = Q et λ = y 2 y 1 x 2 x 1 snon. Donc Le pont à l nfn O est l élément neutre : P + O = O + P = P L nverse de P = (x 1, y 1 ) est Q(x 1, y 1 ), P + Q = Q + P = O 11
Fgure 4.2 Addton courbes ellptques P + Q = (x 3, y 3 ) avec x 3 = λ 2 x 1 x 2, y 3 = λ(x 1 x 3 ) y 1, où λ = 3x2 1 +a 2y 1 s P = Q et λ = y 2 y 1 x 2 x 1 snon. La proprété d assocatvté peut être drectement vérfe. Pour la multplcaton scalare sur E(a, b) on utlse la notaton suvante : P, [2]P = P + P, [3]P = [2]P + P,..., [n]p = [n 1]P + P. Les résultats précédents sont encore valables lorsque le corps de défnton de la courbe ellptque est F k p avec p > 3. On denote le groupe correspondant par E(a, b, p). Pour les applcatons en cryptographe les asymetrque l nous faut : une manère effcace de calculer [n]p, un sous-groupe cyclque de E(a, b, p), connaître/approxmer l ordre du groupe E(a, b, p) et les ponts ratonnels, évaluer la dffculté du problème du logarthme dscret/factorsaton. Pour calculer np l y a l algorthme Double and Add qu est très smlare à celu de l exponentaton pour RSA avec addtons à la place des multplcatons. Pour calculer On decompose [k]p d abord en bnare k = t k 2, où k 0, 1 et t = [log 2 k], k t = 1. Après [2](...([2]([2]([2]([2]([2]P + [k (l 1) ]P ) + [k (l 2) ]P ) + [k (l 3) ]P ) +... ) + [k 1 ]P ) + [k 0 ]P La ordre du groupe pour K = F p k = Z p k Z = [2 l ]P + [k (l 1) 2 l 1 ]P + + [k 1 2]P + [k 0 ]P avec p > 3 est donnée par le résulta suvant : Théorème (Hasse). Sot q = p k alors q + 1 2 q E(a, b, p) q + 1 + 2 q et l algorthme de Schoof permet de détermner le nombre de ponts sur une courbe ellptque. Théorème ( Tsfasman-Voloch-Ruck Théorème de structure). Sot q = p k. Le groupe E(a, b, p) est sot un groupe cyclque sot somorphe avec un produt de deux groupes cyclques Z/uZ/ Z/vZ où u pgcd(v, q 1) 12
Système de cryptage ellptque à clé publque ElGamal sur E(a, b, p) Créaton de paramètre publque Une entté de confance chost et puble un nombre premer p (large), une courbe ellptque E sur Z p k et un pont P dans E(a, b, p) Créaton de clé Chosr une clé prvée n A. Calculer Q A = n A P dans E(a, b, p) Publer la clé publque Q A Cryptage Chosr le texte en clar x E(a, b, p). Chosr une clé éphémère k Utlser la clé publque d Alce Q A pour calculer y 1 = kp E(a, b, p) et y 2 = x + kq A E(a, b, p). Envoyer le texte chffré (y 1, y 2 ). Décryptage Calculer y 2 n A y 1 E(a, b, p). Cette valeur est égale à x Le système de cryptage ellptque à clé publque El Gamal fonctonne très ben, mas l présente quelques dffcultés d ordre pratque : 1. Il n ya pas de manère évdente pour attacher des messages en clar à des ponts de E(F p ). 2. Le système de cryptage ellptque El Gamal a un taux d expanson de message de 4- pour-1, tands que le système de cryptage sur F p El Gamal a un taux d expanson de message de 2-pour-1. Les avantages de l utlsaton du problème du logarthme dscret sur des courbes ellptques sont gue DLP est dffcle sur le groupe assocé à une courbe ellptque (c.à.d. qu l n y a pas d attaque connue de complexté sous-exponentelle) et que les clés peuvent être plus pettes pour assurer un nveau de sécurté équvalent : RSA 1024bts versus ECC 160bts. Pour le problème de factorsaton (c.à-d. la décomposton en produt de facteurs enters premers) sur les courbes ellptques l y a parm d autres l algorthme probablste de Lenstra qu a une complexté sous-exponentelle. 13
Class Talle typque de clé Exemples Clé publque 1024-2048 bts (non courbe-ellptque) 163-233 bts (courbe ellptque) Dffe-Hellman, ElGamal, DSA Clé symétrque 128-256 bts DES, AES Hash N/A SHA, MD5 Table 4.3 Types d algorthmes et leur talles de clé actuelles 14