Elliptic Curve Point Multiplication Obfuscation via Split Variables
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


