OpenSSL acceleration using Graphics Processing Units
Department of Computer Science and Engineering, Tecnico Lisboa
Tecnico Lisboa, 2013
@article{saraiva2013openssl,
title={OpenSSL acceleration using Graphics Processing Units},
author={Saraiva, Pedro},
year={2013}
}
Cryptography: The study of techniques focused on security. Typically, an implementation of cryptography is computationally heavy, leading to performance issues on general purpose systems. Adding the possibility of offloading cryptographic operations to a Graphics Processing Unit (GPU) onto a widespread, open-source cryptographic library such as OpenSSL would be extremely useful in lightening the CPU load for application logic. GPUs, while originally designed to accelerate graphics processing, have been recently gained usage for unrelated, general purpose computing, due to their massive parallel computing power. As such, two main frameworks designed to take advantage of a GPU for general purpose computing have been developed in the last few years: NVIDIA’s proprietary CUDA and the Khronos Group’s open standard OpenCL. In this paper we present high-performance acceleration of the OpenSSL library using both OpenCL and CUDA, specifically for the RSA and AES algorithms. Our evaluation shows that AES decryption can be over forty times faster than the standard CPU implementation, and that RSA keys can be generated over ten times faster than on a CPU. We also study the possibilities of CBC encryption and RSA ciphering, and and conclude why those algorithms are unfeasible to run on a GPU from within OpenSSL.
January 23, 2014 by hgpu