MAGIC Memory Authentication with Deterministic Error Correction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing security techniques force a trade-off between memory integrity and robustness features like error correction, leaving no free bits for encoding security and metadata in single-device data correction solutions, and existing implementations provide probabilistic rather than deterministic correction, leading to inefficiencies and performance overhead.
Innovation Solution
Implementing Message Authentication Galois Integrity and Correction (MAGIC) to support single-device data correction and implicit metadata storage, using Reed-Solomon codes to embed metadata into error-correcting codes shared between cachelines, allowing for deterministic error correction and metadata recovery without additional memory overhead or performance impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all ECC memory bits are used for error correction to provide complete single device data correction capabilities, then reliability is improved, but memory integrity security and metadata storage capability deteriorate (no free bits remaining)
Solution Approach 1:
The patent applies multi-functionality by making the ECC bits serve multiple purposes simultaneously: they provide error correction capability while also storing metadata and enabling memory integrity security checks. The same ECC infrastructure is used for both reliability (error correction) and security (integrity verification), eliminating the need to allocate separate resources for these functions.
Solution Approach 2:
The patent merges previously separate functions into a unified ECC system. Error correction, metadata storage, and security verification are combined into a single integrated approach where ECC bits perform multiple roles. This consolidation allows the system to achieve reliability, security, and metadata storage without requiring additional dedicated resources.
2Object-affected harmful factors
If ECC bits are stolen to provide memory integrity against Row Hammer attacks, then security is improved, but reliability and serviceability deteriorate (reduced error correction capability)
Solution Approach 1:
The ECC bits are designed to perform multiple functions simultaneously: providing error correction for reliability and enabling memory integrity verification for security. The same ECC infrastructure serves both purposes without requiring separate allocations, allowing the system to maintain full error correction capability while also providing security against Row Hammer attacks.
3Device complexity
If probabilistic error correction is used in existing implementations, then device complexity is reduced, but correction reliability deteriorates (non-deterministic behavior)
Solution Approach 1:
The system uses self-service by having the ECC infrastructure automatically perform both error correction and security verification functions without requiring separate complex processing systems. The ECC bits themselves carry the information needed for both reliability and security operations, enabling deterministic behavior through a unified approach.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method comprises generating, for a cacheline, a first tag and a second tag, the first tag and the second tag generated as a function of user data stored and metadata in the cacheline stored in a first memory device, and a multiplication parameter derived from a secret key, storing the user data, the metadata, the first tag and the second tag in the first cacheline of the first memory device; generating, for the cacheline, a third tag and a fourth tag, the third tag and the fourth tag generated as a function of the user data stored and metadata in the cacheline stored in a second memory device, and the multiplication parameter; storing the user data, the metadata, the third tag and the fourth tag in the corresponding cache line of the second memory device; receiving, from a requesting device, a read operation directed to the cacheline; and using the first tag, the second tag, the third tag, and the fourth tag to determine whether a read error occurred during the read operation.