Code Obfuscation via Arithmetic XOR Transformation

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

VSEngineering 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

Engineering Contradiction:
Improvedata securityVSAvoidreverse-engineering vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If code obfuscation is applied to protect software, then protection against reverse-engineering is improved, but execution time is increased

Engineering Contradiction:
Improvesoftware protectionVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvedata accessVSAvoiddata protection
Core Design Contradiction:
Ease of operationVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8707053B2Performing boolean logic operations using arithmetic operations by code obfuscation
Publication Date: 2014.04.22 APPLE INC
  • US8707053B2 patent drawing
  • US8707053B2 patent drawing

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.