Obfuscated Function Execution via Bijection Transformations
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If transformation functions are applied to obscure values, then security is improved, but device complexity and computational overhead increases
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.
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.
Data Source
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.


