Courbes elliptiques¶
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)