#cryptography #finite-fields #elliptic-curves

ark-ed-on-mnt4-298

A Twisted Edwards curve defined over the scalar field of the MNT4-298 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

#1138 in Cryptography

Download history 26/week @ 2022-11-28 34/week @ 2022-12-05 339/week @ 2022-12-12 337/week @ 2022-12-19 55/week @ 2022-12-26 67/week @ 2023-01-02 224/week @ 2023-01-09 136/week @ 2023-01-16 65/week @ 2023-01-23 69/week @ 2023-01-30 64/week @ 2023-02-06 17/week @ 2023-02-13 72/week @ 2023-02-20 64/week @ 2023-02-27 64/week @ 2023-03-06 70/week @ 2023-03-13

271 downloads per month

MIT/Apache

34KB
354 lines

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-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-298. This allows defining cryptographic primitives that use elliptic curves over the scalar field of the latter curve.

Curve information:

  • Base field: q = 475922286169261325753349249653048451545124878552823515553267735739164647307408490559963137
  • Scalar field: r = 118980571542315331438337312413262112886281219744507561120271964887686106682370032123932631
  • Valuation(q - 1, 2) = 30
  • Valuation(r - 1, 2) = 1
  • Curve equation: ax^2 + y^2 =1 + dx^2y^2, where
    • a = -1
    • d = 4212 mod q

Dependencies

~4.5MB
~95K SLoC