Memory Buffer Data Shuffling for Secure Decryption
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Sensitive data stored in plaintext in memory buffers is vulnerable to attackers who can retrieve the entire decrypted data with a single memory dump, allowing them to read it byte by byte once the data's location is identified.
Innovation Solution
Implementing a shuffling technique with a hardware component that uses a unique master seed to securely shuffle decrypted data, mixing it with random bytes and not storing the seed in memory, making it difficult for attackers to reverse the shuffled output.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If decrypted sensitive data is stored in plaintext in memory buffer for compute process usage, then the data is accessible and usable by the compute process, but the data becomes vulnerable to attackers who can retrieve it with a single memory dump
Solution Approach 1:
The patent divides the decrypted sensitive data into multiple separate memory locations rather than storing it contiguously. Each segment is scattered throughout the memory buffer, making it impossible for an attacker to retrieve complete sensitive data with a single memory dump operation. The data remains accessible to the compute process through indexed access while being secured against unauthorized extraction.
Solution Approach 2:
The patent implements encryption layers where sensitive data is encrypted within the memory buffer, and additional encryption or obfuscation layers are applied to the memory regions containing the data. This nested encryption approach ensures that even if an attacker accesses the memory, multiple decryption layers must be breached to retrieve the original sensitive data.
2Object-affected harmful factors
If data is encrypted in memory buffer, then security is improved, but the data cannot be used by compute process until decrypted
Solution Approach 1:
The patent performs encryption of sensitive data before it is written to the memory buffer, and maintains this encrypted state throughout storage. The compute process decrypts only the specific portions of data it needs, immediately uses them, and then the data remains encrypted in memory. This preliminary encryption approach ensures security is established before any potential exposure.
Solution Approach 2:
The patent extracts only the specific portions of sensitive data that the compute process needs to use, decrypts only those extracted portions temporarily, and leaves the remainder encrypted in memory. This selective extraction and decryption minimizes the time and scope of plaintext exposure while maintaining data usability for the required operations.
3Speed
If decrypted data is stored in a single memory buffer location, then access speed is improved, but an attacker can retrieve all sensitive data with one memory dump
Solution Approach 1:
The patent segments the decrypted sensitive data into multiple smaller portions and stores each portion in different memory locations. The compute process accesses these segments through indexed or pointer-based mechanisms, maintaining efficient access speeds while ensuring that no single memory dump can retrieve the complete sensitive data set.
Solution Approach 2:
The patent organizes segmented data portions in a multi-dimensional memory structure rather than a simple linear buffer. Data segments are distributed across multiple dimensions (different memory regions, pages, or segments), and the compute process uses multi-dimensional indexing to access them efficiently. This dimensional organization maintains access speed while dramatically increasing the complexity for attackers.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
A method comprises determining a first amount of memory space consumed by a first memory buffer comprising encrypted data to be decrypted for use by a compute process, allocating, in a second memory buffer, a second amount of memory space which is greater than the first amount of memory space consumed the first memory buffer, filling the first amount of memory space with random data, setting a pointer to a fixed memory location of the second memory buffer, and invoking a hardware element to implement an iterative process to generate a unique incarnation value based at least in part on an iteration value input, decrypt a data element that resides at an address of the first memory buffer corresponding to the iteration value to generate a decrypted data element, and write the decrypted data element to the second memory buffer at an address corresponding to the fixed memory address plus the unique incarnation value.