pub struct TorsionImageWitness {
pub domain: Curve,
pub codomain: Curve,
pub degree: u64,
pub torsion_order: u64,
pub basis: (Point, Point),
pub images: (Point, Point),
}Expand description
A re-checkable witness that an isogeny φ: E → E' is consistently specified by its action on an
N-torsion basis — the SIDH/SIKE public-key format.
Fields§
§domain: Curve§codomain: Curve§degree: u64The isogeny degree deg φ.
torsion_order: u64The torsion order N (coprime to deg φ, so φ restricts to an isomorphism on E[N]).
basis: (Point, Point)A basis (P, Q) of E[N].
images: (Point, Point)The published images (φ(P), φ(Q)) on the codomain.
Implementations§
Source§impl TorsionImageWitness
impl TorsionImageWitness
Sourcepub fn verify(&self) -> bool
pub fn verify(&self) -> bool
Re-check the witness from scratch, trusting nothing about how it was produced:
(P, Q)is a genuine basis ofE[N]— the Weil pairinge_N(P,Q)is a primitiveNth root of unity (the points are independent, so the pairing is non-degenerate);(φP, φQ)lie on the codomain and are killed byN;- the isogeny-compatibility law
e_N(φP, φQ) = e_N(P, Q)^{deg φ}holds.
Trait Implementations§
Source§impl Clone for TorsionImageWitness
impl Clone for TorsionImageWitness
Source§fn clone(&self) -> TorsionImageWitness
fn clone(&self) -> TorsionImageWitness
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for TorsionImageWitness
impl RefUnwindSafe for TorsionImageWitness
impl Send for TorsionImageWitness
impl Sync for TorsionImageWitness
impl Unpin for TorsionImageWitness
impl UnsafeUnpin for TorsionImageWitness
impl UnwindSafe for TorsionImageWitness
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more