1. 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.