Python-based FPGA implementation of AES using Migen for Internet of Things Security

Internet of things (IoT) technology is making it possible for a wide variety of end-user devices to be connected to the internet, leading to richness and accuracy of real data that would previously have needed much more cumbersome and expensive methods. But this connectedness also leads to more challenges in data security and the increased risk of cyber-attacks. Improved, and faster, security schemes have become a key requirement of these loT technologies. Field Programmable Gate Arrays (FPGAs) have been used to accelerate various cyber-security algorithms. However, while FPGAs are capable of massive computational power, through their highly parallel nature, they are generally difficult to program; and considering the design of modern encryption schemes this is posing a significant bottleneck to progress in security for these architectures. This paper investigates the use of a Python-based high-level FPGA design tool-flow for rapid prototyping of loT cryptosystems. In this paper we implement a version of the Advanced Encryption Standard (AES) algorithm, with block and key sizes of 128bits, using the Python-based tool-flow. The design is functionally verified, a Verilog hardware implementation is generated, simulated and then executed on an FPGA platform. The performance of the resulting FPGA design is analyzed in terms of resource utilization and throughput, and is compared against similar hand-written AES implementations reported in the literature. We found our FPGA implementation had a frequency of 512.742 MHz and a throughput of 65.63Gbps which is more than fast enough for most IoT applications.

[1]  Denny Darlis,et al.  An implementation of data encryption for Internet of Things using blowfish algorithm on FPGA , 2014, 2014 2nd International Conference on Information and Communication Technology (ICoICT).

[2]  Wu He,et al.  Internet of Things in Industries: A Survey , 2014, IEEE Transactions on Industrial Informatics.

[3]  Thaier Hayajneh,et al.  Modeling and optimization of the lightweight HIGHT block cipher design with FPGA implementation , 2016, Secur. Commun. Networks.

[4]  John Wawrzynek,et al.  Chisel: Constructing hardware in a Scala embedded language , 2012, DAC Design Automation Conference 2012.

[5]  D. Bastos,et al.  Internet of Things: A survey of technologies and security risks in smart home and city environments , 2018, IoT 2018.

[6]  Franc Novak,et al.  HARDWARE IMPLEMENTATION OF AES ALGORITHM , 2005 .

[7]  Sandeep K. Shukla,et al.  Hardware Coprocessor Synthesis from an ANSI C Specification , 2009, IEEE Design & Test of Computers.

[8]  Farooque Azam,et al.  A Model-Driven Approach for Access Control in Internet of Things (IoT) Applications - An Introduction to UMLOA , 2018, ICIST.

[9]  Hicham Lakhlef,et al.  Internet of things security: A top-down survey , 2018, Comput. Networks.

[10]  Jorge Sá Silva,et al.  Security for the Internet of Things: A Survey of Existing Protocols and Open Research Issues , 2015, IEEE Communications Surveys & Tutorials.

[11]  David F. Bacon,et al.  FPGA programming for the masses , 2013, CACM.

[12]  J. Juan,et al.  Python as a hardware description language: A case study , 2011, 2011 VII Southern Conference on Programmable Logic (SPL).

[13]  Hiroyuki Tomiyama,et al.  Proposal and Quantitative Analysis of the CHStone Benchmark Program Suite for Practical C-based High-level Synthesis , 2009, J. Inf. Process..

[14]  Christer Eriksen Hole Analysis of security for IoT : A review of architecture and cryptographic algorithms , 2017 .

[15]  Arvind Rajawat,et al.  Area and Throughput Analysis of Different AES Architectures for FPGA Implementations , 2016, 2016 IEEE International Symposium on Nanoelectronic and Information Systems (iNIS).

[16]  Kris Gaj,et al.  Can high-level synthesis compete against a hand-written code in the cryptographic domain? A case study , 2014, 2014 International Conference on ReConFigurable Computing and FPGAs (ReConFig14).

[17]  Athanasios V. Vasilakos,et al.  Security of the Internet of Things: perspectives and challenges , 2014, Wireless Networks.

[18]  Preeti Ranjan Panda,et al.  SystemC - a modeling platform supporting multiple design abstractions , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).