White Box Cryptography Key Protection via State Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current white box cryptography implementations are vulnerable to attacks such as side-channel and fault attacks, as well as collision attacks, due to their sensitivity to internal state extraction and linear transformations, which compromise the security of secret keys in cryptographic algorithms like DES and AES.

Innovation Solution

The method involves splitting internal states into multiple fragments and using non-linear sharing functions and bijective encodings to protect secret keys, with a combination of non-linear permutation and linear multiplexing functions, ensuring that even if an attacker has full access to the software implementation, the secret keys remain secure by making it impossible to retrieve them from the encrypted data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If white box cryptography implementations are used to protect against key extraction, then security against key retrieval is improved, but vulnerability to side-channel and fault attacks increases due to exposure of internal states

Engineering Contradiction:
Improvesecurity against key retrievalVSAvoidvulnerability to side-channel and fault attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent divides the internal state into multiple shares (S1, S2, ..., Sm) that are distributed across different memory locations. Each share is processed independently through separate S-boxes, and the final result is obtained by combining the outputs. This segmentation prevents attackers from extracting complete key information through side-channel or fault attacks on any single memory location, as each share contributes only partial information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediate variables (T1, T2, ..., Tm) as mediators between the input data and the final output. These intermediates represent the results of processing each share through its corresponding S-box. The intermediates are then combined through a linear function to produce the final result. This intermediary structure allows the system to maintain security by keeping the intermediates obscured while still enabling correct computation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If internal states are masked with random permutations to hide keys, then key retrieval resistance is improved, but susceptibility to collision attacks increases due to linear transformations

Engineering Contradiction:
Improvekey retrieval resistanceVSAvoidsusceptibility to collision attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies non-linear S-box transformations locally to each share independently, while using a linear function only for the final combination of results. Each local S-box processing introduces non-linearity that resists collision attacks. The linear combination at the end is necessary for efficient computation but operates on already-obfuscated intermediate values, maintaining security against collision attacks on the overall system.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent combines multiple non-linear S-box transformations with a linear combination function to create a composite encryption structure. The non-linear S-boxes provide resistance to collision attacks by ensuring that identical inputs produce different intermediate outputs, while the linear combination efficiently aggregates the results. This composite approach maintains both security and computational efficiency.

Inventive Principle:
Principle #40Composite materials

3Reliability

If multiple S-boxes are used to process data blocks, then encryption strength is improved, but computational complexity increases

Engineering Contradiction:
Improveencryption strengthVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the data block into multiple shares (S1, S2, ..., Sm) that are processed in parallel through separate S-boxes. This segmentation allows the encryption strength to be distributed across multiple simpler operations rather than requiring one complex S-box, reducing the computational burden on any single processing unit while maintaining overall encryption strength.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses a limited number of S-boxes (m shares) that is sufficient to provide adequate encryption strength without excessive computational overhead. The linear combination function efficiently aggregates the results from these partial operations, avoiding the need for more complex multi-round processing while still achieving secure encryption.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10897345B2Method for encrypting or decrypting a n-tuple of data with a n-tuple of predetermined secret keys
Publication Date: 2021.01.19 IDEMIA FRANCE SAS
  • US10897345B2 patent drawing
  • US10897345B2 patent drawing
  • US10897345B2 patent drawing

AI summary

A method for encrypting or decrypting a n-tuple of data ({ai}i∈[[0,n-1]]) with a n-tuple of secret keys ({ki}i∈[[0,n-1]]). The method uses a data-processor to perform the steps of: (a) for each element (ai), determining m>n first internal states ({yij}j∈[[0,m-1]]) by application of m first operations, each: represented by a table (Tij), and defined as the combination of a single bijective internal encoding (Gij), of a non-linear sharing function (Di, Ei, Fi . . . ), and of a given non-linear permutation function (ƒ) parameterized with the secret key (ki), and (b) for each n-tuple of first internal states ({yij}i∈[[0,n-1]]), determining a second internal state (zj) by application of a second operation: represented by a table (TLj), and defined as the combination of a second single bijective internal encoding (GLj), a linear multiplexing function (L), and the inverses of the first bijective internal encodings (Gij).