Computational Memory Executable Encryption
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern computing systems are vulnerable to attacks through malicious software that alters instruction flow, as existing security measures do not effectively protect executable instructions from injection and execution of malware, particularly in computational memory architectures.
Innovation Solution
The implementation of computational memory systems that encrypt executables using unique keys, randomizing them to create an ecosystem of binary diversity, thereby obfuscating and protecting against malware by requiring attackers to understand the instruction set architecture to inject malicious code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If executable instructions are stored in plaintext in memory, then processing speed and accessibility are improved, but security against malware injection is worsened
Solution Approach 1:
The system performs preliminary encryption of executable instructions before they are stored in memory. The encryption occurs during the instruction generation or loading phase, so that when instructions are retrieved for execution, they are already in encrypted form and can be processed without additional decryption overhead, thus maintaining processing speed while enhancing security
Solution Approach 2:
The patent introduces an intermediary decryption mechanism that operates transparently between memory storage and the processing unit. This intermediary layer automatically decrypts instructions during execution without requiring changes to the processor architecture or impacting performance, thereby providing security without sacrificing processing speed
2Reliability
If encryption is applied to all data in memory, then security is improved, but access efficiency and processing performance are worsened
Solution Approach 1:
The patent applies encryption selectively only to executable instruction regions in memory, while leaving data regions unencrypted or with different encryption characteristics. This local differentiation allows the system to provide enhanced security for instructions without impacting the access efficiency of data operations, as data can be accessed directly without encryption/decryption overhead
Solution Approach 2:
The memory space is segmented into distinct regions: encrypted executable instruction regions and unencrypted (or differently encrypted) data regions. This segmentation allows the system to apply security measures only where needed for instructions, while maintaining fast access paths for data operations, thus improving security without sacrificing overall system productivity
3Device complexity
If traditional security measures are used, then system simplicity is maintained, but protection against malicious software is worsened
Solution Approach 1:
The encryption and decryption operations are performed automatically by the memory subsystem itself, without requiring external security software or complex authentication mechanisms. The memory controller or associated logic automatically encrypts instructions during storage and decrypts them during execution, providing robust security protection while maintaining system architecture simplicity and avoiding additional complexity layers
Data Source
AI summary
The present disclosure is related to encryption of executables in computational memory. Computational memory can traverse an operating system page table in the computational memory for a page marked as executable. In response to finding a page marked as executable, the computational memory can determine whether the page marked as executable has been encrypted. In response to determining that the page marked as executable is not encrypted, the computational memory can generate a key for the page marked as executable. The computational memory can encrypt the page marked as executable using the key.


