#finite-fields #elliptic-curves

no-std ark-ed-on-mnt4-753

A Twisted Edwards curve defined over the scalar field of the MNT4-753 curve

5 unstable releases

0.4.0 Jan 17, 2023
0.4.0-alpha.2 Dec 28, 2022
0.4.0-alpha.1 Nov 29, 2022
0.3.0 Jun 6, 2021
0.2.0 Mar 25, 2021

#2458 in Cryptography

Download history 2/week @ 2023-11-02 2/week @ 2023-11-09 7/week @ 2023-11-16 5/week @ 2023-11-23 22/week @ 2023-11-30 5/week @ 2023-12-14 10/week @ 2023-12-21 6/week @ 2023-12-28 72/week @ 2024-01-18 70/week @ 2024-01-25 11/week @ 2024-02-01 12/week @ 2024-02-08 64/week @ 2024-02-15

184 downloads per month

MIT/Apache

43KB
364 lines

Notice

This repository is no longer maintained, and PRs to add or modify curves should instead be made against arkworks-rs/algebra; all the curves implemented here have moved to the curves folder of that repository.

Curve implementations

This repository contains implementations of some popular elliptic curves. The curve API implemented here matches the curve traits defined here in the arkworks-rs/algebra repository.

BLS12-381 and embedded curves

  • ark-bls12-377: Implements the BLS12-377 pairing-friendly curve

  • ark-ed-on-bls12-377: Implements a Twisted Edwards curve atop the scalar field of BLS12-377

  • ark-bw6-761: Implements the BW6-761 pairing-friendly curve, which is a curve whose scalar field equals the base field of BLS12-377

  • ark-ed-on-bw6-761: Implements a Twisted Edwards curve atop the scalar field of BW6-761

  • ark-cp6-782: Implements the CP6-782 pairing-friendly curve, which is a curve whose scalar field equals the base field of BLS12-377

  • ark-ed-on-cp6-782: Implements a Twisted Edwards curve atop the scalar field of CP6-782. This is the same curve as in ark-ed-on-bw6-761

  • ark-bn254: Implements the BN254 pairing-friendly curve
  • ark-ed-on-bn254: Implements a Twisted Edwards curve atop the scalar field of BN254
  • ark-grumpkin: Implements the Grumpkin curve. A curve that forms a cycle with bn254.
  • ark-mnt4-298: Implements the MNT4-298 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT6-298
  • ark-mnt6-298: Implements the MNT6-298 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT4-298
  • ark-ed-on-mnt4-298: Implements a Twisted Edwards curve atop the scalar field of MNT4-298
  • ark-mnt4-753: Implements the MNT4-753 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT6-753
  • ark-mnt6-753: Implements the MNT6-753 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT4-753
  • ark-ed-on-mnt4-753: Implements a Twisted Edwards curve atop the scalar field of MNT4-753

Pasta cycle of curves

  • ark-pallas: Implements Pallas, a prime-order curve that forms an amicable pair with Vesta
  • ark-vesta: Implements Vesta, a prime-order curve that forms an amicable pair with Pallas

lib.rs:

This library implements a twisted Edwards curve whose base field is the scalar field of the curve MNT4-753. This allows defining cryptographic primitives that use elliptic curves over the scalar field of the latter curve.

Curve information:

  • Base field: q = 41898490967918953402344214791240637128170709919953949071783502921025352812571106773058893763790338921418070971888458477323173057491593855069696241854796396165721416325350064441470418137846398469611935719059908164220784476160001
  • Scalar field: r = 5237311370989869175293026848905079641021338739994243633972937865128169101571388346632361720473792365177258871486054600656048925740061347509722287043067341250552640264308621296888446513816907173362124418513727200975392177480577
  • Valuation(q - 1, 2) = 30
  • Valuation(r - 1, 2) = 7
  • Curve equation: ax^2 + y^2 =1 + dx^2y^2, where
    • a = -1
    • d = 317690 mod q

Dependencies

~5.5MB
~111K SLoC