Skip to content

CUDA-based Cryptographic Key Obfuscation for Secure Data Analysis. Final project for COSC 89.25/189.3.

Notifications You must be signed in to change notification settings

jeffzyliu/cryptographic-key-obfuscation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA-based Cryptographic Key Obfuscation

A novel implementation of program obfuscation that leverages the unique parallel programming paradigm offered by the CUDA GPGPU computing language to generate obscure and unintelligable binary when compiled. Obfuscated binaries written in the CUDA language may be more difficult to 'crack' than ordinary CPU-based obfuscated code. This project was inspired by the concept of Translingual Obfuscation.

For details, see our Final Report.

Contributors: Andrw Yang, Matt Kenney, and Jeff Liu

"This project wins the best demonstration and presentation among all [graduate and undergraduate] teams. It picks a very challenging topic to showcase the power of GPU computing and in the end fully demonstrates the efficacy of GPU in a very novel context."

-Bo Zhu, COSC 89.25/189.25 - GPU Programming and High-Performance Computing

Proof of Concept

An end-to-end encryption and statistics data platform (for medical statistic and contact tracing) was chosen as a proof of concept application of this approach. Our concept and improvements over the status quo is illustrated by the diagram below:

Results

CPU GPU
Decryption (ms) 500~ 2.7
Statistics* (ms) 0.13 0.25
Total Time (ms) 500.13 2.95
Security RSA RSA+Obfuscation, "end to end" paradigm described below
  • We chose the t-test as the "statistics" analysis. From a performance perspective, the t-test favors the CPU. Linear regression would be a statistical measurement that takes advantage of the GPU's computational power.

The proof of concept exhibited significant runtime (~170x speedup), yet more importantly significant security improvements over CPU code. The following are the many layers of security behind our "end to end", black box encryption/obfuscation paradigm:

  • Encryption key computationally obfuscated inside the CUDA binary
  • Translingual obfuscation (in CUDA)
  • Sensitive data is routed through GPU memory only and never touches CPU/RAM
  • RSA Encryption

View the Final Report for details.

About

CUDA-based Cryptographic Key Obfuscation for Secure Data Analysis. Final project for COSC 89.25/189.3.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Cuda 57.9%
  • Jupyter Notebook 27.4%
  • C# 8.4%
  • Python 3.7%
  • C++ 2.6%