Jupyter notebook implementing and elaborating AES encryption and decryption algorithms

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 c...

Full description

Saved in:
Bibliographic Details
Main Author: Zhang, Chengxuan
Other Authors: Anwitaman Datta
Format: Final Year Project
Language:English
Published: Nanyang Technological University 2020
Subjects:
Online Access:https://hdl.handle.net/10356/138196
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary: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.