Polymorphic Binary Code Execution via Function-Specific Generators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing polymorphic binary code to counter side channel cryptological attacks require significant computational resources and demand dedicated compilers, making them impractical for systems with limited resources like embedded systems or chip cards.

Innovation Solution

A method where a specific generator is used for each predetermined function, eliminating the need for a dictionary of equivalences and reducing computational resources by directly integrating coding variants, allowing for faster execution and reduced memory requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a dedicated static compiler with a dictionary of equivalences is used to execute polymorphic binary code, then security against side channel attacks is improved, but computational resource consumption and device complexity increase significantly

Engineering Contradiction:
Improvesecurity against side channel attacksVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the polymorphic code generation process by creating function-specific generators rather than using a single global dictionary. Each predetermined function has its own dedicated generator that directly integrates the coding variants needed for that specific function, eliminating the need for a comprehensive dictionary of equivalences and reducing overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by pre-integrating the coding variants directly into each function-specific generator during the compilation phase. This eliminates the need for runtime dictionary lookups and reduces the computational overhead during execution, while maintaining the security benefits of polymorphic code.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a dedicated static compiler with a dictionary of equivalences is used to execute polymorphic binary code, then security against side channel attacks is improved, but memory usage increases

Engineering Contradiction:
Improvesecurity against side channel attacksVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts and removes the large dictionary of equivalences from the system, replacing it with compact function-specific generators. Each generator contains only the coding variants necessary for its specific function, significantly reducing memory usage while maintaining the security benefits of polymorphic code execution.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary integration of coding variants into function-specific generators during compilation, eliminating the need for runtime dictionary storage. This preliminary action reduces memory requirements by storing only the essential function-specific variants rather than a comprehensive dictionary.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If a dedicated static compiler with a dictionary of equivalences is used to execute polymorphic binary code, then polymorphic code execution is achieved, but computation time increases

Engineering Contradiction:
Improvesecurity against side channel attacksVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and integrating the coding variants directly into function-specific generators during the compilation phase. This eliminates runtime dictionary lookups and instruction selection overhead, significantly reducing computation time while maintaining security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the code generation process into function-specific generators, each optimized for its particular function. This segmentation allows for more efficient instruction selection and generation compared to searching through a global dictionary, reducing overall computation time.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9489315B2Method of executing, by a microprocessor, a polymorphic binary code of a predetermined function
Publication Date: 2016.11.08 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • US9489315B2 patent drawing
  • US9489315B2 patent drawing
  • US9489315B2 patent drawing

AI summary

Executing polymorphic binary code of a predetermined function includes acquiring polymorphic binary code of the function, the code having instruction blocks and control instructions. One block acquires a random number; the other defines a specific generator that generates target instructions to execute the function. The control instructions place the target instructions in memory. Each instruction has an opcode that codes a nature of an operation to be executed, and operands that define parameters of the operation. The generator incorporates coding variants of the function and selection instructions. Each variant generates instructions that perform the function. These instructions differ from each other and enable choosing a variant, based on the random number, to generate the target instructions. The choice is made only between different coding variants of the predetermined function.