GPU-Acceleration of Block Ciphers in the OpenSSL Cryptographic Library

  • Johannes Gilger
  • Johannes Barnickel
  • Ulrike Meyer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7483)


The processing power of graphic processing units (GPUs) has been applied for cryptographic algorithms for some time. For AES and DES especially, there is large body of existing academic work and some available code which makes use of the CUDA framework.

We contribute to the field of symmetric-key GPU cryptography by implementing and benchmarking multiple block ciphers on CUDA and OpenCL in the form of an OpenSSL cryptographic engine. We show common techniques to implement and accelerate these block ciphers (AES, DES, Blowfish, Camellia, CAST5, IDEA). Another equally important part of our work presents a guideline on how to perform reproducible benchmarks of these ciphers and similar GPU algorithms.


GPU Graphics Processing Unit Block Cipher Cryptography Symmetric Key AES DES Blowfish IDEA CAST-5 Camellia OpenSSL Performance Benchmark 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adams, C.: The CAST-128 Encryption Algorithm. RFC 2144 (Informational) (May 1997)Google Scholar
  2. 2.
    Agosta, G., Barenghi, A., Santis, F.D., Biagio, A.D., Pelosi, G.: Fast Disk Encryption through GPGPU Acceleration. In: PDCAT, pp. 102–109. IEEE Computer Society (2009)Google Scholar
  3. 3.
    Agosta, G., Barenghi, A., Santis, F.D., Pelosi, G.: Record Setting Software Implementation of DES Using CUDA. In: ITNG, pp. 748–755. IEEE Computer Society (2010)Google Scholar
  4. 4.
    Biagio, A.D., Barenghi, A., Agosta, G., Pelosi, G.: Design of a parallel AES for graphics hardware using the CUDA framework. In: IPDPS, pp. 1–8. IEEE (2009)Google Scholar
  5. 5.
    Bos, J.W., Stefan, D.: Performance Analysis of the SHA-3 Candidates on Exotic Multi-core Architectures. In: Mangard, S., Standaert, F.-X. (eds.) CHES 2010. LNCS, vol. 6225, pp. 279–293. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  6. 6.
    Cook, D.L., Ioannidis, J., Keromytis, A.D., Luck, J.: CryptoGraphics: Secret Key Cryptography Using Graphics Cards. In: Menezes, A. (ed.) CT-RSA 2005. LNCS, vol. 3376, pp. 334–350. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Daniel, T.R., Mircea, S.: AES on GPU using CUDA. In: 2010 European Conference for the Applied Mathematics & Informatics. World Scientific and Engineering Academy and Society Press (2010)Google Scholar
  8. 8.
    N. I. for Standards and Technology. Data Encryption Standard (DES). NIST FIPS PUB 46-3 (1999)Google Scholar
  9. 9.
    Gervasi, O., Russo, D., Vella, F.: The AES Implantation Based on OpenCL for Multi/many Core Architecture. In: International Conference on Computational Science and its Applications, pp. 129–134 (2010)Google Scholar
  10. 10.
    Harrison, O., Waldron, J.: AES Encryption Implementation and Analysis on Commodity Graphics Processing Units. In: Paillier, P., Verbauwhede, I. (eds.) CHES 2007. LNCS, vol. 4727, pp. 209–226. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. 11.
    Harrison, O., Waldron, J.: Practical Symmetric Key Cryptography on Modern Graphics Hardware. In: USENIX Security Symposium, pp. 195–210. USENIX Association (2008)Google Scholar
  12. 12.
    Harrison, O., Waldron, J.: GPU accelerated cryptography as an OS service. Transactions on Computational Science 11, 104–130 (2010)Google Scholar
  13. 13.
    Jang, K., Han, S., Han, S., Moon, S., Park, K.: Accelerating SSL with GPUs. In: SIGCOMM, pp. 437–438. ACM (2010)Google Scholar
  14. 14.
    Jang, K., Han, S., Han, S., Moon, S., Park, K.: SSLShader: Cheap SSL acceleration with commodity processors. In: Proceedings of NSDI 2011 (2011)Google Scholar
  15. 15.
    Khronos OpenCL Working Group. The OpenCL Specification, version 1.1 (September 30, 2010)Google Scholar
  16. 16.
    Kumar, S., Paar, C., Pelzl, J., Pfeiffer, G., Schimmler, M.: Breaking Ciphers with COPACOBANA –A Cost-Optimized Parallel Code Breaker. In: Goubin, L., Matsui, M. (eds.) CHES 2006. LNCS, vol. 4249, pp. 101–118. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Lai, X., Massey, J.L.: A Proposal for a New Block Encryption Standard. In: Damgård, I.B. (ed.) EUROCRYPT 1990. LNCS, vol. 473, pp. 389–404. Springer, Heidelberg (1991)Google Scholar
  18. 18.
    Li, C., Wu, H., Chen, S., Li, X., Guo, D.: Efficient implementation for MD5-RC4 encryption using GPU with CUDA. In: Proceedings of the 3rd International Conference on Anti-Counterfeiting, Security, and Identification in Communication, pp. 167–170. IEEE Press (2009)Google Scholar
  19. 19.
    Luken, B.P., Ouyang, M., Desoky, A.H.: AES and DES encryption with GPU. In: ISCA PDCCS, pp. 67–70. ISCA (2009)Google Scholar
  20. 20.
    Manavski, S.A.: CUDA compatible GPU as an efficient hardware accelerator for AES cryptography. In: International Conference on Signal Processing and Communications, ICSPC 2007, pp. 65–68. IEEE (2008)Google Scholar
  21. 21.
    Margara, P.: engine-cuda (2011), (accessed April 25, 2012)
  22. 22.
    Matsui, M., Nakajima, J., Moriai, S.: A Description of the Camellia Encryption Algorithm. RFC 3713 (Informational) (April 2004)Google Scholar
  23. 23.
    Mei, C., Jiang, H., Jenness, J.: CUDA-based AES parallelization with fine-tuned GPU memory utilization. In: IPDPS Workshops 2010, pp. 1–7 (2010)Google Scholar
  24. 24.
    Milo, F., Bernaschi, M., Bisson, M.: A fast, GPU based, dictionary attack to OpenPGP secret keyrings. Journal of Systems and Software 84(12), 2088–2096 (2011)CrossRefGoogle Scholar
  25. 25.
    Nazlee, A.M., Hussin, F.A., Ali, N.B.Z.: Serpent encryption algorithm implementation on Compute Unified Device Architecture (CUDA). In: IEEE Student Conference on Research and Development (SCOReD), 2009, pp. 164–167. IEEE (2010)Google Scholar
  26. 26.
    NIST. Advanced Encryption Standard (AES). National Institute of Standards and Technology (2001)Google Scholar
  27. 27.
    Noer, D., Engsig-Karup, A., Zenner, E.: Improved Software Implementation of DES Using CUDA and OpenCLGoogle Scholar
  28. 28.
    OpenSSL. OpenSSL: The Open Source toolkit for SSL/TLS (2011), (accessed April 25, 2012)
  29. 29.
    Schneier, B.: Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish). In: Anderson, R. (ed.) FSE 1993. LNCS, vol. 809, pp. 191–204. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  30. 30.
    Sun, W.: kgpu: Augmenting Linux with the GPU (2011), (accessed April 25, 2012)
  31. 31.
    Yamanouchi, T.: AES encryption and decryption on the GPU. In: Nguyen, H. (ed.) GPU Gems 3, ch. 36. Addison Wesley Professional (August 2007)Google Scholar
  32. 32.
    Yang, J., Goodman, J.: Symmetric Key Cryptography on Modern Graphics Hardware. In: Kurosawa, K. (ed.) ASIACRYPT 2007. LNCS, vol. 4833, pp. 249–264. Springer, Heidelberg (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Johannes Gilger
    • 1
  • Johannes Barnickel
    • 1
  • Ulrike Meyer
    • 1
  1. 1.Research Group IT-SecurityRWTH Aachen UniversityAachenGermany

Personalised recommendations