#cryptography #finite-fields #elliptic-curves

ark-bls12-381

The BLS12-381 pairing-friendly elliptic curve

3 releases (breaking)

Uses new Rust 2021

0.4.0-alpha.1 Nov 29, 2022
0.3.0 Jun 6, 2021
0.2.0 Mar 25, 2021

#937 in Cryptography

Download history 1724/week @ 2022-08-15 2705/week @ 2022-08-22 2189/week @ 2022-08-29 2664/week @ 2022-09-05 1858/week @ 2022-09-12 2287/week @ 2022-09-19 2549/week @ 2022-09-26 3039/week @ 2022-10-03 3541/week @ 2022-10-10 5281/week @ 2022-10-17 4539/week @ 2022-10-24 5232/week @ 2022-10-31 3422/week @ 2022-11-07 4631/week @ 2022-11-14 4892/week @ 2022-11-21 9000/week @ 2022-11-28

22,148 downloads per month
Used in 29 crates (26 directly)

MIT/Apache

465KB
2.5K SLoC

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

Dependencies

~2–2.7MB
~60K SLoC