Elliptic Curve Point Multiplication Obfuscation via Split Variables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications face challenges in protecting against reverse engineering, as attackers can use tools to analyze and understand the code, especially when computations are performed on encoded values that need to be decoded and re-encoded, potentially revealing plain values to the attacker.

Innovation Solution

The method involves using split variable expressions to obscure software code by permutating data arrays and operations, using secret values for encoding and decoding, such that the secret values are not observable to attackers, and applying these techniques to modular exponentiation and elliptic curve cryptography functions to prevent reverse engineering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code obfuscation is applied to protect software from reverse engineering, then security against attackers is improved, but the complexity of the code increases

Engineering Contradiction:
ImprovesecurityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The code is segmented into multiple representation forms (original code, encoded code, and intermediate representations). The obfuscation system divides the protection mechanism into distinct modules: encoding modules that transform code segments, execution modules that run the obfuscated code, and decoding modules that restore results. This segmentation allows complex obfuscation to be achieved through systematic transformation of code segments rather than monolithic complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Encoded intermediate representations serve as mediators between the original source code and the final executable. The system introduces encoded variable representations, encoded instruction representations, and encoded data representations as intermediary forms that preserve semantic meaning while obscuring syntactic structure from attackers. These intermediaries enable the code to maintain functionality while resisting reverse engineering analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If multiple encoded representations are used to obscure data values, then reverse engineering difficulty increases, but the computational overhead increases

Engineering Contradiction:
Improvereverse engineering difficultyVSAvoidcomputational overhead
Core Design Contradiction:
Difficulty of detecting and measuringVSUse of energy by moving object

Solution Approach 1:

The system changes the representation parameters of data and code rather than their fundamental nature. Encoding transformations modify parameters such as variable names, instruction opcodes, and data formats while preserving the underlying computational logic. This parameter transformation approach increases reverse engineering difficulty without requiring computationally intensive cryptographic operations, as the encoded representations can be efficiently evaluated and executed.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If encoded values are used in computations, then data protection is improved, but the need to decode and re-encode values reveals plain values to attackers

Engineering Contradiction:
Improvedata protectionVSAvoidinformation leakage
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system maintains continuous operation in the encoded domain throughout the entire computation process. Encoded values are propagated through all computational stages without being decoded to plain form. The execution engine directly evaluates encoded instructions and operates on encoded data representations, eliminating the decode-compute-reencode cycle that would expose plain values to attackers. This continuous encoded operation ensures data protection while maintaining computational functionality.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10068070B2White-box elliptic curve point multiplication
Publication Date: 2018.09.04 NXP BV
  • US10068070B2 patent drawing
  • US10068070B2 patent drawing
  • US10068070B2 patent drawing

AI summary

A method of obscuring software code implementing an elliptic curve cryptography (ECC) point multiplication function, including: receiving ECC parameters including a multiplier d having N bits; transforming multiplier d into an array d(i) with −1, 0, and +1 values while maintaining the same value for d; and generating ECC point multiplication function operations using the transformed multiplier array d(i) and N, wherein the generated ECC point multiplication function operations are split variable operations.