Cryptographic Accelerator Buffer Randomization for Side-Channel Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cryptographic processing systems are vulnerable to side-channel analysis techniques, such as differential power analysis (DPA), due to predictable processing orders of data blocks, which can be exploited by attackers to compromise security.

Innovation Solution

Randomizing the processing order of data blocks within and across sets of blocks, using a cryptographic accelerator that randomly selects blocks for processing and stores them in a random order, making it difficult for attackers to correlate side-channel information with specific data blocks being processed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data blocks are processed in a predictable sequential order, then processing efficiency is maintained, but security vulnerability to side-channel attacks increases

Engineering Contradiction:
Improvesecurity resistanceVSAvoidprocessing order management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic processing order by randomly selecting data blocks from the buffer for processing, rather than following a fixed sequential order. This randomness makes side-channel attacks ineffective while the buffer management system dynamically adapts to maintain efficient processing throughput.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The buffer acts as an intermediary between memory and processing elements, decoupling the predictable memory access pattern from the processing order. This intermediary layer allows random selection of blocks for processing while maintaining efficient buffer utilization and processing throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If data blocks are randomized for processing, then resistance to side-channel attacks improves, but processing overhead and complexity increase

Engineering Contradiction:
Improveside-channel attack resistanceVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Data blocks are pre-loaded into the buffer in batches from memory before random processing begins. This preliminary action separates the memory access phase from the processing phase, allowing randomization during processing without adding per-block memory access overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The buffer continuously supplies data blocks to processing elements in random order while memory continuously loads new blocks into the buffer. This continuous operation ensures that processing elements remain busy with useful cryptographic operations without idle time for randomization or reordering.

Inventive Principle:
Principle #20Continuity of useful action

3Ease of manufacture

If fixed processing order is used, then implementation simplicity is maintained, but security against differential power analysis decreases

Engineering Contradiction:
Improveimplementation simplicityVSAvoidside-channel vulnerability
Core Design Contradiction:
Ease of manufactureVSObject-affected harmful factors

Solution Approach 1:

The patent changes the parameter of processing order from fixed to random variable. This parameter change is implemented through simple random number generation and buffer indexing logic, maintaining implementation simplicity while fundamentally altering the processing behavior to resist side-channel attacks.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11861051B2Buffer access for side-channel attack resistance
Publication Date: 2024.01.02 RAMBUS INC
  • US11861051B2 patent drawing
  • US11861051B2 patent drawing
  • US11861051B2 patent drawing

AI summary

A cryptographic accelerator (processor) retrieves data blocks for processing from a memory. These data blocks arrive and are stored in an input buffer in the order they were stored in memory (or other known order)—typically sequentially according to memory address (i.e., in-order.) The processor waits until a certain number of data blocks are available in the input buffer and then randomly selects blocks from the input buffer for processing. This randomizes the processing order of the data blocks. The processing order of data blocks may be randomized within sets of data blocks associated with a single read transaction, or across sets of data blocks associated with multiple read transactions.