Code Key Mixing for Copy Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional software-based cryptographic algorithms for copy protection are vulnerable to reverse engineering, as the software process and keys are stored separately, making them susceptible to hacking through techniques like single stepping or inserting breakpoints.
Innovation Solution
A method that generates code and mixes predefined data, such as keys, into the binary representation of the code, making them indistinct from each other, and uses an iterative process to combine and separate them, thereby obscuring the keys and making it difficult for hackers to obtain the cryptographic process or keys.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software cryptographic algorithms are used for copy protection, then copy protection functionality is achieved, but the system becomes vulnerable to reverse engineering
Solution Approach 1:
The patent merges the cryptographic code and key data into a single combined structure. The key data is embedded within the code binary representation, making them indistinct from each other. This combination prevents hackers from separately accessing the key data, as any modification to the code automatically changes the embedded key, thus resolving the vulnerability to reverse engineering while maintaining copy protection functionality
Solution Approach 2:
The patent implements nesting by embedding the key data inside the code structure. The key data is hidden within the binary representation of the code, similar to a nested doll where one object is contained within another. This nesting makes it extremely difficult for hackers to extract the key data without executing the code, thereby enhancing security against reverse engineering
2Ease of operation
If keys are stored separately from software process, then key management is simplified, but security against hacking is reduced
Solution Approach 1:
The patent combines previously separate entities (code and key data) into a unified structure. By embedding the key data within the code binary, the system eliminates the need for separate key storage and management, while simultaneously enhancing security. Any attempt to access or modify the code directly impacts the embedded key, making separate key management attacks ineffective
3Object-affected harmful factors
If code and keys are mixed together, then reverse engineering difficulty increases, but system complexity increases
Solution Approach 1:
The merging of code and key data is achieved through a systematic embedding process where key data is integrated into the binary representation of the code. This creates a unified structure that increases reverse engineering difficulty while maintaining manageable system complexity through automated processing and clear operational procedures
Data Source
AI summary
A method for obscuring data and software including the steps of (A) generating code for performing a predefined operation using one or more sets of predefined data, (B) generating a first binary representation of the code and (C) mixing the one or more sets of predefined data into the binary representation of the code such that the one or more sets of predefined data and the code are substantially indistinct from each other.


