Curvas elípticas¶
Operaciones con curvas elípticas sobre cuerpos de característica dos
Este módulo permite trabajar con curvas elípticas:
Supersingulares
No supersingulares
Además se definde la clase Char2Curve que implementa curvas no supersingulares usando las coordenadas de López-Dahab
Ejemplo de uso para definir la curva K409:
from ycurve.ecc.ecc import Char2NonSupersingularCurve
from ycurve.ecc.point import AffinePoint
from ycurve.ffields.ffield import F2m, coefs_pos_to_int
power = 409
irreducible = coefs_pos_to_int([409, 87, 0])
a = F2m(0, power, irreducible)
b = F2m(1, power, irreducible)
gx = F2m(k409_b_x, power, irreducible)
gy = F2m(k409_b_y, power, irreducible)
g = AffinePoint(gx, gy)
c = Char2NonSupersingularCurve(a, b)
c.set_order(0x7ffffffffffffffffffffffffffffffffffffffffffffffffffe5f83b2d4ea20400ec4557d5ed3e3e7ca5b4b5c83b8e01e5fcf) # noqa: E501
c.set_base_point(g)
return (c, power, irreducible)
Lista de funciones y clases de curvas elípticas
:
Interfaz para trabajar con curvas elípticas. |
|
Curvas no supersingulares de la forma y^2 + xy = x^3 + ax^2 + b |
|
Curvas no supersingulares de la forma y^2 + xy = x^3 + ax^2 + b con coordenadas de Lopez Dahab |
|
Curvas supersingulares de la forma y^2 + cy = x^3 + ax^2 + b |
- class Curve[fuente]¶
Interfaz para trabajar con curvas elípticas.
- abstract double(p: ycurve.ecc.point.Point) → ycurve.ecc.point.Point[fuente]¶
Realiza la operación 2P para un punto P de la curva
- abstract add(p: ycurve.ecc.point.Point, q: ycurve.ecc.point.Point) → ycurve.ecc.point.Point[fuente]¶
Realiza la operación P + Q para dos puntos P, Q de la curva
- class Char2NonSupersingularCurve(a: ycurve.ffields.ffield.F2m, b: ycurve.ffields.ffield.F2m)[fuente]¶
Curvas no supersingulares de la forma y^2 + xy = x^3 + ax^2 + b
- Variables
a – Coeficiente a de la ecuación
b – Coeficiente b de la ecuación
- class Char2Curve(a: ycurve.ffields.ffield.F2m, b: ycurve.ffields.ffield.F2m)[fuente]¶
Curvas no supersingulares de la forma y^2 + xy = x^3 + ax^2 + b con coordenadas de Lopez Dahab
- Variables
a – Coeficiente a de la ecuación
b – Coeficiente b de la ecuación
- class Char2SupersingularCurve(a: ycurve.ffields.ffield.F2m, b: ycurve.ffields.ffield.F2m, c: ycurve.ffields.ffield.F2m)[fuente]¶
Curvas supersingulares de la forma y^2 + cy = x^3 + ax^2 + b
- Variables
a – Coeficiente a de la ecuación
b – Coeficiente b de la ecuación
c – Coeficiente c de la ecuación