About This Project
Educational implementations of the classic block ciphers DES and AES, written in Python to understand what actually happens inside symmetric encryption instead of treating it as a black box. The code walks through the complete round structure of both algorithms — key schedule, substitution and permutation layers, and the round transformations — step by step, keeping every stage readable and inspectable.
Key Highlights
- DES: the full 16-round Feistel network with key schedule, expansion, S-boxes, and permutation tables
- AES: SubBytes, ShiftRows, MixColumns, and AddRoundKey round transformations
- Outputs verified against published test vectors
- Companion to university cryptography coursework (DES, AES, RSA, DHKE, ElGamal)
Challenges & Solutions
Bit-level correctness leaves no room for "almost right": a single mis-indexed permutation table or a mistake in the finite-field arithmetic behind MixColumns corrupts everything downstream. Checking each stage against published intermediate test vectors made errors traceable to the exact round where they appeared.