Abstract
Network applications need to be fast and at the same time provide security. In order to minimize the overhead of the security algorithm on the performance of the application, the speeds of encryption and decryption of the algorithm are critical. To obtain maximum performance from the algorithm, efficient techniques for its implementation must be used and the implementation must be tuned for the specific hardware on which it is running.
Bitslice is a non-conventional but efficient way to implement DES in software. It involves breaking down of DES into logical bit operations so that N parallel encryptions are possible on a single N-bit microprocessor. This results in tremendous throughput. AES is a symmetric block cipher introduced by NIST as a replacement for DES. It is rapidly becoming popular due to its good security features, efficiency, performance and simplicity. In this paper we present an implementation of AES using the bitslice technique. We analyze the impact of the architecture of the microprocessor on the performance of bitslice AES. We consider three processors; the Intel Pentium 4, the AMD Athlon 64 and the Intel Core 2. We optimize the implementation to best utilize the superscalar architecture and SIMD instruction set present in the processors.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Biham, E.: A Fast New DES Implementation in Software. In: Biham, E. (ed.) FSE 1997. LNCS, vol. 1267, pp. 260–272. Springer, Heidelberg (1997)
National Institute of Standards and Technology (NIST), Information Technology Laboratory (ITL), Advanced Encryption Standard (AES), Federal Information Processing Standards (FIPS) Publication 197 (2001)
National Institute of Standards and Technology (NIST), Computer Security Division, Recommendation for Block Cipher Modes of Operation: Methods and Techniques, Special Publication 800-38A (2001)
Daemen, J., Rijmen, V.: AES Proposal: Rijndael, Version 2, AES submission (1999), http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf
Kwan, M.: Bitslice implementation of DES, http://www.darkside.com.au/bitslice
Rudra, A., Dubey, P.K., Jutla, C.S., Kumar, V., Rao, J.R., Rohatgi, P.: Efficient Implementation of Rijndael Encryption with Composite Field Arithmetic. In: Koç, Ç.K., Naccache, D., Paar, C. (eds.) CHES 2001. LNCS, vol. 2162, p. 319. Springer, Heidelberg (2001)
Gaubatz, G., Sunar, B.: Leveraging the Multiprocessing Capabilities of Modern Network Processors for Cryptographic Acceleration. In: 4th IEEE International Symposium on Network Computing and Applications (NAC 2005), Cambridge, Massachusetts (July 2005)
Rijmen, V.: Efficient Implementation of the Rijndael SBox, http://seer.ist.psu.edu/rijmen00efficient.html
Wolkerstorfer, J., Oswald, E., Lamberger, M.: An ASIC implementation of the AES Sboxes. In: Preneel, B. (ed.) CT-RSA 2002. LNCS, vol. 2271, pp. 67–78. Springer, Heidelberg (2002)
Canright, D.: A Very Compact S-Box for AES. In: Rao, J.R., Sunar, B. (eds.) CHES 2005. LNCS, vol. 3659, pp. 441–455. Springer, Heidelberg (2005)
Matsui, M., Fukuda, S.: How to Maximize Software Performance of Symmetric Primitives on Pentium III and 4 Processors. In: Gilbert, H., Handschuh, H. (eds.) FSE 2005. LNCS, vol. 3557, pp. 398–412. Springer, Heidelberg (2005)
Osvik, D.A., Shamir, A., Tromer, E.: Cache Attacks and Countermeasures: the Case of AES (2005), http://eprint.iacr.org/2005/271.pdf
Bernstein, D.J.: Cache-timing attacks on AES (2005), http://cr.yp.to/antiforgery/cachetiming-20050414.pdf
Aoki, K., Lipmaa, H.: Fast Implementations of AES Candidates. In: Proceedings of the 3rd AES Candidate Conference (2000), available at: http://csrc.nist.gov/encryption/aes/round2/conf3/papers/20-kaoki.pdf
AMD Manual: Software Optimization Guide for AMD Athlon 64 and AMD Opteron Processors, http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25112.PDF
Intel Manual, IA-32 Intel Architecture Optimization Reference Manual, http://download.intel.com/design/Pentium4/manuals/24896613.pdf
Fog, A.: Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel and AMD CPU’s (2006), http://www.agner.org/optimize/instruction_tables.pdf
The microarchitecture of Intel and AMD CPUs (2006), http://www.agner.org/optimize/microarchitecture.pdf
Gladman, B.: AES Code, http://fp.gladman.plus.com/AES
Lipmaa, H.: AES/Rijndael: Speed, http://www.adastral.ucl.ac.uk/~helger/research/aes/rijndael.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rebeiro, C., Selvakumar, D., Devi, A.S.L. (2006). Bitslice Implementation of AES. In: Pointcheval, D., Mu, Y., Chen, K. (eds) Cryptology and Network Security. CANS 2006. Lecture Notes in Computer Science, vol 4301. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11935070_14
Download citation
DOI: https://doi.org/10.1007/11935070_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-49462-1
Online ISBN: 978-3-540-49463-8
eBook Packages: Computer ScienceComputer Science (R0)