A collection of cryptographic and zero-knowledge algorithms implemented from scratch in Python and Rust.
This focuses mainly on implementations from Proofs, Arguments and Zero Knowledge (By Justin Thaler).
This focuses mainly on traditional cryptography with a bit of blockchain cryptography
- Hash-based Message Authentication Code (HMAC)
- Diffie Hallman Key Exchange
- RSA
- Secure Hashing Algorithm 1 (SHA-1)
- Secure Hashing Algorithm 2 224 (SHA2-224)
- Secure Hashing Algorithm 2 256 (SHA2-256)
- Secure Hashing Algorithm 2 384 (SHA2-384)
- Secure Hashing Algorithm 2 512 (SHA2-512)
- Secure Hashing Algorithm 3 224 (SHA3-224)
- Secure Hashing Algorithm 3 256 (SHA3-256)
- Secure Hashing Algorithm 3 384 (SHA3-384)
- Secure Hashing Algorithm 3 512 (SHA3-512)
- Elliptic Curve Diffie-Hellman (ECDH)
- Elliptic Curve Digital Signature Algorithm (ECDSA)
- Pedersen Commitments using Modular Exponentiation
- Pedersen Commitments using Elliptic Curve Cryptography
- Basic Polynomial Commitment using Modular Exponentiation
- Basic Polynomial Commitment using Elliptic Curve Cryptography
- Basic Trusted Setup using Modular Exponentiation
- Basic Trusted Setup using Elliptic Curve Cryptography
This serves as a learning material for me in my journey to becoming proficient at cryptography. I hope it helps you learn as well.
You probably know this, but please DO NOT USE IN PRODUCTION.