pyecsca.ec.model module

Provides curve model classes for the supported curve models.

class pyecsca.ec.model.CurveModel[source]

Bases: object

Model(form) of an elliptic curve.

name: str
shortname: str
coordinates: MutableMapping[str, CoordinateModel]
parameter_names: List[str]
coordinate_names: List[str]
equation: Expression
ysquared: Expression
base_addition: List[Module]
base_doubling: List[Module]
base_negation: List[Module]
base_neutral: List[Module]
full_weierstrass: List[Module]
to_weierstrass: List[Module]
from_weierstrass: List[Module]
class pyecsca.ec.model.ShortWeierstrassModel[source]

Bases: EFDCurveModel

Short-Weierstrass curve model.

\[y^2 = x^3 + a x + b\]
name: str
shortname: str
coordinates: MutableMapping[str, CoordinateModel]
parameter_names: List[str]
coordinate_names: List[str]
equation: Expression
ysquared: Expression
base_addition: List[Module]
base_doubling: List[Module]
base_negation: List[Module]
base_neutral: List[Module]
full_weierstrass: List[Module]
to_weierstrass: List[Module]
from_weierstrass: List[Module]
class pyecsca.ec.model.MontgomeryModel[source]

Bases: EFDCurveModel

Montgomery curve model.

\[B y^2 = x^3 + A x^2 + x\]
name: str
shortname: str
coordinates: MutableMapping[str, CoordinateModel]
parameter_names: List[str]
coordinate_names: List[str]
equation: Expression
ysquared: Expression
base_addition: List[Module]
base_doubling: List[Module]
base_negation: List[Module]
base_neutral: List[Module]
full_weierstrass: List[Module]
to_weierstrass: List[Module]
from_weierstrass: List[Module]
class pyecsca.ec.model.EdwardsModel[source]

Bases: EFDCurveModel

Edwards curve model.

\[x^2 + y^2 = c^2 (1 + d x^2 y^2)\]
name: str
shortname: str
coordinates: MutableMapping[str, CoordinateModel]
parameter_names: List[str]
coordinate_names: List[str]
equation: Expression
ysquared: Expression
base_addition: List[Module]
base_doubling: List[Module]
base_negation: List[Module]
base_neutral: List[Module]
full_weierstrass: List[Module]
to_weierstrass: List[Module]
from_weierstrass: List[Module]
class pyecsca.ec.model.TwistedEdwardsModel[source]

Bases: EFDCurveModel

Twisted-Edwards curve model.

\[a x^2 + y^2 = 1 + d x^2 y^2\]
name: str
shortname: str
coordinates: MutableMapping[str, CoordinateModel]
parameter_names: List[str]
coordinate_names: List[str]
equation: Expression
ysquared: Expression
base_addition: List[Module]
base_doubling: List[Module]
base_negation: List[Module]
base_neutral: List[Module]
full_weierstrass: List[Module]
to_weierstrass: List[Module]
from_weierstrass: List[Module]