Jupyter notebook implementing and elaborating AES encryption and decryption algorithms - Zhang, Chengxuan (Nanyang Technological University, 2020)
Nanyang Technological University School of Computer Science and Engineering offers a few courses relevant to cybersecurity as a specialization. Advanced Encryption Standard (AES) is described in detail as part of course CE/CZ 4024 Cryptography and Network Security, and referenced by other security courses. However, due to complex and heavy mathematical operations involved, students taking this course may find AES algorithm difficult to understand. This project aims to build an interactive learning companion for students learning AES, based on python Jupyter Notebook, to implement a demonstration of AES Encryption and Decryption algorithms. The notebook itself was built bottom-up as a deliverable of this project based on functional programming, for users to understand the python code more easily. It is a set of python codes with explanatory texts, figures, and animations, implementing the AES from scratch. Users are able to perform AES encryption by giving their customized input plaintext and cipher key, and see the encrypted ciphertext as an output. Users are also able to perform AES decryption by giving the ciphertext and same cipher key to retrieve the plaintext. Throughout the learning process, they can also gain knowledge about basic polynomial arithmetics, Galois field operations, bitwise operations, matrix operations, etc. The duration of this project was three semesters and was divided into five stages based on Software Development Life Cycle, including Planning, Design, Implementation, Testing and Deployment.