Software Write Verification via Register Reassignment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for verifying write operations in software programs are complex, resource-intensive, and ineffective in detecting faults injected into registers, particularly in cases of immediate assignments, leading to security vulnerabilities.

Innovation Solution

A method that involves a mnemonic instruction to reassign the destination address in the register after writing, allowing for a simple, efficient, and reliable verification of write operations by erasing faults injected into the register, thereby ensuring accurate detection of malfunctions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional flow control is used to verify write operations, then verification is performed, but fault injections into register addresses are not detected

Engineering Contradiction:
Improveverification reliabilityVSAvoidfault injection vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary action by reassigning the destination address in the register immediately after the write operation and before the verification read. This reassignment erases any fault that may have been injected into the register, ensuring that the verification reads from the correct address. The solution proactively neutralizes the threat before it can compromise the verification process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If separate functions are used for write and verify operations, then fault detection capability is improved, but programming complexity increases

Engineering Contradiction:
Improvefault detection capabilityVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the write and verify operations into a single function, eliminating the need for separate functions while maintaining fault detection capability. The key is the insertion of a reassignment instruction between the write and verify operations within the same function, which simplifies the programming structure while preserving security.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the verification process by inserting a distinct reassignment step between the write operation and the verify operation. This segmentation ensures that any fault injected into the register address is erased before verification, while keeping the overall structure within a single function for simplicity.

Inventive Principle:
Principle #1Segmentation

3Productivity

If verification is delayed to continue other executions, then productivity is improved, but security protection effectiveness is reduced

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsecurity protection effectiveness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs the address reassignment immediately after the write operation and before any other executions continue. This preliminary action ensures that the security protection is active and effective at the moment of verification, while the overall process remains efficient by not requiring separate verification functions or delayed verification.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12061888B2Method for verifying an execution of a software program
Publication Date: 2024.08.13 STMICROELECTRONICS (GRAND OUEST) SAS
  • US12061888B2 patent drawing
  • US12061888B2 patent drawing
  • US12061888B2 patent drawing

AI summary

A method can be used for verifying an execution of a compiled software program stored in a program memory of a processor and executed by the processor. A write operation includes assigning a destination address in a register of the processor and writing a datum at a location pointed to by the destination address contained in the register. A verification operation includes reassigning the same destination address in the same register, reading the datum contained at the location pointed to by the destination address contained in the register after the reassignment, and comparing the read datum and the written datum.