Programmable Fuse Key Storage With Majority Decoding in PLDs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing programmable logic devices (PLDs) face challenges in securely storing and programming security keys, as conventional methods are prone to power disruptions leading to key loss and manufacturing defects causing incorrect data bit values, compromising the secrecy and accuracy of the security key.
Innovation Solution
A programmable logic device utilizing a plurality of programmable fuses to store security keys, where each data bit value is associated with a subset of at least three fuses, with decoders retrieving the bit value based on the majority stored in the fuses to ensure accurate key retrieval and storage, and a hashing process to enhance security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the security key is stored in volatile SRAM cells maintained by a battery, then the security key can be stored onboard the PLD, but the security key will be lost if there is a disruption in the power supplied to the SRAM cells
Solution Approach 1:
Each data bit value of the security key is segmented into multiple subsets, with each subset stored in a separate group of fuses. This segmentation ensures that a single point of failure cannot corrupt the entire security key, as each bit is distributed across multiple independent fuse groups.
Solution Approach 2:
The patent implements beforehand cushioning by using multiple fuses for each data bit value and employing majority voting logic. This compensatory mechanism is established in advance to protect against power disruptions and manufacturing defects, ensuring that the security key remains intact even if some fuses fail.
2Reliability
If the security key is stored in non-volatile memory onboard the PLD, then the security key is retained without power, but manufacturing defects may cause individual data bit values to be incorrectly stored
Solution Approach 1:
The patent applies local quality by making each subset of fuses associated with a data bit value have the same size and structure. This uniformity ensures that each bit value is subjected to the same level of protection and verification, maintaining consistent quality across all security key bits.
Solution Approach 2:
The patent implements beforehand cushioning by using multiple fuses for each data bit value and employing majority voting logic. This compensatory mechanism is established in advance to protect against power disruptions and manufacturing defects, ensuring that the security key remains intact even if some fuses fail.
3Device complexity
If conventional security key storage methods are used, then the implementation is simple, but the secrecy of the security key is compromised due to vulnerability to power disruptions and manufacturing defects
Solution Approach 1:
Each data bit value of the security key is segmented into multiple subsets, with each subset stored in a separate group of fuses. This segmentation ensures that a single point of failure cannot corrupt the entire security key, as each bit is distributed across multiple independent fuse groups.
Solution Approach 2:
The patent implements beforehand cushioning by using multiple fuses for each data bit value and employing majority voting logic. This compensatory mechanism is established in advance to protect against power disruptions and manufacturing defects, ensuring that the security key remains intact even if some fuses fail.
Data Source
AI summary
In embodiment of the invention, a programmable logic device includes configuration memory adapted to be programmed with configuration data and a plurality of programmable fuses adapted to store a security key for use with configuration data. The security key includes a plurality of data bit values, wherein each data bit value of the security key is associated with a subset of a least three fuses each storing a bit. Each of a plurality of decoders is adapted to retrieve a data bit value of the security key by providing the bit value stored by a majority of the fuses of the associated subset as the data bit value of the security key.


