• Aucun résultat trouvé

L’algorithme NFS pour la factorisation d’entiers

L’algorithme NFS (pour Number Field Sieve) est l’algorithme le plus rapide pour factoriser de grands entiers (à partir de 90 chiffres décimaux environ) pour lesquels il n’existe pas de petits facteurs pouvant être trouvés par des algorithmes adaptés, comme P-1, P+1 ou ECM. Dans ce chapitre, nous décrirons l’algorithme NFS d’un point de vue global dans la section 2.1 et nous donnerons plus de détails sur les différentes étapes de l’algorithme dans les sections suivantes.

Dans tout ce chapitre, nous noterons N l’entier à factoriser etP l’ensemble des nombres premiers.

2.1 Description générale de l’algorithme NFS

L’algorithme NFS se base sur le principe de la congruence de carrés présenté dans l’introduc-tion et cherche donc à construire des paires d’entiers x ety tels que

x2 ”y2 pmod Nq, (2.1)

en espérant que xı ˘y pmod Nq, dans le but de trouver un facteur deN en calculant le pgcd de x´yetN et le pgcdde x`yetN. SiN est un nombre entier ayant au moins deux facteurs premiers impairs, alors, en considérant que les entiers xetysont répartis aléatoirement de façon uniforme, la probabilité que le pgcd de x´y et N ou que le pgcd de x`y et N retourne un facteur de N différent de 1 etN est supérieure à1{2.

Pour construire ces congruences de carrés, l’algorithme NFS produit des carrés dans des corps de nombres qui permettent d’obtenir des égalités entre des carrés moduloN. La première version de l’algorithme NFS, ne fonctionnant que pour certains entiers, est décrite par Pollard dans [124].

Ensuite, plusieurs articles ont été écrits pour généraliser la méthode, en particulier [95] et [32].

Un livre [92] contenant une partie des articles à la base de l’algorithme NFS a été publié, il contient aussi une bibliographie annotée [98] donnant plus de détails sur tous les travaux qui ont permis la construction de l’algorithme NFS.

2.1.1 Les différentes étapes de l’algorithme NFS

L’algorithme NFS commence par le choix de deux polynômesf1 et f2 à coefficients entiers, irréductibles sur Q, premiers entre eux surQ et ayant une racine commune m moduloN. Nous

parlerons decôté1(resp.côté2) pour parler de ce qui concerne le polynômef1(resp. le polynôme f2) et nous noterons di le degré du polynôme fi, pour iP t1,2u. Dans la suite de ce chapitre, pour simplifier la présentation, nous considérerons que les polynômesf1 etf2 sont unitaires. Les changements induits par l’utilisation de polynômes non unitaires sont décrits dans [32, section 12].

En pratique, dans la majorité des cas, l’algorithme NFS est utilisé avec un côté dont le polynôme est de degré1. Dans ce cas, tout ce qui se rapporte à ce côté est souvent qualifié derationnel et tout ce qui se rapporte à l’autre côté est souvent qualifié d’algébrique. La partie de l’algorithme consistant à trouver les deux polynômes f1 et f2 est appelée l’étape de sélection polynomiale pour laquelle plus de détails sont donnés dans la section2.2.

Fixons i P t1,2u dans ce paragraphe pour définir quelques notations. Tout d’abord, nous noterons Fi le polynôme homogène FipX, Yq “ fipX{YqYdi associé au polynôme fi. De plus, nous noteronsKi“Qpαiq, oùαi est une racine defi, le corps de nombres défini par le polynôme fi etOKi l’anneau des entiers de Ki. L’anneau Zrαis, défini par Zrαis “ ZrXs{fiZrXs, est un ordre deQpαiqinclus dans l’ordre maximalOKi mais, en général,Zrαisest différent deOKi. La norme d’un élémentγ deZrαissera notéeNipγq. Nous utiliserons dans la suite le fait que, siaet bsont deux nombres entiers, alorsNipa´bαiq “Respa´bX, fiq “Fipa, bq. La norme d’un idéal non nulI de Zrαisest égale au cardinal de l’anneau quotient Zrαis{I et dans le cas où l’idéal I est principal, c’est-à-dire qu’il existe γ PZrαistel que I“γZrαis, la norme de I est égale à la valeur absolue deNipγq. Les idéaux premiers non nuls deZrαissont les idéauxptels queZrαis{p est un corps, cela correspond aux idéaux dont la norme est une puissance d’un nombre premier.

Sip est un idéal premier non nul deZrαis de normepf, oùpPP etf est un entier strictement positif, alors nous appellerons f le degré de l’idéal p et nous dirons que l’idéal p est au-dessus de p. Nous noterons aussi, pour tout nombre premier p PP, Rippq l’ensemble des racines de fi

modulo p, c’est-à-dire

Rippq “ trPZ{pZ|fiprq ”0 pmodpq u. (2.2) Il existe une bijection entre l’ensemble des idéaux premiers non nuls de degré 1 de Zrαis et l’ensemblet pp, rq |pPP, rPRippq u. La pairepp, rq, avecp un nombre premier etrPRippq, est associée à l’idéal p premier non nul de degré 1 de Zrαis engendré par p et αi ´r, c’est-à-dire p“pZrαis ` pαi´rqZrαis. Finalement, nous noterons µi le morphisme d’anneau de ZrXsdans Zrαis qui à X associeαi etφi le morphisme d’anneau deZrαisdans Z{NZ qui à αi associem modulo N.

L’algorithme NFS repose sur le fait que le diagramme de la figure 2.1 est un diagramme commutatif. En effet pour tout élément Π de ZrXs, φ11pΠqq et φ22pΠqq sont égaux dans Z{NZcar f1 etf2 ont une racine commune moduloN.

ZrXs

Zrα1s Zrα2s

Z{NZ

µ1:XÞÑα1 µ2:XÞÑα2

φ1:α1ÞÑmmodN φ2:α2ÞÑmmodN

Figure 2.1 – Diagramme commutatif à la base de l’algorithme NFS.

Remarque 2.1.1. Dans le cas où le côté i est rationnel, c’est-à-diredi “1, αi est égale à m, la racine commune de f1 et f2, le corps de nombres Ki est en fait Q, les anneaux Zrαis et OKi

sont égaux et correspondent à Z et les idéaux premiers non nuls sont les nombres premiers (et sont donc de degré 1). Siaetb sont deux nombres entiers, alors la norme Nipa´bαiq est égale à a´bm.

Fixons encoreiP t1,2u dans ce paragraphe pour donner quelques propriétés sur les idéaux premiers non nuls de degré 1. Une propriété importante [32, corollaire 5.5] est que si aetbsont deux entiers premiers entre eux et quep est un idéal premier non nul deZrαiscontenanta´bαi

alors p est de degré 1. De plus, un idéal premier non nul de degré 1 de Zrαis, engendré par l’unique paire pp, rq, oùp PP et r PRippq, contient a´bαi si et seulement si a”br pmodpq. Une propriété encore plus forte est que s’il existe un nombre premier pet un entier positifknon nul tels que le facteur p apparaît exactementkfois dans la factorisation deNipa´bαiq, alors il existe un unique rPRippq tel quea”br pmod pqet l’idéal premier non nul de degré1de Zrαis correspondant à pp, rq divise l’idéal principal pa´bαiqZrαis exactement k fois. Ceci permet de définir, pour tout nombre premier p et tout entier rPRippq, la fonction ei,p,r par

ei,p,rpa´bαiq “

#vppNipa´bαiqq sia”br pmod pq

0 sinon , (2.3)

où a et b sont deux entiers premiers entre eux et vp est la valuation en p. Nous ferons parfois l’abus de langage suivant : si p est l’idéal correspondant àpp, rq, alors nous noterons ei,p au lieu de ei,p,r. Dans le cas où le côtéiest rationnel, c’est-à-diredi“1, alorsei,p,rpa´bαiqcorrespond simplement à la valuation en p deNipa´bαiq “a´bm.

Pour construire une égalité de carrés modulo N, l’algorithme NFS cherche un élément Π de ZrXs tel queµ1pΠq et µ2pΠq sont des carrés dans Zrα1s etZrα2s. En effet, en notant, pour iP t1,2u,µipΠq “γi2, oùγi PZrαis, et en remarquant que commeφi est un morphisme d’anneau alorsφiipΠqqest le carré deφiiqdansZ{NZ, nous obtenons, en utilisant le fait queφ11pΠqq etφ22pΠqqsont égaux dans Z{NZ, queφ11q2”φ22q2 pmod Nq. L’algorithme NFS essaie de construire cet élément ΠPZrXscomme un produit d’éléments de la forme a´bX, oùa et b sont deux nombres entiers premiers entre eux. L’image de a´bX par µi est a´bαi. Pour construire l’élément Π, il faut donc chercher un ensemble S de paires pa, bq d’entiers premiers entre eux tel que la propriété suivante est simultanément vérifiée pour iP t1,2u:

ź

pa,bqPS

pa´bαiqest un carré dans Zrαis. (2.4) D’après [32, proposition 5.3], une condition nécessaire pour que cette propriété soit vérifiée est que l’égalité suivante soit vraie pour iP t1,2u et pour tout idéalp premier non nul de degré1 de Zrαis:

ÿ

pa,bqPS

ei,ppa´bαiq ”0 pmod 2q. (2.5) La condition (2.5) n’est pas suffisante en général mais nous verrons dans la section2.6.1comment rendre cette condition suffisante avec une probabilité proche de 1. Nous allons donc considérer, dans la suite, que cette condition est nécessaire et suffisante et nous allons montrer comment construire des ensemblesS qui satisfont cette condition. Pour cela, définissons, pouriP t1,2u, la borne de friabilitéBi comme un entier positif non nul et labase de facteurs Bicomme l’ensemble des idéaux premiers non nuls de degré1de Zrαisdont la norme est inférieure ou égale àBi. Une relation est une pairepa, bqd’entiers premiers entre eux telle que, simultanément pouriP t1,2u, Nipa´bαiqestBi-friable, ou de façon équivalente, pouriP t1,2u, sip est un idéal premier non nul de degré1deZrαistel queei,ppa´bαiq ‰0, alorspPBi. Le sous-ensemble deZ2 dans lequel

les relations sont cherchées est appelé la zone de crible et est noté Ω. L’ensemble des relations calculées sera noté R. Il n’est pas nécessaire que cet ensemble contienne toutes les relations de la zone de cribleΩmais, comme nous le verrons par la suite, seulement que #Rą#B1`#B2. Plus de détails sur l’étape de collecte des relations sont donnés dans la section 2.3.

Une fois l’ensembleR des relations calculé, il reste à trouver plusieurs sous-ensemblesS qui satisfont la condition (2.5). Cela se ramène à un problème d’algèbre linéaire qui est traité lors de l’étape de filtrage, pour laquelle plus de détails sont donnés dans la section 2.4, et del’étape d’algèbre linéaire, pour laquelle plus de détails sont donnés dans la section2.5.

La dernière étape de l’algorithme NFS est lecalcul des racines carrées. Pour chaque ensemble S et pour iP t1,2u, il faut calculer γi PZrαistel que ś

pa,bqPSpa´bαiq “γi2. Plus de détails sur le calcul desγi et des explications sur comment gérer les problèmes qui empêchent la condi-tion (2.5) d’être suffisante sont donnés dans la seccondi-tion2.6. Une fois les racines carrées calculées, il reste à calculerpgcdpφ11q ˘φ22q, Nqpour espérer trouver un facteur non trivial deN. Tous les ensembles S sont considérés tant que tous les facteurs premiers de N ne sont pas trouvés.

2.1.2 Complexité, implémentations et records

La complexité de l’algorithme NFS, pour un choix optimal des différents paramètres, est LN

˜ 1 3, 3

c64 9

¸

“exp

˜˜

3

c64

9 `op1q

¸

plogNq

1

3 plog logNq

2 3

¸ .

Une analyse détaillée de la complexité peut être trouvée dans [32, section 11]. La complexité dépend en grande partie du choix de la somme d1`d2 des degrés des polynômes f1 etf2. Pour les plus grands entiers actuellement factorisés à l’aide de l’algorithme NFS, la somme d1 `d2

vaut entre 5 et7.

Il existe plusieurs implémentations de NFS. L’une des premières implémentation de NFS, par Bernstein et Lenstra, est décrite dans [21]. Il y a aussi eu une implémentation développée au CWI par Herman te Riele et al., qui n’est plus maintenue mais dont le code source est disponible [47]. Parmi les implémentations actuelles de NFS, il existeGGNFS [59], développé par Monico, Msieve[111], développé par Papadopoulos, etcado-nfs[33], développé principalement à Inria à Nancy. Toutes les nouveautés décrites dans cette thèse ont été implémentées dans cado-nfs. Il existe aussi des logiciels implémentant seulement une étape de l’algorithme NFS, comme le crible de Franke et Kleinjung, dont le code source n’est pas publiquement disponible mais dont une ancienne version peut être trouvée dans GGNFS.

Au moment où cette thèse est écrite, le record de factorisation avec l’algorithme NFS est la factorisation de RSA-768 en 2010 [83]. L’entier RSA-768 est un entier de768 bits (232 chiffres décimaux) qui faisait partie des challenges RSA [87]. Cette factorisation a duré environ deux ans sur un millier de machines.