JP2004519111A - プログラム暗号化を伴うフィールドプログラマブルゲートアレイ - Google Patents
プログラム暗号化を伴うフィールドプログラマブルゲートアレイ Download PDFInfo
- Publication number
- JP2004519111A JP2004519111A JP2001513176A JP2001513176A JP2004519111A JP 2004519111 A JP2004519111 A JP 2004519111A JP 2001513176 A JP2001513176 A JP 2001513176A JP 2001513176 A JP2001513176 A JP 2001513176A JP 2004519111 A JP2004519111 A JP 2004519111A
- Authority
- JP
- Japan
- Prior art keywords
- program
- fpga
- circuit means
- circuit
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
フィールドプログラマブルゲートアレイ(FPGA)と解読回路が共通の集積回路(IC)内に、又は、共通のICパッケージ内に封入された個別の各IC内に実装されている。解読回路は、特定の暗号キーに関連して暗号化された入力FPGAプログラムを解読し、そして、解読されたFPGAプログラムをFPGAに書き込む。したがって、特定の暗号キーに関連して暗号化されたFPGAプログラムは、その特定の暗号キーに関連して暗号化されたFPGAプログラムをデコードできる解読回路に連結したこれらのFPGAのみをプログラムするために使用される。解読回路とFPGAが同じ集積回路(IC)内に、又は、同じICパッケージ内に実装されているので、解読回路が生成する解読されたFPGAプログラムは容易に不当受信されたり複製されたりすることがない。
Description
【0001】
発明の背景
発明の技術分野
本発明は、一般的には、フィールドプログラマブルゲートアレイ(FPGA)プログラムをコード化して、そのプログラムをデコードすることが可能な特定の組のFPGAのみをプログラムするためにそれが使用されるようにするシステムに関する。
【0002】
関連技術の説明
フィールドプログラマブルゲートアレイ(FPGA)は、互いに連結されていると共に信号ルーティングデバイスを介してFPGA入出力(I/O)ターミナルとも連結している多数の論理ブロックを有する。FPGAに記憶されたルーティングデータは、その論理ブロックとFPGAのI/Oターミナルの間にどのようにデータを転送するのかをルーティングデバイスに命じることによって、その入力信号に対してFPGAが実行する論理を制御してその出力信号を生成する。したがって、FPGAプログラムは、FPGAのプログラミングターミナルへ入力として供給される単なる一連のルーティングデータである。我々は、主に、ルーティングデータを含むデータファイルをFPGAプログラミングデバイスに供給し、そのデバイスがそのルーティングデータをFPGAに書き込むことによって、FPGAをプログラム(又は再プログラム)する。
【0003】
FPGAプログラムの開発者又は販売者は、それらのFPGAプログラムのライセンスされていない使用を阻止することに関心を有している。例えば、あるFPGAプログラムの開発者又は販売者は、顧客がFPGAプログラムをパブリックなインターネットサイトからダウンロードすることを可能にすることを都合がよいと思うかもしれないが、しかし、多分他人がまず第1にライセンスを取得しないでそれらのプログラムを使用することを阻止したいでしょう。さもなくば、あるFPGAプログラムの開発者が顧客に対して特定の組のFPGAのみをプログラムするようにライセンス許諾したときには、そのFPGAプログラムの開発者はその顧客又は他の誰かがそのFPGAプログラムを使用して他のFPGAをプログラムすることを阻止したいでしょう。
【0004】
いくつかのコンピュータプログラムは、暗号化されており、特定のコード(暗号キー)によって決定される方法によってまず解読されない限り、それらはコンピュータをプログラムするためには使用することができない。顧客がソフトウェアを使用するためにライセンスを購入すると、ライセンサーはその顧客に適正な暗号キーを提供する。その後、その顧客がそのソフトウェアを取得し、そのインストールプログラムを呼び出すとき、そのインストールプログラムは顧客に対して暗号キーについて問い合わせをする。そして、そのインストールプログラムは、そのキーに関連してそのプログラムを解読し、顧客のコンピュータに解読されたバージョンのプログラムをインストールする。したがって、たとえその顧客以外の誰かが暗号化されたプログラムをダウンロードできたとしても、その者は、インストールプログラムに適正な暗号キーを提供することができない限り、そのプログラムをコンピュータにインストールすることはできない。
【0005】
同様の暗号化システムは、利用者に適切な暗号キーを提供するように要求する解読回路又は解読プログラムをFPGAプログラミングデバイスに装備することによって、FPGAプログラムを暗号化するために使用される。しかし、このような暗号システムはFPGAプログラムが顧客以外の誰かによって使用される機会を減少する一方で、暗号キーにアクセスした顧客又はそれ以外の誰かはそのFPGAプログラムを使用して任意の数のFPGAをプログラムすることができる。また、解読されたバージョンのFPGAプログラムは、FPGAプログラミングデバイスの出力時に不当に受信され、その後解読を必要とすることなくFPGAをプログラムするために使用されてしまう。
【0006】
必要なのは、誰もがFPGAプログラムを使用して特定の組のFPGA以外のFPGAをプログラムすることを阻止するためのシステムである。
【0007】
発明の要約
フィールドプログラマブルゲートアレイ(FPGA)は、FPGAに書き込まれたFPGAプログラム(データシーケンス)によって制御される論理を実現する。本発明のひとつの局面に関連して、そのメモリアレイに書き込まれるべきFPGAプログラムはまず暗号化されて、FPGAに書き込まれる前に所定の暗号キーに関連して解読されねばならない。
【0008】
本発明の他の局面に関連して、暗号化されたFPGAプログラムによってプログラムされるべきFPGAを実装する集積回路(IC)は、暗号化されたFPGAプログラムを受け取ってそれを適切な暗号キーに関連して解読して解読されたFPGAプログラムを生成する内部解読回路を有する。そして、解読回路は、解読されたFPGAプログラムをFPGAの内部メモリアレイに書き込む。したがって、暗号化されたFPGAプログラムは、適正な暗号キーに関連してFPGAプログラムを解読することのできる解読回路を装備していないFPGAをプログラムするためには使用され得ない。また、解読回路とFPGAが同じIC内に実装されているので、解読回路の出力ターミナルは容易にはアクセスできない。したがって、解読回路の解読されたFPGAプログラム出力は、それほど容易に不当受信されたり複製されたりはできない。
【0009】
本発明の他の実施の形態においては、解読回路とFPGAは個別のICチップに実装されているが、しかし、それらのチップは相互接続されて同じICパッケージ内に収容されており、解読回路の解読されたFPGAプログラム出力は容易にはアクセスされ得ない。
【0010】
したがって、FPGAプログラムが意図する特定の組のFPGA以外のFPGAをプログラムするためのFPGAプログラムの使用を阻止するためのシステムを提供することが本発明の目的である。
【0011】
本明細書の結論部分は本発明の主題を特に指摘し明確に権利を主張している。しかし、当該業界において通常の知識を有する者は、同じ参照符号が同じ部材を指し示している添付の図面を参照して、本明細書の残りの部分を読むことによって、本発明の機構と操作方法の双方を、さらにその効果と目的と共に、最もよく理解する。
【0012】
好適な実施の形態の説明
フィールドプログラマブルゲートアレイ(FPGA)は、互いに連結されていると共に信号ルーティングデバイスを介してFPGA入出力(I/O)ターミナルとも連結している多数の論理ブロックを有する。FPGAに記憶されたルーティングデータは、その論理ブロックとFPGAのI/Oターミナルの間にどのようにデータを転送するのかをルーティングデバイスに命じて、その入力信号に対してFPGAが実行する論理を制御してその出力信号を生成する。FPGA「プログラム」は、FPGAのプログラミングターミナルへの入力として供給される単なる一連のルーティングデータである。我々は、主に、ルーティングデータを含むデータファイルを発生してそれを従来のFPGAプログラミングデバイスに供給し、そのデバイスがそのルーティングデータをFPGAに書き込むことによって、FPGAをプログラム(又は再プログラム)する。本発明は、FPGAプログラムを暗号化して、そのプログラムを解読するのに適合した特定の組のFPGAのみをプログラムするために使用されるFPGAプログラム暗号化システムに関する。
【0013】
図1は、本発明に関するFPGAプログラム暗号化システム10をブロック図形式で図示している。システム10は、FPGA入力信号(INSIG)とその出力信号(OUTSIG)の間の論理関係を制御するためにFPGAプログラム14を受信してそれを記憶することができる従来のFPGA12を有する。本発明に関連して、従来の暗号プログラム16が連続するFPGAのプログラムのワードをそれぞれ暗号化して、FPGAプログラム14の暗号化されたバージョン18の対応するワードを生成する。暗号プログラム16は、入力暗号キー(キー)をその暗号の基礎とする。ここに図示されたように、暗号プログラム16は、8ビットのFPGAプログラムワードを受け取って、8ビットの出力暗号化FPGAプログラムワードを生成し、更に、8ビットの暗号キーを用いる。しかし、キーおよびワードサイズは、そのシステムの別の実施例においてはもっと大きくてもよいし、小さくてもよい。
【0014】
FPGA12は、暗号化FPGAプログラム18を解読して結果の解読されたFPGAプログラムをそのプログラミング入力(PI)を介してFPGA12にロードすることのできる他の回路(24−32)と共に集積回路(IC)20に組み込まれている。(IC)20に対して外部の従来のFPGAプログラミングデバイス22は、リセット信号RESETをシーケンサ26に送り、そして、暗号化FPGAプログラムのそれぞれのビットをシリアル−パラレルシフトレジスタ24にシリアルにシフトして、それぞれのビットがシフトレジスタ入力時に利用可能になった時点で、クロック信号出力CLOCKをパルスにする。シーケンサ26は、FPGA12に対して入力FPGAプログラムを受け取る準備をするように命じて、FPGA12のリセット入力をパルスにすることによってリセット信号RESETに応答する。その後、シーケンサ26は、その入力クロック信号CLOCKの各パルスに応じてシフトレジスタ24のシフトイン(SI)入力をパルスにし、コード化されたFPGAプログラム18のそれぞれの入力ビットをシフトレジスタ24にシフトする。シフトレジスタ24は、そのシリアル入力FPGAプログラムを一連の8ビットワードにアセンブルし、そして、それらを解読回路28に供給する。暗号化FPGAプログラム18を作るときに暗号プログラム16が使用したと同じ暗号キー(キー)を使用して、解読回路28は、それぞれの暗号プログラムの8ビットのワードを解読してオリジナルの未暗号化FPGAプログラム14の対応する8ビットのワードを再生する。IC20に内蔵された従来の不揮発性メモリ32は、また、暗号キーを記憶し、そして、それを解読回路28に提供する。
【0015】
解読回路28は、それぞれの解読されたFPGAプログラムワード出力を入力としてパラレル−シリアルシフトレジスタ30に提供する。シーケンサ26は、シフトレジスタ30のシフトイン(SI)入力をパルスにして、連続的に解読されたFPGAプログラムワードをそれぞれシフトレジスタ30にロ−ドし、そして、そのシフトアウト入力(SO)を連続的にパルスにして、シフトレジスタ30にそのワードのそれぞれのビットをFPGA12のプログラミング入力(PI)に連続的にシフトする。シーケンサ26は、また、FPGA12に解読されたFPGAプログラムワードのそれぞれのビットを記憶するように命じるFPGA12のロード入力LOADを連続的にパルスにする。したがって、各デバイス24−32は、暗号化FPGAプログラム18のそれぞれのワードを解読し、そして、その結果をFPGA12に書き込んで、それによって、未暗号化FPGAプログラム14に関連してそれをプログラムする。
【0016】
暗号化システム10は、FPGAプログラムの開発者又は販売者にFPGAプログラム14の非ライセンス使用を阻止することを可能にする。例えば、FPGAプログラム開発者は、顧客に対して、暗号化FPGAプログラム18だけでなく、プログラムされるべきFPGA12を内蔵するIC20も提供することができる。そのICを顧客に販売する前に、開発者は、適切な暗号キーをその不揮発性メモリ32に書き込んでおく。したがって、顧客、又は、暗号化FPGAプログラム18の複製を取得する他の誰かは、FPGAプログラムを使用して、FPGAプログラムを適正に解読することができる解読回路28を有する特定のIC20に内蔵されたFPGA12のみをプログラムすることができる。解読回路28がIC20に埋め込まれているので、その出力ターミナルが容易にアクセスできないことに留意してください。したがって、顧客はそれがFPGA12に供給する解読されたFPGAプログラムを容易に不当受信できないし、それを使用して適正な解読システムを装備していない従来のFPGAをプログラムすることもできない。また、暗号キーがIC20に埋め込まれているので、それは顧客又は他の誰かに容易に利用できない。このように開発者のみがそのキーを知っており、そして、開発者のみがIC20のためのプログラムを適正に暗号化できることとなる。したがって、顧客がFPGA12を再プログラムして異なる論理を実行するようにしたいときには、顧客は他のソースよりもむしろその開発者から適正に暗号化されたプログラムを手に入れなければならない。
【0017】
暗号プログラム及び解読回路
図2は、暗号プログラム16として使用するのに適した単純な暗号プログラムを図示している。はじめにステップ32において、暗号プログラム16が未暗号化プログラム14の次(最初)のワードを読み込み、そして、対応ビットの暗号キーによって未暗号化ワードのそれぞれのビットに排他的論理和演算(XOR)を行い、暗号化プログラム18出力のワードを生成する(ステップ34)。最後に処理された未暗号化ワードが未暗号化FPGAプログラム14の最後のワードではないとき(ステップ36)には、暗号プログラム16がステップ32と34を繰り返して、FPGAプログラム14の次の未暗号化ワードを取得してそれをXORし、暗号化プログラム18の対応するワードを生成する。暗号プログラム16は、未暗号化FPGAプログラム14の最後のワードが暗号化されたときにステップ36の後で終了する。
【0018】
図3は、図2のプログラム16の出力を解読するのに適切な図1の解読回路28の単純な実装例を図示している。解読回路28は、8個一組の排他的論理和演算(XOR)ゲート37を有する。それぞれのXORゲート37は、8ビットの暗号キー(キー)の対応するワードによって8ビットの暗号化ワードのビットをXORして、解読データの対応するワードを生成する。例えば、未暗号化FPGAプログラム14の8ビットのワードが二進数値(10011011)を有し、8ビットの暗号キーが値(11010010)を有するものと想定することとする。暗号プログラム16は2つの8ビットの値を論理和演算して、次のような値を有する暗号化FPGAプログラム18のワードを生成する。
すなわち、
暗号化=未暗号化 XOR キー
(01000001)=(10011011)XOR (11010010)である。解読回路28がその暗号化ワード(01000001)を受け取って、それを元の暗号キーの値(11010010)でXORすると、それは次のような元の未暗号化ワードを再生する。
すなわち、
未暗号化=暗号化 XOR キー
(10011011)=(01000001)XOR (11010010)である。8ビットの暗号キーは、28個の異なる暗号キーの値を見積もれる。例えば、暗号キーのサイズを16ビットに増加して216個の可能な値にすることもできる。そのようにするためには、暗号プログラム16のデータワード入出力の幅と、シフトレジスタ24とシフトレジスタ30の間のデータパスの幅と、図3の解読回路28のゲート37の数を単純に16ビット又は16個に増加する。
【0019】
複数チップモジュールバージョン
図4は、暗号化FPGAプログラムを解読するための図1のデバイス24−32がFPGA12を内蔵していないチップ38内に実装された本発明の別の実施の形態を図示している。しかし、FPGA12とICチップ38は、従来の複数チップモジュール技術を用いて、共通のICパッケージ40内に実装されている。FPGA12とICチップ38の間の接続がパッケージ40内で行われているので、それはICチップ38によって生成された解読出力シーケンスを複製したい者にとっても容易にアクセスできない。
【0020】
別の設計
上記の明細書は本発明の好適な実施の形態を説明してきたが、当該業界において通常の知識を有する者は、本発明から逸脱することなくその広範な諸相において前記好適な実施の形態に対して多くの改作をすることができる。例えば、1ビットよりもワイドなプログラミング入力(PI)を有するFPGAに対しては、シフトレジスタ30は十分ワイドな出力を提供するように改変することもできる。データを暗号化して解読するための多くの周知のシステムが、図1の暗号プログラム16と解読回路28の機能を実現するために使用され得る。フラッシュメモリセルやフューズ技術を含むいくつかの周知技術のいずれも不揮発性メモリ32を実装するのに使用され得る。それとは別に、解読回路28への暗号キーの数値入力は、IC20内の揮発性メモリ(レジスタやフリップフロップやSRAMなど)に記憶されて、IC製造中のマスクレベルでIC20を適正にプログラムすることによって、解読回路28への「ハードウェア」入力としても提供され得る。暗号キーは、また、IC20の外部のソースから解読回路28に提供されることも可能である。また、前記の暗号化システムの好適な実施の形態は、FPGAに関連して使用されるものとしてここでは説明されてきたけれども、同様の暗号化システムが、入力データシーケンスによってプログラムされた他の種類の論理デバイスに関連しても使用され得ることは理解されるべきである。したがって、添付の特許請求の範囲は、本発明の真の範囲内及び本発明の精神の範囲内にあるそのようなすべての改作を保護することを意図している。
【図面の簡単な説明】
【図1】
本発明のFPGAプログラム暗号化システムをブロック図形式で図示している。
【図2】
図1の暗号プログラムをフローチャート形式で図示している。
【図3】
図1の解読回路の適切な実装例を略図形式で図示している。
【図4】
本発明のFPGAプログラム暗号化システムの別の実施の形態を図示している。
発明の背景
発明の技術分野
本発明は、一般的には、フィールドプログラマブルゲートアレイ(FPGA)プログラムをコード化して、そのプログラムをデコードすることが可能な特定の組のFPGAのみをプログラムするためにそれが使用されるようにするシステムに関する。
【0002】
関連技術の説明
フィールドプログラマブルゲートアレイ(FPGA)は、互いに連結されていると共に信号ルーティングデバイスを介してFPGA入出力(I/O)ターミナルとも連結している多数の論理ブロックを有する。FPGAに記憶されたルーティングデータは、その論理ブロックとFPGAのI/Oターミナルの間にどのようにデータを転送するのかをルーティングデバイスに命じることによって、その入力信号に対してFPGAが実行する論理を制御してその出力信号を生成する。したがって、FPGAプログラムは、FPGAのプログラミングターミナルへ入力として供給される単なる一連のルーティングデータである。我々は、主に、ルーティングデータを含むデータファイルをFPGAプログラミングデバイスに供給し、そのデバイスがそのルーティングデータをFPGAに書き込むことによって、FPGAをプログラム(又は再プログラム)する。
【0003】
FPGAプログラムの開発者又は販売者は、それらのFPGAプログラムのライセンスされていない使用を阻止することに関心を有している。例えば、あるFPGAプログラムの開発者又は販売者は、顧客がFPGAプログラムをパブリックなインターネットサイトからダウンロードすることを可能にすることを都合がよいと思うかもしれないが、しかし、多分他人がまず第1にライセンスを取得しないでそれらのプログラムを使用することを阻止したいでしょう。さもなくば、あるFPGAプログラムの開発者が顧客に対して特定の組のFPGAのみをプログラムするようにライセンス許諾したときには、そのFPGAプログラムの開発者はその顧客又は他の誰かがそのFPGAプログラムを使用して他のFPGAをプログラムすることを阻止したいでしょう。
【0004】
いくつかのコンピュータプログラムは、暗号化されており、特定のコード(暗号キー)によって決定される方法によってまず解読されない限り、それらはコンピュータをプログラムするためには使用することができない。顧客がソフトウェアを使用するためにライセンスを購入すると、ライセンサーはその顧客に適正な暗号キーを提供する。その後、その顧客がそのソフトウェアを取得し、そのインストールプログラムを呼び出すとき、そのインストールプログラムは顧客に対して暗号キーについて問い合わせをする。そして、そのインストールプログラムは、そのキーに関連してそのプログラムを解読し、顧客のコンピュータに解読されたバージョンのプログラムをインストールする。したがって、たとえその顧客以外の誰かが暗号化されたプログラムをダウンロードできたとしても、その者は、インストールプログラムに適正な暗号キーを提供することができない限り、そのプログラムをコンピュータにインストールすることはできない。
【0005】
同様の暗号化システムは、利用者に適切な暗号キーを提供するように要求する解読回路又は解読プログラムをFPGAプログラミングデバイスに装備することによって、FPGAプログラムを暗号化するために使用される。しかし、このような暗号システムはFPGAプログラムが顧客以外の誰かによって使用される機会を減少する一方で、暗号キーにアクセスした顧客又はそれ以外の誰かはそのFPGAプログラムを使用して任意の数のFPGAをプログラムすることができる。また、解読されたバージョンのFPGAプログラムは、FPGAプログラミングデバイスの出力時に不当に受信され、その後解読を必要とすることなくFPGAをプログラムするために使用されてしまう。
【0006】
必要なのは、誰もがFPGAプログラムを使用して特定の組のFPGA以外のFPGAをプログラムすることを阻止するためのシステムである。
【0007】
発明の要約
フィールドプログラマブルゲートアレイ(FPGA)は、FPGAに書き込まれたFPGAプログラム(データシーケンス)によって制御される論理を実現する。本発明のひとつの局面に関連して、そのメモリアレイに書き込まれるべきFPGAプログラムはまず暗号化されて、FPGAに書き込まれる前に所定の暗号キーに関連して解読されねばならない。
【0008】
本発明の他の局面に関連して、暗号化されたFPGAプログラムによってプログラムされるべきFPGAを実装する集積回路(IC)は、暗号化されたFPGAプログラムを受け取ってそれを適切な暗号キーに関連して解読して解読されたFPGAプログラムを生成する内部解読回路を有する。そして、解読回路は、解読されたFPGAプログラムをFPGAの内部メモリアレイに書き込む。したがって、暗号化されたFPGAプログラムは、適正な暗号キーに関連してFPGAプログラムを解読することのできる解読回路を装備していないFPGAをプログラムするためには使用され得ない。また、解読回路とFPGAが同じIC内に実装されているので、解読回路の出力ターミナルは容易にはアクセスできない。したがって、解読回路の解読されたFPGAプログラム出力は、それほど容易に不当受信されたり複製されたりはできない。
【0009】
本発明の他の実施の形態においては、解読回路とFPGAは個別のICチップに実装されているが、しかし、それらのチップは相互接続されて同じICパッケージ内に収容されており、解読回路の解読されたFPGAプログラム出力は容易にはアクセスされ得ない。
【0010】
したがって、FPGAプログラムが意図する特定の組のFPGA以外のFPGAをプログラムするためのFPGAプログラムの使用を阻止するためのシステムを提供することが本発明の目的である。
【0011】
本明細書の結論部分は本発明の主題を特に指摘し明確に権利を主張している。しかし、当該業界において通常の知識を有する者は、同じ参照符号が同じ部材を指し示している添付の図面を参照して、本明細書の残りの部分を読むことによって、本発明の機構と操作方法の双方を、さらにその効果と目的と共に、最もよく理解する。
【0012】
好適な実施の形態の説明
フィールドプログラマブルゲートアレイ(FPGA)は、互いに連結されていると共に信号ルーティングデバイスを介してFPGA入出力(I/O)ターミナルとも連結している多数の論理ブロックを有する。FPGAに記憶されたルーティングデータは、その論理ブロックとFPGAのI/Oターミナルの間にどのようにデータを転送するのかをルーティングデバイスに命じて、その入力信号に対してFPGAが実行する論理を制御してその出力信号を生成する。FPGA「プログラム」は、FPGAのプログラミングターミナルへの入力として供給される単なる一連のルーティングデータである。我々は、主に、ルーティングデータを含むデータファイルを発生してそれを従来のFPGAプログラミングデバイスに供給し、そのデバイスがそのルーティングデータをFPGAに書き込むことによって、FPGAをプログラム(又は再プログラム)する。本発明は、FPGAプログラムを暗号化して、そのプログラムを解読するのに適合した特定の組のFPGAのみをプログラムするために使用されるFPGAプログラム暗号化システムに関する。
【0013】
図1は、本発明に関するFPGAプログラム暗号化システム10をブロック図形式で図示している。システム10は、FPGA入力信号(INSIG)とその出力信号(OUTSIG)の間の論理関係を制御するためにFPGAプログラム14を受信してそれを記憶することができる従来のFPGA12を有する。本発明に関連して、従来の暗号プログラム16が連続するFPGAのプログラムのワードをそれぞれ暗号化して、FPGAプログラム14の暗号化されたバージョン18の対応するワードを生成する。暗号プログラム16は、入力暗号キー(キー)をその暗号の基礎とする。ここに図示されたように、暗号プログラム16は、8ビットのFPGAプログラムワードを受け取って、8ビットの出力暗号化FPGAプログラムワードを生成し、更に、8ビットの暗号キーを用いる。しかし、キーおよびワードサイズは、そのシステムの別の実施例においてはもっと大きくてもよいし、小さくてもよい。
【0014】
FPGA12は、暗号化FPGAプログラム18を解読して結果の解読されたFPGAプログラムをそのプログラミング入力(PI)を介してFPGA12にロードすることのできる他の回路(24−32)と共に集積回路(IC)20に組み込まれている。(IC)20に対して外部の従来のFPGAプログラミングデバイス22は、リセット信号RESETをシーケンサ26に送り、そして、暗号化FPGAプログラムのそれぞれのビットをシリアル−パラレルシフトレジスタ24にシリアルにシフトして、それぞれのビットがシフトレジスタ入力時に利用可能になった時点で、クロック信号出力CLOCKをパルスにする。シーケンサ26は、FPGA12に対して入力FPGAプログラムを受け取る準備をするように命じて、FPGA12のリセット入力をパルスにすることによってリセット信号RESETに応答する。その後、シーケンサ26は、その入力クロック信号CLOCKの各パルスに応じてシフトレジスタ24のシフトイン(SI)入力をパルスにし、コード化されたFPGAプログラム18のそれぞれの入力ビットをシフトレジスタ24にシフトする。シフトレジスタ24は、そのシリアル入力FPGAプログラムを一連の8ビットワードにアセンブルし、そして、それらを解読回路28に供給する。暗号化FPGAプログラム18を作るときに暗号プログラム16が使用したと同じ暗号キー(キー)を使用して、解読回路28は、それぞれの暗号プログラムの8ビットのワードを解読してオリジナルの未暗号化FPGAプログラム14の対応する8ビットのワードを再生する。IC20に内蔵された従来の不揮発性メモリ32は、また、暗号キーを記憶し、そして、それを解読回路28に提供する。
【0015】
解読回路28は、それぞれの解読されたFPGAプログラムワード出力を入力としてパラレル−シリアルシフトレジスタ30に提供する。シーケンサ26は、シフトレジスタ30のシフトイン(SI)入力をパルスにして、連続的に解読されたFPGAプログラムワードをそれぞれシフトレジスタ30にロ−ドし、そして、そのシフトアウト入力(SO)を連続的にパルスにして、シフトレジスタ30にそのワードのそれぞれのビットをFPGA12のプログラミング入力(PI)に連続的にシフトする。シーケンサ26は、また、FPGA12に解読されたFPGAプログラムワードのそれぞれのビットを記憶するように命じるFPGA12のロード入力LOADを連続的にパルスにする。したがって、各デバイス24−32は、暗号化FPGAプログラム18のそれぞれのワードを解読し、そして、その結果をFPGA12に書き込んで、それによって、未暗号化FPGAプログラム14に関連してそれをプログラムする。
【0016】
暗号化システム10は、FPGAプログラムの開発者又は販売者にFPGAプログラム14の非ライセンス使用を阻止することを可能にする。例えば、FPGAプログラム開発者は、顧客に対して、暗号化FPGAプログラム18だけでなく、プログラムされるべきFPGA12を内蔵するIC20も提供することができる。そのICを顧客に販売する前に、開発者は、適切な暗号キーをその不揮発性メモリ32に書き込んでおく。したがって、顧客、又は、暗号化FPGAプログラム18の複製を取得する他の誰かは、FPGAプログラムを使用して、FPGAプログラムを適正に解読することができる解読回路28を有する特定のIC20に内蔵されたFPGA12のみをプログラムすることができる。解読回路28がIC20に埋め込まれているので、その出力ターミナルが容易にアクセスできないことに留意してください。したがって、顧客はそれがFPGA12に供給する解読されたFPGAプログラムを容易に不当受信できないし、それを使用して適正な解読システムを装備していない従来のFPGAをプログラムすることもできない。また、暗号キーがIC20に埋め込まれているので、それは顧客又は他の誰かに容易に利用できない。このように開発者のみがそのキーを知っており、そして、開発者のみがIC20のためのプログラムを適正に暗号化できることとなる。したがって、顧客がFPGA12を再プログラムして異なる論理を実行するようにしたいときには、顧客は他のソースよりもむしろその開発者から適正に暗号化されたプログラムを手に入れなければならない。
【0017】
暗号プログラム及び解読回路
図2は、暗号プログラム16として使用するのに適した単純な暗号プログラムを図示している。はじめにステップ32において、暗号プログラム16が未暗号化プログラム14の次(最初)のワードを読み込み、そして、対応ビットの暗号キーによって未暗号化ワードのそれぞれのビットに排他的論理和演算(XOR)を行い、暗号化プログラム18出力のワードを生成する(ステップ34)。最後に処理された未暗号化ワードが未暗号化FPGAプログラム14の最後のワードではないとき(ステップ36)には、暗号プログラム16がステップ32と34を繰り返して、FPGAプログラム14の次の未暗号化ワードを取得してそれをXORし、暗号化プログラム18の対応するワードを生成する。暗号プログラム16は、未暗号化FPGAプログラム14の最後のワードが暗号化されたときにステップ36の後で終了する。
【0018】
図3は、図2のプログラム16の出力を解読するのに適切な図1の解読回路28の単純な実装例を図示している。解読回路28は、8個一組の排他的論理和演算(XOR)ゲート37を有する。それぞれのXORゲート37は、8ビットの暗号キー(キー)の対応するワードによって8ビットの暗号化ワードのビットをXORして、解読データの対応するワードを生成する。例えば、未暗号化FPGAプログラム14の8ビットのワードが二進数値(10011011)を有し、8ビットの暗号キーが値(11010010)を有するものと想定することとする。暗号プログラム16は2つの8ビットの値を論理和演算して、次のような値を有する暗号化FPGAプログラム18のワードを生成する。
すなわち、
暗号化=未暗号化 XOR キー
(01000001)=(10011011)XOR (11010010)である。解読回路28がその暗号化ワード(01000001)を受け取って、それを元の暗号キーの値(11010010)でXORすると、それは次のような元の未暗号化ワードを再生する。
すなわち、
未暗号化=暗号化 XOR キー
(10011011)=(01000001)XOR (11010010)である。8ビットの暗号キーは、28個の異なる暗号キーの値を見積もれる。例えば、暗号キーのサイズを16ビットに増加して216個の可能な値にすることもできる。そのようにするためには、暗号プログラム16のデータワード入出力の幅と、シフトレジスタ24とシフトレジスタ30の間のデータパスの幅と、図3の解読回路28のゲート37の数を単純に16ビット又は16個に増加する。
【0019】
複数チップモジュールバージョン
図4は、暗号化FPGAプログラムを解読するための図1のデバイス24−32がFPGA12を内蔵していないチップ38内に実装された本発明の別の実施の形態を図示している。しかし、FPGA12とICチップ38は、従来の複数チップモジュール技術を用いて、共通のICパッケージ40内に実装されている。FPGA12とICチップ38の間の接続がパッケージ40内で行われているので、それはICチップ38によって生成された解読出力シーケンスを複製したい者にとっても容易にアクセスできない。
【0020】
別の設計
上記の明細書は本発明の好適な実施の形態を説明してきたが、当該業界において通常の知識を有する者は、本発明から逸脱することなくその広範な諸相において前記好適な実施の形態に対して多くの改作をすることができる。例えば、1ビットよりもワイドなプログラミング入力(PI)を有するFPGAに対しては、シフトレジスタ30は十分ワイドな出力を提供するように改変することもできる。データを暗号化して解読するための多くの周知のシステムが、図1の暗号プログラム16と解読回路28の機能を実現するために使用され得る。フラッシュメモリセルやフューズ技術を含むいくつかの周知技術のいずれも不揮発性メモリ32を実装するのに使用され得る。それとは別に、解読回路28への暗号キーの数値入力は、IC20内の揮発性メモリ(レジスタやフリップフロップやSRAMなど)に記憶されて、IC製造中のマスクレベルでIC20を適正にプログラムすることによって、解読回路28への「ハードウェア」入力としても提供され得る。暗号キーは、また、IC20の外部のソースから解読回路28に提供されることも可能である。また、前記の暗号化システムの好適な実施の形態は、FPGAに関連して使用されるものとしてここでは説明されてきたけれども、同様の暗号化システムが、入力データシーケンスによってプログラムされた他の種類の論理デバイスに関連しても使用され得ることは理解されるべきである。したがって、添付の特許請求の範囲は、本発明の真の範囲内及び本発明の精神の範囲内にあるそのようなすべての改作を保護することを意図している。
【図面の簡単な説明】
【図1】
本発明のFPGAプログラム暗号化システムをブロック図形式で図示している。
【図2】
図1の暗号プログラムをフローチャート形式で図示している。
【図3】
図1の解読回路の適切な実装例を略図形式で図示している。
【図4】
本発明のFPGAプログラム暗号化システムの別の実施の形態を図示している。
Claims (18)
- 入力信号に対して論理操作を実行して出力信号を生成する装置であって、前記論理操作がそこに入力として供給される暗号化された第1のプログラムによって定義されているものであり、前記装置が、
前記第1のプログラムを受け取ってそのプログラムを解読して第2のプログラムを生成するための第1の回路手段と、
前記第2のプログラムを受け取ってそのプログラムを記憶し、更に、前記入力信号に対して論理操作を実行して前記出力信号を生成するための第2の回路手段を具備していて、前記論理操作が前記第2のプログラムによって定義されていることを特徴とする装置。 - 前記第2の回路手段がフィールドプログラマブルゲートアレイを有することを特徴とする前記請求項1に記載の装置。
- 前記第1の回路手段と前記第2の回路手段が、共通の集積回路内内に実装されていることを特徴とする前記請求項1に記載の装置。
- 集積回路パッケージを更に具備しており、前記第1の回路手段と前記第2の回路手段が、前記集積回路パッケージ内に収容されていることを特徴とする前記請求項1に記載の装置。
- 前記第1の回路手段に入力暗号キーを提供するための第3の手段を更に具備しており、前記第1の回路手段が前記暗号キーによって決定される方法において前記第1のプログラムを解読することを特徴とする前記請求項1に記載の装置。
- 前記第3の手段が不揮発性メモリを有することを特徴とする前記請求項5に記載の装置。
- 前記第1の回路手段に入力暗号キーを提供するための第3の手段であって、前記第1の回路手段が前記暗号キーによって決定される方法において前記第1のプログラムを解読するものと、
集積回路パッケージであって、前記第1の回路手段と前記第2の回路手段と前記第3の手段を含んでいるものをさらに具備していることを特徴とする前記請求項1に記載の装置。 - 前記第2の回路手段がフィールドプログラマブルゲートアレイを有することを特徴とする前記請求項7に記載の装置。
- 前記第3の手段が不揮発性メモリを有することを特徴とする前記請求項8に記載の装置。
- 入力信号に対して論理操作を実行して出力信号を生成する装置であって、前記論理操作がそこに入力として供給される第1のプログラムによって定義されているものであり、前記装置が、
前記第1のプログラムを暗号化して暗号化された第2のプログラムを生成するための手段と、
前記暗号化された第2のプログラムを受け取ってその暗号化された第2のプログラムを解読して前記第1のプログラムの複製を生成するための第1の回路手段と、
前記第1のプログラムの前記複製を受け取って、更に、前記入力信号に対して論理操作を実行して前記出力信号を生成するための第2の回路手段を具備していて、前記論理操作が前記第1のプログラムの前記複製によって定義されていることを特徴とする装置。 - 前記第2の回路手段がフィールドプログラマブルゲートアレイを有することを特徴とする前記請求項10に記載の装置。
- 前記第1の回路手段と前記第2の回路手段が、共通の集積回路内内に実装されていることを特徴とする前記請求項10に記載の装置。
- 集積回路パッケージを更に具備しており、前記第1の回路手段と前記第2の回路手段が、前記集積回路パッケージ内に内蔵されていることを特徴とする前記請求項10に記載の装置。
- 前記第1の回路手段に入力暗号キーを提供するための第3の手段を更に具備しており、前記暗号化のための手段が前記暗号キーによって決定される方法において前記第1のプログラムを暗号化し、更に、前記第1の回路手段が前記暗号キーによって決定される方法において前記第2のプログラムを解読することを特徴とする前記請求項10に記載の装置。
- 前記第3の手段が不揮発性メモリを有することを特徴とする前記請求項14に記載の装置。
- 集積回路パッケージを更に具備しており、前記第1の回路手段と前記第2の回路手段が、前記集積回路パッケージ内に内蔵されていることを特徴とする前記請求項14に記載の装置。
- 前記第1の回路手段と前記第2の回路手段が、共通の集積回路内内に実装されていることを特徴とする前記請求項14に記載の装置。
- 入力信号に対して論理操作を実行して出力信号を生成するための装置をプログラムする方法であって、前記論理操作がそこに入力として供給される第1のプログラムによって定義されているものであり、前記方法が、
キーの値によって決定される方法で前記第1のプログラムを暗号化して暗号化された第2のプログラムを生成する工程と、
前記暗号化された第2のプログラムを前記キーの前記値によって決定された方法で解読して前記第1のプログラムの複製を生成する工程と、
前記第1のプログラムの前記複製を入力として前記装置に供給する工程とからなる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/358,687 US6351814B1 (en) | 1999-07-21 | 1999-07-21 | Field programmable gate array with program encryption |
PCT/US2000/016982 WO2001008411A1 (en) | 1999-07-21 | 2000-06-20 | Field programmable gate array with program encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004519111A true JP2004519111A (ja) | 2004-06-24 |
Family
ID=23410634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001513176A Pending JP2004519111A (ja) | 1999-07-21 | 2000-06-20 | プログラム暗号化を伴うフィールドプログラマブルゲートアレイ |
Country Status (6)
Country | Link |
---|---|
US (1) | US6351814B1 (ja) |
EP (1) | EP1205071A1 (ja) |
JP (1) | JP2004519111A (ja) |
KR (1) | KR20020021374A (ja) |
TW (1) | TW472488B (ja) |
WO (1) | WO2001008411A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010268308A (ja) * | 2009-05-15 | 2010-11-25 | Canon Inc | 画像形成装置用集積回路 |
JP4789048B2 (ja) * | 2006-06-27 | 2011-10-05 | インテル・コーポレーション | システムオンチップデバイスにおけるデータパスセキュリティのためのシステムおよび技術 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7549056B2 (en) | 1999-03-19 | 2009-06-16 | Broadcom Corporation | System and method for processing and protecting content |
US7810152B2 (en) * | 2002-05-08 | 2010-10-05 | Broadcom Corporation | System and method for securely controlling access to device functions |
US7681043B1 (en) * | 2002-05-08 | 2010-03-16 | Broadcom Corporation | System and method for configuring device features via programmable memory |
US6889208B1 (en) * | 1999-04-15 | 2005-05-03 | Victor Company Of Japan, Ltd. | Contents sale system |
GB9930145D0 (en) | 1999-12-22 | 2000-02-09 | Kean Thomas A | Method and apparatus for secure configuration of a field programmable gate array |
AU2209301A (en) * | 1999-12-22 | 2001-07-03 | Algotronix Limited | Method and apparatus for secure configuration of a field programmable gate array |
US7240218B2 (en) | 2000-02-08 | 2007-07-03 | Algotronix, Ltd. | Method of using a mask programmed key to securely configure a field programmable gate array |
ES2376158T3 (es) * | 2000-02-09 | 2012-03-09 | Swisscom Ag | Descodificador, procedimiento de descodificación y tarjeta de chip. |
US7725860B1 (en) * | 2000-06-19 | 2010-05-25 | Herman Kwong | Contact mapping using channel routing |
US7380131B1 (en) | 2001-01-19 | 2008-05-27 | Xilinx, Inc. | Copy protection without non-volatile memory |
US7299203B1 (en) * | 2001-04-19 | 2007-11-20 | Xilinx, Inc. | Method for storing and shipping programmable ASSP devices |
US20020168067A1 (en) * | 2001-05-08 | 2002-11-14 | Timofei Kouzminov | Copy protection method and system for a field-programmable gate array |
GB0114317D0 (en) * | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
US7191339B1 (en) * | 2001-09-10 | 2007-03-13 | Xilinx, Inc. | System and method for using a PLD identification code |
US7346783B1 (en) * | 2001-10-19 | 2008-03-18 | At&T Corp. | Network security device and method |
US7783901B2 (en) * | 2001-12-05 | 2010-08-24 | At&T Intellectual Property Ii, L.P. | Network security device and method |
JP2004007472A (ja) * | 2002-03-22 | 2004-01-08 | Toshiba Corp | 半導体集積回路、データ転送システム、及びデータ転送方法 |
US7191342B1 (en) * | 2002-06-04 | 2007-03-13 | Xilinx, Inc. | Methods and circuits for allowing encrypted and unencrypted configuration data to share configuration frames |
KR100680944B1 (ko) * | 2003-05-27 | 2007-02-08 | 주식회사 하이닉스반도체 | 반도체 소자의 제조방법 |
US7878902B2 (en) * | 2003-07-16 | 2011-02-01 | Igt | Secured verification of configuration data for field programmable gate array devices |
US7757294B1 (en) * | 2004-08-27 | 2010-07-13 | Xilinx, Inc. | Method and system for maintaining the security of design information |
WO2006071380A2 (en) * | 2004-11-12 | 2006-07-06 | Pufco, Inc. | Securely field configurable device |
JP2008530663A (ja) * | 2005-02-11 | 2008-08-07 | ユニバーサル データ プロテクション コーポレーション | マイクロプロセッサのデータセキュリティの方法およびシステム |
US7788502B1 (en) | 2005-03-10 | 2010-08-31 | Xilinx, Inc. | Method and system for secure exchange of IP cores |
US7971072B1 (en) | 2005-03-10 | 2011-06-28 | Xilinx, Inc. | Secure exchange of IP cores |
GB2424557A (en) | 2005-03-24 | 2006-09-27 | Sony Uk Ltd | FPGA with hardware decryptor for configuration programme which adds second key to itself before re-encrypting and overwriting itself in memory when run |
US7716497B1 (en) | 2005-06-14 | 2010-05-11 | Xilinx, Inc. | Bitstream protection without key storage |
KR100825461B1 (ko) * | 2005-12-22 | 2008-04-28 | 한국전자통신연구원 | 소프트웨어를 이용한 fpga 프로그램 데이터 보호 방법 |
US7479798B1 (en) * | 2006-05-16 | 2009-01-20 | Altera Corporation | Selectively disabled output |
KR20080013130A (ko) * | 2006-08-07 | 2008-02-13 | 삼성전자주식회사 | 표시 장치의 구동 장치 및 구동 방법 |
US7636802B1 (en) * | 2007-04-11 | 2009-12-22 | Xilinx, Inc. | Data transfer using the configuration port of a programmable logic device |
US8427193B1 (en) | 2010-12-07 | 2013-04-23 | Xilinx, Inc. | Intellectual property core protection for integrated circuits |
US8386990B1 (en) | 2010-12-07 | 2013-02-26 | Xilinx, Inc. | Unique identifier derived from an intrinsic characteristic of an integrated circuit |
US8418006B1 (en) | 2010-12-07 | 2013-04-09 | Xilinx, Inc. | Protecting a design for an integrated circuit using a unique identifier |
US9584129B1 (en) * | 2014-06-20 | 2017-02-28 | Altera Corporation | Integrated circuit applications using partial reconfiguration |
US10659437B1 (en) * | 2018-09-27 | 2020-05-19 | Xilinx, Inc. | Cryptographic system |
CN112685758B (zh) * | 2020-12-31 | 2024-02-06 | 南方电网科学研究院有限责任公司 | 基于椭圆曲线加密算法的数据加密系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4823308A (en) * | 1984-02-02 | 1989-04-18 | Knight Technology Ltd. | Microcomputer with software protection |
US5365587A (en) * | 1993-03-11 | 1994-11-15 | International Business Machines Corporation | Self modifying access code for altering capabilities |
TW330999B (en) * | 1996-03-08 | 1998-05-01 | Matsushita Electric Ind Co Ltd | Microprocessor suitable for reproducing AV data while protecting the AV data from illegal copy and image information processing system using the microprocessor |
US6058476A (en) * | 1996-05-22 | 2000-05-02 | Matsushita Electric Industrial Co., Inc. | Encryption apparatus for ensuring security in communication between devices |
US5970142A (en) * | 1996-08-26 | 1999-10-19 | Xilinx, Inc. | Configuration stream encryption |
US6089460A (en) * | 1996-09-13 | 2000-07-18 | Nippon Steel Corporation | Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor |
-
1999
- 1999-07-21 US US09/358,687 patent/US6351814B1/en not_active Expired - Fee Related
-
2000
- 2000-06-20 WO PCT/US2000/016982 patent/WO2001008411A1/en not_active Application Discontinuation
- 2000-06-20 KR KR1020017014513A patent/KR20020021374A/ko not_active Application Discontinuation
- 2000-06-20 JP JP2001513176A patent/JP2004519111A/ja active Pending
- 2000-06-20 EP EP00944759A patent/EP1205071A1/en not_active Withdrawn
- 2000-06-26 TW TW089112498A patent/TW472488B/zh not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4789048B2 (ja) * | 2006-06-27 | 2011-10-05 | インテル・コーポレーション | システムオンチップデバイスにおけるデータパスセキュリティのためのシステムおよび技術 |
JP2010268308A (ja) * | 2009-05-15 | 2010-11-25 | Canon Inc | 画像形成装置用集積回路 |
Also Published As
Publication number | Publication date |
---|---|
EP1205071A1 (en) | 2002-05-15 |
WO2001008411A1 (en) | 2001-02-01 |
TW472488B (en) | 2002-01-11 |
US6351814B1 (en) | 2002-02-26 |
KR20020021374A (ko) | 2002-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004519111A (ja) | プログラム暗号化を伴うフィールドプログラマブルゲートアレイ | |
US7203842B2 (en) | Method and apparatus for secure configuration of a field programmable gate array | |
EP0536943B1 (en) | Data security arrangements for semiconductor programmable logic devices | |
US6441641B1 (en) | Programmable logic device with partial battery backup | |
US6931543B1 (en) | Programmable logic device with decryption algorithm and decryption key | |
US9208357B1 (en) | FPGA configuration bitstream protection using multiple keys | |
CA2429597C (en) | Programmable logic device with method of prreventing readback | |
US6366117B1 (en) | Nonvolatile/battery-backed key in PLD | |
US7058177B1 (en) | Partially encrypted bitstream method | |
US7117373B1 (en) | Bitstream for configuring a PLD with encrypted design data | |
US5915017A (en) | Method and apparatus for securing programming data of programmable logic device | |
US5970142A (en) | Configuration stream encryption | |
US8750503B1 (en) | FPGA configuration bitstream encryption using modified key | |
US6965675B1 (en) | Structure and method for loading encryption keys through a test access port | |
US6957340B1 (en) | Encryption key for multi-key encryption in programmable logic device | |
US7117372B1 (en) | Programmable logic device with decryption and structure for preventing design relocation | |
US20010032318A1 (en) | Apparatus and method for protecting configuration data in a programmable device | |
US7925013B1 (en) | System for data encryption and decryption of digital data entering and leaving memory | |
US8612772B1 (en) | Security core using soft key | |
US8681996B2 (en) | Asymmetric key wrapping using a symmetric cipher | |
US6748368B1 (en) | Proprietary core permission structure and method | |
WO2001046810A1 (en) | Method and apparatus for secure configuration of a field programmable gate array | |
JP2006180375A (ja) | プログラマブル論理回路 | |
JP4234372B2 (ja) | データ暗号化方法,データ復号化方法および集積回路 | |
JPH10283266A (ja) | 半導体集積回路及びこの半導体集積回路のテスト方法 |