• Aucun résultat trouvé

Coordonn´ ees de Mumford versus coordonn´ ees thˆ eta

Nous avons pr´esent´e rapidement les coordonn´ees de Mumford dans la section2.2.3du chapitre pr´ec´

e-dent. Comparons les fonctions thˆeta aux coordonn´ees de Mumford :

– Les coordonn´ees thˆeta peuvent ˆetre utilis´ees pour toute vari´et´e ab´elienne principalement polaris´ee

tandis que les coordonn´ees de Mumford sont restreintes aux jacobiennes de courbes hyperelliptiques.

– Il y an

g

coordonn´ees thˆeta de niveaun(il faut prendren= 2 (surface de Kummer) oun>4 pair).

En comparaison, pour les coordonn´ees de Mumford, il n’y a que 2gcoordonn´ees `a manipuler. Notons

que Lubicz et Robert [LR10a] ont introduit des coordonn´ees compress´ees mais celle-ci restent bien

sup´erieures en nombre `a celles de Mumford. Pour des vari´et´es de petite dimension (cas int´eressants

en cryptographie), la diff´erence reste raisonnable par rapport aux gains arithm´etiques.

– Pour l’arithm´etique, en genre petit, les coordonn´ees thˆeta sont comp´etitives avec les coordonn´ees

de Mumford. En genre 2, sur la surface de Kummer, la multiplication est mˆeme plus rapide avec

les coordonn´ees thˆeta de niveau 2 [Gau07].

– Les coordonn´ees thˆeta de niveaunencodent une partie (au moins) de la n-torsion de la vari´et´e.

– Les coordonn´ees thˆeta ne sont a priori pas rationnelles (les points den-torsion n’´etant pas rationnels

en g´en´eral) tandis que celles de Mumford le sont.

– Certains algorithmes ne s’expriment qu’avec les coordonn´ees thˆeta (calcul de`-isog´enies par exemple).

– Notons ´egalement que [LR10b] donne un algorithme pour calculer le couplage de Weil avec les

fonctions thˆeta. Celui-ci semble comp´etitif par rapport `a ceux qui utilisent les coordonn´ees de

Mumford mais n´ecessiterait une ´etude plus d´etaill´ee.

Les deux syst`emes de coordonn´ees sont donc compl´ementaires et nous pr´esenterons au chapitre 5 des

formules permettant de passer de l’un `a l’autre.

Chapitre 4

Factorisation d’entiers

L’algorithmeECM(elliptic curve method) introduit en 1985 par Lenstra [Len87] joue un rˆole

impor-tant pour factoriser des entiers. L’utilisation principale d’ECMest de trouver des facteurs premiers de

taille« moyenne»(jusqu’`a une soixantaine de d´ecimales) de grands nombres. Il est ainsi utilis´e pour le

projet Cunningham

1

ou pour les nombres de Fermat. Parmi les succ`es deECM, citons la factorisation

des nombres de FermatF

10

et F

11

[Bre99]. `A ce jour, le plus grand facteur trouv´e parECMest de 73

chiffres d´ecimaux. Il a ´et´e trouv´e en 2010 par Bos, Kleinjung, Lenstra et Montgomery et il a permis

d’achever la factorisation de 2

1181

−1.

Dans la premi`ere section, nous pr´esentons le contexte de la factorisation dans lequel rentre l’algorithme

ECM. Dans la section suivante, nous pr´esentons l’algorithme ainsi que diverses am´eliorations. Dans la

section4.3, nous expliquons comment g´en´eraliserECMen utilisant des vari´et´es ab´eliennes et en particulier

des courbes hyperelliptiques de genre 2 (algorithme HECM : hyperelliptic curve method). Puis nous

explicitons et ´etudions une famille de courbes hyperelliptiques de genre 2 utilisable pour HECM. Pour

l’´etude pratique, nous avons ´ecrit un logicielGMP-HECMqui est d´ecrit dans la section4.4. Finalement,

dans la section4.5, nous donnons quelques pistes de recherche pour am´eliorerHECM.

L’int´erˆet de ce chapitre est de pr´esenter et d’analyser une version effective d’un algorithme du type

ECM utilisant des vari´et´es ab´eliennes de dimension 2 et qui soit comp´etitif par rapport `a ECM. Ce

chapitre est bas´e sur l’article [Cos10].

Fixons des notations pour ce chapitre. Nous voulons factoriser un entierN impair sans facteur carr´e.

Posonspun facteur premier deN, ce nombre n’´etant pas forc´ement le plus petit facteur deN.

4.1 Multiplication et factorisation

Multiplier deux nombres entiers est une op´eration rapide aussi bien en pratique qu’en th´eorie.

Algo-rithmiquement, suivant la taillendes nombres, diff´erentes m´ethodes pour les multiplier sont utilis´ees. La

complexit´e de certaines de ces m´ethodes est donn´ee dans le tableau 4.1. On consultera la partie 1.3 du

livre [BZ10] pour une description et une analyse de ces m´ethodes. Asymptotiquement la m´ethode la plus

rapide est quasi-lin´eaire et est due `a F¨urer [F¨u07].

Combin´es `a une m´ethode de r´eduction, ces algorithmes peuvent ˆetre utilis´es pour multiplier des

nombres dans l’anneauZ/NZ. En effet, les ´el´ements de cet anneau peuvent ˆetre repr´esent´es par des entiers

entre 0 etN−1. En supposant les ´el´ements distribu´es uniform´ement, leur taille moyenne estO(log

2

(N)),

c’est-`a-dire la mˆeme que celle deN. SiN est de taillenla complexit´e moyenne des algorithmes dans ce

cadre est celle donn´ee par le tableau4.1. On consultera le chapitre 2 du livre [BZ10] pour une description

plus d´etaill´ee des diff´erents algorithmes dans ce cadre. En particulier, les diff´erentes fa¸cons de repr´esenter

les nombres deZ/NZy sont discut´ees.

Algorithme Complexit´e

Multiplication triviale O n

2

Karatsuba O n

log2(3)

Toom-Cook O n

1+

algorithme FFT O(nlog(n) log (log(n)))

F¨urer nlog(n)2

O(log(n))

Tableau 4.1 – Complexit´e des algorithmes de multiplications de deux entiers de taillen

Algorithme Complexit´e Complexit´e dans

le pire des cas

Division `a essai π(p)∼

log(pp)

π(√

N)∼O

√ N log(N)

rho de Pollard O˜

p O˜

4

N

p−1 O √

qo`uqest le plus grand facteur dep−1 O√

N

ECM O L

p

1 2

;√

2 +o(1) O˜ L

N

1 2

; 1

Crible quadratique L

N

1 2

; 1

Crible alg´ebrique L

N

13

; 1.902

Tableau 4.2 – Complexit´e des algorithmes de factorisation en terme de nombre d’op´erations moduloN

Contrairement `a la multiplication, l’op´eration inverse, la factorisation, est en g´en´eral une op´eration

difficile. `A l’heure actuelle, nous ne connaissons pas d’algorithme polynomial en la taille des nombres

pour factoriser les entiers. Cette diff´erence de complexit´e a ´et´e exploit´ee pour construire des protocoles

cryptographiques commeRSA[RSA78]. La factorisation est une brique de base de nombreux algorithmes

utilis´es en th´eorie des nombres. Parmi ceux-ci citons

– la construction de racines (carr´ees ou autres) moduloN,

– la d´ecomposition d’un groupe ab´elien de type fini,

– le calcul de l’anneau des entiers d’un corps de nombres (factorisation du discriminant),

– ...

Asymptotiquement, la complexit´e des algorithmes est donn´ee dans le tableau4.2o`u nous utilisons la

fonction L

N

[α;c] d´efinie par

L

N

[α;c] = exp clog(N)

α

log(log(N))

1−α

et o`u π(x) est le nombre de premiers inf´erieurs `a x. Pour certains algorithmes, leur complexit´e d´epend

de la taille du plus facteur premier pdeN (rappelons quepest inconnu). Dans le pire des cas,pest de

l’ordre de√

N.

´

Etant donn´e un nombre `a factoriser, la m´ethode classique consiste `a utiliser la division triviale puis

des algorithmes du typep−1,p+ 1 etECMpour«nettoyer»les petits et moyens facteurs du nombre.

En effet, les entiers de tr`es grande taille peuvent avoir des facteurs de petite taille. Une fois ceux-ci

« nettoy´es », si la taille du nombre restant est raisonnable (le record actuel est la factorisation d’un

nombre RSA de 768 bits [KAF

+

10]) nous utilisons le crible quadratique ou alg´ebrique [Mon94]. Ces

derniers ont la meilleure complexit´e asymptotique connue. Dans le cas o`u la taille du nombre restant `a

factoriser est trop ´elev´ee, nous continuons d’utiliser des algorithmes du type ECMen esp´erant que les

facteurs premiers du nombre ne soient pas trop grands.

Algorithme 16p−1

Entr´ee: ´etant donn´es deux entiers positifsN et B

1

.

Sortie: S’il existe, un facteur de ptel que p−1 soitB

1

-friable

1: Choisir au hasardamoduloN premier avecN.

2: Calculera

k

moduloN aveck= ppcm (2, . . . , B

1

).

3: Calculer pgcd(a

k

−1, N)

Dans la section suivante, nous pr´esentons plus en d´etails les algorithmesp−1 etECMet nous ´etudions

leur complexit´e. Dans la section4.3.1, nous pr´esentons une g´en´eralisation d’ECM utilisant les vari´et´es

ab´eliennes, le but ´etant d’obtenir un algorithme de complexit´e similaire. Notons que les algorithmes de

crible n´ecessitent de trouver des nombres friables et pour cela utilisent ECM[Kru08, Kru10]. Dans ce

cadre, les nombres `a factoriser sont beaucoup plus petits et l’analyse de complexit´e est tr`es diff´erente :

les pr´ecalculs ne sont plus n´egligeables. Nous ne nous sommes pas int´eress´es `a cette application.

Documents relatifs