Code Obfuscation via Arithmetic XOR Transformation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing obfuscation methods for computer software are vulnerable to reverse-engineering attacks, particularly on open platforms, where attackers can recover cryptographic materials and operations, and traditional masking techniques are easily reversible once a single data pair is obtained.
Innovation Solution
The proposed method uses a function f to mask data D, along with linked functions g and h, and a binary operator op to compute XOR operations in a way that even with known data pairs, an attacker cannot unmask new values without knowing the obfuscation techniques, ensuring that functions g and h are not accessible simultaneously, and inputs and outputs can be masked, making it difficult to recover the original data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional masking techniques are used to protect data, then data security is improved, but the masking can be easily reversed once a single data pair is obtained
Solution Approach 1:
The patent segments the masking process into multiple independent components: a masking function f that transforms data D into masked form D', and an unmasking function h that requires additional inputs. This segmentation prevents reversal because the unmasking function h cannot be independently applied without knowing the specific masking inputs, thereby resolving the vulnerability where traditional single-function masking could be reversed from single data pairs.
Solution Approach 2:
The patent introduces an intermediary masking function f as a mediator between the original data D and the masked data D'. This intermediary function, combined with the linked unmasking function h, creates a secure transformation chain where data can be masked without revealing the masking key, and unmasking requires more than just the masked data, thus preventing easy reversal.
2Reliability
If code obfuscation is applied to protect software, then protection against reverse-engineering is improved, but execution time is increased
Solution Approach 1:
The patent changes the parameters of data representation by applying the masking function f to transform data D into D' using a specific mathematical transformation. This parameter change enables obfuscation while maintaining operational efficiency because the transformation is designed to be computationally efficient, thus resolving the contradiction between protection strength and execution time.
3Ease of operation
If masking functions g and h are made accessible simultaneously, then ease of operation is improved, but security is compromised as attackers can unmask data
Solution Approach 1:
The patent segments the data access operations into distinct functions: masking function f for protecting data, and unmasking function h for recovering data. These functions are made inaccessible simultaneously, with h requiring additional inputs that are not available to attackers, thus maintaining security while allowing legitimate operations.
Solution Approach 2:
The patent uses the masking function f as an intermediary that protects data D from direct access. The unmasking function h acts as a controlled intermediary that can recover data only with proper authentication and additional inputs, preventing attackers from accessing masked data while maintaining operational integrity for authorized users.
Data Source
AI summary
Method and apparatus for obfuscating computer software code, to protect against reverse-engineering of the code. The obfuscation here is of the part of the code that performs a Boolean logic operation such as an exclusive OR on two (or more) data variables. In the obfuscated code, each of the two variables is first modified by applying to it a function which deconstructs the value of each of the variables, and then the exclusive OR operation is replaced by an arithmetic operation such as addition, subtraction, or multiplication, which is performed on the two deconstructed variables. The non-obfuscated result is recovered by applying a third function to the value generated by the arithmetic operation. This obfuscation is typically carried out by suitably annotating (modifying) the original source code.

