Cache Scrubber Circuit for Contention-Based Attack Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache randomization techniques face challenges such as high implementation cost, power consumption, and impractical overhead due to the need for software management of randomization tables, limited scalability, and significant performance loss from noise injection and frequent re-keying intervals.

Innovation Solution

The implementation of a cache scrubber circuit that enhances side-channel security and performance by repeatedly walking through all cache sets and evicting lines when the set's occupancy exceeds a given threshold, thereby increasing re-keying intervals while maintaining protection against contention-based cache attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cache-set randomization is implemented to resist contention-based cache attacks, then security is improved, but performance is degraded due to frequent re-keying intervals and noise injection

Engineering Contradiction:
ImprovesecurityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache scrubber circuit proactively invalidates cache lines before they can be exploited by attacks. By continuously monitoring cache set occupancy and pre-invalidating lines when thresholds are exceeded, the system maintains security without requiring frequent re-keying, thus avoiding performance degradation while preserving security.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If re-keying intervals are shortened to increase security against cache attacks, then security is improved, but performance overhead increases

Engineering Contradiction:
ImprovesecurityVSAvoidperformance overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The cache scrubber circuit autonomously monitors cache set occupancy and invalidates lines based on configured thresholds without requiring external intervention or re-keying operations. This self-managing mechanism maintains security continuously while avoiding the performance overhead associated with frequent re-keying intervals, as the scrubber operates independently of the main execution flow.

Inventive Principle:
Principle #25Self-service

3Reliability

If noise injection is increased to protect against cache attacks, then security is improved, but performance loss increases

Engineering Contradiction:
ImprovesecurityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache scrubber circuit extracts and removes potentially vulnerable cache lines by invalidating them when occupancy exceeds thresholds. This targeted removal approach provides security protection without introducing widespread noise injection throughout the cache system, thereby maintaining security while minimizing performance loss compared to blanket noise injection methods.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20250103512A1Cache scrubber circuit for cache-set randomization to resist contention-based cache attacks
Publication Date: 2025.03.27 INTEL CORP
  • US20250103512A1 patent drawing
  • US20250103512A1 patent drawing
  • US20250103512A1 patent drawing

AI summary

Techniques for cache scrubbing for cache-set randomization to resist contention-based cache attacks are described. In certain examples, a system includes a memory; an execution circuit to cause a memory access request for the memory; a cache to store a plurality of sets that each include a plurality of cache lines from the memory; a cache randomizer circuit to generate a randomized index into the plurality of sets of the cache based on an address of the memory access request; and a cache scrubber circuit to determine that a number of invalid cache lines in a set of the plurality of sets of the cache is less than a threshold number of invalid cache lines, and in response, invalidate a valid cache line in the set of the plurality of sets of the cache.