3 releases

0.4.0 Jan 17, 2023
0.4.0-alpha.2 Dec 28, 2022
0.4.0-alpha.1 Nov 29, 2022

#2347 in Cryptography

Download history 162/week @ 2023-11-23 107/week @ 2023-11-30 144/week @ 2023-12-07 100/week @ 2023-12-14 67/week @ 2023-12-21 105/week @ 2023-12-28 116/week @ 2024-01-04 123/week @ 2024-01-11 108/week @ 2024-01-18 170/week @ 2024-01-25 91/week @ 2024-02-01 141/week @ 2024-02-08 170/week @ 2024-02-15 168/week @ 2024-02-22 165/week @ 2024-02-29 97/week @ 2024-03-07

632 downloads per month
Used in 12 crates (5 directly)

MIT/Apache

8KB
94 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 the curve25519 Montgomery curve.

Curve information:

  • Base field: q = 57896044618658097711785492504343953926634992332820282019728792003956564819949
  • Scalar field: r = 7237005577332262213973186563042994240857116359379907606001950938285454250989
  • Curve equation: B * y^2 = x^3 + A * x^2 + x, where
    • A = 486662
    • B = 1

Dependencies

~5.5MB
~111K SLoC