Correlation-Protected White-Box Cryptography via Code Duplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImprovesecurityVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvesecurity against correlation attacksVSAvoidcomputational resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improvedifficulty of correlation attacksVSAvoidprocessing time
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of time

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8918768B2Methods and apparatus for correlation protected processing of data operations
Publication Date: 2014.12.23 APPLE INC
  • US8918768B2 patent drawing
  • US8918768B2 patent drawing
  • US8918768B2 patent drawing

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.