4.2.1 Contexte
L’algorithmeECMg´en´eralise l’algorithmep−1 de Pollard [Pol74] dont voici une description. Prenons
un entierapremier avecN(nous choisissonsamoduloN au hasard et nous calculons pgcd(a, N), si
celui-ci n’est pas ´egal `a 1 alors nous avons un facteur de N). Commea
p−1≡1 [p] par le petit th´eor`eme de
Fermat, alors, pour tout multiplek dep−1, le calcul de pgcd(a
k−1, N) donne un facteur deN (sauf
dans le cas o`ua
kest congru `a 1 modulo tous les facteurs de N).
En pratique, nous ne connaissons pas pet nous prenonsk comme ´etant le produit d’un grand nombre
de facteurs en esp´erant que ceux de p−1 sont parmi ceux-ci. Prenons k= ppcm (2, . . . , B
1) pour une
certaine borneB
1fix´ee. La m´ethode r´eussit sip−1 estB
1-friable c’est-`a-dire produit de petits nombres
premiers. Si ce n’est pas le cas nous pouvons augmenterB
1mais cela augmente le temps de calcul.
D´efinition 4.2.1. Soitn un entier dont la d´ecomposition en facteurs premiers est n=p
α11
. . . p
αrr
. Le
nombren est ditB
1-friable si et seulement si lesp
αii
sont inf´erieurs `aB
1.
Une id´ee naturelle est d’´etendre l’algorithme p−1 avec d’autres groupes que (Z/NZ)
∗. La m´
e-thodep+ 1, introduite par Williams [Wil82], utilise le groupe
Z/NZ[X]/ X
2−SX+ 1
o`uSest un ´el´ement quelconque deZ/NZ. Si le polynˆomeX
2−SX+ 1 est scind´e alorsp+ 1 se comporte
commep−1. Sinon, le polynˆome est irr´eductible et nous retrouvons le facteurpsip+ 1 est friable. La
probabilit´e d’ˆetre dans chacun des deux cas pr´ec´edents est de
12.
Bach et Shallit [BS89] ont g´en´eralis´e ces deux algorithmes en utilisant les polynˆomes cyclotomiques.
Lenstra [Len87] a propos´e d’utiliser le groupe des points sur une courbe elliptique. Cet algorithme est
appel´eECMpour elliptic curve method.
D´efinissons les courbes elliptiques sur l’anneau Z/NZ. Pour plus de d´etails, on pourra consulter
[Len87].
D´efinition 4.2.2. Soientn etN deux entiers. L’espace projectifP
n(Z/NZ), est
P
n(Z/NZ) =
n
(x
0, . . . , x
n)∈(Z/NZ)
n+1, tel que l’id´eal engendr´e par lesx
iestZ/NZo/'
o`u 'est la relation d’´equivalence suivante :
Algorithme 17ECM: phase 1
Entr´ee: Etant donn´´ es deux entiers positifsN et B
1.
Sortie: Un facteur deN.
1: Choisir au hasard une courbe elliptique E surZ/NZet un pointP dessus.
2: Calculer [k]P aveck= ppcm (2, . . . , B
1).
3: Esp´erer que [k]P =O
Emod ppour obtenir le facteurp.
4: Sinon revenir `a la premi`ere ´etape.
Soit p un facteur de N, la r´eduction modulo p d´efinit une application de P
n(Z/NZ) dans P
n(F
p).
Nous consid´erons les ´el´ements (x, y, z) ∈ P
2(Z/NZ) qui v´erifient y
2z = x
3+axz
2+z
3. Le
discrimi-nant−16(4a
3+ 27b
2) est suppos´e ˆetre un inversible deZ/NZet dans ce cas nous disons que la courbeE
ainsi d´efinie est une courbe elliptique sur l’anneauZ/NZ.
La r´eduction modulo p est un morphisme naturel π
pde E(Z/NZ) dans E(F
p). Ce morphisme est
th´eorique car nous ne connaissons pas les facteurs deN. Il est possible de d´efinir une« loi d’addition»
sur les points de cette courbe : nous la d´efinissons avec les formules classiques quand cela est possible.
Cependant la« somme» de deux points n’est plus forc´ement bien d´efinie. Si la somme P+Qde deux
pointsPetQdeE(Z/NZ) est bien d´efinie alors les images de ces points existent dansE(F
p) et la r´eduction
modulopdeP+Qest la somme des r´eductions modulopdes pointsP etQ. C’est-`a-dire que
π
p(P+Q) =π
p(P) +π
p(Q).
En pratique, nous travaillons surZ/NZcomme si c’´etait un corps. La seule op´eration de corps qui n’existe
pas dansZ/NZest l’inversion modulaire. Celle-ci est calcul´ee par l’algorithme d’Euclide ´etendu et si une
inversion ´echoue, nous obtenons un facteur deN.
Remarque 4.2.3. Il n’est pas possible de prendre des racines carr´ees modulo le nombreN `a factoriser.
En effet prendre une racine carr´ee modulo N est ´equivalent `a la factorisation de N : si nous savons
factoriserN alors il est possible de calculer la racine carr´ee d’un nombre modulo tous les facteurs de N
puis de reconstruire la racine avec des restes chinois. Dans l’autre sens, supposons donn´e un algorithme
permettant de prendre des racines carr´ees moduloN. Nous appliquons cet algorithme sur b
2modN pour
obtenir un ´el´ement atel que a
2=b
2modN. Le calcul de gcd(a−b, N)a alors une grande probabilit´e
de donner un facteur de N.
Cette remarque est d’ailleurs utilis´ee dans les algorithmes de cribles quadratique et alg´ebrique o`u le
but est de construire une relationa
2=b
2modN.
Soit P un point d’une courbe elliptiqueE sur Z/NZ. L’objectif de l’algorithme, et c’est en ce sens
qu’il g´en´eralisep−1, est de calculer [k]P dansE(Z/NZ) pour un certain entierket un certain point P
deE(Z/NZ) et nous esp´erons obtenir le z´eroO
EdeE(F
p).
4.2.2 Description g´en´erale de l’algorithme ECM
Soit P un point d’une courbe elliptiqueE surZ/NZ et soitk= ppcm (2, . . . , B
1). Nous calculons le
point [k]P dans E(Z/NZ) et nous esp´erons que ce point s’envoie sur le z´ero de la courbe E(F
p). Cette
´
etape est appel´ee phase 1 et est r´esum´ee dans l’algorithme17.
Il existe une extension aux algorithmes de type p−1 qui est appel´ee« phase 2 »ou«´etape 2». Cette
deuxi`eme phase a ´et´e propos´ee par Brent [Bre86] et Montgomery [Mon87]. En particulier ce dernier article
donne une description unifi´ee de la phase 2 pour les algorithmesp−1,p+ 1 etECM.
L’id´ee g´en´erale de la phase 2 est la suivante : soitQle r´esultat de la premi`ere phase, nous calculonsπQ
pour tout nombre premierπ entreB
1et B
2et nous esp´erons qu’un desπQ est le z´ero du groupe dans
lequel nous travaillons. De ce fait, nous autorisons le cardinal du groupe `a ˆetreB
1, B
2-friable :
D´efinition 4.2.4. Soit n un entier dont la d´ecomposition en facteur premiers est n = p
α11
. . . p
αrr
. Le
– p
αii
≤B
1pour tout1≤i≤r,
– p
αii
≤B
1pour tout1≤i≤r−1,α
r= 1et B
1< p
r≤B
2.
Il existe diff´erentes m´ethodes pour ´eviter de calculer tous les πQ. Une description g´en´erale de ces
m´ethodes se trouve dans [ZD06, Kru10]. Nous ne d´ecrivons pas plus en d´etail la phase 2 car, pour des
raisons donn´ees ult´erieurement, nous ne l’utilisons pas dans nos algorithmes.
La correction de l’algorithmeECMvient du fait que si [k]P =O
Emodpalors, lors de ce calcul, une
des divisions va ´echouer. Les divisions ´etant calcul´ees par l’algorithme d’Euclide ´etendu, nous obtenons
un diviseur deN si une d’elles ´echoue.
L’int´erˆet d’ECMpar rapport `ap−1 est que le cardinal du groupe dans lequel nous travaillons n’est plus
totalement d´etermin´e parp. Si le cardinal de la vari´et´e ab´elienne modulopest friable alors nous obtenons
un facteur deN sinon il est possible de recommencer avec une autre courbe. La borne de friabilit´eB
1est
choisie en fonction de la taille du facteur que nous voulons trouver pour avoir un compromis entre le calcul
de [k]P (les autres ´etapes ´etant n´egligeables) et le nombre de fois qu’il faut recommencer l’algorithme.
La borneB
2est telle que le temps de calcul de la phase 2 est approximativement le mˆeme que celui de
la phase 1.
L’algorithmeECMest un algorithme de factorisation probabiliste dont la complexit´e est de
O
L
p1
2;
√
2 +o(1)
M(log(N))
etM(log(N)) est la complexit´e de la multiplication moduloN. La complexit´e de ECMest domin´ee par
la taille du plus petit facteurpdeN plutˆot que celle deN. Rappelons queECMne trouve pas forc´ement
le plus petit facteur deN. Dans le pire des cas, c’est-`a-dire quandpest de l’ordre de√
N, la complexit´e
deECMest de ˜O L
N12
; 1
ce qui est bien plus ´elev´e que le crible alg´ebrique.
La phase 2 permet de gagner un facteur log(p) dans leO. Asymptotiquement l’utilisation de la phase 2
n’am´eliore donc pas beaucoup la complexit´e. Cependant, en pratique, elle permet d’augmenter de mani`ere
significative la probabilit´e de succ`es d’une courbe.
Le cardinal du groupe dans lequel nous travaillons est donn´e par les conjectures de Hasse-Weil.
Th´eor`eme 4.2.5(Hasse-Weil). SoitC une courbe de genre g sur F
qalors
(√
q−1)
2g≤# Jac
Fq(C)≤(√
q+ 1)
2g.
Ainsi pour les courbes elliptiques, leur cardinal se trouve dans l’intervalle
p+ 1−2√
p, p+ 1 + 2√
p
(page15, nous avions pr´ecis´e la distribution de ces nombres).
4.2.3 Am´eliorations de l’algorithme ECM
Plusieurs am´eliorations de l’algorithmeECMsont possibles. Tout d’abord, toute am´elioration
(pra-tique ou th´eorique) sur l’arithm´etique modulaire permet de diminuer le facteur O(M(log(n))) ; nous
n’y reviendrons pas. `A l’oppos´e, les am´eliorations math´ematiques et algorithmiques travaillent sur le
facteurO L
p 12
;√
2 +o(1). Les principales am´eliorations consistent `a
– Acc´el´erer l’arithm´etique sur les courbes.
– Augmenter la probabilit´e de succ`es en utilisant des courbes plus« chanceuses».
Ces deux pistes de recherche sont li´ees. En effet, am´eliorer l’arithm´etique sur les courbes elliptiques,
revient souvent `a choisir des mod`eles particuliers des courbes. Les meilleures courbes pour ECM sont
alors diff´erentes suivant les familles.
Diff´erents mod`eles de courbes elliptiques ont ´et´e propos´es, et pour chacun d’entre eux, nous disposons
de diff´erentes formules pour calculer la loi de groupe. Le site internet EFD
2rassemble la plupart des
formules de la litt´erature et donne leur complexit´e. Dans le cadre d’ECM, deux mod`eles sont particuli`
e-rement int´eressants : celui de Montgomery et celui d’Edwards.
D´ecrivons plus en d´etail les courbes de Montgomery car leur arithm´etique ressemble `a celle que nous
utilisons. Ces courbes sont en particulier utilis´ees dans le logicielGMP-ECM. Pour les courbes d’Edwards,
nous renvoyons `a [BBLP10]. Une courbe sous forme de Montgomery est une courbe projective d’´equation
E: by
2z=x x
2+axz+z
2.
Il faut supposer que a
26= 4 et b6= 0. Le z´ero de la courbe est le point `a l’infini (0 : 1 : 0). En ignorant
la coordonn´ee y des points, nous identifions un point et son oppos´e, c’est-`a-dire que nous travaillons
surE/{±1}. Nous avons alors les formules suivantes pour l’arithm´etique (o`u nous posonsd= (a+ 2)/4) :
x
2P= (x
P+z
P)
2, z
2P= 4x
Pz
P(x
P−z
P)
2+ 4dx
Pz
p,
x
P+Q= 4z
P+Q(x
Px
Q−z
Pz
Q)
2, z
P+Q= 4x
P−Q(x
Pz
Q−z
Px
Q)
2Le doublement peut se calculer avec 3 multiplications et 2 carr´es. Tandis que la pseudo-addition coˆute 4
multiplications et 2 carr´es. Pour calculer un multiple d’un point, nous utilisons les chaˆınes de Lucas avec
l’algorithme PRAC de Montgomery. En effet, `a la diff´erence des formules de pseudo-additions avec les
fonctions thˆeta3.2.2, les formules de Montgomery n’utilisent aucune division. Le calcul de [k]P se fait
alors en `a peu pr`es 6M+ 3S par bit dek [ZD06].
Une courbe elliptique est « chanceuse »pour ECMsi son cardinal est friable. Celui-ci est un entier
de l’ordre depd’apr`es le th´eor`eme4.2.5.
Pour am´eliorer la probabilit´e de succ`es, une solution consiste `a forcer l’ordre du groupe des points sur les
courbes elliptiques surF
p`a ˆetre divisible par un entierm. La probabilit´e que le cardinal de la courbe soit
friable n’est plus celle qu’un entier de taille log(p) soit friable mais celle qu’un entier de taille log(p/m)
le soit. De ce fait, la probabilit´e de succ`es est un peu plus ´elev´ee.
Les courbes elliptiques utilis´ees dansECMsont souvent la r´eduction modulo N de courbes d´efinies
surQ. De mˆeme, le point P provient de la r´eduction d’un point deE(Q). Le th´eor`eme de Mazur limite
cependant le groupe de torsionE
tor(Q) d’une courbe elliptique surQ:
Th´eor`eme 4.2.6 (Mazur). Le groupe de torsion d’une courbe elliptique surQest isomorphe `a l’un des
groupes suivant :
E
tor(Q)∼= Z/mZ 1≤m≤10 or m= 12
Z/2Z×Z/2mZ 1≤m≤4
Par exemple, pour la param´etrisation de Suyama [Suy85], nous posonsσal´eatoire et nous calculons
u=σ
2−5, v= 4σ, a= (v−u)
3(3u+v)
4u
3v , b=u/v
3.
Le point
P = u
3v
3, σ
2−1 σ
2−25 σ
4−25
v
3!
est alors sur la courbe
b y
2=x
3+a x
2+x.
et est d’ordre infini dessus. Cette forme de courbe impose que le cardinal de la courbe surF
psoit divisible
par 12 pour presque toutp. Les courbes de Suyama sont un cas particulier des courbes de Montgomery
et elles sont en particulier utilis´ees parGMP-ECM[ZD06].
Dans sa th`ese [Mon92], Montgomery d´ecrit des param´etrisations donnant des courbes ayant 12 ou 16
points de torsions surQ. On pourra ´egalement consulter [AM93].
Au lieu de chercher `a avoir des courbes ayant un groupe de torsion fix´e sur Qou sur tous les F
p, nous
pouvons chercher des courbes ayant une bonne probabilit´e d’avoir de la torsion modulopquand ce dernier
varie. B˘arbulescu [B˘a09] d´ecrit une m´ethode pour ´etudier la valuation moyenne modulopdu cardinal des
courbes elliptiques.
Pour des nombres N particuliers, nous savons que certains ´el´ements sont des carr´es. Par exemple
pour N = a
2n+ 1 alors−1 est le carr´e dea
nmodulo tous les facteurs de N. Pour des N de ce type,
nous pouvons construire nos courbes comme la r´eduction moduloN de courbes d´efinies sur des corps de
nombres [BC10]. L’´equivalent du th´eor`eme de Mazur sur les corps de nombres montre qu’il existe des
courbes ayant des groupes de torsion plus gros que les courbes surQ. La probabilit´e de succ`es deECM
avec ces courbes est donc plus ´elev´ee.
Il n’est pas possible de prendre un point P au hasard sur la courbe E(Z/NZ). En effet, pour ce
faire, il faudrait prendre une racine carr´ee, ce qui n’est pas possible. Le pointP doit donc ˆetre construit
directement surE(Q) et doit ˆetre d’ordre infini sur cette courbe. En effet, sinon nous aurions une relation
du typemP =OsurE(Q) et donc surE(F
p) pour tout facteurpdeN. De ce fait, nous ne pourrions pas
retrouver les facteurs deN. La courbe elliptique surQdoit donc ˆetre de rang strictement positif.
Signalons que les diff´erentes m´ethodes utilis´ees dans la phase 2 demandent de savoir faire de vraies
additions sur la courbe elliptique. De ce fait nous demandons que la donn´ee initiale de la phase 2 soit un
vrai point de la courbe elliptique. Montrons comment transformer une classe (x
1::z
1) sur la courbe
κzy
2=x
3+a
2x
2z+a
4xz
2+a
6z
3provenant de la phase 1 en un vrai point (x
2, y
2) d’une courbe
y
2=x
3+Ax+B
sans modifier l’ordre du point. Rappelons que la notation (x :: z) signifie que nous avons identifi´e les
points (x:y:z) et son oppos´e (x:−y:z).
Nous commen¸cons par translater le point parx7→x−a
2z/3 avant de diviser sa coordonn´ee xparz
pour obtenir le point (x
01
,?) sur la courbeκy
2=f(x) =x
3+a
04
x+a
06
. Les points (x
01
,±1) sont alors sur
la courbe
Dy
2=f(x) =x
3+a
04x+a
06avecD=f(x
01).
Par le changement de variables
(x, y)7−→x
D,
y
D
,
nous obtenons un point de la courbey
2=x
3+Ax+B o`u A=a
04/D
2et B =a
6/D
3. Remarquons que
le signe±1 peut ˆetre choisi arbitrairement car un point et son oppos´e ont le mˆeme ordre.
Dans le document
Applications des fonctions thêta à la cryptographie sur courbes hyperelliptiques.
(Page 84-88)