Exploiting SIMD Instructions in Modern Microprocessors to Optimize the Performance of Stream Ciphers

Full Text (PDF, 284KB), PP.56-66

Views: 0 Downloads: 0

Author(s)

P. Mabin Joseph 1,* J. Rajan 1 K.K. Kuriakose 1 S. A.V. Satya Murty 1

1. Computer Division, Indira Gandhi Centre for Atomic Research, Department of Atomic Energy, Kalpakkam, India

* Corresponding author.

DOI: https://doi.org/10.5815/ijcnis.2013.06.08

Received: 7 Aug. 2012 / Revised: 3 Dec. 2012 / Accepted: 12 Feb. 2013 / Published: 8 May 2013

Index Terms

Software Encryption, Optimization, INTEL, SIMD, SSE, eSTREAM

Abstract

Modern microprocessors are loaded with a lot of performance optimization features. Single Instruction Multiple Data (SIMD) instruction set feature specially designed for improving the performance of multimedia applications is one among them. But most of the encryption algorithms do not use these features to its fullest. This paper discusses various optimization principles to be followed by encryption algorithm designers to exploit the features of underlying processor to the maximum. It also analyses the performance of four eSTREAM finalist stream ciphers – HC-128, Rabbit, Salsa 20/12 and Sosemanuk – under various methods of implementation. Scope of implementing these stream ciphers using SIMD instructions is examined and improvement in performance achieved by this implementation has been measured. Modifications in the algorithm which provide further improvement in performance of these ciphers are also studied.

Cite This Paper

P. Mabin Joseph, J. Rajan, K.K. Kuriakose, S.A.V. Satya Murty, "Exploiting SIMD Instructions in Modern Microprocessors to Optimize the Performance of Stream Ciphers", International Journal of Computer Network and Information Security(IJCNIS), vol.5, no.6, pp.56-66, 2013. DOI:10.5815/ijcnis.2013.06.08

Reference

[1]The eSTREAM Portfolio in 2012, http://www.ecrypt.eu. org/documents/D.SYM.10-v1.pdf.
[2]B. Schneier and D. Whiting, "Fast Software Encryption: Designing Encryption Algorithms for Optimal Software Speed on the Intel Pentium Processor", Fast Software Encryption, Fourth International Conference Proceedings, Springer-Verlag, 1997, pp. 242-259.
[3]Intel® 64 and IA-32 Architectures Optimization Reference Manual, http://www.intel.com/content/www/us/en/archite- cture-and-technology/64-ia-32-architectures-optimization-manual.html
[4]Instruction tables - Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs, www.agner.org/optimize/ instruction_tables.pdf.
[5]H. Wu., "The Stream Cipher HC-128", New Stream Cipher Designs, Lecture Notes in Computer Science-4986, Springer-Verlag, 2008, pp. 39-47.
[6]M. Boesgaard, M. Vesterager and E. Zenner, "The Rabbit Stream Cipher", New Stream Cipher Designs, Lecture Notes in Computer Science-4986, Springer-Verlag, 2008, pp. 69-83.
[7]D.J. Bernstein, "The Salsa20 Family of Stream Ciphers", New Stream Cipher Designs, Lecture Notes in Computer Science-4986, Springer-Verlag, 2008, pp. 84-97.
[8]C. Berbain, O. Billet, A. Canteaut, N. Courtios, H. Gilbert, L. Goubin, A. Gouget, L. Granboulan, C. Lauradoux, M. Minier, T. Ptonin and H. Sibert, "SOSEMANUK, a fast software-oriented stream cipher", New Stream Cipher Designs, Lecture Notes in Computer Science-4986, Springer-Verlag, 2008, pp. 98-118.
[9]Brian Gladman, "Serpent", Internet: http://gladman.plushost.co.uk/oldsite/cryptography_techn- ology/serpent/index.php [Oct. 15, 2012].
[10]Intel® 64 and IA-32 Architectures Software Developer's Manual, http://www.intel.com/content/www/us/en/proce- ssors/architectures-software-developer-manuals.html.
[11]"Grøstl – a SHA-3 candidate", Internet: http://www. groestl.info/implementations.html [Oct. 15, 2012].