5 unstable releases
0.4.0 | Jan 17, 2023 |
---|---|
0.4.0-alpha.2 | Dec 28, 2022 |
0.4.0-alpha.1 | Nov 29, 2022 |
0.3.0 | Jun 6, 2021 |
0.2.0 | Mar 25, 2021 |
#842 in Cryptography
117,280 downloads per month
Used in 268 crates
(21 directly)
96KB
1K
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 arkworks-rs/algebra repository.
BLS12-381 and embedded curves
ark-bls12-381
: Implements the BLS12-381 pairing-friendly curveark-ed-on-bls12-381
: Implements a Twisted Edwards curve atop the scalar field of BLS12-381ark-ed-on-bls12-381-bandersnatch
: Implements Bandersnatch, another Twisted Edwards curve atop the scalar field of BLS12-381
BLS12-377 and related curves
-
ark-bls12-377
: Implements the BLS12-377 pairing-friendly curve -
ark-ed-on-bls12-377
: Implements a Twisted Edwards curve atop the scalar field of BLS12-377 -
ark-bw6-761
: Implements the BW6-761 pairing-friendly curve, which is a curve whose scalar field equals the base field of BLS12-377 -
ark-ed-on-bw6-761
: Implements a Twisted Edwards curve atop the scalar field of BW6-761 -
ark-cp6-782
: Implements the CP6-782 pairing-friendly curve, which is a curve whose scalar field equals the base field of BLS12-377 -
ark-ed-on-cp6-782
: Implements a Twisted Edwards curve atop the scalar field of CP6-782. This is the same curve as inark-ed-on-bw6-761
BN254 and related curves
ark-bn254
: Implements the BN254 pairing-friendly curveark-ed-on-bn254
: Implements a Twisted Edwards curve atop the scalar field of BN254
MNT-298 cycle of curves and related curves
ark-mnt4-298
: Implements the MNT4-298 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT6-298ark-mnt6-298
: Implements the MNT6-298 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT4-298ark-ed-on-mnt4-298
: Implements a Twisted Edwards curve atop the scalar field of MNT4-298
MNT-753 cycle of curves and related curves
ark-mnt4-753
: Implements the MNT4-753 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT6-753ark-mnt6-753
: Implements the MNT6-753 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT4-753ark-ed-on-mnt4-753
: Implements a Twisted Edwards curve atop the scalar field of MNT4-753
Pasta cycle of curves
ark-pallas
: Implements Pallas, a prime-order curve that forms an amicable pair with Vestaark-vesta
: Implements Vesta, a prime-order curve that forms an amicable pair with Pallas
lib.rs
:
This library implements the BLS12_377 curve generated in [BCGMMW20, “Zexe”]. The name denotes that it is a Barreto--Lynn--Scott curve of embedding degree 12, defined over a 377-bit (prime) field. The main feature of this curve is that both the scalar field and the base field are highly 2-adic. (This is in contrast to the BLS12_381 curve for which only the scalar field is highly 2-adic.)
Curve information:
- Base field: q = 258664426012969094010652733694893533536393512754914660539884262666720468348340822774968888139573360124440321458177
- Scalar field: r = 8444461749428370424248824938781546531375899335154063827935233455917409239041
- valuation(q - 1, 2) = 46
- valuation(r - 1, 2) = 47
- G1 curve equation: y^2 = x^3 + 1
- G2 curve equation: y^2 = x^3 + B, where
- B = Fq2(0, 155198655607781456406391640216936120121836107652948796323930557600032281009004493664981332883744016074664192874906)
Dependencies
~5MB
~105K SLoC