Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware
Graphics processing units (GPU) are increasingly being used for general purpose computing. We present implementations of large integer modular exponentiation, the core of public-key cryptosystems such as RSA, on a DirectX 10 compliant GPU. DirectX 10 compliant graphics processors are the latest generation of GPU architecture, which provide increased programming flexibility and support for integer operations. We present high performance modular exponentiation implementations based on integers represented in both standard radix form and residue number system form. We show how a GPU implementation of a 1024-bit RSA decrypt primitive can outperform a comparable CPU implementation by up to 4 times and also improve the performance of previous GPU implementations by decreasing latency by up to 7 times and doubling throughput. We present how an adaptive approach to modular exponentiation involving implementations based on both a radix and a residue number system gives the best all-around performance on the GPU both in terms of latency and throughput. We also highlight the usage criteria necessary to allow the GPU to reach peak performance on public key cryptographic operations.
KeywordsGraphics Processor Public-Key Cryptography RSA Residue Number System
Unable to display preview. Download preview PDF.
- 1.Nvidia CUDA Programming Guide, Version 2.0 (2008)Google Scholar
- 2.Microsoft, Direct X Technology, http://msdn.microsoft.com/directx/
- 3.Nvidia Corporation, “CUDA”, http://developer.nvidia.com/object/cuda.html
- 9.Harrison, O., Waldron, J.: Practical Symmetric Key Cryptography on Modern Graphics Hardware. In: 17th USENIX Security Symposium, San Jose, CA, July 28 - August 1 (2008)Google Scholar
- 10.Moss, A., Page, D., Smart, N.P.: Toward Acceleration of RSA Using 3D Graphics Hardware. In: 11th IMA International Conference on Cryptography and Coding, Cirencester, UK, December 18-20 (2007)Google Scholar
- 12.AMD 64 RSA Benchmarks, http://www.cryptopp.com/benchmarks-amd64.html
- 14.OpenSSL Open Source Project, http://www.openssl.org/
- 20.Granlund, T., Montgomery, P.: Division by Invariant Integers using Multiplication. In: SIGPLAN 1994 Conference on Programming Language Design and Implementation, Orlando, Florida (June 1994)Google Scholar