Correlation-Protected White-Box Cryptography via Code Duplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional white-box cryptographic operations are vulnerable to security attacks, particularly when an attacker controls the execution process, as they can easily retrieve the secret key by observing memory operations, which is a concern in scenarios like DRM applications and key distribution across multiple users or sessions.
Innovation Solution
The implementation of correlation-proof white-box cryptographic operations involves dynamically changing, replicating, or relocating memory locations to increase complexity, making it impractical for attackers to correlate variables between protected and unprotected implementations, using techniques like code duplication, factorization, and neutralization to maintain identical results while obscuring execution paths.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional white-box cryptographic operations are used, then the implementation is simple and fast, but the security is vulnerable to correlation attacks where attackers can retrieve secret keys by observing memory operations
Solution Approach 1:
The code is divided into multiple segments or blocks, where each segment performs a portion of the cryptographic operation. This segmentation allows the system to obscure the relationship between input and output by distributing the computation across multiple memory locations and execution paths, thereby preventing attackers from correlating variables to retrieve secret keys.
Solution Approach 2:
The implementation uses dynamic control flow and data flow techniques where the execution path and memory access patterns change based on runtime conditions. This dynamic behavior prevents static analysis and correlation attacks by ensuring that the same cryptographic operation can be executed through different paths, making it impossible for attackers to establish fixed relationships between variables.
2Reliability
If memory locations are dynamically changed, replicated, or relocated to prevent correlation attacks, then security against correlation attacks is improved, but computational resources and processing overhead increase
Solution Approach 1:
The system applies partial obfuscation techniques only to critical portions of the cryptographic code that are most vulnerable to correlation attacks. By selectively applying code duplication, factorization, and neutralization to specific code blocks rather than the entire cryptographic implementation, the system achieves adequate security protection while minimizing the increase in computational resources and processing overhead.
3Difficulty of detecting and measuring
If code duplication and factorization techniques are used to obscure execution paths, then the complexity of correlation attacks increases, but the code size and processing time increase
Solution Approach 1:
The system changes parameters such as the number of code copies, the degree of factorization, and the placement of neutralization code based on security requirements and performance constraints. By adjusting these parameters, the system can optimize the balance between making correlation attacks difficult and maintaining acceptable processing time, allowing flexible adaptation to different security levels and performance requirements.
Data Source
AI summary
A method and an apparatus for receiving a first source code having a code block to update the first source code with multiple copies of the code block to protect against correlation attacks are described. The code block can perform one or more operations for execution based on the first source code. The operations can be performed via a random one of the copies of the code block. A second source code based on the updated first source code can be generated to be executed by a processor to produce an identical result as the first source code.


