Rixen, Y. (2019):
SIMD processing of AES on the Raspberry Pi
The Raspberry Pi's GPU, called VideoCore IV 3D, is integrated on the SoC. Because Raspberry Pi's are often used without a monitor connected to it, it is massively underutilized while holding most of the Raspberry Pi's computing capability. The QPULib, a C++ library for easy programming of VideoCore IV 3Ds computing cores, called QPUs, provides an abstraction layer between the software and hardware. The Advanced Encryption Standard is of the most used encryption algorithms and is used in all kinds of applications. To take the workload from the CPU, we implemented the Advanced Encryption Standard's ECB Mode on the Raspberry Pi's GPU and built an OpenSSL-engine with it. The implementation was held back by hardware features that could not be accessed using the library without making alterations to it. In the end, we found a slight performance improvement over the CPU implementation of OpenSSL on a Raspberry Pi 2 depending on the Raspberry Pi's configuration and data length to be encrypted. With more optimizations, the results could be more promising.