Program Obfuscation via Dummy Blocks and Segmented Instructions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for obfuscating programs containing confidential information, such as encryption keys, are vulnerable to unauthorized analysis as they can be detected through collected constant data, even when control structures are complicated.
Innovation Solution
A program obfuscating device that generates an obfuscated program by inserting dummy blocks and process instructions, making it difficult for unauthorized analyzers to obtain confidential information by using a storage unit, process instruction generating unit, process instruction inserting unit, dummy block generating unit, and dummy block inserting unit to create a graph that is hard to analyze.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Difficulty of detecting and measuring
If dummy code is inserted to obfuscate the program control structure, then it becomes difficult to estimate the algorithm and location of modules, but confidential information can still be detected through collected constant data
Solution Approach 1:
The confidential information is divided into multiple segments and stored in different locations within the program. Instead of keeping the complete confidential data in one place, it is fragmented across multiple instruction groups, making it impossible to detect the full confidential information by simply collecting constant data from the obfuscated program.
Solution Approach 2:
The harmful element (complete confidential information) is extracted from the constant data that can be easily collected. By removing the complete confidential data from the program's constant pool and replacing it with segmented pieces, the patent eliminates the vulnerability where analyzers could collect all constant data and reconstruct the confidential information.
2Device complexity
If the program control structure is complicated through obfuscation, then unauthorized analysis becomes difficult, but the confidential information still exists in the program and can be found in constant data
Solution Approach 1:
Confidential information is segmented into multiple parts distributed across different instruction groups. This segmentation ensures that even if the program control structure is complicated, the confidential information remains protected because analyzers cannot reconstruct it from collected constant data when the complete information is split into non-contiguous segments.
Solution Approach 2:
Dummy instruction groups are introduced as intermediaries between the actual confidential information segments. These dummy groups contain constant data that mimics the appearance of confidential information but are harmless. When analyzers collect constant data, they receive a mixture of real segmented confidential data and dummy data, making reliable detection impossible.
3Loss of information
If divisional secrets are used to replace program instructions containing confidential information, then confidential information cannot be detected from collected constant data, but unauthorized analyzers can still detect divisional secrets and reconstruct the confidential information
Solution Approach 1:
Dummy instruction groups are inserted as intermediaries among the divisional secrets. These dummy groups contain constant data that is indistinguishable from real confidential information segments. When analyzers detect and collect constant data, they cannot differentiate between dummy data and real segmented confidential data, preventing reliable reconstruction of the original confidential information.
Solution Approach 2:
Different instruction groups have different qualities: some contain real segmented confidential information while others contain dummy data. This local differentiation in quality (real vs. dummy) within the overall structure of divisional secrets makes it impossible for analyzers to identify which segments are genuine, thereby protecting the confidential information even when divisional secrets are detected.
Data Source
AI summary
A program obfuscating device for generating obfuscated program from which unauthorized analyzer cannot obtain confidential information easily. The program obfuscating device stores original program that contains authorized program instructions and confidential process instruction group containing confidential information that needs to be kept confidential, generates process instructions which, when executed in predetermined order, provide same result, with execution of last process instruction thereof, as the confidential process instruction group, inserts the process instructions into the original program at position between start of the original program and the confidential process instruction group so as to be executed in the predetermined order, in place of the confidential process instruction group, generates dummy block as dummy of the process instructions, and inserts the dummy block and control instruction, which causes the dummy block to be bypassed, into the original program, and inserts branch instruction into the dummy block.


