Implementation of the 128-bit variant of AES (Advanced Encryption Standard) as a C Library.
Python implementation of AES - used as a reference for C library and testing:
- Local Directory: 'python-aes'
- Repo URL: https//github.com/boppreh/aes
Key references:
- Creel, “AES Encryption Series”, YouTube, 2015-2016. Available Online
- Easy to follow YouTube series on AES encryption in C
- S. Trenholme, “The AES Encryption Algorithm”, Sam Trenholme’s Webpage, 2005. Available Online
- Series of articles which describe various aspects of the Rijndael (AES) encryption algorithm.
- Rijndael Mixcolumns, Wikipedia, Feb. 06. 2024. Available Online
- Galois Multiplication lookup tables used in this project are available here
- Forma Estudio, “Rijndael (AES) Animation”, Forma Estudio, 2004. Available Online
The following is a high level description of the three main Rijndael AES encryption functions as implemented in this project:
- Each byte value in a block is substituted with a corresponding S-box lookup value.
- The current byte value acts as the index for S-Box to get the new byte value.

