Sie sind auf Seite 1von 71

Courbes elliptiques et

cryptographie

Mmoire de master

Dodovrosky Medrano

Tuteur : M. Anders
Karlsson

Dcembre 2014

Table des matires


1 Introduction
2 Les
2.1
2.2
2.3

courbes elliptiques
4
Loi de groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Les formules daddition . . . . . . . . . . . . . . . . . . . . . . 10
Endomorphismes . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Points de Torsion
19
3.1 Polynmes de division . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Le couplage de Weil . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Courbes elliptiques sur des corps finis
4.1 Le thorme de Hasse . . . . . . . . . . . . .
4.2 Dterminant lordre du groupe . . . . . . . .
4.2.1 Ordre dun point . . . . . . . . . . .
4.2.2 Baby Step, Giant Step . . . . . . . .
4.2.3 Lalgorithme de Schoof . . . . . . . .
4.2.4 Types spciales de courbes elliptiques

.
.
.
.
.
.

.
.
.
.
.
.

5 Le problme du logarithme discret (DLP)


5.1 Le Index Calculus . . . . . . . . . . . . . . . . .
5.2 Attaques sur le problme du logarithme discret
5.2.1 Baby Step, Giant Step . . . . . . . . . .
5.2.2 La mthode de Pollard . . . . . . . . .
5.2.3 La mthode de Pohlig-Hellman . . . . .
5.3 Lalgorithme MOV . . . . . . . . . . . . . . . .
5.3.1 Lattaque de Frey-Rck . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

6 Cryptosystmes bass sur les courbes elliptiques


6.1 change de cls Diffie-Hellman . . . . . . . . . . . . . . . .
6.2 Chiffrement dElGamal . . . . . . . . . . . . . . . . . . . .
6.3 Signature digitale . . . . . . . . . . . . . . . . . . . . . . .
6.4 Signature dElGamal . . . . . . . . . . . . . . . . . . . . .
6.5 Le protocole de signature ECDSA . . . . . . . . . . . . . .
6.6 Cryptographie base sur les couplages . . . . . . . . . . . .
6.6.1 Le triple change de Diffie-Hellman . . . . . . . . .
6.6.2 Un algorithme de signature digital avec un couplage
7 Conclusions
Table de matires

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.

27
28
31
32
35
37
41

.
.
.
.
.
.
.

43
43
45
45
46
49
53
55

.
.
.
.
.
.
.
.

56
57
58
59
60
62
63
64
65
67

Introduction

Les courbes elliptiques ont jou un rle important pour le dveloppement


de la thorie de nombres, notamment par leur connexion avec les solutions
rationnelles des quations diophantiennes et la preuve du dernier thorme
de Fermat. Il sagit donc dun sujet classique des mathmatiques et il y a
une trentaine dannes les chercheurs ont compris quelles pouvaient avoir
des applications intressantes en cryptographie.
Dans ce mmoire nous allons tudier les aspects gnraux des courbes elliptiques, notamment sur les corps finis et vers la fin nous regarderons quelques
protocoles cryptographiques dans lesquels elles peuvent tre utilises ainsi
que les attaques possibles leur scurit.
Le chapitre 2 correspond essentiellement un survol sur les aspects gnraux
des courbes elliptiques, lesquelles sont des objets spciaux dans la famille
des courbes algbriques. Les notions de discriminant , j-invariant y sont
dfinies avec leur rapport correspondant. Nous ne nous attardons pas dans
tous les dtails techniques et pour cela nous renvoyant vers [8]. Ensuite nous
discutons de la loi de groupe dont peut tre muni une courbe elliptique, ce
que lui donne une caractristique additionnelle qui motive son tude. Ensuite nous dfinissons la notion dendomorphisme dune courbe elliptique, la
notion de degr et aussi celle dendomorphisme sparable. Nous finissons ce
chapitre par quelques rsultats fondamentaux, en particulier la relation qui
existe entre le noyau dun endomorphisme et son degr. Nous suivons principalement [4] et [9].
Dans le chapitre 3 nous tudions les points de n-torsion E[n] du groupe
ablien dune courbe elliptique E dfinie sur un corps K. Loutil principal
pour caractriser ce sous-groupe sont les polynmes de division, et pour cela
nous avons choisi lapproche de [1] dans le cas dun corps fini. Puis, nous montrons le thorme qui donne la structure de E[n] dans le cas gnral grce aux
rsultats sur le degr et la sparabilit des endomorphisme vus au chapitre 2,
ce qui ensuite nous permettra de dfinir le couplage de Weil sur E[n] E[n]
et dnoncer ses principales proprits. La plupart de ce chapitre suit aussi [9].
Dans le chapitre 4 nous nous focalisons sur les courbes elliptiques E dfinies sur un corps fini Fq . Le but est de montrer le thorme de Hasse. Ce
thorme nous permet destimer lordre du groupe E(Fq ) que lon associe au
points de E avec coordonnes dans Fq . Les ingrdients principaux pour le
prouver sont le couplage de Weil et lendomorphisme de Frobenius que nous
2

avons tudis aux chapitres 3 et 2 respectivement. Avec cette estimation de


#E(Fq ) nous pouvons ensuite tudier dautres questions sur ce groupe telles
que lordre dun lment, le calcul de lordre de E(Fqn ) et nous verrons que
cette information suffit dans certains cas pour dterminer la structure du
groupe ablien #E(Fq ). La rfrence principale pour ce chapitre reste [9].
Dans le chapitre 5 nous tudions le problme du logarithme discret sur les
courbes elliptiques, cest--dire, tant donn P, Q E(Fq ) dterminer lentier
k (en supposant quil existe) tel que kP = Q. Nous examinons notamment les
algorithmes les plus connus pour rsoudre ce problme : Baby Step, Giant
Step ; la mthode de Pohlig Hellman ; la mthode de Pollard. Nous allons voir quil y a un lien troit entre ce problme et son quivalent dans
le groupe multiplicatif F
q , groupe dans lequel ce problme est bien connu
et sa difficult est la base de la scurit du protocole cryptographique de
Diffie-Hellman. Nous allons voir aussi que pour certaines courbes elliptiques
appeles courbes super-singulires le problme du logarithme discret sur les
courbes elliptiques peut se rduire son quivalent dans la partie multiplicative dune certaine extension Fqd de Fq . La conclusion sera que, mise part ce
cas et dautres attaques particulires, le logarithme discret est plus difficile
rsoudre sur une courbe elliptique que sur la partie multiplicative dun corps
fini. Ce sera la base principale de la scurit des protocoles cryptographiques
que nous exposerons au chapitre suivant. Pour cette partie et le chapitre 6
nous suivons lapproche de [3], [8] et [5].
Une fois le problme du logarithme discret tudi, nous faisons un survol
sur quelques cryptosystmes bass sur les courbes elliptiques. Nous tudions
en particulier le chiffrement dElGamal, le protocole dchange de DiffieHellman, les algorithmes de signature digital ECDSA entre autres. Nous
terminons le chapitre 6 par quelques notions de ECC (Elliptic Curve Cryptography) bases sur les couplages.
Ce mmoire est agrmente par des exemples pris principalement des exercices proposs dans [9]. Les exemples numriques et calculs ont tous t
crs et faits partir du logiciel Sage que lon peut trouver gratuitement sur
www.sagemath.org.

Les courbes elliptiques

Soit K un corps. Rappelons que le n-espace projective Pn (K) est lensemble de (n + 1)uples suivants :
Pn (K) = {(a0 , ..., an ) K n+1 | a0 , ..., an no tous nuls}/
o (a0 , ..., an ) (a00 , ..., a0n ) sil existe t K tel que
(a0 , ..., an ) = t(a00 , ..., a0n ).
Un polynme p K[X1 , ..., Xn ] est un polynme homogne de degr d si
chacun de ses termes est de degr d. De plus on dit que p est irrductible sil
ne peut pas scrire comme le produit trivial de deux polynmes
Dfinition 1. Soit un corps K. Une courbe C de P2 (K) est lensemble de
points qui satisfait
p(X, Y, Z) = 0
o p K[X, Y, Z] est un polynme homogne de degr d 1. Si d = 1, alors
cest une droite ; si d = 2, une conique ; si d = 3, une cubique.
Dfinition 2. Un point P dune cubique C : F (X, Y, Z) = 0 est un point
singulier si



F
F
F
=
=
=0
X P
Y P
Z P
Une cubique dont tous les point sont non singuliers est une courbe non singulire.
Dans un cadre plus gnral on dfinit une courbe elliptique comme la
paire (E, O), o E est une cubique irrductible non singulire et O E. La
courbe elliptique E est dfinie sur un corps K si E est une courbe sur K et
si O E(K).
Cependant nous travaillerons plutt avec un type spciale dquation, appele lquation de Weierstrass qui dans P2 (K) est de la forme
C : F (X, Y, Z) = Y 2 Z + a1 XY Z + a3 Y Z 2 X 3 a2 X 2 Z a4 XZ 2 a6 Z 3 = 0
o a1 , ..., a6 K et O = (0, 1, 0)
La transformation x = X/Z, y = Y /Z permet dcrire lquation de Weierstrass comme suit
E : y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
4

(1)

plus le point linfini O = (0, 1, 0) qui nest pas singulier car (F/Z)(0, 1, 0) 6=
0.
x et y sont appels coordonnes non homognes. En fait on peut montrer
que toute courbe elliptique peut tre ramene lquation de Weierstrass via
une application qui fournit un isomorphisme de E(K) sur une courbe C(K)
donne par lquation de Weierstrass tel que O est envoy vers (0, 1, 0) (voir
[4], pages 32-35). Ce contexte ne nous sera pas utile ici, on travaillera plutt
avec lquation (1), voire mme avec lquation
E 0 : y 2 = x3 + ax + b

(2)

Ceci nest pas une restriction car si la caractristique de K nest pas 2 ou 3,


lquation (1) prend la forme (2).
Dfinissons les quantits suivantes :
b2 = a21 + 4a2 , b4 = 2a4 + a1 a3 , b6 = a33 + 4a6
b8 = a21 a6 + 4a2 a6 a1 a3 a4 + a2 a23 a24
c4 = b22 24b4 , c6 = b32 + 36b2 b4 216b6
Dfinition 3. Le discriminant de lquation de Weierstrass est la quantit
= b22 b8 8b34 27b26 + 9b 2b4 b6
et le j-invariant de la courbe elliptique E est la quantit
c34
j(E) = .

Les courbes avec discriminant non nul ont une tangente bien dfinie en
chaque point, cest--dire nont ni point double, ni point de rebroussement.
Ce sera trs important pour pouvoir definir une loi de groupe sur leurs points.
Le thorme 1 nous permettra dinterprter le j-invariant comme une bijection entre les lments de K et les classes de K-isomorphismes des courbes
elliptiques dfinies sur K.
Proposition 1. Soit K un corps de caractristique p. Une courbe elliptique
E dfinie sur K donne par une quation de Weierstrass prends alors une
forme simplifie,

1. si p 6= 2 et p 6= 3,
y 2 = x3 + a4 x + a6 , = 16(4a34 + 27a26 ),
j(E) = 1728

4a34
;
4a34 + 27a26

2. si p = 2 et j(E) = 0,
y 2 + xy = x3 + a2 x2 + a6 , = a6 , j(E) = 1/a6 ;
si p = 2 et si j(E) = 0,
y 2 + a3 y = x3 + a4 x + a6 , = a43 , j(E) = 0;
3. si p = 3 et j(E) 6= 0,
y 2 = x3 + a4 x2 + a6 , = a32 a6 , j(E) = a32 /a6 ;
si p = 3 et j(E) = 0,
y 2 = x3 + a4 x + a6 , = a34 , j(E) = 0.
Dmonstration. 1. si p 6= 2 on peut liminer le terme en xy en remplaant y
par y 21 (a1 x + a3 ). On obtient alors y 2 = x3 + b42 x2 + b24 x + b46 . En plus, si
b2
p 6= 3 on peut liminer le terme en x2 en remplaant x par x 12
.
2. Si la caractristique de K est 2, alors le j-invariant vaut j(E) = a12
1 /.
2
Si j(E) = 0 on a a1 = 0 et la substitution x par (x + a2 ) donne y + a3 y =
3
2
3
x
 + (a2 + a4 )x + 2(a2 +2 a2 a4 + a6 ) ; autrement la substitution de (x, y) par
a a +a
a21 x + aa13 , a31 y + 1 a43 3 donne
1

y 2 + xy = x3 +

a1 a2 + a3 2 a41 a24 + a43 + a51 a3 a4 + a31 a33 + a41 a2 a23 + a61 a6


x +
a31
a12
1

3. On sait par (1) que si p 6= 2, alors y 2 = x3 + a2 x2 + a4 x + a6 . Puisquon


est en caractristique 3, le j-invariant de cette courbe vaut j(E) = a22 /. Si
j(E) = 0, alors a2 = 0 et on a lexpression demande ; autrement on remplace
2a2 a2 +a3 a +a3
x par (x + a4 /a2 ) pour avoir y 2 = x3 + a2 x2 + 2 4 a32 6 4 .
2

Le j-invariant joue un rle important dans ltude des courbes elliptiques


et il nous permet de dire quand est-ce que deux courbes sont les mmes.
6

Thorme 1. Soit K un corps de caractristique p, deux courbes donnes par


leur quation de Weierstrass dont le discriminant est non nul sont isomorphes
si est seulement si elles ont le mme j-invariant.
Dmonstration. Soient les courbes
E : f (x, y) = y 2 a1 xy a3 y x3 a2 x2 a4 x a6
E 0 : f 0 (x, y) = y 2 a01 xy a03 y x3 a02 x2 a04 x a06
Le changement de variables (x, y) par (u2 x + r, u3 y + u2 sx + t) avec r, s, t, u(6=
0) K transforme la courbe E en E 0 . De plus, les coefficients sont donns
par
ua01 = a1 + 2s,
u2 a02 = a2 sa1 + 3r s2 ,
u3 a03 = a3 + ra1 + 2t,
u4 a04 = a4 sa3 + 2ra2 (t + rs)a1 + 3r2 2st,
et u12 0 = , j(E 0 ) = j(E).
Rciproquement (pour simplifier les calculs, nous allons supposer que p 6=
2, 3) soient deux courbes E 0 et E avec le mme j-invariant. Puisque p 6= 2, 3,
la proposition (1) nous dit que les equations de Weierstrass sont donnes par
E : y 2 = x 3 + a4 x + a6
E 0 : y 2 = x3 + a04 x + a06
4a3

4a03

0
2 03
3 02
4
4
j(E) = 1728 4a3 +27a
3 = 1728 4a03 +27a03 = j(E ) implique a6 a4 = a4 a6 . On
4
6
4
6
cherchera un isomorphisme de la forme (x, y) 7 (u2 x, u3 y).
1. Si a4 = 0, alors a6 = 0 puisque 6= 0 et donc a04 = 0. On obtient un
isomorphisme si on prend u = (a6 /a06 )1/6 .
2. De mme, si a6 = 0 on a que a4 6= 10 et a06 = 0. On obtient un
isomorphisme si on prend u = (a4 /a04 )1/4 .
3. Si a4 , a6 6= 0, il en est de mme pour a04 et a06 et lon obtient un
isomorphisme comme avant en prenant u = (a6 /a06 )1/6 = (a4 /a04 )1/4 .
Si la caractristique p est 2 ou 3, les calculs seront similaires en prenant les
equations de Weierstrass correspondantes.

Le calcul du discriminant dune courbe elliptique nous donne un critre


pour dterminer si elle est singulire ou non, cest lnonc du thorme
suivant :
7

Thorme 2. Soit E une courbe donne par une quation de Weierstrass.


Alors E est singulier si et seulement si = 0.
Dmonstration. Supposons que 6= 0. Soit lquation gnrale de Weierstrass :
E : f (x, y) = y 2 + a1 xy + a3 y x3 a2 x2 a4 x a6
Si on regarde f comme une courbe F dans P2 (K) on sait dj que le point
linfini O = (0, 1, 0) nest jamais singulier car F
(0, 1, 0) = 1 6= 0. Nous
Z
allons voir que tous les autres point sont aussi non singuliers. Supposons par
labsurde quil existe un point (x0 , y0 ) sur E singulier. Le changement de
variables (x, y) par (x x0 , y y0 ) nous donne une nouvelle courbe E 0 dfinie
par une fonction f 0 et (x0 , y0 ) est envoy sur (0, 0). De plus, nous avons par
calcul direct 0 = 6= 0 (ou bien on peut se servir du calcul fait pour la
premier partie du thorme (1) pour lequel on a u = 1). Comme (0, 0) E 0 ,
0
(0, 0) = 0 et
on peut dterminer facilement a06 = f 0 (0, 0) = 0, a04 = f
x
f 0
0
0
a3 = y (0, 0) = 0. La courbe E est donc
E 0 : f 0 (x, y) = y 2 + a1 xy x3 a2 x2
Mais le discriminant 0 de cette courbe E 0 est nul, ce qui contredit lhypothse.
Rciproquement et pour simplifier les calculs, nous allons supposer que la
caractristique de K nest pas 2 ni 3. Alors lquation de E est de la forme
E : f (x, y) = y 2 x3 a4 x a6
Si la courbe est singulier en (x0 , y0 ), on a f
(x0 , y0 ) = 2y0 = f
(x0 , y0 ) =
y
x
a4
2
2
3x0 + a4 = 0 et donc y0 = 0, x0 = 3 . Comme (x0 , y0 ) E, alors 0 = y02 =
9a2

x30 + a4 x0 + a6 = 32 a4 x0 + a6 ce qui donne x20 = 4a62 = a34 . Par la propositions


4
(1) on sait que = 16(4a34 + 27a26 ) = 0. Si la caractristique de K est 2
ou 3 on fait des calculs similaires en prenant les quations de Weierstrass
correspondantes.
Observons que 4a34 + 27a26 est le discriminant de lquation x3 + a4 x + a6 =
0. Par le thorme prcdent, une courbe donne par lquation (1) est singulier si et seulement si les racines de lquation x3 + a4 x + a6 = 0 sont toutes
distinctes.
Dans la figure 1, la courbe E1 est singulire tandis que E2 ne lest pas.

Figure 1 Une courbe singulire et une autre non singulire

2.1

Loi de groupe

La irrductibilit et la non singularit dune cubique C nous garantissent


que si une droite L a deux points dintersection (compts avec leur multiplicit) avec C, alors C a trois points dintersection (compts avec leur
multiplicit) avec la droite L (voir [4], pag 35). On peut donc dfinir une loi
de groupe sur une courbe elliptique E comme suit :

Figure 2 Loi de groupe sur une courbe elliptique


Soient A et B deux points sur E et soit d la droite passant par A et B.
Cette droite doit couper la courbe E en un troisime point que nous noterons
9

A B, alors lopration
A + B = O (A B)
dfinit une structure de groupe commutative ayant O comme lment neutre.
Tous les axiomes de groupe, sauf lassociativit, se vrifient facilement partir de la dfinition. Il existe plusieurs dmonstrations de lassociativit dans
la littrature, par exemple si E est dfinie sur C on peut trouver une jolie
preuve dans [6, chapter 14]. Pour une preuve plus gnrale voir [4]. Dans
la section 2.2 nous obtiendrons des formules explicites en coordonnes pour
cette opration, et par calcul direct avec ces formules-l, il sera aussi possible
de dmontrer lassociativit, mais on ne la fera pas ici.

Figure 3 Preuve graphique de lassociativit

2.2

Les formules daddition

Nous allons dcrire explicitement les formules pour laddition de deux


points P1 = (x1 , y1 ), P2 = (x2 , y2 ) sur une courbe elliptique E donne par
lquation y 2 = x3 + ax + b. On considre la droite d passant par P1 et P2 ,
elle intersecte E en P30 . Alors, P3 = P1 + P2 est la rflexion de P30 par rapport
laxe horizontal.
10

Supposons dabord que P1 6= P2 et quaucun de ces deux points est O, alors


la droite d a pour quation
y = m(x x1 ) + y1
y2 y1
.
x2 x1
Il peut arriver que x1 = x2 , cest dire que d est vertical, dans ce cas
P1 + P2 = O parce que la droite qui passe par P1 et P2 et verticale, elle
intersecte donc E en O et la rflexion de O par rapport laxe horizontal
donne le mme point O. Sinon, on cherche lintersection de d avec E en
remplaant y dans lquation de E
avec m =

(m(x x1 ) + y1 )2 = x3 + ax + b
On peut retrouver la x-coordonne x3 de P30 en rsolvant cette equation de
troisime degr. Cependant, on peut utiliser linformation quon connait dj.
Puisque P1 et P2 sont tous les deux dans d et E, alors x1 et x2 sont aussi
deux racines de cette quation, et la somme de ces trois racines est loppos
du coefficient de x2 dans x3 + ax + b (m(x x1 ) + y1 )2 = 0, donc
x1 + x2 + x3 = (m2 ) x3 = m2 x1 x2
et comme y = m(x x1 ) + y1 , il ny a plus qu remplacer x par x3 et reflter
y par rapport laxe horizontal pour obtenir
P3 = (m2 x1 x2 , m(x1 x3 ) y1 )

(3)

Supposons maintenant que P1 = P2 = (x1 , y1 ). Lorsque deux point sur une


courbe sont trs proches, la droite qui passe par eux sapproche dune droite
tangente, donc si les deux point concident la droite d est une droite tangente
E. La drivation implicite nous permet de trouver la pente m de d
dy
3x21 + a
dy
2
= 3x + a m =
=
2y =
dx
dx
2y1
Si y1 = 0 la droite d est verticale et P1 + P2 = O comme avant (notons que
3x21 +a 6= 0, sinon a = 3x21 et b = x31 ax1 = 2x31 , donc = 4a3 +27b2 = 0
ce qui nest pas possible). Alors, si y1 6= 0, lquation de d est
y = m(x x1 ) + y1
qui nous conduit lquation
0 = x3 (m(x x1 ) + y1 )2 + ax + b
11

Cette fois, on connait seulement une racine, savoir x1 , mais sa multiplicit


est deux puisque d est tangente E en P1 , donc la mme procdure quavant
nous donne la formule
2P1 = (x3 , y3 ) = (m2 2x1 , m(x1 x3 ) y1 )

(4)

Finalement, si par exemple P1 = O alors la droite passant par P2 et O est


verticale et intersecte E en P20 qui est la rflexion de P2 par rapport laxe
horizontal. La rflexion de P20 par rapport laxe horizontal nous ramne de
nouveau P2 , donc P2 + O = P2 pour tout point P2 E. On tend ces
formules pour inclure O + O = O.
Remarque 1. Lorsquon travaille avec lquation simplifie y 2 = x3 + ax + b,
cause de la symtrie on a que si P = (x, y), alors P = (x, y). Cependant,
pour lquation gnralise de Weierstrass ce nest plus les cas. Si P = (x, y)
est dans la courbe dcrite par lquation (1), alors P = (x, a1 x a3 y).
En effet, on doit rsoudre une quation en y dont connat dj une racine et
en suite utiliser le fait que la somme de ces deux racines vaut (a1 x + a3 ).
Les formules (3) et (4) sont valables sur des corps K dont la caractristique nest pas 2. Le mme type de calculs permet de retrouver les formules
lorsque char K=2.

2.3

Endomorphismes

une clture algbrique de


Soit E une courbe elliptique sur K, et soit K
K fix.
Dfinition 4. Un endomorphisme de E est un homomorphisme des groupes
E(K)
pour lequel il existe des fonctions rationnelles R1 (x, y),
: E(K)
telles que
R2 (x, y) avec coefficients dans K
(x, y) = (R1 (x, y), R2 (x, y))

pour tout (x, y) E(K).


Nous allons discuter plus tard ce qui se passe lorsque nest pas dfinie en un point. Puisque est un homomorphisme, on a que (O) = O et

nous dirons que est non trivial sil existe (x, y) E(K)
tel que (x, y) 6= O.
Pour simplicit, on va assumer que notre courbe elliptique est donne par

12

une quation de Weierstrass simplifie y 2 = x3 + Ax + B. Une fonction rationnelle R(x, y) peut tre crite sous la forme
R(x, y) =

p1 (x) + p2 (x)y
p3 (x) + p4 (x)y

lorsquon remplace y 2 par x2 + Ax + B autant de fois que ncessaire. Plus


encore, on peut rationaliser le dnominateur en multipliant numrateur et
dnominateur par p3 (x) p4 (x)y et puis on remplace nouveau y 2 par un
polynme en x. On a donc
R(x, y) =

q1 (x) + q2 (x)y
q3 (x)

(5)

Soit un endomorphisme donn par


(x, y) = (R1 (x, y), R2 (x, y)),
Puisque est un homomorphisme,
(x, y) = ((x, y)) = (x, y).
ce qui signifie que R1 (x, y) = R1 (x, y) et R2 (x, y) = R2 (x, y). Donc si
R1 est de la forme (5), on a q2 (x) = 0 ; et si R2 est de la forme (5), on a
q1 (x) = 0. Nous pouvons alors assumer que
(x, y) = (r1 (x), r2 (x)y)
avec r1 et r2 des fonctions rationnelles en x.
On peut maintenant discuter ce qui se passe lorsquune des fonctions rationnelles nest pas dfinie en un point. On crit
r1 (x) = p(x)/q(x)
avec p et q des polynmes sans facteur commun. Si q(x) = 0 pour un point
(x, y), on dfinit (x, y) = O.
Nous crivons r2 (x) = s(x)/t(x) avec s et t sans racines en commun. Le
fait que (x, y) et (x, y) soient dans la courbe E : y 2 = x3 + Ax + B donne
u(x)
(x3 + Ax + B)s(x)2
=
2
t(x)
q(x)3
13

avec u(x) = p(x)3 + Ap(x)q(x)2 + Bq(x)3 . Si x0 tait une racine commune


entre u et q on aurait p(x0 ) = 0, ce qui contredit le fait que p et q nont pas
de facteur commun. Donc u et q nont pas de racine commune.
Si t(x1 ) = 0 pour un (x1 , y1 ) E, alors q(x1 ) = 0 ; en effet s et t nont pas
de racines en commun et x3 + Ax + B na pas de racines multiples alors que
t(x)2 a toutes ses racines multiples, il faut donc que q(x1 ) = 0.
En rsum, si q(x) 6= 0, alors (x, y) est dfinie.
Dfinition 5. On appelle le degr de la quantit
deg() = max{deg p(x), deg q(x)}
si est non trivial. Lorsque = 0, on pose deg = 0.
Dfinition 6. On dit quun endomorphisme 6= 0 est sparable si la drive
r10 (x) nest pas identiquement nulle. Cela est quivalent dire quau moins
un des p0 (x) et q 0 (x) nest pas identiquement nul.
Exemple 1.
Soit E : y 2 = x3 + Ax + B une courbe elliptique sur K un corps de
caractristique diffrente de 2 et soit (P ) = 2P . Alors ainsi dfinie est un
homomorphisme et
(x, y) = (R1 (x, y), R2 (x, y))
 2 
 2 2 
 2 2
3x +A
3x +A
2x, R2 (x, y) =
3x 3x2y+A
y. On
o R1 (x, y) =
2y
2y
trouve ces expressions grce la formule (4).
Comme est donne par des fonctions rationnelles, cest bien un endomorphisme. De plus, le fait que y 2 = x3 + Ax + B nous donne
r1 (x) =

x4 2Ax2 8Bx + A2
.
4(x3 + Ax + B)

On peut montrer que le numrateur et dnominateur de r1 (x) nont pas


de racine commune, donc deg = 4. De plus, est sparable car q 0 (x) =
4(3x2 + A) 6= 0, et cela mme en caractristique 3 (sinon A = 0 et x3 + B
aurait des racines multiples car sa drive est nulle, contrairement lhypothse sur E).
Nous allons voir plus tard quen caractristique p, la application (Q) = pQ
est de degr p2 et elle nest pas sparable. En particulier, en caractristique
2 lapplication P 7 2P nest pas sparable.
14

Exemple 2.
Supposons que E est dfinie sur un corps fini Fq . Lapplication de Frobenius donne par
q (x, y) = (xq , y q )
est un endomorphisme de E de degr q non sparable.
En effet, q : E(Fq ) E(Fq ) est bien dfinie (dans Fq nous avons aq = a)
en plus elle est donne par des polynmes et a fortiori par des fonctions
rationnelles. Reste voir si q est un homomorphisme de groupes. Soient
(x1 , y1 ), (x2 , y2 ) E(Fq ) avec x1 6= x2 . Leur somme (x3 , y3 ) est donne par
x3 = m2 x1 x2 , y3 = m(x1 x3 ) y1
avec m = (y2 y1 )/(x2 x1 ).
Par simplicit on travaille avec lquation simplifi de Weierstrass, les calculs avec lquation gnralise sont essentiellement les mmes. On prend la
q-ime puissance de tout, et on obtient
xq3 = m02 xq1 xq2 , y3q = m0 (xq1 xq3 ) y1q
avec m0 = (y2q y1q )/(xq2 xq1 ).
On a donc bien q (x3 , y3 ) = q (x1 , y1 ) + q (x2 , y2 ).
Les autres cas (lorsque x1 = x2 ou lun des points est O) se vrifient de
la mme manire. Donc q est bien un endomorphisme.
Finalement, comme r1 (x) = xq alors r10 (x) = qxq1 = 0, donc nest pas
sparable et son degr est clairement q.
Lendomorphisme de Frobenius et les propositions 2 et 3 nous seront dune
grande utilit pour dmontrer le thorme de Hasse sur la borne de lordre
du groupe E(Fq ).
Proposition 2. Soit 6= 0 un endomorphisme sparable sur un courbe elliptique E. Alors
deg = #Kern().
Si 6= 0 nest pas sparable, alors
deg > #Kern().
15

Dmonstration. Voir [9], pages 53-54.


Proposition 3. Soit E une courbe elliptique sur un corps K. Soit 6= 0 un
endomorphisme de E. Alors, : E(K) E(K) est surjective.
Dmonstration. Voir [9], page 55.
Les endomorphismes de multiplication par un entier et de Frobenius seront ceux que nous utiliserons le plus souvent. Il sera trs utile davoir un
critre de sparabilit.
Lemme 1. Soit E la courbe elliptique y 2 = x3 + Ax + B. Fixons un point
(u, v) E et crivons
(x, y) + (u, v) = (f (x, y), g(x, y)),
o f et g sont des fonctions rationnelles en x, y (les coefficients dpendent
de (u, v)). Alors
d
f (x, y)
1
dx
= .
g(x, y)
y
Dmonstration. Cest un calcul direct.
Lemme 2. Soient 1 , 2 et 3 des endomorphismes non triviaux sur une
courbe elliptique E avec 1 + 2 = 3 et soient
j (x, y) = (Rj (x), ySj (x)).
pour j = 1, 2, 3. Supposons quil existe des constantes c1 , c2 telles que
R0 1 (x)
R0 (x)
= c 1 , 2
= c 2 .
S1 (x)
S2 (x)
Alors

R0 3 (x)
= c 1 + c 2 .
S3 (x)

Dmonstration. Soient (x1 , y1 ) = 1 (x, y) et (x2 , y2 ) = 2 (x, y). Posons


(x3 , y3 ) = (x1 , y1 ) + (x2 , y2 ). Par le lemme 1, avec (u, v) = (x2 , y2 ), (x1 , y1 ) on
obtient respectivement
x3 x3 dy1
y3 x3 x3 dy2
y3
+
= ,
+
=
x1 y1 dx1
y1 x2 y2 dx2
y2
Par hypothse
dxj
yj
= c j
dx
y
16

pour j = 1, 2. La rgle de la drive en chane donne


dx3
x3 dx1 x3 dy1 dx1 x3 dx2 x3 dy2 dx2
=
+
+
+
dx
x1 dx
y1 dx1 dx
x2 dx
y2 dx2 dx
=

y3 y1
y3 y2
y3
c 1 +
c2 = (c1 + c2 )
y1 y
y2 y
y

do le rsultat.
Proposition 4. Soit E une courbe elliptique dfinie sur un corps K, et soit
n Z \ {0}. Supposons que la multiplication par n sur E est donne par
n(x, y) = (Rn (x), ySn (x))
pour tout (x, y) E(K), o Rn et Sn sont des fonctions rationnelles. Alors
Rn0 (x)
=n
Sn (x)
Par consquent, la multiplication par n est sparable si et seulement si n nest
pas un multiple de la caractristique p du corps K.
Dmonstration. Puisque Rn = Rn et Sn = Sn (cest le fait que (x, y) =
0
(x, y) sur la courbe E : y 2 = x3 + Ax + B), on a Rn
/Sn = Rn0 /Sn , donc
le rsultat pour n positif impliquera le rsultat pour n ngatif.
Par rcurrence sur n : si n = 1 la proposition est triviale. Si elle est vraie
pour n, le lemme 2 implique quelle est vraie pour n + 1, qui est la somme
de 1 et n. On a donc bien Rn0 (x)/Sn (x) = n pour tout n.
On a que Rn0 (x) 6= 0 si et seulement si n = Rn0 (x)/Sn (x) 6= 0, ce qui est
quivalent dire que p ne divise pas n.
On finit cette introduction aux endomorphismes dune courbe elliptique
E par un rsultat sur lendomorphisme de Frobenius qui nous sera utile plus
tard.
Proposition 5. Soit E une courbe elliptique dfinie sur un corps fini Fq
(donc q est une puissance dun premier p). Soient r et s des entiers non nuls
la fois. Lendomorphisme rq + s est sparable si et seulement si p - s.
Dmonstration. Soit r(x, y) = (Rr (x), ySr (x)) lendomorphisme de multiplication par r, alors
(Rrq (x), ySr (x)) = (q r)(x, y) = (Rrq (x), y q Srq (x))
17



q1
= Rrq (x), y(x3 + Ax + B) 2 Srq (x) .
o la deuxime galit est une consquence de (a + b)q = aq + bq dans Fq .
Donc,
0
/Srq = qRrq1 Rr0 /Srq = 0.
crq = Rr
q
On a aussi cs = Rs0 /Ss = s par la proposition 4. Par le lemme 2,
0
Rr
/Srq +s = crq +s = crq + cs = 0 + s = s,
q +s
0
Par consquent, Rr
6= 0 si et seulement si p - s.
q +s

18

Points de Torsion

Soit E une courbe elliptique sur un corps K. Soit n un entier positif.


Posons
E[n] = {P E(K) | nP = O}
Cest un sous-groupe de E(K), qui est lensemble des points dans E dont
lordre divise n. On dit que P E(K) est un point de n-torsion si et seulement si P appartient au sous-groupe de n-torsion E[n].
Si la caractristique de K nest pas 2, la courbe prend la forme E : y 2 =
x3 + Ax + B. En factorisant dans K on a y 2 = (x e1 )(x e2 )(x e3 ). Maintenant, un point P E(K) est dans E[n] si et seulement si 2P = O, ou de
faon quivalente, si la droite tangente E en P est verticale. Cela signifie que
la y-coordonne de P vaut 0, on a donc que E[2] = {O, (e1 , 0), (e2 , 0), (e3 , 0)}
et de manire abstraite E[2] ' Z2 Z2 .
Si la caractristique de K est 2, daprs la proposition 1, il faut tudier
les quations
(I) y 2 + xy + x3 + a2 x2 + a6 = 0, (II) y 2 + a3 y + x3 + a4 x + a6 = 0

Les mmes types de calculs donnent E[2] = {O, (0, a6 )} pour lquation (I)
et donc comme groupe abstrait E[2] ' Z2 . De mme, pour lquation (II)
on obtient E[2] = {O} et dans ce cas E[2] es trivial.
Si on cherche connatre E[3], il sera utile dobserver que P E[3] si et
seulement si 2P = P et cela si et seulement si P et 2P sont sur la mme
droite verticale. En quations cela se traduit par le fait que les x-coordonnes
de P et 2P sont les mmes, ce qui conduit considrer une quation polynmiale en x et regarder ses racines (son discriminant). Enfin, tous ces
calculs conduisent au rsultat suivant :
1. Si la caractristique de K nest ni 2 ni 3 : E[3] ' Z3 Z3
2. Si la caractristique de K est 2 : E[3] ' Z3 Z3
3. Si la caractristique de K est 3 : E[3] ' Z3
Calculer E[4] avec cette mthode devient vite difficile. Nous allons voir plus
tard que le sous-groupe de n-torsion E[n] a toujours la forme dune somme
directe dau plus 2 groupes finis, ainsi quun algorithme pour calculer lordre
dun point.

19

3.1

Polynmes de division

Soit la courbe elliptique E : y 2 = x3 + Ax + B sur un corps K. On dfinit


les polynmes de division n (x, y) par la rcurrence suivante :
0 (x, y) = 0; 1 (x, y) = 1; 2 (x, y) = 2y;
3 (x, y) = 3x4 + 6Ax2 + 12Bx A2 ;
4 (x, y) = 4y(x6 + 5Ax4 + 20Bx3 5A2 x2 4ABx 8B 2 A3 )
et pour n Z, on pose n = n puis pour tout (m, n) Z2
2
.
m+n mn = m+1 m1 n2 n+1 n1 m

Observons que les deux dernires relations donnent


3
2n+1 = n+2 n3 n1 n+1
pour n 2;
2
2
2n 2 = n (n+2 n1
n2 n+1
) pour n 3.

Proposition 6. Soit P = (x, y) E(Fq ), avec Fq un corps fini de caractristique p 6= 2, 3. Posons nP = (xn , yn ), alors
n1 n+1
i) xn = x
n2
2
2
n+2 n1 n2 n+1
ii) yn =
4yn3
Dmonstration. La formule (3) daddition donne xm+n = xn xm + 21 ,
yn
m yn
, 2 = xym
. Comme xn = xn
xmn = xm xn + 22 avec 1 = xym
xn
m xn
4yn ym
et yn = yn on a xm+n = xmn (xm xn )2 . Si i) est vraie au rang m et
2

m n1 n+1
mn
n, alors xn xm = n m1 m+1
= m+n
. Puisque ii) est aussi
2 2
2 2
n
n
m
m
2n 2
2m 2
2n
vraie au rang m et n, on a 4yn ym = 4 n 4y3 m 4y3 = 2m
et 2n 2m =
4 4
n
m
n m
2
2
nm+1 n+m1 m+n
.
(nm)+(n+m) (nm)(n+m) = n+m1 n+m+1 nm
Ainsi, si, en plus, i) est vraie au rang nm, alors elle est vraie au rang m+n.
n+1 y
Pour les ordonnes, on utilise lgalit xn+2 = xn (x4y
2 (consquence des
n+1 x)
formules daddition) et le mme type de rcurrence permet de conclure.

Proposition 7. Soit P = (x, y) E(Fq ). Alors,


P E[n] n (x, y) = 0 mod p
Dmonstration. Par rcurrence sur n. Pour n = 2, si p | 2y = 2 , alors
y y mod p et donc 2P = (x, y) + (x, y) = 0. Rciproquement, si
20

2P = O, alors P = P et donc 2y mod p.


Pour n = 2m, daprs la partie ii) de la proposition 6, on a lgalit 2m =
4
4
, alors par hypothse de rcurrence mP = O, en particulier
. Si p | m
2ym m
2mP = O ; et si p | 2ym , alors p | ym car p 6= 2 et donc 2mP = mP + mP =
mP mP = O. Rciproquement, si 2mP = O, alors 2ym 0 mod p.
Pour n = 2m + 1, daprs la partie i) de la proposition 6, on a lga2 2
3
3
lit m
m+1 (xm xm+1 ) = 2m+1 . De 2m+1 = m+2 m
m+1
m1 , si
p | m , alors p | m+1 ou p | m1 ; dans les deux cas lhypothse de rcurrence implique que (m + 1)P = O ou (m 1)P = O respectivement, en
plus on a mP = O, donc P = O. Ainsi, si p | xm xm+1 , lquation de
2
2
E : y 2 = x3 + Ax + B implique que p | ym+1
ym
. Par suite p | ym+1 ym
do (m + 1)P = mP (2m + 1)P = O. Rciproquement, (2m + 1)P = O
implique xm+1 xm 0 mod p, do p | 2m+1 .
Dfinissons les polynmes
n = xn2 n+1 n1
2
2
)
n2 n+1
n = (4y 1 )(n+2 n1
On peut montrer par rcurrence que
2

n (x) = xn + termes de degr infrieur


2
2
n (x) = n2 xn 1 + termes de degr infrieur
La proposition 6 nous dit donc que si P = (x, y) est un point sur la courbe
y 2 = x3 + Ax + B dfinie sur un corps de caractristique diffrente de 2 et 3,
et n est un entier. Alors


n (x) n (x, y)
nP =
,
(6)
n2 (x) n (x, y)3
Remarque 1.
En fait, la formule (6) est aussi valable sur nimporte quel corps K dont la
caractristique nest pas 2 (voir [9, section 9.5]).
Corollaire 1. Soit E une courbe elliptique. Lendomorphisme : P 7 nP
est degr n2 .
Dmonstration. Soit P = (x, y) E. Nous avons (x, y) = (R(x), yS(x))
avec
2
n (x)
xn +
R(x) = 2
= 2 n2 1
n (x)
nx
+
21

et le degr maximum entre le dnominateur et numrateur de R(x) est n2 .


La partie difficile est celle de montrer que n (x) et n2 (x) nont pas de racine
commune. Voir par exemple [9, section 3.2].
Thorme 3. Soit E une courbe elliptique sur un corps K et soit n un entier
positif. Si la caractristique de K ne divise pas n, ou si elle est nulle, alors
E[n] ' Zn Zn .
Si la caractristique de K est p > 0 et p | n, crivons n = pr n0 avec p - n0 .
Alors
E[n] ' Zn0 Zn0 ou E[n] ' Zn Zn0
Dmonstration. Soit (x, y) = (R(x), yS(x) lendomorphisme de multiplica2
2
tion par n. Puisque R(x) = (xn + )/(n2 xn 1 + ), le numrateur de
2
la drive de R(x) est n2 x2n 2 + et il est non nul si p - n, donc est
sparable. Par la proposition 2 et le corollaire 1, E[n] = kern() est dordre
n2 . Le thorme sur la structure des groupes abliens finis dit que E[n] est
isomorphe
Z1 Z2 Znk
avec ni | ni+1 pour tout i. Soit l un premier qui divise n1 . Alors l | ni pour
tout i. Cela signifie que E[l] E[n] est dordre lk . Mais on vient de voir que
E[l] doit tre dordre l2 , donc k = 2. Ainsi E[n] ' Zn1 Zn2 avec n1 , n2 | n,
et puisque n2 = n1 n2 il suit que n1 = n2 = n. Par consquent,
E[n] ' Zn Zn
lorsque la caractristique p du corps ne divise pas n.
Reste voir le cas p | n. Nous dterminons dabord la p-torsion dans E.
Par la proposition 5, la multiplication par p nest pas sparable. Par la proposition 2, le noyau E[p] de la multiplication par p est dordre strictement
infrieur au degr de cet endomorphisme, qui est p2 daprs le corollaire 1.
Puisque tous les lments de E[p] son dordre 1 ou p, E[p] est donc un pgroupe et puisquil est fini son ordre est une puissance de p, laquelle doit
tre 1 ou p. Si E[p] = {O}, alors E[pk ] = {O} pour tout k car si on avait
Q tel que pk Q = O, on aurait pk1 Q = O puisque E[p] est trivial, et on
conclut par rcurrence que Q = O. Si E[p] est dordre p, nous affirmons que
E[pk ] ' Zpk pour tout k. En effet, soit P 6= O un lment de E[pk ], lordre de
P doit tre une puissance de p, disons pj avec 0 < j k. Par la proposition
3, la multiplication par p est surjective et il existe donc un lment Q tel que
pQ = P . Comme pj Q = pj1 P 6= O mais pj+1 Q = pj P = O, alors lordre de
22

Q est j + 1. Par rcurrence, il existe des points dordre pk pour tout k. Par
consquent, E[pk ] est cyclique dordre pk .
crivons maintenant n = pr n0 avec r 0 et p - n0 . Alors la suite suivante
=n0

0 E[n0 ] E[n] E[pr ] 0


o i est linclusion et est la multiplication par n0 restreinte E[n], est exacte.
En effet, soit lendomorphisme de multiplication par n0 , on a que Ker =
Ker
car E[n0 ] E[n], donc Im(i) = E[n0 ] = Ker. Lendomorphisme i est
injectif par dfinition. Par la proposition 3, pour P E[pr ] il existe un Q tel
que n0 Q = P ; do nQ = pr n0 Q = pr P = O, ce qui implique Q E[n] et
donc est surjective. Cette suite exacte est aussi scinde. En effet, comme
(m0 , pr ) = 1 par le thorme de Bzout il existent des entier x et y tels que
xn0 + ypr = 1. On dfinit : E[pr ] E[n] par (P ) = xP , est bien dfini
et satisfait = idE[pr ] . On en dduit que
E[n] ' E[n0 ] E[pr ]
Nous savons dj que E[n0 ] ' Zn0 Zn0 et E[pr ] ' Zr ou 0, de plus par le
thorme des restes chinois Zn0 Zpr ' Zn0 pr ' Zn . Finalement, on obtient
E[n] ' Zn0 Zn0 ou Zn Zn0

3.2

Le couplage de Weil

Le couplage de Weil sur la n-torsion dune courbe elliptique est un outil


important pour ltude des courbes elliptiques. Nous nous en servirons pour
dmontrer le thorme de Hasse sur lordre dune courbe elliptique dfinie sur
un corps fini, et nous en discuterons son utilit pour attaquer le problme du
logarithme discret dans la section 5.3.
Soient E une courbe elliptique dfinie sur un corps K et n un entier ne
divisant pas la caractristique de K. Par le thorme 3, E[n] ' Zn Zn .
Choisissons une base {1 , 2 } de E[n]. Si : E(K) E(K) est un endomorphisme qui envoie E[n] sur E[n] on peut reprsenter restreint E[n]
par une matrice


a b
n =
c d
o les coefficients a, b, c et d sont uniquement dtermins mod n par (1 ) =
a1 + c2 et (2 ) = b1 + d2 .
23

Soit
n = {x K | xn = 1}
le groupe des racines n-imes de lunit dans K. Comme la caractristique
de K ne divise pas n, lquation xn = 1 a toutes ses racines simples, il y a
donc n racines distinctes dans K. Par consquent, n est un groupe cyclique
dordre n. Nimporte quel gnrateur de n est appel une racine n-ime
primitive de lunit. Ceci est quivalente a dire que k = 1 si et seulement si
n | k.
Exemple 3.
Considrons la courbe elliptique E : y 2 = x3 1 dfinie sur R. On calcule
facilement
E[2] = {O, (1, 0), (, 0), (1 , 0)}
avec racine de lquation x2 + x + 1 = 0. Il est aussi facile de voir que
1 = (1, 0) et 2 = (, 0) forment une base de E[2] car (1, 0) + (, 0) =
(1 , 0). Soit : E(C) E(C) la conjugaison complexe : (x, y) = (
x, y).
En fait, on peut vrifier sans peine que est un homomorphisme bien dfini
(car le coefficients de E sont rels). Dune part (1 ) = 1 , et dautre part
(2 ) = (
, 0) = (1 , 0) = 1 + 2 car on remarque que satisfait aussi
3
= 1 do (
)2 =
, et donc
= 2 = 1 . Finalement la matrice
n scrit.


1 1
n =
.
0 1
Thorme 4. Soit E une courbe elliptique dfinie sur un corps K, et soit
n un entier positif. Supposons que la caractristique de K ne divise pas n.
Alors, il existe une application
en : E[n] E[n] n
appele couplage de Weil, qui satisfait les proprits suivantes :
1. en est bilinaire en chaque variable. Cela signifie que
en (S1 + S2 , T ) = en (S1 , T )en (S2 , T )
et
en (S, T1 + T2 ) = en (S, T1 )en (S, T2 )
pour tous S, S1 , S2 , T, T1 , T1 E[n]
24

2. en es non-dgnr en chaque variable. Cela signifie que en (S, T ) = 1


pour tout T E[n], alors S = O et aussi que si en (S, T ) = 1 pour tout
S E[n] alors T = O.
3. en (T, T ) = 1 pour tout T E[n]
4. en (T, S) = en (S, T )1 pour tous S, T E[n]
5. en (S, T ) = (en (S, T )) pour tout automorphisme de K tel que est
lidentit sur les coefficients de E.
6. en ((S), (T )) = en (S, T )deg pour tout endomorphisme
Dmonstration. Admise. Voir [9, chapter 11].
Nous allons dduire maintenant quelques consquences de ce thorme.
Corollaire 2.
i) Si T1 , T2 est une base de E[n]. Alors, en (T1 , T2 ) est une
n-ime racine primitive de lunit.
ii) Si E[n] E[K], alors n K. En particulier si K = Q, alors
E[n] * E[Q] pour n > 3.
Dmonstration. i) Soit = en (T1 , T2 ) avec d = 1. Soit S E[n], il existe
a, b entiers tels que S = aT1 + bT2 . Par le proprits (1) et (3) du thorme
4, on a en (S, dT1 ) = en (aT1 + bT2 , dT2 ) = en (T1 , T2 )ad en (T2 , T2 )bd = ad = 1,
et ceci pour tout S E[n], donc daprs la proprit (2) on a que dT2 = O.
Par consquent dT2 = O si et seulement si n | d, cela revient dire que est
une n-ime racine primitive de lunit.
ii) Comme E[n] E[K], on peut assumer que les coordonnes de T1 , T2
sont dans K. Soit Gal(K/K), alors T1 = T1 et T2 = T2 . Daprs la
proprit (5),
= en (T1 , T2 ) = en (T1 , T2 ) = ()
tant arbitraire, on a que K.
iii) Cest une consquence de ii). De plus, n * Q si n > 3.
Proposition8. Soit
 {T1 , T2 } une base de E[n], et pour un endomorphisme
a b
soit n =
la matrice associ cette base (on suppose que n ne
c d
divise pas la caractristique de K). Alors
det(n ) deg() (mod n)
Dmonstration. Par le corollaire 2, = en (T1 , T2 ) est une n-ime racine primitive de lunit. Par la partie (6) du thorme 4, on a
deg() = en ((T1 ), (T2 )) = en (aT1 + cT2 , bT1 + dT 2)
25

= en (T1 , T2 )ad en (T2 , T1 )cd = adbc ,


donc deg() ad bc (mod n).
Proposition 9. Soit , deux endomorphismes sur une courbe elliptique E
et a, b des entiers. Alors,
deg(a + b) = a2 deg + b2 deg + ab (deg( + ) deg deg ) .
Dmonstration. Observons dabord que les endomorphismes sur une courbe
elliptique E forment un Z-module (la multiplication par un entier et laddition de points sont dcrites par des fonctions rationnelles), donc a + b est
un endomorphisme. Soit n un entier non divisible par la caractristique de
K. Soient n et n les matrices de et par rapport une base de E[n].
Alors an + bn donne laction de a + b sur E[n]. Un calcul direct donne
det(an + bn ) = a2 deg n + b2 deg n + ab (det(n + n ) det n deg n )
Pour toutes matrices n et n . Par consquent
deg(a + b)
a2 deg + b2 deg + ab (det( + ) det deg ) mod n.
et comme cest vrai pour une infinit de n, alors cela doit tre une galit.

26

Courbes elliptiques sur des corps finis

Dans cette section nous dmontrerons le thorme de Hasse sur lordre


du groupe dune courbe elliptique dfinie sur un corps fini, la dtermination
de lordre dun lment (ce qui nous permettra, grce au thorme de Hasse,
de dterminer lordre du groupe dans la plupart de cas) et nous prsenterons
aussi lalgorithme de Schoof.
Dterminer lordre du groupe dune courbe elliptique dfini sur un corps
fini est plutt facile si le corps est petit, car on peut tout simplement lister
ses lments :
Exemple 4.
Considrons la courbe elliptique E : y 2 + xy = x3 + 1 dfinie sur F2 . En
faisant parcourir x par tous les lments de F2 , on trouve
E(F2 ) = {O, (0, 1), (1, 0), (1, 1)}.
Les points (1, 0), (1, 1) sont dordre 4, donc E(F2 ) ' Z4 . Considrons maintenant lextension F4 /F2 . Pour dcrire F4 on se fixe une clture algbrique de
F2 , et alors les lments de F4 seront les racines de lquation X 4 X = 0,
ainsi F4 = {0, 1, , 2 }, avec qui satisfait la relation 2 + + 1 = 0 (la
multiplication de cette relation par + 1 donne 3 = 1). Donc, nouveau
on fait parcourir x par les lments de F4 pour obtenir
E(F4 ) = {O, (0, 1), (1, 0), (1, 1), (, 0), (, ), ( 2 , 0), ( 2 , 2 )}.
Les points contenant ou 2 sont dordre 8 (par calcul direct, on trouve
dabord 2P , ensuite 4P et finalement 8P ). Donc E(F4 ) ' Z8 .
Thorme 5. Soit E une courbe elliptique sur le corps fini Fq . Alors
E(Fq ) ' Zn ou Zn1 Zn2
pour un entier n 1, ou pour deux entiers n1 , n2 1 avec n1 | n2 .
Dmonstration. Fq tant fini, les lments de E(Fq ) sont aussi finis. Alors, par
le thorme sur la structure des groupes abliens finis, E(Fq ) est isomorphe

Zn1 Zn2 Znr


avec ni | ni+1 pour tout i. Pour chaque Zni nous avons n1 lments dont
lordre divise n1 , au total dans E(Fq ) on a au moins nr1 lments dont lordre
divise n1 . Par la proposition 2, on a au plus n21 de tels lments, mme si
on admet des points avec coordonnes dans Fq , donc r 2, ce qui donne le
rsultat.
27

4.1

Le thorme de Hasse

Soit Fq un corps fini avec clture algbrique Fq . Dans lexemple 2 on avait


dfini lendomorphisme de Frobenius q : E(Fq ) E(Fq ) par laction :
q (x, y) = (xq , y q ), q (O) = O
On avait vu quil est bien dfini, que cest bien un endomorphisme, quil nest
pas sparable, et que son degr est q. On a de plus que ses points fixes sont
exactement les points de E(Fq ). En effet,
(x, y) E(Fq ) x, y Fq xq = x, y q = y q (x, y) = (x, y).
On peut composer q avec lui mme autant de fois quon le souhaite, nq =
q q reste un endomorphisme pour tout n 1. En particulier nq 1
est un endomorphisme car la multiplication par 1 lest aussi.
Proposition 10. soient E une courbe elliptique sur Fq et n 1.
1. Ker(nq 1) = E(Fqn ).
2. nq 1 est un endomorphisme sparable, donc #E(Fqn ) = deg(qn 1).
Dmonstration. 1. Les points fixes de nq sont exactement les E(Fqn ), et alors
nq = idE(Fqn ) implique Ker(nq 1) = E(Fqn ).
2. Le fait que nq 1 est sparable est une consquence de la proposition
5, puis la proposition 2 nous donne le rsultat voulu.
Lemme 3. Soient r, s des entiers et soit a = q + 1 #E(Fq ) = q + 1
deg(q 1). Alors
deg(rq s) = r2 q + s2 rsa
Dmonstration. Cest une consquence de la proposition 9 avec = q et
= 1 (la multiplication par 1).
Thorme 6. (Hasse) Soit E une courbe elliptique sur un corps fini Fq .
Alors, lordre de E(Fq ) satisfait

|q + 1 #E(Fq )| 2 q.
Dmonstration. Comme le degr dun endomorphisme est toujours positif,
deg(rq s) 0. Soit a comme dans le lemme 3. Par ce mme lemme, on a
q

 r 2
s

r
s

28

+10

pour tous entiers r, s 6= 0. Comme Q est dense dans R, lingalit ci-dessus


devient
qx2 ax + 1 0
pour tout nombre rel x. Par consquent, le discriminant du polynme qx2
aq + 1 doit tre plus petit ou gal zero, cest--dire = a2 4q 0, et

donc |a| 2 q.
Thorme 7. Soit E une courbe elliptique dfinie sur Fq . Soit a comme dans
le lemme 3. Alors
2q aq + q = 0
comme endomorphismes de E, et a et lunique entier k tel que
2q kq + q = 0.
En outre, a et lunique entier satisfaisant
a Trace(q )m mod m
pour tout m avec (m, q) = 1.
Dmonstration. Si q a + q nest pas lendomorphisme trivial, alors son
noyau est infini daprs la proposition 2. Nous allons voir que le noyau de cet
endomorphisme est infini, et donc ce sera lendomorphisme trivial.
Soit m 1 un entier avec (q, m) = 1. Lendomorphisme de Frobenius q
induit une matrice (q )m qui dcrit laction de q sur E[m]. Soit


s t
(q )m =
u v
Lendomorphisme q 1 est sparable par la proposition 5. Les propositions
2 et 8 impliquent
#Ker(q 1) = deg(q 1) det((q )m I)
= sv tu (s + v) + 1 mod m.
Par la proposition 8, sv tu = det(q )m deg(q ) = q mod m. Comme
#Ker(q 1) = q + 1 a, on a
Trace(q )m = s + v = a mod m.
Le polynme caractristique de (q )m est : X 2 Trace(q )m X + det(q )m .
Le thorme de Cayley-Hamilton modulo m donne
(q )2 a(q )m + qI = 0
29

en tant quendomorphisme sur E[m]. Comme il y a une infinit de choix pour


m, le noyau de 2q aq + q est infini, donc lendomorphisme est trivial.
Supposons quil existe un entier a0 6= a tel que 2q a0 + q = 0. Alors
(a a0 )q = (2q a0 + q) (2q a0 + q) = 0.
Par la proposition 3 tous les endomorphismes sont surjectives, en particulier
q : E(Fq ) E(Fq ), mais alors (a a0 ) comme endomorphisme sannule sur
E[m] pour tout m 1. Puisquil existe des points dordre m lorsque (m, q) =
1, alors aa0 | m pour un tel m, ou de manire quivalente aa0 0 mod m
et cela pour une infinit de m avec (m, q) = 1, alors a = a0 .
Dfinition 7. On appelle polynme caractristique de Frobenius le polynme X 2 aX + q.
Des rsultats supplmentaires ont t montrs lors de la preuve du thorme 7. Nous les rsumons dans la proposition suivante :
Proposition 11. Soit E une courbe elliptique sur Fq et soit (q )m la matrice
de laction de lendomorphisme de Frobenius q sur E[m]. Soit a = q + 1
#E(Fq ). Alors
Trace(q )m a mod m, det(q )m q mod m.
Dmonstration. Cest le thorme 7.
Exemple 5.
Soit E une courbe elliptique sur Fq o q = r2 pour un entier r. Supposons
que #E(Fq ) = (r 1)2 . Alors E(Fq ) ' Zr1 Zr1 .
En effet, par hypothse a = q + 1 #E(Fq ) = r2 + 1 + (r 1)2 = 2r.
Par le thorme 7, (q r)2 = 2q 2rq + r2 = 0. Lendomorphisme q r
doit tre trivial, sinon il est surjectif daprs la proposition 3, cest--dire
(q r) E(Fq ) = E(Fq ), mais (q r)2 = 0, donc q r = 0 ce qui est
absurde. Comme (x, y) E(Fq ) si et seulement si q (x, y) = (x, y), alors
(x, y) E(Fq ) si et seulement si r(x, y) = (x, y), car q = r. Autrement dit,
(r 1)E(Fq ) = 0. Ainsi E[r 1] E(Fq ), en plus r - r 1 (r est la puissance
dun premier) alors E[r 1] ' Zr1 Zr1 par le thorme 3. Puisque lordre
de E[r 1] est (r 1)2 , on a forcment E(Fq ) = E[r 1], do le rsultat.
Si on suppose que E 0 est une autre courbe elliptique sur Fq avec #E 0 (Fq ) =
(r+1)2 (o q = r2 ), les mmes types de calculs donnent E 0 (Fq ) ' Zr+1 Zr+1 .
30

4.2

Dterminant lordre du groupe

Thorme 8. Soit #E(Fq ) = q + 1 a. crivons X 2 aX + q = (X


)(X ). Alors
#E(Fqn ) = q n + 1 (n + n ).
pour tout n 1.
Dmonstration. Posons un = n + n . Tout dabord, il faut vrifier que un
est un entier pour tout n 1. Observons que un+1 = aun qun1 . En effet, il
suffit de multiplier la relation 2 a + q = 0 par n1 , faire de mme avec
n1 pour la relation 2 a + q = 0, et finalement on les ajoute membre
membre. Un raisonnement par rcurrence montre que un est bien un entier.
Soit
f (X) = (X n n )(X n n ) = X 2n (n + n )X n + q n .
Alors, le polynme X 2 aX +q = (X )(X ) divise f (X). Leur quotient
Q(X) est un polynme avec ses coefficients entiers car cest une division de
polynmes dans Z[X] dont le diviseur a comme coefficient principal 1. Alors
(nq )2 (n + n )nq + q n = f (q ) = Q(q )(2q aq + q) = 0
Comme endomorphismes de E, daprs le thorme 7. Observons que nq =
qn . Le thorme 7 dit aussi quil existe un unique entier k avec la proprit
2qn kqn + q n = 0, savoir k = q n + 1 #E(Fqn ). Par consquent,
n + n = q n + 1 #E(Fqn ).

Exemple 6.
Soit la courbe elliptique E : y 2 + y = x3 dfinie sur F2 . Alors,

2n + 1
si n 1 mod 2
#E(F2n ) =
n
2 + 1 2(2)n/2 si n 0 mod 2
On trouve facilement que E(F2 ) = {O, (0, 0), (0, 1)}, donc a = 2 + 1
#E(F2 ) = 0. La relation de rcurrence du thorme 8 devient un+1 = 2un1 ,
do on trouve un = 2(2)n/2 si n est pair, et un = 0 si n est impair. Par le
thorme 8, #E(F2n ) = 2n + 1 un . Il suffit, alors, de remplacer un par sa
valeur dans les cas correspondants.

31

4.2.1

Ordre dun point

Soit P E(Fq ), son ordre n = ord(P ) doit diviser lordre du groupe N =


#E(Fq ) daprs le thorme de Lagrange. En fait, nP = O si et seulement
si n | N . Le thorme de Hasse nous dit que N est dans un intervalle I de

longueur 4 q, et si on arrive a trouver un lment P avec un ordre ord(P ) >

4 q, alors il ny a quun seul multiple de n se trouvant dans lintervalle I,

et ce doit tre N . Mme si ord(P ) 4 q, on obtient une liste petite des


possibilits pour N . Nous discuterons plus tard un algorithme pour trouver
lordre dun lment.

Figure 4 Dtermination de lordre du groupe avec Hasse


Exemple 7.
Soit la courbe elliptique E : y 2 = x3 + 5x + 1 sur F107 . Soit N107 =
#E(F107 ) son ordre.
Par Hasse 87 N107 129. Le point P = (4, 37) est

dordre 49 > 4 107, et alors le seul multiple de 49 cette intervalle est 98.
Donc N107 = 98.
Exemple 8.
Soit la courbe elliptique E : y 2 = x3 + 17x + 3 sur F131 . Les points
P = (14, 3) et Q = (130, 0) sont dordre 31 et 2 respectivement, donc P + Q
est un pointdordre 62. Soit N131 = #E(F131 ). Par Hasse 109 N131 155.
Or, 62 > 4 131, et alors le seul multiple de 62 dans ce rang est 142, donc
N131 = 124.
Exemple 9.
Parfois cette mthode ne permet pas de dire grand chose sur lordre dune
courbe elliptique. Cest le cas, par exemple, de la courbe y 2 = x2 + 3 dfinie
sur F7 . Bien sr, comme lexemple est sur un corps petit, on peut calculer
facilement N7 , laide du symbole de Legendre par exemple. Cependant le
thorme de Hasse nous dit seulement que lordre de E(F7 ) doit tre un multiple de 3. En effet, on peut montrer que E(F7 ) ' Z3 Z3 , donc tous les
lments sont dordre 3. Le thorme de Hasse dit que 3 N7 13, et alors
lordre du groupe peut tre priori 3,6,9 ou 12.

32

La situation E(Fq ) ' Zn Zn peut rendre le calcul de Nq un peu difficile,


mais ce cas est assez rare, comme la proposition suivante le montre.
Proposition 12. Soit E une courbe elliptique sur Fq et supposons que
E(Fq ) ' Zn Zn
pour un entier n. Alors, soit q = n2 soit q = n2 n + 1 soit q = (n 1)2 .

Dmonstration. Par Hasse n2 = q + 1 a, avec a2 2 q. Soit p la caractristique de Fq , alors p - n car sinon par hypothse il y aurait p2 lments dans E[p] E[n], ce qui nest pas possible par le thorme 3. Comme
E[n] E(Fq ), le corollaire 2 implique que les racines n-imes de lunit sont
dans Fq , et alors q1 | n. Donc, a = q+1n2 2 mod n. On crit a = 2+kn
pour un entier k, ainsi q = n2 + kn + 1. Finalement, par le thorme de Hasse
a2 = (2 + kn)2 < 4q = 4(n2 + kn + 1), do |k| 2, ce qui complte la
preuve.
Proposition 13. Soit E une courbe elliptique sur Fq . Supposons que
E(Fq ) ' Zn Znm .

Alors, q = mn2 + kn + 1 avec |k| 2 m. De plus, si m 17 et q est


suffisamment grand (q 1122 suffit), alors E(Fq ) a un point dordre plus

grand que 4 q.
Dmonstration. Le mmes calculs de la proposition 12 donnent a = 2 + kn
2
2
2
et q = mn
4q = 4(mn2 + kn + 1) do
+ kn + 1. Par Hasse a = (2 + kn)
2
|k| 2 m. La borne sur k nous
dit que q2 ( mn 2 1) , et nouveau par

2
Hasse
2 q q + 1 mn ( mn + 1) + 1 mn = 2 mn + 2, do

mn m( q 1). Par hypothse on a un lment dordre mn et cet ordre


est le plus grand possible,
pour avoir un lment dordre plus grandque
donc

m
4 q il faudra imposer m( q 1) 4 q, ce qui impliquera q m4
.
Ainsi, si m 17 et q est suffisamment grand, par exemple q 1122, il existe

toujours un lment dordre plus grand que 4 q.


On voit que le ca E(Fq ) ' Zn Znm peut aussi rendre le thorme de Hasse
peu pratique pour dterminer lordre du groupe. Le thorme des nombres
premiers affirme que le nombre de puissances de premiers plus petits que
x est peu prs x/ log x. On peut montrer laide de ce thorme que la
plupart des puissances de premiers napparaissent pas dans la liste fini de
polynmes q = mn2 + kn + 1 de la proposition 13.

33

Proposition 14. Supposons que


E(Fq ) ' Zn .

alors il existe un lment dordre plus grand que 4 q.

Dmonstration. Par le thorme de Hasse q + 1 n 2 q ou bien n

( q 1)2 . La condition ( q 1)2 4 q implique q 6+2 32 .


Si

6+ 32
,
2

En rsum, les propositions prcdentes montrent que pour la plupart de


valeurs de q, une courbe elliptique sur Fq possde un point dordre plus grand

que 4 q.
Soient E : y 2 = x3 + Ax + B une courbe elliptique sur K et d K .
La tordue de E par d est la courbe elliptique E (d) : y 2 = x3 + Ad2 x + Bd3 .
(d)
Ces deux courbes ont
le mme j-invariant et on peut transformer E en E
sur lextension K( d) via


1
1
(x, y)
x, y .
d ( d)3
Nous introduisons le symbole suivant :

si t2 = x a une solution t K
 x  +1
= 1 si t2 = x nas pas de solution t K

K
0
si x = 0
Il est facile de voir que
 3

X
X  x3 + Ax + B 
x + Ax + B
#E(Fq ) = 1 +
1+
=1+q+
Fq
Fq
xF
xF
q

(le terme 1 dans la somme correspond au point O).


Pour E (d) on a

  3
X
x + Ax + B
d
(d)
#E (Fq ) = 1 +
1+
Fq
Fq
xF
q

car si on trouve un point (x, y) pour E, alors son correspondant sur E (d)
existe ou non selon d est ou non un carr dans K. Poursimplifier
les choses,

d

prenons d Fq qui nest pas un carr dans Fq , c--d Fq = 1. crivons


#E(Fq ) = q + 1 a. Alors, #E (d) (Fq ) = q + 1 + a. Par consquent, la
connaissance de lordre de E dtermine celui de E (d) et vice versa. Ceci est
une bonne nouvelle, et cest lnonc de la proposition suivante :
34

Proposition 15. Soit p > 229 et soit E une courbe elliptique sur Fp . Soit E
ou sa tordue quadratique E (d) (avec d qui nest pas un carr dans Fp ) possde

un point P dont lordre a un seul multiple dans lintervalle (p + 1 2 p, p +

1 + 2 p).
Dmonstration. Voir [9, section 4.3].
4.2.2

Baby Step, Giant Step

Cet algorithme nous permet de trouver lordre dun point P E(Fq ). Il


nous permet dy arriver en environ 4q 1/4 pas.
1. Calculer Q = (q + 1)P
2. Choisir un entier m tel que m > q 1/4 . Calculer et stocker les points jP
pour j = 0, ..., m.
3. Calculer les points Q + k(2mP ) pour k Jm, mK jusqu ce quon
ait Q + k(2m)P = jP avec un point (ou son oppos) sur la liste de
du pas 2.
4. Conclure que (q + 1 + 2mk j)P = O. Poser M = q + 1 + 2mk j.
5. Factoriser M . Soient p1 , ..., pr les facteurs premiers distincts de M .
6. Calculer (M/pi )P pour i = 1, ..., r. Si (M/pi )P = O pour un i, on
remplace M par M/pi et on revient au pas 5. Si (M/pi )P 6= O pour
tout i, alors M est lordre de P .
7. Si on Cherche #E(Fq ), alors on refait les tapes 1 jusqu 6 pour
dautres points choisis arbitrairement dans E(Fq ) jusqu ce que leur

plus petit commun multiple soit N , avec q+12 q N q+1+2 q.


Daprs Hasse N = #E(Fq ).
Le choix de m > q 1/4 nous garantit la concidence Q + k(2mP ) = jP du
pas 3. En effet, soit a un entier avec |a| 2m2 . On peut crire a = a0 + 2ma1
avec m < a0 m et m a1 m en posant a0 a mod 2 comme le plus
petit reste modulo 2m et a1 = (a a0 )/2m. De plus
|a1 | (2m2 + m)/m < m + 1.

Or, a = q + 1 N satisfait |a| 2 q 2m2 , et on peut donc crire


a = a0 + 2ma1 . Posons k = a1 dans le pas 3 de lalgorithme. Alors
Q + k(2mP ) = (q + 1 2ma1 )P = (q + 1 a a0 )P = N P + a0 P = a0 P
et comme |a0 | m, la concidence a lieu.
Le lemme suivant justifie le pas 6 :
35

Lemme 4. Soit G un groupe additif (avec lment neutre 0) et soit g G.


Supposons que M g = 0 pour un entier positif M . Soient p1 , ..., pr tous les
premiers distincts qui divisent M . Si (M/pi )g 6= 0 pour tout i, alors M est
lordre de g.
Dmonstration. Soit k = ord(g) lordre de g. Supposons que k < M , alors
par Lagrange k | M . Soit pi un premier divisant M/k, alors pi k | M et
encore k | (M/pi ). Comme k est lordre de g, forcment (M/pi )g = 0, ce qui
contredit lhypothse. Donc M = k.
Remarque 2.
(1) Le nom Baby Step, Giant Step vient du fait que lon fait un petit pas
pour aller de jP (j + 1)P et un pas plus grand en allant de k(2mP )
(k + 1)(2mP ).
(2) Pour conomiser lespace, on peut stocker uniquement les x-coordonnes
des points jP . Si on travaille avec lquation simplifi de Weierstrass, pour
trouver une concidence avec jP il suffira de regarder la x-coordonne.
Aprs, on peut recalculer la y-coordonne si besoin.
(3) Pour calculer Q + k(2mP ) on peut calculer (2mP ) une fois pour toutes
et ajouter ce facteur pour aller de de Q + k(2mP ) Q + (k + 1)(2mP ).
Similairement si on veut passer de jP (j + 1)P .
Exemple 10.
Soit E : y 2 = x2 + 7x + 1 sur F101 et P = (0, 1). Nous suivons lalgorithme :
1. Q = 102P = (40, 67).
2. Prenons m = 4 > 1011/4 . La liste des jP est :
O, P = (0, 1), 2P = (88, 95), 3P = (36, 34), 4P = (96, 12).
3. Lorsque k = 2 on a Q + k(2mP ) = 118P = (88, 95), ce qui concide avec
2P dans la liste des jP , donc j = 2.
4. Nous avons (q + 1 + 2mk j)P = 116P .
5. Nous factorisons 116 = 24 9.
6. Nous calculons (116/2)P = 58P = (18, 0) 6= O et (116/9) = 4P =
(96, 12) 6= O. Donc lordre de P es 116.

36

7. Par Hasse 102 2 101 N101 102 + 2 102. Or 116 > 4 101, donc on
na pas besoin de choisir un autre point arbitraire pour calculer son ordre et
on peut conclure que N101 = 116.
Pour viter de faire tous ces calculs la main, on peut utiliser le logiciel
gratuit sage que lon trouve sur http ://www.sagemath.org.
4.2.3

Lalgorithme de Schoof

Soit E : y 2 = x3 + Ax + B une courbe elliptique sur E(Fq ). On sait par


le thorme de Hasse que

#E(Fq ) = q + 1 a, avec |a| 2 q.


Trouver #E(Fq ) revient donc trouver a. Soit S = {l1 , l2 , ..., lr } un ensemble
de nombres premiers diffrents de p = char Fq tels que
r
Y

li > 4 q.

i=1

Si nous sommes capable de dterminer a mod li pour i = 1, ...,


Q r, alors le
thorme des restes chinois nous permet de connatre a mod
li , et donc
on peut dterminer a de manire unique.
Lide cl de lalgorithme de Schoof que nous allons exposer maintenant,
consiste utiliser le thorme 7, lequel nous donne lidentit
2q aq + q = 0.
Cest dire
2

(xq , y q ) a(xq , y q ) + q(x, y) = 0,


2

pour tout (x, y) E(Fq ). On pourrait essayer de calculer (xq , y q ), (xq , y q )


et q(x, y) comme des fonctions dans lanneau Fq [x, y]/(y 2 x3 Ax B)
et essayer de trouver le a qui rend vraie cette galit, mais cette approche
se rvle impraticable. A la place, Schoof propose de travailler sur E[l] pour
un premier donn l 6= 2, p. Si P = (x, y) E[l], alors qP = ql P o ql est
lunique entier avec |ql | < l/2. On a aussi que (x, y) E[l] car l(x, y) =
(l(x, y)) = (O) = O. Posons al lunique entier avec |al | < l/2 tel que
a(xq , y q ) = al (xq , y q ). Pour tout (x, y) E[l] on a donc
2

(xq , y q ) + ql (x, y) = al (xq , y q )


37

(7)

avec ql q mod l, al a mod l.


Si on veut dterminer al il faut donc travailler sur E[l]. Pour ce faire, on
aura besoin de travailler avec le l-ime polynme de division l , car la
proposition 7 nous dit exactement que les x-coordonnes des points dans
E[l] sont les racines de l . On doit donc vrifier lgalit (7) dans lanneau
Fq [x, y]/ (y 2 x3 Ax B, l ). Soit
2

(X(x, y), Y (x, y)) := (xq , y q ) + ql (x, y),


avec ql q mod l et |ql | < l/2. Fixons les notations et pour P = (x, y),
posons nP = (xn , yn ). On va devoir devoir considrer deux cas plus un troisime pour combler ce qui se passe lorsque l = 2.
2

Cas 1 : (xq , y q ) 6= ql (x, y) pour tout (x, y) E[l].


Dans ce cas on peut calculer (X, Y ) laide de la formule 3. Donc
2

X(x, y) =

y q yql
xq2 xql

!2
2

xq xql .

En plus, on sait quon peut crire (xql , yql ) = (r1,ql (x), r2,ql (x)y) avec r1,ql , r2,ql
des fonctions rationnelles en x. On a
 2
2
 2
2
q
2
q 1
y yql = y y
r2,ql (x)
3

(q 2 1)/2

= (x + Ax + B) (x + Ax + B)

2
r2,ql (x) ,

et alors X(x, y) est une fonction rationnelle X(x) en x. On veut trouver j tel
que
(X, Y ) = j(xq , y q ) = (xqj , yjq )
pour tout (x, y) E[l].
Nous regardons dabord les x-coordonnes. Pour (x, y) E[l] nous avons
que (X, Y ) = (xqy , yjq ) si et seulement si X = xqj . Les x-coordonnes de tous
les points dans E[l] sont les racines de l daprs la proposition 6, elles sont
toutes simples puisque E[l] ' Zl Zl car l 6= p, et donc il y a (l2 1)/2
x-coordonnes distinctes dans E[l], or le degr de l est aussi (l2 1)/2.
On a donc
X xpj 0 mod l
38

(8)

ce qui signifie que le numrateur de X xqj est un multiple de l . Supposons


quon a trouv j tel que (8) soit vrifi. Alors
(X, Y ) = (xqj , yjq ) = (xqj , yjq ).
Pour dterminer le signe (cest dire si on prend j ou j) on regarde les
y-coordonnes. Y /y et yjq /y peuvent scrire comme des fonctions rationnelles
en x. Si
(Y yjq )/y 0 mod l ,
alors al j mod l. Autrement al j mod l.
2

Cas 2 : Si (xq , y q ) = ql (x, y) pour tout (x, y) E[l].


Si
2
2
2q (x, y) = (xq , y q ) = q(x, y),
alors
aq (x, y) = 2q (x, y) + q(x, y) = 2q(x, y),
do
a2 q(x, y) = a2 2q (x, y) = (2q)2 (x, y).
Donc, a2 q 4q 2 mod l, cest--dire q est un carr modulo l (observons que
2q 6 0 mod l car l est un premier impair diffrent de p). Soit w2 q mod l.
Alors
(q + w)(q w)(x, y) = (2q q)(x, y) = O
pour tout (x, y) E[l]. Prenons P E[l], alors soit (q w)P = O, et donc
q = wP ou soit P 0 = (q w)P est un point de E[l] avec (q + w)P 0 = O.
Quoi quil en soit, il existe un point P E[l] tel que q P = wP . Supposons
quil y ait un P E[l] tel que q P = wP . Alors
O = (2q aq + q)P = (q aw + q)P,
donc aw 2q 2w2 mod l. Donc a 2w mod l. Similairement, si on suppose quil existe P E[l] tel que q P = wP , on aura a 2w mod l. On
doit vrifier si on est dans ce cas ou non, cest--dire si
(xq , y q ) = w(x, y) = (xw , yw ) = (xw , ym )
pour un (x, y) E[l]. On calcule donc xq xw , qui est une fonction rationnelle
de x. Si
pgcd(numrateur(xq xw ), l ) 6= 1,
il existe un (x, y) E[l] tel que q (x, y) = w(x, y). Puis, pour dterminer
le signe on utilise la y-coordonne comme dans le cas 1 :
39

Si pgcd (numrateur(y q yw )/y, l ) 6= 1, alors a 2w mod l ; autrement


a 2w mod l.
Observons que si pgcd(numrateur(xq xw ), l ) = 1, alors on ne peut pas
2
2
tre dans le cas (xq , y q ) = q(x, y) car dans cette situation q w 6= 0
2
2
dans E[l]. Alors, le seul cas qui reste est (xq , y q ) = q(x, y), ce qui donne
aP = (2q + q)P = O, et donc a 0 mod l.
Cas 3 : Si l = 2.
Dans ce cas, comme q est un premier impair, #E(Fq ) = q + 1 a a mod 2.
Ainsi a 0 mod 2 si et seulement si E(Fq ) a un lment dordre 2. Or,
les lments dordre 2 dans E(Fq ) sont de la forme (e0 , 0) avec e0 racine de
x3 + Ax + B. Par consquent, a 0 mod 2 si et seulement si x3 + Ax + B a
une racine dans Fq , si et seulement si pgcd(xq x, x3 + Ax + B) 6= 1.
Voici donc lalgorithme de Schoof :
1. Choisir un ensembleQde nombres premiers S ne contenant pas p mais

avec 2 S tels que lS l > 4 q.


2. On a a 0 mod 2 si pgcd(xq x, x3 +Ax+B) 6= 1. Sinon a 1 mod 2.
3. Pour l 6= 2 S, faire :
(a) Soit ql q mod l avec |ql | < l/2.
(b) Calculer la x-coordonne de X :
 2 2
(X, Y ) = xq , y q + ql (x, y) mod l .
(c) Pour j = 1, 2, ..., (l 1)/2, faire :
i. Calculer la x-coordonne de xj de (xj , yj ) = j(x, y).
ii. Si X xqj 0 (mod l ), aller (iii). Sinon, essayer la valeur
suivante de j. Si toutes les valeurs 1 j (l 1)/2 ont t essayes,
aller (d).
iii. Calculer Y et yj . Si (Y yjq )/y 0(mod l ), alors a j mod l.
Sinon, alors a j mod l.
(d) Si toutes les valeurs 1 j (l 1)/2 on t essayes sans
succs, on cherche w tel que w2 q mod l. Si w nexiste pas, alors
a 0 mod l.
(e) Si pgcd(numrateur(xq xw ), l ) = 1, alors a 0 mod l. Autrement, calculer
pgcd(numrateur((y q yw )/y, l ).
40

Si ce pgcd nest pas 1, alors a 2w mod l. Autrement, a 2w mod


Ql.
4. Sachant que lon connait a (mod l) pour tout l S, calculer a (mod l)
grce au thorme des restes chinois. Choisir le a qui satisfait cette

congruence tel que |a| 2 q. Le nombre de points dans E(Fq ) sera


q + 1 a.
Pour un example dtaill on pourra voir [9, section 4.5] ou [7, chapter 6].
Lalgorithme de Schoof a une complexit de O(log8 q) oprations binaires.
4.2.4

Types spciales de courbes elliptiques

Dfinition 8. Une courbe elliptique E sur un corps de caractristique p est


appele super-singulire si E[p] = {O}. Autrement dit, E na pas de points
dordre p avec coordonnes dans un corps algbriquement clos.
Dfinition 9. Une courbe elliptique E dfinie sur Fq est dite anomalie
si #E(Fq ) = q.
Remarque 3.
Si E est une courbe anomalie, le thorme de Hasse implique que a =
2
2
q +1#E(Fq ) = 1. Donc, q(x, y) = q (x, y)2q (x, y) = (xq , y q )+(xq , y q )
pour tout (x, y) E(Fq ) par le thorme 7. Lutilit de travailler avec des
courbes anomalies est que le calcul de xq est moins coteux que la multiplication par q, entre autres.
Le rsultat suivant nous donne un critre pour dterminer si une courbe
donne est super-singulire ou non.
Proposition 16. Supposons que p 5 est un premier et E est une courbe
dfinie sur Fp . Alors, E est super-singulire si et seulement si a = 0, ce qui
est le cas si et seulement si #E(Fp ) = p + 1.
Dmonstration. Voir [9, section 4.6]
Remarque 4.
Une caractristique trs importante des courbes super-singulires est que
le calcul de multiplication dun point par un entier peut aussi se faire de
faon moins coteuse. En effet, le polynme de Frobenius (voir thorme 7)
2q + aq + q = 0 devient 2q + q = 0 car a = 0 si p 5. Cest dire
2

q(x, y) = 2q (x, y) = (xq , y q )


pour tout (x, y) E(Fq ). Pour la multiplication par un entier k quelconque,
on dveloppe k en base q : k = k0 + k1 q + k2 q 2 + + kr pr . Si lon veut
41

i
i
calculer
k(x, y),
 2i
 il suffit dadditionner tous les q (ki (x, y)) = q (xi , yi ) =
2i
xqi , (1)i yiq .

42

Le problme du logarithme discret (DLP)

tant donn un groupe G et a et b des lments de G, supposons que


lon sait que ak = b (le groupe est not multiplicativement) pour un entier k,
le problme du logarithme discret (DLP pour Discret Logarithm Problem en anglais) consiste trouver ce k. Par exemple, G peut tre un groupe
cyclique dordre n engendr par a ou bien G peut tre aussi E(Fq ) avec E
une courbe elliptique, et dans ce cas a et b sont des points et nous voulons
trouver un entier k tel que ka = b. Dans ce contexte particulier, le problme
est rebaptis comme ECDLP (Elliptic Curve Discret Logarithm Problem).
Le contexte originaire du problme du logarithme discret est G = F
p , donc
la solution k est regard modulo p 1 car k + (p 1) est aussi une solution
daprs le petit thorme de Fermat. Gnralement ce problme est difficile
rsoudre pour un premier p trs grand, do son intrt pour la cryptographie.

5.1

Le Index Calculus

Soit p un premier et g une racine primitive modulo p, cest dire g


k
engendre F
p . Chaque a 6 0 mod p scrit donc sous la forme a g pour un
entier k uniquement dtermin mod p 1. Notons k = indg (a) le logarithme
discret de a par rapport g et p, alors
g ind(a) a mod p.
Si b est un autre lment non nul dans F
p , nous avons
g ind(ab) ab g ind(a) g ind(b) mod p,
do
ind(ab) ind(a) + ind(b) mod p 1.
Le Index Calculus est une mthode pour calculer les logarithmes discrets.
Voici lalgorithme :
1. On veut rsoudre g k a mod p. On commence avec un ensemble de
nombres premiers petits auquel on ajoute -1, B = {1, 2, 3, 5, ..., pr }.
Cest lensemble des facteurs de base.
2. Pour k = 1, 2, ... on essaye de factoriser g k mod p en utilisant les facteurs de base, cest dire, trouver les ei tels que
g k (1)e0 2e1 perr mod p.
43

On obtient donc une relation


k e0 ind(1) + e1 ind(2) + + er ind(pr ) mod p 1.
Pour chaque k pour lequel on a trouv un tel factorisation, on va stocker
les ei obtenus dans un vecteur (e0 , e1 , ..., k) si la relation est linairement
indpendante des prcdentes modulo p 1 jusqu obtenir au moins
r + 1 vecteurs.
3. On rduit sa forme chelonne la matrice obtenue par ces vecteurs
affin de rcuprer les valeurs des ind(pj ) (en sachant que ind(1) = p1
2
p1
car g 2 1 mod p).
4. Pour s = 0, 1, ... on essaye de factoriser g s a en utilisant les facteurs de
base. Si une factorisation
g s a (1)f0 2f1 pfrr mod p
est trouv, alors on pose
k = f0 ind(1) + f1 ind(2) + + fr ind(pr ) s.
Illustrons cet algorithme par un exemple pris de [9, section 5.1] :
Exemple 11.
Soit p = 1217 et g = 3. On veut rsoudre 3k 37 mod 1217. Soit B =
{1, 2, 3, 5, 7, 11, 13} les facteurs de base. ventuellement, on trouve

31 3

324 22 7 13

325 53
mod 1217
330 2 52

354 5 11

87
3
13
Comme 3(p1)/2 1 mod 1217, alors ind(1) = 608. On obtient donc

1 ind(3)

24 608 + 2 ind(2) + ind(7) + ind(13)

25 3 ind(5)
mod 1216.
30 608 + ind(2) + 2 ind(5)

54 608 + ind(5) + ind(11)

87 ind(13)
En rsolvant ce systme, on trouve ind(3) 1, ind(5) 819, ind(13) 87,
ind(2) 216, ind(11) = 1059, ind(7) = 113 mod 1216. Maintenant que
44

lon connat les logarithmes discrets de tous les lments de la base, on doit
calculer 3s 37 pour s = 0, 1, 2, ... jusqu obtenir un produit en facteurs de
la base. Dans lexemple, on trouve
316 37 23 7 11 mod 1217.
Donc, k = ind(37) 3 ind(2) + ind(7) + ind(11) 16 588 mod 1216 et
3588 37 mod 1217.
Le choix de la taille de B est trs important. Si B est trop petit, alors il sera
difficile de trouver des puissances de g qui se factorisent en produit dlments premiers dans B. Si B est trop grand, lalgbre linaire pour trouver
les ind(pj ) devient difficile de manipuler. Correctement implment, cet algorithme a un temps dexcution estim dordre O(exp(C(log p log log p)1/2 ),
ce qui signifie quil est un algorithme sub-exponentiel (un algorithme dont le
temps dexcution peut croire plus que nimporte quel polynme mais reste
plut petit quune exponentielle).

5.2

Attaques sur le problme du logarithme discret

Soient G un groupe ablien fini not additivement et soient P, Q G.


Nous voulons rsoudre le problme kP = Q (nous allons assumer quun tel
entier k existe toujours, cest dire que P gnre Q). Soit N lordre de G
que nous supposerons connu (pour G = E(Fq ) on peut calculer N laide
de Baby Step, Giant Step ou lalgorithme de Schoof). Nous allons dcrire
continuation quelques attaques qui peuvent rsoudre ce problme.
5.2.1

Baby Step, Giant Step

Dans la section 4.2.2 nous avons dj vu la version qui permet de trouver


lordre dun lment. Voici la procdure pour le logarithme discret :

1. On fixe un entier m N .
2. Calculer et stocker les x-coordonnes des iP , avec i = 0, 1, ..., bm/2c.
3. Calculer les points Q jmP pour j = 0, 1, 2, ..., m jusqu ce que la
x-coordonne dun de ces points concide avec celle dun point stock
dans (1).
4. Dcider si Q jmP = iP ou iP .
5. Si iP = Q jmP , nous avons Q = kP avec k i + jm mod N .
Lalgorithme marche car 0 k < m2 et donc on peut crire k = k0 + mk1
avec m/2 < k0 m/2. Ainsi k1 = (k k0 )/m < m + 1/2, do 0 k1 m
45

et en posant i = k0 et j = k1 , la concidence de ltape(3) a lieu. Baby Step,


Giant Step demande un temps de calcul dordre O( N ) et ne fonctionne
bien que pour des N pas trop grands. Nous remarquons que nous navons
pas besoin de connatre lordre exact N de G, nous navons besoin que dune
borne suprieure de N . Or, si E est une courbe elliptique sur Fq , le thorme

de Hasse nous permet dutiliser cette mthode avec m2 q + 1 + 2 q N .


Exemple 12.
Soit G = E(F97 ), o E : y 2 = x3 + 3. Soit P = (1, 2) et Q = (10, 18), on
veut rsoudre kP = Q.
p

1. On fixe m q + 1 + 2 q 10.8489, donc m = 11 suffit.


2. On calcule jP pour j = 0, 1, ..., 5 : 0P = O, P = (1, 2), 2P = (41, 65), 3P =
(71, 9), 4P = (90, 57), 5P = (76, 65).
3. On calcule Q jmP pour j = 0, 1, ..., 11 jusqu ce quil ait une concidence. ventuellement, on va jusqu j = 2 car Q 2mP = (90, 40) a la
mme x-coordonne que 4P .
4. On a Q 2mP = (90, 40) = (90, 57) = 4P , donc i = 4 et j = 2.
5. Finalement, on pose k = i + jm = 4 + 2 11 = 18 et alors 18P = Q.
5.2.2

La mthode de Pollard

Lalgorithme Baby Step, Giant Step cote chre au niveau du stockage.


Un algorithme alternatif bas aussi sur la dtection dune collision, d
Pollard, prend environ le mme nombre dtapes mais rduit le stockage
pratiquement rien. Lalgorithme de Pollard et ses variantes sont les mthodes
plus pratiques utilises actuellement pour rsoudre ECDLP.
Soit G un groupe fini dordre N . Choisissons une fonction f : G G qui se
comporte de faon alatoire, puis commenons avec un lment alatoire P0
et calculons les itrations Pi+1 = f (Pi ). Puisque G est un ensemble fini, il
existe des indices i0 < j0 tels que Pi0 = Pj0 . Donc
Pi0 +l = f l (Pi0 ) = f l (Pj0 ) = Pj0 +l ,
et alors Pi0 +l = Pj0 +l pour tout l 0. Par consquent, la suite {Pi } est priodique avec priode j0 i0 (ou bien un diviseur de j0 i0 ). Lorbite que P0
dcrit par ce procs ressemble la lettre grecque , do le nom de la mthode
(voir figure 5). Si f se comporte vraiment de faon alatoire,
p on peut esprer
une collision Pi0 = Pj0 en un temps constant dordre O( N/2) (voir [8,
theorem 5.3]).

46

Figure 5 Orbite dcrite par la suite {Pi }


Voyons maintenant comment cet algorithme fonctionne. Comme toujours,
on veut rsoudre DLP, cest dire on veut trouver lentier k tel que kP = Q
avec P, Q G en sachant quun tel k existe. On commence par choisir une
fonction f : G G qui agit de faon alatoire (nous ne la prcisons pas
pour linstant). Nous avons besoin dextraire une information qui soit utile
partir dune collision afin de rsoudre DLP. Lide est de partitionner G en s
sous-ensembles S1 , ..., Ss d peu prs la mme taille (dans la pratique s = 3
est frquemment utilis). Nous choisissons 2s entiers alatoires ai , bi modulo
N . Pour i = 1, ..., s nous dfinissons ensuite
Mi = ai P + bi Q.
Nous dfinissons la fonction f par
f (g) = g + Mi si g Si .
Nous pouvons donc penser que f agit de faon alatoire. Finalement, nous
choisissons deux entiers alatoires a0 , b0 modulo N , et posons P0 = a0 P +b0 Q,
ce sera le point de dpart de la suite {Pi = f i (P0 )}. Lorsque nous calculons les
points Pj , nous enregistrerons aussi les coefficients des Pj exprims en termes
de P et Q. Si Pj = uj P + vj Q et Pj+1 = f (Pj ) = Pj + Mi = (uj P + vj Q) +
(ai P + bi Q) = (uj + ai )P + (vj + bi )Q, alors (uj+1 , vj+1 ) = (uj , vj ) + (ai , bi ).
Si nous trouvons une collision Pi0 = Pj0 , nous avons alors
ui0 P + vi0 Q = uj0 P + vj0 Q, do (ui0 uj0 )P = (vj0 vi0 )Q.
Si pgcd(vj0 vi0 , N ) = d, nous avons
k (vj0 vio )1 (ui0 uj0 ) mod N/d.
47

Cela nous donne d choix pour k. Dhabitude, d sera petit (sinon on peut recommencer pour trouver une autre relation entre P et Q), nous pouvons donc
essayer toutes les possibilits jusqu obtenir Q = kP . Pour les applications
cryptographiques, N est souvent un nombre premier, et dans ce cas d = 1.
Si d = N , nous avons une relation triviale et nous devons recommencer
nouveau.
Si on fait limplmentation de cet algorithmetel que nous lavons prsent,
nous nous apercevons quil cote environ O( N ) pour stocker les Pj , ce qui
est similaire au Baby Step, Giant Step. Cependant, R.W. Floyd avait remarqu quil est possible de rduire le cot de stockage en faisant juste un peu
plus de calculs. Lide est que, sil y a une collision pour deux indices qui diffrent par r, alors tous les indices suivants qui diffrent par r donneront aussi
une collision cause de la priodicit. Alors, nous calculons la paire (Pi , P2i )
pour i = 1, 2, ..., mais nous ne gardons que la paire actuelle. Nous pouvons calculer la paire suivante comme suit : (Pi+1 , P2(i+1) ) = (f (Pi ), f 2 (P2i )).
Maintenant, si nous supposons que i i0 est un multiple de r, alors les indices 2i et i diffrent par r et donc il y a une collision : Pi = P2i . Comme
r j0 et i0 < j0 , il suit quil doit y avoir une collision pour i j0 . Soit la
taille de la queue dcrite par la suite {Pi } (penser au dessin de la figure 5), et
= d e
soit sa priode. Sil y a une collision Pi = P2i , alors i = +(i)

car i < . Puisque i < + , il peut tre


montr ([3, theorem 4.47])
que la valeur estime de +
est denviron 1.25 N . Donc, la modification de
Floyd prend environ O( N ) tapes pour trouver une collision, et demande
O(1) au niveau du stockage.
Exemple 13.
Soit G = E(F271 ), o E : y 2 = x3 + x. Soient P = (2, 84) et Q = (55, 6).
On veut trouver k tel que kP = Q (sachant quun tel k existe). On peut
montrer (par Baby Step, Giant Step ou Schoof) que lordre de G est gal
N = 272. On prend s = 3 et on pose
P0 = P + Q, M0 = 2P + Q M2 = 3P + Q M2 = 4P + Q.
Soit f : E(F271 ) E(F271 ) dfinie par
f (x, y) = (x, y) + Mi , si x i mod 3.
Ici, on regarde x comme un entier 0 x < 271 et aprs on le rduit modulo
3. Donc,
P1 = f (P0 ) = P0 + M1 = 4P + 2Q = (32, 3),
48

car P0 = (103, 126) et 103 1 mod 3. Si pour un Pj , f (Pj ) = O, on aurait


une relation aP + bQ = O partir de laquelle on peut trouver k facilement.
On va modifier lgrement cet algorithme, et en plus de chercher une collision
du type Pi0 = Pj0 , on va aussi chercher les collisions du type Pi0 = Pj0 .
Ceci peut se faire en regardons les x-coordonnes des Pj . On trouve ainsi que
P7 = P16 car P7 = (187, 206) et P16 = (187, 65). Pendant les calculs, on a
gard les coefficients de P et Q de lcriture de P7 et P16 , savoir
P7 = 23P + 8Q, P16 = 46P + 17Q.
On va se servir maintenant de la relation P7 = P16 , qui en termes de P et
Q donne
46P + 17Q = 23P 8Q,
donc
69P = 25Q.
Comme pgcd(25, 272) = 1, on peut calculer linverse de -25 modulo 272,
qui est 235, et alors
235 69 19 mod 272.
Par consquent Q = 19P et donc k = 19.
5.2.3

La mthode de Pohlig-Hellman

Comme toujours, nous avons P, Q G et nous voulons trouver un entier


k tel que kP = Q. Supposons que nous connaissons lordre N de P et sa
dcomposition en facteurs premiers
N = q1e1 q2e2 qtet .
Lide cl de Pohlig-Hellman est de trouver k (mod qiei ) pour chaque i et
puis dutiliser le thorme des restes chinois pour trouver k (mod N ). Cest
le contenu du thorme suivant :
Thorme 9. Soit G un groupe, et supposons que lon a un algorithme pour
rsoudre le problme du logarithme discret dans G pour tout lment dont
lordre est une puissance dun premier. Concrtement, si P G est dordre
q e , supposons que lon sait rsoudre kP = Q en O(Sqe ) tapes. (par exemple
pour Baby Step, Giant Step on a Sqe = q e/2 ). Soit maintenant P G un
lment dordre N , et supposons que lon connat
N = q1e1 q2e2 qtet
49

la dcomposition de N en facteurs premiers. Alors, le problme du logarithme


discret kP = Q peut tre rsolu en
!
t
X
O
Sqiei + log N
i=1

tapes en utilisant la procdure suivante :


1. Pour chaque i = 1, ..., t, soient Pi = (N/qiei )P et Qi = (N/qiei )Q. On
observe que Pi est dordre qiei et alors, on se sert de lalgorithme donn
par hypothse pour rsoudre le DLP suivant
kPi = Qi .

(9)

Soit k = ki la solution de (9).


2. On utilise le thorme des restes chinois pour rsoudre
k k1 mod q1e1
..
.
k kt mod qtet
et trouver ainsi k qui rsout le DLP original modulo N .
Dmonstration. Le temps dexcution pour
des logarithmes dis
P les calculs
t
e
crets de ltape (1) est clairement O
i=1 Sqi i . On peut montrer que
ltape (2), par le thorme de restes chinois, prend environ O(log N ), do
lestimation affirme. Rappelons comment trouver un k satisfaisant toutes les
congruences de ltape (2). Comme les N/qiei sont tous premiers entre eux,
par le thorme de Bzout il existe des entiers c1 , ..., ct tels que
c1

et alors k =

t
X

ci ki

i=1

N
N
e1 + + ct et = 1,
q1
qt

(10)

N
satisfait toutes le congruences. Vrifions quil rsout
qiei

le DLP original :
kP =

t
X
i=1

X N
N
ci ki ei P =
ci e i Q =
qi
qi
i=1

t
X
i=1

o la dernire galit est une consquence de (10).

50

N
ci e i
qi

!
Q=Q

Voici un algorithme bas sur le thorme 9 : si k = k0 + k1 q + k2 q 2 +


avec 0 ki < q, est lexpansion de k en base q o q est un premier de la
dcomposition de N . On va valuer k (mod q e ) en trouvant successivement
k0 , k1 , ..., ke1 comme suit :
o
n  
N
1. Calculer T = j q P | 0 j q 1 .


2. Calculer Nq Q = k0 Nq P qui sera un lment de T .
3. Si e = 1 on sarrte. Autrement, on continue.
4. Poser Q1 = Q k0 P .


N
N
5. Calculer q2 Q1 . Ce sera un lment k1 q P de T .
6. Si e = 2, on sarrte. Autrement, on continue.
7. Supposons que lon a calcul k0 , .., kr1 et Q1 , ..., Qr1 .
8. Soit Qr = Qr1 kr q r1 P .


N
Qr = kr Nq P .
9. Dterminer kr tel que qr+1
10. Si r = e 1, on sarrte. Autrement, on revient ltape (7). Si
r = e 1 on a trouv
k k0 + k1 q + k2 q 2 + + ke1 q e1 (mod q e ).
Cet algorithme permet, en effet, de trouver les kr en regardant la liste de
q 1 lments dans T parce que
N
N
N
r1
Q
=
(Q

k
q
P
)
=
(Qr2 kr2 q k2 P kr1 q r1 P )
r
r1
r1
r+1
r+1
r+1
q
q
q


N
N
r
r+1
+ )P = kr
P .
= = r+1 (kr q + kr+1 q
q
q
Observons que nous avons rduit le problme du logarithme discret kPi = Qi
(avec Pi = N/qiei P et Qi = N/qiei Q), qui a un temps dexcution O (Sqei ), au
calcul de e problmes du logarithme discret kP = Q avec P qui est dordre
q, ce qui reprsente une petite amlioration par rapport au thorme 9, parce
que le temps dexcution est maintenant O(ei Sq ).
Si lordre N de P contient des facteurs premiers trop grands, on voit que
Pohlig-Hellman nest pas trs utile car le DLP original ne se divise pas en
DLPs pour lesquels rsoudre le problme est cens tre plus simple. Ainsi,
dans lalgorithme quon a prsent, il devient difficile de lister les lments
de T dans ltape (1). Cependant, si N contient quelques facteurs premiers
petits, on peut extraire une information partielle de la valeur de k. Cette
situation peut tre indsirable en cryptographie. Alors, on choisit trs souvent G de sorte que son ordre soit un nombre premier trs grand. On peut y
51

arriver en prenant un groupe dont lordre est divisible par un premier q trs
grand. On choisit alatoirement un point P1 et on calcule son ordre. Avec
une trs grande probabilit (au moins 1 1/q) lordre de de P1 divise q, donc
avec peu dessais on peut trouver un tel point. Une fois P1 dordre mq trouv,
on pose P = mP1 qui sera dordre q. Aussi grand que q soit, le problme du
logarithme discret sur le sous-groupe cyclique engendr par P est rsistant
lattaque de Pohlig-Hellman.
Exemple 14.
Soit G = E(F433 ) avec E : y 2 = x3 x + 1. Soient P = (416, 393) et
Q = (314, 111). Le point P est dordre N = 400 (qui est dailleurs lordre de
G). On veut rsoudre kP = Q. La dcomposition de N en facteurs premiers
est
400 = 24 52 .
k (mod 24 ) : On calcule dabord T = {O, (309, 0)}. Puisque
(N/2)Q = (309, 0),
on a k0 = 1. Donc,
Q1 = Q k0 P = Q P = (87, 372).
Puisque (N/22 )Q1 = (309, 0), on a k1 = 1. Donc,
Q2 = Q1 k1 2 P = (288, 302).
Puisque (N/23 )Q2 = O, on a k2 = 0. Ainsi,

k = 1 + 1 2 + 0 22 + 3 mod 24 .
k (mod 52 ) : On calcule dabord
T = {O, (418, 377), (192, 196), (192, 237), (418, 56)}.
Puisque (N/5)Q = O, on a k0 = 0. Donc,
Q1 = Q k0 P = Q.
Puisque (N/52 )Q1 = (192, 196), on a k1 = 2. Ainsi,

k = k0 + k1 5 + 10 mod 52 .
On doit ensuite rsoudre les congruences

k 3 (mod 24 )
k 10 (mod 52 )
et on trouve k 35 (mod 400), donc k = 35 et 35P = Q.
52

5.3

Lalgorithme MOV

Les algorithmes de collision, tels que la mthode de Pollard est ses variantes, sont les algorithmes les plus rapides pour rsoudre un ECDLP. Il
arrive nanmoins que pour certaines courbes elliptiques, le ECDLP se rduit
un DLP plus facile rsoudre dans le groupe multiplicative dun corps fini.
Cest lobservation faite par Menezes, Okamoto et Vanstone, qui ont suggr
dutiliser le couplage de Weil comme nous allons dcrire maintenant.
Dfinition 10. Soit Fq un corps fini et soit N 1 un entier. Soit N le
groupe de racines N -imes de lunit dans Fq . Le degr dincrustation de
N dans Fq est le plus petit entier d 1 tel que
N F
.
qd
Comme F
est un groupe cyclique dordre q d 1, ceci est quivalent dire
qd
que d est le plus petit entier que q d 1 mod N .
Lemme 5. Soit E une courbe elliptique sur Fq , soit N 1 un entier tel que
pgcd(q 1, N ) = 1, et soit d le degr dincrustation de N dans Fq . Supposons
que E(Fq ) contient un point dordre N . Alors E[N ] E(Fqd ).
Dmonstration. Soit P E(Fq ) dordre N . On choisit T E[N ] tel que
{P, T } soit une base de E[N ]. Soit q : Fq Fq la q-ime puissance de
lendomorphisme de Frobenius. Comme P E(Fq ), alors q (P ) = P et
q (T ) = aP + bQ avec a, b des entiers dtermins uniquement modulo N .
Soit eN le couplage de Weil, alors
eN (P, T )q = q (eN (P, T )) = eN (q (P ), q (T ))
= eN (P, aP + bT ) = en (P, P )a eN (P, T )b = eN (P, T )b
par le proprits de eN . Par le corollaire 2, eN (P, T ) est une racine N -ime
primitive de lunit, donc lquation ci-dessus implique
b q mod N.
On applique ensuite d fois q T , en sachant quil fixe P , pour arriver
dq (T ) = a(1 + q + q 2 + + q d1 )P + q d T.
Comme d est le degr dincrustation de N dans Fq , d satisfait q d 1 mod N .
Donc, dune part q d T = T . Et dautre part, la relation
(q 1)(1 + q + + q d1 ) = q d 1 0 mod N
53

plus le fait que pcgd(q 1, N ) = 1 impliquent que q 1 est inversible modulo


N et alors la somme entre parenthses vaut 0 modulo N . Finalement,
dq (T ) = T,
et par la proposition 10, T E(Fqd ) = ker(dq 1). Donc, E[N ] E(Fqd ).
Proposition 17. Soit E une courbe elliptique sur Fq , soient P, Q E(Fq )
dordre premier N , et soit d le degr dincrustation de N dans Fq . Supposons
que pgcd(q 1, N ) = 1. Il existe un algorithme qui rduit le ECDLP pour P
et Q un DLP dans F
.
qd
Dmonstration. On cherche un entier k tel que kP = Q. Observons quun
tel k existe si eN (P, Q) = 1. En effet, on choisit T E[N ] tel que {P, T }
forment une base de E[N ], alors comme Q est aussi dordre N , il existent
des entiers k, l tels que Q = kP + lT . Par le thorme 4, eN (P, T ) = est
une racine N -ime primitive de lunit. Donc
1 = eN (P, Q) = eN (P, kP + lT ) = eN (P, P )k eN (P, T )l = l
et cela si et seulement si l 0 mod N , et alors lT = O, do Q = kP . Soit
maintenant d le degr dincrustation de N . Par dfinition = eN (P, T ) F
.
qd
La relation kP = Q devient
eN (Q, T ) = eN (kP, T ) = eN (P, T )k = k ,
et on na plus qu rsoudre lquation ci-dessus dans F
.
qd
Remarque 5.
La difficult de limplmentation de cet algorithme est celle de construire un
T adquat. On doit choisir alatoirement des points T E(Fq ) dordre N
jusqu ce que eN (P, T ) soit une racine N -ime primitive de lunit. Pour
commencer, on calcule n = #E(Fqd ), et on choisit alatoirement S E(Fqd ).
Il y a de fortes chances que T = Nn2 S soit dordre N . En ce qui concerne le
calcul de eN (, ), il existe un algorithme de temps polynmiale qui permet
dy arriver sans problmes (voir [3, sections 5.8.3-5.8.4]).
Si le degr dincrustation d est beaucoup trop grand, alors le problme du
logarithme discret dans F
est plus dur que le problme du logarithme disqd
cret original dans E(Fq ), qui est dordre environ q par le thorme de Hasse.
Cependant, pour les courbes super-singulires on peut prendre d = 2 daprs
la proposition suivante :
54

Proposition 18. Soit E une courbe elliptique sur Fq et supposons que a =


q + 1 #E(Fq ) = 0. Soit N un entier positif. Sil existe P E(Fq ) dordre
N , alors E[N ] E(Fq2 ). En particulier N F
q2 .
Dmonstration. Lendomorphisme de Frobenius satisfait 2q aq + q = 0.
Comme a = 0, alors
2q = q.
Soit S E[N ]. Comme #E(Fq ) = q + 1, et quil existe un point dordre N ,
on a N | q + 1, ou bien q 1 mod N . Par consquent 2q (S) = qS = S.
Par la proposition 10, S E(Fq2 ).
Daprs la proposition 16, on est dans ce cas si q = p 5.
5.3.1

Lattaque de Frey-Rck

Il est possible de modifier le couplage de Weil de faon obtenir un


nouveau couplage qui permet dutiliser lalgorithme MOV plus directement.
Ce couplage, not N , est appele couplage de Tate-Lichtenbaum. Lide
est de considrer lendomorphisme de Frobenius = q sur la courbe E(Fq )
avec N | q 1 et de poser
N (P, Q) = en (P, R (R))
o P E(Fq )[N ], Q E(Fq ) avec R E(Fq ) satisfaisant N R = Q (qui
existe daprs la proposition 3). Cela nous donne un couplage non dgnr
bien dfini
N : E(Fq )[N ] E(Fq )/N E(Fq ) N .
Pour les dtails voir [9, section 3.4]. Si de plus N | #E(Fq ) mais N 2 - #E(Fq ),
et si P est un gnrateur de E(Fq )[N ], alors N (P, P ) est une racine N - ime
primitive de lunit (voir [9, section 5.3.2]).
Ainsi, si on veut rsoudre le problme du logarithme discret Q = kP avec
P E(Fq )[N ], on calcule
N (P, Q) = N (P, P )k .
Comme N (P, P )k est un racine N -ime primitive de lunit, on na plus qu
rsoudre un DLP dans le sous-groupe multiplicatif N de Fq (car que le degr
dincrustation vaut d = 1), ce qui est un problme plus facile que lECDLP
original.

55

Cryptosystmes bass sur les courbes elliptiques

La cryptographie est une discipline de la cryptologie qui cherche protger des messages en assurant leur confidentialit, authenticit et intgrit,
souvent laide des cls. Une cl est un paramtre utilis pour le chiffrement,
dchiffrement ou encore la signature (procs dauthentification) des messages,
entre autres. Les intrts militaires, commerciaux et de protection de la vie
prive, font de la cryptographie un sujet trs important. Un cryptosystme
est un protocole de communication, cest dire, une spcification de rgles
pour un type de communication. Parmi les principaux protocoles cryptographiques nous trouvons les algorithmes de cryptographie symtrique,
qui se fondent essentiellement sur une mme cl pour chiffrer et dchiffrer
un message, et les algorithmes de cryptographie asymtrique, qui se
basent sur le principe de deux cls : une cl publique (comme son nom lindique, elle est rendue publique disposition de quiconque dsire chiffrer un
message) qui permet le chiffrement et une cl prive qui permet le dchiffrement (le message chiffr ne peut donc tre dchiffr quavec la cl prive, qui
doit rester confidentielle). Un inconvnient avec les algorithmes de cryptographie symtrique est que la cl doit rester confidentielle, et doit tre transmise
au correspondant de faon sre. Lexcution de cette manuvre peut tre
difficile si le nombre de correspondants est important, car il faut autant des
cl que des correspondants.
En gnral, les algorithmes asymtriques sont plus lents que les meilleures
algorithmes symtriques et il est donc trs courant dutiliser un algorithme
asymtrique pour tablir une cl affin de lutiliser dans un protocole cryptographique symtrique. Parmi les algorithmes asymtriques les plus utiliss
nous avons : RSA (chiffrement et signature), DSA (signature) et le protocole dchange des cls Diffie-Hellman. Ces trois protocoles cryptographiques se basent sur larithmtique des nombres entiers, voir par exemple
[5, sections 3,4,5].
La scurit dun cryptosystme est subtile et complique dvaluer, et il ne
suffit pas de savoir quun espion nest probablement pas capable de dcrypter
un message, cest dire casser lalgorithme, car il peut arriver que lespion
intercepte le message et renvoie celui-ci avec des erreurs afin de tromper le
vrai rcepteur. Donc, le rcepteur doit tre capable de dcider si le message
a t transmis sans erreur. Il y a beaucoup dautres facteurs qui peuvent
compromettre la scurit dun systme (voir [5, section 2]). Ainsi, nous di56

sons quun protocole cryptographique est sr si ladversaire ou espion ne


peut pas accomplir un certain nombre dobjectifs bien dfinis qui puissent
compromettre le systme dune manire indique. Pour les cryptosystmes
asymtriques, il est assum que ladversaire connat toutes les cls publiques
et les algorithmes du fonctionnement du protocole.
En 1985, Koblitz et Miller ont suggr, de manire indpendante, lusage
des courbes elliptiques en cryptographie. Un des avantages serait labsence
dalgorithmes subexponentiels (comme le Index Calculus) qui permettent de
trouver des logarithmes discrets dans les groupes dfinis par les courbes elliptiques. Elles permettraient aussi de rduire considrablement la taille des cls
pour un niveau de scurit quivalent dautres cryptosystmes tels que le
RSA, ainsi que des implmentations plus rapides et dautres caractristiques
attractives concernant la scurit des dispositifs dont la puissance de calcul
et de stockage est limite, tels que les cartes puce, etc.
Dans ce dernier chapitre, nous allons nous intresser aux cryptosystmes les
plus connus bass sur les courbes elliptiques. Ce seront plutt des analogies
avec les cryptosystmes asymtriques.

6.1

change de cls Diffie-Hellman

Alice et Bob veulent se mettre daccord sur une cl pour pouvoir lutiliser
dans un protocole cryptographique quelconque (par exemple, un protocole
symtrique). Nous supposons que ni Bob ni Alice nont pas t en contact et
le canal de communication entre le deux est public. Lalgorithme de DiffieHellman pour tablir cette cl secrte est le suivant :
1. Alice et Bob se mettent daccord sur un corps fini Fq , une courbe
elliptique E dfinie sur ce corps et un point P E(Fq ). E, Fq et P sont
rendus publiques, et ils reprsentent la cl publique du cryptosystme.
2. Alice choisit secrtement un entier a et calcule A = aP E(Fq ).
Lentier a est la cl prive dAlice.
3. Bob choisit secrtement un entier b et calcule B = bP E(Fq ). Lentier
b est la cl prive de Bob.
4. Alice envoie aP Bob et Bob envoie bP Alice.
5. Alice calcule a(bP ) laide de sa cl prive et Bob calcule de mme
b(aP ) avec sa cl priv. Tous les deux ont alors chang la mme valeur
du point abP .

57

Remarque 6.
Typiquement, le corps fini Fq , la courbe elliptique E et le point P E(Fq )
sont choisis et publis par une agence rgulatrice de standards, comme par
exemple la NIST (National Institute of Standards and Technology) aux
tats Unis. Ces paramtres sont choisis de sorte que ECDLP soit intraitable
par les attaques connues jusqu prsent. Ainsi par exemple, on choisira P
tel que son ordre N soit divisible par un premier suffisamment grand pour
rsister lattaque de Pohlig-Hellman.
Comme le canal travers lequel circulent aP et bP nest pas forcment
scuris, lespionne ve peut les intercepter. De plus , elle connat la cl
publique, cest dire elle connat aussi P . En principe, si ve veut dchiffrer la cl change, elle doit pourvoir rsoudre un des ECDLP suivants :
ka P = A ou kb P = B. Nous supposons que la courbe E rsiste aux attaques
du ECDLP connus. Cependant, un autre facteur pourrait affaiblir le protocole Diffie-Hellman : tant donns P, aP et bP dans E(Fq ), et un point
Q E(Fq ), dterminer si Q = abP ou non. Cest ce que lon appelle le
problme de dcision de Diffie-Hellman, abrg DDH. Daprs [2], ve peut
rsoudre DDH en temps polynmial sur les courbes super-singulires laide
des couplages de Weil et de Tate. Pour un exemple concret, on pourra voir
[9, section 6.2].

6.2

Chiffrement dElGamal

ElGamal est un autre algorithme de cryptographie asymtrique qui repose sur la difficult de rsoudre ECDLP. La procdure est la suivante :
1. Alice et Bob se mettent daccord sur un corps fini Fq , une courbe
elliptique E dfinie sur ce corps et un point P E(Fq ). E, Fq et P sont
rendus publiques, et ils reprsentent la cl publique du cryptosystme.
2. Alice choisit secrtement un entier a et calcule A = aP E(Fq ).
3. Alice rend publique le point A, cest sa cl publique. Elle garde secret
a, cest sa cl prive.
4. Bob exprime son message comme un point M E(Fq ) et choisit un
entier alatoire k. Bob calcule les points B1 = kP E(Fq ) et B2 =
M + kA E(Fq ).
5. Bob envoie para un canal potentiellement non sr (B1 , B2 ) Alice.
6. Alice utilise sa cl prive a pour dchiffrer le message de Bob en calculant B2 aB1 = M .

58

Comme pour Diffie-Hellman, (Fq , E, P ) sont choisis par une entit rgulatrice et au moment o Alice diffuse sa cl publique, nimporte qui peut lui
envoyer un message. Le fait que Bob envoie une paire (B1 , B2 ) de points rend
lalgorithme un peu coteux, du fait de lutilisation de 2 bit pour un 1 bit de
message envoy. Il est important pour Bob de choisir un entier alatoire k
chaque fois quil souhaite envoyer un message Alice, autrement lespionne
ve peut dcider si k a chang ou pas en interceptant deux paires successives
(B1 , B2 ) et (B10 , B20 ) envoys par Bob. Si B1 = B10 , ve sait que Bob a utilis
le mme k et elle calcule B2 B20 = M M 0 . Donc, si M est connu, par
exemple si M est un annonce de soldes rendu publique le jour suivant, ve
peut trouver M 0 = M B2 + B20 .

6.3

Signature digitale

Il est possible que le canal de communication entre Bob et Alice soit compromis sans que ni lun ni lautre puissent sen douter. Lattaquant (ve) est
capable, en principe, dobserver et dintercepter les messages dune victime
lautre, et peut se faire passer pour un dentre eux pour lire et modifier les
messages envoys. Ce type dattaque est connu comme lattaque de lhomme
du milieu ou MITM (man in the middle) pour ses initiales en anglais. Dcrivons le droulement de cette attaque sur un protocole asymtrique o Alice
et Bob veulent changer des donnes confidentielles et lespionne ve, veut les
intercepter. Ils possdent chacun une cl prive As , Bs et Es respectivement
et une cl publique Ap , Bp et Ep respectivement. Admettons quve soit en
mesure de modifier les changes entre Bob et Alice :
Bob envoie sa cl publique Bp Alice. ve lintercepte, et renvoie sa
propre cl publique Ep Alice en se faisant passer par Bob.
Lorsque Alice veut envoyer un message Bob elle utilise, sans le savoir,
la cl publique de ve.
Alice chiffre son message avec la cl publique dve et lenvoie celui
quelle croit tre Bob.
ve intercepte le message et le dchiffre avec sa cl prive Es , puis elle
modifie son contenu et le renvoie Bob en utilisant la cl publique Bp
de celui-ci.
Bob dchiffre le message avec sa cl prive Bs et ne se doute de rien.
Le schma prsent ci-dessus est une des faons possible de compromettre la
confidentialit de messages envoys. Il existe plusieurs solutions pour viter
cette attaque, lune dentre elles est la signature digitale, qui est un mcanisme
permettant de garantir lintgrit du message et den authentifier lauteur,
59

par analogie avec la signature manuscrite dun document papier.

6.4

Signature dElGamal

Une fonction de hachage cryptographique H : G1 G2 entre deux


ensembles quelconques, est une fonction qui calcule lempreinte dun message, cest--dire elle prend une entre de taille arbitraire, parfois de millions
de bits, et en sort une sortie de taille fix, par exemple 160 bits. En cryptographie cet objet doit avoir les proprits suivantes :
1. Pour une entre m, H(m) se calcule rapidement.
2. Pour un y, il est trs difficile de trouver un m tel que H(m) = y. On
dit que H est primage rsistante.
3. Il est difficile de trouver deux m1 , m2 distincts tels que H(m1 ) =
H(m2 ). On dit que H est rsistante aux collisions.
Le proprits 2 et 3 ont pour objectif dempcher un attaquant de falsifier la signature. La NIST propose dans FIPS 180-4, Secure Hash Standard,
quelques fonctions de hachage.
Lalgorithme dElGamal, adapt aux courbes elliptiques, permet la signature digitale dun message via la procdure suivante :
1. Alice tablit une cl publique (Fq , E, A, B, f ) o E est une courbe
elliptique dfinie sur le corps fini Fq telle que ECDLP est difficile de rsoudre, A E(Fq ) dordre premier N suffisamment grand, f : E(Fq )
Z une fonction et B = aA E(Fq ) un point quelle calcule avec sa cl
prive a Z. La fonction f na pas de proprits spciales sauf que
son image doit tre grand et seulement un nombre petit dentres produisent la mme sortie. Par exemple, si Fq = Fp avec p premier, on
pourra utiliser f (x, y) = x avec 0 x < p.
2. Alice reprsente son message comme un entier m (si m > N , elle choisit
une courbe plus grande ou bien une fonction de hachage)
3. Elle choisit alatoirement un entier k avec (k, N ) = 1 et calcule R =
kA.
4. Alice calcule s k 1 (m af (R)) (mod N ) et signe le message en
envoyant (m, R, s) Bob.
Dans cette algorithme, le message m nest pas gard secret. Si Alice veut
chiffrer m, elle doit utiliser un autre protocole cryptographique. Bob vrifie
la signature du message comme suit :
60

1. Bob se procure la cl publique (Fq , E, A, B, f ) dAlice.


2. Il calcule V1 = f (R)B + sR et V2 = mA.
3. Si V1 = V2 , il valide la signature.
En effet, si la signature est valide, alors V1 = V2 car
V1 = f (R)B + sR = f (R)aA + skA = f (R)aA + (m af (R))A = mA = V2 .
Il est important que le problme du logarithme discret soit difficile rsoudre pour la courbe choisie. Autrement, lespionne ve peut utiliser A et
B pour trouver la cl prive a dAlice. De mme, ve peut utiliser A et R
pour calculer k et ensuite, en supposant quelle soit capable dintercepter le
message sign (m, R, s), elle se sert de la relation ks m af (R) (mod N )
pour calculer a. Si d = pgcd(f (R), N ) 6= 1, alors af (R) m ks (mod N )
possde d solutions, et donc aussi petit que d soit, ve peut essayer toutes
les possibilits jusqu obtenir B = aA.
Alice doit donc garder a et k secret, et elle doit aussi utiliser chaque signature un k diffrent. Si deux messages m et m0 utilisent le mme k pour
leur signature (m, R, s) et (m0 , R0 , s0 ) respectivement, ve peut le savoir en
constatant que R = R0 = kA. Donc, si elle soustrait les relations
ks m af (R) (mod N )
ks0 m0 af (R) (mod N ),
elle obtient k(s s0 ) m m0 (mod N ). Soit d = pgcd(s s0 , N ) = d. Il y
a d valeurs possibles pour k , et si d nest pas trop grand, ve peut essayer
chacune delles jusqu ce que R = kA. Une fois quelle connat k, elle peut
trouver a comme avant.
En principe, ve na pas besoin de rsoudre de logarithmes discrets afin de
falsifier la signature dun message. Tout ce dont ve a besoin est de produire
R et s tels que V1 = V2 soit satisfaite. Cela la mne lquation
sR = mA f (R)B.
Ce problme semblerait aussi difficile que le problme du logarithme discret. Au fait, si h est un entier avec pgcd(h, N ) = 1 et supposons aussi que
pgcd(f (R), N ) = 1, alors si
R0 = hR,
s0 sf (R0 )f (R)1 h1 (mod N ),
m0 mf (R0 )f (R)1 (mod N ),
61

le message (m0 , R0 , s0 ) est valid. En effet,


V1 = f (R0 )B + s0 R0
= f (R0 )aA + sf (R0 )f (R)1 h1 hR

= f (R0 ) aA + sf (R)1 kA
= f (R0 ) aA + f (R)1 (m af (R))A
= mf (R0 )f (R)1 A = m0 A = V2 .

En gnral, il est peu probable que m0 soit un message avec une vraie signification, donc cette procdure ne compromet pas la scurit du systme. Par
contre, Alice peut se servir dune fonction de hachage et signer son message
par
(H(m), RH , sH ).
Par le proprits dune fonction de hachage, il sera trs difficile pour ve de
falsifier le message. Pour R0 et m0 elle doit trouver s0 tel que f (R0 )B + s0 R0 =
H(m0 )A, ce qui est infaisable car H est primage rsistante. Comme avant,
Bob calculera V1 = f (RH )B + sH RH et V2 = H(m)A et vrifiera si V1 = V2
pour valider le message.

6.5

Le protocole de signature ECDSA

Elliptic Curve Digital Signature Algorithm (ECDSA), est un algorithme


de signature numrique cl publique, qui fait appel la cryptographie sur les
courbes elliptiques. Il a t propos en 1992 par Scoot Vanstone, en rponse
un appel doffre pour les signatures numriques du NIST. La procdure est
la suivante :
1. Alice et Bob se mettent daccord sur un corps fini Fq , une courbe
elliptique E dfinie sur ce corps, et un point P E(Fq ) dordre N
premier.
2. Alice choisit un entier a, ce sera sa cl prive. Elle calcule A = aP
quelle fait publique. A sera la cl publique de vrification dAlice.
3. Alice choisit un document digital m mod N signer. En pratique,
Alice appliquera une fonction de hachage H m. Supposons que lon
soit dans ce cas. Alice choisit aussi de faon alatoire un entier k mod
N . Elle calcule kP et pose
s1 x(kP ) (mod N ) et s2 (H(m) + as1 )k 1 (mod N ).
Alice signe le document par (s1 , s2 ).
62

4. Bob se sert de la cl publique (Fq , E, P, N ) et calcule


1
v1 = H(m)s1
2 (mod N ) et v2 s1 s2 (mod N ).

Ensuite, il calcule v1 P + v2 A E(Fq ) et vrifie que


x (v1 P + v2 A) s1 (mod N )
pour valider la signature.
Vrifions que cela fonctionne :
1
v1 P + v2 A = H(m)s1
2 P + s1 s2 aP
= s1
2 (H(m) + s1 aP )
= kP.

Donc
x (v1 P + v2 A E(Fq )) x(kP ) s1 (mod N ).
En pratique lECDSA repose souvent sur des courbes recommandes par les
entits rgulatrices. La NIST recommande par exemple quinze courbes elliptiques diffrentes sur 10 corps diffrents. Cinq courbes sont recommandes
sur cinq corps finis dordre p premier Fp , nommes P-192, P-224, P-256, P384, P-521, dix courbes sur cinq corps finis de la forme F2m .
Choisir k de faon alatoire chaque nouvelle signature est important, pour
les mmes raisons que nous avons dj examin dans la signature dElGamal. De mme, appliquer une fonction de hachage H au message m, permet
de mieux protger le systme contre les attaques de falsification. Donc, la
scurit de lECDSA repose comme toujours sur la difficult de rsoudre le
problme du logarithme discret, et les meilleurs algorithmes connus (si la
courbe elliptique en question nest pas susceptible dautres attaques trs
particulires elles, telles
que les courbes anomalies) comme Baby Step,
Giant Step sont en O( N ). Lavantage avec lECDSA est quelle utilise des
tailles des cls plus rduites et que les oprations de signature et de chiffrement sont plus rapides. LECDSA est notamment utilis pour scuriser et
vrifier les transactions des Bit coins.

6.6

Cryptographie base sur les couplages

Les couplages sur les courbes elliptiques ont aussi des applications intressantes en cryptographie. Nous avons vu dans la section 3.2 le couplage de
Weil
eN : E[N ] E[N ].
63

Mais pour quil soit vraiment utile en cryptographie, nous aimerions quil
nagisse pas de faon triviale sur E[N ]. Or, ce nest pas le cas car eN (T, T ) = 1
pour tout T E[N ] daprs le thorme 4. Une faon de contourner ce
problme est dutiliser une courbe qui admet un homomorphisme sur lui
mme
:EE
tel que {T, (T )} soit une base de E[N ]. A partir de cet homomorphisme,
nous dfinissons
eN : E[N ] E[N ] N
(T, S) 7 eN (T, (S)).
Ce couplage de Weil modifi a la proprit que eN (T, T ) est une racine N ime primitive de lunit (proposition 2), mais aussi celles de bilinarit de
eN .
Exemple 15.
Soit E : y 2 = x3 + b dfinie sur Fq avec q 2 (mod 3) et b un carr dans F
q .
Soit Fq une racine cubique primitive de lunit. Remarquons que 6 Fq
car 3 - q 1. Lapplication
: E(Fq ) E(Fq )
(x, y) 7 (x, y)
Est un homomorphisme tel que si T E(Fq ) est dordre exacte N et 3 - N ,
alors {T, (T )} est une base de E[N ].
est bien dfinie car 3 = 1 et un calcul direct montre que cest bien un
homomorphisme. Soient u, v des entiers tels que uT + v(T ) = 0. Donc,
(vT ) = v(T ) = uT . Si vT = O, alors uT = O et u v 0 (mod N ).
Si au contraire vT 6= O, alors vT = (x, y) avec x, y Fq , et donc (vT ) =
(x, y)
E(Fq ). Puisque 6 Fq , ncessairement x = 0 et alors vT =
(0, b) qui est un point dordre 3, ce qui nest pas possible car 3 - N .
Finalement {T, (T )} est une base de E[N ] et satisfait que eN (T, T ) =
eN (T, (T )) et une racine N -ime primitive de lunit.
6.6.1

Le triple change de Diffie-Hellman

La procdure suivante permet trois personnes Alice, Bob et Carlos dchanger une cl dont la valeur nest pas connue lavance par eux :

64

1. Les trois se mettent daccord sur un corps fini Fq , une courbe elliptique
E dfinie sur ce corps, un premier N , et un point T E[N ] pour lequel
il existe un couplage bilinaire sur E
h, i : E[N ] E[N ] N
avec la proprit que hT, T i est une racine N -ime primitive de lunit.
2. Alice, Bob et Carlos choisissent leurs cls prives a, b et c respectivement. Alice calcule A = aT , Bob calcule B = bT , et Carlos calcule
C = cT .
3. Ils rendent publiques les valeurs A, B et C.
4. Alice calcule hB, Cia , Bob calcule hA, Cib , et Carlos calcule hA, Bic .
5. Ils partagent maintenant la mme valeur hT, T iabc .
Si lespionne ve est capable de rsoudre ECDLP, alors elle peut casser le
triple change de Diffie-Hellman. ve peut par exemple, trouver la cl secrte
dAlice en rsolvant A = aT . Elle peut aussi casser le systme si elle peut
rsoudre le problme du logarithme discret dans F
q . Comme elle connat les
valeurs de T, A et B, elle peut rsoudre le DLP
hT, T im = hA, Bi
pour trouver la valeur m = ab, et en dduire la valeur partage par Alice,
Bob et Carlos en calculant hT, Ciab = hT, cT iab = hT, T iabc .
Le DLP dans F
q peut tre rsolu en un temps subexponentiel, donc il est
actuellement plus facile de rsoudre le DLP dans F
q que ECDLP dans E(Fq ),
car on ne connat pas dalgorithme subexponentiel pour ECDLP (les meilleurs
tant Baby Step, Giant Step et Pohlig-Hellman). Donc, pour une bonne implmentation de cet algorithme, il faut choisir q suffisamment grand pour
rsister aux attaques du DLP dans F
q .
6.6.2

Un algorithme de signature digital avec un couplage

La procdure suivante permet Alice de signer un document digital et


Bob de valider la signature :
1. Alice et Bob se mettent daccord sur un corps fini Fq , une courbe
elliptique E dfinie sur ce corps, un premier N , et un point T E[N ]
pour lequel il existe un couplage biliaire sur E
h, i : E[N ] E[N ] N
avec la proprit que hT, T i est une racine N -ime primitive de lunit.
65

2. Alice choisit secrtement un entier a, puis calcule A = aT E[N ].


Lentier a est sa cl prive de signature.
3. Alice rend publique A. Ceci est sa cl publique de vrification.
4. Alice choisit un document digital D E[N ] (en pratique ce sera un
hachage de D). Elle calcule et publie la signature
S = aD.
5. Bob valide la signature si hA, Di = hT, Si.
La procdure fonctionne car dune part hA, Di = haT, Di = hT, Dia , et
dautre part hT, Si = hT, aDi = hT, Dia .

66

Conclusions

Nous pourrions continuer dcrire dautres cryptosystmes bass sur les


courbes elliptiques et les couplages ainsi que dautres belles applications de
ces objets. Nous nous arrtons ici. Cependant, tout ce que nous avons vu
nous en a donn un aperu intressant tant du point de vue mathmatique
que pratique. La cryptographie est un sujet important cause de ses vastes
domaines dutilisation, et cest aussi un sujet de recherche trs actif. Un
domaine particulirement intressant est celui de la scurit nationale dont
lobjectif et de lutter contre les risques et menaces qui peuvent porter atteinte
la vie dune nation. En 2013, la NSA (National Security Agence) aux tats
Unis a t accuse de mener des oprations de surveillance lectronique et de
collecte de mta donnes grande chelle sur le rseau Internet, suite aux
rvlations dEdward Snowden, ancien ex-consultant.
Daprs ces rvlations, la NSA utilise une technique appele Upstream (suite
des logiciels qui permettent de surveiller et dintercepter les donnes qui circulent par les infrastructures internet, comme le XKeyscore) pour collecter les
mtadonnes. Ensuite elle se sert dun logiciel plus puissant appele PRISM
ou US-948XN qui lui permet davoir un accs plus direct aux donnes hberges par les gants des nouvelles technologies amricain, selon Snowden
Google, Facebook, YouTube, Microsoft, Yahoo !, Skype, AOL et Apple seraient concerns. Mme certains fournisseurs de logiciels seraient en partenariat avec la NSA, et permettraient celle-ci dintgrer ds la conception
des leurs logiciels, des portes drobes (backdoors) pour avoir accs aux programmes et surveiller ce que fait lutilisateur lgitime.
Dans ce sens, la NSA chercherait avoir le contrle sur ltablissement
des normes nationales et internationales des diffrents protocoles. La NSA
disposerait donc aussi des logiciels comme Bullrun pour casser ou affaiblir
des systmes des chiffrement, comme le VPN (Virtual Private Network) qui
permet le contact entre des ordinateurs distincts ou le SSL (Secure Sockets
Layer) qui est un protocole de scurisation des changes sur Internet. Bullrun
aurait donc pour objectif de rendre accessible en clair de nombreuses communications pourtant chiffres. En particulier, daprs Snowden, le protocole
Dual-EC-DRBG (Dual Elliptic Curve Deterministic Random Bit Generator)
qui est bas sur le problme du logarithme discret sur les courbes elliptiques,
a t affaibli et contiendrait une porte drobe pour la NSA. Selon lui, la
NSA aurait dvelopp sa propre version de ce standard, lequel sous label
du NIST (National Institute of Standards and Technology) amricain, a t
approuv pour un usage mondial en 2006.
67

Dans tout ce contexte de surveillance, il semblerait que nous ne pouvons


mme pas faire confiance la cryptographie. Cest pourtant faux, les mthodes de communication scurises restent les plus fiables. Nous assumons
que les entits comme le NSA ne sont pas capables, mme par force brute,
de casser le chiffrement de tous les systmes. Par exemple, Snowden a pu
communiquer avec les journalistes et dvoiler certaines de ses rvlations en
utilisant un service de courrier scurise appel Lavabit, qui tait bas sur des
algorithmes de cryptographie asymtrique dont la solidit tait, selon les experts, impossible briser. En aot 2013 Lavabit a t oblig de fermer suite
aux refus de se soumettre des ordres du gouvernement amricain.
Cest donc l que les nouvelles mthodes de chiffrement, changes des cls,
etc sont importantes. Les courbes elliptiques soffrent comme une alternative qui permet dconomiser la taille des cls et tout cela avec un niveau de
scurit plus lev. Par exemple, une cl en courbes elliptiques de 256-bits
donne la mme scurit quune cl RSA 3072-bits, ce qui permet de proposer un encodage plus puissant qui en plus est rapide. Ainsi, les fournisseurs
de certificats SSL proposent aussi des cls cryptographiques au format ECC
(Elliptic Curve Cryptography). Un autre exemple est le logiciel miniLock,
qui est un outil de chiffrement alternatif bas sur les courbes elliptiques qui
permet de chiffrer nimporte quelle donne de manire trs simple, sans que
lutilisateur ait grer des cls prives.
Le choix dune bonne courbe elliptique pour tre utilise en pratique doit
satisfaire quelques conditions, notamment quelle soit rsistante aux attaques
du ECDLP connus (voir [5, section 6.4]). En 2005 la NSA a publi sa Suite
B, qui est une srie dalgorithmes cryptographiques et de recommandations
de scurit. Elle inclut notamment les protocoles dchanges Diffie-Hellman
ECDH (Elliptic Curve Diffie-Hellman) et lalgorithme de signature digital
ECDSA.
Depuis quelques annes, nous assistons donc une poque o les courbes
elliptiques ne sont pas seulement intressantes du point de vue thorique
(notamment pour leur connexion avec le dernier de thorme de Fermat,
appel maintenant thorme de Wiles-Fermat) mais aussi pratique. Dans ce
mmoire, nous avons plutt examin les aspects mathmatiques de ces objets
au prix de ne pas trop avoir discut en dtail de la complexit des algorithmes
cryptographiques sous-jacents et de leurs implmentations. Cependant, nous
avons quand mme russi ntre objectif principal, qui tait de nous initier
dans ce sujet, et cela nous a ouvert la voie pour continuer dcouvrir dautres
68

aspects lis aux courbes elliptiques.

69

Rfrences
[1] Laurent Dewaghe. Priodicit des polynmes de division sur une courbe
elliptique. Math. Res. Lett., page 887891, 2007.
[2] Steven D. Galbraith and Victor Rotger. Easy decision-diffie-hellman
groups. LMS J. Comput. Math. 7, pages 201218, 2004.
[3] Jeffrey Hoffstein, Jill Pipher, and Joseph H. Silverman. An Introduction
to Mathematical Cryptography. Springer, 2008.
[4] Marc Joye. Introduction lmentaire la thorie des courbes elliptiques.
Technical report, Universit Catholique de Louvain, 1995.
[5] Neal Koblitz and Alfred J. Menezes. A survey of public-key cryptosystems. AMS subject classifications. 94A60, 11T71, 14G50, 68P25, page
128, 2004.
[6] Serge Lang. Complex Analysis, 4th edition. Springer, 1999.
[7] John J. McGee. Ren schoofs algorithm for determining the order of the
group of points on an elliptic curve over a finite field. Masters thesis,
Virginia Polytechnic Institute and State University, 2006.
[8] Joseph H. Silverman. The Arithmetic of Elliptic Curves. Springer, 2nd
ed. 2009 edition.
[9] Lawrence C. Washington. Elliptic curves : number theory and cryptography. CRC Press Web, 2008, second edition.

70

Das könnte Ihnen auch gefallen