Back to results
US 9,438,418 B1Granted
Systems and methods for generating a key difficult to clone
AssigneeAltera Corporation
InventorsBruce B. Pedersen, Ninh D. Ngo
Life of this patent
Estimating the term…
Abstract
Systems and methods relating to generating a key that is difficult to clone are described. The methods include receiving a programmable logic device (PLD) with a first key and applying a one-way hash function to a second key or the first key and the second key to create a third key. The application of the one-way hash function is performed using one or more components hardwired into the PLD. The methods further include storing the third key in the PLD only after using the one or more components to apply the one-way hash function.
Claims11
A method comprising:
- receiving, at a programmable logic device (PLD) that includes a first key hardwired in the PLD, a fourth key from a customer external to the PLD;
- initiating a third key at the PLD to an initial value;
- storing the initial value in a key register of the PLD;
- applying a logic function to the initial value of the third key and the fourth key to generate a second key;
- applying a first one-way hash function to the first key and the second key to generate an updated value of the third key;
- replacing, in the key register, the initial value of the third key with the updated value of the third key;
- setting the updated value of the third key as an encryption/decryption key of the PLD
- receiving encrypted configuration information at the PLD;
- generating decrypted configuration information by decrypting the encrypted configuration information with the encryption/decryption key of the PLD;
- and
- configuring the PLD with the decrypted configuration information;
- wherein:
- applying the first one-way hash function to the first key and the second key to generate the updated value of the third key includes one or more of:
- concatenating the first key with the second key to generate a concatenated input, and applying the hash function on the concatenated input;
- concatenating the second key with the first key to generate a concatenated input, and applying the hash function on the concatenated input;
- hashing the first key to obtain a first output and concatenating the first output with the second key;
- and
- hashing the second key to obtain a second output and concatenating the second output with the first key.
15 more elements
A method comprising:
- receiving encrypted configuration information;
- communicating the encrypted configuration information via a hardwired path to one or more components of a programmable logic device (PLD);
- retrieving a decryption key from a control block of the PLD;
- decrypting the encrypted configuration information using the decryption key to generate decrypted configuration information;
- and
- configuring the PLD with the decrypted configuration information, wherein
- the decryption key includes a third key or a modified version of the third key, the third key having been created by using one or more components hardwired in the PLD to:
- initiate the third key to an initial value;
- store the initial value in a key register of the PLD;
- apply a logic function to the initial value of the third key and a fourth key to generate a second key, the fourth key having been received from a customer external to the PLD;
- apply a first one-way hash function to a first key and the second key to generate an updated value of the third key;
- replace, in the key register, the initial value of the third key with the updated value of the third key;
- wherein using one or more components hardwired in the PLD to apply a first one-way hash function to the first key and the second key includes one or more of:
- concatenating the first key with the second key to generate a concatenated input, and applying the hash function on the concatenated input;
- concatenating the second key with the first key to generate a concatenated input, and applying the hash function on the concatenated input;
- hashing the first key to obtain a first output and concatenating the first output with the second key;
- and
- hashing the second key to obtain a second output and concatenating the second output with the first key.
15 more elements
Dependencies are inferred from the claim text.