3 releases
0.4.0  Jan 17, 2023 

0.4.0alpha.2  Dec 28, 2022 
0.4.0alpha.1  Nov 29, 2022 
#2532 in Cryptography
799 downloads per month
Used in 12 crates
(5 directly)
8KB
94 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 curve25519 Montgomery curve.
Curve information:
 Base field: q = 57896044618658097711785492504343953926634992332820282019728792003956564819949
 Scalar field: r = 7237005577332262213973186563042994240857116359379907606001950938285454250989
 Curve equation: B * y^2 = x^3 + A * x^2 + x, where
 A = 486662
 B = 1
Dependencies
~5.5MB
~111K SLoC