Encrypted GPU Program Embedding Framework

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveGPU programming flexibilityVSAvoidSource code protection
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
ImproveApplication functionalityVSAvoidTrade secret confidentiality
Core Design Contradiction:
Ease of operationVSLoss of information

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.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If encryption keys and algorithms are embedded in source code files, then source code protection is improved, but device complexity increases

Engineering Contradiction:
ImproveSource code protectionVSAvoidEncryption implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7930557B2Framework for embedding graphical processing unit programs in computer software
Publication Date: 2011.04.19 AUTODESK INC
  • US7930557B2 patent drawing
  • US7930557B2 patent drawing
  • US7930557B2 patent drawing

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.