White Box Cipher Key Protection via Linear Permutation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cryptographic solutions, such as those using AES, are insecure in the White Box threat model where an attacker has full access to the system, allowing them to extract the secret key by observing memory operations, especially when key derivation processes are unknown at code compilation time or when distributing software to multiple users with unique cipher keys.
Innovation Solution
The method involves using a linear permutation to create a dual world where operations are performed using dual values of ciphertext and subkeys, hiding the key through table lookups and XOR operations, allowing for secure key injection using an exclusive OR operation, even when the cipher key is unknown at compilation time, and enhancing security by making reverse engineering more complex.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If software cryptographic implementations are used in White Box environment, then ease of operation is improved, but security is worsened because attackers can extract keys by observing memory operations
Solution Approach 1:
The patent introduces an intermediary transformation layer that converts the secret key into a transformed key through a known transformation function. This transformed key is then used in cryptographic operations instead of the original key, preventing direct key extraction while maintaining operational functionality. The intermediary transformation acts as a barrier between the attacker and the actual secret key.
Solution Approach 2:
The patent changes the parameter representation by transforming the key from its original form to a transformed form through a mathematical transformation function. This parameter change ensures that the transformed key values do not directly reveal the original secret key, thereby maintaining security while allowing cryptographic operations to proceed.
2Adaptability or versatility
If key derivation processes are used dynamically, then adaptability is improved, but security is worsened because the key cannot be concealed at compilation time
Solution Approach 1:
The patent applies preliminary action by pre-defining the transformation function that will be applied to the key, even though the actual key value is not known at compilation time. The transformation function is embedded in the code, and when the key is derived dynamically, it is immediately transformed using this pre-defined function, ensuring security without limiting adaptability.
Solution Approach 2:
The patent accommodates dynamic key derivation by designing the transformation mechanism to work with keys generated at runtime. The transformation function is applied to whatever key value is produced by the dynamic derivation process, allowing the system to adapt to different keys while maintaining the security transformation throughout.
3Reliability
If table lookups are used to obscure key operations, then security is improved, but device complexity is worsened
Solution Approach 1:
The patent uses table lookups as a copying mechanism where pre-computed transformation values are stored in lookup tables. Instead of performing complex transformations at runtime, the system copies pre-computed values from tables based on intermediate results, simplifying the runtime operation while maintaining security through the obscured transformation process.
Data Source
AI summary
In the field of computer enabled cryptography, such as a block cipher, the cipher is hardened against an attack by protecting the cipher key, by applying to it a predetermined linear permutation before using one key to encrypt or decrypt a message. 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.


