Hardware Security Module Integrity Verification for Unencrypted Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing computer programs using a microprocessor, unencrypted memory, and encrypted memory are vulnerable to unexpected operations due to non-initialized data being processed as initialized, compromising security.

Innovation Solution

A method and hardware security module that automatically convert source code into binary code, using blocks of encrypted and authenticated data with integrity verification and encryption/decryption operations, and a compiler that initializes non-initialized data to prevent unauthorized processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data are stored in encrypted form in memory and decrypted only when needed, then security is improved, but processing speed deteriorates due to decryption overhead

Engineering Contradiction:
ImprovesecurityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies preliminary action by pre-computing authentication codes for encrypted data blocks during compilation and storing them alongside the encrypted data. When data is needed, the system performs a fast authentication code verification instead of full decryption to check if data has been tampered with or prematurely accessed. This preliminary verification step reduces the need for full decryption operations, thereby maintaining security while improving processing speed.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If authentication codes are computed for each individual datum, then data integrity verification is improved, but computation time deteriorates

Engineering Contradiction:
Improvedata integrity verificationVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple individual authentication code computations into a single authentication code for an entire block of encrypted data. Instead of computing separate authentication codes for each datum within a block, the system computes one authentication code that covers the entire block. This combining approach maintains comprehensive integrity verification while significantly reducing computation time, as the authentication code is computed once for the block rather than repeatedly for each individual datum.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If non-initialized data are grouped in memory blocks with authentication codes, then security against unauthorized processing is improved, but device complexity deteriorates

Engineering Contradiction:
Improvesecurity against unauthorized processingVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing memory into distinct blocks, each containing encrypted data and an associated authentication code. Non-initialized data are grouped into specific memory blocks that are marked with authentication codes indicating their uninitialized state. The system segments the memory management task by maintaining separate authentication codes for different blocks, allowing efficient tracking and control of data initialization states without requiring complex per-datum tracking mechanisms.

Inventive Principle:
Principle #1Segmentation

4Productivity

If block-based encryption and authentication is implemented, then productivity is improved by reducing encryption operations, but manufacturing precision deteriorates due to difficulty in tracking individual data initialization states

Engineering Contradiction:
ImproveproductivityVSAvoiddata initialization tracking precision
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent introduces an intermediary mechanism in the form of authentication codes that serve as mediators between the block-based encryption system and the requirement for individual data initialization tracking. Each authentication code is computed based on the contents of its associated data block and serves as an intermediary indicator of the block's initialization state. When data within a block is initialized, the authentication code is updated or invalidated, providing precise tracking of initialization states without requiring direct inspection of each individual datum. This intermediary approach maintains productivity benefits of block-based processing while achieving precise initialization tracking.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11651086B2Method for executing a computer program by means of an electronic apparatus
Publication Date: 2023.05.16 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • US11651086B2 patent drawing
  • US11651086B2 patent drawing
  • US11651086B2 patent drawing

AI summary

A method for executing a computer program, wherein when a microprocessor writes a block of No bytes of a datum of a block of cleartext data stored in an unencrypted memory, a security module switches a validity indicator associated with this block of No bytes to an active state wherein it indicates that this block of bytes is valid, and each time a block of No bytes of a datum of the block of cleartext data is loaded by the microprocessor from the unencrypted memory, the hardware security module verifies whether the validity indicator associated with this block of No bytes is in its active state and, if such is the case, processing, by the microprocessor, of this block of No bytes is permitted, and, if such is not the case, processing, by the microprocessor, of this block of No bytes is forbidden.