This repo contains a set of examples for implementing cryptography using Python. We have Alice and Bob trying to communicate, and Eve trying to crack and eavesdrop, exploiting flaws.
Topics covered:
- Caesar Cipher (the biggest learning in Crypto (Kerckhoff's Principle)
- Substitution Cipher (is security only dependent on the size of Key Space?)
- One Time Pad (provable secure systems - what is the catch?)
- Stream Ciphers (practical implementations of One Time Pads)
- Block Ciphers (DES)
- Key Exchange (implementing Diffie-Hellman)
- Public Key Encryption (RSA + breaking RSA by factoring example)
- Hash Functions, Digital Signatures, HMAC