Cache Memory Controller for Secured Code Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Reliability
If decryption is performed for every code access to ensure security, then code security is maintained, but system performance deteriorates
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.
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
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.
Data Source
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.


