5 unstable releases
0.4.0  Jan 17, 2023 

0.4.0alpha.2  Dec 28, 2022 
0.4.0alpha.1  Nov 29, 2022 
0.3.0  Jun 6, 2021 
0.2.0  Mar 25, 2021 
#2282 in Cryptography
8,632 downloads per month
Used in 23 crates
(13 directly)
500KB
3K
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 arkworksrs/algebra repository.
BLS12381 and embedded curves
arkbls12381
: Implements the BLS12381 pairingfriendly curvearkedonbls12381
: Implements a Twisted Edwards curve atop the scalar field of BLS12381arkedonbls12381bandersnatch
: Implements Bandersnatch, another Twisted Edwards curve atop the scalar field of BLS12381
BLS12377 and related curves

arkbls12377
: Implements the BLS12377 pairingfriendly curve 
arkedonbls12377
: Implements a Twisted Edwards curve atop the scalar field of BLS12377 
arkbw6761
: Implements the BW6761 pairingfriendly curve, which is a curve whose scalar field equals the base field of BLS12377 
arkedonbw6761
: Implements a Twisted Edwards curve atop the scalar field of BW6761 
arkcp6782
: Implements the CP6782 pairingfriendly curve, which is a curve whose scalar field equals the base field of BLS12377 
arkedoncp6782
: Implements a Twisted Edwards curve atop the scalar field of CP6782. This is the same curve as inarkedonbw6761
BN254 and related curves
arkbn254
: Implements the BN254 pairingfriendly curvearkedonbn254
: Implements a Twisted Edwards curve atop the scalar field of BN254
MNT298 cycle of curves and related curves
arkmnt4298
: Implements the MNT4298 pairingfriendly curve. This curve forms a pairingfriendly cycle with MNT6298arkmnt6298
: Implements the MNT6298 pairingfriendly curve. This curve forms a pairingfriendly cycle with MNT4298arkedonmnt4298
: Implements a Twisted Edwards curve atop the scalar field of MNT4298
MNT753 cycle of curves and related curves
arkmnt4753
: Implements the MNT4753 pairingfriendly curve. This curve forms a pairingfriendly cycle with MNT6753arkmnt6753
: Implements the MNT6753 pairingfriendly curve. This curve forms a pairingfriendly cycle with MNT4753arkedonmnt4753
: Implements a Twisted Edwards curve atop the scalar field of MNT4753
Pasta cycle of curves
arkpallas
: Implements Pallas, a primeorder curve that forms an amicable pair with Vestaarkvesta
: Implements Vesta, a primeorder 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 BLS12381. This allows defining cryptographic primitives that use elliptic curves over the scalar field of the latter curve. This curve was generated by Sean Bowe, and is also known as Jubjub.
Curve information:
 Base field: q = 52435875175126190479447740508185965837690552500527637822603658699938581184513
 Scalar field: r = 6554484396890773809930967563523245729705921265872317281365359162392183254199
 Valuation(q  1, 2) = 32
 Valuation(r  1, 2) = 1
 Curve equation: ax^2 + y^2 =1 + dx^2y^2, where
 a = 1
 d = (10240/10241)
Dependencies
~5.5MB
~106K SLoC