Algorithmique des courbes elliptiques dans les corps finis

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.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

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

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *