Skip to content

PayneJoe/crypto_research

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crypto_research

crypto research stuffs from numeric arithmetics to ZK-applied protocols all written with dirty hands.


Code Structure

  • docs

    • bls12_381 note and python versioned bls12-381 implementation [$\color{green}\checkmark$]

    • on_proving_pairings note and python versioned bn254 implementation [$\color{green}\checkmark$]

  • ecc

    • integer_arithmetic

      • basic arithmetics on big integers

        • add/substruction/multiplication/division [$\color{green}\checkmark$]

        • euclid extended gcd/lehmer extended gcd [$\color{green}\checkmark$]

    • finite_field_arithmetic

      • basic arithmetics on base field $F_q$ and its instantiation

        • add/substruction/multiplication/division/inversion/modulo/exponentiation/sqrt/square [$\color{green}\checkmark$]
        • field implementation for pallas/vasta curves [$\color{green}\checkmark$]
      • basic arithmetics on extension field $F_{q^k}$ of $F_q$

        • quadratic extension $F_{q^2}/F_{q}$ [$\color{green}\checkmark$]

        • cubic extension $F_{q^3}/F_{q}$ [$\color{green}\checkmark$]

        • cyclotomic [$\color{green}\checkmark$]

        • twist/untwist $\Phi: F_{q^k} \mapsto F_{q^{k / d}}$ [Ongoing]

        • frobenius map [Ongoing]

        • field implementation for BLS12/MNT/BN pairing-family curves [$\color{green}\checkmark$]

    • elliptic_curve_arithmetic

      • neccessary arithmetics on elliptic curves over base field $F_q$

        • add/doubling/scalar_mul/... [$\color{green} \checkmark$]
      • neccessary arithmetics on pairing-friendly elliptic curves over extension field $F_{q^k}$ and its instantiation

        • add/doubling/scalar_mul/... [$\color{green} \checkmark$]

        • BLS12/MNT/BN pairing-friendly curves [$\color{green} \checkmark$]

    • hyperelliptic_curve_arithmetic [TODO]

    • special_curve_arithmetic [TODO]

    • pairings

      • Weil Pairing [$\color{green}\checkmark$]

      • Tate Pairing [Ongoing]

      • Ate Pairing [Ongoing]

      • Optimal Ate Pairings [Ongoing]

    • ...

  • hash

    • shake128(variable output length) [$\color{green}\checkmark$]
    • poseidon [TODO]
  • pcs

    • sparse_polynomial [$\color{green}\checkmark$]
    • IPA [$\color{green} \checkmark$]
    • KZG [Ongoing]
  • recursive snark ...


Notes

Pairings


Credits

[1] Handbook of Elliptic and Hyperelliptic Curve Cryptography

[2] Guide to Elliptic Curve Cryptography

[3] Pairings For Beginners

[4] Algorithms for Modern Hardware

[5] IPA PCS

[6] Guide to Pairing-based Cryptography

[7] A note on twists for pairing friendly curves

[8] Pairing-Friendly Elliptic Curves of Prime Order

[9] Optimal Pairings

[10] On the Computation of the Optimal Ate Pairing at the 192-bit Security Level

[11] Efficient Final Exponentiation via Cyclotomic Structure for Pairings over Families of Elliptic Curves

[12] Faster Squaring in the Cyclotomic Subgroup of Sixth Degree Extensions

[13] A Guide to Plane Algebraic Curves

About

crypto research stuffs from numerics to ZK applied protocols all written with dirty hands

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published