• Aucun résultat trouvé

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 x1

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 x9

4 x5

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

1

et B

2

. GMP-ECM

est capable de choisir le param`etreB

2

de 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

2

beaucoup plus

gros pour r´eduire le nombre de courbes n´ecessaires pour trouver un facteur (voir le tableau4.2 pour les

valeurs deB

1

etB

2

utilis´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

1

pour 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

1

queECM. Une fois choisis cesB

1

,

Tableau 4.2 – Choix optimal des param`etres dansGMP-ECMetGMP-HECM

ordre de GMP-ECM GMP-HECM

grandeur B

1

B

2

nombre moyen de B

1

B

2

nombre moyen de

du facteur optimal courbes elliptiques optimal courbes elliptiques

10

20

11,000 2.10

6

74 14,000 2.10

6

75

10

25

50,000 16.10

6

214 60,000 16.10

6

214

10

30

250,000 130.10

6

430 260,000 130.10

6

491

10

35

1.10

6

900.10

6

904 1.10

6

900.10

6

1,116

10

40

3.10

6

4.10

9

2,350 3.10

6

4.10

9

2,871

10

45

11.10

6

28.10

9

4,480 11.10

6

28.10

9

5,425

10

50

43.10

6

200.10

9

7,553 43.10

6

200.10

9

9,003

10

55

110.10

6

750.10

9

17,769 110.10

6

750.10

9

21,183

10

60

260.10

6

2.10

12

42,017 260.10

6

2.10

12

49,534

10

65

850.10

6

14.10

12

69,408 850.10

6

14.10

12

81,387

Tableau 4.3 – Fraction du temps pris par les op´erations arithm´etiques pour diff´erentes tailles deN

ordre de grandeur deN 10

100

10

150

10

200

10

250

10

300

10

350

10

400

10

500

10

1000

M 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

2

sont 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

1

de 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

7

sur un core 2 `a 2.4Ghz.

ordre de grandeur deN 10

100

10

150

10

200

10

250

10

300

10

350

10

400

10

500

10

1000 HECM

2∗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

1

fix´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

1

suffisamment 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.

Documents relatifs