Memory Address Scrambling for Side Channel Attack Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing devices are vulnerable to cache attacks, where unauthorized software can infer memory access patterns to derive information about private cryptographic keys, leading to potential unauthorized access.

Innovation Solution

Implementing a method that scrambles memory addresses and data using one-to-one address and data encryption relationships, dispersing lookup tables pseudorandomly to mask memory access patterns, thereby protecting sensitive data and cryptographic keys.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory access patterns are used for cryptographic operations, then processing efficiency is improved, but vulnerability to cache attacks increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidvulnerability to cache attacks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent changes the parameter of memory address mapping by introducing a scrambling function that transforms linear or sequential addresses into pseudorandom addresses. This parameter change maintains the one-to-one correspondence needed for efficient access while altering the observable access pattern to prevent cache timing attacks.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an address scrambling function as an intermediary layer between the cryptographic algorithm and the physical memory access. This mediator translates logical memory addresses into scrambled physical addresses, hiding the true access patterns from attackers while maintaining efficient data retrieval.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If lookup tables are used in cryptographic primitives, then computational speed is improved, but information leakage through access patterns occurs

Engineering Contradiction:
Improvecomputational speedVSAvoidinformation leakage
Core Design Contradiction:
SpeedVSLoss of information

Solution Approach 1:

The patent applies address scrambling to lookup tables, transforming the parameter of address sequencing from predictable to pseudorandom. This allows the cryptographic primitive to maintain fast table lookup operations while the scrambled addresses prevent attackers from inferring information about the cryptographic key through access pattern analysis.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If data is stored in predictable memory locations, then access efficiency is improved, but security against side channel attacks deteriorates

Engineering Contradiction:
Improveaccess efficiencyVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent changes the parameter of memory address distribution from predictable to pseudorandom through the application of a scrambling function. This maintains efficient access by preserving the one-to-one mapping relationship while changing the observable location parameter to prevent security attacks.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent performs address scrambling in advance before data access operations. By pre-computing and storing the address mapping relationships, the system prepares the pseudorandom address structure beforehand, ensuring both security and efficient access during cryptographic operations without real-time computation overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8726040B2Memory randomization for protection against side channel attacks
Publication Date: 2014.05.13 SANDISK ISRAEL LTD
  • US8726040B2 patent drawing
  • US8726040B2 patent drawing
  • US8726040B2 patent drawing

AI summary

Side channel attacks against a computing device are prevented by combinations of scrambling data to be stored in memory and scrambling the memory addresses of the data using software routines to execute scrambling and descrambling functions. Encrypted versions of variables, data and lookup tables, commonly employed in cryptographic algorithms, are thus dispersed into pseudorandom locations. Data and cryptographic primitives that require data-dependent memory accesses are thus shielded from attacks that could reveal memory access patterns and compromise cryptographic keys.