Compiler SSA Graph Subgraph Replacement for White-Box Data Hiding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for hiding sensitive data during program execution, such as masking and white-box cryptography, are inefficient and require substantial designer involvement, and often result in large tables or memory-intensive implementations.

Innovation Solution

A compiling device that uses Static Single Assignment (SSA) graphs to identify and replace subgraphs with smaller input sizes, employing a min-cut algorithm to minimize memory usage and automate the hiding process, allowing for efficient white-box implementations with reduced programmer effort.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Object-affected harmful factors

If masking is used to hide sensitive data, then data visibility is reduced, but memory usage increases and encrypted data must be maintained

Engineering Contradiction:
Improvedata visibilityVSAvoidmemory usage
Core Design Contradiction:
Object-affected harmful factorsVSQuantity of substance

Solution Approach 1:

The patent extracts and removes sensitive runtime data from the program by replacing it with pre-computed constant tables. The SSA graph analysis identifies which variables and operations should be hidden, then systematically removes them by substituting with lookup tables that contain pre-computed results, thereby eliminating the need to store sensitive data in memory during execution.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies preliminary action by pre-computing and storing results in constant tables before runtime. During compilation, the system pre-evaluates expressions involving hidden variables and stores the results in lookup tables. At runtime, these pre-computed tables are used directly, avoiding the need to compute or store sensitive data during execution.

Inventive Principle:
Principle #10Preliminary action

2Object-affected harmful factors

If white-box cryptography is used to protect data, then protection level increases, but designer involvement and complexity increase substantially

Engineering Contradiction:
Improveprotection levelVSAvoiddesigner involvement
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The patent applies self-service by enabling the compiler to automatically perform the complex task of white-box transformation without requiring manual designer intervention. The system uses SSA graph analysis to automatically identify hidden variables, determines which operations need protection, and generates the appropriate constant tables and transformed code automatically during compilation, making the process self-service rather than manually intensive.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual process of white-box cryptography design with an automated compiler-based system. Instead of designers manually analyzing and transforming code, the compiler automatically performs SSA analysis, identifies protection targets, and generates the transformed implementation, substituting automated mechanical processing for manual design work.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of manufacture

If direct replacement of subgraph in SSA graph is performed, then implementation simplicity increases, but efficiency decreases

Engineering Contradiction:
Improveimplementation simplicityVSAvoidimplementation efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies local quality by optimizing different parts of the SSA graph with different strategies based on their specific characteristics. Rather than applying a uniform replacement approach, the system analyzes each subgraph locally to determine the most efficient transformation, selecting which variables to hide, which operations to pre-compute, and how to structure the resulting lookup tables based on local graph properties and data flow patterns.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11126413B2Compiling device and method
Publication Date: 2021.09.21 KONINKLIJKE PHILIPS NV
  • US11126413B2 patent drawing
  • US11126413B2 patent drawing
  • US11126413B2 patent drawing

AI summary

A compiling device (100) configured to convert a source code computer program (102) into an object code computer program (106), the compiling device comprising—a processor circuit arranged to—parse (120) the source code computer program and generate a static single assignment (SSA) graph (122) for at least a portion of the source code computer program, and—search for a second subgraph (P) of the SSA graph, wherein a first subgraph (N) is a subgraph of the second subgraph (N⊆P), a sum of the bit sizes associated to incoming edges of the second subgraph being smaller than a sum of the bit sizes associated to incoming edges of the first graph, —implementing the second subgraph of the SSA graph in the object code computer program as a single operation thus omitting the assignments corresponding to edges of the first subgraph.