An Efficient FPGA Implementation of 128-Bit Advanced Encryption Standard Algorithm

Security is the most important factor in storing and exchange of the digital data/information, hence encryption of data at the source and decryption of data at destination is of prime importance for digital data processing system and any data communication networks in this rapidly increasing world of internet today. Cryptography hold a major and prime role in providing security to digital data. As per the recommendations of the National Institute of Standards and Technology (NIST) [3], Advanced Encryption Standard (AES) is a standard based on secret key encryption. The AES is used to achieve se-cure data communication and which is based on design principle of SP-network. According to AES standard, inputs to AES encryption or decryption are 128 bits of plain-text and a key either of 128, 192 or 256 bits. When 128 bit plain-text block is processed by same function number of times using derived and different key for each round where each key is obtained processing original input key, 128 bits of encrypted output cipher block is obtained. The AES algorithm describes use of Exclusive-ORing operation, S-Box substitution, shifting of Rows, Mixing of columns and adding of round key for each iteration. All the text blocks such as Plain-text block, encrypted cipher-text block and in-process or intermediate state text block can be mapped or considered in 4 cross 4 matrix form. The proposed approach in this paper presents FPGA based implementation of 128 bits AES Cryptography (Encryption and Decryption) system using speed efficient parallel substitution since it minimizes the execution time in the SubByte transform which boosts max frequency by double. The design & verification methodology to be employed is Verilog HDL in Xilinx/ Intel (Altera) tools and FPGA. Keywords - AES, NIST, FPGA, HDL, High Throughput, Pipelining, SBox, MixColumn.