Non-Volatile Memory Code Protection via Program-Once Lockout Keys
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing non-volatile memory (NVM) systems face weaknesses in protecting memory sectors, as protection codes can be corrupted or bypassed, allowing unintended modifications to protected code blocks, such as boot code, due to vulnerabilities in existing protection schemes.
Innovation Solution
The implementation of lockout codes and lockout keys stored in program-once areas that are not readable by external users, combined into a merged protection code to control write access, effectively making protected sectors act like read-only memory, ensuring only authorized users can update protected information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If protection codes are stored in readable memory areas, then write access control can be implemented, but the protection codes can be corrupted or bypassed allowing unintended modifications
Solution Approach 1:
The patent extracts the protection code from the readable/writable memory area and stores it separately in a program-once memory area that cannot be read or written during normal operation. This physical separation prevents the protection code from being accessed, corrupted, or bypassed through normal memory access mechanisms, thereby resolving the vulnerability while maintaining write access control functionality.
Solution Approach 2:
The memory system is segmented into distinct functional areas: readable/writable memory for data storage, program-once memory for protection code storage, and access control circuitry for enforcement. This segmentation isolates the protection mechanism from potential attacks on the data storage area, ensuring that protection codes cannot be corrupted through normal memory operations.
2Ease of operation
If test mode commands or generic backdoor keys are used, then access control can be bypassed for testing purposes, but protection is lost in production environments
Solution Approach 1:
The protection code is programmed into the program-once memory area during manufacturing before the device reaches the customer. This preliminary action establishes the protection mechanism in a secure state that cannot be modified during normal operation or testing, ensuring that production protection integrity is maintained while allowing controlled testing through other means.
Solution Approach 2:
Different access characteristics are applied to different memory areas: the program-once memory area has read-only characteristics after programming, while other memory areas maintain full read-write access. This local differentiation allows testing and normal operation in appropriate areas while maintaining strict protection where needed.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods and systems are disclosed for code protection in non-volatile memory (NVM) systems (200). Information stored within NVM memory sectors (114), such as boot code or other code blocks, is protected using lockout codes (202) and lockout keys (204) written in program-once memory areas (120) within the NVM systems (200). Further, lockout codes (202) can be combined into a merged lockout code that can be stored in a merged protection register (210). The merged protection register (210) is used to control write access to protected memory sectors (114). Lockout code/key pairs (202/204) are written to the program-once area (120) when a memory sector is protected. The program-once area (120), which stores the lockout code/key pairs (202/204), is not readable by external users. Once protected, a memory sector cannot be updated without the lockout code/key pair.