Method and apparatus for securing programming data of a programmable logic device
First Claim
1. A method for use with an integrated circuit programmable logic device, said integrated circuit programmable logic device having working memory for storing digital programming data specifying a desired logic configuration of said integrated circuit programmable logic device and having associated therewith storage memory from which said digital programming data are loaded into said working memory, said method being for securing said digital programming data, said method comprising the steps of:
- providing an encryption device capable of encrypting data in accordance with a plurality of encryption schemes;
selecting one of said plurality of encryption schemes and encrypting said digital programming data therewith;
storing said encrypted digital programming data in said storage memory;
storing also, in said storage memory, encryption selection data identifying said one of said plurality of encryption schemes;
providing a decryption device in said programmable logic integrated circuit device capable of executing a plurality of decryption schemes corresponding to said plurality of encryption schemes; and
reading said encrypted digital programming data from said storage memory for loading said digital programming data into said working memory, said reading step comprising the steps of;
selecting one of said plurality of decryption schemes corresponding to said one of said plurality of encryption schemes, anddecrypting said encrypted digital programming data using said selected one of said plurality of decryption schemes.
2 Assignments
0 Petitions
Accused Products
Abstract
An SRAM-based programmable logic device having decompression and decryption circuits between its EPROM nonvolatile programming data storage and its SRAM programming registers is secured against copying of the programming data because a would-be copyist would need to know the compression and encryption used. In a system and method for programming the device, a user station preferably contains a plurality of possible encryptions and a plurality of possible compression schemes. An encryption and compression scheme are selected, preferably at random, by the user or by the programming software in the user station. Data indicating which encryption and compression scheme were chosen are included in the programming data to allow decompression and decryption.
-
Citations
41 Claims
-
1. A method for use with an integrated circuit programmable logic device, said integrated circuit programmable logic device having working memory for storing digital programming data specifying a desired logic configuration of said integrated circuit programmable logic device and having associated therewith storage memory from which said digital programming data are loaded into said working memory, said method being for securing said digital programming data, said method comprising the steps of:
-
providing an encryption device capable of encrypting data in accordance with a plurality of encryption schemes; selecting one of said plurality of encryption schemes and encrypting said digital programming data therewith; storing said encrypted digital programming data in said storage memory; storing also, in said storage memory, encryption selection data identifying said one of said plurality of encryption schemes; providing a decryption device in said programmable logic integrated circuit device capable of executing a plurality of decryption schemes corresponding to said plurality of encryption schemes; and reading said encrypted digital programming data from said storage memory for loading said digital programming data into said working memory, said reading step comprising the steps of; selecting one of said plurality of decryption schemes corresponding to said one of said plurality of encryption schemes, and decrypting said encrypted digital programming data using said selected one of said plurality of decryption schemes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for securing digital programming data of an integrated circuit programmable logic device, said integrated circuit programmable logic device having working memory for storing digital programming data specifying a desired logic configuration of said integrated circuit programmable logic device and having associated therewith storage memory from which said digital programming data are loaded into said working memory, said system comprising:
-
at least one encryption device, said at least one encryption device being capable of encrypting data in accordance with a plurality of encryption schemes; an encryption selector for selecting one of said plurality of encryption schemes and encrypting said digital programming data therewith; a storage controller for storing, in said storage memory, said encrypted digital programming data and encryption selection data identifying said one of said plurality of encryption schemes; at least one decryption device for decrypting each of said plurality of encryption schemes; and a programming data reader for reading said encrypted digital programming data from said storage memory for loading said encrypted digital programming data into said working memory, said programming data reader comprising; a decryption selector for selecting one of said at least one decryption device for decrypting said one of said plurality of encryption schemes, said selected decryption device decrypting said encrypted digital programming data. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. An integrated circuit programmable logic device comprising:
-
working memory for storing digital programming data specifying a desired logic configuration of said integrated circuit programmable logic device; a port for receiving said digital programming data in encrypted form from a storage memory associated with said programmable logic device, said encrypted form being created by one of a plurality of encryption schemes, and for receiving from said storage memory encryption selection data identifying said one of said plurality of encryption schemes; programming circuitry for reading said encrypted digital programming data received at said input port from said working memory, said programming circuitry comprising; at least one decryption device for decrypting said one of said plurality of encryption schemes, and a decryption selector for selecting one of said at least one decryption device for decrypting said one of said plurality of encryption schemes, said selected decryption device decrypting said encrypted digital programming data. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
Specification