Volatile Memory Encryption via Segmented Block Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Sensitive data stored in volatile memory can remain accessible after a computer shuts down, allowing unauthorized access due to existing encryption methods' limitations, particularly when data is not properly cleared from memory chips.
Innovation Solution
Implementing a system that allocates specific memory blocks for encrypted data, using distinct unencrypted and encrypted memory allocation and I/O functions, with an operating system managing encryption keys to securely handle and erase data, preventing unauthorized access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If data is stored in volatile memory without encryption, then data access speed and availability are improved, but security and protection against unauthorized access deteriorate
Solution Approach 1:
The memory is divided into separate encrypted and unencrypted blocks, allowing the system to segment data storage based on security requirements. Sensitive data is stored in encrypted blocks while less sensitive data can be stored in unencrypted blocks, resolving the contradiction by applying encryption selectively rather than universally
Solution Approach 2:
An encryption key management mechanism acts as an intermediary between the data and the unauthorized access attempt. The operating system manages encryption keys and controls access to encrypted memory blocks, allowing legitimate access while preventing unauthorized access without affecting the overall data accessibility performance
2Reliability
If encryption is applied to all memory data, then data security is improved, but memory access performance and system efficiency deteriorate
Solution Approach 1:
The memory is divided into separate encrypted and unencrypted blocks, allowing the system to segment data storage based on security requirements. Sensitive data is stored in encrypted blocks while less sensitive data can be stored in unencrypted blocks, resolving the contradiction by applying encryption selectively rather than universally
Solution Approach 2:
Different parts of the memory have different security properties. Encrypted blocks provide enhanced security for sensitive data while unencrypted blocks maintain optimal performance for non-sensitive data. This local differentiation allows the system to optimize both security and performance simultaneously
3Ease of operation
If data remains in volatile memory after shutdown, then data availability for legitimate access is improved, but vulnerability to unauthorized access increases
Solution Approach 1:
The system performs preliminary encryption of data before it is stored in volatile memory. This preliminary encryption action ensures that even if data remains in memory after shutdown, it cannot be read by unauthorized users. The encryption keys are also managed and erased appropriately during system shutdown sequences
4Reliability
If separate encrypted and unencrypted memory blocks are used, then data security is improved, but device complexity increases
Solution Approach 1:
The operating system provides universal memory management functions that handle both encrypted and unencrypted blocks through a unified interface. The same memory allocation, access, and management operations work for both block types, reducing the apparent complexity despite the dual-block structure
Data Source
AI summary
Provided are a computer program product, system, and method to allocate blocks of memory in a memory device having a plurality of blocks. An unencrypted memory allocation function requests allocation of unencrypted blocks in the memory device. An encrypted memory allocation function requests allocation of encrypted blocks in the memory device. An unencrypted Input/Output (I/O) request performs an I/O operation against the unencrypted blocks in the memory device. An encrypted I/O request function performs an I/O operation against the encrypted blocks in the memory device. An operating system uses an encryption key associated with the encrypted blocks to encrypt or decrypt data in the encrypted blocks to perform the encrypted I/O operation in response to processing the encrypted I/O request functions, wherein the unencrypted and encrypted memory allocation functions and unencrypted and encrypted I/O request functions comprise different functions in a library of functions available to the application.


