Courbes elliptiques

_images/elliptic.png

Forme courte de Weierstrass et forme de Montgomery

courbeElliptique(a, b, p)

définition d’une courbe elliptique de Weierstrass d’équation \(y^2 = x^3 + ax +b\) sur \(\mathbb{F}_p\) avec p premier.

Paramètres
  • a – un entier

  • b – un entier

  • p – un nombre premier

Exemple :

simula : E1 = courbeElliptique(1, 1, 11)

E1 = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : E2 = courbeElliptique(2, 3, 7)

E2 = Courbe elliptique definie par : y^2 = x^3 + 2*x + 3 sur F_7
courbeMontgomery(B, A, p)

définition d’une courbe elliptique de Montgomery d’équation \(By^2 = x^3 + Ax^2 + x\) sur \(\mathbb{F}_p\) avec p premier.

Paramètres
  • B – un entier

  • A – un entier

  • p – un nombre premier

Exemple :

simula : E = courbeMontgomery(2, 5, 19)

E = Courbe elliptique sous forme de Montgomery definie par : 2y^2 = x^3 + 5*x^2 + x sur F_19

simula : E2 = courbeMontgomery(2, -1, 11)

E2 = Courbe elliptique sous forme de Montgomery definie par : 2y^2 = x^3 + 10*x^2 + x sur F_11
jInvariant(E)

le j-invariant de la courbe elliptique \(E\).

Paramètres

E – une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : jInvariant(E)

9

Points d’une courbe elliptique

tousLesPoints(E)

l’ensemble des points de la courbe elliptique \(E\).

Paramètres

E – une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : tousLesPoints(E)

(0, 1)
(3, 3)
(4, 6)
(6, 6)
(4, 5)
(8, 2)
(3, 8)
(1, 5)
(2, 0)
(8, 9)
(1, 6)
(0, 10)
Point_infini
(6, 5)
pointInfini(E)

le point à l’infini de la courbe elliptique \(E\).

Paramètres

E – une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)
simula : Poo = pointInfini(E)

Poo = Point_infini
point(E, x, y)

le point \((x, y)\) de la courbe elliptique \(E\).

Paramètres
  • E – une courbe elliptique

  • x – un entier

  • y – un entier

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : P = point(E, 4, 5)

P = (4, 5)
estPoint(P, G)

renvoie “OUI” si \(P\) appartient é math:G et “NON” dans le cas contraire.

Paramètres
  • P – un point d’une courbe elliptique

  • G – un ensemble de points

Exemple :

simula : E = courbeElliptique(1, 1, 11)
simula : P = point(E, 4, 5) # (4,5) est un point de E

P = (4, 5)
opposer(P)

renvoie \(-P\) (le point opposé de P).

Paramètres

P – un point d’une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : P = point(E, 4, 5)

P = (4, 5)

simula : opposer(P)  # -P

(4, 6)
groupeEngendre(P)

le sous-groupe engendré par le point \(P\) (d’une courbe elliptique \(E\)).

Paramètres

P – un point d’une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : P = point(E, 4, 5)

P = (4, 5)

simula : G = groupeEngendre(P)

G = Sous groupe  engendre par (4, 5) de la courbe elliptique  d equation : y^2 = x^3 + x + 1.
ordre(G)

l’ordre de \(G\)

Paramètres

G – un sous groupe d’une courbe elliptique ou un point

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : ordre(E)

14

simula : P = point(E, 4, 5)

P = (4, 5)

simula : ordre(P)

14

Note

\(G\) peut étre une courbe elliptique, un sous-groupe d’une courbe elliptique ou un point d’une courbe elliptique math:E.

Opérations sur les courbes elliptiques

doublement(P)

renvoie \(2P = P + P\)

Paramètres

P – un point d’une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : P = point(E, 4, 5) # (4,5) est un point de

P = (4, 5)

simula : Q = doublement(P) # 2P

(6, 5)
multiplier(P, k)

renvoie \(kP=\begin{cases}\underset{k \text{ fois }}{\underbrace{P+P+...+P}} & \text{ si } k>0\\ \underset{-k \text{ fois }}{\underbrace{-P-P-...-P}} & \text{ si } k<0 \end{cases}\).

Paramètres
  • P – un point d’une courbe elliptique

  • k – un entier

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : P = point(E, 4, 5) # (4,5) est un point de E

P = (4, 5)

simula : Q = multiplier(P, 5) # 5P

(8, 2)
additionner(P, Q)

renvoie \(P + Q\)

Paramètres
  • P – un point d’une courbe elliptique

  • Q – un point d’une courbe elliptique

Exemple :

simula : E = courbeElliptique(1, 1, 11)

E = Courbe elliptique definie par : y^2 = x^3 + x + 1 sur F_11

simula : P = point(E, 4, 5) # (4,5) est un point de E

P = (4, 5)

simula : Q = point(E, 8, 2) # (8,2) est un point de E

Q = (8, 2)

simula : additionner(P, Q) # P+Q

(3, 8)

Note

Vous pouvez utiliser les symboles tels que +, - etc pour faire des opérations sur les points.

simula : P = point(E, 4, 5) ; Q = point(E, 8, 2); P + Q

P + Q = (3, 8)

simula : 5P

(8, 2)

simula : -P

(4, 6)