It's a repository with some of the cryptographic implementations I have done for learning purposes.
Until then by solving cryptography challenges on CryptoHack and Root-Me.
Currently, I'm reading "An Introduction to Mathematical Cryptography" (Second edition), and in order to apply the mathematical knowledge and get a better understanding, I decided to create this repository.
Learn, understand, and create project is a long process, which is why the repository will contain more implementation month after month.
Note
Work in progress
- AES (ECB / CBC / CFB / OFB / CTR)
Note
Work in progress
-
Menezes-Vanstone variant of the Elliptic Elgamal PKC
- Diffie-Hellman MITM
- The Boneh Franklin Id Based PKC
Note
Work in progress
-
Elgamal Digital Signatures
-
Digital Signature Algorithm (DSA)
-
Elliptic Curve Digital Signature Algorithm (ECDSA)
-
NTRU Modular Lattice Signature Scheme (NTRUMLS)
Note
Basic knowledge -> Need to learn more
-
Shamir's secret sharing
-
Blakley's scheme
Note
Need to learn
-
ANSI X9.17 PRNG
-
DSA PRNG
-
RSAREF PRNG
-
fsrRand
Note
One-Time pad can be really simple to code, so I did it in assembly
Note
Need to learn
Note
Ongoing learning of lattices to understand homomorphic encryption
Note
Ongoing learning of lattices and learning with errors to understand Post-Quantum cryptography
Note
Work in progress
-
Euclidean algorithm
-
Shanks’s Babystep–Giantstep Algorithm
-
Chinese Remainder Theorem
-
Pohlig-Hellman Algorithm
-
Miller–Rabin test for composite numbers
-
Pollard’s p − 1 factorization algorithm
-
Gaussian elimination
-
Fermat's Factorization
-
Kraitchik’s Factorization
-
A three step factorization procedure (Relation Building / Elimination / GCD Computation)
-
Quadratic sieve
-
Index calculus
-
Pollard's
$\rho$ Method
- Addition
- Double-and-Add Algorithm
- Lenstra's Elliptic Curve Factorization Algorithm
- Miller algorithm
- Weil Pairing
- MOV algorithm
-
Create a Lattice class
-
Create a Knapsack class
-
Gram-Schmidt Algorithm
-
Hadamard ratio
-
Babai's closest vertex algorithm
-
Babai's closest plane algorithm
-
Gaussian Lattice reduction
-
LLL algorithm
Note
Need to learn