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 
#260 in Cryptography
219,302 downloads per month
Used in 384 crates
(58 directly)
480KB
3K
SLoC
Notice
This repository is no longer maintained, and PRs to add or modify curves should instead be made against arkworksrs/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 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 BN254arkgrumpkin
: Implements the Grumpkin curve. A curve that forms a cycle with 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 the BLS12_381 curve generated by Sean Bowe. The name denotes that it is a BarretoLynnScott curve of embedding degree 12, defined over a 381bit (prime) field. This curve was intended to replace the BN254 curve to provide a higher security level without incurring a large performance overhead.
Curve information:
 Base field: q = 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787
 Scalar field: r = 52435875175126190479447740508185965837690552500527637822603658699938581184513
 valuation(q  1, 2) = 1
 valuation(r  1, 2) = 32
 G1 curve equation: y^2 = x^3 + 4
 G2 curve equation: y^2 = x^3 + Fq2(4, 4)
Dependencies
~5.5MB
~106K SLoC