1 unstable release

0.4.0 Jan 17, 2023

#536 in Cryptography

Download history 13/week @ 2023-01-26 17/week @ 2023-02-02 56/week @ 2023-02-09 46/week @ 2023-02-16 59/week @ 2023-02-23 22/week @ 2023-03-02 51/week @ 2023-03-09 19/week @ 2023-03-16 14/week @ 2023-03-23 17/week @ 2023-03-30 34/week @ 2023-04-06 13/week @ 2023-04-13 53/week @ 2023-04-20 5206/week @ 2023-04-27 7335/week @ 2023-05-04 6006/week @ 2023-05-11

18,600 downloads per month
Used in 2 crates (via fastcrypto)

MIT/Apache

8KB
84 lines

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-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 secp256r1 curve. Source: https://neuromancer.sk/std/secg/secp256r1

Curve information:

  • Base field: q = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
  • Scalar field: r = 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
  • a = -3
  • b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b
  • Curve equation: y^2 = x^3 + ax + b

Dependencies

~4.5MB
~97K SLoC