This is a hands-on cryptography course covering encryption, decryption and cryptoanalysis approaches for historical and classical methods. The most common cryptographic approaches will be mentioned such as shift ciphers, substitution ciphers, permutation ciphers and block ciphers. Everything will be developed from scratch in Python. This course will guide you to see and understand how the most advanced cryptography algorithms derived from these historical algorithm in time.