8
ISSN: 2278 909X International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE) Volume 4, Issue 5, May 2015 1225 All Rights Reserved © 2015 IJARECE AbstractThis paper presents an overview of the design and development of an FPGA-based implementation of the Advanced Encryption Standard (AES) algorithm. We live in an age where digital data, and its security, are of prime importance. Just as the complexity of networks and data transmission methods grows, so also the rise in incidence of digital crimes and the increase in complexities of network security attack methods. Given the rapid evolution of attack methods and toolkits, software-based solutions to secure the network infrastructure have become overburdened. Therefore, the use of hardware implementations for securing the network infrastructure has been considered. Field Programmable Gate Array (FPGA) devices have commonly been proposed for this purpose because they feature both the flexibility of software and the high performance of hardware. In this paper, we present an overview of our project, in which we implemented a complex encryption algorithm, the AES, on an FPGA and compared it with its software implementation. Index TermsHardware implementation, AES, FPGA, execution time. I. INTRODUCTION RUCE SCHNEIER SAID IT RIGHT. “Hardware is easy to protect: lock it in a room, chain it to a desk, or buy a spare. Information poses more of a problem. It can exist in more than one place; be transported halfway across the planet in seconds; and be stolen without your knowledge!” We live in a digital world. A world where more than 700TB of data is transferred every minute. A world where digital communication is far more prevalent than face-to-face communication. A world where our professional and personal lives are becoming increasingly dependent on technology. Thus, today, information security is the most important buzzword. It is unimaginable to think of transmitting data as- is. There is a need to ensure the confidentiality of data, to guarantee its authenticity and to protect systems from network-based attacks such as viruses and hacking. In this regard, a number of encryption & decryption algorithms have been developed. Anupama Gopalan is from the Department of Electronics and Communication, BMS College of Engineering. Janani Ganesh is from the Department of Electronics and Communication, BMS College of Engineering Swathi M is from the Department of Electronics and Communication, BMS College of Engineering. Indeed, these algorithms, their development and application are part of a profession by themselves. The field of network security is growing at a fast pace, and has great scope. However, thereal challenge is not only to make these algorithms fool-proof, but also to increase their speed of computation. If the time taken to encrypt my data securely is as much as the time taken to process or transfer it; the very point of time criticalness in real-world communication is lost! Also, the cost of implementing the encryption and decryption algorithms must be very small, in order to improve efficiency. Thus, the need of the hour is to make these algorithms fast, flexible, and low-cost; in a range of applications such as embedded hardware. It would be quite ridiculous to use an implementation that takes up the maximum part of the total execution time of my application. Equally absurd would be the use of an implementation that is so rigid that a lot of effort has to be put in to make changes in it for every small modification in my application. Similarly, it would make no sense to use an implementation that places a lot of burden on the main processor, as the overall efficiency of the application or process would reduce only because of the security algorithm, which is only a part of the total process. Recent research has shown that the use of reconfigurable hardware for the implementation of these algorithms would improve speed, throughput and efficiency. Chen et al. [1] have averred that the traditional software-based solutions to information security attacks have become overburdened. Today, hardware implementation of security functions shows more promise. Traditional network intrusion detection systems (NIDS) are inefficient and do not perform well in the face of the constantly increasing speed of the Internet. Li et al. [2] have proposed that the use of reconfigurable hardware for detection of intrusions would improve the network security system. The performance-gap between the execution speed of security software and the sheer amount of data to be processed is widening, and this is a serious issue. Thus, to address this, it is critical to start implementing hardware solutions in environments requiring high security. Advanced cryptographic techniques, such as hash functions and message authentication codes, are now being used in modern systems dealing with storage and manipulation of sensitive data. A study by Nickolas and Sivasankar [3] has asserted that such algorithms are far too demanding to be implemented in software for the processing speeds expected today in an embedded system. Therefore, hardware FPGA-based Message Encryption and Decryption Anupama Gopalan, Janani Ganesh and Swathi.M B

ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1225 All Rights Reserved © 2015 IJARECE

Abstract—This paper presents an overview of the design and

development of an FPGA-based implementation of the Advanced

Encryption Standard (AES) algorithm. We live in an age where

digital data, and its security, are of prime importance. Just as the

complexity of networks and data transmission methods grows, so

also the rise in incidence of digital crimes and the increase in

complexities of network security attack methods.

Given the rapid evolution of attack methods and toolkits,

software-based solutions to secure the network infrastructure

have become overburdened. Therefore, the use of hardware

implementations for securing the network infrastructure has been

considered.

Field Programmable Gate Array (FPGA) devices have commonly

been proposed for this purpose because they feature both the

flexibility of software and the high performance of hardware. In

this paper, we present an overview of our project, in which we

implemented a complex encryption algorithm, the AES, on an

FPGA and compared it with its software implementation.

Index Terms—Hardware implementation, AES, FPGA,

execution time.

I. INTRODUCTION

RUCE SCHNEIER SAID IT RIGHT. “Hardware is easy to

protect: lock it in a room, chain it to a desk, or buy a

spare. Information poses more of a problem. It can exist

in more than one place; be transported halfway across the

planet in seconds; and be stolen without your knowledge!”

We live in a digital world. A world where more than 700TB of

data is transferred every minute. A world where digital

communication is far more prevalent than face-to-face

communication. A world where our professional and personal

lives are becoming increasingly dependent on technology.

Thus, today, information security is the most important

buzzword. It is unimaginable to think of transmitting data as-

is. There is a need to ensure the confidentiality of data, to

guarantee its authenticity and to protect systems from

network-based attacks such as viruses and hacking. In this

regard, a number of encryption & decryption algorithms have

been developed.

Anupama Gopalan is from the Department of Electronics and Communication, BMS College of Engineering.

Janani Ganesh is from the Department of Electronics and Communication,

BMS College of Engineering Swathi M is from the Department of Electronics and Communication, BMS

College of Engineering.

Indeed, these algorithms, their development and application

are part of a profession by themselves. The field of network

security is growing at a fast pace, and has great scope.

However, thereal challenge is not only to make these

algorithms fool-proof, but also to increase their speed of

computation. If the time taken to encrypt my data securely is

as much as the time taken to process or transfer it; the very

point of time criticalness in real-world communication is lost!

Also, the cost of implementing the encryption and decryption

algorithms must be very small, in order to improve efficiency.

Thus, the need of the hour is to make these algorithms fast,

flexible, and low-cost; in a range of applications such as

embedded hardware. It would be quite ridiculous to use an

implementation that takes up the maximum part of the total

execution time of my application. Equally absurd would be the

use of an implementation that is so rigid that a lot of effort has

to be put in to make changes in it for every small modification

in my application. Similarly, it would make no sense to use an

implementation that places a lot of burden on the main

processor, as the overall efficiency of the application or

process would reduce only because of the security algorithm,

which is only a part of the total process.

Recent research has shown that the use of reconfigurable

hardware for the implementation of these algorithms would

improve speed, throughput and efficiency. Chen et al. [1] have

averred that the traditional software-based solutions to

information security attacks have become overburdened.

Today, hardware implementation of security functions

shows more promise. Traditional network intrusion detection

systems (NIDS) are inefficient and do not perform well in the

face of the constantly increasing speed of the Internet. Li et

al. [2] have proposed that the use of reconfigurable hardware

for detection of intrusions would improve the network security

system. The performance-gap between the execution speed of

security software and the sheer amount of data to be processed

is widening, and this is a serious issue. Thus, to address this, it

is critical to start implementing hardware solutions in

environments requiring high security.

Advanced cryptographic techniques, such as hash functions

and message authentication codes, are now being used in

modern systems dealing with storage and manipulation of

sensitive data. A study by Nickolas and Sivasankar [3] has

asserted that such algorithms are far too demanding to be

implemented in software for the processing speeds expected

today in an embedded system. Therefore, hardware

FPGA-based Message Encryption and

Decryption

Anupama Gopalan, Janani Ganesh and Swathi.M

B

Page 2: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1226 All Rights Reserved © 2015 IJARECE

components have to be used to realize the same in an efficient

manner.

In particular, implementation on FPGAs is gaining traction in

the industry. An FPGA (Field-Programmable Gate Array) is

basically a reprogrammable semiconductor device; i.e. its

features and functions can be programmed, and its hardware

reconfigured, even after it has been manufactured. FPGAs

consist of programmable logic components called „logic

blocks‟, which perform complex combinational functions and

include memory devices.

An FPGA can implement any logical function that an ASIC

can, with the added advantage of being able to re-program it

even after its release into the market as a product. An FPGA is

specified using a Hardware Description Language (HDL).

FPGAs have quickly become very popular for use in a myriad

of applications ranging from automotive to telecom to

networking. As stated earlier, their ability to be re-

programmed makes them highly attractive to users.

An article by Villasenor et al. [4] states that current FPGAs

can be reconfigured within a millisecond, and ultimately, they

will be able to adapt themselves almost continuously –

meaning, they can be reprogrammed every 10-3

s (or less).This

makes them highly suitable for building encryption systems,

and implementing algorithms such as the DES, AES, and hash

functions with higher speed and efficiency.

This paper is concerned with the implementation of the AES

(Advanced Encryption Standard) algorithm on an FPGA. The

AES, developed at the start of this millennium to replace the

existing standard, the DES, is used in scores of applications

from the security mechanism of file systems in Windows to

compression tools such as WinZip to disk encryption

algorithms to the Linux kernel‟s Crypto API.

Another major application of the AES is in the security

mechanism of the new IEEE standard 802.11i (set to replace

the current standard, 802.11 WEP, quite soon), known as

„CCM Mode Encryption‟. This security system spends most of

the computation power in performing the AES algorithm. A

paper by Vu and Zier [5] has shown that the use of an FPGA

to implement the AES would largely speed up the process.

Their study proves that ultimately, communication rates could

be increased and both security as well as speed improved, by

this technique. Further, Satoh et al. [6] have written that an

„authenticated encryption system‟ (one of the newest security

concepts), when implemented on an FPGA, would generate a

higher throughput.

A review paper by Tonde and Dhande [7] lucidly sums up the

literature surveyed. An example of a very high-security

application, electronic transactions, has been taken. An FPGA-

based implementation of the AES is clearly shown as having a

number of advantages, including ease of algorithm

modification based on the application, architecture efficiency,

higher throughput, low latency and cost efficiency.

Besides providing security for the textual data we work with

every day, multimedia data security is quickly emerging as a

crucial aspect of this domain. This is owing to the steadily

increasing use of digital images and videos in our day-to-day

communications. Kotel et al. [8] have affirmed that

multimedia encryption algorithms implemented on FPGAs

have emerged as the most viable solution, and the most

worthwhile due to the efficiency of computation.

At the same time, the necessity to encrypt speech is growing,

especially in environments where all communications,

whether they are text-based or speech-based, are classified

information. Hussain et al. [9] have stated that, once again, the

use of FPGAs is highly recommended for speech encryption.

One of the possible approaches to this would be by employing

speech-to-text conversion and vice-versa, by interfacing an

ADC and a DAC respectively to the FPGA.

The aim of this project, and this paper documenting the

findings of the project, is to study the advantages of

implementing a complex encryption algorithm, such

Advanced Encryption Standard (AES) in an FPGA design;

and assessing the improvements in speed and cost as

compared to a software implementation. The most important

application would be in any environment requiring high

security, such as the military, defence organisations or a

scientific laboratory.

II. THE AES ALGORITHM

The work on this project began with a study of the field of

cryptography. In very basic terms, it is the art and science of

securing data, by encryption of the data by the sender, so that

no interceptor can understand the message as it is being

transmitted. At the receiving end, the receiver must decrypt

the „cipher text‟ he receives in order to get back the „plain

text‟, i.e. the original information. In order that only the

correct receiver obtains the message, cryptographic keys are

used. These keys must remain secret, i.e. they must be known

only to the legitimate sender and receiver. The algorithms

used for encryption and decryption may be „symmetric-key‟

(same secret factor, or key, used for both encrypting and

decrypting) or „asymmetric-key‟ (a pair of keys is used by

both parties – one is public; used for encryption or

confirmation of authenticity; the other is private; used for

decryption or creation of an authenticity stamp. The keys are

linked by a mathematical function).

We started off by learning about one of the most popular

modern cryptographic algorithms, the Data Encryption

Standard (DES) Algorithm. Prominent in the eighties and

nineties, it was certainly the most prevalent symmetric-key

algorithm used for the encryption of electronic data. However,

owing to several limitations (such as small key size and

gradually, ease of breaking), it was replaced by the Advanced

Encryption Standard (AES) algorithm, standardized in 2001.

The AES is based on the Rijndael cipher, developed by John

Daemen and Vincent Rijmen. It is a block cipher, which

means that data is processed in the form of blocks of fixed

Page 3: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1227 All Rights Reserved © 2015 IJARECE

size. For AES, the block is fixed at 128 bits, but there are three

versions wherein the key may be of length 128 bits, 192 bits or

256 bits and the number of rounds, or cycles of repetition, are

10, 12, or 14. The standard and most popular implementation,

with both block and key lengths of 128 bits, i.e. 16 bytes, and

of 10 rounds, is taken up here. Being a private-key, or

symmetric-key, algorithm; the key is shared only between the

sender and the receiver. The AES is a federal government

standard in the United States, and is now used worldwide for

securing secret information.

The AES is a substitution-permutation cipher. That is, it is

based on Shannon‟s theory of „confusion and diffusion‟.

According to Shannon, the two main qualities of any

cryptographic algorithm are : Confusion; meaning that the

plain text and the key, as well as the cipher text and the key,

are as different as possible; this reduces the chances of

discovering the key from the plain text or the cipher text; and

confusion is generated by substitutions.

Diffusion; meaning that change in one bit of the plain text

must generate changes in several bits of the cipher text; so that

any correlation between them is reduced, is generated by

performing permutations.

The AES encryption algorithm consists of 4 major stages,

repeated iteratively 10 times as illustrated below. The

procedure for the decryption algorithm is similar to that of

encryption, but in reverse.

Fig. 1: Flow of the AES encryption and decryption

As the first step, the user-inputted plain text of 16 bytes is

arranged in the form of a 4*4 matrix called the state array.

Following this, the user-defined key of 16 bytes, i.e. 4 words,

is expanded into 44 words by a module named Key

Expansion. Thus, 10 round keys are obtained; one for each

round. The original key, referred to as w[0,3] is XORed with

the original plain text byte by byte before the procedure

begins. In case of decryption, the eleventh obtained key,

w[40,43] is XORed with the cipher text at the beginning. Also,

at the end of every round, the corresponding round key is

XORed with the corresponding state array at that stage. This

module is named AddRoundKey.

In each round, the first step is named SubBytes (substitute

bytes), wherein each byte of the 4*4 state array is substituted

by a byte from the Rijndael S-Box (a universally defined

lookup table), using the higher nybble of the input byte as row

indicator and the lower nybble as the column indicator.

For example, if a byte of the state array is 6B, it is substituted

for the byte of the S-Box in row number 6 and column number

B.

For decryption, the step InvSubBytes is similar but the

Inverse- S-Box is used for substitution.

This substitution step generates confusion.

Next, the step ShiftRows is performed, in which the rows of

the state array are shifted cyclically to generate diffusion.

The first row is left unchanged, the second shifted by 1 to the

left, the third by 2 and the fourth by 3.

For decryption, InvShiftRows is similar except that the shift

is to the right.

The next step is MixColumns, in which the four bytes in each

column of the state array are combined using an invariable

linear transformation. The decryption step of InvMixColumns

is also similar.

As each input byte affects all four output bytes, this achieves

further diffusion.

During decryption, the steps explained above are executed in a

different order –InvShiftRows, InvSubBytes, AddRoundKey

and InvMixColumns. Hence, though the steps of decryption

are similar to those of encryption, the algorithm is different

and requires a different design.

The last, i.e. 10th round of encryption is special, in that the

step MixColumns is omitted. In case of decryption, the step

InvMixColumns is omitted in the last round. Thus, it is

necessary to define a variable to indicate if the current round is

the last round or not.

The user inputs a single 16 byte, or 4-word key. However, as

explained, the AES algorithm requires that each round use a

different key. Thus, the initial 4 words must be expanded to 44

words, i.e. a distinct key for each of the 10 rounds. This is

achieved by the module named Key Expansion.

If the 4 words of the ith round are wi, wi+1, wi+2, andwi+3, then

these are used to derive the 4 words of the (i+1)th round as

follows:

wi+5 = wi+4 ⊗ wi+1

wi+6 = wi+5 ⊗ wi+2

wi+7 = wi+6 ⊗ wi+3

The first word of this grouping, i.e. wi+4, is obtained from the

first word of the last grouping, XORed with what is returned

Page 4: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1228 All Rights Reserved © 2015 IJARECE

by applying a function g() to the last word of the last grouping,

as follows:

wi+4 = wi⊗ g(wi+3)

And the function g() is defined as:

a. Perform a one-byte left circular rotation on the argument

4-byte word.

b. Perform a byte substitution for each byte of the word

returned by the previous step by using the same 16 × 16

lookup table as used in the SubBytes step of the

encryption rounds.

c. XOR the bytes obtained from the previous step with the

round constant of the ith round, Rcon[i].

Rcon[i] is a 4-byte value whose rightmost 3 bytes are always

0. That is, Rcon[i] = (RC[i], 0, 0, 0).

Its highest byte, RC[i] is defined as follows:

RC[1] = 0x01

RC[j] = 0x02 x RC[j-1]

A standard C++ implementation of the AES encryption and

decryption was carried out using Microsoft Visual Studio

Express 2013 on a laptop with Intel i5 processor. A hex input

of 16 bytes was given as plain text and another hex input of 16

bytes was chosen as the key. The correct cipher text output

block was obtained. A small code snippet written to measure

the execution time calculated the same as 16 milliseconds for

encryption and the same for decryption. This value will

certainly differ on different hardware platforms based on the

processor speed, but the inference drawn was that the

execution time in software is of the order of milliseconds.

Fig. 2: Calculated execution time of encryption in software

III. HARDWARE DESIGN

The hardware design of the algorithm was carried out in the

VHDL language, using the XilinxXC6SLX16 device.

The design for encryption is illustrated below.

Fig. 3: Controller block of the design for encryption

Fig. 4: FSM of the design for encryption

Page 5: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1229 All Rights Reserved © 2015 IJARECE

Fig. 5: Hardware architecture of the design for encryption

As depicted in the figures, inputs to the design are the plain

text block, the key, rst and the clk. A signal text_key_sel is

used to determine if the input at a time instant is the plain text

or the key. In fact, text_key_sel is the select line of a 2x1

MUX. When it is 0, the user-inputted key is loaded and

load_key is set to 1. When text_key_sel is 1, the data, i.e. the

original plain text is loaded and load_data1 is set to 1.When

the 2-bit variable sel_data is 00, the original plain text is

XORed with the original key, w[0,3] before the start of the

first round. Following this, the 4 steps SubBytes, ShiftRows,

MixColumns and AddRoundKey of round 1 are executed as

explained in the previous section.

Following this, the rounds 2 to 9 are executed with the 4 steps

described earlier. The 10th round of encryption is special in

that the step MixColumns is omitted. Thus, another signal

last_rnd is used and set to 1 when round 10 commences. It is

in fact a select line of another 2x1 MUX. When it is 1, the

MixColumns step is sidestepped and the output of the last

ShiftRows is fed to the AddRoundKey block.

Another signal, eoc is used to indicate the completion of the

process. It is the select line of yet another 2x1 MUX. When 1,

it indicates that conversion is completed and thus the obtained

output is the final cipher text.

The design of the module for key expansionis illustrated

below. As has been expounded, this module is an integral part

of the encryption and decryption algorithms.

The design for decryption requires a separate key expansion

design. This is because the order in which the keys are used is

reversed during decryption, i.e., the cipher text is first XORed

with the last round key, w[40,43] from the key expansion

before going through the first round substitutions. The

AddRoundKey step of the first round uses the last but one key

from the key expansion and so on.

Fig. 6: Hardware architecture of the design for key expansion

Fig. 7: FSM of the design for key expansion

This key expansion module for decryption is used to obtain

the last round key after 10 cycles.

From the last round key, the other keys can be obtained using

an“on the fly” method.

The design of the module for decryption is illustrated below.

As has been explained earlier, although the steps of decryption

are similar to those of encryption, they are executed in a

different order. Thus, the decryption algorithm is substantially

different from the encryption algorithm.

Page 6: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1230 All Rights Reserved © 2015 IJARECE

Fig. 8: Controller block of the design for decryption

Fig. 9: FSM of the design for decryption

Fig. 10: Hardware architecture of the design for decryption

As depicted in the figures, a signal decrypt is used to indicate

that the algorithm for decryption is running. This is required as

a separate key expansion module is used for decryption, as

explicated previously. During the decryption process, the last

round key, w[40,43] is XORed with the cipher text before the

start of the first round.In the wait state, the data, i.e. the cipher

text block is loaded and load_data set to 1. The signal rnd_1

indicates that the first round is being executed.The four steps

InvShiftRows, InvSubBytes, AddRoundKey and

InvMixColumns are executed as described in the previous

section. Following this, the rounds 2 to 9 are also run in a

similar fashion. For the last round, the InvMixColumns step is

bypassed. Once eoc is set to 1, the conversion is complete and

the original plain text block is obtained as the final output.

IV. SIMULATION AND SYNTHESIS

The tool used for simulation and synthesis of the VHDL

modules was Xilinx ISE 13.2.

Modular testing was carried out to ensure the correctness of

the various modules of the project. Finally, the entire code was

subjected to a behavioral simulation. Following the modular

testing, top-level testing was carried out and the results are as

follows.

Fig. 11: Result of simulation of the encryption top module

Fig. 12: Result of simulation of the decryption top module

After obtaining the expected results in simulation, the FPGA

was programmed with the written VHDL code using the tool

„iMPACT‟.We used the device XC6SLX16.

The inputs were hard-codedand the synthesis carried out. The

outputs, cipher text in the case of encryption and plain text in

Page 7: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1231 All Rights Reserved © 2015 IJARECE

the case of decryption, were obtained as expected. A picture of

the project setup follows.

Fig. 13: Project setup

V. RESULTS, CONCLUSIONS AND FUTURE WORK

As stated earlier, based on our implementation of the AES in

C++, we could conclude that the execution time in software is

of the order of milliseconds.

Following this, as described earlier, The AES RTL Code was

downloaded onto the FPGA board. The user clock speed is

100MHz.

The AES Encryption module took 10 clock cycles to execute.

Hence, it took a total of 10/100MHz i.e., 100nsfor execution.

On the other hand, the Decryption algorithm has an initial

overhead of 11 clock cycles which consumes another 110ns.

The computation of plain text takes 10 cycles and thereby an

execution time of 10/100MHz which is another 100ns.

Thus, the execution time in hardware is of the order of

nanoseconds.

The throughput and latency of our design are tabulated below.

The value of throughput is calculated, as defined by Zambreno

et al.[16], as follows:

T = (128-fclk)/blocks_per_cycle

The value of latency is calculated as follows:

Lat = (10 * stages_per_round)/fclk

For encryption:

Target FPGA device XC6SLX16 [100 MHz

Clock frequency]

Encryption Throughput 1.280 Gbps*

Timing report

Speed Grade -3

Max Frequency 154.434 Mhz

Min period 6.475ns

Min. input arrival time

before clock

3.543ns

Max. output required time

after clock

7.049ns

Device Utilization

Number of Slice LUTs 2395/9112 [26%]

Number of occupied slices 895/2278 [39%]

Number of fully used LUT-

FF pairs

2430

For decryption:

Target FPGA device XC6SLX16 [100 MHz

Clock frequency]

Decryption Throughput 1.280 Gbps*

Timing Report

Speed Grade -3

Max Frequency 173.854 MHz

Min period 5.752ns

Min. input arrival time

before clock

7.049ns

Max. output required time

after clock

8.653ns

Device Utilization

Number of Slice LUTs 1853/9112 [20%]

Number of occupied slices 620/2278 [27%]

Number of fully used LUT-

FF pairs

1921

*implies after overhead.

The above work and its obtained result thus concluded that the

speed of execution of a complex security algorithm such as the

AES on hardware is much higher than in software.

Therefore, it is clearly a viable and worthwhile option to use

reconfigurable hardware for the implementation of security

algorithms, rather than using a slower software

implementation that increases the burden on the main

processor, thereby reducing its efficiency.

Page 8: ISSN: 2278 International Journal of Advanced …ijarece.org/wp-content/uploads/2015/05/IJARECE-VOL-4...BMS College of Engineering Swathi M is from the Department of Electronics and

ISSN: 2278 – 909X

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 5, May 2015

1232 All Rights Reserved © 2015 IJARECE

Future work would involve testing the same on various other

boards, and making a comparative study of speeds and

throughputs. Post that, it is our intention to implement the

same for the encryption of other forms of communication,

such as speech and videos, as this is of increasing importance

in an age where multimedia communication is steadily gaining

prevalence and prominence.

VI. ACKNOWLEDGEMENT

We would like to thank our guide, Dr. K.P. Lakshmi, and our

Head of the Department, Dr. D. Seshachalam, for having

given us the opportunity to work on such a project, the chance

to write this paper, and for their constant support and

encouragement.

V. REFERENCES

[1] Hao Chen, Yu Chen, Douglas H. Summerville, “A

Survey on the Application of FPGAs for Network

Infrastructure Security,” IEEE Communications Surveys and

Tutorials, 2010.

[2] Shaomeng Li, Jim Torresen, Oddvar Sørasen,

“Improving a Network Security System by Reconfigurable

Hardware,” Department of Informatics, University of Oslo,

Norway, 2004.

[3] Deepthi Barbara Nickolas, Mr. A. Sivasankar, “Design of

FPGA Based Encryption Algorithm using KECCAK Hashing

Functions,” International Journal of Engineering Trends and

Technology (IJETT), Vol. 4, Issue 6, June 2013.

[4] John Villasenor, William H. Mangione-Smith,

“Configurable Computing,” Department of Electrical

Engineering, University of California, Los Angles, 1999.

[5] Khoa Vu, David Zier, “FPGA Implementation AES for

CCM Mode Encryption Using Xilinx Spartan-II,” Advanced

Cryptography, Oregon State University, Spring2003.

[6] Hori Y., Satoh A., Sakane H., Toda K., “Bit stream

encryption and authentication with AES-GCM in dynamically

reconfigurable systems,” Field Programmable Logic and

Applications, IEEE International Conference, FPL 2008.

[7] Ashwini R. Tonde, Akshay P. Dhande, “Review paper on

FPGA based Implementation of Advanced Encryption

Standard (AES) algorithm,” International Journal of Advanced

Research in Computer and Communication Engineering,

Vol. 3, Issue 1, January 2014.

[8] Sonia Kotel, Medien Zeghid, Adel Baganne, Taoufik

Saidani, Yousef Ibrahim Daradkeh, Tourki Rached, “FPGA-

Based Real-Time Implementation of AES Algorithm for

Video Encryption,” Laboratory of Electronics and

Microelectronics, University of Monastir, Tunisia, 2014.

[9] Hussain Mohammed Dipu Kabir, Saeed Anwar, Abu

Shahadat Md. Ibrahim, Md. Liakot Ali, Md. Abdul Matin,

“Watermark with Fast Encryption for FPGA Based Secured

Real-time Speech Communication,” Consumer Electronics

Times, Vol. 2, Issue 1, Jan. 2013.

[10] Francois-Xavier Standaert, Gael Rouvroy, Jean-Didier

Legat, Jean-Jacques Quisqater, “Compact and Efficient

Encryption/Decryption Module for FPGA Implementation of

the AES Rijndael Very Well Suited for Small Embedded

Applications”, Information Technology: Coding and

Computing, 2004. Proceedings. ITCC 2004, April 2004.

[11] Mohammed Benaissa and Tim Good, “AES on FPGA

from the fastest to the smallest”, ¬Cryptographic Hardware

and Embedded Systems, Sept. 2005.

[12] “ML505/506/507 Overview and Setup - Overview of the

Hardware Designs and Software Applications, How to set up

the equipment, software, CompactFlash, network, and

terminal programs”, Xilinx, Inc, June 2008.

[13] “ML505/506 Quickstart”, Xilinx, Inc, May 2009.

[14] Ashkan Ashrafi and Mark Sison, “Tutorial – Xilinx

Virtex-5 FPGA ML506 Edition”, San Diego State University.

[15] “Virtex-5 FPGA Configuration User Guide”, Xilinx, Inc,

Oct. 2012.

[16] Joseph Zambreno, David Nguyen, and Alok Choudhary,

“Exploring Area/Delay tradeoffs in an AES FPGA

implementation”, Proceedings of the 14th Annual

International Conference on Field-Programmable Logic and

Applications, 2004.

Anupama Gopalan is a final semester student of Electronics

and Communication Engineering at BMS College of

Engineering, Bangalore, India. Her interests include the fields

of embedded systems, network security, and computer

programming.

Janani Ganesh is a final semester student of Electronics and

Communication Engineering at BMS College of Engineering,

Bangalore, India. Her interests include the fields of digital

system design, VHDL coding, and embedded systems.

Swathi M is a final semester student of Electronics and

Communication Engineering at BMS College of Engineering,

Bangalore, India. Her interests include the fields of computer

communication networks, digital system design and embedded

systems.