* Rework bw6-761 to bw6-767 use bls12-381 instead of 377 for test imports fix the inline comments with correct name and params Set the right base field Equation for base curve is y2 = x3 + 1 fill in pairing params adapt sage scripts with correct moduli calculate the correct cubic non residue correct the parameter B in the curve equation remove the specialized method for mult by nonresidue nonresidue is two, so default will be doubling calculate more correct parameters for fq3 `TRACE_MINUS_ONE_DIV_TWO` and `QUADRATIC_NONRESIDUE_TO_T` compute the right fq3 & fp6 frobenious coefficients calculate the cofactor for g1 use the g1 generator from gnark's fork use the right g2 equation g2 cofactor is slightly smaller than g1 cofactor get the g2 generators from gnark's fork update g1 and g2 curve info in the comments fill in `COFACTOR_INV` value for g1 fill in `COFACTOR_INV` value for g2 * update module description author information 2-adicity of the scalar field * update changelog * remove trailing comma * remove todo * 2nd loop count is x^3 - x^2 - x * Revert "2nd loop count is x^3 - x^2 - x" This reverts commit 2b323db3baff06a6077fd7505ff489fa31be7282. * fix comment regarding non-residue * first loop count should be X * 1. Generic BW6 params added to BW6-761 2. Curve specific hard part of the final exp moved from algebra * 1. Generic BW6 params added to BW6-767 2. Miller loop params changed to the "unoptimized" version * cargo fmt * changelog updated * X_MINUS_1_DIV_3 added to BW6Config * imports fixed --------- Co-authored-by: mmagician <marcin.gorny.94@protonmail.com>
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