pwzuytx stands for kryptos, greek word meaning hidden. Surprise this repository is about cryptography !
For the moment I'm reading anything I can gather about several systems of cryptography. Padding, cyphers, prime theory and such. Whenever I think I understood something sufficiently then an implementation is made.
Must of the algorrithms are at the naive stade. Even more, python is not the best language to make stuff fast. Nevertheless, an algorithm well made is good in any language.
Each module is a file for the moment. If this project grows then I will make a more structured project.
- caesar:
Implements Caesar's cipher
with some generalizations:
- any alphabet;
- preserve or not uppercase;
- preserve or not unknown characters;
- any shift's length;
- prime:
Some utilities to work with prime numbers:
- decomposition as a multiplication of a power of two and an odd integer;
- extended euclidean division, nice tool to find several remarkable numbers: gcd, lcm...
- a naive primality test (trial division up to sqrt(n));
- jacobi_symbol important for some primality test, this paper is interesing if you want to read it;
- miller-rabin test the miller rabin primality test, be aware, this is a probabilistic primality test;
- solovay-strassen test another probabilistic primality test;
- factorization with the Pollard's rho
- quadratic sieve
- elliptic curves
- automatize several types of attacks (collision...)