Memory Encryption Using Statistical Counter and Address Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory interfaces face security risks due to physical access, and counter mode encryption increases memory bandwidth and storage overhead by requiring separate counter values to be stored in memory.

Innovation Solution

A computing device merges an integrity value with a counter value for counter mode cryptography, using a statistical counter that increments with probability to combine with memory addresses and other data for encryption, reducing the need for separate counter storage and enhancing security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If counter mode encryption is used to protect memory confidentiality, then security is improved, but memory bandwidth and storage overhead increase due to requiring separate counter values to be stored in memory

Engineering Contradiction:
Improvememory securityVSAvoidmemory storage overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the counter value with the memory address by using the address itself as the counter input. This eliminates the need for separate counter storage in memory, as the counter is derived from the address through a hash function or direct use, thereby reducing memory storage overhead while maintaining encryption security.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The memory address serves dual purposes: it identifies the memory location and simultaneously functions as the counter for encryption. This multi-functionality eliminates the need for dedicated counter storage, reducing overall memory requirements while preserving the security benefits of counter mode encryption.

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

2Reliability

If counter values are stored in memory as metadata, then encryption can be performed, but additional memory lookups are required which reduce performance

Engineering Contradiction:
Improveencryption capabilityVSAvoidmemory access performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By combining the counter derivation with the existing memory address access, the patent eliminates separate counter lookup operations. The counter is computed on-the-fly from the address during the normal memory access workflow, avoiding additional memory lookups and improving performance.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If traditional counter mode encryption is used, then data confidentiality is protected, but replay attacks remain a security risk

Engineering Contradiction:
Improvedata confidentialityVSAvoidreplay attack vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent uses a dynamic counter that changes with each memory access based on the address and access pattern. This dynamic behavior ensures that encrypted values differ between reads and writes and prevent replay attacks, as the encryption input is constantly changing rather than static.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3314522B1Technologies for memory confidentiality, integrity, and replay protection
Publication Date: 2021.01.20 INTEL CORP
  • EP3314522B1 patent drawingFigure 1
  • EP3314522B1 patent drawingFigure 2
  • EP3314522B1 patent drawingFigure 3

AI summary

Technologies for memory encryption include a computing device to generate a keyed hash of a data line based on a statistical counter value and a memory address to which to write the data line and to store the keyed hash to a cache line. The statistical counter value has a reference probability of incrementing at each write operation. The cache line includes a plurality of keyed hashes and each of the keyed hashes corresponds with a different data line. The computing device further encrypts the data line based on the keyed hash, the memory address, and the statistical counter value.