Cryptographic algorithms implemented for educational and entertainment purposes. Should never be used in production for actual real-world cryptographic solutions. No external dependencies, written using Python 2.7. Actually made for educational purposes to progressively introduce various concepts from the cryptographic world through various algorithms (status: alpha).
- ROT, as in ROT13, illustration of the translation between a written character and a number and the use of this translation
- xOR, illustration of the infamous exclusive Or
- Affine, illustration of the use of a multi-input mathematical function on letters translated into numbers
- Caesar cipher, illustration of the use of an alphabet and of a modulo operation as a consequence
- Atbash, illustration of a substitution and of alphabet manipulation (reversed in this specific case)
- Book, illustration of using a specific source (a "book" in this case) as a mask instead of a more expected "key")
- Vigenere, illustration of the use of the use of a keystream with initialization
- Autokey, illustration of the use of a buffer and feedbacks/loops in cryptographic algorithms
- Vernam, illustration of a combination of previous illustrations as a way to craft cryptographic algorithms
- Railfence, illustration of moving elements' positions and orders
- Keyword, illustration of alphabet letters' order manipulation
- ARC4, the alleged RC4, illustration of the use of pseudo-randomness generation and key scheduling
- RSA, illustration of the use of stronger mathematical concepts and of public/private keys
- Unified testing library, enjoying the fact that most of the tests are identical and categories of inputs and outputs can be easily mapped
- Better educational value through smarter commenting, more detailed explanations in the README.md and so forth
- Add new algorithms
- Extend it with a sister-project pocpression (or enpocding maybe ?)
- Provide a framework to toy around with various illustrated cryptographic operations/sub-functions