White-Box Cryptography Binding via Lookup Table Pre-computation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In the context of white-box cryptography, existing software implementations face challenges in securely binding cryptographic operations to a specific device or user, making them vulnerable to unauthorized use and tampering, especially in environments where attackers have complete control over the system.
Innovation Solution
A non-transitory machine-readable storage medium encoded with instructions that bind a cryptographic implementation to a binding string value, ensuring the cryptographic operation produces a correct output only when the identifying string value matches the binding string value, and produces an incorrect output otherwise, using techniques such as encoding, perturbation, and obfuscation within a network of lookup tables or finite state machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If cryptographic functions are implemented in software with obfuscation techniques, then adaptability and cost are improved, but security against white-box attacks deteriorates
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing intermediate values in lookup tables before execution. The cryptographic function is transformed into a network of lookup tables where intermediate results are pre-calculated and stored, allowing the system to retrieve results directly without performing the full cryptographic computation at runtime. This pre-computation approach maintains security while enabling software flexibility.
Solution Approach 2:
The patent introduces intermediary elements in the form of lookup tables that act as mediators between the input and output of cryptographic functions. These lookup tables contain pre-computed intermediate values that obscure the actual cryptographic operations, making it difficult for attackers to analyze the security-critical parts of the system while still producing correct cryptographic results.
2Reliability
If lookup tables are used to obscure cryptographic functions, then security against reverse engineering is improved, but device complexity increases
Solution Approach 1:
The patent applies segmentation by dividing the cryptographic function into multiple smaller lookup tables, each handling a specific portion of the computation. Instead of using a single large lookup table, the cryptographic operation is broken down into sequential steps, with each step represented by a separate lookup table. This segmentation makes the implementation more manageable and easier to verify while maintaining security.
Solution Approach 2:
The patent applies local quality by making different parts of the cryptographic implementation have different properties. Some lookup tables use randomized indexing, others use fixed patterns, and different obfuscation techniques are applied to different segments. This variation in local properties increases tamper resistance without requiring the entire system to be uniformly complex.
3Reliability
If binding string verification is implemented, then security against unauthorized use is improved, but operational speed deteriorates
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing binding-verified intermediate values in the lookup tables during system initialization. The binding string verification is performed once during setup, and the verified results are cached in the lookup tables. During actual cryptographic operations, the system directly retrieves pre-verified values from the lookup tables without repeating the binding verification, thus maintaining security while improving operational speed.
Data Source
AI summary
A method of performing a cryptographic operation using a cryptographic implementation in a cryptographic system, including: receiving, by the cryptographic system, an identifying string value; receiving, by the cryptographic system, an input message; performing, by the cryptographic system, a keyed cryptographic operation mapping the input message into an output message wherein the output message is the correct result when the identifying string value equals a binding string value.


