Patent US5768372A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5768372A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for securing programming data of a programmable logic device

Assignee: Altera Corp
•
Filing: 1996-03-13
•
Granted: 1998-06-16
•
Expires: 2016-03-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Chiakang Sung
  • 👤 Bonnie I. Wang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 23:07
CPC Classifications
H; H03; H03K; H03K19/00; H03K19/02; H03K19/173; H03K19/177; H03K19/17748; H03K19/17768; G; G06; G06F; G06F21/00; G06F21/60; G06F21/62; G06F21/6209; G06F21/70; G06F21/78; G06F21/79; G06F2221/00; G06F2221/21; G06F2221/2107; G06F2221/2113

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 218 words
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.
Claim 2
Independent Claim 218 words
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.
Claim 3
Dependent Claim 37 words
The method of claim 1 wherein: said reading step further comprises detecting said encryption selection data; and said decryption selection step comprises selecting said one of said plurality of decryption schemes based on said encryption selection data.
Claim 4
Dependent Claim 17 words
The method of claim 1 further comprising writing said decrypted digital programming data into said working memory.
Claim 5
Dependent Claim 26 words
The method of claim 1 further comprising the step of compressing said encrypted digital programming data before said step of storing said encrypted digital programming data.
Claim 6
Dependent Claim 16 words
The method of claim 4 wherein said compressing step comprises also compressing said encryption selection data.
Claim 7
Dependent Claim 18 words
The method of claim 5 further comprising the step of decompressing said compressed data before said reading step.
Claim 8
Dependent Claim 46 words
The method of claim 6 wherein: said reading step further comprises detecting said encryption selection data; said decompressing step occurs prior to said detecting step; and said decryption selection step comprises selecting said one of said plurality of decryption schemes based on said encryption selection data.
Claim 9
Dependent Claim 18 words
The method of claim 4 further comprising the step of decompressing said compressed data before said reading step.
Claim 10
Dependent Claim 34 words
The method of claim 4 wherein said compressing step comprises: providing at least one compression scheme; and selecting one of said at least one compression scheme and compressing said encrypted digital programming data therewith.
Claim 11
Dependent Claim 35 words
The method of claim 9 wherein said step of storing said encrypted digital programming data comprises storing also, in said nonvolatile memory, compression selection data identifying said one of said at least one compression scheme.
Claim 12
Dependent Claim 18 words
The method of claim 10 further comprising the step of decompressing said compressed data before said reading step.
Claim 13
Dependent Claim 56 words
The method of claim 11 wherein said decompressing step comprises: providing at least one decompression scheme corresponding to said at least one compression scheme; decoding said compression selection data; and selecting one of said at least one decompression scheme corresponding to said one of said at least one compression scheme based on said compression selection data.
Claim 14
Dependent Claim 17 words
The method of claim 1 wherein said plurality of encryption schemes comprises at least one pseudo-random sequence.
Claim 15
Dependent Claim 35 words
The method of claim 13 wherein said plurality of decryption schemes comprises at least one look-up table, each of said at least one look-up table corresponding to one of said at least one pseudo-random sequence.
Claim 16
Independent Claim 210 words
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.
Claim 17
Independent Claim 210 words
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.
Claim 18
Dependent Claim 50 words
The system of claim 15 wherein: said programming data reader further comprises a detector for detecting said encryption selection data; and said decryption selector selects said one of said at least one decryption device for decrypting said one of said plurality of encryption schemes based on said encryption selection data.
Claim 19
Dependent Claim 20 words
The system of claim 15 further comprising a data writer for writing said decrypted digital data into said working memory.
Claim 20
Dependent Claim 51 words
The system of claim 15, further comprising at least one data compressor, one of said at least one data compressor compressing said encrypted digital programming data output from said one of said at least one encryption device and outputting said compressed encrypted digital programming data for storage in said storage memory.
Claim 21
Dependent Claim 44 words
The system of claim 18 wherein: said storage controller stores also, in said storage memory, encryption selection data identifying said one of said at least one encryption scheme; and said one of said at least one data compressor also compresses said encryption selection data.
Claim 22
Dependent Claim 49 words
The system of claim 19 wherein said programming data reader further comprises at least one data decompressor, corresponding to said at least one data compressor, for decompressing said compressed encrypted digital programming data and said compressed encryption selection data and outputting said decompressed data to said programming data reader.
Claim 23
Dependent Claim 50 words
The system of claim 20 wherein: said programming data reader further comprises a detector for detecting said encryption selection data; and said decryption selector selects said one of said at least one decryption device for decrypting said one of said plurality of encryption schemes based on said encryption selection data.
Claim 24
Dependent Claim 35 words
The system of claim 18 further comprising at least one data decompressor, corresponding to said at least one data compressor, for decompressing said compressed data and outputting said decompressed data to said programming data reader.
Claim 25
Dependent Claim 28 words
The system of claim 18 wherein said storage controller stores also, in said storage memory, compression selection data identifying said one of said at least one data compressor.
Claim 26
Dependent Claim 35 words
The system of claim 23 further comprising at least one data decompressor, corresponding to said at least one data compressor, for decompressing said compressed data and outputting said decompressed data to said programming data reader.
Claim 27
Dependent Claim 51 words
The system of claim 24 wherein said programming data reader further comprises: a decoder for detecting said compression selection data; and a decompression selector for selecting one of said at least one data decompressor, corresponding to said one of said at least one data compressor, based on said compression selection data.
Claim 28
Dependent Claim 18 words
The system of claim 15 wherein said at least one encryption device comprises at least one pseudo-random sequencer.
Claim 29
Dependent Claim 46 words
The system of claim 26 wherein said at least one decryption device for decrypting said one of said plurality of encryption schemes comprises at least one look-up table, each of said at least one look-up table corresponding to one of said at least one pseudo-random sequencer.
Claim 30
Dependent Claim 18 words
The system of claim 15 wherein said at least one encryption device comprises at least one look-up table.
Claim 31
Dependent Claim 46 words
The system of claim 28 wherein said at least one decryption device for decrypting said one of said plurality of encryption schemes comprises at least one pseudo-random sequencer, each of said at least one pseudo-random sequencer corresponding to one of said at least one look-up table.
Claim 32
Dependent Claim 31 words
The system of claim 15, further comprising a data compressor for compressing said encrypted digital programming data and outputting said compressed encrypted digital programming data for storage in said storage memory.
Claim 33
Dependent Claim 150 words
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.
Claim 34
Dependent Claim 150 words
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.
Claim 35
Dependent Claim 53 words
The integrated circuit programmable logic device of claim 31 wherein: said programming circuitry further comprises a detector for detecting said encryption selection data; and said decryption selector selects said one of said at least one decryption device for decrypting said one of said plurality of encryption schemes based on said encryption selection data.
Claim 36
Dependent Claim 49 words
The integrated circuit programmable logic device of claim 31 wherein said at least one decryption device for decrypting said one of said plurality of encryption schemes comprises at least one look-up table, each of said at least one look-up table corresponding to one of said plurality of encryption schemes.
Claim 37
Dependent Claim 47 words
The integrated circuit programmable logic device of claim 31 wherein said at least one decryption device for decrypting said one of said plurality of encryption schemes comprises at least one pseudo-random sequencer, each of said at least one pseudo-random sequencer corresponding to one of said encryption schemes.
Claim 38
Dependent Claim 56 words
The integrated circuit programmable logic device of claim 31 wherein: said encrypted digital programming data are received at said input port from said storage memory in compressed form; and said integrated circuit programmable logic device further comprises decompression circuitry for decompressing said compressed encrypted digital programming data and outputting said decompressed data to said decryptor selector.
Claim 39
Dependent Claim 104 words
The integrated circuit programmable logic device of claim 35 wherein: said encrypted digital programming data are received from said storage memory, in compressed form produced according to one of at least one compression scheme, along with compression selection data identifying said one of said at least one compression scheme; and said decompression circuitry comprises: at least one data decompressor, each said at least one data decompressor corresponding to one of said at least one compression scheme, a decoder for decoding said compression selection data, and a decompressor selector for selecting one of said at least one data decompressor based on said compression selection data.
Claim 40
Dependent Claim 35 words
The integrated circuit programmable logic device of claim 35 wherein: said encryption selection data also are received from said storage memory in compressed form; and said decompression circuitry further decompresses said compressed encryption selection data.
Claim 41
Dependent Claim 18 words
The integrated circuit programmable logic device of claim 35 wherein said decompression circuitry is in said programming circuitry.
Claim 42
Dependent Claim 52 words
The integrated circuit programmable logic device of claim 31 wherein: said encrypted digital programming data are received at said input port from said storage memory in compressed form; and said programmable logic device further comprises decompression circuitry for decompressing said compressed encrypted digital programming data and outputting decompressed encrypted digital programming data.
Claim 43
Dependent Claim 104 words
The integrated circuit programmable logic device of claim 39 wherein: said encrypted digital programming data are received from said storage memory, in compressed form produced according to one of at least one compression scheme, along with compression selection data identifying said one of said at least one compression scheme; and said decompression circuitry comprises: at least one data decompressor, each said at least one data decompressor corresponding to one of said at least one compression scheme, a decoder for decoding said compression selection data, and a decompressor selector for selecting one of said at least one data decompressor based on said compression selection data.
Claim 44
Dependent Claim 18 words
The integrated circuit programmable logic device of claim 39 wherein said decompression circuitry is in said programming circuitry.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-06-15 2001-12-15 2002-06-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-06-15 2005-12-15 2006-06-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-06-15 2009-12-15 2010-06-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag