Memory Address Tweak Key Encryption Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems experience latency delays during encryption and decryption operations, and existing solutions do not effectively utilize memory addresses to optimize these processes.
Innovation Solution
The proposed solution involves using a memory address to generate different tweak keys for each sub-block of data, combining them with the data to produce modified sub-blocks, and employing encryption and decryption engines with modular multiplication and pipelined processing to minimize latency and optimize throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional encryption methods are used in memory systems, then data security is improved, but latency delays increase
Solution Approach 1:
The data is divided into multiple sub-blocks, and separate tweak keys are generated for each sub-block using different portions of the memory address (e.g., row address for first sub-block, column address for second sub-block). This segmentation allows parallel processing of encryption operations on different sub-blocks, reducing overall latency while maintaining security through address-dependent key derivation.
2Productivity
If address-based tweak key generation is implemented, then encryption efficiency is improved, but device complexity increases
Solution Approach 1:
The memory address itself is utilized to generate the tweak keys, eliminating the need for separate key storage or complex key management circuits. The row and column addresses naturally provide the entropy needed for key generation, allowing the encryption system to serve itself using existing address information already present in the memory controller.
Data Source
AI summary
Provided are a memory system, memory controller, and method for using a memory address to form a tweak key to use to encrypt and decrypt data. A base tweak co is generated as a function of an address of a block of data in the memory storage. For each sub-block of the block, performing: processing the base tweak to determine a sub-block tweak; combining the sub-block tweak with the sub-block to produce a modified sub-block; and performing an encryption operation comprising one of encryption or decryption on the modified sub-block to produce sub-block output comprising one of encrypted data and unencrypted data for the sub-block.


