Encrypted GPU Program Embedding Framework
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing units (GPUs) face the risk of reverse engineering and plagiarism due to the need for uncompiled source code to be loaded and compiled at runtime, exposing proprietary GPU programs to unauthorized access.
Innovation Solution
A framework for embedding encrypted GPU programs into computer software, where the raw GPU programs are processed by a source code generator using a randomly generated encryption key and undisclosed algorithm, stored as constants in source code files, and decrypted by a GPU program manager library at runtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If uncompiled GPU source code is distributed for runtime compilation, then GPU programming flexibility and functionality are improved, but proprietary source code becomes vulnerable to reverse engineering and plagiarism
Solution Approach 1:
The GPU source code is encrypted before distribution and compilation. The encryption key and algorithm are prepared in advance and embedded in the compiled binary file, ensuring that the source code remains protected during storage and transmission while still allowing authorized decryption and compilation when needed.
Solution Approach 2:
An encryption mechanism acts as an intermediary between the GPU source code and the compiled binary. This intermediary layer transforms the readable source code into encrypted form for storage and transmission, while providing a controlled decryption path for authorized users through the embedded key and algorithm in the binary file.
2Ease of operation
If GPU source code is included in distributed software, then application functionality is enabled, but trade secrets become exposed to unauthorized access
Solution Approach 1:
The encryption algorithm transforms the GPU source code from a readable state to an encrypted state, fundamentally changing its parameter (readability). The compiled binary file contains both the encrypted source code and the decryption key, allowing the code to transition from encrypted to readable form only when executed through the authorized software environment.
3Reliability
If encryption keys and algorithms are embedded in source code files, then source code protection is improved, but device complexity increases
Solution Approach 1:
The encryption key, decryption algorithm, and GPU source code are merged into a single integrated system where the key and algorithm are embedded within the compiled binary file that also contains the encrypted source code. This merging simplifies the distribution process while maintaining security, as all components are delivered together in one package.
Data Source
AI summary
A computer-implemented method, apparatus, and article of manufacture provide a framework for embedding a graphical processing unit (GPU) program in computer software. A GPU program, that can be loaded and executed by a GPU, is obtained and encrypted to create an encrypted GPU program. The encrypted GPU program is stored in a source code file for the computer software and then compiled.


