Microprocessor Key Expansion Logic for Secure Instruction Decryption
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing microprocessors face challenges in securely executing encrypted instructions, as attackers can exploit time differences in fetching and decrypting encrypted versus plaintext instructions, potentially breaching system security.
Innovation Solution
A microprocessor design that stores decryption key primitives in secure memory, derives a decryption key from multiple primitives, and uses this key to decrypt encrypted instructions within the same time as fetching and decrypting plaintext instructions, while preventing observation of encrypted instructions outside the processor.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If encrypted instructions are fetched and decrypted sequentially, then security is improved through encryption, but execution time increases due to additional decryption steps
Solution Approach 1:
The decryption key is derived in advance and prepared before the instruction fetch operation begins. By pre-computing the decryption key from stored primitives using the instruction address, the system ensures that decryption can proceed immediately alongside fetch operations, eliminating sequential delays while maintaining security through encrypted instruction storage.
2Reliability
If decryption key derivation is performed during instruction fetch, then security is maintained through key-based decryption, but fetch speed decreases due to additional processing steps
Solution Approach 1:
The patent merges the key derivation operation with the instruction fetch operation by having both operations proceed in parallel using the same instruction address. The fetch unit retrieves encrypted instructions while simultaneously the key derivation unit generates the decryption key from primitives, combining two previously sequential operations into a single synchronized process that maintains security without sacrificing fetch speed.
3Reliability
If multiple decryption key primitives are used to derive the decryption key, then security is enhanced through key expansion, but device complexity increases due to additional key management requirements
Solution Approach 1:
The decryption key is segmented into multiple key primitives that are stored separately in secure memory. Instead of storing a single monolithic key, the system breaks it down into discrete primitives that are combined during runtime through derivation operations. This segmentation enhances security by preventing single-point compromise while the automated derivation process manages the complexity of handling multiple key components.
Data Source
AI summary
A secure memory, key expansion logic, and decryption logic are provided for a microprocessor that executes encrypted instructions. The secure memory stores a plurality of decryption key primitives. The key expansion logic selects two or more decryption key primitives from the secure memory and then derives a decryption key from them. The decryption logic uses the decryption key to decrypt an encrypted instruction fetched from the instruction cache. The decryption key primitives are selected on the basis of an encrypted instruction address, one of them is rotated by an amount also determined by the encrypted instruction address, and then they are additively or subtractively accumulated, also on the basis of the encrypted instruction address.


