A web demo suite for Advanced Encryption Standard (AES)

The security of information has become increasingly valuable with the widespread presence of data transmission and storing by networks. As such, people are very keen to learn how to keep the confidentiality and integrity for their information. This trend leads to rising importance of cryptography, w...

Full description

Bibliographic Details
Main Author: Zhou, Yanjun
Other Authors: Anwitaman Datta
Format: Final Year Project (FYP)
Language:English
Published: 2017
Subjects:
Online Access:http://hdl.handle.net/10356/70458
Description
Summary:The security of information has become increasingly valuable with the widespread presence of data transmission and storing by networks. As such, people are very keen to learn how to keep the confidentiality and integrity for their information. This trend leads to rising importance of cryptography, which applies complex logic and mathematics in order to design strong encryption methods. Nanyang Technological University School of Computer Science and Engineering offers a few courses specialized in security. Advanced Encryption Standard (AES) is one of the algorithms that are widely studied and discussed in cryptography courses. However, as there are many rounds and heavy polynomial operations involved, students may find it difficult to calculate AES manually. Hence, this project aims to implement a web-based demonstration for AES-128, which is served as accompanying learning material for students of cryptography. It is a single-page application with rich user interaction and dynamic visualization features. Users are able to perform AES encryption given their own input plaintext and cipher key, and then view all the steps for encryption processes accordingly. Through interactive dialogue windows, they can also know how substitutions work, bitwise calculations, and GF() arithmetic. The web demo is built upon AngularJS framework. It uses Model-View-Controller architecture so that the user interface is loosely coupled with AES algorithm logic. This enables separation of concerns, reusability of different components as well as extensibility of views. As the beta launch was in February 2017, Agile Software Development Lifecycle is adopted in order to easily modify and add in more functionalities after user’s feedback. The demo also utilizes Angular Material and MathJax library to ensure compatibility and visual elegance across multiple platforms and browsers.