Software Security via Segmented Key Storage and Decryption Logic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for securing software are inadequate in preventing cloning and reverse engineering, as they fail to effectively restrict access to decryption keys and allow unauthorized use of software by third parties.
Innovation Solution
A device and method utilizing a unique encryption key to encrypt instructions, where the integrated circuit manufacturer controls access to different sets of keys for customers, preventing cloning by using a key database combined with logic circuits to avoid detection, and a memory eraser to securely manage decrypted instructions during the booting sequence.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If software is copied to save development cost, then development cost is reduced, but software cloning and unauthorized use increase
Solution Approach 1:
The encryption key is divided into multiple parts: a first portion stored in a first memory location and a second portion stored in a second memory location. These segments are geographically separated within the integrated circuit, preventing unauthorized access to the complete key while allowing legitimate software copying when both portions are properly combined through the decryption logic.
Solution Approach 2:
A decryption circuit acts as an intermediary between the encrypted software and the processor. This intermediary component requires both key portions to function, mediating the access control process and preventing direct access to the key material while enabling authorized software execution.
2Ease of operation
If decryption keys are made accessible for software execution, then software functionality is enabled, but key exposure increases cloning risk
Solution Approach 1:
The decryption key is segmented into two separate portions stored in different memory locations within the integrated circuit. This segmentation ensures that even if one portion is exposed, the complete key remains secure, enabling software execution while maintaining security through distributed key storage.
Solution Approach 2:
The key portions are nested within the integrated circuit structure at different hierarchical levels - the first portion in a first memory location and the second portion in a second memory location, both protected by the circuit's physical and logical security boundaries, allowing controlled access during normal operation.
3Reliability
If key access is restricted to prevent cloning, then security is improved, but legitimate software usage may be blocked
Solution Approach 1:
The system dynamically controls key access based on operational context. During legitimate software execution, both key portions are made available to the decryption circuit through controlled internal pathways. During cloning attempts, the segmented key structure and access control logic prevent reconstruction of the complete key, achieving both security and functionality.
Solution Approach 2:
The decryption circuit incorporates feedback mechanisms that monitor access patterns and key combination attempts. When legitimate conditions are detected, the circuit enables decryption functionality. When suspicious patterns indicate cloning attempts, the feedback loop blocks access, ensuring both legitimate usage and cloning protection.
Data Source
AI summary
A device includes a first memory unit adapted to store encrypted instructions, a processor adapted to execute decrypted instructions, a second memory unit accessible by the processor, and a decryption unit. The device includes a key database and a key selection circuit, wherein the key selection circuit is adapted to select a selected decryption key from the key database for decrypting encrypted instructions. The selection is responsive to a fixed selection information stored within the integrated circuit and to received key selection information. A method includes a stage of receiving encrypted instructions; and executing decrypted instructions by a processor. The method includes receiving key selection information, selecting a selected decryption key out of a key database in response to fixed selection information and to the received key selection information, and decrypting encrypted instructions using the selected decryption key.


