Memory Location Specific Encryption Key Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data encryption methods for memory storage lack effectiveness in protecting data from unauthorized access, particularly in digital electronic systems, as they often rely on static encryption keys and are vulnerable to side channel attacks and tampering.
Innovation Solution
A method that generates a unique encryption key for each memory location based on a random number and a unique pointer value associated with that location, changing over time, which is used to encrypt and decrypt data, thereby increasing security and making it harder for adversaries to decrypt data without knowing the specific keys for each location.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a static encryption key is used for memory storage, then the encryption process is simple and fast, but the security is weak and vulnerable to side channel attacks and tampering
Solution Approach 1:
The encryption key is segmented into multiple components: a base key, a location-specific component derived from the memory address, and a time-varying component. Each segment serves a specific security function, and the combination creates a unique encryption key for each memory location and time period, resolving the contradiction between security and complexity.
Solution Approach 2:
The encryption key transitions from a static value to a dynamic one that changes based on memory location and time. The key generation process incorporates the memory address and a counter that increments over time, ensuring that the encryption key is always changing and resistant to side channel attacks while maintaining manageable system complexity through algorithmic generation.
2Reliability
If a unique encryption key is generated for each memory location based on random numbers and pointer values, then security is significantly enhanced, but the key generation process becomes more complex
Solution Approach 1:
A key generation module acts as an intermediary between the memory address and the encryption key. This module takes the memory pointer value and a random number as inputs, processes them through a deterministic algorithm, and outputs the unique encryption key. This intermediary structure enhances security while keeping the complexity localized to a single module rather than distributed throughout the system.
Solution Approach 2:
The encryption key generation process is self-service in that it automatically derives the location-specific component from the memory address itself. The system uses its own address information as part of the key generation input, eliminating the need for external key distribution infrastructure and reducing overall system complexity while maintaining strong security.
3Reliability
If encryption keys change frequently over time, then resistance to side channel attacks increases, but the overhead of key management and regeneration increases
Solution Approach 1:
The encryption key changes periodically based on a counter that increments with each access or at defined time intervals. This periodic key rotation provides resistance to side channel attacks by ensuring that even if one key is compromised, only a limited amount of data is at risk. The periodic nature allows the system to balance security with performance by predicting key change timing and pre-loading keys where possible.
Solution Approach 2:
The key generation module prepares and caches encryption keys in advance before they are needed. By anticipating future key requirements based on the periodic change pattern, the system can pre-compute and store keys in a secure buffer, reducing the time penalty of key regeneration during actual encryption operations and minimizing the loss of time while maintaining frequent key changes for security.
Data Source
AI summary
Contents of a memory are encrypted using an encryption key that is generated based on a random number and a memory location at which the contents are stored. Each of a plurality of locations of a memory can be associated with a respective unique pointer value, and an encryption key may be generated based on the unique pointer value and the random number. In some examples, the random number is unique to a power-up cycle of a system comprising the memory or is generated based on a time at which the data to be stored by the memory at the selected memory location is written to the memory.


