4.4.1 Un exemple num´erique
Essayons de factoriser le nombreN= 4.816.415.081 avecHECM. Nous utilisonsB
1= 25 etB
2= 200
ainsi que les param`etres suivants pour la courbe :s=
12,u= 2 etv= 9. La surface de Kummer est alors
donn´ee par les param`etres
(α, β, γ, δ) =
1 : 9
10 : 1 : 2
.
Un point sur cette surface est
P = (−272 : 63 :−140 : 272).
Nous calculons [k]P sur la surface de Kummer aveck= ppcm (2, . . . , B
1) = 26.771.144.400 et envoyons
le point qui en r´esulte sur les deux courbes elliptiques sous-jacentes :
(3455587574,1) sur 734346861y
2= (x−1)
x− 1
25 x− 1
121
,
(3222355131,1) sur 2791313056y
2= (x−1) (x−25) (x−121).
Nous utilisons maintenant la phase 2 d’ECMsur les courbes elliptiques. Sur la premi`ere, cela ne renvoie
pas de facteur mais la seconde trouve le nombrep= 83003 qui est un facteur de
N = 4816415081 = 58027·83003.
Apr`es examen des calculs, nous n’avons pas travaill´e sur la courbe hyperelliptique mais sur sa tordue
χy
2=x(x−1)
x− 9
20 x−9
4 x−5
4
o`uχest un non r´esidu quadratique moduloN. L’ordre du point initial dans la jacobienne de cette courbe
modulo 83003 est 2·3·5·11·19·73·631. Le cardinal de la premi`ere courbe elliptique est 2·7·631 et
celui de la deuxi`eme de 2·3·5·19·73.
4.4.2 Impl´ementation
Il existe de nombreuses impl´ementations de l’algorithme ECM. En particulier, GMP-ECM est un
logiciel libre bas´e sur la biblioth`equeGMP. Il est d´ecrit en d´etail dans [ZD06]. En utilisant de nombreuses
fonctions deGMP-ECM, nous avons ´ecrit un nouveau programme appel´eGMP-HECMqui utilise les
courbes hyperelliptiques.GMP-HECMest distribu´e avecGMP-ECM
3.
Notre logiciel commence par g´en´erer une courbe hyperelliptique d´ecomposable de genre 2 avec des
petits param`etres, puis il calcule [k]P sur la surface de Kummer et envoie finalement les points sur les
courbes elliptiques sous-jacentes. Pour la phase 2, il utilise celle de GMP-ECM. En effet GMP-ECM
peut utiliser les r´esultats d’une phase 1 d’un autre programme : il a juste besoin du param`etreA de la
courbe elliptiquey
2=x
3+Ax+B et des coordonn´ees d’un point dessus.
Nos courbes elliptique ne peuvent, en g´en´eral, pas se mettre sous forme de Suyama. Elles n’ont donc
pas le mˆeme groupe de torsion que celui attendu dansGMP-ECM. Cela modifie la probabilit´e que leur
cardinal soit friable et par voie de cons´equence, il faut modifier les param`etres B
1et B
2. GMP-ECM
est capable de choisir le param`etreB
2de l’´etape 2 en fonction de la valeur deB
1. Ce choix n’est pas le
mˆeme que celui de la continuation standard o`uB
2= 100·B
1:GMP-ECMutilise desB
2beaucoup plus
gros pour r´eduire le nombre de courbes n´ecessaires pour trouver un facteur (voir le tableau4.2 pour les
valeurs deB
1etB
2utilis´ees dansGMP-ECM).
Le choix deB
1´etant heuristique, nous avons essay´e de minimiser le temps moyen de calcul. Le tableau
4.2fournit les valeurs optimales deB
1pour diff´erentes tailles (en g´en´eral inconnues) de facteur. Pour des
facteurs de plus de 35 chiffres d´ecimaux, nous utilisons le mˆemeB
1queECM. Une fois choisis cesB
1,
Tableau 4.2 – Choix optimal des param`etres dansGMP-ECMetGMP-HECM
ordre de GMP-ECM GMP-HECM
grandeur B
1B
2nombre moyen de B
1B
2nombre moyen de
du facteur optimal courbes elliptiques optimal courbes elliptiques
10
2011,000 2.10
674 14,000 2.10
675
10
2550,000 16.10
6214 60,000 16.10
6214
10
30250,000 130.10
6430 260,000 130.10
6491
10
351.10
6900.10
6904 1.10
6900.10
61,116
10
403.10
64.10
92,350 3.10
64.10
92,871
10
4511.10
628.10
94,480 11.10
628.10
95,425
10
5043.10
6200.10
97,553 43.10
6200.10
99,003
10
55110.10
6750.10
917,769 110.10
6750.10
921,183
10
60260.10
62.10
1242,017 260.10
62.10
1249,534
10
65850.10
614.10
1269,408 850.10
614.10
1281,387
Tableau 4.3 – Fraction du temps pris par les op´erations arithm´etiques pour diff´erentes tailles deN
ordre de grandeur deN 10
10010
15010
20010
25010
30010
35010
40010
50010
1000M 0.143 0.159 0.194 0.216 0.209 0.219 0.216 0.222 0.234
S 0.428 0.465 0.557 0.597 0.622 0.645 0.65 0.682 0.700
m 0.163 0.127 0.092 0.081 0.070 0.057 0.037 0.031 0.051
additions 0.237 0.179 0.116 0.109 0.074 0.057 0.059 0.041 0.017
S/M 1.00 0.98 0.96 0.93 0.99 0.98 1.04 1.02 1.00
m/M 0.26 0.20 0.12 0.093 0.084 0.066 0.043 0.035 0.055
GMP-ECMnous propose des valeurs deB
2. Nous nous rendons compte que ces valeurs deB
2sont les
mˆemes que celles de ECM.
Finalement, le ratio de la diff´erence du nombre moyen de courbes n´ecessaires d´ecroˆıt avec la taille du
facteur.
4.4.3 R´esultats et comparaisons
Pour les B
1de taille suffisante, la complexit´e th´eorique et pratique de l’algorithme est lin´eaire en
B
1. Cependant la d´ependance en la taille du nombreN `a factoriser n’est pas simple : les multiplications
modulaires sont quadratiques pour des petits N mais deviennent quasi-lin´eaires pour les grandsN. Il y
a de plus de nombreuses autres op´erations (multiplications par de petites constantes, additions...) dont
la complexit´e n’est pas n´egligeable pour les petitsN.
Le tableau 4.3 montre le temps pris par les diff´erentes op´erations lors du calcul de [k]P pour diff´
e-rentes tailles d’entiersN dans GMP-HECM(nous avons not´e parm les multiplications par les petites
constantes). Nous pouvons remarquer que les carr´es prennent le mˆeme temps que les multiplications.
Ceci provient du fait queGMP-ECM(et doncGMP-HECM) a du code assembleur sp´ecifique pour les
multiplications modulaires mais pas pour les carr´es et donc que ces derniers sont calcul´es avec le mˆeme
code. Pour les multiplications par de petites constantes, Kruppa a ´ecrit du code assembleur sp´ecifique.
Finalement le tableau montre que ni les additions, ni les multiplications par les petites constantes ne sont
n´egligeables pour les petitsN.
`
A la fois parce que les op´erations«n´egligeables» ne le sont pas et parce que le cardinal des courbes
elliptiques dansHECMn’est pas autant divisible par de petits facteurs que celles desECMclassiques (du
moins avec notre param´etrisation, voir4.3.4), l’algorithmeHECMne doit pas ˆetre utilis´e pour factoriser
Table 4.4 – Comparaison entre la phase 1 de GMP-ECM et celle de GMP-HECM pour diff´erentes
tailles deN avecB
1= 10
7sur un core 2 `a 2.4Ghz.
ordre de grandeur deN 10
10010
15010
20010
25010
30010
35010
40010
50010
1000 HECM2∗ECM
1.15 1.09 1.03 1.0 0.97 0.94 0.95 0.93 0.89
des nombres de petites tailles.
Th´eoriquement, la complexit´e de la phase 1 d’HECMest de 4M+12Spar bit du multiplieur. Pour une
ex´ecution d’ECMavec les coordonn´ees de Montgomery et l’algorithmePRAC, la complexit´e est `a peu
pr`es de 6M+ 3S. De ce fait deux sessions d’ECMcoˆuteront 12M+ 6S. Si nous utilisons l’approximation
1S= 0.8M, la complexit´e deHECMdevient 13.6M et celle de deuxECMdevient 16.8M. Nous obtenons
donc un gain compris entre 11% et 20% selon l’algorithme utilis´e pour les carr´es modulaires. Bien sˆur,
ceci n’est valide qu’asymptotiquement.
Le tableau 4.4compare le temps d’ex´ecution de deux GMP-ECM contre celui d’unGMP-HECM
(rappelons qu’une ex´ecution deHECMavec des courbes d´ecomposables est ´equivalente `a deux ex´ecutions
deECM) pour unB
1fix´e et diff´erentes tailles deN. Ce tableau montre que pour lesN tr`es grands (au
moins 10
250), notre programme est plus rapide queGMP-ECM. Comme l’arithm´etique avecHECMa
plus de carr´es que celle avec les courbes de Montgomery, du code assembleur optimis´e pour les carr´es
modulaires permettrait de r´eduire la fronti`ere `a partir de laquelleGMP-HECMest plus int´eressant que
GMP-ECM. Pour de tr`es grands N le gain entreGMP-HECM et GMP-ECMest de 11% ce qui est
concordant avec les r´esultats th´eoriques.
L’algorithme EECM(ECMavec les courbes d’Edwards) utilise des «signed sliding window » pour
calculer [k]P (voir [BBLP10,BBL10]). Cette m´ethode permet de ne faire qu’un doublement et
addi-tion (sur la courbe elliptique) par bit du multiplieur. Le doublement en coordonn´ees d’Edwards se fait
en 3M+ 4S tandis que l’addition est en 10M+ 1S+ 1d.
En th´eorie, deux ex´ecutions d’EECM seraient plus rapides qu’une de HECMd`es que est plus petit
que 1/12 (si nous supposons que 1S = 0.8M alors doit ˆetre plus petit que 1/20). Cependant, pour
atteindre de tels, la taille de la fenˆetre devient tr`es grande. Les pr´ecalculs et l’utilisation m´emoire
de-viennent alors non n´egligeables.
Les auteurs de [BBLP10] comparent EECM `a HECM. Ils ´ecrivent que HECM fait plus de
multipli-cations que EECM mais dans leur comparaison, ils ne comptent pas le coˆut des pr´ecalculs et le font
pour unB
1suffisamment petit ce qui permet d’avoir une taille de fenˆetre petite. Par ailleurs, dans leur
comparaison, ils pr´ecisent le nombre de multiplications par de petites constantes dansHECMet pas dans
EECM.
Une comparaison pratique entre les deux algorithmes serait int´eressante. Cependant le seul logiciel
dis-tribu´e reposant sur les courbes d’Edwards,EECM-MPFQ
4, ne permet de factoriser que des nombres de
moins de 10 mots machines (c’est-`a-dire faisant moins de 200 chiffres d´ecimaux). Ces nombres sont trop
petits pour HECM. Il serait int´eressant de comparer GMP-HECM `a une impl´ementation deEECM
permettant de travailler avec des grands nombres et desB
1´elev´es.
Finalement, citons une nouvelle factorisation obtenue par HECM. Le nombre impliqu´e 62
121+ 1
provient de la table Brent-Montgomery-te Riele
5[Bt92] :
62
121+ 1 = 3
2·7·2663·369293·825977153711699903·p53·p137
p53 = 11.032.894.983.078.909.629.369.066.070.666.992.613.860.028.418.707.083
4. Disponible `a l’adresse :http://eecm.cr.yp.to/mpfq.html
5. Une liste des nombres de ce type qui ont ´et´e factoris´es et qu’il reste `a factoriser se trouve sur le site internet de
Brent :http://maths.anu.edu.au/~brent/factors.html
Les premiers facteurs ont ´et´e trouv´es par d’autres m´ethodes. Il restait `a factoriser un nombre de 189
chiffres d´ecimaux.
Dans le document
Applications des fonctions thêta à la cryptographie sur courbes hyperelliptiques.
(Page 98-101)