• Aucun résultat trouvé

Collecte des relations : l’étape de crible

L’objectif de l’étape de collecte des relations, aussi appelée étape de crible, est de calculer l’ensemble des relations R, c’est-à-dire un maximum de paires pa, bq P Ω, avec a et b premiers entre eux, telles que Nipa´bαiq “Fipa, bq est Bi-friable, pour iP t1,2u. De plus, pour chaque relationpa, bqdansR, il est nécessaire de connaître la factorisation deN1pa´bα1qetN2pa´bα2q pour pouvoir calculer ei,ppa´bαiq pouriP t1,2u etpPBi. Remarquons tout d’abord que si la paire pa, bqest une relation alors la pairep´a,´bq l’est aussi mais n’apporte aucune information supplémentaire. Ces deux paires sont donc considérées comme identiques et, en pratique, la zone de cribleΩ est souvent un sous-ensemble deZˆN.

Des algorithmes de crible sont utilisés pour identifier les pairespa, bqqui sont des relations. Ils ressemblent au crible d’Ératosthène, à la différence que ce ne sont pas des nombres premiers qui sont recherchés mais des nombres friables. L’idée à la base de ces algorithmes de crible est que sipFipa, bqalorspFipa`kap, b`kbpqpour tous les entierskaetkb. Étant donnés pa, bqune paire d’entiers premiers entre eux etpun nombre premier tels quepdivise la norme d’un des deux côtés, ces algorithmes de cribles vont marquer toutes les pairespa`kap, b`kbpq, pour des valeurs entières de ka et kb qui dépendent de la zone de crible. Une fois que suffisamment de nombres premiers ont été criblés de cette façon, les pairespa, bq, avecaetbpremiers, qui ont été beaucoup

marquées sont gardées, car ce sont celles qui ont le plus de chances d’être simultanément friables.

Ensuite, pour ces valeurs deaetb, les entiersF1pa, bq etF2pa, bqsont complètement factorisés à l’aide d’algorithmes comme P-1, P+1, ECM ou MPQS, suivant la taille des facteurs recherchés.

Finalement sont gardées seulement les valeurs de aetbpour lesquelles, simultanément,F1pa, bq est B1-friable et F2pa, bq estB2-friable.

Le crible le plus simple est le crible par lignes. Dans le cas du crible par lignes, la région de crible est très souvent de la formeΩ“ r´A, As ˆ s0, Bs, oùAetB sont deux entiers strictement positifs. Tout d’abord un entierb0 P s0, Bsest fixé et le crible s’effectue sur la ligne correspondant à b“b0. Pour cette ligne, pour chaqueiP t1,2uet pour chaque idéalpPBi, représenté par un nombre premierp et un entierr PRippq, l’ensemble des valeurs deaqui doivent être marquées, c’est-à-dire pour lesquellespFipa, b0q, est l’ensembletaP r´A, As |a”rb0 pmod pq u. Il suffit de calculer a0 P r0, pr tel que a0 ” b0r pmod pq et de considérer tous les a0`kp, pour tous les entiers kdans l’intervalle r´pA`a0q{p,pA´a0q{pr. Le crible par lignes devient peu efficace lorsque p etA ont une taille similaire car il y a, pour chaque idéalp, très peu de valeurs deaà considérer, voire parfois aucune lorsquep est plus grand queA.

Une autre méthode de crible est le crible par réseaux, décrit par Pollard dans [125]. SipPBi est un idéal, correspondant à la pairepp, rq avecp un nombre premier etr PRippq, qui doit être criblé, l’idée du crible par réseaux est de trouver un maximum de points du réseaux engendré par pp,0q et pr,1q qui appartiennent aussi à Ω. Pour ce faire, Pollard propose de calculer une base réduitet pa0, b0q,pa1, b1q ude ce réseau, de fixer deux bornes entièresK etJ et de marquer toutes les positions pka0`ja1, kb0 `jb1q, pour k P r´K, Ks et j P r´J, Js tels que kb0 `jb1 est positif. Certains points appartenant au réseau et à Ωpeuvent être manqués en utilisant cette méthode. Une meilleure méthode pour trouver des points du réseau qui appartiennent aussi à Ω a été proposée dans [58]. Pour les grands idéaux, le crible par réseaux est souvent moins coûteux que le crible par lignes.

La technique dite du spécial-q peut être utilisée pour améliorer les cribles par lignes et par réseaux. L’idée est que, pouriP t1,2ufixé, siqest un idéal premier non nul de degré1deZrαis correspondant à la paire pq, ρq, avec q un nombre premier et ρ P Ripqq, alors les paires pa, bq pour lesquelles a´bαi Pq (ce qui impliqueqFipa, bq) sont exactement les points d’un réseau, noté Lpqq, engendré par pq,0q et pρ,1q. Lorsqu’un spécial-q est utilisé, le crible, par lignes ou par réseaux, n’est plus fait dans Ωmais dansLpqq XΩ. Cela a l’avantage de forcer un facteur q dans la norme d’un des deux côtés et donc d’augmenter la probabilité de friabilité. Par contre l’utilisation de spécial-q entraîne que certaines relations seront trouvées plusieurs fois (pour des spécial-q différents). Ces doublons devront être repérés et éliminés mais cela peut être fait une fois l’étape de crible terminée. Il existe aussi des variantes des cribles par lignes et par réseaux qui autorisent des grands premiers, c’est-à-dire qui autorisent les entiers Fipa, bq à avoir un ou plusieurs facteurs premiers supérieurs à la borne de friabilitéBi.

Il existe des relations, dites gratuites, qui peuvent être trouvées avec très peu de calcul. Elles correspondent aux paires pa, bq avec a “ p, où p est un nombre premier inférieur au minimum de B1 et B2, et b “ 0. Une paire pp,0q correspond à une relation si f1 et f2 se factorisent complètement en facteurs de degré 1 lorsqu’ils sont considérés comme des polynômes surZ{pZ, ce qui arrive avec probabilité1{p# GalpK1{Qq# GalpK2{Qqq, d’après le théorème de Chebotarev.

À part pour l’algorithme SNFS, les polynômes utilisés n’ont pas de propriétés particulières du point de vue du groupe de Galois, donc,# GalpKiq “di!en général, ce qui signifie que àd1`d2

constant, plus d1 etd2 sont proches, plus la probabilité d’avoir une relation gratuite est grande.

2.4 Filtrage

Le but de l’étape de filtrage est de construire une matrice dont le noyau, qui sera calculé lors de l’étape d’algèbre linéaire, contient l’information sur des ensembles S inclus dans l’ensemble des relations R qui satisfont l’équation (2.5) pour i P t1,2u. La matrice est définie sur Z{2Z et est construite de la façon suivante : une ligne de la matrice correspond à une relation et la ligne correspondant à la relation pa, bq P Rest le vecteur pei,ppa´bαiqqpi,pqPt1uˆB1Yt2uˆB2. En remarquant que multiplier deux relations revient à additionner les vecteurs correspondants de la matrice, le problème de trouver des ensembles S se transforme en un problème de calcul du noyau à gauche de la matrice. Tout vecteur non nul du noyau à gauche de la matrice correspond à un ensemble S différent pour lequel l’équation (2.5) est vérifiée pour iP t1,2u.

Pour s’assurer que le noyau à gauche de la matrice ne soit pas réduit au vecteur nul, il suffit d’avoir plus de lignes que de colonnes, c’est-à-dire plus de relations que d’éléments dans les deux bases de facteurs réunies. Ceci justifie la condition#Rą#B1`#B2énoncée dans la section2.1.

Lorsque le crible par spécial-q est utilisé, des relations peuvent apparaître plus d’une fois. Une table de hachage peut être utilisée pour repérer et supprimer ces doublons au début de l’étape de filtrage. L’étape de filtrage consiste ensuite à réduire la taille de la matrice construite à partir des relations, sans perdre trop d’information sur le noyau à gauche, afin d’accélérer le calcul de l’étape d’algèbre linéaire. Le chapitre5de cette thèse est consacré à l’étude de l’étape de filtrage pour les algorithmes de crible, comme NFS pour la factorisation et NFS-DL ou FFS pour le calcul de logarithme discret.

2.5 Algèbre linéaire

Le but de l’étape d’algèbre linéaire est le calcul du noyau à gauche de la matrice produite par l’étape de filtrage. Les matrices apparaissant dans le contexte de l’algorithme NFS sont des matrices très creuses. En effet, pour ces matrices de plusieurs dizaines de milliers à plusieurs centaines de millions de lignes et de colonnes, suivant la taille de l’entierN, le nombre moyen de coefficients non nuls par ligne est autour de 25 au début de l’étape de filtrage. Une fois passée par l’étape de filtrage, le nombre moyen de coefficients non nuls par ligne des matrices dont le noyau est calculé lors de l’étape d’algèbre linéaire est compris entre 100et200environ. Deux al-gorithmes sont majoritairement utilisés pour calculer le noyau de matrices très creuses surZ{2Z: Wiedemann par bloc etLanczos par bloc. L’algorithme de Wiedemann par bloc est une amélio-ration de l’algorithme de Wiedemann [145] décrite par Coppersmith dans [41]. L’algorithme de Lanczos par bloc, décrit dans [40] et [107], est une adaptation de l’algorithme de Lanczos [89], qui sert initialement à calculer des valeurs propres de matrices. L’opération principale de ces deux algorithmes est le calcul de produits matrice–vecteur. La complexité de ces deux algorithmes est similaire et dépend, en première approximation, du produit de la taille de la matrice par le poids de la matrice, où le poids est le nombre de coefficients non nuls. Les avantages de l’algorithme de Lanczos par bloc sont que la mémoire nécessaire est moins importante (l’algorithme de Wiede-mann par bloc à une étape centrale très gourmande en mémoire) et que le nombre d’opérations requises est moins grand. Cependant l’algorithme de Lanczos par bloc utilise à la fois la matrice dont le noyau est calculé et sa transposée dans les calculs de produits matrice–vecteur, ce qui n’est pas le cas de l’algorithme de Wiedemann par bloc où la transposée n’apparaît pas. De plus, il est plus facile de distribuer les calculs de l’algorithme de Wiedemann par bloc sur plusieurs machines, ce qui permet de traiter des matrices plus grandes. En fonction de la taille de l’entierN à factoriser, donc de la taille de la matrice lors de l’étape d’algèbre linéaire, les deux algorithmes

peuvent être utilisés.