In Nouvelles Méthodes Mathématiques en Cryptographie, Fascicule Journées Annuelles, pages 23–53. Société Mathématique de France, June 2007. ALGORITHMES POUR RÉSOUDRE LE PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS par Antoine Joux & Reynald Lercier Résumé. — Avec la publication d’un grand nombre de schémas cryptographiques à base d’accouplements de Weil sur courbes elliptiques ou à base de tores algébriques, la résolution du problème du logarithme discret dans le groupe multiplicatif d’un corps fini fait l’objet d’un intérêt renouvelé. Dans ce texte, nous nous intéressons à trois algorithmes récents qui permettent de résoudre ce problème en toute généralité, sans limitation sur le degré ou la caractéristique du corps, et qui sont de complexités similaires à celles des algorithmes connus pour les corps premiers et les corps de caractéristique deux. Abstract (Algorithms to solve the finite field discrete logarithm problem) Numerous publications on the use in cryptography of elliptic curve Weil pairings and algebraic torus renew interest in solving the finite field discrete logarithm problem. In this article, we state three recent algorithms to solve this problem in full generality, without any limit on the degree or the characteristic of the field, and with the same complexities as those known for prime or characteristic two fields. Table des matières 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Algorithmes de type « Index calculus ». . . . . . . . . . . . . . . . . . . . . . . . . . 3. Algorithmes pour les corps de caractéristiques fixées. . . . . . . . . . . . . 4. Algorithmes pour les corps de degrés fixés. . . . . . . . . . . . . . . . . . . . . . . 5. Algorithmes pour les corps de caractéristiques et degrés variables 6. Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Références. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 8 15 24 29 30 Classification mathématique par sujets (2000). — 11T99, 11Y05, 11Y16, 12E20, 68Q25, 94A60. Mots clefs. — Cryptographie, Complexités d’Algorithmes, Corps Finis, Logarithmes Discrets. 1 2 ANTOINE JOUX & REYNALD LERCIER 1. Introduction Soit G un groupe fini cyclique et g l’un de ses générateurs, alors pour tout élément y de G, il existe un entier positif x tel que y = g x . Le plus petit de ces entiers est appelé l’index, ou le logarithme discret, de y en base g. Il est souvent noté logg (y). De façon analogue à la fonction du logarithme népérien, la fonction logg satisfait modulo le cardinal de G la formule logg yz = logg y + logg z dont une application immédiate permet de ramener le calcul de la loi de groupe à une addition. Obtenir le produit de deux éléments d’un corps fini par cette technique est séduisant, mais il est apparu très vite que cela est inapproprié pour des corps de grandes tailles, car il n’est plus possible de calculer par avance une table. En fait, si d’un point de vue algorithmique, calculer y à partir de x est facile, en particulier par la méthode communément appelée « exponentiation binaire » [21], l’inverse est aujourd’hui considéré comme difficile pour certains groupes. La cryptologie, avec l’invention de la cryptographie à clef publique au milieu des années 70, a su tirer parti de cette difficulté. On cherche à y mettre en évidence des algorithmes et protocoles cryptographiques ayant, d’un côté une complexité petite, fonction polynomiale de la taille de la clef, et d’un autre côté une sécurité essentiellement équivalente à la résolution d’un problème pour lequel aucun algorithme de complexité polynomiale en la taille de la clef n’est connu. Les schémas de type oaep [5] sont typiques de cette démarche. On dispose d’une réduction qui ramène leur sécurité au problème de la non inversibilité de la permutation à trappe rsa [4], dont l’étude nécessite de quantifier précisément la difficulté de factoriser le produit de deux nombres premiers. Les meilleurs algorithmes connus pour la factorisation d’entiers N étant d’une part de complexité asymptotique sous-exponentielle, égale à √ 3 1 2 e( 64/9+o(1)) ln 3 N ln 3 ln N pour le crible algébrique [26], et d’autre part de complexités réelles connues sur des instances précises (cf. Tab. 1 où l’unité « gips years » correspond approximativement à un ordinateur effectuant un milliard d’opérations élémentaires par seconde pendant un an), on peut en déduire ce que seraient les complexités réelles pour des entiers de tailles bien supérieures à ceux que l’on peut espérer attaquer. En confrontant ensuite le résultat à des heuristiques sur les puissances de calculs réalisables dans le futur, à partir d’estimateurs comme, par exemple, la loi de Moore selon laquelle à coût égal les capacités des ordinateurs doublent tous les 18 mois, on arrive à des propositions motivées pour les tailles de clefs. Pour illustrer, nous donnons en troisième ligne de Tab. 2 extrait de [28], des dimensionnements rsa recommandables pour les années futures. Le protocole interactif de négociation de clef dû à Diffie-Hellman [12] et ses nombreux dérivés à des fins, entre autres, de chiffrement ou de signature, motivent de même l’étude de familles de groupes finis de toutes tailles qui sont à la fois « pratiques » et « sûrs ». On doit disposer d’algorithmes de complexité polynomiale, pour d’abord, étant donnée une taille d ln ` e, obtenir une représentation explicite d’un PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS Nombre Taille (chiffres) c116 rsa-120 rsa-129 rsa-130 rsa-140 rsa-155 c158 rsa-160 rsa-576 c176 rsa-640 rsa-200 116 120 129 130 140 155 158 160 174 176 193 200 Quand Juin Avril Avril Fév. Août Janv. Mars Déc. Mai Nov. Mai 1990 1993 1994 1996 1999 1999 2002 2003 2003 2005 2005 2005 Complexité (gips year) Méthode Qui 0.3 0.8 5 1 2 8 3.4 2.7 13 49 80 170 mpqs mpqs mpqs nfs nfs nfs nfs nfs nfs nfs nfs nfs Lenstra et al. Lenstra et al. Lenstra et al. Lenstra et al. Lenstra et al. Lenstra et al. Franke et al. Franke et al. Franke et al. Aoki et al. Franke et al. Franke et al. 3 Table 1. Records de factorisation d’entiers groupe G à ` éléments, et pour ensuite évaluer la loi de groupe, tout en s’assurant au contraire que la résolution du problème du logarithme discret, ou de l’une de ses variantes Diffie-Hellman, nécessite des algorithmes de complexité non polynomiale. En fait, les meilleurs algorithmes génériques pour calculer des logarithmes dans un 1 groupe arbitraire G de cardinal ` sont de complexité en temps au mieux O(` 2 ), exponentielle donc en ln ` [34]. Pour atteindre cette borne, on applique dans une première phase la méthode de Pohlig-Hellman pour ramener le calcul du logarithme discret recherché à celui de logarithmes discrets dans les sous-groupes cycliques de G dont les ordres sont des diviseurs de ` premiers entre eux. On déduit ensuite dans une seconde phase chacun de ces logarithmes discrets, de façon déterministe avec la méthode des « pas de bébés, pas de géants », ou mieux de façon probabiliste avec des méthodes de type « Pollard-ρ ». Dans le pire cas, i.e. ` premier, la première phase est triviale, la seconde est de complexité celle qui est annoncée. Les groupes les plus utilisés dans les applications sont ceux qui sont définis par des courbes elliptiques données dans un corps fini [30], car les algorithmes de résolution connus sont génériques, de complexités exponentielles donc en fonction de la taille du groupe. Ici, nous nous focalisons sur les groupes multiplicatifs de corps finis Fq , à l’origine de la cryptographie Diffie-Hellman, mais maintenant moins populaires, du moins dans une utilisation directe, en raison d’attaques sous-exponentielles spécifiques. Cependant, un intérêt renouvelé se fait sentir, en particulier pour mesurer la sécurité de nombre de schémas cryptographiques récents faisant usage d’accouplements de Weil. Dans cette voie, par mimétisme avec la factorisation d’entiers, il est nécessaire de 4 ANTOINE JOUX & REYNALD LERCIER quantifier l’efficacité d’un algorithme de résolution, d’abord par sa complexité asymptotique, fonction de la taille ln q du corps, ensuite par les tailles de corps atteignables en pratique, de façon à avoir une estimation du temps d’exécution pour tout q. L’essentiel des travaux publiés sur le sujet concerne des corps finis pour lesquels soit le degré n, soit la caractéristique p, sont considérés comme fixe : typiquement les corps premiers Fp ou les corps de caractéristique deux F2n . Ainsi, on connaît pour le cas des corps premiers un algorithme de complexité identique à celui du crible √ 1 3 2 algébrique pour la factorisation d’entiers, i.e. e( 64/9+o(1)) ln 3 p ln 3 ln p [33], et des algorithmes de√complexité similaire pour F2n , mais avec une constante plus petite, 3 1 2 précisément e( 32/9+o(1)) n 3 ln 3 n [3, 18]. En tenant compte des mêmes heuristiques sur les puissances de calculs réalisables à moyen et long terme, on arrive aussi à une appréciation crédible de la difficulté du logarithme discret dans ces cas (cf. Tab. 2). Année Cryptographie symétrique Logarithmes discrets dans Fp ou F2n & factorisation d’entiers Logarithmes discrets sur des courbes elliptiques dans Fp ou F2n 1982 2000 2005 2010 2020 2050 56 70 74 78 86 109 417 952 1149 1369 1881 4047 105 132 139 146 161 206 Table 2. Estimations sur les tailles de problèmes atteignables de 1982 à 2050 (en bits, extrait de [28]) Il faut attendre le début des années 2000 avec la publication de nouveaux schémas, ceux à base de tores algébriques [25, 27, 32] et ceux à base d’accouplements de Weil (et ses variantes) sur courbes elliptiques [15, 6, 7], pour que l’on considère sérieusement l’usage de corps de caractéristiques et degrés moyens, de tailles croissantes en fonction de la taille des clefs. Du coup, l’étude des problèmes du logarithme discret correspondants, sans limitation sur le degré ou la caractéristique, est récente [18, 19] et nous nous proposons dans ce texte d’en faire état. Pour l’essentiel, nous décrivons trois algorithmes. Ils résultent tous d’une méthode de crible appelée « index-calculus » [29] (ou « calcul d’index ») dont nous présentons, un exemple à l’appui, les grandes idées dans le paragraphe 2. Sur cette base, le premier algorithme que nous explicitons, dans le paragraphe 3, permet de traiter des corps finis de petites caractéristiques et le deuxième algorithme, dans le paragraphe 4, est destiné aux corps de grandes caractéristiques. Nous rentrons dans le vif du sujet avec le paragraphe 5, en généralisant ces algorithmes au cas des corps de caractéristiques et degrés qui tendent simultanément vers l’infini en fonction de ln q. Nous montrons ainsi qu’ils sont, pour les corps dont ln p est négligeable (resp. prépondé1 2 2 1 rant) devant toutes fonctions de la frontière O(ln 3 q ln 3 ln q) (resp. O(ln 3 q ln 3 ln q)), de complexités identiques à celles déjà connues pour des corps de caractéristiques PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 5 √ √ 1 2 1 2 3 3 ou degrés fixés, i.e. e( 32/9+o(1)) ln 3 q ln 3 ln q (resp. e( 64/9+o(1)) ln 3 q ln 3 ln q ). Puis, pour √ la plage intermédiaire, nous exhibons un troisième algorithme, de complexité 3 1 2 e( 128/9+o(1)) ln 3 q ln 3 ln q . Enfin, nous terminons par l’analyse des complexités aux frontières et mettons en évidence, de façon surprenante, un algorithme de complexité √ 1 2 p 1 2 3 e( 3+o(1)) ln 3 q ln 3 ln q lorsque ln p = 3 1/9 ln 3 q ln 3 ln q. 2. Algorithmes de type « Index calculus » De nombreux algorithmes, parmi lesquels ceux qui sont connus à ce jour comme les plus efficaces pour factoriser des entiers, résoudre le problème du logarithme discret dans des corps finis, ou certaines familles de courbes algébriques, calculer le cardinal du groupe de classe d’un corps de nombre, etc. sont de type « index-calculus ». On attribue à Kraitchik la découverte de ce procédé [22, 23]. Dans un premier temps, nous dégageons les grandes lignes de cette méthode, appliquée au calcul de logarithmes discrets. Il apparaît que son efficacité dépend fortement des options prises à l’initialisation. Nous précisons donc ensuite les choix qui sont à l’origine des algorithmes des paragraphes 3, 4 et 5. 2.1. Principes. — Les méthodes de type « index-calculus » procèdent comme suit pour résoudre le problème du logarithme discret dans un sous-groupe cyclique < g >, de cardinal `, d’un corps fini Fq . Étape 1 (crible) : on fixe un sous-ensemble S = {γ1 , . . . , γ|S| } de < g > appelé la « base de lissité » et l’on cherche des relations faisant intervenir les éléments Q de S de la forme (,γ)∈Z×S γ = 1, ce qui conduit à des équations du type X logg γ = 0 (mod`) . (1) (,γ)∈Z×S Étape 2 (algèbre linéaire) : quand on a suffisamment de relations (1), on calcule des résidus logg γ en inversant modulo ` le système linéaire correspondant. Étape 3 (résolution) : pour déduire le logarithme discret d’un élément quelconque y de < g >, on essaie des entiers aléatoires ν jusqu’à ce que g ν y s’écrive Q à son tour comme un produit d’éléments de S, c’est-à-dire g ν y = (,γ)∈Z×S γ . P Alors, logg y = −ν + (,γ)∈Z×S logg γ (mod`) . Clairement, la complexité en temps associée dépend de la stratégie utilisée pour fixer la base S et pour rechercher des relations. 2.2. Étude d’un cas d’école. — Nous nous plaçons dans Fp avec ` = (p − 1)/2, un nombre premier. Étant donné γ ∈ Z/pZ, on définit aussi γ ↑ comme étant le plus petit entier positif de la classe de congruence γ modulo p. Adjoindre à un générateur g l’ensemble des nombres premiers inférieurs à une borne B est un choix naturel pour la base de lissité S. Si la factorisation sur Z d’entiers de la forme g ν ↑ pour des entiers 6 ANTOINE JOUX & REYNALD LERCIER ν choisis aléatoirement ne fait intervenir que des nombres premiers de S, on en déduit alors une relation du type (1). Quand on en a suffisamment, i.e. au moins autant que d’éléments de S, l’algèbre linéaire et la résolution finale sont réalisées comme indiqué au paragraphe 2.1. 2.2.1. Exemple. — Supposons que l’on souhaite résoudre le problème du logarithme discret dans le sous-groupe cyclique < 1193 > de F10007 , d’ordre ` = 2 · 5003. Choisissons comme base S = {2, 3, 5, 7, 11, 13, 17}, on trouve assez vite huit relations multiplicatives ne faisant intervenir que des éléments de S : ↑ ↑ ↑ 119315 = 2 · 3 · 7 · 11 , 119336 = 72 · 112 , 119341 = 173 , ↑ ↑ 47 ↑ 1193 = 2 · 11 · 13 · 17 , 119373 = 3 · 5 · 11 · 13 , 119374 = 25 · 32 · 52 , ↑ ↑ 119378 = 26 · 3 · 72 , 119380 = 23 · 52 . En combinant ces équations, il n’est alors pas difficile de voir que 2 = 11934764 , 3 = 1193236 , 5 = 11937903 , 7 = 1193638 , 11 = 11934383 , 13 = 11932560 , 17 = 11933349 . Maintenant, pour connaître le logarithme discret d’un élément y n’appartenant pas à la base il nous reste à trouver une puissance de 1193, qui multipliée par y, se décompose sur S. Pour par exemple y = 8964, on a (y · 119312 )↑ = 22 · 33 · 5 · 17 , et donc 8964 = 11931464 . 2.2.2. Complexité asymptotique. — Une fois rappelés quelques résultats sur la densité des nombres friables, il est relativement aisé de prouver que l’algorithme précédent est de complexité sous-exponentielle. 2.2.2.1. Rappels sur les fonctions L. — Étant donnés des réels N , ν et λ 6= 0, définissons pour N tendant vers l’infini, la quantité LN (ν, λ) = eλ(ln N ) ν (ln ln N )1−ν . On utilise ces fonctions pour des estimations asymptotiques de complexité et classiquement, on abrège LN (ν, λ) pour LN (ν, λ + o(1)) ou encore LN (ν) pour LN (ν, λ + o(1)). Pour ν = 0, on trouve une complexité polynomiale de degré λ en la taille ln N . Au contraire, pour ν = 1, on a une complexité exponentielle (en ln N ) égale à N λ . Pour une valeur de ν intermédiaire, on fait souvent référence à une complexité sousexponentielle. Ces fonctions vérifient, LN (ν1 )LN (ν2 ) LN (ν, λ1 )LN (ν, λ2 ) = LN (max(ν1 , ν2 )) si ν1 6= ν2 et = LN (ν, λ1 + λ2 ) . Dans la suite, nous utilisons la notion d’entiers ou de polynômes « B-lisses ». Cela signifie que ces entiers ou ces polynômes ont leurs facteurs premiers plus petits que la borne B. On a en corollaire d’un théorème de Canfield, Erdös et Pommerance [9], le résultat suivant sur les entiers B-lisses. PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 7 Theorème 2.1. — Étant donné des constantes ν, λ, ω et µ telles que 1 > ν > ω > 0 et λ, µ > 0, la probabilité qu’un entier de l’ordre de LN (ν, λ) ait tous ses facteurs premiers plus petit que LN (ω, µ) est, lorsque N tend vers l’infini, asymptotiquement égale à ν−ω ). LN (ν − ω, −λ · µ 2.2.2.2. Analyse. — Supposons que B = Lp (θ) pour 0 6 θ 6 1. On cherche des entiers de l’ordre de Lp (1) qui soient B-lisse. La probabilité d’occurrence de telles relations est Lp (1 − θ), il en faut Lp (θ) et donc, le temps de la première étape est Lp (max(1 − θ, θ)). Le temps de la seconde étape, celle de l’inversion modulaire, est polynomial en le cardinal de S, c’est-à-dire égal à Lp (θ). Enfin, dans la dernière étape, on recherche un entier B-lisse de l’ordre de Lp (1), ce qui est réalisable en temps Lp (1 − θ). Le temps total est ainsi Lp (max(θ, 1−θ)). Il vaut donc au minimum Lp (1/2), réalisé pour θ = 1/2. Remarque 2.1. — Une analyse attentive permet de s’assurer que la complexité de cet algorithme probabiliste ne repose sur aucune heuristique. Ce n’est malheureusement plus le cas des algorithmes qui suivent, principalement parce que l’on cherche à y factoriser des entiers ou des polynômes de tailles plus petites, qui ne sont plus complètement aléatoires. 2.3. Généralisations. — Considérer la lissité d’objets directement dans Fq est inapproprié, simplement parce que tout élément y est une unité. C’est pourquoi, déjà dans la version naïve du paragraphe précédent, on se place par l’intermédiaire de l’opération ↑ dans Z. Les algorithmes les plus modernes de calcul de logarithme discrets contournent la difficulté en obtenant des bases de lissité par réduction modulo des idéaux premiers dans l’anneau des entiers d’un corps global. Les corps globaux considérés sont soit les corps de nombres pour les algorithmes efficaces dans le cas des corps de grandes caractéristiques et l’on parle de « Number Field Sieve » (nfs), soit les corps de fonctions algébriques pour les corps de petites caractéristiques et l’on parle de « Function Field Sieve » (ffs). Les objets utilisés dans les deux cas sont suffisamment simples pour que l’on puisse présenter ces algorithmes d’un point de vue « global » à l’aide du dictionnaire classique : corps de nombres ↔ corps de fonctions, nombres algébriques ↔ fonctions algébriques, idéaux ↔ places, groupe des classes ↔ groupe de Picard, etc. 8 ANTOINE JOUX & REYNALD LERCIER En fait, la situation peut être résumée par le diagramme commutatif K[X] GG GG σβ ww w GG w w GG w w G# {ww K(β) K(α) GG w GG φα φβ ww GG ww GG ww G# {ww Fq σα où le corps K est égal au localisé en p (resp. en un polynôme f irréductible de degré n) de Q (resp. Fp [X]), où α et β sont des entiers algébriques (resp. fonctions algébriques) dont les polynômes minimaux ont une racine commune γ dans Fq (γ est racine de f quand K = Fp [X](f ) ) et où les flèches sont définies par σα : X −→ α, σβ : X −→ β, φα : α −→ γ et φβ : β −→ γ. Tout comme pour Fq , considérer la lissité d’objets dans les anneaux Q(p) [X] ou Fp (t)(f ) [X] conduit à une impasse, car la majeure partie des éléments y est irréductible. Par contre, ce n’est plus le cas au niveau intermédiaire, celui des corps de nombres ou de fonctions. C’est pourquoi les bases de lissité S qui sont utilisées par la suite proviennent d’idéaux premiers de normes bornées dans l’anneau des entiers de ces corps. Schématiquement, ces algorithmes recherchent des (t + 1)−uplets (u0 , u1 , . . . , ut ) de rationnels ou de polynômes de Fp [t] tels que les idéaux principaux de générateurs u0 +u1 α+· · ·+ut αt et u0 +u1 β +· · ·+ut β t se factorisent simultanément sur l’ensemble des idéaux premiers de S. Lorsque l’une de ces relations est découverte, il est possible de la réduire modulo un idéal ou une place de corps résiduel égal à Fq pour obtenir une égalité entre les deux « factorisations réduites ». À ce stade, plusieurs questions se posent et sont l’objet des paragraphes suivants. Les principales sont les suivantes. – D’un point de vue théorique, comment lever les obstructions liées à l’utilisation d’anneaux non factoriels avec des unités non triviales ? – D’un point de vue algorithmique, quels sont les meilleurs choix pour les corps de nombres ou de fonctions et, une fois ces choix faits, comment organiser efficacement les calculs ? 3. Algorithmes pour les corps de caractéristiques fixées L’algorithme que nous avons présenté au paragraphe 2.2 dans le cas des corps premiers peut être généralisé à tout corps fini. Dans le cas des corps dont la caractéristique est fixée lorsque l’on fait tendre le cardinal vers l’infini, il n’est pas difficile de montrer, de façon similaire, mais à partir de probabilités de factorisation pour des polynômes plutôt que pour des entiers, que la complexité asymptotique est aussi égale à Lq (1/2). PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 9 Dès 1984, Coppersmith exhibe un algorithme de complexité asymptotique 1 1 meilleure, en Lq (1/3, c) avec c variant entre (32/9) 3 et 4 3 selon que le degré du corps est plus ou moins proche d’une puissance de p [10]. C’est à notre connaissance, tout problème confondu (factorisation, logarithmes discrets, etc.), le premier algorithme de type index-calculus avec une complexité plus faible que Lq (1/2). Des travaux d’Adleman, dix ans plus tard, éclairent la problématique sous un jour nouveau en montrant qu’une méthode de type index-calculus construite à l’aide de corps de fonctions algébriques conduit aussi à un algorithme en Lq (1/3), mais de 1 constante plus grande, puisque de complexité égale à Lq (1/3, (64/9) 3 ) [1]. Plus proche de nous, Adleman avec l’aide de Huang, améliore en 1999 son algo1 rithme et arrive à une complexité uniforme en Lq (1/3, (32/9) 3 ) [3]. Malheureusement, cet algorithme, comme le précédent, est en pratique nettement moins efficace que l’algorithme de Coppersmith. En fait, il faut attendre 2002 avec une idée de Joux et Lercier pour au final obtenir un algorithme de même complexité asymptotique [16], et qui est en pratique plus rapide que la méthode de Coppersmith (cf. Tab. 3). Nous faisons un tour d’horizon de ces méthodes dans le paragraphe 3.1 et nous les illustrons dans le paragraphe 3.3 en donnant quelques éléments sur un calcul que nous avons mené pour F2607 en 2005 (cf. Tab. 3). Nous nous focalisons ensuite sur un dernier algorithme, publié en 2006, de Joux et Lercier [18]. Celui-ci est tout comme notre « cas d’école » assez simple à comprendre, en particulier on n’y a plus besoin de corps de fonctions. Du coup, il est très facile à mettre en œuvre et, bonne surprise, 1 sa complexité est aussi en Lq (1/3, (32/9) 3 ). Nous décrivons donc cet algorithme de façon détaillée dans le paragraphe 3.2, exemple à l’appui. L’analyse de sa complexité est évoquée au paragraphe 5. Corps F2401 F2521 F2607 F2607 F2613 Taille Quand Complexité (chiffres) (gips year) Méthode Qui Gordon, McCurley Joux, Lercier Thomé 121 157 183 1992 2002 2002 0.2 0.4 20 coppersmith ffs coppersmith 183 2005 1.6 ffs Joux, Lercier Table 3. Records pour le problème du logarithme discret dans F2n 3.1. Cribles à l’aide de corps de fonctions algébriques. — On se donne deux corps de fonctions algébriques. Tout d’abord Fp (X) défini par Fp (X)[Y ]/(a1 (X)Y − a0 (X)), et le corps défini par une courbe plane C de jacobienne J définie par un polynôme H(X, Y ) sur Fp tel que le numérateur de H(X, a(X)), où a(x) = a0 (X)/a1 (X), 10 ANTOINE JOUX & REYNALD LERCIER soit divisible par un polynôme irréductible f (X) de degré n. Nous notons γ, une racine de f (X) dans Fq . Dans Fp (X), il est immédiat de passer des places aux fonctions génératrices de ces derniers, car elles sont principales, et l’on peut réduire simplement dans Fq par (u + vY ) → u + va(γ). Dans C, par contre, le passage des places aux fonctions ne peut se faire qu’une fois élevé à la puissance le cardinal de la jacobienne de la courbe. Pour toute place p de C, il existe une fonction πp ∈ Fp (X, Y ) telle que ph = div(πp ) où h = |J (Fq )|. À une place p correspond donc l’élément πp (γ, a(γ))1/h de Fq . La base de lissité se déduit alors de S = {places à l’infini} ∪ {π ∈ Fp [X], π irréductible de degré < Bα } ∪ places irréductibles de degré relatif 1 p, , deg(p) < Bβ , au-dessus de leur restriction à Fp (X) où Bα et Bβ sont deux paramètres donnés. L’étape 1 de la méthode générique du paragraphe 2 consiste à rechercher des couples (u(X), v(X)) ∈ Fp [X]2 tels que u(X) + v(X) · X et div(u(X) + v(X) · Y ) soient tous deux S−lisses, car alors p−1 !p−1 Y Y U π(γ)eπ = (u(γ) + v(γ) · a(γ))p−1 = πp (γ, a(γ))ep /h . π∈S p∈S Le coefficient c de la complexité heuristique Lq (1/3, c) de ces algorithmes est surtout fonction de la taille des coefficients et des degrés des polynômes qui définissent les corps de fonctions utilisés. On dispose de quatre constructions. 3.1.1. Méthode de Coppersmith (1984). — Soit F2n ' F2 [X]/(f (X)) où f (X) = X n + a(X) et a(X) a un degré bas. Alors, on définit avec d une puissance de deux et e > n/d, H(X, Y ) = Y d + X de−n a(X) (= Y d + X de (modf (X))) . Cette construction n’est optimale que lorsque n est une puissance de deux. Cependant la méthode est séduisante en pratique, car la moitié des relations nécessaires s’obtient automatiquement (elles proviennent de la factorisation, modulo tout polynôme irréductible de F2 , de Ypd + X de−n a(X) √ en un polynôme de degré un élevé à la puissance d ). Elle conduit à 3 32/9 6 c 6 3 4. 3.1.2. Méthode de Adleman (1994). — Soit Fq ' Fp [X]/(f (X)), la méthode comme décrit par Adleman est une adaptation de la méthode de la « base m » utilisée pour factoriser des entiers avec nfs. On choisit un polynôme a(X) au hasard de degré n/(d + 1) pour un degré d fixé Pd par avance. On écrit f (X) comme f (X) = i=0 hi (X)a(X)i et au final les corps de Pd fonctions sont définis par Y − a(X) et H(X, Y ) = i=0 hi (X)Y i . Adleman ajoute PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 11 huit conditions techniques sur H, la plupart d’entre elles p pour mieux contrôler les places à l’infini de la courbe définie par C. Cela donne c = 3 64/9. 3.1.3. Méthode de Adleman et Huang (1999). — Soit Fq ' Fp [X]/(f (X)), Adleman et Huang proposent une construction similaire à celle de nfs pour factoriser des entiers de forme spéciale. Soit f (X) = X n + a(X) où a(X) est de petit degré, alors les polynômes de définition des corps de fonctions algébriques sont simplement Y − X e et H(X, Y ) = Y d − X ed−n a(X) , où e = dn/de pour un paramètre d fixé par avance. Cela donne c = p 3 32/9. 3.1.4. Méthode de Joux et Lercier (2002). — L’idée derrière cette dernière construction est d’effectuer le calcul à l’envers. On fixe d’abord un polynôme H(X, Y ) de degré d en Y et de bas degré en X. On choisit au hasard a0 (X) et a1 (X) de degrés au plus bn/dc jusqu’à ce que f (X) = a1 (X)d H(X, a0 (X)/a1 (X)) soit irréductible de degré n. Le polynôme à l’origine du second corps de fonctions est alors a1 (X)Y − a0 (X) et Fq est défini par Fp [X]/(f (X)). On combine cette construction avec l’utilisation de courbes Ca,b comme suggéré par Matsumoto (1999). Dans ce cas, on a une unique valuation à l’infini. On a aussi le résultant en Ypde H(X, Y ) et a1 (X)Y − a0 (X) qui est exactement égal à f (X). Cela donne c = 3 32/9. 3.2. Variante sans corps de fonctions. — Cet algorithme, extrait de [18], prend en entrée un corps fini Fq de caractéristique p et degré n, ainsi qu’en paramètre supplémentaire un entier strictement positif D borné par n. Nous renvoyons le lecteur au paragraphe 5 pour la détermination d’un optimum pour D quand q est donné. 3.2.1. Définition. — Il se décompose en quatre parties : l’initialisation, le crible, l’algèbre linéaire et la résolution finale. p √ n/D, deux entiers avec 3.2.1.1. Initialisation. — Soient dα ≈ nD et dβ ≈ dα dβ > n. On choisit deux polynômes fα (X) et fβ (X) à coefficients dans Fp de degrés dα et dβ tels que le polynôme fβ (fα (X)) − X ait un facteur irréductible f (X) de degré n. Ce facteur nous fournit une représentation polynomiale pour Fq , autrement dit Fq ' Fp [X]/(f (X)). 3.2.1.2. Crible. — Soit α une racine de f (X) dans Fq , soit β = fα (α), nous avons donc α = fβ (β). De n’importe quel polynôme bivarié h(X, Y ) on peut déduire les polynômes univariés hα (X) = h(X, fα (X)) et hβ (Y ) = h(fβ (Y ), Y ) avec hα (α) = hβ (β) dans Fq . Par ailleurs les polynômes univariés hα (X) et hβ (Y ) peuvent être factorisé en polynômes de bas degré qui, une fois substitué X par α ou Y par β, conduisent à une relation dans Fq entre polynômes de bas degré en α et β. 12 ANTOINE JOUX & REYNALD LERCIER En tenant compte du fait que deg(h1 ) 6 dα ·degY (h)+degX (h) et que deg(h2 ) 6 dβ · degX (h)+degY (h), nous considérons des polynômes bivariés h(X, Y ) = u(X)Y −v(X) où, afin d’équilibrer le degré des polynômes hα (X) et hβ (Y ), les polynômes u(X) et v(X) à coefficients dans Fp sont de degré D. Pour éviter d’avoir des relations redondantes, on choisit de plus des polynômes u(X) unitaires. Notons SD , l’ensemble des polynômes irréductibles et unitaires de degré au plus D, alors dans le cas favorable où hα (X) et hβ (Y ) ont tous leurs facteurs irréductibles dans SD , on a une relation Y Y Uα π(α)eα,i = h(α, β) = Uβ π(β)eβ,i π∈SD π∈SD F∗p , avec Uα et Uβ deux éléments de que l’on peut faire disparaître si on élève les deux côtés de ces relations à la puissance (p − 1)-ième. Un choix naturel pour la base de lissité est donc S = {π(α) | π(X) ∈ SD } ∪ {π(β) | π(X) ∈ SD } . 3.2.1.3. Algèbre linéaire. — Une fois collecté un minimum de |S| relations, il devient possible d’inverser le système linéaire correspondant modulo (q − 1)/(p − 1) (cf. paragraphe 3.2.3). Au final, on dispose ainsi du logarithme discret des éléments de S, en base g ∈ S de notre choix. Remarque 3.1. — Lorsque D = 1, le système n’est pas de rang plein sur les rationnels puisqu’il y a exactement dα et dβ inconnues respectivement à gauche et à droite dans nos relations (en comptant les multiplicités). L’espace des solutions contient donc un sous-espace vectoriel de dimension un, ayant pour base le vecteur avec pour composantes dβ et dα pour respectivement les inconnues de gauches et de droites. Il est facile de lever cette ambiguïté en ajoutant à ces relations une équation d’un autre type, par exemple un polynôme linéaire en α dont l’expression en β se factorise complètement sur S. 3.2.1.4. Résolution finale. — Étant donné de façon arbitraire un élément y de Fq , l’idée principale, à ce stade, consiste à trouver un entier ν tel que que yg ν , considéré comme un polynôme de degré au plus n−1, se factorise en polynômes de degré au plus √ Dn/2. La difficulté à laquelle nous sommes maintenant confrontés est d’exprimer ces polynômes comme un produit d’éléments de S. Soit r(X) l’un de ces polynômes de√ bas degré, on recherche maintenant avec u(X) et v(X) des polynômes de degré au plus Dn/2 choisis tels que r(X) divise u(X)fα (X)− v(X), un polynôme bivarié u(X)Y − v(X) tel que (u(X)fα (X) − v(X))/r(X) et u(fβ (Y ))Y − v(fβ (Y )) se factorisent simultanément en facteurs de degré plus petit que celui de r(X). En réitérant la méthode un nombre suffisant de fois (que l’on peut montrer comme étant petit dans l’analyse), on arrive au final à exprimer y comme un produit d’éléments contenus dans S. 3.2.2. Exemple. — On souhaite calculer des logarithmes discrets dans F174 . Prenons pour cela D = 1, fα (X) = X 2 + 1 et fβ (X) = X 2 + X + 1, si bien que f (X) = PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 13 fβ (fα (X)) − X = X 4 + 3 X 2 + 16 X + 3 est irréductible. On note α une racine de f (X) dans Fq , β = fα (α) et donc α = fβ (β). On énumère ensuite les 173 polynômes de la forme h(X, Y ) = (X +u0 )·Y +(v1 ·X + v0 ) avec u0 , v0 , v1 ∈ Fp et l’on recherche parmi ces derniers ceux tels que h(X, fα (X)) et h(fβ (Y ), Y ) se factorisent simultanément en facteurs de degré un. Une recherche rapide montre qu’il existe 95 telles relations, nous donnons dans Tab. 4 quarante d’entre elles, sous la forme condensée de 6-uplets. À un 6-uplet (α0 , α1 , α2 , β1 , β2 , β3 ), correspond l’équation (α − α0 ) · (α − α1 ) · (α − α2 ) = (β − β0 ) · (β − β1 ) · (β − β2 ). Typiquement, de (4, 13, 14, 0, 5, 11), on déduit que (α − 4) · (α − 13) · (α − 14) = β · (β − 5) · (β − 11). (4,13,14,0,5,11) (3,4,13,0,1,15) (10,11,15,0,6,11) (7,10,14,5,11,16) (0,9,11,2,7,11) (6,7,11,2,3,14) (3,5,16,4,7,16) (8,10,15,2,10,12) (1,2,13,4,8,15) (0,12,13,4,11,16) (4,9,13,0,6,10) (6,7,9,4,11,13) (3,7,14,2,10,14) (6,13,15,6,8,14) (1,6,11,0,3,16) (1,4,6,6,13,15) (1,2,15,0,5,16) (8,13,15,9,15,16) (5,12,14,5,9,11) (3,8,9,1,14,15) (4,7,13,0,2,14) (2,7,15,2,5,14) (4,5,12,4,9,12) (2,4,15,4,5,12) (7,10,13,3,13,16) (4,8,9,4,12,14) (1,6,7,8,10,12) (5,9,11,0,1,4) (7,15,16,8,13,15) (2,8,16,1,3,7) (4,6,13,0,7,9) (1,9,16,2,6,10) (0,7,12,0,5,13) (0,4,16,9,13,16) (0,8,13,2,5,8) (1,10,12,1,4,6) (3,4,14,4,10,12) (1,3,16,1,2,15) (7,9,10,6,10,16) (6,7,8,0,1,6) Table 4. Relations issues d’un crible pour F174 On ajoute à ces relations, l’équation α − 14 = (β − 5) · (β − 11) de façon à ce que le système linéaire obtenu soit de rang maximal, et l’on trouve le logarithme discret des éléments α − α0 et β − β0 pour tout α0 , β0 ∈ Fq modulo chacun des facteurs de 174 − 1 = 26 · 32 · 5 · 29. Typiquement, si on choisit comme base g l’élément primitif α − 2, on trouve que le logarithme discret de α (resp. β) en base g est égal, modulo 29, à 28 (resp. 17). Un calcul analogue modulo 2, 3 et 5 permet finalement de déduire que α = g 40773 et β = g 39718 . 3.2.3. Mise en œuvre. — La difficulté essentielle lors de la programmation de cet algorithme sur ordinateurs est la phase d’algèbre linéaire. Pour la réaliser, on combine généralement une élimination gaussienne structurée (introduite par Lamachia et Odlyzko en 1991) pour réduire significativement la dimension du système à résoudre, avant de terminer le calcul avec une méthode itérative comme la méthode de Lanczos ou de Wiedemann. 14 ANTOINE JOUX & REYNALD LERCIER 3.2.3.1. Élimination gaussienne structurée. — L’élimination gaussienne structurée telle que décrite dans [24] consiste à choisir à chaque étape pour pivot dans l’algorithme de Gauss celui qui intervient le moins de fois, afin de densifier au minimum la matrice résultat. Typiquement, lors d’un pivotage avec une ligne de poids w dans une colonne de poids plus petit que k, la variation estimée sur le poids total est égale à (k−1)((w−1)− 1)−w = (w−2)(k−2)−2. On choisit donc l’entrée avec la valeur (w−2)(k−2) minimale comme pivot. Après chaque étape, (w − 2)(k − 2) doit être recalculé, mais grâce à une représentation adaptée de la matrice nous pouvons le faire incrémentalement, donc efficacement. 3.2.3.2. Algorithme de Lanczos. — Multiplier la matrice et sa transposée conduit à une matrice symétrique à partir de laquelle on peut définir un produit scalaire. L’algorithme de Lanczos [24] peut être vu comme un procédé d’orthogonalisation pour ce produit scalaire. Il permet de trouver le vecteur x solution de l’équation matricielle Ax = y par projection sur la base orthogonale calculée. Son coût principal est deux fois la dimension de la matrice par le coût de la multiplication de la matrice avec un vecteur dont les éléments sont des nombres entiers de même taille que (q − 1)/(p − 1). Malheureusement, cet algorithme se distribue mal, en particulier sur un réseau de stations de travail. Jusqu’à présent, les essais de parallélisation ont porté pour l’essentiel sur le produit matrice-vecteur. Du coup, ils nécessitent l’utilisation de machines massivement parallèles. 3.3. Expérimentations en grandeur nature. — Posons H(X, Y ) = Y 5 + Y + X 2 + 1, et a1 (X)Y + a0 (X) = (X 121 + X 8 + X 7 + X 5 + X 4 + 1) · Y + 1 . Leur résultant en Y , f (X), est un polynôme irréductible de degré 607, dont on note γ une racine dans F2607 . On choisit alors comme base de lissité pour le crible, – 1 000 000 places irréductibles de degré relatif un au-dessus de leurs restrictions à F2 (X) du côté du polynôme de degré 5, – 765 925 places irréductibles du côté du polynôme de degré 1. Le crible a fourni, après 18 jours de calcul sur une machine avec 16 processeurs dec alpha cadencés à 1.15 ghz un total de 1 898 338 équations avec 1 556 351 inconnues. Après l’élimination Gaussienne structurée, il reste 365 928 équations avec 364 927 inconnues comprenant 104 312 947 entrées non nulles (environ 286 inconnues par équation). Appliquer l’algorithme de Lanczos à ce système conduit en dix jours aux logarithmes de petits polynômes irréductibles. Typiquement, on trouve, logγ (γ + 1) = 1060949212859562222262493702624296695723135234776723302006662 2367501108294347652735706466179273679079535520413662716562898 6636655133458298515311816931900033171571536747901288957967953 , PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 15 ou encore, logγ (γ 2 + γ + 1) = 2520048934917069779831062050295651583064497255985365264218762 7777603859076192675732436055816069292278591515542802408816416 151878677859473587741836141279445015081142869326983907031635 . Pour terminer, on a calculé le logarithme discret de y(γ) = b2605 πe = γ 606 + γ 605 + . . . + γ 4 + γ 2 . En particulier, on trouve en quelques heures, y1 (γ) = 208d2107247a35 · a10da7a6f73e3 · e48f497e83 · 9355bfccf · 3ed885367 · 2c6d3d · 9b7d · 7123 · 5375 · 47b5 · 35b9 · a29 · 7 , y2 (γ) = 46da9a2b29f69 · 43050a0219 · 307c17f1b · 79cac967b · 6a513017 · e4cf755 · 14bcdbf · 53a4a3 · 2c3999 · 747 · 2d1 · fd · b2 · 3 · 24 tels que 155b93b27 ·y(γ) = y1 (γ)/y2 (γ) , où nous notons de façon concise les polynômes sur F2 [γ] à l’aide d’entiers écrits en hexadécimal (par exemple, b représente γ 3 +γ +1). À partir de cette relation, on tire, logγ y(γ) = 1948913997589684864296870937572705500925853466837290201262837 4252705622678430408516473180042358202000446617842152140957330 7372675772079931586693537551194866503272438476718291852872030 . 4. Algorithmes pour les corps de degrés fixés La méthode de Kraitchik (cf. paragraphe 2.2) a d’abord été améliorée en 1986 par Coppersmith et al. [11] avec un algorithme de complexité Lq (1/2, 1). Il faut attendre 1993 et les travaux de Schirokauer [33], suite à une proposition de Gordon [14], pour disposer pour la première fois d’un algorithme de complexité asymptotique en Lq (1/3), 1 en fait Lq (1/3, (64/9) 3 ), pour des corps finis de degrés fixés lorsque le cardinal du corps tend vers l’infini. Nous présentons ici ces deux méthodes, d’abord pour le cas de corps premiers dans le paragraphe 4.1. Nous montrons ensuite dans le paragraphe 4.2 les modifications qu’il faut apporter pour les corps de degrés supérieurs. Nous illustrons l’ensemble avec des éléments relatifs à une expérimentation de grande ampleur au paragraphe 4.3. 4.1. Méthodes pour les corps premiers. — Afin de faciliter la compréhension, nous introduisons d’abord la méthode des entiers de Gauss avec le formalisme qui sera nécessaire à la présentation dans un second temps du crible algébrique. 4.1.1. Méthode des entiers de Gauss. — La méthode dite des entiers de Gauss [11] utilise comme corps de nombres Q et un corps de nombres quadratique imaginaire. On choisit un petit entier b tel que modulo p, −b soit égal au carré d’un élément a. 16 ANTOINE JOUX & REYNALD LERCIER √ On écrit par ailleurs a = a0 /a1 mod p avec a0 , a1 ' O( p) et l’on considère les corps de nombres Q(α) ' Q et Q(β) respectivement définis par fα (X) = a1 X − a0 et fβ (X) = X 2 + b dont on note les anneaux d’entiers Oα ' Z et Oβ . Il est alors facile de donner dans Q(α) un sens en termes d’entiers algébriques à une factorisation en idéaux premiers et d’envoyer ces entiers dans Fp par, (u+vα) → u+va. Pour les idéaux de Oβ , la situation est à peine plus difficile lorsque le groupe des classes de Oβ est de cardinal un puisque alors, pour tout idéal p de Oβ , ∃(up , vp ) ∈ Z2 tel que p = (up + vp β) . L’application de réduction est simplement donnée par up + vp β → up + vp a. Grâce à ces définitions, on peut obtenir la base de lissité à partir de S = {nombres premiers p < Bα } ∪ {générateurs du groupe des unités} ∪ {up + vp a, p idéal premier de Oβ , Norm(p) < Bβ } , où Bα et Bβ sont des bornes qui conduisent à des probabilités de lissité suffisamment hautes. L’étape 1 de la méthode générique consiste ici à rechercher des couples (u, v) tels que (u + vα) et (u + vβ) soient simultanément lisses. Alors Y Y Uα pep = u + va = Uβ (up + vp a)ep où Uα et Uβ sont des unités . p∈S p∈S Les calculs majeurs réalisés avec ce procédé sont donnés dans Tab. 5. Taille Quand Complexité (chiffres) (gips year) 58 85 90 1991 1996 1998 0.01 0.10 0.07 Qui Lamacchia, Odlyzko Weber Joux, Lercier Table 5. Records avec la méthode des entiers de Gauss pour le problème du logarithme discret dans Fp 4.1.2. Crible algébrique général. — Le crible algébrique est une généralisation de la méthode des entiers de Gauss à des corps de nombres arbitraires Q(α) ou Q(β). On a toujours, en corollaire du théorème de Dedekind, les factorisations Y Y (u + vα) = pep et (u + vβ) = p ep . p∈S p∈S Le problème est que l’on ne peut plus les réduire aussi facilement dans Fp . Les obstructions proviennent ici du groupe des classes et des unités de ces corps qui, pour certains de ceux qui sont considérés en pratique, ne peuvent pas être calculés. On doit PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 17 à Schirokauer une méthode permettant de lever cette difficulté. Les plus gros calculs réalisés à ce jour reposent sur ces idées (cf. Tab. 6). Taille Quand Complexité (chiffres) (gips year) 25 65 85 100 110 130 160 1994 1995 1998 1999 2000 2005 2007 0.00 0.01 0.05 0.05 0.20 1.5 55 Qui Weber Weber Weber Lercier, Joux Lercier, Joux Lercier, Joux Franke et al. Table 6. Records avec le crible algébrique général pour le problème du logarithme discret dans Fp Nous passons maintenant en revue les grandes étapes d’un crible algébrique général : – trouver de bons corps de nombres (cf. paragraphe 4.1.2.1), – cribler efficacement (cf. paragraphe 4.1.2.2), – inverser le système linéaire (cf. paragraphe 4.1.2.3), – résoudre des instances particulières du logarithme discret (cf. paragraphe 4.1.2.4). 4.1.2.1. Stratégies de définition des corps de nombres. — Soient fα (X) et fβ (X) les polynômes de définition des entiers algébriques α et β. Ces polynômes doivent satisfaire les conditions suivantes : – fα (X) et fβ (X) sont irréductibles sur Z, – les coefficients de fα (X) et fβ (X) sont premiers entre eux, – fα (X) 6= ±fβ (X), – ∃a ∈ F∗p , fα (a) = fβ (a) = 0. La lissité des idéaux (u + vα) et (u + vβ) étant d’autant meilleure que leurs normes sont petites, il est de plus naturel de rechercher des polynômes fα (X) et fβ (X) avec des coefficients aussi petits que possible. Cependant, le fait d’avoir une racine commune a dans Fp implique que p doit diviser le résultant de fα (X) et fβ (X). Quatre méthodes sont connues pour trouver des polynômes fα (X) et fβ (X) vérifiant les conditions précédentes. – La méthode des entiers de Gauss [11] : elle conduit à fα (X) = a1 X − a0 et 1 fβ (X) = X 2 + b, avec les coefficients ai de l’ordre de p 2 et b = O(1). – La méthode de Montgomery [13] : elle conduit à fα (X) = a2 X 2 + a1 X + a0 et 1 fβ (X) = b2 X 2 + b1 X + b0 , avec les coefficients ai et bi de l’ordre de p 4 . – La décomposition en base a [26] : elle conduit à fα (X) = X − a et fβ (X) = Pd Pd 1 i i d+1 et i=0 bi a = p. i=0 bi X , avec a et les coefficients bi de l’ordre de p 18 ANTOINE JOUX & REYNALD LERCIER – La méthode de Joux-Lercier [17] : on choisit un polynôme fβ (X) de degré d + 1 avec des coefficients aussi petits que possible ayant une racine a dans Fp . Puis, on applique l’algorithme lll au réseau dont des générateurs sont donnés, en colonne, par la matrice 0 B B B B B B @ W 1 0 .. . 0 Wa 0 1 .. . 0 W (a2 mod p) 0 0 .. . 0 ··· ··· ··· .. . ··· W (ad mod p) 0 0 .. . 1 Wp 0 0 .. . 0 1 C C C C, C C A où W est une constante arbitraire, suffisamment grande. On trouve un vecteur 1 court (0, a0 , . . . , ad )t tel que les coefficients ai sont de l’ordre de p d+1 . Ainsi, Pd P d i i puisque i=0 ai a = 0 mod p, on peut poser fα (X) = i=0 ai X . Avec ces polynômes, les normes sont plus petites que celles qui sont obtenues avec les méthodes précédentes. 4.1.2.2. Collecte des relations. — Avec un crible, plutôt que de tester successivement la lissité de chacun des idéaux principaux (u + vα) ou (u + vβ) avec les idéaux de la base de lissité, on procède à l’inverse. On marque dans le tableau d’abscisses u et d’ordonnées v, les idéaux principaux multiples des idéaux premiers de la base de lissité. En fait, puisque les idéaux premiers que nous considérons sont de degré un, il existe une racine ρ de fα (X) mod π où π = Norm(p) et les entiers multiples de p ρ π appartiennent au réseau Lp défini par la matrice . 1 0 Lorsque l’on crible sur de grands tableaux, ce qui est le cas en pratique, on préfère généralement travailler dans le sous-réseau défini par un idéal q. Cette technique s’appelle un crible avec « spécial-q ». Précisément, on considère les entiers algébriques u + vα qui sont multiples d’un idéal premier q de norme moyenne. De tels entiers algébriques appartiennent à un réseau Lq . Comme par ailleurs tout entier algébrique multiple d’un idéal premier p de la base appartient aussi à un réseau Lp , on est finalement ramené à énumérer les points du réseau Lq ∩ Lp dont il est aisé de déterminer une base. Remarque 4.1. — En pratique, il est parfois préférable d’utiliser comme base de ces réseaux des vecteurs courts pour accélérer le crible. 4.1.2.3. Algèbre linéaire. — Soient Sα et Sβ deux ensembles d’idéaux premiers de degré un et de petites normes dans Oα et Oβ . Supposons que le crible donne |Sα | + |Sβ | + O(1) couples d’équations de la forme Y Y (u + vα) = pep et (u + vβ) = p ep . p∈Sα p∈Sβ PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 19 Grâce alors a une inversion matricielle réalisée modulo p − 1, nous avons, Y Y (u + vα)eu,v et ∀p ∈ Sβ , p = Ipp−1 (u + vβ)eu,v , ∀p ∈ Sα , p = Ipp−1 (u,v) (u,v) et il reste |Sβ | + O(1), |Sα | + O(1) équations supplémentaires de la forme Y Y Iαp−1 = (u + vα)eu,v et Iβp−1 = (u + vβ)eu,v (u,v) (u,v) (ou les idéaux Iα , Iβ et Ip sont non principaux). On peut pour chaque équation, Iαp−1 = Q eu,v , calculer, avec (r1 , r2 ) la signature de Q(α), r1 + r2 − 1 quantités (u,v) (u + vα) (λ1 , . . . , λr1 +r2 −1 ) appelées « maps » de Schirokauer. Nous référons à [33] pour une définition précise de ces « maps », notons simplement qu’elles sont analogues à des logarithmes `-adiques de (u + vα) pour les facteurs premiers ` de p − 1. Grâce à une phase d’algèbre linéaire modulo (p − 1), il est alors facile de calculer une combinaison adéquate des dernières r1 +r2 −1 équations avec chacune des premières |Sβ | équations pour obtenir |Sβ | nouvelles équations telles que leur vecteur de « maps » est nul. Alors, Schirokauer explique que si la conjecture de Leopoldt est vraie, ces équations Q ne font intervenir que des entiers algébriques, i.e. ∃δ ∈ Oα tel que δ p−1 = (u,v) (u + vα)eu,v . Remarque 4.2. — Pour faciliter l’exposition, nous avons découpé ici l’algèbre linéaire en quelques sous-étapes. En « grandeur nature », il est bien entendu que nous la réalisons en une seule fois. 4.1.2.4. Résolution finale. — Il est naturel de chercher à exprimer le logarithme visé en fonction du logarithme de petits nombres premiers. Simplement, on ne peut utiliser que des nombres premiers qui se décomposent complètement dans les corps de nombres Q(α) ou Q(β). Dans une situation typique, ces corps de nombres sont de degrés deux et trois. Dans un corps quadratique, environ la moitié des nombres premiers se décomposent en idéaux premiers de degré un, et en prenant en compte celui de degré trois, on augmente assez peu les nombres premiers finalement utilisables. Dans cette voie, rappelons qu’une technique classique pour calculer le logarithme discret d’un élément y particulier est de rechercher deux nombres entiers y1 et y2 de taille √ proche de p tels que y = y1 /y2 mod p. On essaie de nombreux tels couples (y1 , y2 ) jusqu’à ce que l’un d’eux soit lisse. En fait, on améliore sensiblement l’efficacité de y p la recherche en utilisant des techniques de crible. Une fois réduit le réseau , 1 0 0 0 nous avons alors des nombres entiers y1 , y2 , y1 et y2 tels que ∀(κ, η) ∈ Z2 , y = y1 y0 κy1 + ηy10 = 10 = mod p , y2 y2 κy2 + ηy20 20 ANTOINE JOUX & REYNALD LERCIER et la méthode du crible par vecteurs s’applique pour trouver des nombres entiers κ et η tels que κy1 + ηy10 et κy2 + ηy20 soient simultanément lisses sur l’ensemble des nombres premiers qui se décomposent dans Q(α) ou Q(β). Une amélioration permet de se débarrasser de la contrainte sur les nombres premiers utilisés dans le crible. Elle présuppose que le groupe de Galois du corps de nombres de degré le plus élevé soit cyclique et de cardinal égal à un nombre premier. Pour le cas du degré trois, par exemple, il suffit que le discriminant du polynôme soit un carré. Tout nombre premier non inerte se décompose alors en idéaux premiers de degré 1. Dans ce cas, étant donné un élément y dont on cherche le logarithme discret, on peut essayer de l’écrire sous la forme y = (u0 + u1 a + · · · + ud ad )/(v0 + v1 a + · · · + vd ad ) mod p, où, en utilisant une réduction de réseau, u0 , u1 , . . ., ud et v0 , v1 , . . . , vd sont des entiers de taille proche de O(p1/(2d+2) ) premiers entre eux. Dans ce cas, il n’est pas difficile de montrer que les idéaux principaux (u0 + u1 β + · · · + ud β d ) et (v0 + v1 β + · · · + vd β d ) se décomposent en idéaux de degré un dans Q(β). Le bénéfice d’un crible alors réalisé dans Q(β) est que les idéaux premiers facteurs de ces entiers algébriques sont systématiquement dans la base de lissité de Q(β). D’un point de vue plus algorithmique, notons que l’on peut très bien conserver à l’issue du crible des relations dont les idéaux premiers ne sont pas tous dans la base de lissité de Q(β). Ces derniers, s’ils ne sont pas de normes trop importantes, servent alors de « spécial-q » dans un crible annexe faisant intervenir Q(α). On peut aussi autoriser des idéaux de grande taille du côté Q(α), on a ainsi au final un véritable arbre de cribles successifs. 4.2. Extension aux corps non premiers. — Cet algorithme, qui est extrait de [19], prend en entrée un corps fini Fq et quatre paramètres : E > n le degré du second corps de nombre, t le degré des éléments sur lesquels nous allons cribler, B une borne sur les bases de lissité et S une borne sur l’espace de crible. Nous renvoyons aussi le lecteur au paragraphe 5 pour la détermination d’un optimum pour E, t, B et S quand q est donné. 4.2.1. Définition. — Il se décompose en quatre parties : l’initialisation, le crible, l’algèbre linéaire et la résolution finale. Les phases d’algèbre linéaire et de résolution finale étant identiques à celles du paragraphe précédent, nous passons ces dernières sous silence. 4.2.1.1. Initialisation. — On choisit un polynôme unitaire et irréductible de degré n à coefficients entiers, fα (X), avec de petits coefficients. En particulier, les racines de fα dans Fq forment base polynomiale. Il nous faut alors construire un polynôme fβ , de degré E à coefficients entiers tel que fα divise fβ modulo p, mais pas sur les rationnels. La première condition assure que fα et fβ ont n racines communes dans Fq . Dans le cas où E = n, choisir pour fβ le polynôme fα + p convient. PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 21 Quand E > n, on commence par fixer un polynôme f0 de degré n, avec de petits coefficients et irréductible sur Fp . On choisit alors une constante W arbitraire et l’on pose fα (X) = f0 (X + W ). Le plus grand coefficient de fα est de l’ordre de W n . Par réduction de réseau, on recherche alors un polynôme fβ de degré E et de coefficients plus petits que W n , tel que fα divise fβ modulo p. Cela peut-être fait en réduisant le réseau donné par les générateurs (en colonne) suivants : fα (X) Xfα (X) X2 fα (X) · · · XE−n fα (X) p pX pX2 · · · pXE . On peut montrer qu’avec l’algorithme lll, lorsque 2(E+1)/4 pn/(E+1) 6 W n , on obtient de cette façon un polynôme fβ (X) avec des coefficients de l’ordre de W n ≈ pn/(E+1) . 4.2.1.2. Crible. — Les paramètres t, S et B déterminent le crible. Nous considérons pour cette phase des (t + 1)-uplets (u0 , · · · , ut ) d’entiers premiers entre eux avec Pt Pt i i |ui | 6 S tels que les normes de i=0 ui α et i=0 ui βPsoient B-lisses. Chacune t de ces normes est égale au résultant de deux polynômes i=0 ui X i et fα (X) (resp. fβ (X)). Il est bien connu que le résultant peut être obtenu comme le déterminant d’une (n + t) × (n + t) matrice formée de t colonnes contenant les coefficients de fα et de n colonnes contenant les coefficients de l’entier. En utilisant l’inégalité d’Hadamard, nous pouvons borner la norme par nt/2 tn/2 Ba n Bf t , où Ba est une borne supérieure sur les valeurs absolues des ui et Bf une borne semblable pour les coefficients de fα (resp. fβ ). Pt Pt Lorsque que la norme de z1 = i=0 ui αi (resp. z2 = i=0 ui β i ) est B-lisse, les seuls idéaux principaux dans la factorisation de l’idéal (z1 ) (resp. (z2 )) sont au-dessus de nombres premiers π < B et l’on obtient une relation. La réduction dans le corps fini de ces relations est tout comme dans le paragraphe 4.1.2.3 rendue possible par l’introduction des « maps » de Schirokauer. 4.2.2. Exemple. — On souhaite ici calculer des logarithmes discrets dans F11932 . On choisit tout d’abord fα (X) = X 2 + 3 et fβ (X) = X 2 + p + 3. On énumère ensuite les couples (u, v) d’entiers premiers entre eux avec |u| 6 100 et 0 6 v 6 40 et l’on ne conserve que les couples (u, v) tels que les idéaux principaux (u + vα) et (u + vβ) se factorisent simultanément en idéaux premiers de normes bornées par 47 et 97. Une recherche rapide montre qu’il existe 85 tels couples, que nous donnons dans Tab. 7. Par exemple, on peut vérifier à partir de l’entrée (−94, 37) que Norm(−94 + 37α) = 7 · 432 et Norm(−94 + 37β) = 24 · 3 · 5 · 193 . Nous sommes ici en présence de deux corps quadratiques imaginaires, les unités de nos deux corps sont donc triviales et il n’est pas nécessaire d’ajouter de « maps » de Schirokauer. On peut donc inverser tel que le système obtenu modulo les facteurs premiers de (p2 − 1)/(p − 1). Typiquement, modulo 199, on trouve que la matrice correspondante a bien un noyau de dimension 1, dont il est possible, une fois fixé un élément primitif de Fp2 , de déduire des logarithmes discrets. En fait, le groupe de classe du corps défini par α est 22 ANTOINE JOUX & REYNALD LERCIER (-94,37) (-67,9) (-28,11) (-15,1) (-9,7) (-1,1) (5,23) (13,1) (23,1) (42,1) (79,2) (-89,13) (-89,17) (-65,11) (-58,1) (-26,3) (-23,1) (-13,1) (-13,3) (-8,17) (-7,1) (-1,2) (0,1) (6,1) (7,1) (13,3) (13,4) (23,12) (23,13) (53,1) (58,1) (82,1) (89,13) (-82,1) (-79,2) (-73,1) (-72,1) (-69,2) (-53,1) (-42,1) (-37,1) (-33,14) (-31,3) (-23,12) (-23,13) (-20,1) (-17,2) (-16,1) (-13,4) (-13,27) (-12,1) (-11,17) (-10,9) (-6,1) (-5,1) (-5,23) (-4,3) (-2,1) (1,1) (1,2) (2,1) (4,3) (5,1) (8,17) (9,7) (10,9) (11,17) (12,1) (13,27) (15,1) (16,1) (17,2) (20,1) (26,3) (28,11) (31,3) (33,14) (37,1) (65,11) (67,9) (69,2) (72,1) (73,1) (89,17) (94,37) Table 7. Relations issues d’un crible pour F11932 trivial (alors que celui qui est défini par β contient 8 éléments), ses idéaux premiers sont donc générés par un entier algébrique dont le logarithme discret correspond à une composante d’un vecteur du noyau. Par exemple, si on choisit comme élément primitif g = (a+11)/2 où a est l’une des racines de x2 +3 (g provient d’un générateur d’un idéal premier de norme 31), on trouve aisément que logg (2) = 0 mod 199, logg ((a + 3)/2) = 0 mod 199, logg (−a + 2) = 90 mod 199, etc. 4.3. Expérimentations en grandeur nature. — Nous décrivons maintenant, brièvement, un calcul réalisé en 2005 pour un nombre premier de 130 chiffres qui utilise le crible algébrique. Soit p = b10129 πc + 38914, i.e. p = 31415926535897932384626433832795028841971693993751058209749445923 07816406286208998628034825342117067982148086513282306647093883523 , nous cherchons alors à calculer le logarithme discret en base 2 de y = b10129 ec. La phase de crible consiste à trouver des couples (u, v) tels que l’idéal principal (u + vβ) soit de norme lisse dans le corps de nombres défini par X 3 + 12 X 2 − 13 X + 3 et tels que (uξ + vα) soit de norme lisse dans le corps de nombres défini par X 2 − 16909365834968487790611823369329079646668885 · X+ 20077251478186688202553272153633131115561222 · ξ , où ξ = 8258891862441565856565120580503979696050188. Ici, le groupe de Galois du polynôme de degré 3 est d’ordre 3. Le corps de nombres correspondant a deux unités fondamentales, 9 β 2 + 117 β − 41 et 3β − 1, son groupe de classe est d’ordre un. Le crible donna, après treize jours de calculs sur une machine avec 16 processeurs dec alpha cadencés à 1.15 ghz, 1 782 228 équations avec 1 556 351 inconnues. La base de lissité est constituée d’idéaux de normes plus petites que 18 815 207 (1 200 000 de nombres premiers) pour le corps de degré 2 ou plus petites que 5 799 977 (400 000 PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 23 nombres premiers) pour l’autre corps. Puisque les idéaux premiers sont tous principaux pour le corps de degré trois, on a tenu compte explicitement de ces unités pour normaliser les équations. Pour le corps de degré deux, par contre, il nous a fallu normaliser avec deux « maps » de Schirokauer. L’application d’une élimination Gaussienne structurée pour réduire notre système à 433 181 équations en 432 172 inconnues avec 35 323 996 entrées non nulles nécessita quinze minutes. La phase critique est l’inversion finale avec l’algorithme de Lanczos. Notre version parallélisée de cet algorithme a pris 8 jours pour 16 processeurs. À l’issue, nous avons le logarithme pour des générateurs d’idéaux de petites normes. En particulier, nous avons des logarithmes pour certains petits nombres premiers. Par exemple, log2 (3) = 18935022642385712265442162784856643707918464682969857705736136901 41150005617588988077853204617146221819982684416360486509655807744 , log2 (11) = 4237102728490621953875844147019736370886375829289178182680995735 01636485194195766410542501760951486387180557151162653894308532555 . Pour finalement calculer des instances particulières du logarithme discret, on tire avantage du groupe de Galois de Q(β). Précisément, nous avons trouvé en quelques heures deux entiers algébriques y1 et y2 tels que, 22 y = y1 /y2 mod p, et tels que, avec γ, la racine commune modulo p des polynômes de définition des deux corps de nombres, y1 = (−1 + γ)(−γ 2 − 11γ + 4)(γ 2 + 7γ − 1)(38γ 2 − 5γ − 14)(−58γ 2 + 51γ − 10) (−19968234615452γ 2 − 253095266814753γ + 88773815898184)(−103527432682334747γ 2 −1277679011473992359γ + 909588468749207990)(52211650γ 2 + 648088367γ − 410299369) (−10551006859γ 2 − 133733301857γ + 46901909959)(9γ 2 + 117γ − 41)−12 (3γ − 1)37 , y2 = (−1 + 2γ)2 (−250393155γ 2 − 3090199419γ + 2200155182)(−17257853γ 2 − 218912874γ + 74493007)(−6714524974γ 2 − 85147186243γ + 29313654043)(−110524082322γ 2 − 1346736343362γ + 1196134561937)(−1643288515585γ 2 − 20830007491278γ + 7286141994812)(9γ 2 + 117γ − 41)−17 (3γ − 1)49 . Alors, en utilisant une suite de cribles avec des spécial-q de tailles décroissantes, grâce à une heure de calcul pour chacun, on déduit log2 (y) = 21138488223786795657590463012228607444377276414435077577308395472 0095258549520212875421011837642236137330107919426669776684829109 . En conclusion, le temps dont nous avons eu besoin pour calculer le logarithme discret d’un élément arbitraire modulo un nombre premier de 130 chiffres sur une machine avec 16 processeurs dec alpha cadencés à 1.15 ghz est approximativement de 12 heures, une fois le crible (13 jours) et l’algèbre linéaire (8 jours) exécutés. 24 ANTOINE JOUX & REYNALD LERCIER 5. Algorithmes pour les corps de caractéristiques et degrés variables Nous avons exhibé dans les paragraphes 3 et 4 deux algorithmes pour résoudre le problème du logarithme discret dans un corps fini : un algorithme de type ffs (cf. paragraphe 3.2) et un algorithme de type nfs (cf. paragraphe 4.2). Ces algorithmes prennent en entrée un corps fini Fq et des paramètres supplémentaires D et E, t, B, S. Jusqu’à présent, nous avons considéré que soit la caractéristique, soit le degré, sont fixés lorsque q tend vers l’infini. Ici, en suivant [18, 19, 20], nous allons plus loin en explicitant selon la taille relative de p et n de quelle façon ces paramètres doivent être définis en fonction de q pour que l’algorithme obtenu soit systématiquement de complexité asymptotique Lq (1/3). Nous améliorons ainsi un vieux résultat de Adleman et DeMarrais qui proposait dans ce cadre des algorithmes de complexités seulement Lq (1/2) [2]. En fait, on peut montrer que la complexité de la résolution finale est toujours inférieure aux complexités du crible et de l’algèbre linéaire. En ce qui concerne ces dernières, d’une part, les cribles consistent à tester la lissité de polynômes définis sur des corps finis de degrés bornés ou d’entiers algébriques de normes bornées. Ce test pouvant être réalisé par des algorithmes de complexité négligeable dans ce contexte, le coût du crible est simplement égal au nombre d’éléments testés. D’autre part, la complexité asymptotique de l’algèbre linéaire est donnée par le carré du cardinal de la base de lissité. Enfin, il ne faut pas oublier que nous sommes contraints à avoir autant de relations après le crible que le nombre d’éléments de la base de factorisation. En se donnant p comme égal à exp(Λ(q)) où Λ(q) est une fonction positive, et donc, n comme égal à ln(q)/Λ(q), l’analyse met en évidence 5 cas (cf. Fig. 1). ln p Frontière 2 1 O(ln 3 q ln 3 ln q) Algorithmes NFS en Lq ( 31 , p 3 64 9 ) Algorithmes NFS en Lq ( 31 , p 3 128 9 ) Frontière 2 1 O(ln 3 q ln 3 ln q) Algorithmes FFS en Lq ( 31 , p 3 32 9 ) ln q Figure 1. Zones de complexités PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 25 – Cas du « Function Field Sieve ». – Si Λ ∈ o((ln q)1/3 (ln ln q)2/3 ), i.e. p est asymptotiquement négligeable devant toute fonctionp de la forme Lq (1/3, µ), nous avons un algorithme de complexité Lq (1/3, 3 32/9) (cf. paragraphe 5.1). – Cas du « Number Field Sieve ». – Si Λ ∈ ω((ln q)2/3 (ln ln q)1/3 ), i.e. p est asymptotiquement prépondérant devant toute fonction p de la forme Lq (2/3, µ), nous avons un algorithme de complexité Lq (1/3, 3 64/9) (cf. paragraphe 5.2). – Si Λ ∈ o((ln q)2/3 (ln ln q)1/3 ) \ O((ln q)1/3 (ln ln q)2/3 ), i.e. p est asymptotiquement négligeable (resp. prépondérant) devant toute fonction de la forme Lqp (2/3, µ) (resp. Lq (1/3, µ)), nous avons un algorithme de complexité Lq (1/3, 3 128/9) (cf. paragraphe 5.3). – Cas aux frontières. – Si Λ = µ(ln q)1/3 (ln ln q)2/3 pour une constante positive µ, i.e. p est asymptotiquement équivalent à une fonction de la forme Lq (1/3, µ), les algorithmes sont de complexité Lq (1/3, c) avec c variant en fonction de µ, au √ 3 minimum égale à 3 (cf. paragraphe 5.4). – Si Λ = µ(ln q)2/3 (ln ln q)1/3 pour une constante positive µ, i.e. p est asymptotiquement équivalent à une fonction de la forme Lq (2/3, µ), les algorithmes sont de complexité Lq (1/3, c) avec c variant en fonction de µ, au p 3 minimum égale à 64/9 (cf. paragraphe 5.5). Il s’avère que les algorithmes obtenus sont aussi très efficaces en pratique. Il suffit pour s’en convaincre de consulter Tab. 8. Nous reprenons d’ailleurs brièvement dans le paragraphe 5.6 le calcul que nous avons mené en 2005 dans F6553725 . Corps Taille Quand Complexité (chiffres) (gips year) Méthode Qui Lercier, Vercauteren Joux, Lercier Joux, Lercier Joux, Lercier, Smart,Vercauteren F37080118 F6553725 F37080130 101 121 168 2005 2005 2005 0.4 '0 0.1 tori ffs ffs Fp3 120 2006 1.2 nfs Table 8. Records pour le problème du logarithme discret dans Fpn 5.1. Corps de petites caractéristiques. — En toute généralité, l’algorithme ffs du paragraphe 3.2 considère des bases de lissité d’au plus 2pD polynômes irréductibles √ (en α et β). On sait, par ailleurs, que la probabilité qu’un polynôme de degré nD ait tous ces facteurs de degré au plus D, est égale à √ √ 1 1 (n/D)− 2 n/D · (n/D)− 2 n/D . 26 ANTOINE JOUX & REYNALD LERCIER √ − n/D Le nombre attendu de relations est donc au total de l’ordre de p2D+1 (n/D) , qui √ D doit être supérieur à 2p . Chacune de ces relations ayant de l’ordre de Dn termes, √ on arrive à une complexité asymptotique pour l’algèbre linéaire égale à O(p2D Dn). 2 1 2 1 Quand Λ ∈ o((ln q) 3 (ln ln q) 3 ), un bon choix pour D est δ (ln q) 3 (ln ln q) 3 /Λ(q) , où δ est une constante à déterminer, la plus petite possible. Avoir suffisamment √ de relations impose que D3/2 ln p 6 n ln n, ou de façon équivalente que Λ(q) 6 p 3/2 3 ln1−δ (q). Choisir δ = 4/9 convient, d’où on déduit une complexité asymptotique p 3 Lq (1/3, 2δ) = Lq (1/3, 32/9). 5.2. Corps de grandes caractéristiques. — Nous considérons ici l’algorithme du paragraphe 4.2 avec t = 1 et S = B. Les paramètres sont donc le degré E et la borne de lissité B. Dans cet algorithme, les coefficients de fα et fβ sont de l’ordre de R = pn/(E+1) = q 1/(E+1) . 1/3 Choisissons donc E = ε (ln q/ln ln q) et B = Lq (1/3, θ) , avec ε et θ, deux constantes à déterminer de façon à ce que la complexité finale soit la plus petite possible. Asymptotiquement, bornons les normes du côté de fα par RB n et celles du côté de fβ par RB E , le produit des normes est alors borné par B n+E q 2/(E+1) . Avec notre hypothèse sur Λ, le degré n est égal à ln q/Λ(q) ∈ o((ln q)1/3 /(ln ln q)1/3 ), il est donc négligeable devant E et p le produit des normes√est équivalent à Lq (2/3, θε + 2/ε). Il est minimal pour ε = 2/θ et égal à Lq (2/3, 2 2θ) dans p ce cas. La probabilité de lissité étant de Lq (1/3, −(1/3) · 2 2/θ) et le nombre de relations collectées lors du on p crible devant être plus grand que le cardinal de la base de lissité, p 3 a 2θ − (1/3) · 2 2/θ > θ. On en déduit que θ doit être au minimum égal à 8/9, ce p qui conduit à la complexité asymptotique attendue de Lq (1/3, 3 64/9). 5.3. Corps de caractéristiques et degrés moyens. — Nous considérons ici aussi l’algorithme du paragraphe 4.2. Mais p étant plus petit, relativement à n, l’espace de crible avec un choix de paramètre identique à celui du paragraphe 5.2 est insuffisant et nous manquons de relations à la fin du crible. Pour éviter ce problème, nous allons faire croître t vers l’infini avec q pour augmenter l’espace de crible et choisir E = n de façon à ce que les normes pendant le crible soient les plus petites possible. Les paramètres sont donc la borne B sur les éléments de la base de lissité, le degré t des entiers sur lesquels nous criblons et enfin la borne S sur les coefficients de ces entiers. Le crible consiste à tester la lissité de S 2t+1 entiers, la probabilité desquels d’être B-lisse étant asymptotiquement égale à nt/2 tn/2 S n et nt/2 tn/2 S n pt . Nous choisissons pour B, le plus proche entier de Lq (1/3, θ), pour t, le plus proche entier de τ (ln q)2/3 (ln ln q)1/3 /Λ(q) , et enfin pour S, le plus proche entier de exp(σΛ(q)(ln ln q)1/3 / ln q 1/3 ), avec θ, τ et σ des constantes à déterminer de façon à ce que la complexité finale soit minimale. PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 27 Avec un tel choix, le produit des normes est asymptotiquement borné par S 2n pt , i.e. Lq (2/3, 2σ + τ ). La probabilité de lissité est alors Lq (1/3, −(1/3) · (2σ/θ + τ /θ) , et son produit par l’espace de crible S t , doit être au moins égal à B. Enfin, nous devons égaliser la complexité du crible, i.e. S t , et celle de l’algèbre linéaire, i.e. B 2 . La traduction en équations de ces considérations conduit à θ = (2σ+τ )/3θ = στ /2 . √ 6 σ 3 )/3σ , dont un minimum est obtenu Une fois τpéliminé, on trouve p θ = (1 + 1 +p pour σ = 3 36/27. Il suit θ = 3 16/9, et τ = 3 32/3, p dont on déduit que la complexité de l’algorithme est égale à Lq (1/3, 2θ) = Lq (1/3, 3 128/9). 5.4. Corps à la frontière p = Lq (1/3, µ). — À cette frontière, il nous faut examiner à la fois la complexité de l’algorithme ffs du paragraphe 5.1 et celle de l’algorithme nfs du paragraphe 5.3. 2.8 2.6 q 3 128 9 2.4 D=1 2.2 Algorithmes NFS (t > 1, E = n) Algorithmes FFS c 2 q 3 64 D=2 9 1.8 D=3 D→∞ 1.6 q 3 32 √ 3 9 3 1.4 0 0.5 1 1.5 2 µ Figure 2. Complexités Lq (1/3, c) à la frontière p = Lq (1/3, µ) En ce qui concerne ffs, excepté que l’on considère maintenant que E est une constante positive fixe, et que donc on a une famille d’algorithmes paramétrée par E, la partie gauche l’analyse est proche de celle du paragraphe 5.1. Elle est résumée sur √ 3 de Fig. 2. On peut y noter que la plus petite complexité Lq (1/3, 3), est réalisée 2 pour E = 1 et µ = 3− 3 . En ce qui concerne nfs, avec un choix pour B identique à celui du paragraphe 5.3, 1/3 et un choix pour t et S égal à t ' (τ /µ) (ln q/ln ln q) et S ' (ln q)στ , on arrive à une complexité qu’il est difficile d’écrire ici en toute généralité de pfaçon concise, mais qui comme le suggère Fig. 2, tend comme attendu vers Lq (1/3, 3 128/9) quand µ est très grand. 28 ANTOINE JOUX & REYNALD LERCIER 5.5. Corps à la frontière p = Lq (2/3, µ). — À cette seconde frontière, il nous faut cette fois examiner la complexité de l’algorithme nfs du paragraphe 5.3 (avec E = n et t > 1) et celle de l’algorithme nfs du paragraphe 5.2 (avec E > n et t = 1) 2.5 2.4 2.3 q 3 128 t→∞ 9 Algorithmes NFS (t > 1, E = n) t=3 Algorithmes NFS (t = 1, E > n) 2.2 c t=2 2.1 2 1.9 q t=1 1 3 64 2 3 4 5 6 7 9 8 µ Figure 3. Complexités Lq (1/3, c) à la frontière p = Lq (2/3, µ) Dans le premier cas, on a à considérer une famille d’algorithmes paramétrés par une constante t. Si on choisit alors B = Lq (1/3, θ) et S = Lq (1/3, 2θ/(t + p 1)), on retrouve une complexité de Lq (1/3, (64/9)1/3 ) quand t = 1 et la limite Lq (1/3, 3 128/9) quand t → ∞. La succession de ces complexités, tronquées à leurs parties utiles, est tracée sur la partie gauche de Fig. 3. Dans le second cas, p on conserve dans la nouvelle analyse les paramètres E et B inchangés, i.e. E = ε 3 ln q/ ln ln q et B = Lq (1/3, θ). On obtient alors une complexité qui correspond à la partie droite de Fig. 3 et qui, quand µ est très grand, tend vers p Lq (1/3, 3 64/9). 5.6. Expérimentations en grandeur nature. — Nous nous intéressons ici√au corps fini F6553725 , qui nous semble typique du point de faible complexité Lq (1/3, 3 3) déterminé dans l’analyse du paragraphe 5.4. Le cardinal de ce corps a environ 120 chiffres décimaux, sa factorisation est q = 65536 · 3571 · 37693451 · 137055701 · 10853705894563968937051 · p247 . On choisit ici pour fα et fβ , les polynômes fα (X) = X 5 + X + 3 et fβ (X) = −X 5 − X − 1 , si bien que f (X) = X − fβ (fα (X)) est un polynôme irréductible de degré 25 qui nous permet de représenter polynomialement F6553725 . Soit α, l’une de ses racines, on pose β = fα (α). PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 29 Dans le crible, nous avons utilisé comme espace de recherche des polynômes bivariés de la forme y − (u X + v), avec u et v dans F65537 , que l’on cherche à écrire en α et en β, comme un produit de polynômes de degré D = 1. On trouve par exemple (α + 2445) · (α + 9593) · (α + 31166) · (α + 39260) · (α + 48610) = −2(β + 43449) · (β + 18727) · (β + 17129) · (β + 1946) · (β + 49823) . La phase de crible est en fait très rapide, environ deux minutes sur un ordinateur portable pentium cadencé à 1.6 ghz. Après une élimination gaussienne structurée, nous avons à résoudre un système linéaire creux de 79 466 équations en 78 465 inconnues avec un petit peu moins de 4 millions d’entrées. On a pu inverser ce système modulo ` = q/(65536 · 3571) en un peu moins de deux jours sur le même ordinateur. Nous avons ainsi le logarithme discret d’éléments de la forme α − a0 and β − b0 modulo `. Par exemple logα (α + 1) = 9580541088009323484229889821453339382943430459454536234824 840375483524017353229706334323184929723853320944439485 mod ` , logα (β) = 4649571275692520918560124050338108397005057301288170051718 556686238431642289730613529631676496393555258546887691 mod ` . La dernière phase consiste à choisir un élément arbitraire y de F6553725 , y = 24 X (bπ · 65537i+1 c mod 65537) αi = 41667α24 + · · · + 9279 , i=0 et de calculer son logarithme discret. On exprime d’abord y en utilisant des polynômes de degré au plus 3, puis on complète ce calcul par des cribles secondaires pour exprimer ces polynômes de degré 3 comme produits d’éléments de la base. Au final, on trouve en base g = 3α (α n’est pas primitif), en moins d’une heure, logg (y) = 4053736945052440744587988507271545773377910517074639935754736 348185260902857777282008537164926838353644893694741284146999 . 6. Conclusion Il apparaît finalement que le problème du logarithme discret est de difficulté plutôt uniforme, puisque dans tous les cas nous disposons d’algorithmes de complexité en Lq (1/3) pour le résoudre, même si en raffinant on s’aperçoit que certains corps sont √ plus aisés que d’autre. On exhibe en effet un algorithme de complexité Lq (1/3, 3 3) p 2 1 lorsque ln p = 3 1/9 ln 3 q ln 3 ln q. Ces résultats permettent bien sûr de choisir avec circonspection le dimensionnement cryptographique nécessaire pour atteindre un niveau de sécurité suffisant. Ainsi, il semble que certaines parmi les propositions publiées dans [7, 31, 8] doivent être reconsidérées à la lumière de nos algorithmes. 30 ANTOINE JOUX & REYNALD LERCIER Mais plus largement, on constate parfois dans d’autres domaines que la complexité d’algorithmes prenants comme entrée un corps fini Fq n’est donnée que pour des corps de degrés ou caractéristiques fixés. Citons par exemple, la multiplication, l’irréductibilité ou la factorisation de polynômes, le comptage de points sur courbes algébriques, etc. Il nous paraîtrait intéressant, dans le même esprit, d’élargir leur étude à des corps finis sans limitation sur la caractéristique ou sur le degré. Références [1] L. Adleman – « The function field sieve », in Proceedings of ANTS-I, Lecture Notes in Computer Science, vol. 877, 1994, p. 108–121. [2] L. Adleman & J. DeMarrais – « A subexponential algorithm for discrete logarithms over all finite fields », in Advances in Cryptology – CRYPTO ’93 (D. Stinson, éd.), Lecture Notes in Computer Science, vol. 773, Springer, 1993, p. 147–158. [3] L. Adleman & M. Huang – « Function field sieve method for discrete logarithms over finite fields », in Information and Computation, vol. 151, Academic Press, 1999, p. 5–16. [4] L. Adleman, R. Rivest & A. Shamir – « A method for obtaining digital signatures and public-key cryptosystems », Communications of the ACM 21 (1978), no. 2, p. 120–126. [5] M. Bellare & P. Rogaway – « Optimal asymmetric encryption », in Advances in Cryptology – EUROCRYPT ’94 (A. DeSantis, éd.), Lecture Notes in Computer Science, vol. 950, Springer, 1994, p. 92–111. [6] D. Boneh & M. Franklin – « Identity based encryption from the Weil pairing », in Advances in Cryptology – CRYPTO 2001 (J. Killian, éd.), Lecture Notes in Computer Science, vol. 2139, Springer, 2001, p. 213–229. [7] D. Boneh, B. Lynn & H. Shacham – « Short signatures from the Weil pairing », in Advances in Cryptology – ASIACRYPT 2001 (C. Boyd, éd.), Lecture Notes in Computer Science, vol. 2248, Springer, 2001, p. 514–532. [8] , « Short signatures from the Weil pairing », Journal of Cryptology 17 (2004), no. 4, p. 297–319. [9] E. Canfield, P. Erdös & C. Pomerance – « On a problem of Oppenheim concerning “factorisatio numerorum” », Journal of Number Theory 17 (1983), p. 1–28. [10] D. Coppersmith – « Fast evaluation of logarithms in fields of characteristic two », IEEE Transactions on Information Theory 30 (1984), no. 4, p. 587–594. [11] D. Coppersmith, A. Odlyzko & R. Schroppel – « Discrete logarithms in Fp », Algorithmica 1 (1986), p. 1–15. [12] W. Diffie & M. Hellman – « New directions in cryptography », IEEE Transactions on Information Theory 22 (1976), no. 6, p. 644–654. [13] R. Elkenbracht-Huizing – « An implementation of the number field sieve », Tech. Report NM-R9511, CWI, 1995. [14] D. Gordon – « Discrete logarithms in Fp using the number field sieve », SIAM Journal on Discrete Mathematics 6 (1993), p. 124–138. [15] A. Joux – « A one round protocol for tripartite Diffie-Hellman », in Proceedings of ANTS-IV, Lecture Notes in Computer Science, vol. 1838, 2000, p. 385–394. [16] A. Joux & R. Lercier – « The function field sieve is quite special », in Proceedings of ANTS-V (C. Fieker & D. Kohel, éds.), Lecture Notes in Computer Science, vol. 2369, Springer, 2002, p. 431–445. PROBLÈME DU LOGARITHME DISCRET DANS LES CORPS FINIS 31 [17] , « Improvements to the general number field sieve for discrete logarithms in prime fields. A comparison with the Gaussian integer method », Mathematics of Computation 72 (2003), no. 242, p. 953–967. [18] , « The function field sieve in the medium prime case », in Advances in Cryptology – EUROCRYPT 2006 (S. Vaudenay, éd.), Lecture Notes in Computer Science, vol. 4004, Springer, 2006, p. 254–270. [19] A. Joux, R. Lercier, N. Smart & F. Vercauteren – « The number field sieve in the medium prime case », in Advances in Cryptology – CRYPTO 2006 (C. Dwork, éd.), Lecture Notes in Computer Science, vol. 4117, Springer, 2006, p. 326–344. [20] , « An Lqn (1/3)-algorithm to compute discrete logarithms over all finite fields Fqn », 2007, In Preparation. [21] D. Knuth – The art of computer programming, Addison-Wesley, 1973. [22] M. Kraitchik – Théorie des nombres, Paris, Gauthier-Villars, 1922. [23] , Recherches sur la théorie des nombres, Paris, Gauthier-Villars, 1924. [24] B. LaMacchia & A. Odlyzko – « Solving large sparse linear systems over finite fields », in Advances in Cryptology – CRYPTO ’90 (A. Menezes & S. Vanstone, éds.), Lecture Notes in Computer Science, vol. 537, Springer, 1990, p. 109–133. [25] M. Lennon & P. Smith – « LUC : A new public key system », in IFIP TC11 Ninth International Conference on Information security IFIP/Sec, 1993, p. 103–117. [26] A. Lenstra & H. Lenstra (éds.) – The development of the number field sieve, Lecture Notes in Mathematics, vol. 1554, Springer, 1993. [27] A. Lenstra & E. Verheul – « The XTR public key system », in Advances in Cryptology – CRYPTO 2000 (M. Bellare, éd.), Lecture Notes in Computer Science, vol. 1880, Springer, 2000, p. 1–19. [28] , « Selecting cryptographic key sizes », Journal of Cryptology 14 (2001), p. 255– 293. [29] K. McCurley – « The discrete logarithm problem », in Proc. Symp. in Applied Mathematics, Cryptology and Computational Number Theory, no. 42, 1990, p. 49–74. [30] V. Miller – « Use of elliptic curves in cryptography », in Advances in Cryptology – Crypto ’85 (H. Williams, éd.), Lecture Notes in Computer Science, vol. 218, Springer, 1986, p. 417–426. [31] K. Rubin & A. Silverberg – « Supersingular abelian varieties in cryptology », in Advances in Cryptology – CRYPTO 2002 (M. Yung, éd.), Lecture Notes in Computer Science, vol. 2442, Springer, 2002, p. 336–353. [32] , « Torus-based cryptography », in Advances in Cryptology – CRYPTO 2003 (D. Boneh, éd.), Lecture Notes in Computer Science, vol. 2442, Springer, 2003, p. 349–365. [33] O. Schirokauer – « Discrete logarithms and local units », Philosophical Transactions of the Royal Society A 345 (1993), p. 409–423. [34] V. Shoup – « Lower bounds for discrete logarithms and related problems », in Advances in Cryptology – EUROCRYPT ’97 (W. Fumy, éd.), Lecture Notes in Computer Science, vol. 1233, Springer, 1997, p. 256–266. Antoine Joux, DGA & Université de Versailles St-Quentin-en-Yvelines, PRISM, 45, avenue des États-Unis, 78035 Versailles Cedex, France Reynald Lercier, DGA/CELAR, La Roche Marguerite, 35174 Bruz Cedex, France