White-Box Cryptography PRNG Protection Against DCA Attacks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In a white-box context, attackers can modify the initialization of a pseudo-random number generator (PRNG) used for cryptographic algorithms, rendering countermeasures ineffective by using the same pseudo-random values, allowing them to perform Differential Computational Analysis attacks and retrieve secret information.
Innovation Solution
A method that integrates a pseudo-random function with the cryptographic algorithm execution, ensuring the initialization of the PRNG depends on the message, and encrypts the output to make the input value unpredictable, even if the initialization is altered.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the PRNG is initialized with a static value independent of the input message, then the implementation is simpler and faster, but the countermeasures become ineffective allowing Differential Computational_analysis attacks
Solution Approach 1:
The patent applies dynamics by making the PRNG initialization dynamic rather than static. The initialization value is derived from the input message through a cryptographic hash function, causing the PRNG sequence to change with each different input message. This resolves the contradiction by maintaining execution speed while ensuring security, as the dynamic initialization prevents attackers from using the same pseudo-random values across different inputs.
Solution Approach 2:
The patent applies preliminary action by pre-computing a cryptographic hash of the input message to derive the PRNG initialization value before the cryptographic algorithm executes. This preliminary hashing ensures that the PRNG is properly seeded with input-dependent values, preventing DCA attacks while not significantly impacting overall execution speed since the hash computation is efficient.
2Reliability
If the PRNG initialization is made dependent on the input message through cryptographic hashing, then security against DCA attacks is improved, but the execution time increases due to additional hash computations
Solution Approach 1:
The patent applies parameter changes by transforming the input message into a fixed-length hash value that serves as the PRNG initialization seed. This parameter transformation ensures security against DCA attacks while being computationally efficient. The hash function converts variable-length inputs into fixed-length seeds, providing both security and performance by avoiding the need for more complex initialization procedures.
3Reliability
If the cryptographic algorithm uses encoded lookup tables with randomization, then resistance to white-box attacks is improved, but the complexity of the implementation increases
Solution Approach 1:
The patent applies the intermediary principle by introducing a PRNG as a mediator between the input message and the cryptographic algorithm's lookup tables. The PRNG generates randomization values that are XORed with the lookup table addresses or contents, adding a layer of obfuscation without fundamentally changing the lookup table structure. This maintains relative implementation simplicity while significantly improving resistance to white-box attacks.
Data Source
Figure 1~4
AI summary
The present invention relates to a method for a secure execution of a whitebox cryptographic algorithm applied to a message (m) and protected by countermeasures based on pseudo-random values, comprising the steps of : - executing a pseudo-random function (PRP) generating pseudo-random output values and an encrypted main output value based on an encrypted input value (*Xi*) derived from said message, - securing said cryptographic algorithm by applying to the cryptographic algorithm said countermeasures based on said generated pseudo-random output values - retrieving, from said generated encrypted main output value, the input value or part of the input value, under an encrypted form (*Xi*), - executing said secured cryptographic algorithm on said encrypted retrieved value.