White-Box Cryptography Input Splitting for Billet Attack Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing white-box cryptographic implementations, such as those using table-based approaches, are vulnerable to attacks like the Billet attack due to fixed relationships between input values across rounds, which can reveal the secret key.

Innovation Solution

Introducing a method that splits input bytes into multiple components using variable functions based on the input, breaking the fixed relationship between input values across rounds, and using affine self-equivalences to ensure that the output of multiple S-boxes combines to produce the correct result without explicitly calculating the final XOR, thereby complicating reverse engineering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If fixed relationships between input values are used across rounds for simplicity, then implementation is easier, but the system becomes vulnerable to attacks like Billet attack that can reveal the secret key

Engineering Contradiction:
Improveimplementation simplicityVSAvoidsecurity against attacks
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies dynamics by making the relationship between input values variable rather than fixed. Specifically, the encoding functions used to transform input values change between rounds based on the previous round's output, creating a dynamic system where the transformation rules are not static. This prevents attackers from establishing fixed relationships that could be exploited in reverse engineering attacks.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent segments the cryptographic operation into multiple rounds where each round applies different encoding functions. By dividing the encryption process into distinct stages with varying transformations, the system prevents attackers from analyzing a single fixed relationship across all rounds, as each segment (round) introduces new variability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If variable functions are used to split input bytes into multiple components, then security against attacks is improved, but the computational complexity increases

Engineering Contradiction:
Improvesecurity against attacksVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-defining a set of encoding functions that will be used in the variable encoding process. These functions are prepared in advance and selected based on the previous round's output, allowing the system to introduce complexity through selection rather than computation of entirely new functions during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes parameters by varying which encoding function is applied at each round based on the previous output. Instead of using a single fixed transformation, the system selects from multiple possible functions, changing the transformation parameter dynamically. This increases security by preventing fixed relationship analysis while managing complexity through parameter selection rather than complex computation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9954676B2Protecting a white-box implementation against attacks
Publication Date: 2018.04.24 NXP BV
  • US9954676B2 patent drawing
  • US9954676B2 patent drawing
  • US9954676B2 patent drawing

AI summary

A method of performing a keyed cryptographic operation mapping an input message to an output message, wherein the cryptographic operation includes at least one round including a non-linear mapping function configured to map input data to output data, including: splitting the input data into n split input data, wherein the splitting of the input data varies based upon the value of the input message; inputting each split input data into the non-linear mapping function to obtain n split output data, wherein a combination the n split output data indicates an output data, wherein the output data results when the input data is input to the non-linear mapping function.