White-Box Cryptographic Gluing via Distributed Key Fragments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software implementations of cryptographic algorithms face challenges in securing cryptographic keys from reverse engineering and tampering, especially in white-box attack scenarios where attackers have full control over the system, and previous solutions like external encodings have limitations such as difficulty in hiding input and output encoding processes, especially when the white-box implementation is not strongly connected to the surrounding program.

Innovation Solution

The approach involves computing and storing fragments of the white-box key in the surrounding program, using pointers and obfuscation techniques to hide the computation, and making the computation dependent on system integrity, such as hash values of code fragments or user passwords, to ensure correct operation only when the system is intact, thereby preventing unauthorized distribution and use of the white-box implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the white-box implementation is strongly connected to the surrounding program, then the security against code lifting is improved, but the adaptability and ease of integration deteriorate

Engineering Contradiction:
Improvesecurity against code liftingVSAvoidease of integration
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The solution segments the cryptographic functionality into a separate white-box implementation module that can be independently distributed. The surrounding program contains only the key computation logic, while the white-box module contains the cryptographic algorithms and lookup tables. This segmentation allows the white-box implementation to be securely distributed without requiring strong connections to specific surrounding code, thereby improving adaptability while maintaining security through the distributed key computation approach.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the white-box implementation is made independent and distributable, then the adaptability and ease of distribution are improved, but the security against unauthorized use deteriorates

Engineering Contradiction:
Improveease of distributionVSAvoidsecurity against unauthorized use
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The invention introduces an intermediary mechanism in the form of distributed key computation. The surrounding program computes key fragments and combines them to reconstruct the cryptographic key. This intermediary key reconstruction process acts as a security gatekeeper - the white-box implementation can be freely distributed, but it remains secure because the key is never present in a single location and requires collaboration between the surrounding program and the white-box module to function. This resolves the contradiction by enabling easy distribution while maintaining security through the intermediary key computation process.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of repair

If traditional software implementations are used, then the ease of replacement and renewal is improved, but the security against reverse engineering deteriorates

Engineering Contradiction:
Improveease of replacementVSAvoidsecurity against reverse engineering
Core Design Contradiction:
Ease of repairVSReliability

Solution Approach 1:

The invention segments the cryptographic system into a renewable surrounding program component and a distributed white-box implementation component. The surrounding program, which contains the key computation logic, can be easily replaced or renewed independently of the white-box module. This segmentation maintains the ease of replacement advantage of traditional software while improving security through the distributed architecture that prevents reverse engineering of the complete key material, as the key is reconstructed from distributed fragments rather than stored in a single replaceable module.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9641337B2Interface compatible approach for gluing white-box implementation to surrounding program
Publication Date: 2017.05.02 NXP BV
  • US9641337B2 patent drawing
  • US9641337B2 patent drawing
  • US9641337B2 patent drawing

AI summary

A method of gluing a cryptographic implementation of a cryptographic function to a surrounding program in a cryptographic system, including: receiving, by the cryptographic system, an input message; receiving a computed value from the surrounding program; performing, by the cryptographic system, a keyed cryptographic operation mapping the input message into an output message using the computed value from the surrounding program, wherein the output message is a correct output message when the computed value has a correct value; and outputting the output message.