White Box Cryptographic Key Expansion via Segmented Lookup Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cryptographic solutions, such as those employing AES, are insecure in the White Box threat model where an attacker has full access to the system, allowing extraction of secret keys through observation of memory and execution processes, particularly in software implementations.
Innovation Solution
The proposed solution involves expanding binary vectors and performing binary operations covertly to hide and protect AES keys, using techniques like table lookups and permutations to obscure key information, allowing for secure key management even when the key is unknown at code compilation time or in scenarios with limited code size.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If software implementation of AES is used for encryption, then encryption speed and ease of operation are improved, but security against White Box attacks deteriorates because attackers can access memory and observe key operations
Solution Approach 1:
The cryptographic key is segmented into multiple components distributed across different lookup tables. Instead of storing the key in a single location, the key material is divided and embedded within separate tables that perform different cryptographic functions, making it impossible for an attacker to extract the complete key by observing memory contents.
Solution Approach 2:
Lookup tables serve as intermediaries between the secret key material and the cryptographic operations. The tables embed key information in a transformed format and perform operations that obscure the direct relationship between the stored data and the actual cryptographic key, preventing attackers from directly observing key operations in memory.
2Reliability
If lookup tables are used to embed key information, then key protection against observation is improved, but code size and device complexity increase
Solution Approach 1:
The lookup tables serve multiple functions simultaneously: they store cryptographic key material, perform substitution operations, and provide diffusion through their structure. This multi-functionality reduces the need for separate components and minimizes overall implementation complexity while maintaining strong key protection.
Solution Approach 2:
The key storage and cryptographic operation functions are merged into single lookup table structures. Instead of having separate key storage arrays and separate operation tables, the design combines these functions into unified tables that perform both key embedding and cryptographic transformation, reducing code size and complexity.
3Device complexity
If traditional key storage methods are used, then code size is minimized, but attackers can easily extract keys from memory
Solution Approach 1:
The key material is transformed by changing its representation parameters. Instead of storing keys in their native format, the key information is encoded into lookup table structures with different organizational parameters, making the extracted data unusable without the proper decoding logic that is obfuscated within the table implementations.
Data Source
AI summary
In the field of computer enabled cryptography, such as a keyed block cipher having a plurality of rounds, the cipher is hardened against an attack by protecting the cipher key by means of a key expansion process which obscures the cipher and/or the round keys by increasing their lengths to provide an expanded version of the keys for carrying out encryption or decryption using the cipher. This is especially advantageous in a “White Box” environment where an attacker has full access to the cipher algorithm, including the algorithm's internal state during its execution. This method and the associated computing apparatus are useful where the key is derived through a process and so is unknown when the software code embodying the cipher is compiled. This is typically the case where there are many users of the cipher and each has his own key, or where each user session has its own key.


