Lightweight cipher implementations on embedded processors

“Internet on things” is a growing trend towards connecting every electronic device to each other. In one end of the communication, there are sensor nodes, which would generally be power and resource constrained. On the other end, there are more complex base systems, which will accumulate information from multiple sensors. This communication may comprise of sensitive information, which brings the need of a secure communication protocol. Lightweight ciphers have to be used due to the presence of the resource constraint sensors. The standard lightweight ciphers are hardware friendly but can be slow in software. This can hinder the performance in the base systems which are generally built with microprocessors. Hardware-software co-design can be used to improve the performance. In this paper, we show that the performance of a standard lightweight block cipher like Present can be improved by having specific instructions for bit permutation; a vital component in modern lightweight block ciphers. We show experimentally the performance benefits by adding bit permutation instructions for the NIOS II processor.

[1]  J. Grossschadl A unified radix-4 partial product generator for integers and binary polynomials , 2002, 2002 IEEE International Symposium on Circuits and Systems. Proceedings (Cat. No.02CH37353).

[2]  R. Schroeppel,et al.  Towards High Performance Cryptographic Software , 1995, Third IEEE Workshop on the Architecture and Implementation of High Performance Communication Subsystems.

[3]  Kevin Barraclough,et al.  I and i , 2001, BMJ : British Medical Journal.

[4]  Ruby B. Lee,et al.  Fast subword permutation instructions based on butterfly network , 1999, Electronic Imaging.

[5]  Johann Großschädl,et al.  Instruction Set Extensions for Fast Arithmetic in Finite Fields GF( p) and GF(2m) , 2004, CHES.

[6]  Johann Großschädl,et al.  Low-Power Design of a Functional Unit for Arithmetic in Finite Fields GF(p) and GF(2m) , 2003, WISA.

[7]  Johann Großschädl,et al.  Accelerating AES Using Instruction Set Extensions for Elliptic Curve Cryptography , 2005, ICCSA.

[8]  Andrey Bogdanov,et al.  PRESENT: An Ultra-Lightweight Block Cipher , 2007, CHES.

[9]  Ingrid Verbauwhede,et al.  High-throughput programmable cryptocoprocessor , 2004, IEEE Micro.

[10]  Johann Großschädl,et al.  An Instruction Set Extension for Fast and Memory-Efficient AES Implementation , 2005, Communications and Multimedia Security.

[11]  Johann Großschädl,et al.  Instruction Set Extensions for Efficient AES Implementation on 32-bit Processors , 2006, CHES.

[13]  Johann Großschädl,et al.  Architectural Enhancements for Montgomery Multiplication on Embedded RISC Processors , 2003, ACNS.

[14]  Johann Großschädl Architectural Support for Long Integer Modulo Arithmetic on Risc-Based Smart Cards , 2003, Int. J. High Perform. Comput. Appl..

[15]  14th Symposium on Computer Architecture and High Performance Computing (SBAC-PAD 2002), 28-30 October 2002, Vitoria, Espirito Santo, Brazil , 2002, SBAC-PAD.

[16]  Johann Großschädl,et al.  Instruction Set Extensions for Pairing-Based Cryptography , 2007, Pairing.

[17]  Johann Großschädl,et al.  Low-Power Design of a Functional Unit for Arithmetic in Finite Fields GF ( p ) and GF ( 2 m ) , 2003 .

[18]  Ingrid Verbauwhede,et al.  A 3.84 gbits/s AES crypto coprocessor with modes of operation in a 0.18-μm CMOS technology , 2005, ACM Great Lakes Symposium on VLSI.

[19]  Claude E. Shannon,et al.  Communication theory of secrecy systems , 1949, Bell Syst. Tech. J..

[20]  Johann Großschädl,et al.  Light-Weight Instruction Set Extensions for Bit-Sliced Cryptography , 2008, CHES.

[21]  Ingrid Verbauwhede,et al.  Area-throughput trade-offs for fully pipelined 30 to 70 Gbits/s AES processors , 2006, IEEE Transactions on Computers.

[22]  Johann Großschädl A unified radix-4 partial product generator for integers and binary polynomials , 2002, ISCAS.

[23]  Hai Lin,et al.  Architectural Enhancement and System Software Support for Program Code Integrity Monitoring in Application-Specific Instruction-Set Processors , 2010, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[24]  Johann Groβschädl Architectural Support for Long Integer Modulo Arithmetic on Risc-Based Smart Cards , 2003 .

[25]  Ruby B. Lee,et al.  Bit permutation instructions for accelerating software cryptography , 2000, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors.

[26]  Johann Großschädl,et al.  Optimized RISC Architecture for Multiple-Precision Modular Arithmetic , 2003, SPC.

[27]  Johann Großschädl,et al.  Instruction set extension for fast elliptic curve cryptography over binary finite fields GF(2/sup m/) , 2003, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors. ASAP 2003.

[28]  Ruby B. Lee,et al.  Fast subword permutation instructions using omega and flip network stages , 2000, Proceedings 2000 International Conference on Computer Design.