• Aucun résultat trouvé

4.4.1 Un exemple num´erique

Essayons de factoriser le nombre N = 4.816.415.081 avec HECM. Nous utilisons B1= 25 et B2= 200 ainsi que les param`etres suivants pour la courbe : s =12, u = 2 et v = 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 avec k = ppcm (2, . . . , B1) = 26.771.144.400 et envoyons le point qui en r´esulte sur les deux courbes elliptiques sous-jacentes :

(3455587574, 1) sur 734346861 y2= (x − 1)  x − 1 25   x − 1 121  , (3222355131, 1) sur 2791313056 y2= (x − 1) (x − 25) (x − 121) .

Nous utilisons maintenant la phase 2 d’ECM sur les courbes elliptiques. Sur la premi`ere, cela ne renvoie pas de facteur mais la seconde trouve le nombre p = 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 χy2= x (x − 1)  x − 9 20   x − 9 4   x −5 4 

o`u χ est un non r´esidu quadratique modulo N . 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`eque GMP. Il est d´ecrit en d´etail dans [ZD06]. En utilisant de nombreuses fonctions de GMP-ECM, nous avons ´ecrit un nouveau programme appel´e GMP-HECM qui utilise les courbes hyperelliptiques. GMP-HECM est distribu´e avec GMP-ECM3.

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`etre A de la courbe elliptique y2= x3+ 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 dans GMP-ECM. Cela modifie la probabilit´e que leur cardinal soit friable et par voie de cons´equence, il faut modifier les param`etres B1 et B2. GMP-ECM est capable de choisir le param`etre B2 de l’´etape 2 en fonction de la valeur de B1. Ce choix n’est pas le mˆeme que celui de la continuation standard o`u B2= 100 · B1: GMP-ECM utilise des B2beaucoup plus gros pour r´eduire le nombre de courbes n´ecessaires pour trouver un facteur (voir le tableau4.2 pour les valeurs de B1 et B2utilis´ees dans GMP-ECM).

Le choix de B1´etant heuristique, nous avons essay´e de minimiser le temps moyen de calcul. Le tableau

4.2fournit les valeurs optimales de B1 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ˆeme B1 que ECM. Une fois choisis ces B1,

3. GMP-ECM et GMP-HECM sont t´el´echargeables `a l’adressehttp://gforge.inria.fr/projects/ecm/

tel-00642951, version 1 - 20 Nov 201

Tableau 4.2 – Choix optimal des param`etres dans GMP-ECM et GMP-HECM

ordre de GMP-ECM GMP-HECM

grandeur B1 B2 nombre moyen de B1 B2 nombre moyen de

du facteur optimal courbes elliptiques optimal courbes elliptiques

1020 11,000 2.106 74 14, 000 2.106 75 1025 50,000 16.106 214 60, 000 16.106 214 1030 250,000 130.106 430 260, 000 130.106 491 1035 1.106 900.106 904 1.106 900.106 1,116 1040 3.106 4.109 2,350 3.106 4.109 2,871 1045 11.106 28.109 4,480 11.106 28.109 5,425 1050 43.106 200.109 7,553 43.106 200.109 9,003 1055 110.106 750.109 17,769 110.106 750.109 21,183 1060 260.106 2.1012 42,017 260.106 2.1012 49,534 1065 850.106 14.1012 69,408 850.106 14.1012 81,387

Tableau 4.3 – Fraction du temps pris par les op´erations arithm´etiques pour diff´erentes tailles de N ordre de grandeur de N 10100 10150 10200 10250 10300 10350 10400 10500 101000 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-ECM nous propose des valeurs de B2. Nous nous rendons compte que ces valeurs de B2 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 B1 de taille suffisante, la complexit´e th´eorique et pratique de l’algorithme est lin´eaire en B1. Cependant la d´ependance en la taille du nombre N `a factoriser n’est pas simple : les multiplications modulaires sont quadratiques pour des petits N mais deviennent quasi-lin´eaires pour les grands N . 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 petits N .

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’entiers N dans GMP-HECM (nous avons not´e par m 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 que GMP-ECM (et donc GMP-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 petits N .

`

A la fois parce que les op´erations « n´egligeables » ne le sont pas et parce que le cardinal des courbes elliptiques dans HECM n’est pas autant divisible par de petits facteurs que celles des ECM classiques (du moins avec notre param´etrisation, voir4.3.4), l’algorithme HECM ne doit pas ˆetre utilis´e pour factoriser

tel-00642951, version 1 - 20 Nov 201

Table 4.4 – Comparaison entre la phase 1 de GMP-ECM et celle de GMP-HECM pour diff´erentes tailles de N avec B1= 107 sur un core 2 `a 2.4Ghz.

ordre de grandeur de N 10100 10150 10200 10250 10300 10350 10400 10500 101000

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’HECM est de 4M +12S par bit du multiplieur. Pour une ex´ecution d’ECM avec les coordonn´ees de Montgomery et l’algorithme PRAC, la complexit´e est `a peu pr`es de 6M + 3S. De ce fait deux sessions d’ECM coˆuteront 12M + 6S. Si nous utilisons l’approximation 1S = 0.8M , la complexit´e de HECM devient 13.6M et celle de deux ECM devient 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’un GMP-HECM (rappelons qu’une ex´ecution de HECM avec des courbes d´ecomposables est ´equivalente `a deux ex´ecutions de ECM) pour un B1 fix´e et diff´erentes tailles de N . Ce tableau montre que pour les N tr`es grands (au moins 10250

), notre programme est plus rapide que GMP-ECM. Comme l’arithm´etique avec HECM a 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 laquelle GMP-HECM est plus int´eressant que GMP-ECM. Pour de tr`es grands N le gain entre GMP-HECM et GMP-ECM est de 11% ce qui est concordant avec les r´esultats th´eoriques.

L’algorithme EECM (ECM avec 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 HECM d`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 un B1 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 dans HECM et 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-MPFQ4, 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 de EECM permettant de travailler avec des grands nombres et des B1 ´elev´es.

Finalement, citons une nouvelle factorisation obtenue par HECM. Le nombre impliqu´e 62121+ 1 provient de la table Brent-Montgomery-te Riele5[Bt92] :

62121+ 1 = 32· 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

tel-00642951, version 1 - 20 Nov 201

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