DLP – sa cryptanalyse – son utilisation - PolSys
Transcription
DLP – sa cryptanalyse – son utilisation - PolSys
DLP – sa cryptanalyse – son utilisation Guénaël Renault Sorbonne Universités UPMC, INRIA, CNRS LIP6 Part I Motivation : L’échange des clés à l’essor de l’informatique et... plus tard UPMC – SFPN –CryptoM2 2/45 Réseaux de communication se mettent en place 1950 Les premiers ordinateurs commerciaux, cryptographie basée sur la taille des clés, Théorie de Shannon. 1970 Réseaux numériques, standardisation du DES (chiffrement symétrique) par la NSA 1970 L’ordinateur devient un outil pour toutes les entreprises Problème : l’échange des clés UPMC – SFPN –CryptoM2 3/45 Problématique Un nombre énorme de clés à gérer et échanger ! Bob Alice Henry Fred Gil Eve Ines Dan Jean Carl Ken +Il faut un moyen sûr d’échanger chaque clé au préalable ! UPMC – SFPN –CryptoM2 4/45 Directions !in Cryptogra Échanger une clé sans jamais New se rencontrer Invited +En 1976, Diffie, Hellman et Merkle publient le premier schPaper éma de d’échange de clés à l’aide de la notion de cl é publique qu’ils Whitfield Diffie and Martin E. Hellm énoncèrent. Abstract Two kinds of contemporary developments in cryptography are examined. Widening applications of teleprocessing have given rise to a need for new types of cryptographic systems, which minimize the need for secure key distribution channels and supply the equivalent of a written signature. This paper suggests ways to solve these currently open problems. It also discusses how the theories of communication and computation are beginning to provide the tools to solve cryptographic problems of long standing. 1 INTRODUCTION We stand today on the brink of a revolution in cryptography. The development of cheap digital hardware has freed it from the design limitations of mechanical computing and brought the cost of high grade cryptographic devices down to where UPMC – SFPN –CryptoM2 communications o raphy to insure pri communicating pa one else. This is do secure channel su private conversatio tance is a common unrealistic to expe long enough for ke The cost and dela is a major barrier to large teleproces Section III prop information over p mising the security enciphering and d and D, such that5/45 co Échanger une clé sans jamais se rencontrer ! Soit p un premier et g un élément de Z/pZ bien choisi. Ces deux éléments sont connus de tous. Les entiers a et b doivent être tenus secrets +Nécessite deux transactions sur un canal non sécurisé pour l’échange de la clé commune K . UPMC – SFPN –CryptoM2 5/45 Coût de la mise en pratique (cryptographie) +En tout, les deux entités ont à calculer 4 exponentiations mod p. En utilisant un algorithme d’exponentiation modulaire rapide, le coût total dépend de la taille du module p. Complexité échange de clé par Diffie-Hellman Si l’on souhaite échanger une clé de taille ` il faudra faire O(4 log3 (`)) opérations binaires. UPMC – SFPN –CryptoM2 6/45 Sécurité de cette échange (cryptanalyse) Etant donné y = ex ∈ R Il est facile de calculer x (il suffit de calculer un log dans R) UPMC – SFPN –CryptoM2 7/45 Sécurité de cette échange (cryptanalyse) Etant donné 192 = g x mod 449 (g = 3 générateur du groupe cyclique) Il est difficile de calculer x UPMC – SFPN –CryptoM2 7/45 Sécurité de cette échange (cryptanalyse) Etant donné 192 = g x mod 449 (g = 3 générteur du groupe cyclique) Il est difficile de calculer x +Il s’agit du problème du calcul du logarithme discret (DLP). UPMC – SFPN –CryptoM2 7/45 DLP actuel +Repose sur des mathématiques récemment étudiés ( ˜ 40 ans) +Nécessité de bien les comprendre pour éviter les trous de sécurité ! UPMC – SFPN –CryptoM2 8/45 Preuve récente sur l’utilité de bien comprendre... +En janvier 2011, une équipe de hackers allemands ont démontré qu’une très grand entreprise informatique utilisait des cryptosystèmes sans les comprendre... ERROR! UPMC – SFPN –CryptoM2 9/45 Preuve récente sur l’utilité de bien comprendre... +En janvier 2011, une équipe de hackers allemands ont démontré qu’une très grand entreprise informatique utilisait des cryptosystèmes sans les comprendre... ERROR! UPMC – SFPN –CryptoM2 9/45 Preuve récente sur l’utilité de bien comprendre... +Affaire Snowden, un générateur aléatoire dû à la NSA pas très convainquant ! UPMC – SFPN –CryptoM2 10/45 Part II Le DLP en toute généralité UPMC – SFPN –CryptoM2 11/45 Le DLP : vision générale Définition Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret (noté DLP) dans le sous-groupe H = hgi de G est défini comme suit: Étant donné h ∈ H Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ? Notations Pour g ∈ G et t ∈ N on notera l’opération d’exponentiation de g en t par : [t]g = g ◦ · · · ◦ g, t fois On peut généraliser à t ∈ Z en posant [−t]g l’inverse de [t]g. UPMC – SFPN –CryptoM2 12/45 Le DLP : vision générale Définition Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret (noté DLP) dans le sous-groupe H = hgi de G est défini comme suit: Étant donné h ∈ H Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ? Notations Pour g ∈ G et t ∈ N on notera l’opération d’exponentiation de g en t par [t]g = g ◦ · · · ◦ g, t fois. Cette notations permet d’homogénéiser les notations, par exemple : Si (G, ×) on a [t]g = g × · · · × g = g t Si (G, +) on a [t]g = g + · · · + g = t · g UPMC – SFPN –CryptoM2 12/45 Le DLP : vision générale Définition Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret (noté DLP) dans le sous-groupe H = hgi de G est défini comme suit: Étant donné h ∈ H Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ? Définition Le logarithme discret en base g de h est défini par k = logg (h) avec h = [k ]g UPMC – SFPN –CryptoM2 12/45 Part III Résolution du DLP en toute généralité UPMC – SFPN –CryptoM2 13/45 Brute force attack Problématique Étant donnés : un groupe fini cyclique H = hgi dans lequel on peut calculer facilement; un élément h dans H. On cherche un entier t tel que h = [t]g. +On peut se limiter à t ∈ {1, . . . , #H}. Recherche exhaustive On testera 2log(#H) valeurs de t différentes. La complexité de résolution du DLP s’exprime en fonction de la taille de #H (la taille en bit de la représentation d’un élément). UPMC – SFPN –CryptoM2 14/45 Exemples ou le DLP est facile Groupe additif modulaire Ici H = (Z/nZ, +) le groupe modulaire additif. On a H = hgi et donc pgcd(g, n) = 1. Groupe additif : h = [t]g = t · g mod n Ici on peut calculer facilement logg (h). Preuve de la résolution du DLP dans ce cas 1 pgcd(g, n) = 1 ⇒ on peut calculer g −1 mod n par Bézout 2 on retrouve t facilement : logg (h) = h · g −1 mod n La complexité binaire de cette attaque est quadratique en la taille de n (qui est bien la taille de #H). +Pour résoudre facilement un DLP, on peut essayer de se ramener à cet exemple. UPMC – SFPN –CryptoM2 15/45 Résolution du DLP par transfert additif Transfert additif Soit H le groupe cyclique choisi pour support au DLP. Il faut pour un tel transfert: Isomorphisme entre H et Z/|H|Z qu’il soit explicite et que l’on puisse calculer efficacement l’image/image inverse d’un élément par ce dernier Le DLP sera facile dans H si l’on connait un tel isomorphisme. (On envoie le problème dans Z/nZ avec l’isomorphisme, on le résout grâce à Bézout et on remonte le résultat dans H toujours grâce à l’isomorphisme.) UPMC – SFPN –CryptoM2 16/45 Complexité générique Définition On appelle groupe générique (ou en boite noire) un groupe dont on ne connaı̂t pas la structure mais avec lequel on peut réaliser des calculs. En particulier, si (H = hgi, ◦) et h ∈ H sont donnés en boite noire, tous les calculs de la forme [a]h ◦ [b]g sont possibles et on peut tester les égalités. Théorème [Shoup 97] La résolution du DLP dans un groupe générique nécessite au moins p |H| opérations dans H Existe-t-il un algorithme optimal dans le cas générique? +Simplification : connaissance de n = |H|. UPMC – SFPN –CryptoM2 17/45 Baby-Step Giant-Step de Shanks : idée générale Soit n l’ordre du groupe H = hgi et h ∈ H. +l’entier t = logg (h) vérifie 1 < t < n. √ Division euclidienne par s = b nc + 1; t = q·s+r avec 0 6 q, r < s Recherche exhaustive sur q et r d’une collision h = [t]g = [q ·s +r ]g ⇒ h ◦[−q ·s]g = [r ]g et h ◦[−r ]g = [q ·s]g +Le principe reste le même si l’on sait mieux encadrer t (1 < t < m << n) UPMC – SFPN –CryptoM2 18/45 BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9 h g e UPMC – SFPN –CryptoM2 19/45 BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9 h 9 8 76 UPMC – SFPN –CryptoM2 5 4 3 2 1 g e 19/45 BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9 h 9 8 76 5 4 3 2 1 g e [−1 · s]g ◦ h [−2 · s]g ◦ h UPMC – SFPN –CryptoM2 19/45 BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9 [−4 · s]g ◦ h h 9 8 76 [−3 · s]g ◦ h 5 4 3 2 1 g e [−1 · s]g ◦ h UPMC – SFPN –CryptoM2 19/45 BSGS : deux tableaux Input : Le générateur g du groupe H d’ordre n et h ∈ H \ {e}. Output : Un entier 0 < t < n tel que h = [t]g. √ s := b nc + 1; for i := 1 to s do BS[i] := [i]g; // Tableau de Baby-Steps GS[i] := [i]([−s]g) ◦ h; // Tableau de Giant-Steps end for; //Recherche Collision T := Sort(BS cat GS); for i := 1 to s do if T [i] == T [i + 1] then break end if; end for; return s× Index(T [i],GS) + Index(T [i],BS) UPMC – SFPN –CryptoM2 20/45 BSGS : table de hachage Input : Le générateur g du groupe H d’ordre n et h ∈ H \ {e}. Output : Un entier 0 < t < n tel que h = [t]g. √ s := b nc + 1; for i := 1 to s do Hash[[i]g] := i; // Table de hachage des Baby-Steps end for; i := 0; γ := h; while true do //Giant-Steps if not(Hash[γ] == NULL) then return i × s+ Hash[γ]; else i := i + 1 γ := γ ◦ [−s]g end if end while UPMC – SFPN –CryptoM2 21/45 BSGS : complexités +Complexité donnée en fonction de log(#H) = log(n) Deux tableaux vs Table de hachage √ √ 1 Complexité calcul : O( nlog( n)) = O(2 2 log(n) log(n)) vs 1 O(2 2 log(n) ) √ Complexité mémoire : O( n) Remarques Le premier algorithme générique de complexité optimale √ Nécessite une place mémoire de taille n pour la table de hachage Nécessite la connaissance de n = |H| mais on peut s’en passer Ils existent des variantes de cet algorithme qui permettent de descendre la complexité en mémoire mais pas en calcul (rho de Pollard en particulier) UPMC – SFPN –CryptoM2 22/45 Attaque par CRT et par écriture p-adique Pohlig-Hellman Dans le cas d’un groupe générique H d’ordre = p1e1 p2e2 · · · pkek il est P n√ possible de résoudre le DLP dans H en O( ei pi ) calculs dans G. +Au tableau Corollaire important Si l’on souhaite que le DLP soit difficile, il faut choisir un groupe H d’ordre possédant au moins un très grand facteur premier. UPMC – SFPN –CryptoM2 23/45 Application CTF Crypto-5 – HackingWeek 2014 Afin d’établir une communication sécurisée, Alice et Bob procèdent à un échange de clef Diffie-Hellman. Pour cela ils utilisent le nombre premier p: p:=792936869162503088675628465772053403364000392906151396078658735156365298207001526858084303505657 Et l’entier g: g:=731141113522952887744628147981293740784599336915130972113272170588929032940457604906740698587866 Alice choisit en secret un nombre x, calcule X = g x le canal, Charlie récupère la valeur de X et de Y: mod p et envoie X sur un canal non sécurisé à Bob. blabla En espionnant X:=537106952043235135093377339090215625473507408450283231952255920597624359552971105918480198780508 Y:=175484627423381555519844295880083858644289209731698473897305632688527764218191302125210590414633 La clef de cette épreuve est le md5sum de la valeur de Z . +Seuls 9 candidats ont trouvé la solution. Le problème peut être résolu en quelques secondes avec Magma! UPMC – SFPN –CryptoM2 24/45 Part IV DLP sur les corps finis UPMC – SFPN –CryptoM2 25/45 Corps premiers et corps finis : Propriétés Groupe multiplicatif d’un corps fini L’ensemble F× des inversibles de Fpk muni de la multiplication est un pk groupe. Il est d’ordre pk − 1. Groupe cyclique et son générateur Le groupe F× est cyclique. Il existe donc α ∈ F× tel que αi 6= 1 pour pk pk tout 0 < i < pk − 1 et vérifiant hαi = {1 = α0 , α1 , α2 , . . . , αp k −1 = 1} = F× . pk Un tel élément α est appelé élément primitif du corps Fpk . UPMC – SFPN –CryptoM2 26/45 Corps finis et DLP Exemple important en Crypto : DLP sur Fpk G est le groupe multiplicatif d’un corps fini Fpk . G = F× est cyclique (on peut donc prendre G = H). pk Il n’existe pas d’algorithme de complexité polynomiale pour résoudre ce DLP pour les corps premiers Transfert additif et grand facteur premier 1 2 → Z/(pk − 1)Z. Mais pas d’algo connu pour Isomorphisme φ : F× pk l’expliciter : aussi difficile que le DLP. pk − 1 doit posséder un grand facteur premier (attaque par CRT). UPMC – SFPN –CryptoM2 27/45 Corps finis et DLP : BSGS de Shanks p = 809 on veut calculer log3 525. Ici H ' Z/(p − 1)Z et donc s = 29. Baby-steps: (j, 525 × (3j )−1 mod p) (j = 0, . . . , 28): ( 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 ) Giant-steps: (j, 3j∗s mod p) (j = 0, . . . , 28): ( 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 ) +t = s × 10 + 19 = 309 UPMC – SFPN –CryptoM2 28/45 Part V Index Calculus UPMC – SFPN –CryptoM2 29/45 Calcul d’indice (Kraitchik ˜ 1930) +Dans la pratique le groupe G n’est pas si générique que ça ! +Introduit pour les corps finis Existent ils des algorithmes de complexité O(|G|C ) avec C < 1/2? Si oui, quels sont les groupes permettant cela ? Que dois-je savoir calculer en plus dans G ? On veut pouvoir obtenir facilement des relations de la forme ⊕si=1 [ki ]gi = eG UPMC – SFPN –CryptoM2 30/45 Calcul d’indice L’idée clé dans G = hgi Soit une base B = {π1 , . . . , πnB } d’éléments privilégiés B ⊕nj=1 [ej ]πj = eG ⇒ nB X ej logg (πj ) = 0 mod |G| j=1 Les ei sont “faciles”à calculer ZnB /L ' G UPMC – SFPN –CryptoM2 (Φ : (e1 , . . . , enB ) 7→ [e1 ]π1 ⊗ · · · [enB ]πnB ) 31/45 Calcul d’indice Principe : résolution du DLP +On cherche α, β tel que [α]g ⊕ [β]h = eG Supposons que l’on connaisse une base B = {π1 , . . . , πnB } tel que ai logg (g) + bi logg (h) = nB X ej logg (πj ) mod |G| j=1 On a au moins nB telles relations indépendantes ; les ei sont faciles à calculer en fonctions des ai , bi . Alors on peut résoudre un système linéaire en les ei et trouver une relation de dépendance entre les ai logg (g) + bi logg (h) ! UPMC – SFPN –CryptoM2 32/45 Calcul d’index : algorithme Input : Le générateur g du groupe G d’ordre n et h ∈ G. Output : Un entier t < n tel que h = [t]g. 1 On construit i = 1, . . . , nB relations indépendantes B [ai ]g ⊕ [bi ]h = ⊕nj=1 [ei,j ]πj 2 On forme la matrice e1,1 . . . e1,nB .. .. A = ... . . enB ,1 . . . enB ,nB 3 et les vecteurs a = (ai ), b = (bi ), π = (πi ). On résoud le système xA = 0 4 mod |G| (on trouve au moins un élément dans le noyau) On obtient t le résultat à partir de x, a et b UPMC – SFPN –CryptoM2 33/45 Calcul d’indice : algorithme Les solutions On a par définition (at , bt ) × (g, h)t = A × π t et donc en posant α = xat et β = xbt on a : xAπ = eG ⇒ (α, β) × (g, h)t = eG ⇒ [α]g ⊕ [β]h = eG On obtient finalement logg (h) = − UPMC – SFPN –CryptoM2 α β mod |G| 34/45 Calcul d’indice : applications +Il faut trouver une base de facteurs et une décomposition efficaces Corps premiers : on remonte dans Z et on factorise selon de petits premiers Corps non premiers : on remonte dans Fp [x] et on factorise selon de petits polynômes irréductibles UPMC – SFPN –CryptoM2 35/45 Calcul d’indice : analyse Propriétés nB trop petit ⇒ difficile de trouver les relations. nB trop grand ⇒ étape d’algèbre linéaire prohibitif. La matrice A est très creuse ⇒ Wiedemann, Lancsoz. +On cherche une borne B pour avoir de bonnes propriétés. Théorème récent Dans le cas de corps finis de petites caractéristique Barbulescu, Gaudry, Joux, Thomé ont montré en 2014 que cette approche pouvait être rendue de complexité quasi-polynomiale. +Cette approche pour les corps premiers est sous-exponentielle +Ces résultats récents reposent sur l’étude des bases de Gröbner UPMC – SFPN –CryptoM2 36/45 Part VI Groupes des points rationnels sur courbes elliptiques UPMC – SFPN –CryptoM2 37/45 Courbes elliptiques +Lieu géométrique ! Sur K = Fpk avec p > 3 Pour a et b dans K vérifiant ∆ := −16(4a3 + 27b2 ) 6= 0 On définit la courbe elliptique Ea,b sur K par l’ensemble des points (x, y) ∈ K2 vérifiant l’équation: y 2 = x 3 + ax + b +Définition équivalente dans le cas de la caractéristique 3 et 2. UPMC – SFPN –CryptoM2 38/45 Courbes elliptiques sur R2 UPMC – SFPN –CryptoM2 39/45 Courbes elliptiques sur Fp , p = 389, y 2 = x 3 − x + 1 UPMC – SFPN –CryptoM2 40/45 Structure de groupe Ea,b = Ea.b ∪ O UPMC – SFPN –CryptoM2 41/45 Structure de groupe Ea,b = Ea.b ∪ O Groupe additif commutatif de la courbe Soit P1 = (x1 , y1 ), Q = (x2 , y2 ) ∈ Ea,b Point à l’infini O est l’élément neutre : P +O =O+P =P Si x2 = x1 et y2 = −y1 alors P + Q = O P + Q = (x3 , y3 ) avec x3 = λ2 − x1 − x2 y3 = λ(x1 − x3 ) − y1 et λ = 3x12 +a 2y1 si P = Q et λ = y2 −y1 x2 −x1 sinon. +Ne pas oublier de rajouter le point à l’infini pour former le groupe ! UPMC – SFPN –CryptoM2 41/45 Un exemple concret On étudie le groupe construit avec K = F11 et E1,6 : y 2 = x 3 + x + 6. Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation quadratique modulo 11. Pour faciliter ce travail, on peut commencer par lister l’ensemble des carrés dans K. y 0 ±1 ±2 ±3 ±4 ±5 z = y 2 mod 11 0 1 4 9 5 3 UPMC – SFPN –CryptoM2 42/45 Un exemple concret On étudie le groupe construit avec K = F11 et E1,6 : y 2 = x 3 + x + 6. Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation quadratique modulo 11. Pour faciliter ce travail, on peut commencer par lister l’ensemble des carrés dans K. y 0 ±1 ±2 ±3 ±4 ±5 z = y 2 mod 11 0 1 4 9 5 3 UPMC – SFPN –CryptoM2 x 0 1 2 3 4 5 6 7 8 9 10 z = x 3 + x + 6 mod 11 6 8 5 3 8 4 8 4 9 7 4 z 11 -1 -1 1 1 -1 1 -1 1 1 -1 1 y ±4 ±5 ±9 ±9 ±3 ±9 42/45 Un exemple concret On étudie le groupe construit avec K = F11 et E1,6 : y 2 = x 3 + x + 6. Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation quadratique modulo 11. Pour faciliter ce travail, on peut commencer par lister l’ensemble des carrés dans K. y 0 ±1 ±2 ±3 ±4 ±5 z = y 2 mod 11 0 1 4 9 5 3 x 0 1 2 3 4 5 6 7 8 9 10 z = x 3 + x + 6 mod 11 6 8 5 3 8 4 8 4 9 7 4 z 11 -1 -1 1 1 -1 1 -1 1 1 -1 1 y ±4 ±5 ±9 ±9 ±3 ±9 +12 points rationnels + le point à l’infini = un groupe d’ordre 13, donc cyclique engendré par tout élément autre que le neutre. UPMC – SFPN –CryptoM2 42/45 Exemple concret Calculons explicitement avec K = F11 , E1,6 : y 2 = x 3 + x + 6. Soit P = (2, 7) on veut calculer [2]P = P + P et [3]P. λ (3 × 22 + 1)(2 × 7)−1 mod 11 2 × 3−1 mod 11 2 × 4 mod 11 8 = = = = [2]P = (82 − 2 − 2 mod 11, 8(2 − 5) − 7 mod 11) = (5, 2) Pour [3]P on a [3]P = [2]P + P, on calcule l’autre λ λ = = = = [3]P = (22 − 5 − 2 UPMC – SFPN –CryptoM2 (7 − 2)(2 − 5)−1 mod 11 5 × 8−1 mod 11 5 × 7 mod 11 2 mod 11, 2(5 − 8) − 2 mod 11) = (8, 3) 43/45 Structure de groupe pour K = Fq avec q = pk et p > 3 Théorème de Hasse Soit q = pk . √ √ q + 1 − 2 q 6 |Ea,b | 6 q + 1 + 2 q Théorème de structure (Ea,b , +) ' (Z/d1 Z × Z/d2 Z, +) où d1 divise d2 et d1 divise q − 1. En d’autres termes, le groupe construit à partir d’une courbe elliptique est soit cyclique (le cas d1 = 1), soit le produit de deux groupes cycliques. +Pour la cryptographie on choisit des courbes elliptiques telles que (Ea,b , +) soit cyclique (le cas d1 = 1) ou au moins contient un grand groupe cyclique (Pohlig-Hellman). UPMC – SFPN –CryptoM2 44/45 Avantages des courbes elliptiques +Pas d’adaptation efficace connue du calcul d’indice! Pas d’attaque connue de complexité sous-exponentielle L’arithmétique peut être rendue très efficiace Clés plus petites pour des sécurités équivalentes UPMC – SFPN –CryptoM2 45/45