Design of AES Encoder using VHDL

Arpeet Gokhale

Department of Electronics and Telecommunication,

Yeshwantrao Chavan College of Engineering,

Nagpur, India

Kalyani Kambalwar

Department of Electronics and Telecommunication,

Yeshwantrao Chavan College of Engineering,

Nagpur, India

M.S.Dorle

Department of Electronics and Telecommunication,

Yeshwantrao Chavan College of Engineering,

Nagpur, India

Abstract— This paper outlines the design of the Advanced Encryption Standard (AES) in VHDL. Data security in a network is very important as the data is confidential and should be made secure. Advanced Encryption Standard is a cryptography method which is to secure electronic data. It is a block cipher type algorithm that can encrypt and decrypt digital data and uses 128, 192, or 256 bits of user key. This paper implements the 128 bit standard using the VHDL, a hardware description language. The software tool used in this paper is Xilinx ISE 14.7 Project Navigator. It works on both VHDL as well as VERILOG language.

Keywords—AES; VHDL; cryptography

I. Introduction

Nowadays, everyone creates and transfers large volumes of information and data across the world. Cryptography provides a method for securing and authenticating the transmission of information over insecure channels. Cryptography is a Greek word that literally means the art of writing secrets which is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication. It enables us to store sensitive information or transmit it across secure networks so that unauthorized persons cannot read it. Cryptosystem is a system or product that provides encryption and decryption. Cryptosystem uses an encryption algorithms which determines how simple or complex the encryption process will be. In encryption, key is a piece of information which states the particular conversion of plaintext to cipher text or vice versa during decryption. The cryptography methods are classified in several ways. For theoretical purposes , they are categorized on the basis of the number of keys that are used for encryption and decryption, and further defined by their application and use. The three types of algorithms that will be discussed are:

Secret Key Cryptography (SKC): An identical key is used for both encryption and decryption process

Public Key Cryptography (PKC): One key for encryption process and another for decryption process.

AES is secret key Cryptography system and a recent one which replaced its predecessor DES algorithm. AES provides combination of security, performance, efficiency and flexibility. The AES encoder uses 128, 192, or 256 bits of user key to encrypt and decrypt data in blocks of 128 bits or 16 bytes. VHDL is an international approved standard, governed by the IEEE. Very high speed integrated circuit (VHSIC) hardware description language is abbreviated as VHDL. VHDL is a hardware description language that can be used to model a digital system. It has various levels of abstraction in design.

II. Literature review

S.M. Umar Talha, Mir Asif, Hammad Hussain, Ali asghar, Hadi Ameen1 presented the study of Advance Encryption standard and its encryption and decryption process with a VHDL-Xilinx behavioural model of Encryption of AES algorithm. Hrushikesh S. Deshpande, Kailash J. Karande, Altaaf O. Mulani2 planned their work on the topic Efficient implementation of AES algorithm on FPGA in VHDL using Xilinx ISE 14.1 Project Navigator. The basic study of AES and its evolution from Rijndael algorithm is being described in this paper. The four transformation techniques of AES as well as Encryption S-box and Decryption S-box are being explained in detail. Richa Sharma, Purnima Gehlot, S. R. Biradar 3 presented Study of Advanced Encryption Standard (AES) architecture, basic concepts involved in the algorithm with 128 bits. Mital Maheta5 presented the paper on Design and Simulation of AES algorithm. The RC6 algorithm is being explained and thereby implemented. In this paper the number of slices used is very less and design with minimum utilization is presented. This design offers minimum period of 13.345 ns (Maximum Frequency- 74.934MHz).

III. Design

The flowchart of Encryption process of AES is presented in figure below. This is generic flowchart for all AES specifications. In Encryption process the plain text is converted into cipher text which is a random illogical text. The process of encryption has different number of transformation steps applied continuously over the input data block of 128 bits, in a prescribed number of iterations, called rounds. The length of key used in encryption decides the number of rounds. In 128-bit user key there are 10 rounds and four iterations mainly the Sub Byte , Shift Rows, Mix Coloumns and Add RoundKey.

Fig.1. Flowchart of Encryption Module

A. The SubBytes step

In the SubBytes step, we replace each byte of the state with another byte depending on the key. The substitutions are usually presented as a lookup table called as Rijindael S-box. This step gives the non-linearity in the cipher. The S-box used is derived from the multiplicative inverse over Galois Field (GF)(28), known to have good non-linearity properties. The S-box is constructed by combining the inverse function with an invertible related transformation, to protect simple algebraic properties.

a00

a01

a02

a03

a10

a11

a12

a13

a20

a21

a22

a23

a30

a31

a32

a33

b00

b01

b02

b03

b10

b11

b12

b13

b20

b21

b22

b23

b30

b31

b32

b33

Fig.2. The SubBytes step

B. The ShiftRows step

In ShiftRows step, operation is based on the rows of the state in which the bytes of each rows shifted cyclically. For Advanced Encryption Standard, the first row is not shifted. The second row is shifted by one byte to the left. The third row shifted by two bytes to the left, and the final row is shifted by three bytes. As bytes are shifted out on the left, they reappear on the right. This operation is sometimes called as rotation. The shifting pattern for the block of size 128 bits and 192 bits is same . .

a00

a01

a02

a03

a11

a12

a13

a10

a22

a23

a20

a21

a33

a30

a31

a32

a00

a01

a02

a03

a10

a11

a12

a13

a20

a21

a22

a23

a30

a31

a32

a33

Fig.3. The ShiftRows step

C. The MixColumns step

The Mix Column transformation replaces each byte of a column by a function of all the bytes in the same column. More precisely, each byte in a column is replaced by two times that byte, plus three times the next byte, plus the byte that comes next, plus the byte that follows. In the Mix Column step, the four bytes of each column of the state are combined using an invertible linear transformation. All entries in the state matrix are considered to be a polynomial and it is multiplied by a fixed polynomial.

b00

b01

b02

b03

b10

b11

b12

b13

b20

b21

b22

b23

b30

b31

b32

b33

a00

a01

a02

a03

a10

a11

a12

a13

a20

a21

a22

a23

a30

a31

a32

a33

c(x)

Fig.4. The MixColumns step

D. The AddRoundKey step :

In the AddRoundKey step, the subkey is combined with the state. Each round has its own round key that is derived from the original 128-bit encryption key .One of the four steps of each round, for both encryption and decryption, involves XOR ing of the round key with the state array. The AES Key Expansion algorithm is used to derive the 128- bit round key for each round from the original 128-bit encryption key. Add Round Key is its own inverse function because the XOR function is its own inverse. Here cipher text state XOR with round key . The round keys obtained from key expansion algorithm selected in reverse order.

E. AES Key Expander :

From the given initial key, the key scheduler unit will expand and generate the key that will be used in every cycle. Key expansion is an important for both encryption and decryption. For AES 128, there are 10 rounds of transformation. This algorithm takes a 4-word i.e. 16 bytes key and gives output as a linear array of 44 words (176 bytes).

Fig.5. Encryption round key expander algorithm

IV. Software tool

The software tool used in this project is Xilinx ISE 14.7 Project Navigator. It works on both VHDL as well as VERILOG language. Very high speed integrated circuit (VHSIC) hardware description language is abbreviated as VHDL. VHDL is a hardware description language that can be used to model a digital system. It has various levels of abstraction in design.

V. Simulation result

The simulation waveform of the design module is mentioned below. This waveform is synthesized and simulated on software XILINX ISE 14.7 Project Navigator

A. Encryption process

Figure shows the simulation results of the Basic iterative design of Encryption. The simulation image is taken from the Xilinx 14.7 ISE simulator.

Fig.6. Simulation result of AES encryption

Input Plain text : “AES”

User Key : “128”

Output Cipher Text : “4ce22266771f457b2420b533df68a8b0″

Minimum period: 8.794ns

Maximum Frequency: 113.708MHz

Minimum input arrival time before clock: 4.194ns

Maximum output required time after clock: 9.832nsns

Maximum combinational path delay: 10.559ns

B. View of FPGA

Figure below shows the view of FPGA of AES encryption module. Plain text and user key is 128-bit, the output of the aes encoder is ciphertext of 128 bit. This Cipertext is random illogical text which is very hard to crack.

Fig.7. FPGA view of AES encryption module

VI. Conclusion

The Outcome is a design system offering a sufficient level of security, and as a result ensuring confidentiality, thanks to a ciphering unit. Encryption algorithm is being used by military and government over a last couple of decades for secure communication. The main purpose of encryption is to hide data from unauthorized usage. Results are compared with previous reported designs result to show efficiency. AES-128 algorithm for encryption is simulated on Xilinx ISE 14.7 simulator. The simulation waveforms of the design modules are presented. These waveforms are synthesized and simulated on software XILINX ISE 14.7 Project Navigator.

VII. Future work

The AES encoder is designed and implemented in this paper using VHDL, our next task is to provide a complete module of encryption and decryption process. The Encryption and the Decryption modules can be combined together in a single chip module instead of separate chips.

VII. Future scope

Encryption algorithm is being used by military and government over a last couple of decades for secure communication. The main purpose of encryption is to hide data from unauthorized usage. In this paper, we designed a 128 bit AES algorithm both for encryption Recent trends like Internet of things (IoT) require network security because huge amount of information is vulnerable and must be made secure over the network. In future, AES algorithm is improved by use of GPU’s high performance computing capability and compared with that using CPU. Further optimization in area provides better performance for high end applications. The employment of the AES encryption are suitable for a variety of applications, such as :

Secure networking routers,

Wireless communications,

Encrypted data storage including secure Smart Cards,

Secure video surveillance systems,

Secure RFID

Electronic financial transactions and

Internet of Things(IoT) security

References

1 S.M. Umar Talha, Mir Asif, Hammad Hussain, Ali asghar, Hadi Ameen, ” Efficient advance encryption standard (AES) implementation on FPGA using Xilinx system generator”, International Conference on Intelligent and Advanced Systems, IEEE-2016

2 Hrushikesh S. Deshpande, Kailash J. Karande, Altaaf O. Mulani, “Efficient Implementation of AES Algorithm on FPGA”, International Conference on Communication and Signal Processing, IEEE-2014:

3 Richa Sharma, Purnima Gehlot, S. R. Biradar, “VHDL Implementation of AES-128″, International Journal of Advances in Electronics Engineering – IJAEE Volume 3, Issue 2

4 Stephen Brown, Zvonko Vranesic, ” Fundamentals of Digital Logic Design with VHDL”.

5 Mital Maheta “Design and simulation of AES algorithm- Encryption using VHDL”, International Journal of Engineering Development and Research Volume 2, Issue 1, 2014.