Algorithme de Schoof
ย Avec la publication en 1985 dโun algorithme dรฉterministe de complexitรฉ en O(log8q) pour calculer le nombre de points dโune courbe elliptique dรฉfinie sur un corps fini Fq [101], Schoof offrait une alternative fort allรฉchante aux mรฉthodes de complexitรฉ en O(q 1/4log2q) connues jusquโalors. En effet, avec par exemple lโalgorithme โdes pas de bรฉbรฉ et de gรฉantโ de Shanks [107], il nโest pas envisageable dโavoir q > 1030. Nรฉanmoins, lโalgorithme de Schoof nโaurait pas pris lโimportance que nous lui connaissons aujourdโhui sans dโune part, les travaux dโAtkin qui, au travers de deux communications importantes [4, 5], montre comment calculer le nombre de points dโune courbe dรฉfinie sur F10275+693, et dโautre part, les travaux dโElkies [39] qui complรจtent ceux dโAtkin. ร lโinvitation dโAtkin qui รฉcrit en 1992, โsince there is now considerable variety in the mathematics and programming involved in the problem, itย is to be hoped that more people will try their hand at itโ, de nombreuses amรฉliorations ont suivi, notamment lโobtention de la cardinalitรฉ dโune courbe elliptique modulo des puissances de nombres premiers [34, 33]. Tous ces travaux forment le corps dโun algorithme probabiliste appelรฉ lโalgorithme SEA dont la complexitรฉ est de O(log6q). Notre but est ici de donner un panorama relativement complet de ces idรฉes en nous plaรงant dรฉlibรฉrรฉment dans un corps fini Fq quelconque. Nous serons ainsi mieux ร mรชme dโapprรฉhender lโutilitรฉ des algorithmes de la partie II. Une fois rappelรฉ comment sโapplique la mรฉthode de Shanks aux courbes elliptiques (section 3.1), nous faisons un rappel de lโalgorithme original de Schoof (section 3.2) avant dโexpliquer en quoi les mรฉthodes efficaces de calcul dโรฉquations modulaires dรฉveloppรฉes par Atkin amรฉliorent sensiblement cet algorithme (section 3.3). Enfin, nous expliquons comment, ร partir de ces รฉquations modulaires, la dรฉtermination dโisogรฉnies prรฉconisรฉe par Elkies permet aux implantations les plus optimisรฉes pour Z/pZ comme celle de Morain [91] dโatteindre des corps aussi gros que F10499+153 (section 3.4).
Cycle dโisogรฉnies
ย ย Pour dรฉterminer la trace c du Frobenius ฯE modulo une puissance de nombre premier โk, nous utilisons la mรชme idรฉe que pour dรฉterminer c mod โ, cโest-ร -dire projeter lโรฉquation caractรฉristique du Frobenius sur E, lโun des โk sous-groupes dโordre โk de E[โk]. La difficultรฉ รฉtant le calcul explicite de E, il est naturel, suite aux idรฉes prรฉcรฉdentes, de le rechercher comme le noyau dโune isogรฉnie I de degrรฉ โk. Couveignes, Dewaghe et Morain [34, 33] proposent deux variantes dโune mรชme idรฉe pour calculer I. Ainsi, sโils rรฉitรจrent k fois le calcul dโune isogรฉnie de degrรฉ โ dont la composition mรจne ร une isogรฉnie de degrรฉ โk, cโest lโensemble de dรฉfinition de I quโils font varier. Dans une premiรจre variante, I a pour ensemble de dรฉfinition E et est obtenue par rรฉcurrence comme la composition dโune isogรฉnie de degrรฉ โ dont lโensemble de dรฉfinition est la courbe dโarrivรฉe dโune isogรฉnie de degrรฉ โkโ1. Lโinconvรฉnient de cette mรฉthode est quโil nโest possible de tirer parti de la prรฉsence dโun facteur de petit degrรฉ du dรฉnominateur I quโen factorisant le numรฉrateur de toutes les isogรฉnies de degrรฉ โ. La deuxiรจme variante permet de remplacer ces k factorisations par la seule factorisation dโune isogรฉnie de degrรฉ โ dรฉfinie ร partir de E en composant une isogรฉnie de degrรฉ โ dont lโensemble dโarrivรฉe est cette fois lโimage dโune isogรฉnie de degrรฉ โkโ1 .
Isogรฉnies et points de 2-torsion
ย ย Manifestement, les relations sous-jacentes ร lโalgorithme du chapitre 7 pour F2n dรฉcoulent de la translation TPa par le point Pa dโordre 2 de la courbe. Pour gรฉnรฉraliser cet algorithme ร dโautres corps finis, il est donc naturel de se prรฉoccuper aussi de cette translation et nous montrons dans une premiรจre partie comment obtenir, ร partir de celle-ci, une caractรฉrisation des isogรฉnies semblable ร celle du chapitre 7. Nos tentatives pour tirer un algorithme complet de ces rรฉsultats se sont malheureusement soldรฉ pas un รฉchec. Nรฉanmoins, nous expliquons dans une deuxiรจme partie comment une application immรฉdiate nous permet de dรฉduire dโune part les coefficients du numรฉrateur g(X) de lโabscisse g(X)/h2 (X) dโune isogรฉnie linรฉairement en fonction de ceux de h2(X), et dโautre part au moins (โ โ 1)/2 relations linรฉaires entre les coefficients de h2(X).
pgcd simples
ย ย Les pgcd simples considรฉrรฉs sont les suivants.
โ Euclide : la routine Euclide de lโalgorithme 9.1 qui va nous servir de rรฉfรฉrence.
โ Lehmer : la routine Lehmer de lโalgorithme 9.2 associรฉe ร la fonction partielle Euclidien_partiel de lโalgorithme 9.5.
โ binaire : la routine schรฉma_binaire de lโalgorithme 9.8 associรฉe ร la fonction partielle binaire_partiel de lโalgorithme 9.9.
โ plus_minus : la routine schรฉma_binaire de lโalgorithme 9.6 associรฉe ร la fonction partielle plus_minus_partiel de lโalgorithme 9.9.
โ binaire_gรฉnรฉralisรฉ : la routine binaire_gรฉnรฉralisรฉ de lโalgorithme 9.13 avec un appel ร la routine conjugue de lโalgorithme 9.11 rรฉalisรฉe en double prรฉcision. Il apparaรฎt au travers de ces courbes que le meilleur algorithme dรฉpend fortement de lโarchitecture utilisรฉe. La raison essentielle est lโabsence dans lโassembleur des processeurs alpha des machines DEC dโune instruction de division (prรฉsente par contre sur les processeurs sparc des SUN), ce qui pรฉnalise Euclide. Les algorithmes binaire et plus_minus semblent nรฉanmoins รชtre une bonne alternative. Ainsi,par exemple, calculer un pgcd de deux entiers de 100 mots de 64 bits est sur une station DEC environ 10 fois plus rapide par celui-ci que par lโalgorithme Euclide, mais seulement 5 fois plus rapide pour 100 mots de 32 bits sur une station SUN. Lโefficacitรฉ de ces mรฉthodes est modulรฉe par la taille des entiers. Ainsi, les algorithmes dont les fonctions partielles sont rapides ร calculer (comme, par exemple, binaire_partiel) sont avantagรฉs pour les petites longueurs car il sโagit alors du coรปt majeur de ces derniers.
Algorithmique
ย ย Du point de vue algorithmique, ZEN tire parti de la collaboration de lโauteur ร deux librairies qui nโont pas รฉtรฉ diffusรฉes. Dโune part, la librairie CESAR initiรฉe par Morain pour Z/pZ et dโautre part, la librairie GFM, initiรฉe par Chabaud pour F2n . Les algorithmes qui y sont programmรฉs ayant รฉtรฉ longuement optimisรฉs (voir ร ce sujet [88, 65, 21]), ils ont bien sรปr รฉtรฉ une source dโinspiration prรฉcieuse pour ZEN. Nรฉanmoins, ZEN est autre chose que la rรฉunion de CESAR et de GFM. Le facteur dรฉterminant pour une implantation optimale est le choix de la structure informatique sous-jacente au stockage des รฉlรฉments, polynรดmes, etc, du corps fini considรฉrรฉ. Pour les entiers de taille arbitraire, il est ainsi maintenant communรฉment admis que la structure informatique optimale pour les stocker est un tableau contigu de โmotsโ (entiers de la taille โฆ des registres de la machine, gรฉnรฉralement 32 ou 64 bits). Cโest ce qui est programmรฉ dans BigNum et certaines des routines de CESAR qui ont pour arguments ces entiers ont รฉtรฉ reprises en y ajoutant la gestion des erreurs dรฉcrite au paragraphe prรฉcรฉdent. Cela est par exemple le cas du pgcd dโentiers dรฉveloppรฉ initialement par lโauteur pour CESAR et dรฉcrit dans le chapitre 9, de la racine carrรฉ ou du logarithme approchรฉ dโun entier dรฉveloppรฉs par F. Morain. . . Pour les corps finis, la situation est moins aisรฉe puisque les structures optimales dรฉpendent du corps fini et plus prรฉcisรฉment de sa caractรฉristique et de sa taille. Nous dรฉcrivons dans la suite celles de ZEN,description certes un peu rรฉbarbative, mais indispensable pour se rendre compte du travail rรฉalisรฉ. Nous donnons pour chaque type de corps, la structure informatique correspondante pour les รฉlรฉments, les polynรดmes et les matrices. Pour les sรฉries tronquรฉes et les courbes elliptiques, รฉgalement implantรฉs dans ZEN, le besoin dโune structure adaptรฉe ne sโest pas encore fait sentir et celle-ci est identique pour tous les corps.
|
Table des matiรจres
Introduction
I Algorithme SEAย
1 Corps finisย
1.1 Dรฉfinition
1.2 Cardinalitรฉ
1.3 Groupe multiplicatif
1.4 Sous-corps dโun corps fini
1.5 Automorphismes dโun corps fini
1.6 Existence
2 Courbes elliptiques dรฉfinies sur des corps finisย
2.1 Gรฉnรฉralitรฉs
2.1.1 Dรฉfinition
2.1.2 Loi de groupe
2.1.3 Morphismes
2.1.4 Spรฉcialisation ร C
2.1.5 Spรฉcialisation aux corps finis
2.2 Courbes particuliรจres
2.2.1 Cas jE = 0
2.2.2 Cas jE = 1728
2.2.3 Autres invariants supersinguliers
3 Algorithme de Schoofย
3.1 Algorithme โPas de bรฉbรฉ et pas de gรฉantโ
3.1.1 Algorithme
3.1.2 Exemple
3.2 Algorithme original de Schoof
3.2.1 Algorithme
3.2.2 Exemple
3.3 Premiรจres optimisations dโAtkin
3.3.1 Action du Frobenius sur E[โ]
3.3.2 รquations modulaires
3.3.3 Algorithme
3.3.4 Exemple
3.4 Idรฉes dโElkies et ses dรฉveloppements
3.4.1 Principe
3.4.2 Courbes isogรจnes et isogรฉnies
3.4.3 Cycle dโisogรฉnies
3.4.4 Exemple
II Calculs dโisogรฉnie entre courbes elliptiquesย
4 Algorithmes en grande caractรฉristiqueย
4.1 Formules de Vรฉlu
4.1.1 Corps algรฉbriquement clos
4.1.2 Reformulation dans un corps fini
4.1.3 Isogรฉnies de degrรฉ 2 sur un corps fini
4.2 Calcul dโisogรฉnie en grande caractรฉristique
4.2.1 Cas de C
4.2.2 Application aux corps finis
4.3 Rรฉsultats
5 Premier algorithme de Couveignes en petite caractรฉristiqueย
5.1 Prรฉrequis
5.1.1 Points de p-torsion
5.1.2 Groupe formel
5.2 Description thรฉorique de lโalgorithme
5.2.1 Morphismes de groupe formel
5.2.2 Conditions nรฉcessaires vรฉrifiรฉes par un morphisme
5.2.3 รnumรฉrations
5.3 Mise en ลuvre pratique de lโalgorithme
5.3.1 Calculs incrรฉmentaux avec des sรฉries tronquรฉes
5.3.2 Programmation efficace de lโalgorithme
5.4 Rรฉsultats
5.4.1 Exemples
5.4.2 Statistiques
6 Deuxiรจme algorithme de Couveignes en petite caractรฉristiqueย
6.1 Principe de lโalgorithme
6.1.1 Propriรฉtรฉs des points de pk-torsion
6.1.2 Algorithme
6.2 Points de pk-torsion
6.2.1 Constructions de Ea[pk]
6.2.2 Algorithme โnaturelโ
6.2.3 Deuxiรจme algorithme
6.2.4 Efficacitรฉ des deux approches
6.3 Isomorphismes entre Ea[pk] et Eb[pk]
6.3.1 Isomorphismes entre extensions dโArtin-Shreier
6.3.2 Rรฉsoudre Xp โ X = ฮด dans une tour dโextensions dโArtin-Schreier
6.4 Rรฉsultats
6.4.1 Exemple
6.4.2 Quelques temps de calcul
7 Algorithme en caractรฉristique deuxย
7.1 Isogรฉnies dรฉfinies sur F2n
7.1.1 Point de 2-torsion
7.1.2 Caractรฉrisation des isogรฉnies
7.2 Algorithmes
7.2.1 Systรจme linรฉaire dรฉfini sur F2n
7.2.2 Systรจme quadratique dรฉfini sur F2
7.2.3 Amรฉliorations pratiques
7.3 Rรฉsultats
8 Combinaison dโalgorithmes en caractรฉristique impaireย
8.1 Isogรฉnies et points de 2-torsion
8.1.1 Caractรฉrisation
8.1.2 Application
8.2 Connexion entre petite et grande caractรฉristique
8.2.1 Principe
8.2.2 Algorithme gรฉnรฉrique
8.2.3 Exploiter les formules de Vรฉlu
8.3 Exemple
III Implantation efficace et rรฉsultatsย
9 Plus grand diviseur commun de deux entiersย
9.1 Algorithmes de pgcd simples
9.1.1 pgcd euclidiens
9.1.2 pgcd binaires
9.1.3 Bilan
9.2 Algorithmes de pgcd รฉtendus
9.2.1 Algorithme de Lehmer
9.2.2 Algorithmes binaire et plus-minus
9.2.3 Algorithme binaire gรฉnรฉralisรฉ
9.3 Rรฉsultats
9.3.1 pgcd simples
9.3.2 pgcd รฉtendus
10 Corps finis et programmationย
10.1 Librairie de programmation ZEN
10.1.1 Trois principes fondateurs
10.1.2 Utilisation
10.2 Exponentiation
10.2.1 Chaรฎne dโaddition
10.2.2 Chaรฎne dโaddition-soustraction
10.2.3 Rรฉsultats
11 Quelques perfectionnements ร lโalgorithme SEAย
11.1 Optimisations de lโalgorithme de Schoof
11.1.1 Factorisation des รฉquations modulaires
11.1.2 Algorithme dโElkies
11.1.3 Algorithme de Schoof
11.2 Algorithmes โtri-rechercheโ
11.2.1 Prรฉparation des donnรฉes
11.2.2 Algorithme dโAtkin
11.2.3 Variante du โtri-rechercheโ dโAtkin
12 Programmation de lโalgorithme SEA et rรฉsultatsย
12.1 Implantation
12.1.1 Algorithmes utilisรฉs
12.1.2 Stratรฉgie statique
12.1.3 Stratรฉgie dynamique
12.2 Rรฉsultats
12.2.1 Corps de taille moyenne
12.2.2 Corps de grande taille
12.3 Application ร la cryptographie
12.3.1 Stratรฉgie โEarly abortโ
12.3.2 Rรฉsultats
A Exemple dโexรฉcution du programme SEA
Bibliographie
Tรฉlรฉcharger le rapport complet