Compiler Microcode Co-evolution for Secure Runtime Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing devices are vulnerable to unauthorized access and execution of malware or spyware due to the public availability of compilers and microcode that can reveal the machine-language interface, allowing unauthorized parties to reverse-engineer and execute unauthorized programs.

Innovation Solution

A co-evolution of a compiler and microcode that obscures the machine-language interface by continuously modifying and changing the relationship between the compiler and microcode, making it difficult for unauthorized parties to access and execute unauthorized runtime images by using a fluidly changing machine-language interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If compilers and microcode are made publicly available for standard use, then ease of operation and accessibility are improved, but security and vulnerability to unauthorized access deteriorate

Engineering Contradiction:
Improveaccessibility of computing resourcesVSAvoidvulnerability to malware and spyware
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent applies dynamics by making the machine-language interface fluid and continuously changing through co-evolution of compiler and microcode. The interface is not static but adapts over time, with the compiler generating code for one version of the interface while the microcode is updated to a new version, creating a moving target that prevents unauthorized parties from reverse-engineering and exploiting the system.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameters of the machine-language interface itself, transforming it from a fixed, publicly known interface to a dynamically evolving one. By continuously modifying the relationship between compiler and microcode versions, the fundamental parameters of code interpretation change, rendering previously obtained interface knowledge obsolete and securing against attacks.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If the machine-language interface is kept static and public, then ease of manufacture and compatibility are improved, but reliability and security against reverse-engineering deteriorate

Engineering Contradiction:
Improvecompatibility of runtime imagesVSAvoidprotection against reverse-engineering
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The machine-language interface transitions from static to dynamic through continuous co-evolution. Each update cycle involves releasing a new compiler version that generates runtime images compatible with a new microcode version, creating a moving interface that maintains compatibility within each version while preventing long-term reverse-engineering attacks.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs periodic updates of the compiler-microcode pair, creating regular cycles of interface evolution. This periodic action ensures that the interface changes at predetermined intervals, maintaining manufacturing compatibility within each period while progressively improving security through accumulated changes over time.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11681786B2System, devices and/or processes for secure computation
Publication Date: 2023.06.20 ARM LTD
  • US11681786B2 patent drawing
  • US11681786B2 patent drawing
  • US11681786B2 patent drawing

AI summary

Briefly, example methods, apparatuses, and/or articles of manufacture are disclosed that may be implemented, in whole or in part, using one or more processing devices to develop compilers and microcode for generation of runtime images for secure execution according to an instruction set architecture (ISA) on a computing device. For example, a co-development of a paired compiler and microcode may obscure how such a paired compiler and microcode are to express program instructions into binary runtime image.