Cache Memory Controller for Secured Code Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for securing critical executable code in external memory are inefficient due to high computational costs from decryption processes and the risk of tampering, as well as the impracticality of extending security boundaries to external unsecured memory.

Innovation Solution

A cache memory system with a secure cache controller that validates and stores data in plain text, using a combination of authentication and encryption to ensure only validated code is executed, with a separate authentication processor handling MAC validation and decryption, and storing hash data for tampering detection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire code image is stored in on-chip memory for security, then code integrity is guaranteed, but memory size and cost increase significantly

Engineering Contradiction:
Improvecode integrityVSAvoidon-chip memory size
Core Design Contradiction:
ReliabilityVSVolume of stationary object

Solution Approach 1:

The code image is divided into multiple code segments, each with its own MAC tag. Only the necessary segments are loaded into on-chip memory for execution, while other segments remain in external memory. This segmentation allows the system to maintain security for executed code while avoiding the need to store the entire code image in expensive on-chip memory.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A cache memory system acts as an intermediary between external unsecured memory and the processor. The cache controller validates MAC tags for code segments before loading them into the secure cache, ensuring that only authenticated code is executed while minimizing the amount of secure memory required.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Volume of stationary object

If code is stored in external memory to reduce cost, then memory cost decreases, but the code becomes vulnerable to tampering

Engineering Contradiction:
Improveon-chip memory sizeVSAvoidtampering risk
Core Design Contradiction:
Volume of stationary objectVSObject-affected harmful factors

Solution Approach 1:

MAC tags are pre-calculated and stored alongside code segments in external memory before execution. When code is loaded, the cache controller performs preliminary validation by verifying the MAC tag matches the code segment, detecting any tampering before the code is executed. This preliminary security check enables the use of cheaper external memory without accepting tampering risks.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If decryption is performed for every code access to ensure security, then code security is maintained, but system performance deteriorates

Engineering Contradiction:
Improvecode securityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines MAC-based authentication with encryption/decryption in a unified cache memory system. Code segments are encrypted in external memory and remain encrypted during storage. When loaded into the cache, they are decrypted once and then executed from the secure cache without requiring repeated decryption operations. This merging of security mechanisms eliminates the performance penalty of continuous decryption while maintaining security.

Inventive Principle:
Principle #5Merging (Combining)

4Device complexity

If the entire code image is validated with a single MAC tag, then validation is simplified, but any tampering cannot be detected until the next validation cycle

Engineering Contradiction:
Improvevalidation complexityVSAvoidtampering detection及时性
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

Instead of using a single MAC tag for the entire code image, the patent divides the code into multiple segments, each with its own MAC tag. This allows individual segments to be validated independently. If tampering is detected in one segment, only that segment is rejected, while other valid segments can still be executed. This segmentation maintains relatively simple validation logic while enabling timely detection of localized tampering.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10019603B2Secured memory system and method therefor
Publication Date: 2018.07.10 SYNOPSYS INC
  • US10019603B2 patent drawing
  • US10019603B2 patent drawing
  • US10019603B2 patent drawing

AI summary

There is disclosed a cache memory controller for storing cache data within a cache, the cache data comprising an unsecured version data to corresponding secured first data.