Secure Element Key Locking for Chip Data Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for programming secret data into system-on-chip devices face security concerns due to the risk of unauthorized access to encryption keys and netlists, which can lead to security breaches if compromised.
Innovation Solution
A method involving a secure element coupled to non-volatile memory, where the secure element decrypts and authenticates secret data using a cryptographic key, then irreversibly changes and locks the key to prevent further access, and uses a unique device-specific encryption key for secure storage and decryption, eliminating the need for a 'black box' and minimizing single points of failure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the manufacturer is provided with a 'black box' to decrypt secret data, then security risk is mitigated, but system cost and complexity increase
Solution Approach 1:
The decryption functionality is extracted from an external 'black box' system and integrated directly into the device's secure element. This eliminates the need for separate external decryption hardware while maintaining security, as the secure element performs decryption internally using stored cryptographic keys.
Solution Approach 2:
The device's secure element autonomously performs decryption of secret data using cryptographic keys stored within the device itself, rather than requiring external assistance from a 'black box' system. This self-service approach reduces system complexity while maintaining security through hardware-based cryptographic operations.
2Ease of manufacture
If the netlist is used for secret data delivery, then programming is enabled, but security risk increases due to single point of failure
Solution Approach 1:
The cryptographic key is segmented into multiple individual bits stored in non-volatile memory. By locking individual bits independently, the system creates multiple security layers rather than relying on a single netlist file, thereby eliminating the single point of failure while maintaining programming capability.
Solution Approach 2:
The cryptographic key bits are pre-stored in non-volatile memory in a locked state before programming operations. This preliminary preparation enables secure programming without requiring the netlist to contain sensitive key information, as the keys are already in place and protected.
3Ease of operation
If the cryptographic key is stored in readable form, then decryption operations are enabled, but security risk increases if accessed by unauthorized parties
Solution Approach 1:
Different bits of the cryptographic key are stored with different access permissions in the non-volatile memory. Some bits are locked and inaccessible, while others remain readable for decryption operations. This local differentiation of access rights enables decryption functionality while protecting the true key value from unauthorized access.
Solution Approach 2:
The secure element acts as an intermediary between the stored cryptographic key bits and decryption operations. It selectively accesses only the necessary readable bits while keeping the locked bits protected, thereby enabling decryption capability without exposing the complete key to unauthorized parties.
4Reliability
If all key bits are locked to prevent access, then security is improved, but decryption capability is lost
Solution Approach 1:
The cryptographic key is divided into individual bits with differentiated access permissions. Some bits are locked to prevent unauthorized access and improve security, while other bits remain unlocked and readable to maintain decryption capability. This local quality differentiation resolves the contradiction between security and functionality.
Data Source
Figure 1
Figure 2
AI summary
Secure Programming of Secret data A method is provided. The method comprises providing a device comprising a secure element coupled to a non-volatile memory, the non-volatile memory comprising a first cryptographic key stored therein; the secure element decrypting and authenticating first secret data using the first cryptographic key to form second secret data; and then rendering the true value of the first cryptographic key unreadable.