Configuration stream encryption
First Claim
1. A method of communicating encrypted configuration data between a programmable logic device (PLD) and a storage device, the method comprising the following steps:
- (a) storing original configuration data for the PLD in the storage device;
(b) pseudo-randomly generating a key in the PLD;
(c) transmitting the key from the PLD to the storage device;
(d) in the storage device, using the key, generating encrypted configuration data from the original configuration data stored in the storage device;
(e) transmitting the encrypted configuration data from the storage device to the PLD;
(f) decrypting the encrypted configuration data in the PLD using the key to generate a copy of the original configuration data; and
(g) original configuring the PLD using the copy of the original configuration data produced by the decrypting step (f).
1 Assignment
0 Petitions
Accused Products
Abstract
A method of communicating encrypted configuration data between a programmable logic device (PLD) and a storage device is included in one part of the invention. The method includes the following steps. Transmit encrypted configuration data stored in a storage device to the PLD. Decrypt the encrypted configuration data to generate a copy of the configuration data in the PLD. Configure the PLD using the copy of the configuration data. In one embodiment, the PLD transmits a key to the storage device. In another embodiment the key is separately entered into the storage device and the PLD and never transmitted between the PLD and the storage device. In another embodiment, the key is entered only into the PLD. The key is used to encrypt the configuration data.
-
Citations
12 Claims
-
1. A method of communicating encrypted configuration data between a programmable logic device (PLD) and a storage device, the method comprising the following steps:
-
(a) storing original configuration data for the PLD in the storage device; (b) pseudo-randomly generating a key in the PLD; (c) transmitting the key from the PLD to the storage device; (d) in the storage device, using the key, generating encrypted configuration data from the original configuration data stored in the storage device; (e) transmitting the encrypted configuration data from the storage device to the PLD; (f) decrypting the encrypted configuration data in the PLD using the key to generate a copy of the original configuration data; and (g) original configuring the PLD using the copy of the original configuration data produced by the decrypting step (f). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus for programming a programmable logic device (PLD), comprising:
-
(a) a storage device external to the PLD, the data storage device including; a configuration data storage memory in which unencrypted configuration data for configuring the PLD is stored; an encryption circuit for encrypting the unencrypted configuration data stored in the configuration data storage memory in response to a key received from the PLD and transmitting encrypted configuration data to the PLD; (b) a plurality of configurable logic elements within the PLD, the plurality of configurable logic elements being programmable with the configuration data to perform one or more functions of a desired circuit design; (c) a security circuit within the PLD, the security circuit including; a key generator for both pseudo-randomly generating a key and transmitting the key to the encryption circuit in response to an instruction to configure the PLD, and a decryption circuit, coupled to receive the key from the key generator and the encrypted configuration data from the encryption circuit, for generating unencrypted configuration data, the decryption circuit having a configuration data output coupled to program the plurality of configurable logic elements with the unencrypted configuration data in response to receiving the encrypted configuration data. - View Dependent Claims (10, 11, 12)
-
Specification