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 
#2379 in Cryptography
477 downloads per month
Used in nimue
22KB
167 lines
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 primeorder curve Vesta, generated by Daira Hopwood. The main feature of this curve is that it forms a cycle with Pallas, i.e. its scalar field and base field respectively are the base field and scalar field of Pallas.
Curve information: Vesta:
 Base field: q = 28948022309329048855892746252171976963363056481941647379679742748393362948097
 Scalar field: r = 28948022309329048855892746252171976963363056481941560715954676764349967630337
 Curve equation: y^2 = x^3 + 5
 Valuation(q  1, 2) = 32
 Valuation(r  1, 2) = 32
Dependencies
~5.5MB
~112K SLoC