Algorithme de calcul d`isogénies de Lercier et Sirvent

publicité
Fiche de stage S3023
Algorithme de calcul d’isogénies de Lercier et Sirvent
Description :
Introduction
Calculer des isogénies entre courbes elliptiques a de nombreuses applications en cryptographie asymétrique
et en théorie des nombres : compter des points à l’aide de l’algorithme SEA ou encore, construire des
schémas d’échange de clés utilisant des chemins d’isogénies entre courbes ordinaires ou supersingulières.
De nombreuses méthodes de calculs d’isogénies découlent d’une analyse théorique en caractéristique nulle
et si elles se transposent directement au cas des corps finis quand le degré de l’isogénie est petit, quand ce
dernier dépasse la caractéristique du corps fini, l’apparition de divisions par zéro les rend inapplicables.
L’idée de Lercier et Sirvent pour contourner ce problème est de travailler dans un relevé de caractéristique
nulle du corps fini, d’y conduire les calculs, et de ne réduire le résultat obtenu qu’au tout dernier moment.
Objectifs du stage
Le stage portera sur l’étude et l’implémentation de l’algorithme de calcul d’isogénies de Lercier et Sirvent. Il
s’agira en particulier d’analyser la précision p-adique nécessaire pour obtenir un résultat correct dans le
cadre théorique développé par X. Caruso, D. Roe et T. Vaccon en s’appuyant sur les travaux ultérieurs de T.
Vaccon et P. Lairez concernant la résolution d’équations différentielles p-adiques. Une autre question
intéressante est de s'assurer que les analyses de précision et de complexité s'appliquent aussi bien au cas
des extensions de corps finis qu'au cas des corps finis premiers. Le stagiaire s’attachera ensuite à
implémenter cet algorithme au sein d’une bibliothèque C open source, puis à en proposer des variantes et
des extensions afin d’obtenir des performances optimales dans diverses situations.
Le stagiaire sera amené à intéragir avec des chercheurs de l'UVSQ et du LIX.
Localisation :
31, quai de Grenelle – 75015 Paris
Durée :
6 à 9 mois
Compétences requises :
En programmation
• Maîtrise des langages de programmation C et Python nécessaire.
• Connaissance d’autres langages de programmation (par exemple C++) souhaitée.
• Connaissance élémentaire de l’architecture des ordinateurs.
• Connaissance de bibliothèques de calcul mathématique et en théorie des nombres (par exemple :
GMP/MPIR, MPFR, MPC, MPFRCX, FLINT, PARI, NTL, Givaro, Sage).
D’un point de vue théorique
• Connaissances mathématiques en algèbre et en théorie des nombres (par exemple : corps finis, courbes
elliptiques).
• Connaissances en algorithmique (par exemple : grands entiers, factorisation, primalité, arithmétique des
courbes elliptiques).
Formation :
• Bac + 5 - Ecole d'ingénieur ou formation universitaire en mathématiques ou en informatique fondamentale
Qualités requises :
• Ouverture d'esprit et rigueur
• Autonomie
• Aisance quant à la restitution écrite et orale des travaux
Fiche de stage S3023
ANSSI 51, boulevard de La Tour-Maubourg 75700 Paris 07 SP
Téléchargement