← Back to Patent Explorer
US5915017A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for securing programming data of programmable logic device

Assignee: Altera Corp
•
Filing: 1998-01-14
•
Granted: 1999-06-22
•
Expires: 2018-01-14
📄 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-10-30 16:10
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: 23
Claim 1
Independent Claim 149 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 encoding device capable of encoding data in accordance with a plurality of encoding schemes; selecting a first one of said plurality of encoding schemes and encoding said digital programming data a first time therewith to produce once-encoded digital programming data; selecting a second one of said plurality of encoding schemes and encoding said digital programming data a second time therewith to produce twice-encoded digital programming data; and storing said twice-encoded digital programming data in said storage memory.
Claim 2
Independent Claim 149 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 encoding device capable of encoding data in accordance with a plurality of encoding schemes; selecting a first one of said plurality of encoding schemes and encoding said digital programming data a first time therewith to produce once-encoded digital programming data; selecting a second one of said plurality of encoding schemes and encoding said digital programming data a second time therewith to produce twice-encoded digital programming data; and storing said twice-encoded digital programming data in said storage memory.
Claim 3
Dependent Claim 33 words
The method of claim 1 wherein said storing step comprises storing also, in said storage memory, encoding selection data identifying each of said first and second ones of said plurality of encoding schemes.
Claim 4
Dependent Claim 158 words
The method of claim 1 further comprising the steps of: providing a decoding device in said programmable logic integrated circuit device capable of executing a plurality of decoding schemes corresponding to said plurality of encoding schemes; and reading said twice-encoded 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 a first one of said plurality of decoding schemes corresponding to said second one of said plurality of encoding schemes, decoding a first time said encoded digital programming data using said selected first one of said plurality of decoding schemes to produce once-decoded digital programming data, selecting a second one of said plurality of decoding schemes corresponding to said first one of said plurality of encoding schemes, decoding a second time said once-decoded digital programming data using said selected second one of said plurality of decoding schemes to produce twice-decoded digital programming data.
Claim 5
Dependent Claim 33 words
The method of claim 3 wherein said storing step comprises storing also, in said storage memory, encoding selection data identifying each of said first and second ones of said plurality of encoding schemes.
Claim 6
Dependent Claim 40 words
The method of claim 4 wherein: said reading step further comprises detecting said encoding selection data; and said decoding selection step comprises selecting said first and second ones of said plurality of decoding schemes based on said encoding selection data.
Claim 7
Dependent Claim 17 words
The method of claim 3 further comprising writing said wice-decoded digital programming data into said working memory.
Claim 8
Dependent Claim 17 words
The method of claim 1 wherein said plurality of encoding schemes comprises at least one pseudo-random sequence.
Claim 9
Dependent Claim 17 words
The method of claim 1 wherein said plurality of encoding schemes comprises at least one compression scheme.
Claim 10
Independent Claim 152 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 encoding device, said at least one encoding device being capable of encoding data in accordance with a plurality of encoding schemes; an encoding selector for: selecting a first one of said plurality of encoding schemes and encoding said digital programming data therewith to produce once-encoded digital programming data, and selecting a second one of said plurality of encoding schemes and encoding said once-encoded digital programming data therewith to produce twice-encoded digital programming data; and a storage controller for storing, in said storage memory, said twice-encoded digital programming data.
Claim 11
Independent Claim 152 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 encoding device, said at least one encoding device being capable of encoding data in accordance with a plurality of encoding schemes; an encoding selector for: selecting a first one of said plurality of encoding schemes and encoding said digital programming data therewith to produce once-encoded digital programming data, and selecting a second one of said plurality of encoding schemes and encoding said once-encoded digital programming data therewith to produce twice-encoded digital programming data; and a storage controller for storing, in said storage memory, said twice-encoded digital programming data.
Claim 12
Dependent Claim 32 words
The system of claim 9 wherein said storage controller stores also, in said storage memory, encoding selection data identifying each of said first and second ones of said plurality of encoding schemes.
Claim 13
Dependent Claim 172 words
The system of claim 9 further comprising: a decoding device in said programmable logic integrated circuit device capable of executing a plurality of decoding schemes corresponding to said plurality of encoding schemes; and a programming data reader for reading said twice-encoded digital programming data from said storage memory for loading said digital programming data into said working memory, said programming data reader comprising a decoding selector for: selecting a first one of said plurality of decoding schemes corresponding to said second one of said plurality of encoding schemes, whereby said programming data reader decodes a first time said encoded digital programming data using said selected first one of said plurality of decoding schemes to produce once-decoded digital programming data, and selecting a second one of said plurality of decoding schemes corresponding to said first one of said plurality of encoding schemes, whereby said programming data reader decodes a second time said once-decoded digital programming data using said selected second one of said plurality of decoding schemes to produce twice-decoded digital programming data.
Claim 14
Dependent Claim 32 words
The system of claim 11 wherein said storage controller stores also, in said storage memory, encoding selection data identifying each of said first and second ones of said plurality of encoding schemes.
Claim 15
Dependent Claim 42 words
The system of claim 12 wherein said programming data reader further comprises a detector for detecting said encoding selection data; whereby: said decoding selector selects said first and second ones of said plurality of decoding schemes based on said encoding selection data.
Claim 16
Dependent Claim 20 words
The system of claim 11 wherein said programming data reader writes said twice-decoded digital programming data into said working memory.
Claim 17
Dependent Claim 17 words
The system of claim 9 wherein said plurality of encoding schemes comprises at least one pseudo-random sequence.
Claim 18
Dependent Claim 17 words
The system of claim 9 wherein said plurality of encoding schemes comprises at least one compression scheme.
Claim 19
Dependent Claim 235 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 encoded form from a storage memory, said encoded form being created by encoding with a first one of a plurality of encoding schemes to create once-encoded digital programming data followed by encoding with a second one of said plurality of encoding schemes to create twice-encoded digital programming data, and for receiving from said storage memory encoding selection data identifying said first and second ones of said plurality of encoding schemes; programming circuitry for reading said twice-encoded digital programming data from said storage memory and writing said digital programming data into said working memory, said programming circuitry comprising: at least one decoding device for implementing a plurality of decoding schemes corresponding to said plurality of encoding schemes, and a decoding selector for: selecting a first one of said plurality of decoding schemes for decoding said second one of said plurality of encoding schemes, said at least one decoding device producing once-decoded digital programming data therewith from said twice-encoded digital programming data, and selecting a second one of said plurality of decoding schemes for decoding said first one of said plurality of encoding schemes, said at least one decoding device producing said digital programming data therewith from said once-decoded digital programming data.
Claim 20
Dependent Claim 235 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 encoded form from a storage memory, said encoded form being created by encoding with a first one of a plurality of encoding schemes to create once-encoded digital programming data followed by encoding with a second one of said plurality of encoding schemes to create twice-encoded digital programming data, and for receiving from said storage memory encoding selection data identifying said first and second ones of said plurality of encoding schemes; programming circuitry for reading said twice-encoded digital programming data from said storage memory and writing said digital programming data into said working memory, said programming circuitry comprising: at least one decoding device for implementing a plurality of decoding schemes corresponding to said plurality of encoding schemes, and a decoding selector for: selecting a first one of said plurality of decoding schemes for decoding said second one of said plurality of encoding schemes, said at least one decoding device producing once-decoded digital programming data therewith from said twice-encoded digital programming data, and selecting a second one of said plurality of decoding schemes for decoding said first one of said plurality of encoding schemes, said at least one decoding device producing said digital programming data therewith from said once-decoded digital programming data.
Claim 21
Dependent Claim 71 words
The programmable logic device of claim 17 wherein: said twice-encoded digital programming data are stored in said storage memory along with encoding selection data identifying said first and second ones of said plurality of encoding schemes; said programming circuitry further comprises a detector for detecting said encoding selection data; and said decoding selector selects said first and second ones of said plurality of decoding schemes based on said encoding selection data.
Claim 22
Dependent Claim 17 words
The system of claim 17 wherein said plurality of encoding schemes comprises at least one pseudo-random sequence.
Claim 23
Dependent Claim 17 words
The system of claim 17 wherein said plurality of encoding schemes comprises at least one compression scheme.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-21 2002-12-21 2003-06-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-21 2006-12-21 2007-06-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-21 2010-12-21 2011-06-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag