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 
#1789 in Cryptography
121,143 downloads per month
Used in 18 crates
(11 directly)
110KB
1.5K
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 a twisted Edwards curve whose base field is the scalar field of the curve BLS12377. This allows defining cryptographic primitives that use elliptic curves over the scalar field of the latter curve. This curve was generated as part of the paper [BCGMMW20, “Zexe”].
Curve information:
 Base field: q = 8444461749428370424248824938781546531375899335154063827935233455917409239041
 Scalar field: r = 2111115437357092606062206234695386632838870926408408195193685246394721360383
 Valuation(q  1, 2) = 47
 Valuation(r  1, 2) = 1
 Curve equation: ax^2 + y^2 =1 + dx^2y^2, where
 a = 1
 d = 3021
Dependencies
~5.5MB
~111K SLoC