• Aucun résultat trouvé

Arithmexotiques

N/A
N/A
Protected

Academic year: 2021

Partager "Arithmexotiques"

Copied!
113
0
0

Texte intégral

(1)

HAL Id: tel-00341744

https://tel.archives-ouvertes.fr/tel-00341744

Submitted on 25 Nov 2008

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of

sci-entific research documents, whether they are

pub-lished or not. The documents may come from

teaching and research institutions in France or

abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destinée au dépôt et à la diffusion de documents

scientifiques de niveau recherche, publiés ou non,

émanant des établissements d’enseignement et de

recherche français ou étrangers, des laboratoires

publics ou privés.

Arithmexotiques

Laurent Imbert

To cite this version:

Laurent Imbert. Arithmexotiques. Informatique [cs]. Université Montpellier II - Sciences et

Tech-niques du Languedoc, 2008. �tel-00341744�

(2)

Habilitation `

a diriger les recherches

Universit´

e Montpellier 2

Sp´

ecialit´

e Informatique

Arithmexotiques

par

Laurent Imbert

Soutenue le 11 avril 2008 devant le jury compos´

e de

Jean-Claude Bajard

Claude Carlet

Christiane Frougny

rapporteuse

Graham A. Jullien

Gilles Villard

rapporteur

(3)
(4)

Chapitre 1

Introduction

Lorsqu’en novembre 1859, Bernhard Riemann publie ¨

Uber die Anzahl der Primzahlen unter

einer gegebenen Gr¨

oße (On the number of primes less than a given quantity), il ne mesure

certainement pas l’impact qu’aura cet article de 8 pages, le seul qu’il publiera en th´

eorie des

nombres, sur les math´

ematiques de la fin du 19

e

si`

ecle `

a nos jours.

En aoˆ

ut 1900, lors du congr`

es international des math´

ematiciens, dans un amphith´

atre bond´

e

de la Sorbonne, David Hilbert pr´

esentait sa fameuse liste de 23 probl`

emes qui, estimait-il,

servi-rait de cap aux explorateurs math´

ematiques du 20

e

si`

ecle. L’hypoth`

ese de Riemann, qui

consti-tuaient le 8

e

probl`

eme avec la conjecture de Goldbach, reste aujourd’hui un des rares probl`

emes

non r´

esolus de la liste initiale de Hilbert (certains ayant ´

et´

e partiellement prouv´

es, d’autres

es-tim´

es trop vagues pour ˆ

etre consid´

er´

es comme r´

esolus). Un si`

ecle plus tard, l’hypoth`

ese de

Rie-mann est le seul des 23 probl`

emes de Hilbert pr´

esent dans la liste des 7 probl`

emes du mill´

enaire

(Millenium prize problems, cf. table 1.1), ´

etablie en 2000 par l’institut de math´

ematiques Clay

(CMI) qui s’est engag´

e `

a verser `

a la premi`

ere personne qui r´

esoudra un de ces probl`

emes la

somme d’un million de dollars US.

Si la plupart des gens sont prˆ

ets `

a admettre que les math´

ematiques sont au cœur d’avanc´

ees

importantes dans de nombreux domaines, comme la conquˆ

ete de l’espace ou le d´

eveloppement des

technologies modernes, rares sont ceux qui imaginent que le monde myst´

erieux des nombres

pre-miers pourrait avoir une influence quelconque sur notre quotidien. De nombreux math´

ematiciens

du 20

e

si`

ecle partageaient cet avis, comme G. H. Hardy qui, en 1940 d´

eclarait `

a propos de la

th´

eorie des nombres : « Tant Gauss que les math´

ematiciens de moindre importance peuvent se

ejouir de ce que nous avons l`

a une science, au moins, qui est si ´

eloign´

ee des activit´

es humaines

ordinaires qu’elle restera vierge et immacul´

ee. » Il ne faudra pas tr`

es longtemps pour que cette

« science immacul´

ee » entre dans nos vies de tous les jours et se retrouve au cœur du monde des

affaires. `

A partir de la fin des ann´

ees 70, deux personnes n’ayant ´

echang´

e aucune information

pr´

ealable, allaient pouvoir communiquer en secret. La cryptographie moderne ´

etait n´

ee en

ap-portant une solution `

a la fameuse r`

egle 22 de la cryptographie : Pour qu’Alice and Bob puissent

communiquer en secret, ils doivent tout d’abord communiquer en secret.

En 1976, en effet, un article fondateur de Whitfield Diffie et Martin Hellman [31], d´

efinissait

les bases de la cryptographie moderne asym´

etrique en introduisant une m´

ethode permettant `

a

deux personnes d’´

etablir un secret commun en ne s’´

echangeant que des informations publiques.

Ils avaient r´

esolu un des probl`

emes majeurs de la cryptographie : la distribution des cl´

es secr`

etes.

Lorsque deux ans plus tard, en 1978, Ron Rivest, Adi Shamir et Leonard Adleman proposaient

le c´

el`

ebre algorithme RSA [70], qui permet de signer et de chiffrer des messages, la quˆ

ete des

nombres premiers sortait brutalement des centres universitaires pour devenir une ambitieuse

op´

eration commerciale plan´

etaire.

L’explosion d’Internet et du commerce ´

electronique allait voir passer la cryptographie (l’art

d’´

ecrire en caract`

eres secrets) du statut d’art-science r´

eserv´

ee aux ´

echanges confidentiels de

(5)

2

P versus NP

The question is whether, for all problems for which a computer can verify a given solution

quickly (that is, in polynomial time), it can also find that solution quickly. This is generally

considered the most important open question in theoretical computer science.

The Hodge conjecture

The Hodge conjecture is that for projective algebraic varieties, Hodge cycles are rational

linear combinations of algebraic cycles.

The Poincar´

e conjecture

In topology, a sphere with a two-dimensional surface is essentially characterized by the

fact that it is simply connected. It is also true that every 2-dimensional surface which is

both compact and simply connected is topologically a sphere. The Poincar´

e conjecture is

that this is also true for spheres with three-dimensional surfaces. The question had long

been solved for all dimensions above three. Solving it for three is central to the problem of

classifying 3-manifolds. A proof of this conjecture was given by Grigori Perelman in 2003 ;

its review was completed in August 2006, and Perelman was awarded the Fields Medal for

his solution. Perelman declined the award.

The Riemann hypothesis

The Riemann hypothesis is that all nontrivial zeros of the Riemann zeta function have a

real part of 1/2. A proof or disproof of this would have far-reaching implications in number

theory, especially for the distribution of prime numbers. This was Hilbert’s eighth problem,

and is still considered an important open problem a century later.

Yang-Mills existence and mass gap

In physics, classical Yang-Mills theory is a generalization of the Maxwell theory of

elec-tromagnetism where the chromo-electromagnetic field itself carries charges. As a classical

field theory it has solutions which travel at the speed of light so that its quantum version

should describe massless particles (gluons). However, the deictic phenomenon of color

confi-nement permits only bound states of gluons, forming massive particles. This is the mass

gap. Another aspect of confinement is asymptotic freedom which makes it conceivable that

quantum Yang-Mills theory exists without restriction to low energy scales. The problem is

to establish rigorously the existence of the quantum Yang-Mills theory and a mass gap.

Navier-Stokes existence and smoothness

The Navier-Stokes equations describe the movement of liquids and gases. Although they

were found in the 19th century, they still are not well understood. The problem is to make

progress toward a mathematical theory that will give us insight into these equations.

The Birch and Swinnerton-Dyer conjecture

The Birch and Swinnerton-Dyer conjecture deals with a certain type of equation, those

defining elliptic curves over the rational numbers. The conjecture is that there is a simple

way to tell whether such equations have a finite or infinite number of rational solutions.

Hilbert’s tenth problem dealt with a more general type of equation, and in that case it was

proven that there is no way to decide whether a given equation even has any solutions.

(6)

3

certains organismes gouvernementaux, `

a un outil de base indispensable aux ´

echanges quotidiens

du monde des affaires et des particuliers. Sans le savoir, nous utilisons quotidiennement la

cryptographie `

a cl´

e publique ; par exemple en retirant de l’argent liquide dans un distributeur

de billets, ou lors de la saisie et de l’envoi de notre num´

ero de carte de cr´

edit sur Internet. Des

protocoles d’authentification ou de signature permettent par exemple de v´

erifier l’identit´

e des

acteurs d’une transaction ´

electronique. Sans ces protocoles s´

ecuris´

es, ce type de transactions que

beaucoup consid`

erent aujourd’hui comme naturelles, ne seraient pas possibles.

Pour expliquer comment les nombres premiers interviennent dans ces algorithmes de

signa-ture et de chiffrement, je dirais, de mani`

ere tr`

es sch´

ematique, que les propri´

et´

es que nous leur

connaissons permettent de concevoir ces protocoles, et que tout ce que nous ignorons permet de

efinir des param`

etres assurant leur robustesse. Prenons par exemple l’algorithme RSA, dont

la s´

ecurit´

e est bas´

ee sur la difficult´

e de factoriser un entier construit en multipliant entre eux

deux grands nombres premiers (plusieurs centaines de chiffres d´

ecimaux). Pour de telles tailles,

il n’existe pas d’algorithme efficace permettant de retrouver les facteurs premiers `

a partir de

leur produit. Le myst`

ere qui entoure les nombres premiers est donc au cœur de la cryptographie

moderne. Les nombres premiers apparaissent aussi dans d’autres protocoles cryptographiques

bas´

es sur un autre probl`

eme difficile ; le probl`

eme du logarithme discret (DLP pour Discrete

Logarithm Problem) sur un groupe fini : Soit (G, ×) un groupe cyclique fini d’ordre n et soit g

un g´

en´

erateur de G. Tout ´

el´

ement h ∈ G peut s’´

ecrire h = g

e

avec 0 ≤ e ≤ n − 1. Le probl`

eme du

logarithme discret consiste `

a retrouver e ´

etant donn´

es g, h ∈ G. Les protocoles d’´

echange de cl´

e

de Diffie-Hellman, de chiffrement ElGamal ou de signature DSA (Digital Signature Algorithm)

utilisent le groupe multiplicatif Z

∗p

du corps fini `

a p ´

el´

ements, o`

u p est un nombre premier. Bien

qu’il existe sur ces groupes des algorithmes de complexit´

e sous-exponentielle pour r´

esoudre le

DLP, ils restent encore tr`

es utilis´

es en pratique car les op´

erations arithm´

etiques modulo p sont

tr`

es simples `

a calculer. Dans la plupart des cas, il est mˆ

eme possible de choisir des nombres

premiers particuli`

erement adapt´

es `

a l’arithm´

etique modulo p, rendant les protocoles encore plus

rapides (cf. chapitre 2).

Les courbes elliptiques et les jacobiennes de courbes hyperelliptiques de petit genre, d´

efinies

sur un corps fini, constituent une autre classe d’excellents outils math´

ematiques pour ces

proto-coles cryptographiques. De mani`

ere tr`

es sch´

ematique, une courbe elliptique peut ˆ

etre vue comme

l’ensemble des solutions d’une ´

equation `

a deux variables. L’ensemble de ces solutions permet de

efinir un groupe ab´

elien fini procurant un tr`

es haut niveau de s´

ecurit´

e. En fait, « casser » un

syst`

eme cryptographique bas´

e sur les courbes elliptiques (ou hyperelliptiques de petit genre) est

consid´

er´

e comme un probl`

eme extrˆ

emement difficile (de complexit´

e exponentielle) ; largement

plus difficile, `

a taille ´

egale, que la factorisation d’entiers (RSA) ou le probl`

eme du logarithme

discret sur le groupe multiplicatif d’un corps fini (Diffie-Hellman, DSA). Les param`

etres

permet-tant d’obtenir avec des courbes un niveau de s´

ecurit´

e ´

equivalent `

a ces autres protocoles sont par

cons´

equent beaucoup plus petits, d’o`

u des protocoles plus rapides n´

ecessitant beaucoup moins

de m´

emoire. Malgr´

e de nombreux avantages, l’utilisation des courbes elliptiques en

cryptogra-phie reste encore relativement limit´

ee ; RSA restant l’algorithme de r´

ef´

erence pour la plupart

des acteurs du monde ´

economique. Grˆ

ace notamment `

a un tr`

es grand nombre de travaux de la

communaut´

e scientifique sur les courbes elliptiques, ce constat pourrait cependant ´

evoluer

rapi-dement en faveur de ces derni`

eres dans un avenir proche. De nombreux standards internationaux

fixent des r`

egles d’utilisation pour l’utilisation des courbes elliptiques ; et la soci´

et´

e Certicom

(bas´

ee `

a Mississauga, Ontario, Canada) qui commercialise des produits bas´

es sur les courbes

elliptiques a des clients dans le monde entier, en particulier la National Security Agency (NSA)

Am´

ericaine. Les courbes hyperelliptiques, qui n’ont attir´

e l’attention de la communaut´

e que plus

ecemment, commencent `

a s’affirmer comme une alternative s´

erieuse aux courbes elliptiques. Des

esultats r´

ecents ont en effet montr´

e qu’elles peuvent s’av´

erer aussi, voire plus efficaces que leurs

´

(7)

4

est important de noter que, contrairement aux protocoles bas´

es sur les courbes elliptiques pour

lesquels Certicom d´

etient quasiment tous les brevets, la cryptographie des courbes

hyperellip-tiques reste, pour l’instant, relativement libre d’usage et de droits. (Le chapitre 3 est consacr´

e `

a

l’arithm´

etique des courbes elliptiques.)

(8)

Chapitre 2

Arithm´

etique modulaire

L’une des premi`

eres et plus importantes contributions de Gauss `

a ´

et´

e l’invention d’une

cal-culatrice virtuelle fonctionnant sur le principe d’un cadran horaire. Sur une horloge classique,

12 et 0 repr´

esentent la mˆ

eme valeur. Gauss avan¸

ca l’id´

ee d’une arithm´

etique qui fonctionnerait

sur le mˆ

eme principe quel que soit le nombre d’heures indiqu´

ees sur le cadran. Cette id´

ee offrait

la possibilit´

e de faire de l’arithm´

etique avec des nombres jusqu’alors consid´

er´

es comme peu

ma-niables. Cette arithm´

etique d’un nouveau genre, commun´

ement appel´

ee arithm´

etique modulaire,

allait r´

evolutionner les math´

ematiques du 19

e

si`

ecle jusqu’`

a nos jours o`

u elle se retrouve au cœur

de la cryptographie moderne.

En effet, l’efficacit´

e de la plupart des protocoles cryptographiques asym´

etriques d´

epend

prin-cipalement de la rapidit´

e de l’arithm´

etique modulaire sous-jacente. La taille des op´

erandes joue

´

evidemment un rˆ

ole pr´

epond´

erant dans l’efficacit´

e de cette arithm´

etique. Pour les algorithmes

construits sur un anneau fini de type Z

n

(RSA, Diffie-Hellman, DSA, etc), les entiers consid´

er´

es

pour obtenir un niveau de s´

ecurit´

e suffisant font plusieurs milliers de bits. Dans le cas des courbes

elliptiques d´

efinies sur un corps fini de type F

p

avec p premier, la taille des entiers manipul´

es

est beaucoup plus petite. La table 2.1, dont les valeurs num´

eriques sont issues de [76], pr´

esente

une synth`

ese des propri´

et´

es et des besoins arithm´

etiques pour les protocoles cryptographiques

les plus communs. Un niveau de s´

ecurit´

e de n bits correspond `

a la s´

ecurit´

e procur´

ee par un

chiffrement sym´

etrique utilisant une cl´

e de n bits.

Niveau de

RSA

DH, DSA

ECC

ecurit´

e

Z

n

, n = pq

Z

∗p

F

p

(en bits)

p, q premiers

p premier

p premier

(taille de n en bits)

(taille de p, en bits)

(taille de p, en bits)

80

1024

1024

160

112

2048

2048

224

128

3072

3072

256

192

4096

4096

384

256

15360

15360

512

Tab. 2.1 – Arithm´

etique modulaire de quelques protocoles cryptographiques.

L’op´

eration principale en arithm´

etique modulaire, appel´

ee r´

eduction modulaire, consiste `

a

´

evaluer le reste de la division enti`

ere x/n. Soit 0 ≤ x < n

2

(on suppose g´

en´

eralement que l’entier

`

a r´

eduire est le r´

esultat du produit de deux entiers inf´

erieurs `

a n), alors il existe q ≥ 0 et

0 ≤ r < n tels que x = qn + r. La valeur r, appel´

ee le reste, est not´

ee r = x mod n. Ici « mod »

doit ˆ

etre vu comme un op´

erateur qui calcule l’unique entier 0 ≤ r < n ; la relation de congruence

´

etant not´

ee x ≡ r (mod n).

(9)

6

Bien ´

evidemment, les algorithmes de division [45, 46], comme la c´

el`

ebre m´

ethode SRT

1

,

longtemps implant´

ee dans les unit´

es flottantes des microprocesseurs (on se souvient tous du bug

du premier Pentium d’Intel [66]) avant d’ˆ

etre remplac´

ee par des m´

ethodes `

a base d’´

evaluation

polynomiale, o`

u les m´

ethodes `

a convergence quadratique de Newton et Goldsmith [48, 44],

peuvent ˆ

etre utilis´

ees pour calculer non seulement le quotient, mais aussi le reste d’une

divi-sion. N´

eanmoins, pour les applications cryptographiques, il est plus avantageux d’utiliser des

algorithmes qui permettent de calculer un reste modulo n sans avoir `

a ´

evaluer le quotient.

L’algorithme de Barrett [13] permet de calculer r = x mod n sans effectuer de division (sauf

dans la phase de pr´

ecalcul). On suppose que n s’´

ecrit sur k chiffres en base b, avec b

k−1

6= 0 et que

x s’´

ecrit sur 2k chiffres (cette condition est bien v´

erifi´

ee pour x < n

2

). On suppose aussi que la

valeur µ =

b

2k

/n est pr´ecalcul´ee. En raison de ce pr´ecalcul faisant intervenir une division par

n, l’algorithme de Barrett n’est int´

eressant que lorsque plusieurs r´

eductions modulo n doivent

ˆ

etre calcul´

ees, comme pour une exponentiation modulaire. L’id´

ee de Barrett consiste `

a calculer

le reste r = x − qn `

a partir d’une approximation ˜

q du quotient. Plus pr´

ecis´

ement, plutˆ

ot que

d’´

evaluer

q = bx/nc =

 (x/b

k−1

)(b

2k

/n)

b

k+1



,

(2.1)

l’algorithme de Barrett calcule

˜

q =

$ 

x/b

k−1

 µ

b

k+1

%

,

(2.2)

o`

u les divisions par b

k−1

et b

k+1

se ram`

enent `

a de simples d´

ecalages (`

a droite) dans la base b.

On remarque que −b

k+1

< r

1

− r

2

< b

k+1

et par cons´

equent, apr`

es l’´

etape 4 de l’algorithme 1

ci-dessous, on a 0 < ˜

r < b

k+1

. On v´

erifie aussi ais´

ement la double in´

egalit´

e suivante

x

n

b

k−1

n

x

b

2k

+

1

b

k+1

x/b

k−1

 µ

b

k+1

(x/b

k−1

)(b

2k

/n)

b

k+1

qui nous assure que la valeur ˜

q calcul´

ee v´

erifie q−2 ≤ ˜

q ≤ q. Si r = x−qn, on montre que la valeur

˜

r calcul´

ee apr`

es l’´

etape 4 v´

erifie ˜

r ≡ (q − ˜

q)n + r (mod b

k+1

). De plus, (q − ˜

q)n + r < 3n < b

k+1

pour b > 3, ce qui nous assure que la boucle « tant que » de l’´

etape 5 ne sera jamais ex´

ecut´

ee

plus de 2 fois. (Voir [59, chapitre 14] pour une analyse fine du coˆ

ut de l’algorithme de Barrett.)

Algorithme 1 R´

eduction modulaire de Barrett

Entr´

ees : x = (x

2k−1

, . . . , x

1

, x

0

)

b

,

n = (n

k−1

, . . . , n

1

, n

0

)

b

avec n

k−1

6= 0

Sorties : 0 ≤ x mod n < n

1:

q

0

= bx/b

k−1

cµ,

q = bq

˜

0

/b

k+1

c

2:

r

1

= x mod b

k+1

,

r

2

= ˜

qn mod b

k+1

,

r = r

˜

1

− r

2 3:

Si ˜

r < 0 Alors

4:

r = ˜

˜

r + b

k+1

5:

Tant que ˜

r ≥ n faire

6:

r = ˜

˜

r − n

7:

Renvoyer ˜

r

En simulant une division enti`

ere, on peut voir l’algorithme de Barrett comme une r´

eduction

modulaire poids forts en tˆ

ete. `

A l’oppos´

e, l’algorithme de Montgomery [62] effectue la r´

eduction

par les poids faibles. Pour calculer r = x mod n, l’id´

ee tr`

es ´

el´

egante de Montgomery repose sur le

1

Nomm´ee ainsi par Freiman [47] en l’honneur de Sweeney, Robertson [71] et Tocher qui l’auraient d´ecouvert ind´ependamment vers la fin des ann´ees 50.

(10)

7

fait qu’on ne modifie pas la valeur de r en ajoutant `

a x n’importe quel multiple de n. Le but ´

etant

de faire en sorte que le r´

esultat de x + kn soit facilement divisible par une valeur m pr´

ed´

efinie, en

en´

eral une puissance de la base de num´

eration. Par exemple, si n est impair, et en choisissant

m = 2 (de telle sorte que pgcd(m, n) = 1) alors, que l’on calcule x + n pour x impair, ou x + 2n

pour x pair, le r´

esultat obtenu sera toujours pair ; on peut donc facilement le diviser par m = 2

par un simple d´

ecalage et obtenir une valeur congrue `

a x/2 (mod n). L’algorithme de r´

eduction

modulaire de Montgomery pr´

esent´

e ci-dessous (cf. algorithme 2) g´

en´

eralise ce principe. La valeur

pr´

ecalcul´

ee n

0

= −n

−1

mod m nous permet de calculer la valeur q telle que x+qn soit un multiple

de m, et par cons´

equent divisible par m. Cette valeur n’existe que si n et m sont premiers entre

eux. En pratique, n est un nombre premier, ou le produit impair de deux nombres premiers,

et m est une puissance de 2. Comme pour Barrett, le pr´

ecalcul de Montgomery, (n

0

peut ˆ

etre

Algorithme 2 R´

eduction modulaire de Montgomery (MR)

Entr´

ees : x < n

2

Sorties : r = xm

−1

mod n

1:

q = xn

0

mod m

2:

r = (x + qn)/m

3:

Si r ≥ n Alors

4:

r = r − n

5:

Renvoyer r

obtenu grˆ

ace `

a l’algorithme d’Euclide ´

etendu), devient n´

egligeable lorsque plusieurs r´

eduction

modulo n sont effectu´

ees. Dans le cadre d’une exponentiation, il faut cependant g´

erer le facteur

m

−1

qui apparaˆıt `

a chaque r´

eduction. En fait, plutˆ

ot que de calculer x

e

mod n directement, on

commence par effectuer un changement de repr´

esentation x → ˜

x = xm mod n : en supposant

que m

0

= m

2

mod n est pr´

ecalcul´

e, le passage dans la repr´

esentation de Montgomery se fait en

calculant MR(xm

0

) (on a bien xm

0

< n

2

). L’avantage de cette repr´

esentation est d’ˆ

etre stable par

MR. Par exemple, MR ˜

x

2

 ≡ x

2

m

2

m

−1

mod n ≡ x

2

m mod n que je note ˜

x

2

(la valeur retourn´

ee

par MR ´

etant inf´

erieure `

a n, on a bien le r´

esultat souhait´

e). Le r´

esultat final de l’exponentiation

x

e

mod n est obtenu par un dernier appel `

a MR(˜

x

e

) (si l’algorithme d’exponentiation se termine

par le produit ˜

x

e−1

× ˜

x, on peut ´

economiser un appel `

a MR en r´

eduisant ˜

x

e−1

x < n

2

). Le surcoˆ

ut

engendr´

e par les changements de repr´

esentations est donc n´

egligeable par rapport au coˆ

ut de

l’exponentiation. L’algorithme de Montgomery a ´

et´

e tr`

es ´

etudi´

e ; voir [59, chapitre 14] pour

une analyse d´

etaill´

ee de sa complexit´

e et [25] pour une bonne ´

etude comparative de diff´

erentes

options d’impl´

ementation.

Il existe des situations o`

u l’arithm´

etique modulaire peut ˆ

etre grandement acc´

el´

er´

ee ; en

par-ticulier lorsqu’il est possible de choisir le corps fini sur lequel sont effectu´

es les calculs. Dans

de tels cas, on privil´

egie g´

en´

eralement des entiers (premiers) dont la forme est particuli`

erement

bien adapt´

ee `

a l’arithm´

etique modulaire. Les nombres de Mersenne de la forme p = 2

n

− 1

constituent une famille, a priori tr`

es int´

eressante, puisque la r´

eduction modulo p se r´

eduit `

a

l’addition (modulo p) de la partie haute et de la partie basse du nombre que l’on d´

esire r´

eduire.

En effet, soit x < p

2

. Pour calculer x modulo p, il suffit d’´

ecrire x = x

1

2

n

+ x

0

avec x

0

, x

1

< 2

n

et d’utiliser la relation de congruence 2

n

≡ 1 (mod p) pour obtenir que x ≡ x

0

+ x

1

(mod p). Si

le r´

esultat dans Z de l’addition x

0

+ x

1

est sup´

erieur `

a p, le r´

esultat final est obtenu en calculant

(x

0

+ x

1

) mod 2

n

+ 1 < p. Le coˆ

ut total de la r´

eduction modulo un nombre de Mersenne est donc

tr`

es proche du coˆ

ut d’une addition (exactement une addition dans Z plus ´eventuellement une

addition de 1). Les nombres de Mersenne ressemblent donc aux candidats parfaits.

Malheureuse-ment, il n’existe que tr`

es peu de nombres de Mersenne premiers pour les tailles cryptographiques

usuelles (cf. table 2.2). La recherche de Mersenne premiers de plus en plus grands est un probl`

eme

(11)

8

M

2

3

M

3

7

M

5

31

M

7

127

M

13

8191

M

17

131071

M

19

524287

M

31

2147483647

M

61

2305843009213693951

M

89

618970019642690137449562111

M

107

162259276829213363391578010288127

M

127

170141183460469231731687303715884105727

M

521

68647976601306097149...12574028291115057151

Tab. 2.2 – Quelques nombres de Mersenne premiers.

difficile. Le plus grand nombre de Mersenne premier connu `

a ce jour, d´

ecouvert en septembre

2006 dans le cadre du GIMPS

2

(Great Internet Mersenne Prime Search), est l’entier 2

32582657

−1

de plus de 9, 8 millions de chiffres d´

ecimaux !

Les nombres de Mersenne premiers ´

etant malheureusement tr`

es rares, plusieurs auteurs, dont

R. Crandall [30] ont propos´

e d’utiliser des entiers dont la forme et les propri´

et´

es arithm´

etiques

sont proches de celles des Mersenne. Ces entiers, baptis´

es pseudo-Mersenne, sont de la forme

p = 2

n

− c, o`

u c est un petit entier. En utilisant la mˆ

eme d´

ecomposition que pr´

ec´

edemment et

la relation de congruence x ≡ x

1

c + x

0

(mod p), la r´

eduction modulo un pseudo-Mersenne se

ram`

ene `

a une multiplication par un petit entier et un petit nombre d’additions/soustractions

(dans Z). Il est beaucoup plus facile de trouver des pseudo-Mersenne que des Mersenne premiers

pour les tailles cryptographiques ; par exemple, le pseudo-Mersenne p = 2

255

− 19 est un nombre

premier de 255 bits qui a ´

et´

e utilis´

e pour acc´

el´

erer les calculs sur les courbes elliptiques [14] (cf.

chapitre 3). Il est cependant regrettable que Crandall ait pr´

ef´

er´

e d´

eposer un brevet [30], plus ou

moins controvers´

e

3

, plutˆ

ot qu’en publiant un article.

Les nombres premiers propos´

es dans [77] par le SECG (Standards for Efficient Cryptography

Group) pour l’impl´

ementation des protocoles bas´

es sur les courbes elliptiques (cf. table 2.3)

sont tous des pseudo-Mersenne premiers ; ils sont tous de la forme 2

n

− c avec c petit, mais on

remarque que c > 2

32

(sauf secp160r1 et secp521r1 aussi recommand´

e par le NIST [67]). Cette

contrainte, a priori inutile et surprenante puisqu’il existe des courbes sˆ

ures pour des valeurs de

c plus petites, pourrait bien venir, encore une fois, de ce brevet d´

epos´

e en 1991 par Crandall qui

sp´

ecifie (Claim 2 ) : « where c is a binary number having a length no greater than 32 bits ». (Si

c’est le cas, je n’explique pas les valeurs secp160r1 et secp521r1 !).

Peut ˆ

etre encore `

a cause (ou grˆ

ace) `

a ce brevet, la communaut´

e s’est int´

eress´

ee `

a rechercher

d’autres formes de nombres premiers adapt´

es `

a l’arithm´

etique modulaire. En 1999, J. Solinas [74]

introduit la famille des Mersenne g´

en´

eralis´

es de la forme p = f (t), o`

u f est un polynˆ

ome unitaire

`

a coefficients entiers et t une puissance de 2. Par exemple, l’entier p = 2

192

− 2

64

− 1 peut ˆ

etre

efini par le polynˆ

ome f (t) = t

3

− t − 1 ´

evalu´

e en t = 2

64

. Ainsi, tout entier x < p

2

peut s’´

ecrire

comme un polynˆ

ome de degr´

e ≤ 5, sous la forme x =

P

5

i=0

x

i

t

i

. Pour calculer r = x mod p, il

2

http://www.mersenne.org/prime.htm

(12)

9

secp160k1

2

160

− 2

32

− 2

14

− 2

12

− 2

9

− 2

8

− 2

7

− 2

3

− 2

2

− 1

secp160r1

2

160

− 2

31

− 1

secp160r2

2

160

− 2

32

− 2

14

− 2

12

− 2

9

− 2

8

− 2

7

− 2

3

− 2

2

− 1

secp192k1

2

192

− 2

32

− 2

12

− 2

8

− 2

7

− 2

6

− 2

3

− 1

secp192r1

2

192

− 2

64

− 1

secp224k1

2

224

− 2

32

− 2

12

− 2

11

− 2

9

− 2

7

− 2

4

− 2 − 1

secp224r1

2

224

− 2

96

+ 1

secp256k1

2

256

− 2

32

− 2

9

− 2

8

− 2

7

− 2

6

− 2

4

− 1

secp256r1

2

224

(2

32

− 1) + 2

192

+ 2

96

− 1

secp384r1

2

384

− 2

128

− 2

96

+ 2

32

− 1

secp521r1

2

521

− 1

Tab. 2.3 – Les premiers recommand´

es par le groupe SECG pour les courbes elliptiques sur F

p

.

suffit d’utiliser les relations de congruences :

t

3

≡ t + 1

(mod p),

t

4

≡ t

2

+ t

(mod p),

t

5

≡ t

2

+ t + 1

(mod p),

et d’en d´

eduire les coefficients du polynˆ

ome (de degr´

e 2) repr´

esentant le reste :

r

0

= x

0

+ x

3

+ x

5

,

r

1

= x

1

+ x

3

+ x

4

+ x

5

,

r

2

= x

2

+ x

4

+ x

5

.

Le r´

esultat entier est obtenu en ´

evaluant le polynˆ

ome r = r

2

t

2

+ r

1

t + r

0

pour t = 2

64

. L’entier

consid´

er´

e dans l’exemple pr´

ec´

edent fait partie des 5 nombres premiers recommand´

es par le

NIST dans le standard FIPS 186-2 [67] pour l’utilisation des courbes elliptiques sur F

p

(cf.

table 2.4). On remarque que, comme dans les propositions du SECG, l’entier p

521

est un nombre

de Mersenne.

Valeur

polynˆ

ome

t

p

192

= 2

192

− 2

64

− 1

t

3

− t − 1

2

64

p

224

= 2

224

− 2

96

+ 1

t

7

− t

3

+ 1

2

32

p

256

= 2

256

− 2

224

+ 2

192

+ 2

96

− 1

t

8

− t

7

+ t

6

+ t

3

− 1

2

32

p

384

= 2

384

− 2

128

− 2

96

+ 2

32

− 1

t

12

− t

4

− t

3

+ t − 1

2

32

p

521

= 2

521

− 1

t − 1

2

521

Tab. 2.4 – Les Mersenne g´

en´

eralis´

es propos´

es par le NIST.

En 2003, J. Chung et A. Hasan ont publi´

e un article intitul´

e more generalized Mersenne

numbers [26], o`

u ils ´

etendent l’id´

ee de Solinas en autorisant n’importe quelle valeur pour t. Leur

approche permet d’engendrer, grˆ

ace `

a des valeurs de t diff´

erentes, plusieurs nombres premiers de

eme taille avec le mˆ

eme polynˆ

ome de d´

epart. La mˆ

eme arithm´

etique polynomiale peut donc

ˆ

etre r´

eutilis´

ee par plusieurs impl´

ementations.

Tous les entiers de la grande famille des Mersenne, pseudo-Mersenne, Mersenne g´

en´

eralis´

es,

Mersenne g´

en´

eralis´

es de Chung et Hasan poss`

edent un point commun : les propri´

et´

es des nombres

(13)

10

ependent essentiellement de leur ´

ecriture en base 2 (ou en base t dans le cas des moduli de Chung

et Hasan). Dans le cadre de son travail de th`

ese, Thomas Plantard s’est int´

eress´

e `

a la recherche

d’autres formes de nombres adapt´

es `

a l’arithm´

etique modulaire. Dans un article publi´

e `

a SAC

2004 [12] nous avons propos´

e un nouveau syst`

eme, appel´

e syst`

eme de num´

eration modulaire, ou

MNS de l’anglais Modular Number System, pour repr´

esenter les ´

el´

ements et calculer sur Z

n

.

Dans un syst`

eme classique de position [65], on repr´

esente les entiers (positifs) en base β sous

la forme usuelle, o`

u la position de chaque chiffre x

i

∈ {0, . . . , β − 1} correspond `

a une puissance

de la base de num´

eration :

x =

k−1

X

i=0

x

i

β

i

,

(2.3)

Si x

k−1

6= 0, on dit que l’entier x s’´

ecrit sur k chiffres en base β.

efinition 1 (MNS). Un Syst`

eme de Num´

eration Modulaire B est d´

efini par un quadruplet

(γ, ρ, n, p). Dans ce syst`

eme, tout entier 0 ≤ x < p peut s’´

ecrire sous la forme

x =

n−1

X

i=0

x

i

γ

i

mod p,

(2.4)

avec 1 < γ < p et x

i

∈ {0, . . . , ρ − 1}. Le vecteur (x

0

, x

1

, . . . , x

n−1

)

B

correspond `

a l’´

ecriture de

l’entier x dans la base B.

Comme pour les Mersenne g´

en´

eralis´

es, l’arithm´

etique des MNS manipule essentiellement des

polynˆ

omes, et comme pour les nombres de Chung et Hasan, la valeur de γ est libre. Par contre,

l’´

evaluation de (2.4) se faisant dans Z

p

, on peut choisir une valeur de γ arbitrairement grande

(de l’ordre de p), en essayant de faire en sorte que les coefficients x

i

soient aussi petits que

possible (< ρ).

Exemple 1. Soit le MNS d´

efini par γ = 7, ρ = 3, n = 3, p = 17. Dans ce syst`

eme, on repr´

esente

les ´

el´

ements de Z

17

comme des polynˆ

omes de degr´

e ≤ 2, `

a coefficients dans {0, 1, 2}. Il est facile

0

1

2

3

4

5

0

1

2

γ + 2γ

2

1 + γ + 2γ

2

γ + γ

2

6

7

8

9

10

11

1 + γ + γ

2

γ

1 + γ

2 + γ

2γ + 2γ

2

1 + 2γ + 2γ

2

12

13

14

15

16

2γ + γ

2

1 + 2γ + γ

2

1 + 2γ

2 + 2γ

Tab. 2.5 – Les ´

el´

ements de Z

17

dans la base B = M N S(7, 3, 3, 17).

de v´

erifier que l’´

evaluation modulo p = 17 de chaque polynˆ

ome de la table 2.5 en γ = 7 donne

bien les entiers de Z

17

.

efinition 2 (AMNS). Un syst`

eme de num´

eration modulaire B = M N S(γ, ρ, n, p) est dit

adapt´

e (AMNS pour Adapted Modular Number System en anglais) si γ

n

mod p = c ∈ Z, avec c

petit. On le note alors B = AM N S(γ, ρ, n, p, c).

Dans ce syst`

eme, l’addition correspond `

a une addition polynomiale ; les coefficients de la

somme peuvent ˆ

etre sup´

erieurs `

a ρ mais il n’est pas toujours n´

ecessaire d’effectuer une r´

eduction

des coefficients imm´

ediatement apr`

es l’addition. Voir [12] pour plus de d´

etails.

Comme dans [26], la multiplication modulaire dans un AMNS est effectu´

ee en trois ´

etapes

(cf. algorithme 3). Les deux premi`

eres ´

etapes font appel `

a des calculs simples sur des polynˆ

omes ;

(14)

11

Algorithme 3 Multiplication modulaire dans un AMNS

Entr´

ees : Un AMNS B = (γ, ρ, n, p, c), et deux entiers (polynˆ

omes) A = (a

0

, ..., a

n−1

)

B

, B =

(b

0

, ..., b

n−1

)

B

dans B

Sorties : Le polynˆ

ome S = (s

0

, ..., s

n−1

)

B

tel que S(γ) = A(γ)B(γ) mod p

1:

Multiplication polynomiale (dans Z[X]) : U (X) = A(X)B(X)

2:

eduction polynomiale : V (X) = U (X) mod (X

n

− c)

3:

Normalisation : S = CR(V ), tel que S(γ) ≡ V (γ) (mod p) et s

i

< ρ pour i = 0, . . . , n − 1.

la troisi`

eme consiste `

a normaliser les coefficients du polynˆ

ome obtenu `

a l’´

etape 2. Cette derni`

ere

´

etape, la plus coˆ

uteuse, est ´

equivalente `

a une r´

eduction modulo un r´

eseau euclidien.

Le coˆ

ut des deux premi`

eres ´

etapes de l’algorithme 3 est facile `

a ´

evaluer (voir [12] pour les

etails). Pour l’´

etape 1, la multiplication de deux polynˆ

omes de degr´

e < n dont les coefficients

sont inf´

erieurs `

a ρ demande n

2

produits entre op´

erandes de tailles log

2

(ρ) bits, et (n − 1)

2

additions de nombres de taille log

2

(nρ

2

) bits. L’´

etape 2 demande n − 1 produits par la constante

c (le coefficient `

a multiplier par c s’´

ecrit sur log

2

(nρ

2

) bits), et n − 1 additions de nombres de

taille log

2

(cnρ

2

) bits. Pour c petit ou creux, le coˆ

ut des multiplications par c est n´

egligeable.

L’algorithme de multiplication dans un AMNS montre clairement deux niveaux d’arithm´

e-tique modulaire : la r´

eduction polynomiale et la normalisation des coefficients. La r´

eduction

modulo (X

n

− c), que l’on peut qualifier de r´

eduction « externe », est une op´

eration facile car

c est un petit entier. En revanche, la r´

eduction « interne » des coefficients est plus difficile.

eme si ces niveaux sont moins visibles, l’arithm´

etique multipr´

ecision, o`

u les entiers de Z

p

sont

repr´

esent´

es sur plusieurs mots de w bits, poss`

ede aussi deux niveaux d’arithm´

etique modulaire :

la r´

eduction « externe » modulo p (difficile) et la r´

eduction « interne » implicite modulo 2

w

(facile).

La r´

eduction des coefficients consiste `

a calculer, `

a partir du polynˆ

ome V obtenu `

a l’´

etape

2, un polynˆ

ome S qui repr´

esente le mˆ

eme entier (i.e., tel que S(γ) ≡ V (γ) (mod p)) et dont

les coefficients sont tous < ρ. Pour simplifier l’analyse, et sans perte de g´

en´

eralit´

e, on fixe

ρ = 2

k+1

, et on repr´

esente les polynˆ

omes comme des vecteurs de coefficients ; ainsi le vecteur

V = (v

0

, . . . , v

n−1

) repr´

esente le polynˆ

ome V (x) = v

0

+ v

1

x + · · · + v

n−1

x

n−1

. La phase de

normalisation consiste `

a trouver une repr´

esentation de V dont les ´

el´

ements sont tous inf´

erieurs

`

a ρ, c’est-`

a-dire de taille au plus k + 1 bits.

Tout coefficient v

i

de V peut s’´

ecrire sous la forme v

i

= v

i

+ v

i

2

k

, avec v

i

< 2

k

. De mˆ

eme,

V = V + V · 2

k

I,

(2.5)

o`

u I est la matrice identit´

e de taille n × n. La d´

ecomposition (2.5) montre que si nous sommes

capables de trouver une repr´

esentation du vecteur V · 2

k

I dont les ´

el´

ements sont tous inf´

erieurs

`

a 2

k

, alors nous obtenons une repr´

esentation de V dont les coefficients sont < ρ. L’id´

ee consiste

`

a d´

efinir une matrice M avec de petits coefficients qui v´

erifie

M · (1, γ, . . . , γ

n−1

)

T

≡ 2

k

I · (1, γ, . . . , γ

n−1

)

T

(mod p),

(2.6)

De mani`

ere sch´

ematique, la matrice M peut ˆ

etre vue comme une repr´

esentation de 2

k

I dans

notre AMNS.

Si 2

k

= (z

0

, . . . , z

n−1

)

B

est une repr´

esentation de 2

k

dans notre AMNS, la d´

efinition 1 nous

dit que 2

k

≡ z

(15)

12

γ

n

≡ c (mod p), nous obtenons γ2

k

≡ cz

n−1

+ z

0

γ + · · · + z

n−2

γ

n−1

(mod p). On proc`

ede ainsi

jusqu’`

a obtenir la matrice M suivante :

M =

z

0

z

1

· · ·

z

n−1

cz

n−1

z

0

· · ·

z

n−2

..

.

cz

1

cz

2

· · · cz

n−1

z

0

(2.7)

Cette matrice v´

erifie (2.6), et donc V · 2

k

I ≡ V · M (mod p). L’´

equation (2.5) peut donc s’´

ecrire

V = V + V · M.

(2.8)

Cette ´

equation est `

a la base de l’algorithme de normalisation, ou plus exactement d’un algorithme

de r´

eduction partielle (cf. algorithme 4). En effet, en proc´

edant comme d´

ecrit ci-dessus, nous ne

pouvons pas r´

eduire les coefficients de V directement. Par contre, si les coefficients de M sont

suffisamment petits (la condition exacte ´

etant c

P

n−1

i=0

z

i

< 2

bk/2c

) nous pouvons transformer des

coefficients de taille d3k/2e bits en des coefficients de taille k+1 bits. Pour r´

eduire des coefficients

Algorithme 4 R´

eduction partielle : d3k/2e bits −→ k + 1 bits

Entr´

ees : un AMNS B = (γ, ρ, n, P, c) avec ρ = 2

k+1

; une repr´

esentation de 2

k

= (z

0

, ..., z

n−1

)

B

avec c

P

n−1

i=0

z

i

< 2

bk/2c

; la matrice M d´

efinie par (2.7) ; un vecteur V = (v

0

, . . . , v

n−1

) tel

que v

i

< 2

d3k/2e

pour i = 0 . . . n − 1.

Sorties : Un vecteur S = (s

0

, ..., s

n−1

) tel que s

i

< ρ pour i = 0 . . . n − 1.

1:

ecomposer V en V = V + V · 2

k

I

2:

Calculer S = V + V · M

de taille > 3k/2 bits, il suffit d’appliquer it´

erativement l’algorithme 4 de r´

eduction partielle

`

a partir des poids forts. (Voir [12] pour les d´

etails, les preuves et l’´

etude de la complexit´

e.)

L’exemple suivant illustre la multiplication dans un AMNS.

Exemple 2. Soient γ = 127006, k = 6, ρ = 128, n = 3, p = 250043. Puisque γ

3

≡ 2 (mod p), on

efinit B = AM N S(127006, 128, 3, 250043, 2). Il est facile de v´

erifier que 1 + γ

2

mod p = 2

6

; on

a donc 2

k

= (1, 0, 1)

B

et d’apr`

es (2.7),

M =

1

0

1

2

1

0

0

2

1

Soient a = 65842 et b = 8816 deux entiers repr´

esent´

es respectivement par les polynˆ

omes A(X) =

7 + 30X + 100X

2

et B(X) = 59 + 2X + 76X

2

(on v´

erifie que A(γ) mod p = a et B(γ) mod p = b).

On commence par calculer le produit

U (X) = A(X) × B(X) = 413 + 1784X + 6492X

2

+ 2480X

3

+ 7600X

4

,

que l’on r´

eduit modulo X

3

− 2 pour obtenir

V (X) = 5373 + 16984X + 6492X

2

.

L’algorithme 4 de r´

eduction partielle ne permettant de r´

eduire que des coefficients de taille ≤ 9

bits, on proc`

ede par ´

etape en commen¸

cant par les bits de poids forts. Le plus grand coefficient

de V faisant 15 bits, on « supprime » les 15 − 9 = 6 bits de poids faibles de chaque coefficient de

V pour ne garder que les bits de poids > 2

6

. Tous les coefficients du vecteur V

0

= (83, 265, 101)

B

(16)

13

v0 s0 v0 s0 v0 s0 v1 s1 v1 s1 v1 s1 v2 s2 v2 s2 v2 s2

5373

83

61

1

19

28

1853

16984

265

24

4

9

15

984

6492

101

28

1

37

39

2524

1853

231

5

3

39

44

357

984

123

0

1

59

68

544

2524

315

4

4

59

66

532

357

178

1

2

46

60

121

544

272

0

4

16

28

56

532

266

0

4

10

16

32

Fig. 2.1 – D´

ecomposition du calcul de 65842 × 8816 mod 250043. Les parties encadr´

ees

corres-pondent `

a l’algorithme 4.

(17)

14

On termine la premi`

ere ´

etape de r´

eduction en « recollant » les coefficients de S

0

aux bits de V

de poids < 2

6

que l’on avait supprim´

es. On obtient le vecteur V

1

= (1853, 984, 2524)

B

, dont les

coefficients sont tous de taille ≤ k + 1 + 6 = 13 bits. On recommence ainsi jusqu’`

a ce que le

vecteur S obtenu soit compl`

etement r´

eduit, comme illustr´

e sur la figure 2.1. On peut v´

erifier

que le vecteur (polynˆ

ome) S

3

= (121, 56, 32)

B

correspond bien `

a l’entier 113269 = a × b mod p

et que ses coefficients sont tous inf´

erieurs `

a ρ.

Les param`

etres p et γ choisis pour l’exemple pr´

ec´

edent d´

efinissent effectivement un AMNS

tr`

es int´

eressant puisque l’´

etape de r´

eduction des coefficients ne demande qu’un petit nombre

d’additions et de d´

ecalages (18 additions suffisent pour l’exemple 2). Tous les nombres premiers

p ne permettent pas de d´

efinir un AMNS, et parmi ceux qui le permettent, il existe des choix

(n, γ, etc) plus int´

eressants que d’autres. Pour trouver de bons candidats, la strat´

egie est la

suivante : On choisit ρ = 2

k+1

en fonction de l’architecture vis´

ee (en pratique, k = 15, 31 ou 63),

puis on fixe n de telle sorte que (k + 1) × n corresponde `

a peu pr`

es `

a la taille du corps souhait´

e.

Pour que l’´

etape de r´

eduction des coefficients soit tr`

es peu coˆ

uteuse, on impose des conditions

sur les coefficients z

i

(par exemple, z

i

∈ {0, 1, 2}) et on n’autorise que de petites valeurs pour

c. En fonction de ces choix, on calcule, si il en existe, des valeurs pour p et γ qui d´

efinissent un

AMNS. On d´

eduit p du calcul de d´

eterminant d =

2

k

· I − M

qui, d’apr`

es (2.6), doit ˆ

etre un

multiple de p, et on d´

eduit γ du calcul des racines de gcd(X

n

− c, 2

k

P

i

z

i

X

i

) mod p. Nous

donnons un exemple de recherche d’AMNS pour la cryptographie des courbes elliptiques.

Exemple 3. Nous cherchons un corps F

p

de taille au moins ´

egale `

a 2

160

. Pour ce faire, nous

fixons ρ = 2

16

et n = 11. Nous choisissons par exemple c = 3 et supposons que 2

k

s’´

ecrit

(1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1)

B

, c’est-`

a-dire 2

k

= 1 + x

5

+ x

8

+ x

9

+ x

10

. Nous calculons le d´

eterminant

d =

2

k

· I − M

= 46752355065074474485602713457356337710161910767327

qui poss`

ede comme facteur premier un nombre de 160 bits :

p = 792412797713126686196656160294175215426473063853.

Nous calculons une racine modulo p de gcd(X

11

− 3, 2

15

− 1 − x

5

− x

8

− x

9

− x

10

) pour obtenir

γ = 474796736496801627149092588633773724051936841406.

Dans sa th`

ese de doctorat [68], Thomas Plantard que j’ai eu le plaisir d’encadrer, propose

des param`

etres d’AMNS pour des corps premiers de taille cryptographiques allant de 128 `

a 512

bits. Il reste maintenant `

a coder ces r´

esultats pour valider la m´

ethode.

(18)

Chapitre 3

Arithm´

etique des courbes elliptiques

De mani`

ere tr`

es g´

en´

erale, une courbe elliptique est d´

efinie par l’ensemble des solutions d’une

´

equation `

a deux variables. En fait, ces objets math´

ematiques sont apparus dans la r´

esolution de

nombreux probl`

emes bien avant la naissance de la cryptographie `

a cl´

e publique.

−a

a

b

Fig. 3.1 – Arc d’une demi-ellipse d’´

equation x

2

/a

2

+ y

2

/b

2

= 1.

Par exemple, pour mesurer la longueur ` de l’arc d’une demi-ellipse (figure. 3.1), on doit

calculer l’int´

egrale suivante

` =

Z

a −a

s

a

2

− (1 − b

2

/a

2

)x

2

a

2

− x

2

dx.

En posant k

2

= 1 − b

2

/a

2

et apr`

es le changement de variable x → ax on obtient une int´

egrale

particuli`

ere appel´

ee int´

egrale elliptique

` = a

Z

1

−1

(1 − k

2

x

2

)

p(1 − x

2

)(1 − k

2

x

2

)

dx.

La fonction apparaissant au d´

enominateur d´

efinie par y

2

= (1 − x

2

)(1 − k

2

x

2

) est une courbe

elliptique, dite r´

eelle, dont le graphe ressemble `

a la courbe de la figure 3.2.

Fig. 3.2 – La courbe elliptique d’´

equation y

2

= (1 − x

2

)(1 − 3x

2

/4).

Le mˆ

eme type d’int´

egrale elliptique intervient dans le calcul exact de la position d’un pendule

pesant en fonction du temps pour de grandes oscillations. De nombreux probl`

emes de gravitation

(19)

16

ou d’´

electromagn´

etisme ont ´

et´

e r´

esolus par des calculs d’int´

egrales elliptiques ; on en retrouve en

particulier dans des travaux d’Euler et de Gauss datant des 18

e

et 19

e

si`

ecles. Mais les courbes

elliptiques interviennent aussi dans la r´

esolution de nombreux probl`

emes en th´

eorie des nombres.

Par exemple, d´

eterminer pour quelles valeurs de n la s´

erie 1 + 2

2

+ 3

2

+ · · · + n

2

est un carr´

e

parfait revient `

a calculer les solutions de l’´

equation y

2

= x(x + 1)(2x + 1)/6. Cette ´

equation de

degr´

e 3, repr´

esent´

ee sur la figure 3.3, est une courbe elliptique dite imaginaire. C’est ce genre de

courbes (d´

efinies sur un corps fini) que nous utilisons en cryptographie.

Fig. 3.3 – La courbe elliptique d’´

equation y

2

= x(x + 1)(2x + 1)/6.

Une courbe elliptique est donc un objet g´

eom´

etrique ; c’est une courbe non singuli`

ere d´

efinie

par une ´

equation de la forme y

2

= f (x), o`

u f est un polynˆ

ome de degr´

e 3 ou 4 en x sans

racine double. Les solutions (x, y) de cette ´

equation, auxquelles on ajoute un point particulier

O, appel´

e point `

a l’infini, forment l’ensemble des points d’une courbe elliptique :

E = {(x, y); y

2

= f (x)} ∪ {O}.

´

Etant donn´

es deux points (x

1

, y

1

), (x

2

, y

2

) de E, on peut d´

efinir, `

a l’aide de r`

egles simples,

un troisi`

eme point (x

3

, y

3

) appartenant `

a E. Une courbe elliptique est donc aussi un objet

alg´

ebrique, au sens o`

u il est possible d’« additionner » des points comme on le ferait avec des

nombres. De mani`

ere plutˆ

ot surprenante, cette addition de points se d´

ecrit g´

eom´

etriquement de

mani`

ere simple et ´

el´

egante (voir figure 3.4). Si P 6= Q, le point R = P + Q est le sym´

etrique

par rapport `

a l’axe des abscisses du point d’intersection entre la courbe et la droite (P, Q) ; on

calcule 2R de la mˆ

eme mani`

ere, en consid´

erant la tangente `

a la courbe au point R. Les droites

de pente infinie passent toutes par le point O ; l’oppos´

e du point de coordonn´

ees (x, y) est donc

le point (x, −y).

P Q −R R 2R

Fig. 3.4 – Interpr´

etation g´

eom´

etrique de la loi d’addition sur une courbe elliptique.

Pour tout points P, Q, R de E, la loi + d´

ecrite ci-dessus v´

erifie : P + O = O + P = P ,

P + (−P ) = O, (P + Q) + R = P + (Q + R) et P + Q = Q + P . Muni de cette loi d’addition,

(20)

17

l’ensemble (E, +) forme donc un groupe ab´

elien.

En traduisant les r`

egles g´

eom´

etriques, cette loi d’addition se d´

ecrit ais´

ement de mani`

ere

analytique. consid´

erons les points P = (x

1

, y

1

) et Q = (x

2

, y

2

) sur une courbe d’´

equation y

2

=

x

3

+ ax + b. On a

P + Q = (λ

2

− x

1

− x

2

, −λ

3

+ 2λx

1

+ λx

2

− y

1

),

(3.1)

o`

u λ = (y

2

− y

1

)/(x

2

− x

1

) si P 6= ±Q et λ = (3x

21

+ a)/2y

1

si P = Q (si P = −Q on

a P + (−P ) = O). En observant les coordonn´

ees de P + Q dans (3.1), on remarque que si les

param`

etres a et b, et les coordonn´

ees de P et Q sont des nombres rationnels, alors les coordonn´

ees

des points P + Q et 2P sont elles aussi rationnelles.

La remarque pr´

ec´

edente est `

a l’origine d’un r´

esultat crucial, d´

emontr´

e par H. Poincar´

e `

a

l’aube du 20

e

si`

ecle : l’ensemble E(Q) des points rationnels d’une courbe E d´efinie sur Q est un

sous-groupe de E. Depuis l’antiquit´

e, la recherche des solutions enti`

eres ou rationnelles d’une

´

equation polynomiale est un probl`

eme fondamental en th´

eorie des nombres. L’´

etude des courbes

elliptiques sur Q va fournir aux math´ematiciens du d´ebut du 20

e

si`

ecle des outils pr´

ecieux

pour l’´

etude de ces ´

equations diophantiennes. Certainement le plus c´

el`

ebre de ces r´

esultats est

la preuve par A. Wiles du dernier th´

eor`

eme de Fermat qui dit que pour n > 2, l’´

equation

a

n

+ b

n

= c

n

n’a pas de solutions enti`

eres (non nulles). En fait, Wiles `

a r´

eussi `

a d´

emontrer la

non existence de courbes elliptiques tr`

es particuli`

eres, construites « sur mesure » par G. Frey `

a

partir des solutions hypoth´

etiques de l’´

equation a

n

+ b

n

= c

n

.

Les courbes elliptiques que nous avons trac´

ees jusqu’ici ´

etaient d´

efinies sur R. Les propri´et´es

de ces courbes, en particulier la structure de groupe commutatif est pr´

eserv´

ee quel que soit le

corps sur lequel est d´

efinie la courbe. Comme nous l’avons vu pour E(Q), nous pouvons d´efinir

des courbes elliptiques sur le corps des nombres complexes, sur un corps fini F

q

, sur des corps de

nombres, etc. L’´

etude des fonctions elliptiques (fonctions complexes doublement p´

eriodiques) et

des r´

eseaux euclidiens permet de montrer qu’une courbe elliptique d´

efinie sur C est ´equivalente

`

a un tore (voir par exemple [80, chapitre 9]).

Les courbes elliptiques d´

efinies sur un corps fini sont `

a l’origine des applications

cryptogra-phiques. La formule (3.1) d’addition/doublement s’applique de la mˆ

eme mani`

ere aux points `

a

coordonn´

ees dans F

q

, comme nous le montrons dans l’exemple 4 pour une courbe d´

efinie sur

F

37

. Sur la figure 3.5 on peut remarquer la sym´

etrie et le fait que la droite passant par P et Q

coupe la courbe en un unique troisi`

eme point (−R) dont le sym´

etrique est ´

egal `

a P + Q.

Exemple 4. Soit E : y

2

= x

3

− 5x + 8 la courbe d´

efinie sur le corps premier F

37

, et soient

P = (6, 3) et Q = (9, 10) deux points de E(F

37

). Le petit programme Magma [24] ci-dessous

permet de calculer facilement l’ensemble des points de E (cf. table 3.1).

fp_37 := FiniteField(37); E := EllipticCurve( [fp_37 | -5, 8] ); O := E ! 0; Pts := { E ! [x, Sqrt(P)] : x in fp_37 | IsSquare(P) where P is x^3 - 5*x + 8 }; Pts join:= { -P : P in Pts }; Pts join:= { O };

Les formules d’addition et de doublement vues plus haut, o`

u tous les calculs sont faits modulo

37, nous permettent de calculer 2P = (35, 11), 3P = (34, 25), 4P = (8, 6), P + Q = (11, 10),

3P + 4Q = (31, 28), etc.

Les math´

ematiciens de l’´

epoque se sont naturellement int´

eress´

es `

a compter le nombre de

points d’une courbe elliptique d´

efinie sur un corps fini. C’est Hasse qui en 1922 d´

emontra le

esultat suivant sur l’ordre du groupe des points d’une courbe elliptique sur un corps fini :

|#E(F

q

) − q − 1| ≤ 2

q.

(3.2)

Pour la courbe y

2

= x

3

− 5x + 8 sur F

37

de l’exemple pr´

ec´

edent, on v´

erifie facilement que

|#E(F

37

) − q − 1| = 7 ≤ 2

(21)

18

(10, 12)

(21, 32)

(9,10)

(11, 27)

(1, 35)

(22, 1)

(12, 14)

(33, 1)

(34, 25)

(19, 1)

(17, 10)

(6, 34)

(31, 9)

(21, 5)

(5, 21)

(34, 12)

(9, 27)

(11, 10)

(26, 8)

(22, 36)

(16, 19)

(17, 27)

(35, 26)

(16, 18)

(20, 8)

(5, 16)

(20, 29)

(1, 2)

(33, 36)

(30, 25)

(19, 36)

(28, 8)

(12, 23)

(28, 29)

(35, 11)

(6, 3)

(30, 12)

(10, 25)

(8, 31)

(36, 30)

(36, 7)

(31, 28)

(26, 29)

(8, 6)

O

Tab. 3.1 – L’ensemble des points de la courbe elliptique y

2

= x

3

− 5x + 8 d´

efinie sur F

37

.

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 P Q −R R

Figure

Tab. 2.2 – Quelques nombres de Mersenne premiers.
Tab. 2.3 – Les premiers recommand´ es par le groupe SECG pour les courbes elliptiques sur F p
Fig. 2.1 – D´ ecomposition du calcul de 65842 × 8816 mod 250043. Les parties encadr´ ees corres- corres-pondent ` a l’algorithme 4.
Fig. 3.4 – Interpr´ etation g´ eom´ etrique de la loi d’addition sur une courbe elliptique.
+7

Références

Documents relatifs

4.1 our goal was not to provide the best attack on 8-round DES, but to show that Algorithm-2 style attacks do gain from the use of multiple linear approximations, with a data

Legendre sequences (Polyphase Legendre sequences), L-sequences (PL-sequences) for short, and modified Jacobi sequences (modifies polyphase Jacobi sequences),

Rogaway, XOR MACs: New methods for message authentication using nite pseudorandom functions, Advances in Cryptology { CRYPTO '95, Lecture Notes in Computer Science, Vol.

Finally, our approach lets other requesters desiring to utilize brokers for crowdsourcing their tasks to discovery the best matching brokers and also pathways revealed by G P G

If a grammar has no ε-rules and no loops, we could still use our parsing scheme if we use one extra step: if a prediction stack has more symbols than the unmatched part of the

Some of this material is reflected in his books: Models of Spatial Processes – Approaches to the Study of Point, Line, and Area Patterns (with B. Boots, Cam- bridge University

Distribution of royalties. Our second generalization removes the assumption that there is only one owner of digital goods stored in the database. We consider the problem

While the AGM point counting method for even characteristic fields had outpaced comparable algorithms for curves over fields of other small characteristics, as well as the SEA for