Skip to content

This is a simple example of AES encryption (with 128, 192 and 256bit keys)

License

Notifications You must be signed in to change notification settings

ttcpavle/Advanced-encryption-standard-AES-in-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Advanced-encryption-standard-AES-in-c

This is a simple example of AES encryption (with 128, 192 and 256bit keys). It represents the core of aes, file and text encryption can be implemented on top of it. This is visualization of the AES round function:

aes encryption visually

AES basically repeats these 4 operations for 10, 12 or 14 times depending on key size (128, 192 or 256bit) as defined in standard. This encryption algorithm utilizes confusion and diffusion making data difficult to decipher. More information about what each operation does is provided in materials below.

How to use

Run AES.c in preferred compiler. Choose key size of aes - define AES128, AES192 or AES256. Key examples are from Appendix A in official documentation (link below). Test input in main function is from Appendix B.

Useful materials:

Official documentation (2001) on which this code was based on:

https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.197.pdf

Useful videos on youtube:

Short explaination: https://youtu.be/gP4PqVGudtg?si=ItrO-kTEUj-2q5LL

AES by Christof Paar (lecture): https://youtu.be/NHuibtoL_qk?si=pFujBaE-zT04i2QF

Key expansion: https://youtu.be/0RxLUf4fxs8?si=qg9s-bPnxebhwX72

Galois field: https://www.youtube.com/watch?v=SKFjdAtl5Fc

Releases

No releases published

Packages

No packages published

Languages