Cryptographic Key Update in Non-Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Updating cryptographic keys in non-volatile memory is challenging due to the inability to erase programmed cells and the insecurity of update operations, which can be compromised by attackers.
Innovation Solution
Generating a new instance of an N-bit cryptographic key by negating only unprogrammed bits in the key using a random updating sequence, ensuring the new key has sufficient entropy and is stored in non-volatile memory without altering programmed bits, and using a biased probability for the random sequence to enhance security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If cryptographic keys are updated in non-volatile memory by rewriting cells, then the key can be refreshed for security, but programmed cells cannot be erased and attackers can compromise the update operation
Solution Approach 1:
Instead of trying to overwrite or erase programmed memory cells (the conventional approach), the patent inverts the approach by only programming unprogrammed cells. The update operation programs new key bits into previously unprogrammed cells while leaving already-programmed cells unchanged, thereby avoiding the vulnerability of erasing programmed cells that attackers could exploit.
Solution Approach 2:
The patent performs preliminary actions by generating a random updating sequence before the key update operation and using it to determine which bits to program. This preliminary preparation ensures that the update operation only programs bits that are guaranteed to be unprogrammed, preventing attackers from compromising the operation by interfering with erase cycles.
2Loss of information
If all bits in the cryptographic key are updated randomly, then the new key has high entropy, but programmed bits cannot be changed in non-volatile memory
Solution Approach 1:
The patent applies local quality by treating different bits of the cryptographic key differently based on their program state. Unprogrammed bits are updated using the random updating sequence to maintain entropy, while already-programmed bits are preserved unchanged. This localized approach to bit updating resolves the contradiction between maintaining entropy and respecting non-volatile memory constraints.
Solution Approach 2:
The patent changes the parameter of the updating process by using a biased random updating sequence where the probability of generating a 1 is greater than 0.5. This parameter change ensures that the updating sequence predominantly contains 0s, which when ANDed with the current key, result in fewer changes to already-programmed bits while still maintaining sufficient entropy in the updated key.
3Loss of information
If the probability of unprogrammed bits in the random sequence is 0.5, then the key has maximum entropy, but the update operation becomes insecure and programmers cannot control the update process
Solution Approach 1:
The patent changes the probability parameter from 0.5 to a value greater than 0.5 (specifically, the probability of generating a 1 is > 0.5). This parameter change creates a biased random updating sequence that maintains sufficient entropy while providing security controls. The bias ensures that the updating sequence contains more 0s than 1s, reducing the likelihood of attempting to program already-programmed bits and enhancing security.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A method is provided for generating a new instance of an N-bit cryptographic key (Ki+1) for storage in a non-volatile memory (38) in which unprogrammed cells have a particular binary value. The method includes generating a random N-bit updating sequence (Si), and generating the new instance of the N-bit cryptographic key (Ki+1) by negating each bit in a current instance of the N-bit cryptographic key (Ki) that has the particular binary value and differs from a correspondingly-positioned bit in the random N-bit updating sequence (Si), without negating any bits in the current instance of the N-bit cryptographic key (Ki) that do not have the particular binary value. Other embodiments are also described.