Paracrypt is an open-source AES GPU implementation that has been developed from scratch with CUDA. The implementation is based in lookup tables and supports ECB, CTR, CBC*, and CFB* operation modes. Factors such as the parallelism level, the use of constant and shared memory, asynchronous page-locked IO, and overlapping between data transfers and calculations has been taking into account.
* only decryption
The results show a speedup peak of 119% with CTR encryption against OpenSSL’s CPU implementation with files larger than 60 MB (without AES-NI support) and a peak of 87% with CBC/CFB decryption of files larger than 125 MB. The maximum registered throughput is 237 MB/s, above drive buffer read rate of 208 MB/s (non-cached). It is expected to obtain performance yields around 55% with CTR encryption and 49% with CBC or CFB decryption although the SSD of our machine seem to be acting as a bottleneck so it is important to perform more tests in environments that can supply higher rates of data while benchmarking how much PCI-e bandwidth is being used to ascertain if higher speedups against a CPU version are possible with Paracrypt.
This paper explore different available alternatives regarding to the GPU acceleration of an Advanced Encryption Standard (AES) software implementation. The aim is to present if GPUs could be used to efficiently satisfy the high-throughput necesities when processing large rates of data. The reader will be thoroughly introduced in the area of GPU cipher acceleration so he can obtain a better understanding of the challenges and possibilities GPU hardware has to offer. For this reason, the paper will review the characteristics of symmetric ciphers, the impact of the block mode of operation for parallelization, and the advantages and disadvantages of diverse parallel programming models. The paper discuss the specific details of a high-performance AES implementation, Paracrypt, along with its performance outcomes and limitations.
The project presentation is also available in spanish:
paracrypt.0.9.0-dev-light.zip | Contains the source code, linux installer, and scripts to generate performance results. |
paracrypt.0.9.0-dev.zip | This bundle also contains reference papers and previous development versions. |