Development and Examination of In-browser GPU Accelerated Cryptography

Win, Dajne
Nisbet, Alastair
Hall, Seth
Item type
Degree name
Master of Information Security and Digital Forensics
Journal Title
Journal ISSN
Volume Title
Auckland University of Technology

Many of us use encryption frequently whether realising it or not; it is the active yet often invisible element keeping our information and data safe. Despite this, many of us underestimate the value of encryption in our daily lives. Schneier (2016) explains encryption is instrumental in protecting identities, governments, lawmakers, law enforcement, military, critical infrastructure, communications networks, power grids, transportation, and everything else we rely on in society. “As we move to the Internet of Things ... encryption will become even more critical to our personal and national security” (Schneier, 2016). Understanding the ever-changing threat landscape, predicting potential trends, and current security issues are the core roles of the security researcher. The process of establishing frameworks helps mitigate risks of the critical reliance on encryption. One of the challenges encryption faces is it is inherently computationally intensive and therefore slow. Due to mobile devices' focus on performance over security, it is vital to find methods to accelerate modern encryption algorithms to preserve information security in the future. Previous research has successfully investigated the use of hardware to accelerate encryption algorithms. Algorithm accelerators have used Graphics Processing Units (GPU) for many years and have proven these to be effective for parallel workloads. An advantage is that GPUs are already part of most computer systems, making them a fertile area for research into hardware performance. However, previous research has been limited to system specific compiled code. This research explores the ability to perform acceleration on any modern browser through a scripted programming language. The selection of NTRUEncrypt for this experiment was due to its suitability towards acceleration, protection against quantum computers and as an alternative to RSA or Elliptic Curve Cryptography (ECC). A pure JavaScript and GPU accelerated version of NTRUEncrypt were developed. The Three.js library was selected to utilise the latest version of WebGL in modern browsers and reduce development time. OpenGL ES 1.0 compatible shaders then replaced the addition and convolution operations of NTRUEncrypt, utilising the system GPU for processing. Performance comparison of encryption and decryption between NTRUEncrypt.js and NTRUEncrypt-GPU.js was then performed. Polynomial convolution at the highest security settings was 1.6 times faster on the GPU compared to the Central Processing Unit (CPU). However, results from this experiment show NTRUEncrypt-GPU.js failed to accelerate the NTRUEncrypt cryptographic algorithm. Furthermore, comparisons within this research showed JavaScript was up to 80 times slower than C, C++, and Java. Future research into accelerated cryptography would provide further knowledge, understanding and open new opportunities for improvement to information security. While NTRUEncrypt-GPU.js failed to accelerated NTRUEncrypt using currently available standards, preliminary testing using Compute Shaders proved successful and warrents further investigation.

GPU , Accelerated , Cryptography , Public key , Private key , Crypto , Javascript , Quantum , Quantum secure , NTRUEncrypt , RSA , ECC
Publisher's version
Rights statement