GPU Encrypt


Project maintained by jagleeso Hosted on GitHub Pages — Theme by mattgraham

Proposal

First Progress Report

Second Progress Report

Final Report

Summary

Attackers who have physical access to mobile phones can potentially uncover private data pertaining to the original user. Many existing encryption-decryption algorithms like Advanced Encryption Algorithm (AES) have used parallelism to improve the implementation of cryptographic modes. Recently, frameworks have appeared for performing general-purpose parallel programming on GPUs (GPGPU), such as OpenCL. OpenCL provides a model for programming whereby a host processor (in this case, a CPU) delegates work to be performed in parallel by computing nodes (GPUs). GPUs are attractive for parallel processing because these architectures have hundreds of processing cores and high bandwidth, delivering higher computing power from the same silicon area as a comparable microprocessor and using only a fraction of the power per calculation.

Goal

The Nexus 4 phone from Google uses a Qualcomm Snapdragon S4 chipset which supports the OpenCL Embedded Profile, and comes with an Adreno 320 GPU. We will investigate the trade-offs in computational time and power consumption that can be achieved on the Nexus 4 when comparing a software implementation of the AES encryption algorithm to an OpenCL GPU implementation. Further, we will provide a framework through which regions of physical memory belonging to processes on the Nexus 4 can be encrypted when they are in an idle state, and investigate the overhead paid in battery consumption.

Authors and Contributors

James Gleeson (@jagleeso) jagleeso@gmail.com

Sreekumar Rajan (@sreekumarrajan) sreekumar.rajan@gmail.com

Vandana Saini (@vsaini123) vsaini@cs.toronto.edu