Cryptographic Address Prefetch Circuitry for Leak-Safe Speculation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing prefetch circuits in computing systems are vulnerable to data leaks due to attackers mistaking secret data for memory addresses, leading to unauthorized access and observation of sensitive information.
Innovation Solution
Implementing a cryptographic address prefetch circuit that encrypts memory addresses with a secret key, decrypting them before prefetching to hide the original data content from attackers, thereby preventing data leaks while maintaining high performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a prefetch circuit attempts to access memory locations by using data values as addresses, then prefetch performance is improved, but data leaks occur when attackers mistake secret data for memory address information
Solution Approach 1:
The patent introduces an intermediary encryption layer between the prefetch circuit and memory addresses. The prefetch circuit operates on encrypted addresses, and a decryption mechanism translates these encrypted addresses to actual memory locations. This intermediary layer prevents direct exposure of sensitive address information while maintaining prefetch functionality.
Solution Approach 2:
The patent extracts the address information from the data stream by using encryption to separate the address component from the data component. By encrypting addresses independently from data, the system can process addresses through the prefetch circuit without exposing the underlying data, thus preventing data leaks while maintaining prefetch performance.
2Productivity
If the prefetch circuit uses aggressive prefetching strategies, then memory access performance is improved, but the risk of mistaking data for addresses increases
Solution Approach 1:
The patent applies different quality characteristics to different parts of the memory access stream. Encrypted addresses are marked with specific properties that distinguish them from data, allowing the prefetch circuit to treat address identification and data access differently. This local differentiation enables aggressive prefetching on addresses while maintaining reliability through proper identification.
Solution Approach 2:
The patent changes the parameter representation of addresses by encrypting them. This parameter transformation makes it impossible for the prefetch circuit to mistake encrypted addresses for data, as the encrypted form has fundamentally different properties. The system can safely perform aggressive prefetching on transformed address parameters while maintaining accurate identification through the encryption mechanism.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Prefetch (e.g., prefetcher) circuits and methods that allow the safe prefetch of any speculative memory references using cryptographic addressing are described. In certain examples, a computing system includes a memory; a register to store a cryptographic address prefetch key; a core to generate a memory access request for the memory; a cache; and a prefetch circuit to: generate a speculative memory access request for an encrypted memory address based at least in part on the memory access request, decrypt the encrypted memory address to determine a memory line stored at the memory address decrypted by the cryptographic address prefetch key to generate a plaintext address, and store a memory line referenced by the plaintext address in the cache.