100 likes | 215 Views
AES Implementation EE 370 Project. Vempati Anurag Sai (Y9645) Neeraj Kulkarni (Y9292) Shantanu Chopra(Y9537 ). Introduction.
E N D
AES ImplementationEE 370 Project VempatiAnuragSai(Y9645) NeerajKulkarni(Y9292) Shantanu Chopra(Y9537)
Introduction • The Advanced Encryption Standard (AES) specifies a FIPS(Federal Information Processing Standards)-approved cryptographic algorithm that is used to protect electronic data. • The AES algorithm is asymmetric block cipher that can encrypt and decrypt information. • Encryption converts data to an unintelligible form called cipher text; decrypting the cipher text converts the data back into its original form, called plaintext.
Motivation • Rapidly increasing number of communication devices. • Information must be transported in a secure manner. • The Advanced Encryption Standard (AES)specifies a cryptographic algorithm that can be used to protect electronic data. • AES performs well on a wide variety of hardware, from 8-bit smartcards to high-performance computers with high speed and low RAM requirements. • Our main aim was to get a good feel of HDL coding and this project involves extensive HDL coding.
Problem Statement • Implementation of cipher module(Encryption). -Series of transformations that converts plaintext to cipher text using the cipher key • Implementation of Key expansion. -Used to generate a series of Round Keys from the Cipher Key. • Implementation of Inverse cipher(decryption). -Finally obtain original text from cipher text.
Cipher Module • Takes plaintext as input and converts it to cipher text according to AES algorithm. • The following submodules were used as stated in the algorithm: -Subbytes -Shift Rows -Mix Columns -Add Round Key • 10 rounds of the entire encryption process are performed to ensure security. • Pipelining is introduced between different rounds.
Key Expansion • Module takes as input a cipher key and generates a word sequence (round keys) using following submodels:- 1.Subword 2.Rotword 3.Rcon
Inverse Cipher module • This module essentially converts the cipher text to the original text using the cipher key. • Some following submodules were used to implement the inverse cipher: -Inverse mix columns -Inverse subbytes -Inverse shift rows -Add Round Key. • As in Cipher module 10 rounds of process need to performed. • Pipelining introduces between 2 rounds.
Difficulties Faced • Initialization of inputs. • Synchronization of modules using CLK. • Simulator does not support while loop constructs for large iteration values. • Array with variable as an index. • Implementing Sbox using Euclidean algorithm.
Future Scope • Introducing pipelining between various submodules . • Making it scalable which can use 192 bit, 256 bit keys etc. to ensure security. • Implementation on hardware.