Cryptographic Variable Representation for Program Execution Hiding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for hiding program execution details, particularly conditional operations, are vulnerable to attack as they reveal operator functionality through control flow changes, allowing attackers to infer encryption breakdowns.

Innovation Solution

A system that uses one-to-one cryptographic mappings to represent variables and their changes, making it difficult for attackers to discern which variables were altered by altering state variables, and employing look-up tables and swap operations to obscure conditional operations and data flows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conditional operations are implemented in obfuscated programs, then program functionality can be achieved, but information leakage occurs through control flow changes that reveal operator functionality

Engineering Contradiction:
Improveprogram functionalityVSAvoidinformation leakage
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent segments the variable set V into two disjoint subsets V1 and V2, where V1 contains variables whose representations are modified based on the condition being true, and V2 contains variables whose representations are modified based on the condition being false. This segmentation allows the conditional operation to be implemented without revealing which branch was taken, as both subsets are modified in a controlled manner that prevents information leakage through control flow analysis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism using a third variable w3 that does not depend on the condition outcome. The representations of variables in V1 and V2 are both modified using w3 as an intermediary, ensuring that the modification process itself does not leak information about the condition. The intermediary w3 acts as a mediator that allows both branches to be processed uniformly without revealing the conditional choice.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If state variables are altered to hide variable changes, then information leakage is prevented, but device complexity increases

Engineering Contradiction:
Improveinformation leakage preventionVSAvoidsystem complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent makes the state variable modification process universal by applying the same representation modification function to both V1 and V2, using the same intermediary w3. This multi-functional approach allows a single mechanism to handle both conditional branches without requiring separate complex hiding mechanisms for each branch, thereby limiting the increase in system complexity while maintaining information leakage prevention.

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

Data Source

PatentUS10685096B2Hiding of a program execution
Publication Date: 2020.06.16 KONINKLIJKE PHILIPS NV
  • US10685096B2 patent drawing
  • US10685096B2 patent drawing
  • US10685096B2 patent drawing

AI summary

A system for hiding a change to a set of variables of a program is provided. A value representing means (902) represents a value wi of a variable vi of the variables v1, v2, . . . , vn, wherein w is an element of a set W, by means of a representation ri wherein ri=E(Wi, σi), and ri is an element of a set of representations Ω(wi)={E(vvi,s)|s∈Σ}, wherein σi is a state variable that is an element of a set Σ and that provides a redundancy to the representation ri of wi and E is a one-to-one cryptographic mapping from W×Σ to a predetermined set. An action representing means (903) represents an action on values of variables in a subset V′ of V by means of an action on V′ and an action on V\V′, to obtain updated representations. The action on V′ changes the representation rj of each variable Vj in the set of variables.ri=(wi,σi)  (I)Ω(wi)={(wi,s)|s∈Σ}  (II)  (III)