J
OURNAL DE
T
HÉORIE DES
N
OMBRES DE
B
ORDEAUX
F
RANÇOIS
M
ORAIN
Calcul du nombre de points sur une courbe elliptique
dans un corps fini : aspects algorithmiques
Journal de Théorie des Nombres de Bordeaux, tome
7, n
o1 (1995),
p. 255-282
<http://www.numdam.org/item?id=JTNB_1995__7_1_255_0>
© Université Bordeaux 1, 1995, tous droits réservés.
L’accès aux archives de la revue « Journal de Théorie des Nombres de Bordeaux » (http://jtnb.cedram.org/) implique l’accord avec les condi-tions générales d’utilisation (http://www.numdam.org/conditions). Toute uti-lisation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte-nir la présente mention de copyright.
Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques
Calcul
dunombre
depoints
sur une courbe
elliptique
dans
un corps fini :aspects
algorithmiques
par
FRANÇOIS
MORAINRÉSUMÉ. Nous décrivons dans cet article les
algorithmes
néces-saires à uneimplantation
efficace de la méthode deSchoof pour
le calcul du nombre depoints
sur une courbeelliptique
dans un corpsfini. Nous tentons d’unifier pour cela les idées d’Atkin et d’Elkies.
En
particulier,
nous décrivons le calculd’équations
pourX0 (l), l
premier,
ainsi que le calcul efficace de facteurs despolynômes
de division d’une courbeelliptique.
ABSTRACT. We describe the
algorithms
that are needed for anefficient
implementation
of Schoof’s method forcomputing
the number ofpoints
on enelliptic
curve over a finite field. We try tounify
the ideas of Atkin and Elkies. Inparticular,
we describe thecomputation
ofequations
forX0(l), l a
prime
number,
as well asthe efficient
computation
of factors of the divisionpolynomials
ofan
elliptic
curve.1. Introduction
Soit E une courbe
elliptique
définie sur un corps fini K =Fp.
decaractéristique
p.Depuis
le travail de Schoof[20],
on saitqu’on
peut
calculerla cardinalité de
E(K)
entemps
polynomial
en la taille du corps.Toutefois,
il a fallu les améliorations d’Atkin et d’Elkies pour rendre
l’algorithme
praticable
sur des corps de tailleraisonnable,
encaractéristique
pgrande.
Ce n’est que tout
récemment,
grâce
aux travaux deCouveignes
[6],
quel’algorithme
fonctionne enpetite caractéristique
(voir
aussi[14, 15]
pourles recherches en cours concernant
l’implantation
efhcace de cesidées).
Cet article
complète
l’article[21],
en donnant les versions lesplus
optimi-sées de certains des
algorithmes qui
y sont donnés. Nous renvoyons le1991 Mathematics Subject Classlfication. 11G20, 11F11.
Key words and phrases. Courbes elliptiques, corps finis, algorithme de Schoof, formes
modulaires, équations modulaires, polynômes de division.
Manuscrit reçu le 1er janvier 1995, dernière version le 27 juin 1995.
L’auteur est mis à disposition du LIX par la Délégation Générale pour l’Armement. Cette étude a été faite dans le cadre de la convention nOO044193 entre le CELAR et le LIX.
lecteur au même article pour
comprendre
les motivations de ces calculs.Nous tentons d’unifier dans cet article les travaux d’Atkin
[1, 2]
et d’Elkies[10] (voir
aussi[4]).
L’algorithme
de Schoof utilise de manière essentielle lespolynômes
de 1-division de la courbeE,
pour 1 premier.
Cespolynômes,
notéssont de
dégré
élevé(O(.~2)),
cequi
rend l’utilisation directe del’algorithme
problématique.
La clef de la versionpratique
del’algorithme
de Schoof estl’utilisation des
propriétés
des courbesXo (1) .
Soit4l«X, Y)
uneéquation
deXo {.~)
et j (E)
l’invariant de E. La factorisation dupolynôme
caractérise les sous-groupes
cycliques
de E et ainsi lesdegrés
des facteursdu
polynôme fg.
Il existe des cas favorables pourlesquels fi
a un facteur9i de
degré 4(.~),
cequi
rend les calculspratiquables.
On trouve alors cefacteur 9t
en utilisant une méthodeingénieuse
due à Atkin.L’architecture de cet article est la suivante. La deuxième section concerne
le calcul
d’équations
pour et pourXg(1),
lequotient
deXo (1)
par l’involution d’Atkin-Lehner. On décrit lesalgorithmes
de calcul dus enpartie
à Atkin pour cela. La troisième sectionprésente
desalgorithmes
de calcul de facteur depolynômes
de torsion en utilisant ceséquations. Ensuite,
onprésente
sous une forme condenséel’algorithme
du calcul du nombrede
points, appelé
enabrégé
SEA(Schoof-Elkies-Atkin).
Les améliorationsrécentes de
l’algorithme
sont aussiévoquées.
Nous nous concentrons sur le cas de corpspremier
degrande
caractéristique,
renvoyant
à[6, 14, 15]
pourles autres cas. Nous illustrons nos propos avec des
exemples numériques
représentatifs,
tirés de notre propreimplantation.
Unexemple
commentéest donné à la dernière section: il
s’agit
du calcul du nombre depoints
modulo un nombrepremier
de 500 chiffres décimaux.2. Calcul
d’équations
modulaires2.1.
Rappels.
Les résultats donnés ici sontclassiques.
On en trouvera les démonstrations dans[19]
parexemple.
Dans tout ce
qui
suit,
on note 1-l =tz
EC,
>01
ledemi-plan
dePoincaré. Pour T
E 1-£,
onnote q
=exp(2i7rT).
Nousemploierons
la mêmenotation pour une fonction
f (q) = f (T)
qui
est en fait une fonction de q.On définit encore
t
lecompactifié
de C etoù les cn sont des entiers
positifs.
Ces coeSicientspeuvent
se calculer par laméthode donnée dans
[16],
ou mieux encore en utilisantl’expression
de j (q)
en fonction des fonctions de Weber et de la fonction fi. De toute
façon,
cescalculs doivent être faits modulo de
petits
nombrespremiers
comme nousle verrons
plus
loin.Soit 1 un nombre
premier.
Le groupeest un sous-groupe
d’indice M
= 2 + 1 dans r. Les classes der/Fo(1)
sontengendrées
par
-et les
pour 0 k 1. On note
Xo(2)
la surface de Riemann etg(1)
son genre.
PROPOSITION 2.1. On a
On définit l’involution d’Atkin-Lehner wg associée à la matrice
Si
f ( q ~
est une fonctionmodulaire,
on noteraf *
=f lwt
=f
o wt.Une des
propriétés
intéressantes de Wt est la suivante.PROPOSITION 2.2. L’involution w,~ normalise c’est-à-dire
L’involution Wl transforme les classes de par
multiplication
àgauche
parWt
enNous noterons ces matrices
Moo,
Mo, ... ,
MI,
-PROPOSITION 2.3. Soit h le nombre de classes de
Q(
-~~,
Le nombre depoints
fixes
de Wl estOn pose
Xg (É)
=THÉORÈME
2.1. La courbeXô (.2)
est encore unesurface
de Riemann degenre
- ...
COROLLAIRE 2.1. E
41, 47, 59, 71}.
2.2. Calcul
d’équation
modulaire"canonique"
pourXo (1).
Nousallons montrer comment calculer une
équation
pourXo (1) ,
c’est-à-dire uneéquation polynomiale
dutype
= 0 oùf
est une fonction surra ~~).
Notons tout de suite
qu’on pourrait
se contenter d’utiliser le fait quej*
est une fonction surXo(~).
L’équation liant j à j*,
notée encoreq)t(F, J),
a des coefficients énormes. Parexemple,
Ces
problèmes
sont liés essentiellement au fait que lafonction j *
a unpôle
d’ordretrop
grand
à l’infini. Tout le but de cette section est de montrer comment trouver des fonctions d’ordreplus
petit,
et ce defaçon
canonique.
On pose s =
12/pgcd(12, ~ - 1), v
=s(B -1)/12
et on choisitPROPOSITION 2.4. La
fonction
f (T)
est unefonction
surOn note
4)c (F, J)
l’équation polynomiale
liantf (q)
à j(q) :
pour tout q,= 0. Ce
polynôme
peut
s’écrire"’-v
dont les coefficients sont des
polynômes en j ( q) .
2.2.1. Un
premier algorithme. D’après
laproposition 2.2,
la fonctionf *
= est encore une fonction surFo (1).
Lepolynôme
a donc aussi comme coefficients des
polynômes
en jq).
Parsuite,
onpeut
écrire:
O 1
et
Les
~’?,,
comme lesCk
sont despolynômes
en J. Nous prouvons maintenant, : PROPOSITION 2.5. Lesfonctions
s,, sont àcoefficients
dansC(q).
,Démonstration. On
développe Ir
en sërie :Soit ~
une racine l-ième de l’unité. On aLa somme à l’intérieur est nulle sauf
quand 11
nauquel
cas elle vaut 1. Par smte :00
Posons
, -v
On déduit de ce
qui
précède :
’
COROLLAIRE 2.2. Pour tout r, la valuation de
s,,(q) (resp. c~(q)~
estfvr/11 .
COROLLAIRE 2.3.
Pour tout r,1
r~+1,
onOn trouve les coefficients de ces
polynômes
encomparant
leursdévelop-pements
en série avec ceux despuissances
de j ~q).
La connaissance desSr
pour 1
r + 1 permet
de reconstruire les coefficientsOk (J)
à l’aide desformules de Newton : avec
Co(j)
= 1 on apour tout r
compris
entre 1 et 1 + 1.’
Exemple.
Prenons 1 = 5. Dans ce cas, on a s =3, v
= 1. On commence parcalculer
Ajoutant
lespuissances
def *(q),
on obtient :ce
qui
conduit à’Si(?)
= j ~q) -
750. De même :et finalement
On utilise les formules de Newton et on trouve :
Faisant ~’ =
53/X,
on trouve2.2.2. Amélioration de
l’algorithme.
Une autre manière deprocéder
consiste à reconstituer les coefficients dupolynôme
à
partir
des fonctions sr. Une fois celafait,
on calcule les coefficients deP(Y, J)
endéveloppant
l’expression
{~- f *{q))Q{~,
q).
Cettefaçon
de faireest très économe en mémoire et très efficace
quand 1
estgrand.
Le calculdes s,.
se fait àpartir
dudéveloppement
deJ(q)’-,
à l’ordre Iv + c, et lesséries
qui
en résultent ont v termes. Le calcul des c,, se fait encore sur desséries
ayant v
termes,
et celui desCr
également.
.Exemple.
Reprenons
le cas 1 = 5.Après
avoir calculéles si
commeprécé-demment,
on obtient d’abord :et on obtient
2.2.3. Un cas
plus
simple : quand
est de genre 0.Quand
Xo (1)
a genre
0,
E{2,3,5,7,13},
on saitqu’il
existe uneéquation
dutype
On récrit cela comme
Faisant
agir
Wt, on obtient:Il suffit de
remplacer j*
etf
par leursdéveloppements
en série pour retrouverles coefficients ck.
2.3. Calcul
d’équation
pourXô (.~).
L’ordre des fonctionscanoniques,
v,
augmente
rapidement
avec 1 et cela conduit à stocker despolynômes
degrand
degré
en J. Pourpallier
cetinconvénient,
onpréfère
travailler avecdes fonctions sur =
Fo (1)
Uwiro(l),
dontro(l)
est unsous-groupe. Une telle fonction est encore une fonction sur
L’avantage,
c’estqu’ü
estpossible
de travailler avec des fonctions d’ordre trèspetit
parrapport
à1.
2.3.1. Calcul de fonction sur la méthode d’Atkin. Pour
cer-taines valeurs
de 1,
on trouve des fonctionsparticulières
pourFj (1),
parexemple
dans[11].
La manièreclassique
deprocéder
est de chercher des formes modulaires de 0 mêmepoids
sur et de lesquotienter
pour obtenirdes fonctions.
À
titred’exemple,
donnons une fonction surXo*(11).
On poseUne fonction sur
X§ (11)
est donnée parL’implantation
des idées d’Elkies-Atkin nécessite la construction de fonctionssur
X~(1)
pour 1 premier jusqu’à
1000. Il est alors souhaitable d’avoir unalgorithme
degénération
de ces fonctions. Atkin a mis aupoint
pour celaCadcul de
l’équation
supersingulière.
On sait(cf.
[22,
p.137])
qu’une
courbeelliptique
E 1Ft,
supersingulière
est définie surJFt,2.
Onappelle
lepolynôme
de dont les racines sont les invariants des courbessuper-singulières,
et lepolynôme
ne contenant que les facteursquadratiques
de
PROPOSITION 2.6. Le
degré
deHl
(resp.
Hi) estg(2)
(resp.
2g*(~)).
Introduisons la fonctionhypergéométrique
où
(k)n
=k(k
+1) ... (k
+ n -1)
est lafactoriedle
montante.THÉORÈME
2.2(ATKIN).
Si 1 = 1mod 4,
on aoù G est un
polynômes
d edegré
g(l).
Si 1 == 3 mod4,
on aDans les deux cas
On trouvera dans
[3,
p.143-144]
une table donnant lespolynômes
Hl (X)
pour 1
307.Théorie. Pour ce
qui
suit,
on pourra sereporter
à[17]
ou[7,
Th. 6.9 pp.DeRa -
144].
Soitf (q)
une fonction surFi(1)
avec unpôle
d’ordre m àl’infini avec un
développement
dutype
+ ~ ~ . Alorsf
est congrueà un
polynôme en j
modulo 1. NotonsP(j)
cepolynôme.
SoitH(X)
unfacteur de
HÉ (X).
Alorsoù
a(H)
E1Fi.
Autrementdit,
ou encore
P(X )
est dans le noyau de la matrice deBerlekamp
associée àF;(X).
Soit alors
C~
la matrice dont la k-ième colonne contient les coefficients de mod(HÉ (X ), 2)
sur la base(1,
X,
X2, ... ).
Soit unpolynôme
du noyau de
l~ -
I dedegré
minimum. Une fonctionf (q)
deplus
petite
valence sur vérifie ainsiet
Supposons
maintenant que(1 + 1)/24
> v. On calculeen
prenant
pour les gn lesplus petits
résidus modulo 1. Lafonction g,
regardée
surZ,
est une formeparabolique
depoids
1 pour un certaincaractère ~.
D’après
le théorème deSerre-Deligne
[8,
Th.9.1],
les coefficientde
g ( q )
vérifient :où
d«n)
compte
le nombre de diviseurs de npremiers
avec 1.Donc,
lescoefficients
de 9
trouvés modulo 1 sont considérés être les coefficientsde g
dans
Z,
du moins à l’ordrequi
nous intéresse. Il est alorspossible
d’identifierg comme étant une combinaison linéaire de fonctions theta binaires tordues
par certains caractères.
La fonction
f
cherchée est alorsoù c est une constante de que l’on
prend égale
àgo.
Remarque.
Les seuls cas pourlesquels 1
1000 et(1
+1)/24
> v sontles suivants :
(1,
v)
6 {(11,1),
(17, 1),
(19,1), (37, 2), {43, 2),
{67, 3),
(163,7)}.
D’unpoint
de vuepratique,
on utilisel’équation
canonique
pour l
43,
et des fonctions ad hoc pour 67 et
163,
obtenues par combinaison linéaired’opérateurs
de Heckeagissant
sur une fonction theta bien choisie.Exemple.
Soit 1 = 73. On trouve :soit
On calcule la matrice
Q
dont la k-ième colonne contient les coefficients deOn recherche alors le noyau de
Q -
I,
cequi
nous donneSeul
le deuxième vecteur nous intéresse. La fonction que nous cherchons estdonc:
Maintenant,
on calculeg(q)
= mod 73 :On retranche alors le terme
-r¡(q)r¡(q73)
pour trouversoit
Soit
e(n, m)
la fonctionqui
vaut +1 si n mod 6 E{0,1, 5}
et -1 sinon. Ontrouve que
x-37~z4+3g(q)
+ est congrue à la fonction2.3.2. Calcul du
polynôme
minimal. La méthode décrite dans la section2.2.1 est
utilisable,
enparticulier
la méthode décrite à la section 2.2.2.Quand
ondispose
debeaucoup
de mémoirecentrale,
onpeut
utiliser unedeuxième
méthode, proposée
elle aussi par Atkin.Soit
f {q~
une fonction surr*(1).
Lepolynôme
minimal def
est :avec
Cr {J)
EQ[J].
Parapplication
de l’involutiond’Atkin-Lehner,
on aégalement :
En utilisant le lemme
2.2,
on trouve cette fois queOn détermine d’abord
comme à la section
précédente.
Il est facile de voir quece
qui
conduit àC1(J) =
-J" + ....Une fois ceci
fait,
on utilise le lemme suivant :LEMME 2.1.
L’équation
al + bv = m, pour 0 m21v,
a auplus
uneseule sodution
(a, b)
vérifiant
0 a2v,
0 b 2. Cette solution estdonnée par b =
m/v mod 1
et a =(rn -
bv)/2
quand
cettequantité
estpositive
ou nulle.On calcule
Rl (q) -
+Ci
comme une série en q, cequi
nous donneOn cherche alors les termes
J*~F~
qui
contiennent le terme Autrementdit,
on cherche a et b tels que al + bv = 2vl etd’après
lelemme,
une seulesolution
existe,
qui
est a =2v,
b = 0.On calcule alors =
+ j(qt)2v
comme une série enq et on
applique
le mêmeprincipe
à la détermination ducoefficient
suivant.Le calcul se
poursuit
jusqu’à
la détermination des coefficients deCI+,
(J).
À
la fin ducalcul,
lereste,
considéré comme une série en q, doit avoir tousses coefficients
nuls,
à l’ordre utilisé. Le lemme(2.1)
fournit deplus
un testinfaillible. Si la valuation de R est m, mais que
l’équation
al + bv = m nedonne pas de
solutions,
alors le calcul est faux.Dans la
pratique,
onprécalcule
lespuissances
def
en tant que sériedans un tableau et on effectue les à la
demande,
cequi
est relativementrapide
car la est creuse, la distance entredeux termes étant 1.
Compte
tenu desparamètres,
les séries sont calculées à l’ordre1(2v + 1).
Exemple. Reprenons
le cas 1 = 11. On commence par déterminerce
qui
veut dire que lespremiers
termes de sontF12 -
(J -
fi$4)F~1,
qui
sontrangés
dans P. On calculeet
Le terme suivant ne
peut
provenir
que deJ*F~°,
c’est-à-direet
On continue ainsi
jusqu’à
trouverFinalement,
on obtientLa méthode décrite est
efficace,
si on stocke les séries FI pour 1 a1,
cequi
conduit à unstockage
de l’ordre de1(1(2v
+1)
+c) =
O (.~2 )
cequi
est énormequand 1
augmente.
2.3.3. Cas où est de genre 0. Dans le cas où
Xg (1)
est de genre0,
i.e., .~
31 ou 1 E{41,47,59,71},
on sait queoù le
degré
en F est + 1 et ledegré
en ~I est 2. Autrement dit :avec S et P de
degré 1
+ 1. On sait aussi que J et J* sont les racines decette
équation.
Autrement ditIl suffit de
remplacer j(q)
et j(qe)
par leursdéveloppements
en série et2.3.4.
Remarque
sur les calculs. Les calculsd’équations
modulaires nesont pas faits en
entiers,
maisplutôt
modulo depetits
nombrespremiers,
pour
lesquels
lesopérations
élémentaires se fontrapidement.
Les coefficientssont reconstruits l’un
après
l’autre à l’aide du théorème chinois. Les sériesconsidérées
ayant
beaucoup
determes,
il est nécessaire d’utiliser desalgo-rithmes de
multiplication rapide,
commel’algorithme
de Karatsuba et la FFT[12].
Notons quel’algorithme
leplus rapide,
décrit à la section2.2.2,
calcule lesquantités
f (q)~
l’uneaprès
l’autre. On économise de la mémoiredans la FFT en
gardant
en mémoire deux FFT consécutives.Atkin recalcule à la volée les
équations
nécessaires. Nouspréférons
quant
à nousprécalculer
ceséquations
et les stocker. Il faut 41 Moctets pour stocker toutes leséquations correspondant
à 1 500. Dans notreimplan-tation,
il a fallu 165 heures detemps
CPU surDecAlpha
pour construire4> *
499On
peut
se demander comment nous pouvons vérifier les calculs faits.La
façon
laplus
convaincante est d’utiliser lespropriétés
de factorisationdes
4l(F, J)
modulo p. Pourcela,
on calcule des nombres depoints
sur des courbes E modulo depetits
nombrespremiers
p et on choisit une valeur dej
pourlaquelle
ladécomposition
estremarquable :
cela se fait en utilisant laproposition
4.1 de[21],
en connaissant t. On factorise alors16(X, j) modp
et on compare les résultats. Le
type
dedécomposition
est siatypique
que cela suffit pour se convaincre.3.
Implantation
del’algorithme
SEAL’algorithme
de Schoof utilise lespropriétés
despoints
de 1-torsion modulop. En
particulier,
tous les calculs doivent être faits modulo lepolynôme
de 1-division noté L’idée d’Elkies est deremplacer
les calculs moduloce
polynôme
par des calculs modulo un facteur de cepolynôme,
quand
celaest
possible.
3.1.
Description
schématitque. L’algorithme
procède
ainsi. Pour 1L,
on effectue les
opérations
suivantes.(1)
On calcule uneéquation
de soitJ) .
(2)
On recherchesi $(X)
=mod p
a des racines modulo p ;si
oui,
onpeut
utiliser les idées d’Elkies et calculer un facteurde par la méthode d’Atkin
(décrite
ci-dessous) ;
on recherchealors la valeur
propre k
telle quedans
IFp[X,Y]j(gl(X),y2 -
(X3
+ AX +B)),
cequi
donne t(3)
Si~(X)
n’a pas de racine modulo p, on détermine les classes de tpossibles
en déterminant letype
de factorisation de~(X)
mod p.
Le nombre 1 est dit nombrepremier
On s’arrête
quand
leproduit
des nombrespremiers 1 dépasse
la borne 3.2. Utilisation de calculs sur les formes modulaires. On notele réseau
7GW1
+ZúJ2
avec T =w2/cy
E 7. Identifions la courbeE à Comme
expliqué
dans[21],
le calcul d’un facteurdu
polynôme
de divisionft(X)
se réduit essentiellement au calcul descoefficients de la courbe
Ê
=d’équation y2
=x3
+Âx
+B,
ainsi
qu’à
celui de. -.,
Il est facile de voir que la courbe
E
estisomorphe
àE
=Notons tout de suite
que j * = j .
On utilise les notations de
[21].
Soit la série d’Eisenstein d’ordre ~ . On a les formulesOn fera désormais les conventions 2ix = 1 et
f’(q)
=qdf
/dq.
Rappelons
lesformules :
Le but de cette section est de trouver des formules
algébriques
pour les3.2.1. Le cas
canonique.
Onrappelle
queest racine d’une
équation
dutype
On commence par
calculer A
parOn calcule ensuite
soit pi =
Détermination de
Ê4.
On différenciel’équation
On pose
On obtient
On
remplace
alors J’ à l’aide de(6)
et F’ à l’aidede (9) :
ce que l’on
récrit,
en introduisant les notationsDF =
F8F,
D J
= etEo
= en
-On différencie cette relation et on obtient :
On
remplace
de nouveau F’ etJ’ par
leurs valeurs. On trouve, ...
-Pour
simplifier,
on poseNous allons maintenant chercher une relation faisant intervenir
E4
et.Eo’,
cequi
nous donneraË4
après
élimination deEo’.
Pour cefaire,
oncommence par différencier
On trouve
Mais par ailleurs:
en
appliquant
deux fois(8).
Il ne resteplus qu’à
reporter
la valeur de Z’ dans(11)
pour finalement trouver:L’élimination de
Eo’
entre(10)
et(12)
permet
de trouverÊ4.
Détermination de
É6.
Notons pour commencer que nousavons j
à l’aidede
(5).
Ensuite,
on différencie’
ce
qui
donneOn écrit alors , et on trouve
ce
qui
nous donneË6.
.Exemple numérique.
On considère lacourbe y’ =
~3
+ x + 1 mod 101 et onchoisit 1 = 7. Dans ce
cas, on a v = 1 et s = 2.
Le
polynôme ~7
a pour valeur :On calcule J = 34. Modulo
101,
on trouveOn choisit F = 20 ce
qui
donne immédiatementF
=72/20
= 58. On endéduit
A =
(F6A)/7 12
= 87. On calcule alorsD’autre
part,
on aE4
=-1/3
=67, Eo =
-1/2
= 50. On obtientd’abord Z =
64, puis
E4
= 72.Enfin,
on trouve J = 90 etE6
= 45. D’oùl’équation
de la courbeisogène
A
= 19,
B
= 26 et p1= 31.3.2.2. Le cas de On
part
cette fois d’uneéquation
dutype
où F
représente
une fonction surrô(f).
Notons tout de suite que par
application
de we, on obtientCette
fois,
nous devons rechercher les racines de cetteéquation
dedegré
/y 111 IV Y
2v - 1 en
J.
Pourchaque
valeur dej,
on calcule alors lesquantités
E4,
Ê6
et Z pour finalement calculer le facteur de
qu’il
faudra vérifier parles méthodes décrites
plus
loin.Détermination de
Ê4
etË6.
On différencie unepremière
fois(14) :
d’où l’on tire
On différencie ensuite
(15)
d’où l’on obtient
Il ne reste
plus qu’à remplacer
.F’ par sa valeur(16)
pour trouver la valeur de Une fois celafait,
on calculeÊ4
parDétermination
de pl.
On différencie(14)
une deuxième fois:On calcule alors J" par différenciation de
(6) :
On
injecte
cette valeur dans la relationprécédente
et onremplace
J’ par sa valeur. On trouve alors :On utilise alors
(16)
poursimplifier
cette relation :.
On effectue le même travail à
partir
de(15) :
où il faut lire
Exemple numérique. Reprenons
la courbed’équation y2
= X3
+ x + 1 mod 101. Prenons cette fois 1 = 23. On trouvece
qui,
après
substitution
de J =34,
donnepour racines .F = 20 et F = 42.
Choisissant F =
20,
on en déduitque j
est racine deOr ~T = 34 est aussi une racine de ce
polynôme,
donc i
= 2. On trouvealors F’ =
66, puis
È,
=46,
É6
=5,
,Z = 62.3.3. Calcul des coefficients de Posons d =
(1 - 1)/2.
Onpeut
calculer1 1 , ,
comme dans
[21,
Th.5.3]
ou bien onpeut
développer
la relationconsidérée,
comme dans
[10] (également [4]).
Soientp(z)
etp(z)
les fonctions deWeierstrass associées
respectivement
aux courbes E etÊ.
On aavec les ui dans
.Bj,
et de même pourg3.
Avec les notations de[21],
on apour 1~ > 3 et de même pour
g5.
Posanton montre alors que
pour k
> 1 et enparticulier
ce
qui
permet
de calculer les pi deproche
enproche
et de terminer avec les sommes de Newton.3.3.1. Vérification de La
façon
laplus simple
de vérifier queest bien un facteur de
fi
est de calculer1(X, Y)
dansSi
g~(X)
est bien unfacteur,
alors cettequantité
doit valoirQ,~.
Cette manière de
procéder
est relativement couteuse. Uneapproche
proba-biliste consiste à remarquer que si gl est bien unfacteur,
alors les pi sontles sommes de
puissances
des racinesde 9i.
et elles doivent vérifier enparticulier :
pour tout i > 0. Si cette relation n’est pas vraie pour une valeur de
i,
alorsBi n’est pas le facteur attendu.
En
pratique,
on utilise d’abord cette idée(typiquement
pour tous lesi
4),
puis
on prouve que le facteur est bon à l’aide de lapremière
méthode. 3.3.2.Exemple numérique.
Considéronstoujours
E : y2
= x3
+ x +1 mod 101 et 1 = 7. On a vu
que A
= 19,
B = 26 et pi = 31. On trouvealors que
qui
est bien un facteur def7(X).
3.4. Recherche des valeurs
possibles
de t mod ~. Si 1 est un nombrepremier
d’Elkies,
dans le casgénéral, 4l«F, J)
a deux racines distinctesFi
et
.F2
et s facteurs dedegré r
tel que rs = ~ ~-1. D’autrepart,
d’après
[21~,
s doit être tel que
~ ’"
Si 1 est un nombre
premier d’Atkin,
4l(F, J)
se factorise comme unproduit
de s facteurs irréductibles dedegré r
où r est l’ordre dea//3,
aveca et
Q les
racines deX 2 -
tX+ p ~
0 mod 1 dansF12.
On a donc r s = 1 + 1et on utilise aussi le fait que
D’un
point
de vuepratique,
ondispose
deXp
= XP mod où %est le
polynôme
dont on a éventuellement enlevé les facteurslinéaires. Avec
cela,
r est leplus petit
entiercompatible
avec les conditionsprécédentes,
pourlequel
Si 1 est un nombre
premier d’Atkin,
on détermine un ensembleT
devaleurs
possibles
de t mod ~. Ces informationspeuvent
être utilisées avecles autres valeurs de t connues, dans un processus de tri-recherche décrit
dans
[1].
Utiliser ces informationspermet
de réduire notablement la tailledes 1 utilisés. Notons que les 1 intéressants sont ceux pour
lesquels 1
+ 1 abeaucoup
de diviseurs et r estpetit.
Si r esttrop
grand,
l’ensembleT
esttrop
grand
et les calculs à faire sonttrop
nombreux.3.5. Utilisation de
l’algorithme original
de Schoof.Supposons
que1 soit un nombre
premier
d’Atkin. Si 1 estpetit,
onpeut
songer à utiliser laformulation
originale
del’algorithme
d’Atkin,
i.e.,
chercher t mod 1 tel quedans
(X3
+ AX +B) ~
Soit r le
degré
duplus petit
facteur de ~. Commeremarqué
parDewaghe
[9],
lepolynôme
de 1 division a s facteurs dedegré
r(~ -1)/2.
Onpeut
calculer un de ces facteurs de la
façon
suivante. Soit.P(X)
un facteur dedegré
r de ~. On utilise alors les formules d’Elkies enprenant
commeracine de
~,
laquantité
X modP(X).
On calcule ainsi un facteur dedegré
(l - 1)/2
de dansFpr ,
d’où l’on déduit un facteur defi(X)
dansFp
par
conjugaison.
Remarquons
qu’une façon agréable
deprocéder
consiste à calculer lesquantités
pipour i
r (~ -1 ) /2
et à calculer lesconjugués
de3.fi. Recherche de la valeur propre. Une fois r
trouvé,
il est facile d’endéduire les valeurs
possibles
de t mod 1. Dans le cas des nombrespremiers
d’Elkies,
d’en déduire les valeurspossibles
des valeurs propres, cequi
réduitles calculs de
comparaison
de laphase
finale: onpeut
alors chercher àévaluer tous les
Y)
possibles
en cherchant une chaîne d’additionpassant
par tous les k.
Une autre
stratégie possible
consiste à utiliserl’algorithme
des pas debébés et des pas de
géants
pour trouverk,
cequi
donne une méthode en0(B/Z),
qui
est rentablepour 1
assezgrand.
Dans certains cas, il n’est pas nécessaire de comparer
(XP,
YP)
à(Xk,
~ (X, Y),
mais seulement YP àYk,
cequi
économise le calcul de XP.THÉORÈME
3.1(ATKIN).
On supposequ’on
a trouvé k tel que YP =Yk.
Alors k est la valeur propre cherchée si l’une des deux conditions suivantes
est
satisfaite: 1
= 2 mod 3 ou lecoefficients
dedegré
{~ - 3)/2
de9t(X)
estnon nul.
Des améliorations récentes ont été
apportées
par Müller dans[18].
Ces améliorations sont d’autantplus
efficacesqu’on
les combine avec celles deDewaghe
[9].
4. Un
exemple
commenté ,Le record actuel
(janvier 1995)
est dû à l’auteur et nous donnonsquelques
précisions
ci-dessous.Soit p =
10499
+ 153 et soit .E la courbed’équation
Le nombre de
points
de E estLes calculs ont été faits sur
plusieurs DecAlpha (du
LIX et àl’INRIA)
etse sont terminés le
26 janvier
1995. Il a fallu 2900 heures pour le calcul deDans le cas où 1 est de
type
A(c’est
parexemple
le cas de 1 =271),
on
peut
tenter de recourrir àl’algorithme original
de Schoof en utilisantl’approche
deDewaghe
[9].
Dans les tableaux
qui
suivent,
on donne desrenseignements
complémen-taires sur t mod In. Si 1 est de
type
E,
on donne les valeurs propres de4>
ainsi que leurs ordres sous la forme(t, l~l , d 1, k2 , d2 ) .
Dans le casA,
ondonne le
rapport
entre~/(~ 2013 1)
où n est le nombre de classespossibles
det mod 1
(plus
lerapport
estpetit, plus 1
estutile).
Une étoileindique
quele nombre
premier
a été retenu pour laphase
de tri-recherche. Noter quetous
les nombrespremiers
ne sont pasprésents :
la recherche de toutes lesvaleurs est
parfois
coûteuse et n’est intéressante que si 1 + 1 abeaucoup
dediviseurs.
5. Conclusion
Nous avons tenté de donner un aperçu des
techniques
à mettre en oeuvrepour
compter
le nombre depoints
sur une courbeelliptique
modulo p.D’autres améliorations ont été
apportées récemment,
enparticulier
en cequi
concerne l’utilisation despuissances
des nombrespremiers
d’Elkies. Nous renvoyons à[5]
pour cela.Signalons
pour finir que, dans le cas de lacaractéristique
2,
le record actuel est le calcul de la cardinalité d’une courbeelliptique
dansF26o,,
détenu par Lercier. ’Remerciements. L’auteur tient à remercier 0. Atkin pour son aide
pré-cieuse lors de
l’implantation
del’algorithme
et pour sesréponses
auxnom-breuses
questions
que l’auteur lui aposées ;
B. Edixhoven pour seséclaircis-sements concernant les
propriétés
de la courbeXo
(1) ;
R. Schoof pour defructueuses discussions concernant SEA et pour avoir mis à sa
disposition
son article[21].
BIBLIOGRAPHIE
[1]
A. O. L.Atkin,
The numberof points
on anelliptic
curve modulo a prime,Manuscrit,
1988.[2]
A. O. L.Atkin,,
The numberof
points
on anelliptic
curve modulo aprime
(ii),
Manuscrit,
1992.[3]
B. J. Birch et W.Kuyk
(Réd.),
Modularfunctions of
one variableIV,
LectureNotes in
Math.,
vol.476,
Springer,
1975,
Proceedings
International SummerSchool
University
ofAntwerp, RUCA, July
17-Agust
3, 1972.
[4]
L. S.Charlap,
R.Coley,
et D. P.Robbins,
Enumerationof
rationalpoints
onelliptic
curves overfinite fields,
Manuscrit,
1991.[5]
J.-M.Couveignes
et F.Morain,
Schoof ’s algorithm
andisogeny cycles,
ANTS-I(L.
Adleman et M.-D.Huang,
Réd.),
Lecture Notes inComput.
Sci.,
vol.877,
[6]
J.-M.Couveignes, Quelques
calculs en théorie des nombres,Thèse,
Université de BordeauxI, juillet
1994.[7]
P.Deligne
et M.Rapoport,
Les schémas de modules de courbeselliptiques,
Modular functions of one variable II(P.
Deligne
et W.Kuyk,
Réd.),
Lecture Notes inMath.,
vol.349,
Springer, 1973, Proceedings
International Summer SchoolUniversity
ofAntwerp,
RUCA,
July
17-Agust
3, 1972,
p. 143-316.[8]
P.Deligne
etJ,-P, Serre,
Formes modulaires depoids
1, Ann. scient.Éc.
Norm.Sup.
7(1974),
507-530.[9]
L.Dewaghe, Remarques
surl’algorithme SEA,
enpréparation,
décembre 1994.[10]
Noam D.Elkies, Explicit
isogenies,
Manuscrit, 1991.
[11]
R.Fricke,
Lehrbuch derAlgebra,
III,
F.Vieweg
andSohn,
Braunschweig,
1928.[12]
D. E.Knuth,
The Artof Computer Programming :
Seminumericalalgorithms,
Addison-Wesley,
1981.[13]
F.Lehmann,
M.Maurer,
V.Müller,
et V.Shoup,
Counting
the numberof
points
onelliptic
curves overfinite fields
of
characteristic greater thanthree,
ANTS-I
(L.
Adleman et M.-D.Huang,
Réd.),
Lecture Notes inComput.
Sci.,
vol.877,
Springer-Verlag,
1994,
p. 60-70.[14]
R. Lercier et F.Morain,
Counting
points onelliptic
curves overFpn
using
Couveignes’s algorithm, Rapport
de RechercheLIX/RR/95/09,
École
Polytechnique,
septembre
1995.[15]
R. Lercier et F.Morain,
Counting
the numberof
points
onelliptic
curves overfinite fields:
strategies
andperformances,
Advances inCryptology
-EUROCRYPT’95
(L.
C. GUILLOU et J.-J.QUISQUATER,
réd.),
Lecture Notesin
Comput. Sci.,
no.921, 1995,
p. 79-94.[16]
K.Mahler,
On a classof
non-linearfunctionat
equations connected withmodular
functions,
J. Austral. Math. Soc. Ser. A22 (1976),
65-120.[17]
B.Mazur,
Modular curves and the Eisensteinideal,
Inst. HautesÉtudes
Sci.Publ. Math. 47
(1977),
33-186.[18]
V.Müller,
Looking
for
theeigenvalue
inSchoof’s algorithm,
enpréparation,
octobre 1994.
[19]
B.Schoeneberg, Elliptic
modularfunctions,
Die Grundlehren der mathema tischen Wissenschaften inEinzeldarstellungen,
vol. 203,Springer-Verlag,
1974.[20]
R.Schoof,
Elliptic
curves overfinite fields
and the computation of square rootsmod p, Math.
Comp.
44(1985),
483-494.[21]
RenéSchoof,
Counting
points
onelliptic
curves overfinite fields,
J. Théoriedes Nombres de
Bordeaux,
7(1995),
219-254.[22]
J. H.Silverman,
The arithmeticof
elliptic
curves, Graduate Texts inFrançois
MORAINLaboratoire
d’Informatique
(LIX)
École
Polytechnique
91128 Palaiseau