The Edwards curve used by Elligator 1 #
This file specializes the general Elligator.TwistedEdwardsCurve API to the untwisted Edwards
curve and parameter produced by Elligator 1.
The general curve definition deliberately does not depend on a finite field, its cardinality, or
the Elligator parameter s; those assumptions occur only in the specialization proving that
d s is a valid coefficient.
Main results #
curve: the untwisted Edwards curve with the paper's coefficientd(s).curve_isValid: the Elligator hypotheses imply thatd(s)is a valid Edwards coefficient.EOverF: the set of affine field-valued points satisfying the Elligator 1 curve equation.EOverF_eq_affinePoints:EOverFagrees with the general twisted-Edwards affine-point set.
References #
See [bernstein2013a], Section 3.
The general Edwards curve with coefficient d.
This is an alias for the a = 1 specialization of a twisted Edwards curve.
Instances For
edwardsCurveEquation is the standard Edwards curve equation.
The subtype argument is preserved for compatibility. New generic developments should normally
use (edwardsCurve d).Equation x y, and carry coefficient validity separately via
TwistedEdwardsCurve.IsValid.
Equations
Instances For
The Edwards curve selected by the Elligator 1 parameter s.
Equations
Instances For
EOverF is the set of affine points on the Edwards curve selected by Elligator 1.
See EOverF_eq_affinePoints for the generic curve view.
Equations
- Elligator.Elligator1.EOverF sq_ne_pm_two hq_card hq_mod = {p : F × F | Elligator.Elligator1.edwardsCurveEquation p.1 p.2 ⟨Elligator.Elligator1.d s, ⋯⟩}