Modular Exponentiation Input Output Obfuscation via Split Variable Encoding

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 encoding to obscure software code by permutating data arrays and operations, using secret values to create encoded expressions that obscure indices and perform computations without revealing secret values to attackers, and applying these techniques to modular exponentiation and elliptic curve cryptography functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code obfuscation is applied to protect software against reverse engineering, then security against reverse engineering is improved, but the code complexity increases making it harder to understand and maintain

Engineering Contradiction:
Improvesecurity against reverse engineeringVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces encoded values as intermediary representations between plain data and the cryptographic operations. Instead of operating directly on plain data, the system encodes data using secret values before processing, and decodes after processing. This intermediary encoded representation prevents attackers from understanding the actual data values while maintaining functional correctness, thus improving security without fundamentally changing the operational logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameter representation by transforming plain data values into encoded values using modular arithmetic with secret parameters. The encoding function `encoded = (plain * secret_alpha + secret_beta) mod modulus` transforms the data parameters, and the system operates on these transformed parameters throughout the computation, only converting back to plain values at the output. This parameter transformation maintains security while preserving computational efficiency.

Inventive Principle:
Principle #35Parameter changes

2Loss of information

If encoded values are used to hide data during processing, then data confidentiality is improved, but the need to decode and re-encode values increases computational overhead

Engineering Contradiction:
Improvedata confidentialityVSAvoidcomputational efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent performs preliminary encoding of data values before they enter the cryptographic processing pipeline. The encoding is done once at the input using pre-determined secret values, and the encoded values then flow through all subsequent operations without needing repeated encoding/decoding cycles. This preliminary action eliminates redundant computational overhead while maintaining continuous data confidentiality throughout the processing chain.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuity by performing all cryptographic operations directly on encoded values without breaking the encoding state. The modular exponentiation and other cryptographic functions are adapted to operate natively on encoded representations, allowing the useful action of data protection to continue uninterrupted through the entire computation, avoiding costly decode-re-encode cycles at each operation step.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If multiple secret values are used in encoding operations, then security against analysis is improved, but the number of operations and computational complexity increases

Engineering Contradiction:
Improvesecurity against analysisVSAvoidnumber of operations
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges multiple secret values (secret_alpha, secret_beta, modulus) into a unified encoding scheme that is applied consistently across all data operations. Rather than applying separate encoding transformations at each step, the combined effect of these secret values is integrated into the modular arithmetic operations themselves, reducing the number of discrete encoding/decoding steps while maintaining the security benefits of multiple secret parameters.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10726108B2Protecting the input/output of modular encoded white-box RSA
Publication Date: 2020.07.28 NXP BV
  • US10726108B2 patent drawing
  • US10726108B2 patent drawing
  • US10726108B2 patent drawing

AI summary

A method of obscuring the input and output of a modular exponentiation function, including: receiving modular exponentiation parameters including an exponent e having N bits and a modulus m; generating randomly a pre-multiplier; calculating a post-multiplier based upon the pre-multiplier, exponent e, and modulus m; multiplying an input to the modular exponentiation function by the pre-multiplier; performing the modular exponentiation function; and multiplying the output of the modular exponentiation function by the post-multiplier, wherein multiplying an input to the modular exponentiation function by the pre-multiplier, performing the modular exponentiation function, and multiplying the output of the modular exponentiation function by the post-multiplier are split variable operations.