Obfuscated Function Execution via Bijection Transformations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for executing code in a white-box environment fail to effectively obscure input and output values, as well as secret information, making it feasible for users to determine these values even when executed in a secure environment.

Innovation Solution

A method involving bijective functions is employed to transform input and output values, where each value is represented as part of a set of values, and transformed versions are generated using corresponding bijections, allowing the processor to perform operations without revealing the original values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If code is executed in a white-box environment where users can inspect and modify code and data, then ease of operation and debugging is improved, but security and confidentiality of input/output values and secret information deteriorates

Engineering Contradiction:
Improveease of debuggingVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces intermediary transformation layers (bijection functions) between the original data and the processed data. These intermediaries obscure the relationship between input/output values and the actual computation, allowing users to inspect code while preventing them from determining secret information. The transformed values act as mediators that preserve computational functionality while hiding sensitive data.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies parameter changes by transforming data values through bijection functions that change the representation of inputs and outputs. Instead of using original values directly, the system uses transformed versions where the mapping is known to the system but not inferable by users inspecting the code. This changes the parameter representation while maintaining computational correctness.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If transformation functions are applied to obscure values, then security is improved, but device complexity and computational overhead increases

Engineering Contradiction:
ImprovesecurityVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the transformation process into distinct components: forward bijection functions for transforming inputs to processed values, and inverse bijection functions for recovering original values. This segmentation allows the system to manage complexity by organizing transformations into modular, reusable functions rather than monolithic complex operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses copying by creating transformed copies of original data through bijection functions. Instead of modifying original data or creating entirely new complex structures, the system generates copied transformed versions that preserve the necessary information while obscuring sensitive values. The inverse functions serve as copies that can recover original data when needed.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10944545B2Obfuscated performance of a predetermined function
Publication Date: 2021.03.09 IRDETO BV
  • US10944545B2 patent drawing
  • US10944545B2 patent drawing
  • US10944545B2 patent drawing

AI summary

A method of obfuscated performance of a predetermined function, wherein for the predetermined function there is a corresponding plurality of first functions so that, for a set of inputs for the function, a corresponding set of outputs may be generated by (a) representing the set of inputs as a corresponding set of values, wherein each value comprises at least part of each input of a corresponding plurality of the inputs, (b) generating a set of one or more results from the set of values, where each result is generated by applying a corresponding first function to a corresponding set of one or more values in the set of values, and (c) forming each output as either a part of a corresponding one of the results or as a combination of at least part of each result of a corresponding plurality of the results; wherein the method comprises: obtaining, for each value in the set of values, one or more corresponding transformed versions of said value, wherein a transformed version of said value is the result of applying a bijection, that corresponds to said transformed version, to said value; and generating a set of transformed results corresponding to the set of results, wherein each transformed result corresponds to a respective result and is generated by applying a second function, that corresponds to the first function that corresponds to the respective result, to a transformed version of the one or more values of the respective set of one or more values for the corresponding first function.