Memory Encryption Access Encoding for Multi-Domain Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing encryption systems like Total Memory Encryption (TME) and Secure Memory Encryption (SME) provide simple single key memory encryption, which is inadequate for secure encryption virtualization and trust domains requiring multi-key encryption, leading to scalability issues due to the need for passing key identifiers and storing large numbers of keys near the memory controller, without providing cross-domain access control.
Innovation Solution
Implementing a single key memory encryption engine with lightweight access control encoding upstream in the processor pipeline, using tweakable wide-block and/or accordion mode, to provide domain separation without the need for keyIDs and large memory encryption keys, absorbing encryption latencies in the cache hierarchy and detecting access control errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multi-key encryption is implemented for domain separation, then security for secure encryption virtualization is improved, but device complexity and scalability worsen due to the need for passing key identifiers and storing large numbers of keys near the memory controller
Solution Approach 1:
The patent extracts the key management function from the memory controller and relocates it to the processor pipeline. The access control encoding is performed upstream in the processor, eliminating the need for the memory controller to store and manage multiple encryption keys. This extraction resolves the scalability issue by removing the bottleneck at the memory controller while maintaining security through domain-specific access control encodings.
Solution Approach 2:
The patent segments the encryption function into two parts: (1) a single master key stored in the memory controller for actual data encryption, and (2) domain-specific access control encodings performed in the processor pipeline. This segmentation allows multiple domains to be supported without requiring the memory controller to store multiple keys, as each domain is identified by its unique access control encoding rather than a separate key.
2Reliability
If multi-key encryption with key identifiers is used, then domain separation is achieved, but performance deteriorates due to the need to pass key identifiers with every cacheline and potential cache flushes
Solution Approach 1:
The patent extracts the domain identification function from the key identifier passing mechanism and implements it through access control encodings that are computed in the processor pipeline. This eliminates the need to attach key identifiers to every cache line, as the domain information is encoded directly into the data structure itself, improving performance while maintaining domain separation.
Solution Approach 2:
The access control encoding is performed preliminarily in the processor pipeline before data reaches the memory controller. This preliminary action allows the domain identification to be done early in the data path, avoiding subsequent performance penalties from key identifier passing and potential cache flushes that would occur with traditional multi-key encryption approaches.
3Adaptability or versatility
If a single key memory encryption engine is used, then scalability is improved, but access control functionality must be implemented differently
Solution Approach 1:
The patent applies local quality by implementing domain-specific access control encodings that are unique to each domain, while using a single master key for actual encryption. Each domain gets its own encoding characteristics (such as specific bit patterns or encoding schemes) that identify it, allowing fine-grained domain separation without requiring separate encryption keys for each domain. This resolves the contradiction by maintaining scalability through the single key while achieving fine-grained control through domain-specific encodings.
Data Source
AI summary
Techniques for masking and access control are described. In some examples, masking and access control circuitry to provide at least per-domain masking, and access control compression, of cache lines to be stored to memory in response to a store instruction and decompression of cache lines loaded from memory for compressible cache lines, wherein a cache line is to be compressed by encoding a pair of matching values in the cache line and storing the encoded pair as a value in the cache line.


