Implementation and Evaluation of Cryptographic Algorithms using CUDA and OpenCL
With the advent of programmable general purpose graphic processing units (GPGPUs), the computational performance of graphic cards has become interesting to researchers in the field of cryptography and security. While GPUs have historically been suited for simple shader-programs and fast floating point operations, the recent generation of these cards have put an emphasis on general purpose programming and integer computation. Thanks to an accessible programming environment and nearly full support of the C programming language, a large number of established block ciphers, asymmetric ciphers and hash algorithms has already been ported to run on GPUs.
Since many of the implementations were solely focused on theoretical performance and often were not released beyond papers describing their benchmark results, a comprehensive study and repository for different algorithms remains elusive.
The goal of this thesis is to implement some of the most widely used algorithms on CUDA and OpenCL, analyze common pitfalls and design choices and point out limits of GPU-accelerated cryptography. To this end, the algorithms will be embedded with the OpenSSL engine framework, making them available instantly in the context of existing applications using the OpenSSL library.
Graduand: Johannes Gilger
Supervisor: Johannes Barnickel