Twisted Edwards curves #
This file contains the curve-level definitions that are independent of any specific Elligator.
A twisted Edwards curve with coefficients a and d has affine equation
a * x^2 + y^2 = 1 + d * x^2 * y^2.
The definitions are made over a commutative ring. Finiteness and the hypotheses used by a particular cryptographic construction belong in that construction, rather than in the definition of a curve or its affine points.
Mathlib's elliptic-curve API is currently centred on Weierstrass models. A twisted Edwards model
is not itself a Weierstrass equation, so using WeierstrassCurve.Affine.Equation here would require
a birational coordinate conversion and extra invertibility hypotheses. The API below follows the
same useful separation as that API: coefficients, an affine equation, a set of affine points, and
a bundled point type.
A bundled affine point on a twisted Edwards curve.
Instances For
The neutral affine coordinate pair (0, 1). It lies on every twisted Edwards equation.
Equations
Instances For
The neutral point, bundled as an affine point of E.
Equations
Instances For
The usual coefficient conditions for a nonsingular twisted Edwards model over a field.
Keeping this predicate separate from TwistedEdwardsCurve permits the equation and its points to
be used over more general rings and also permits partially specified curves during developments.