Cryptographic Program Diversification via Device Personalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in securely tying cryptographic programs to individual devices, making them resistant to malicious copying and reverse engineering, which is resource-intensive and costly.

Innovation Solution

A method involving a personalisation program that generates a diversification value based on device-specific variables, which is then used to control the cryptographic program's operations, ensuring that the program operates uniquely on each device and cannot be easily copied.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a cryptographic program is obfuscated and tied to an individual device to prevent copying and reverse engineering, then security against malicious alteration and copying is improved, but the time and resources needed to generate the cryptographic program increase significantly

Engineering Contradiction:
ImprovesecurityVSAvoidtime and resources to generate cryptographic program
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system divides the cryptographic solution into two separate components: a personalisation program that generates device-specific diversification values, and a cryptographic program that uses these values. This segmentation allows the cryptographic program to remain generic and reusable across multiple devices, while security is achieved through the device-specific personalisation values generated by the separate personalisation program.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The personalisation program performs preliminary action by generating device-specific diversification values before the cryptographic program is deployed or used. These pre-generated values are stored securely on the device and later used to configure the cryptographic program's behavior, eliminating the need to create custom obfuscated cryptographic programs for each device.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If an individual cryptographic program is created for each device to prevent unauthorized use, then device-specific security is improved, but the complexity and cost of managing multiple cryptographic programs increase

Engineering Contradiction:
Improvedevice-specific securityVSAvoidcomplexity of managing cryptographic programs
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The cryptographic program is designed to be universal and multi-functional, capable of operating on any device that provides it with the appropriate diversification value from the personalisation program. This single cryptographic program can serve multiple devices with different personalisation values, eliminating the need to create and manage separate cryptographic programs for each device while maintaining device-specific security.

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

Solution Approach 2:

Instead of creating different cryptographic programs for each device, the system changes the parameters (diversification values) that the single cryptographic program uses. The personalisation program generates device-specific parameter values that configure the cryptographic program's behavior, allowing one program to function securely across multiple devices with different parameters.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3163494B1Cryptographic program diversification
Publication Date: 2024.10.23 TRUSTONIC
  • EP3163494B1 patent drawingFigure 1
  • EP3163494B1 patent drawingFigure 2
  • EP3163494B1 patent drawingFigure 3

AI summary

A device 8, 10, 12 has an installed cryptographic program 18 that performs cryptographic operations in dependence upon a received diversification value. The diversification value is generated by an obfuscated personalisation program 26 installed in the device and is dependent upon a personalisation input to the personalisation program. The personalisation input is characteristic of the particular execution environment provided by the device, and may take the form of a proper subset selected from among variables characterising the device, such as hardware properties, static software configuration and results from processing dynamic variables to check that they have expected properties. The diversification value generated by the personalisation program 26 is returned (in encrypted form) to a server which also has a copy of the cryptographic program 16. Thus, the server and the device may communicate using a secure channel provided by the combination of the cryptographic program and the diversification value. The personalisation program installed may be obfuscated by code flattening, reordering and variable fragmentation.