#elliptic-curve #finite-fields

no-std ark-bw6-761

The BW6-761 pairing-friendly elliptic curve

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

#2064 in Cryptography

Download history 30885/week @ 2023-11-20 32649/week @ 2023-11-27 29614/week @ 2023-12-04 23690/week @ 2023-12-11 21077/week @ 2023-12-18 7148/week @ 2023-12-25 13577/week @ 2024-01-01 20152/week @ 2024-01-08 29112/week @ 2024-01-15 26361/week @ 2024-01-22 25083/week @ 2024-01-29 24713/week @ 2024-02-05 28067/week @ 2024-02-12 35384/week @ 2024-02-19 33048/week @ 2024-02-26 26256/week @ 2024-03-04

123,702 downloads per month
Used in 7 crates (2 directly)

MIT/Apache

115KB
1.5K SLoC

Notice

This repository is no longer maintained, and PRs to add or modify curves should instead be made against arkworks-rs/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 arkworks-rs/algebra repository.

BLS12-381 and embedded 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 in ark-ed-on-bw6-761

  • ark-bn254: Implements the BN254 pairing-friendly curve
  • ark-ed-on-bn254: Implements a Twisted Edwards curve atop the scalar field of BN254
  • ark-grumpkin: Implements the Grumpkin curve. A curve that forms a cycle with bn254.
  • ark-mnt4-298: Implements the MNT4-298 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT6-298
  • ark-mnt6-298: Implements the MNT6-298 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT4-298
  • ark-ed-on-mnt4-298: Implements a Twisted Edwards curve atop the scalar field of MNT4-298
  • ark-mnt4-753: Implements the MNT4-753 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT6-753
  • ark-mnt6-753: Implements the MNT6-753 pairing-friendly curve. This curve forms a pairing-friendly cycle with MNT4-753
  • ark-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 Vesta
  • ark-vesta: Implements Vesta, a prime-order curve that forms an amicable pair with Pallas

lib.rs:

This library implements the BW6_761 curve generated in [EG20]. The name denotes that it is a curve generated using the Brezing--Weng method, and that its embedding degree is 6. The main feature of this curve is that the scalar field equals the base field of the BLS12_377 curve.

Curve information:

  • Base field: q = 6891450384315732539396789682275657542479668912536150109513790160209623422243491736087683183289411687640864567753786613451161759120554247759349511699125301598951605099378508850372543631423596795951899700429969112842764913119068299
  • Scalar field: r = 258664426012969094010652733694893533536393512754914660539884262666720468348340822774968888139573360124440321458177
  • valuation(q - 1, 2) = 1
  • valuation(r - 1, 2) = 46

G1 curve equation: y^2 = x^3 + ax + b, where

  • a = 0,
  • b = -1,

G2 curve equation: y^2 = x^3 + Ax + B

  • A = 0
  • B = 4

Dependencies

~5MB
~92K SLoC