Whitebox Cryptographic Implementation Key Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cryptography solutions fail to effectively protect dynamic keys and are vulnerable to out-of-context attacks, as they do not adequately prevent key exposure or derivation, especially when malware or malicious access is involved, and require significant manual expertise to support new algorithms.

Innovation Solution

A method for automatically generating whitebox implementations of cryptographic algorithms from standard source code, which includes expanding and transforming the algorithm into a complex form that combines real and decoy operations, uses dynamic secrets, and prevents out-of-context use by injecting conflation data and obfuscating memory access patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If standard cryptography algorithms are used with the premise that secrets remain private, then cryptographic operations can be performed efficiently, but secrets become exposed when malware or direct access is present

Engineering Contradiction:
Improvecryptographic operation efficiencyVSAvoidsecret protection reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary layer between the secret key and the cryptographic operations. Instead of directly using the secret key in standard cryptographic algorithms, the system uses a whitebox implementation that acts as a mediator, embedding the key in a protected form within a larger software package that obscures the key's presence and prevents direct access by malware.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent embeds the secret key protection mechanism within a larger whitebox software package. The key is nested deep within multiple layers of obfuscated code and data structures, similar to nested dolls, making it extremely difficult for attackers to extract the key even with direct access to the software.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Reliability

If whitebox implementations are created manually for each algorithm, then secret data protection is effective, but the effort and expertise required increases significantly

Engineering Contradiction:
Improvesecret data protectionVSAvoidimplementation effort
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent creates a universal whitebox generation system that can automatically produce protected implementations for multiple different cryptographic algorithms using the same underlying framework. This multi-functional approach eliminates the need for manual expert intervention for each algorithm while maintaining effective secret data protection.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system enables automatic generation of whitebox implementations from standard algorithm specifications. The whitebox generation process is self-service in nature, taking standard cryptographic algorithm definitions as input and automatically producing the protected whitebox versions without requiring manual expert intervention for each algorithm.

Inventive Principle:
Principle #25Self-service

3Reliability

If cryptographic algorithms are viewed as opaque units, then secret derivation is prevented, but granular analysis allows attackers to recover keys by observing individual rounds

Engineering Contradiction:
Improvekey protectionVSAvoidalgorithm implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the cryptographic algorithm into multiple individual rounds or operations, each protected by its own obfuscation layer. Instead of treating the algorithm as a single opaque unit, the whitebox implementation breaks it down into discrete segments that are individually protected and interconnected through obfuscated data flows, preventing attackers from analyzing individual rounds to recover keys.

Inventive Principle:
Principle #1Segmentation

4Reliability

If heavily-obfuscated forms are used to prevent key theft, then key exposure is reduced, but support for new algorithms requires significant manual expertise

Engineering Contradiction:
Improvekey theft preventionVSAvoidalgorithm support flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent establishes a universal whitebox generation framework that maintains strong key theft prevention through consistent obfuscation techniques while being adaptable to support new cryptographic algorithms. The system can process standard algorithm specifications and automatically generate appropriate whitebox implementations, providing both security and flexibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10331896B2Method of protecting secret data when used in a cryptographic algorithm
Publication Date: 2019.06.25 GUARDSQUARE NV
  • US10331896B2 patent drawing
  • US10331896B2 patent drawing
  • US10331896B2 patent drawing

AI summary

In a general aspect, a method of generating a protected implementation of an algorithm includes: expanding an original source code implementing the algorithm into a single set of real operations; combining each real operation using real data with the real data it uses, to obtain a combination represented in a way which uses an actual real data fragment in a form different from an original form; producing a set of duplicated and mutated decoy operations representing an alternative implementation of the algorithm, applied to decoy data; combining the set of decoy operations with the set of real operations including the combinations, to obtain an implementation where the decoy operations interact with the real operations and the real data processed by the real operations, such that a real data flow of in the implementation is difficult to analyze; and transforming the implementation into a resulting code that can be executed.