CryptoGraphics: Secret Key Cryptography Using Graphics Cards

  • Debra L. Cook
  • John Ioannidis
  • Angelos D. Keromytis
  • Jake Luck
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3376)


We study the feasibility of using Graphics Processing Units (GPUs) for cryptographic processing, by exploiting the ability for GPUs to simultaneously process large quantities of pixels, to offload symmetric key encryption from the main processor. We demonstrate the use of GPUs for applying the key stream when using stream ciphers. We also investigate the use of GPUs for block ciphers, discuss operations that make certain ciphers unsuitable for use with a GPU, and compare the performance of an OpenGL-based implementation of AES with implementations utilizing general CPUs. While we conclude that existing symmetric key ciphers are not suitable for implementation within a GPU given present APIs, we discuss the applicability of moving encryption and decryption into the GPU to image processing, including the handling of displays in thin-client applications and streaming video, in scenarios in which it is desired to limit exposure of the plaintext to within the GPU on untrusted clients.


Graphics Processing Unit Block Ciphers Stream Ciphers AES 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Biham, E.: A Fast New DES Implementation in Software. In: Biham, E. (ed.) FSE 1997. LNCS, vol. 1267, pp. 260–272. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  2. 2.
    Blaze, M., Feigenbaum, J., Naor, M.: A Formal Treatment of Remotely Keyed Encryption. In: Nyberg, K. (ed.) EUROCRYPT 1998. LNCS, vol. 1403, pp. 251–265. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  3. 3.
    Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P.: Brook for GPUs: Stream Computing on Graphics Hardware. In: Proceedings of SIGGRAPH (2004)Google Scholar
  4. 4.
    Broscius, A.G., Smith, J.M.: Exploiting Parallelism in Hardware Implementation of the DES. In: Feigenbaum, J. (ed.) CRYPTO 1991. LNCS, vol. 576, pp. 367–376. Springer, Heidelberg (1992)Google Scholar
  5. 5.
    Coppersmith, D., et al.: The MARS Cipher (1999),
  6. 6.
    Daemon, J., Rijmen, V.: The Design of Rijndael: AES the Advanced Encryption Standard. Springer, Berlin (2002)Google Scholar
  7. 7.
    Feghali, W., Burres, B., Wolrich, G., Carrigan, D.: Security: Adding Protection to the Network via the Network Processor. Intel Technology Journal 6(3) (August 2002)Google Scholar
  8. 8.
    Fernando, R., Kilgard, M.: The Cg Tutorial. Addison-Wesley, New York (2003)Google Scholar
  9. 9.
    FIPS 197 Advanced Encryption Standard, AES (2001)Google Scholar
  10. 10.
    FIPS 46-3 Data Encryption Standard, DES (1999)Google Scholar
  11. 11.
    General Purpose Computation Using Graphics Hardware,
  12. 12.
    Helion Technology Limited, High Performance Solutions in Silicon, AES (Rijndael) Core (2003),
  13. 13.
    Keromytis, A.D., Wright, J.L., de Raadt, T.: The Design of the OpenBSD Cryptographic Framework. In: Proceedings of the USENIX Annual Technical Conference, pp. 181–196 (2003)Google Scholar
  14. 14.
    Kuo, H., Verbauwhede, I.: Architectual Optimization for 1.82 Gbits/sec VLSI Implementation of Rijndael Algorithm. In: Koç, Ç.K., Naccache, D., Paar, C. (eds.) CHES 2001. LNCS, vol. 2162, pp. 51–64. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  15. 15.
    Lipmaa, H.: IDEA: A Cipher for Multimedia Architectures? In: Tavares, S., Meijer, H. (eds.) SAC 1998. LNCS, vol. 1556, pp. 248–263. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  16. 16.
    Lutz, A., Treichler, J., Gurkeynak, F.K., Kaeslin, H., Bosler, G., Erni, A., Reichmuth, S., Rommens, P., Oetiker, S., Fichtner, W.: 2G bits/s Hardware Realizations of Rijndael and Serpent:A Comparative Analysis. In: Kaliski Jr., B.S., Koç, Ç.K., Paar, C. (eds.) CHES 2002. LNCS, vol. 2523, pp. 144–158. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    McLoone, M., McConny, J.: High Performance Single Chip FPGA Rijndael Algorithms Implementations. In: Koç, Ç.K., Naccache, D., Paar, C. (eds.) CHES 2001. LNCS, vol. 2162, pp. 65–76. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  18. 18.
    Macedonia, M.: The GPU Enters Computing’sMainstream. IEEE Computer Magazine, 106–108 (October 2003)Google Scholar
  19. 19.
  20. 20.
    Microsoft Windows 9 Media Series Digital Rights Management (2004),
  21. 21.
    OpenGL Organization,
  22. 22.
    Rijmen, V., Bosselaers, A., Barreto, P.: AES Optimized ANSI C Code,
  23. 23.
    Rivest, Robshaw, Sidney and Yin, RC6 Block Cipher (1998),
  24. 24.
    Rogaway, P., Coppersmith, D.: A Software Optimized Encryption Algorithm. Journal of Cryptology 11, 273–287 (1998)zbMATHCrossRefGoogle Scholar
  25. 25.
    RSA Laboratories. PKCS1 RSA Encryption Standard, Version 1.5 (1993)Google Scholar
  26. 26.
    Schneier, B.: Applied Cryptography, 2nd edn. John Wiley and Sons, New York (1996)Google Scholar
  27. 27.
    Thompson, C., Hahn, S., Oskin, M.: Using Modern Graphics Architectures for General-Purpose Computing: A Framework and Analysis. In: 35th Annual IEEE/ACM International Symposium on Micro Architecture (MICRO-35), pp. 306–317 (2002)Google Scholar
  28. 28.
    Woo, M., Neider, J., Davis, T., Shreiner, D.: The OpenGL Programming Guide, 3rd edn. Addison-Wesley, Reading (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Debra L. Cook
    • 1
  • John Ioannidis
    • 1
  • Angelos D. Keromytis
    • 1
  • Jake Luck
    • 2
  1. 1.Department of Computer ScienceColumbia UniversityNew YorkUSA
  2. 2.10K Interactive 

Personalised recommendations