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�
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
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
esi`
ecle `
a nos jours.
En aoˆ
ut 1900, lors du congr`
es international des math´
ematiciens, dans un amphith´
eˆ
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
esi`
ecle. L’hypoth`
ese de Riemann, qui
consti-tuaient le 8
eprobl`
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
esi`
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
r´
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
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.
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
d´
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
eavec 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
∗pdu 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
d´
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
r´
ecemment, commencent `
a s’affirmer comme une alternative s´
erieuse aux courbes elliptiques. Des
r´
esultats r´
ecents ont en effet montr´
e qu’elles peuvent s’av´
erer aussi, voire plus efficaces que leurs
´
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.)
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
esi`
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
pavec 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
s´
ecurit´
e
Z
n, n = pq
Z
∗pF
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).
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−16= 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−1et b
k+1se 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+1et 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−1n
−
x
b
2k+
1
b
k+1≤
x/b
k−1µ
b
k+1≤
(x/b
k−1)(b
2k/n)
b
k+1qui 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+1pour 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)
bavec n
k−16= 0
Sorties : 0 ≤ x mod n < n
1:
q
0= bx/b
k−1cµ,
q = bq
˜
0/b
k+1c
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+15:
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.
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
g´
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
−1mod 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
0peut ˆ
etre
Algorithme 2 R´
eduction modulaire de Montgomery (MR)
Entr´
ees : x < n
2Sorties : r = xm
−1mod n
1:q = xn
0mod 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
−1qui apparaˆıt `
a chaque r´
eduction. En fait, plutˆ
ot que de calculer x
emod n directement, on
commence par effectuer un changement de repr´
esentation x → ˜
x = xm mod n : en supposant
que m
0= m
2mod 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
2m
2m
−1mod n ≡ x
2m 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
emod 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−1x < 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
12
n+ x
0avec x
0, x
1< 2
net 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
1est 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
8
M
23
M
37
M
531
M
7127
M
138191
M
17131071
M
19524287
M
312147483647
M
612305843009213693951
M
89618970019642690137449562111
M
107162259276829213363391578010288127
M
127170141183460469231731687303715884105727
M
52168647976601306097149...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
1c + 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
d´
efini par le polynˆ
ome f (t) = t
3− t − 1 ´
evalu´
e en t = 2
64. Ainsi, tout entier x < p
2peut s’´
ecrire
comme un polynˆ
ome de degr´
e ≤ 5, sous la forme x =
P
5i=0
x
it
i. Pour calculer r = x mod p, il
2http://www.mersenne.org/prime.htm
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
2t
2+ r
1t + r
0pour 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
521est un nombre
de Mersenne.
Valeur
polynˆ
ome
t
p
192= 2
192− 2
64− 1
t
3− t − 1
2
64p
224= 2
224− 2
96+ 1
t
7− t
3+ 1
2
32p
256= 2
256− 2
224+ 2
192+ 2
96− 1
t
8− t
7+ t
6+ t
3− 1
2
32p
384= 2
384− 2
128− 2
96+ 2
32− 1
t
12− t
4− t
3+ t − 1
2
32p
521= 2
521− 1
t − 1
2
521Tab. 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
mˆ
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
10
d´
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−16= 0, on dit que l’entier x s’´
ecrit sur k chiffres en base β.
D´
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γ
imod p,
(2.4)
avec 1 < γ < p et x
i∈ {0, . . . , ρ − 1}. Le vecteur (x
0, x
1, . . . , x
n−1)
Bcorrespond `
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
isoient 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
17comme 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γ
21 + γ + 2γ
2γ + γ
26
7
8
9
10
11
1 + γ + γ
2γ
1 + γ
2 + γ
2γ + 2γ
21 + 2γ + 2γ
212
13
14
15
16
2γ + γ
21 + 2γ + γ
22γ
1 + 2γ
2 + 2γ
Tab. 2.5 – Les ´
el´
ements de Z
17dans 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.
D´
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 γ
nmod 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 ;
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)
Bdans B
Sorties : Le polynˆ
ome S = (s
0, ..., s
n−1)
Btel que S(γ) = A(γ)B(γ) mod p
1:Multiplication polynomiale (dans Z[X]) : U (X) = A(X)B(X)
2:
R´
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
d´
etails). Pour l’´
etape 1, la multiplication de deux polynˆ
omes de degr´
e < n dont les coefficients
sont inf´
erieurs `
a ρ demande n
2produits entre op´
erandes de tailles log
2(ρ) bits, et (n − 1)
2additions 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.
Mˆ
eme si ces niveaux sont moins visibles, l’arithm´
etique multipr´
ecision, o`
u les entiers de Z
psont
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
1x + · · · + v
n−1x
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
ide V peut s’´
ecrire sous la forme v
i= v
i+ v
i2
k, avec v
i< 2
k. De mˆ
eme,
V = V + V · 2
kI,
(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
kI 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
kI · (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
kI dans
notre AMNS.
Si 2
k= (z
0, . . . , z
n−1)
Best une repr´
esentation de 2
kdans notre AMNS, la d´
efinition 1 nous
dit que 2
k≡ z
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
0z
1· · ·
z
n−1cz
n−1z
0· · ·
z
n−2..
.
cz
1cz
2· · · cz
n−1z
0
(2.7)
Cette matrice v´
erifie (2.6), et donc V · 2
kI ≡ 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−1i=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)
Bavec c
P
n−1i=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/2epour i = 0 . . . n − 1.
Sorties : Un vecteur S = (s
0, ..., s
n−1) tel que s
i< ρ pour i = 0 . . . n − 1.
1:D´
ecomposer V en V = V + V · 2
kI
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
d´
efinit B = AM N S(127006, 128, 3, 250043, 2). Il est facile de v´
erifier que 1 + γ
2mod p = 2
6; on
a donc 2
k= (1, 0, 1)
Bet 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
2et 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)
B13
v0 s0 v0 s0 v0 s0 v1 s1 v1 s1 v1 s1 v2 s2 v2 s2 v2 s25373
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.
14
On termine la premi`
ere ´
etape de r´
eduction en « recollant » les coefficients de S
0aux bits de V
de poids < 2
6que 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)
Bcorrespond 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+1en 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
iX
i) mod p. Nous
donnons un exemple de recherche d’AMNS pour la cryptographie des courbes elliptiques.
Exemple 3. Nous cherchons un corps F
pde taille au moins ´
egale `
a 2
160. Pour ce faire, nous
fixons ρ = 2
16et n = 11. Nous choisissons par exemple c = 3 et supposons que 2
ks’´
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.
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 −as
a
2− (1 − b
2/a
2)x
2a
2− x
2dx.
En posant k
2= 1 − b
2/a
2et 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
2x
2)
p(1 − x
2)(1 − k
2x
2)
dx.
La fonction apparaissant au d´
enominateur d´
efinie par y
2= (1 − x
2)(1 − k
2x
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
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
eet 19
esi`
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
2est 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 2RFig. 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,
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
1si 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
esi`
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
esi`
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
nn’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
r´
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
37de l’exemple pr´
ec´
edent, on v´
erifie facilement que
|#E(F
37) − q − 1| = 7 ≤ 2
√
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