This is a small library I write as a parallel of studying algebra and number theory related to cryptography it's not suitable for production usage and I doubt it ever will.
It aims to be literate.
It's a WIP and might take time to be finished.
crypto/schnorrpackage implements Vanilla EC-Schnorr.crypto/bppackage implements Bulletproofs.
bfpackage implements binary fields.ecpackage implements elliptic curve primitives and a few cryptographic curves.ntpackage implements number theoretic algorithms and primitives using arbitrary precision arithmetic.ffpackage implements generic finite fields and field elements.grouppackage implements some custom groups such as Zp,GF(2),GF(8)...polypackage implements polynomials over rings.pairingpackage implements bilinear pairings.
- Handbook Of Applied Cryptography
- Guide To Elliptic Curve Cryptography
- Pairings For Begineers
- Pairings For Cryptographers
- Implementing Pairing Based Cryptography
- Modern Computer Algebra
Implement operations on arbitrary precision integers and tests.Implement finite field elements.- Optimized version instead of wrapping bigint
Implement polynomial ops.- Optimized FFT instead of naive Eval/Mul algorithms
Implement elliptic curves.- Add projective coordinates support
- Support typed curves (Weirstrass,Edwards)
- Implement optimized formulas for Weirstrass curves
- Implement binary fields.
- Implement number theoretic transform.
- Implement groups for char 2 fields.
- Implement pairings.