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.

Project Info

  • Category: Scripting
  • Year: 2024
  • Status: Completed
View on GitHub

Technologies Used

Python DES AES Bit Operations