JP4213585B2 - Fpga集積回路におけるストリームファイルのための暗号化方法 - Google Patents

Fpga集積回路におけるストリームファイルのための暗号化方法 Download PDF

Info

Publication number
JP4213585B2
JP4213585B2 JP2003527602A JP2003527602A JP4213585B2 JP 4213585 B2 JP4213585 B2 JP 4213585B2 JP 2003527602 A JP2003527602 A JP 2003527602A JP 2003527602 A JP2003527602 A JP 2003527602A JP 4213585 B2 JP4213585 B2 JP 4213585B2
Authority
JP
Japan
Prior art keywords
data stream
gap
encrypted
encrypting
encryption
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.)
Expired - Fee Related
Application number
JP2003527602A
Other languages
English (en)
Other versions
JP2005518691A (ja
Inventor
ウェイン・ウォング
Original Assignee
アクテル・コーポレイシヨン
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アクテル・コーポレイシヨン filed Critical アクテル・コーポレイシヨン
Publication of JP2005518691A publication Critical patent/JP2005518691A/ja
Application granted granted Critical
Publication of JP4213585B2 publication Critical patent/JP4213585B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/76Protecting 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Description

本発明は、フィールド・プログラマブル・ゲート・アレイ(FPGA)集積回路に関する。より詳細には、本発明は、FPGAデバイスをプログラムするために用いられるデータストリームを暗号化するための方法および装置に関する。
フィールド・プログラマブル・ゲート・アレイ(FPGA)は、セルまたはブロックと称されかつプログラム可能な機能を有する汎用論理回路からなる2次元アレイを含む集積回路(IC)である。これらのセルは、プログラム可能なバスにより互いに連結される。セルのタイプは、少数の変数からなる全てのブール関数を実現することが可能な小型の多機能回路(または、構成設定可能な機能ブロックまたはグループ)であり得る。セルのタイプは、ゲートに制約されるものではない。例えば、構成設定可能な機能グループは、通常は、加算、減算などの論理関数をFPGAの内部で構成設定するために用いることができるメモリセルおよび接続トランジスタを含む。セルは、フリップフロップのような順次素子をさらに含み得る。FPGA内に見られる2つのタイプの論理セルは、多重化器に基づいたもの、および、プログラム可能な読み出し専用メモリ(PROM)テーブル−ルックアップメモリに基づいたものである。消去可能なFPGAについては、何度も再プログラムすることができる。この技術は、新製品および製造のために試作品のデザインを開発およびデバッグする場合に、特に便利である。
FPGAは、通常は、回路のアレイと、中立のルーティング相互接続(uncommitted routing interconnects)の組と、該回路および該ルーティング相互接続の両方と関連づけられた、ユーザーによりプログラム可能なスイッチの組とを含む物理テンプレートを含み得る。これらのスイッチが適切にプログラムされる(オンまたはオフ状態に設定される)場合に、FPGAのテンプレートまたは根元的な回路/相互接続は、特定のカスタマイズされた機能を実行するために、カスタマイズまたは構成設定される。これらのスイッチのオン−オフ状態を再プログラムすることにより、FPGAは、多くの様々な機能を実行することができる。いったん、FPGAの特定の構成設定が決定されると、ある特定の機能を実行するようにFPGAを構成設定することができる。
FPGAにおける、ユーザーによりプログラム可能なスイッチについては、ONOアンチヒューズ、M−Mアンチヒューズ、SRAMメモリセル、フラッシュEPROMメモリセル、および、EEPROMメモリセルのような様々な技術の形で実施することができる。ヒューズまたはアンチヒューズをスイッチとして用いるFPGAについては、1度しかプログラムすることができない。FPGAの、メモリセルにより制御されるスイッチという実施手段については、反復的に再プログラムすることができる。この筋書においては、回路内の選択された点(A,B)を接続するかまたは未接続のままにするためのスイッチとして、NMOSトランジスタを用いることができる。トランジスタのソースおよびドレインノードについては、点A,Bにそれぞれ接続することができ、かつ、ゲートノードについては、メモリセルに直接的または間接的に接続することができる。メモリセルの状態を論理“1”または論理“0”に設定することにより、スイッチをターンオンまたはターンオフさせることができるので、点A,Bは、接続されるか、または、未接続のままにされる。こうして、これらのスイッチをプログラムするための能力は、非常に柔軟性のあるデバイスを提供する。
FPGAは、実施すべき回路を決定するプログラムを、FPGAチップ上のRAMまたはPROMに記憶することができる。この構成設定メモリ(configuration memory)(CM)内のデータのパターンは、セルの機能と、これらの相互接続の配線とを決定する。CMの各ビットは、セルの機能を選択できるかまたは接続を行う(または、遮断する)ことができる対象回路内のトランジスタスイッチを制御する。CMの内容を取り替えることにより、設計者は、設計の変更を行うことができ、または、設計上の誤りを訂正することができる。CMについては、外部ソースからダウンロードすることができるか、または、チップ上に記憶することができる。このタイプのFPGAについては、反復的に再プログラムすることができ、このことは、開発および製造上のコストを著しく低減させる。
FPGAをプログラムするために、デザインソフトウェア(design software)を用いることができる。デザインソフトウェアは、プログラム可能なスイッチについての、エンドユーザーが希望する特定の構成設定を、FPGA構成設定データの形にコンパイルすることができる。デザインソフトウェアは、構成設定データを、ビットストリーム(すなわち、FPGAに供給され、かつ、プログラム可能なスイッチのための構成設定メモリをプログラムするために用いられる、1または0からなるストリーム)の形にアセンブルする。ビットストリームは、各メモリセルが“1”を記憶しているのか、または、“0”を記憶しているのかを判断するCM内にロードすべきデータパターンである。各CM内に記憶されたビットは、自身に関連づけられたトランジスタスイッチがターンオンされるのか、または、ターンオフされるのかを制御する。エンドユーザーは、通常は、自分たちがFPGAのためのデザインをシミュレートしかつテストした後に、ソフトウェアを用いてビットストリームを作成する。
図1のフローチャートを参照すると、設計者またはエンドユーザーは、FPGAをプログラムする(100)。デザインソフトウェアは、構成設定データを、データストリームの形にアセンブルする(110)。この動作については、ソフトウェア人員により実行することもできる。データストリームについては、FPGAの外部にあるソース上に記憶することができる(120)。始動に基づいて、外部ソースは、データストリームをFPGAへ送信する(130)。いったんFPGA内に入ると、データストリームは、FPGA内のRAMまたはPROMを構成設定する。
外部ソースからダウンロードされるデータストリームを用いるFPGAにおいて、図1の動作120,130との間に、データストリームがFPGA上にロードされている際に、ある人物は、データストリームを傍受することができてしまう。このことは、このような人物がデータストリームを読み取ることができる場合に、該人物が集積回路を逆行分析する(reverse-enginner)ことを可能にしてしまう。
本発明は、FPGAデバイスをプログラムするために用いられるデータストリームを暗号化するための方法および装置であって、データストリーム内に少なくとも1つのギャップが存在するか否かを判断することと、データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされるか否かを判断することと、前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームを暗号化することとを具備する方法および装置に向けられる。
さらに、本発明は、FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための方法および装置であって、データストリーム内に少なくとも1つのギャップが存在するか否かを判断することと、データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたか否かを判断することと、前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたならば、前記データストリームを解読することとを具備する方法および装置に向けられる。
本発明についての以下の説明が例示的なものに過ぎず、かつ、決して制限的なものではないことを、当業者は理解するだろう。本発明の他の実施例が、当業者には容易に想到されるだろう。
図2は、開示された方法の一実施例について説明するフローチャートを指す。最初の動作200において、設計者またはユーザーは、FPGAをプログラムする(200)。デザインソフトウェアは、構成設定データを、データストリームの形にアセンブルする(210)。デザインソフトウェアは、設計者またはユーザーがデータストリームの暗号化を希望するか否かについて質問する。設計者またはユーザーがデータストリームの暗号化を希望すれば、該設計者またはユーザーは、動作220において、暗号化のための選択肢を選択することができる。データストリームは、動作230において暗号化される。この動作230については、ソフトウェア人員により実行することもできる。データストリームについては、FPGAの外部にあるソース上に記憶することができる(240)。外部データソースは、PROM、CPU、または、他の任意のメモリデバイスであり得る。始動に基づいて、外部ソースは、データストリームを、FPGAへ送信する(250)。FPGAは、RAMまたはPROMを構成設定する前に、データストリームを解読することができる(260)。いったん解読されると、データストリームは、FPGA内のRAMまたはPROMを構成設定する(270)。FPGA上の各プログラム可能なトランジスタと関連づけられたRAMは、RAMセル(RAM CELLS)とも称され得る。
多くのシステムにおいて、データストリームは、水平方向および垂直方向に走るX,Yアドレス線によりアドレス指定されるCM内にロードされる。構成設定中に、データストリームビットは、列(Y)ずつ順次的にロードされる。1列内において、データストリームは、最上部から最下部へ(全てのまたはX個の行を貫通して)1ビットずつロードされる。X,Y線またはアドレスの交点の中には物理CMビットを持たないものもあるが、その理由は、これらの位置が論理モジュールまたは他の構成要素により用いられることがあるためである。FPGAデバイス上において、データストリームビットを備えない位置が存在しないことがあるが、データストリームは、これらの空白位置に対応する1または0の形式のデータをなおも含む。
アドレス指定空間における連続的な空白位置は、“ギャップ(GAP)”と称され得る。ギャップ内部のストリームデータは、CMに書き込まれないので、構成設定されたFPGAの機能性には何の影響も及ぼさない。アドレス復号器は、このようなギャップの始まりと、さらに終わりとを、信号で伝えることができる。ギャップの終わりにおいて、この時点までにロードされた構成設定データの無欠性を、チップ上の16ビット巡回冗長検査(CRC)回路によりチェックすることができる。16ビットCRCを用いる開示されたシステムの他の実施例において、最小のギャップサイズは17ビットであり得る。ギャップ内部の最初のビットは、“暗号化イネーブル(Encryption Enable)”ビットであり得る。暗号化イネーブルビットが設定されれば、データストリームの後続セクションが暗号化される。このセクションについては、暗号化イネーブルビットの後から、次のギャップの始まりまでの全てのビットとして定義することができる。しかしながら、セクションについては、他の方法で定義することもできる。暗号化がイネーブル状態にされれば、8ビット毎に補完を行う(“1”から“0”に、および、“0”から“1”に変更する)ことができる。8番目のビットのみが補完される必要はなく、他のビットを補完することができ、データのランダムなパターンまたはランダムではないパターンを、データストリームのギャップ内に挿入することができる。暗号化されたデータストリームがFPGAのCM内にロードされれば、FPGAは正確に機能しないことがある。従って、データストリームについては、CMに入る前に、しかし、FPGAデバイスに入った後に、解読することができる。暗号化については、各セクションにわたって、任意選択的に“オン”または“オフ”に設定することができるので、様々なオン/オフ設定を備えた特定のデザインのために、データストリームファイルは非常に様々な形で出現することができ、これにより、逆行分析をより困難なものにする。
図3を参照すると、前記システムの一実施例の例示が示される。前記システムは、動作310において、データストリームを受信する。前記システムは、質問320において、自身がギャップの始まりを受信したか否かを判断する。開示されたシステムの一実施例において、ギャップは、2ビットのような小さなものであり得る。開示されたシステムの他の実施例において、ギャップは、少なくとも17ビットの長さから、少なくとも64ビットの長さであり得る。最小の17ビットは、16ビットCRCを用いることに起因し得る。次に、前記システムは、質問330において、このギャップにわたって暗号化がイネーブル状態にされたか否かを判断する。暗号化がイネーブル状態にされたならば、前記システムは、動作340において、次のギャップの始まりまで、8ビット毎に補完を行う。前記システムは、質問350において、自身がデータストリームの終わりに到達したと判断するまで、この方法を実行する。
図4を参照すると、開示された方法の他の実施例が示される。前記FPGAは、動作410において、外部ソースから、暗号化されたデータストリームを受信する。次に、前記システムは、質問420において、自身がギャップの始まりを受信したか否かを判断する。前記システムは、自身がギャップの始まりを受信したと判断すれば、質問430において、暗号化がイネーブル状態にされたか否かを判断する。暗号化がイネーブル状態にされたならば、前記システムは、動作440において、次のギャップの始まりまで、8ビット毎に(あるいは、8以外の数が用いられたならば、他のnビット毎に)補完を行う。動作440は、事実上、データストリームを解読する。次に、前記システムは、質問450において、自身がデータストリームの終わりを受信したか否かを判断する。前記システムは、自身がデータストリームの終わりを受信したと判断すれば、動作460において、解読されたデータストリームによって、FPGAのRAMおよび/またはPROMを構成設定する。
本発明の他の実施例において、データストリームの一部分を圧縮し、かつ、データストリームの他の部分を暗号化することができ、これにより、データストリームをさらに部分的に変更し、データストリームを逆行分析しようと試み得る人物を妨害する。
本発明の他の実施例において、データストリームの逆行分析を希望し得る人物をさらに妨害するために、データストリームのギャップ内に、ランダムなビットを挿入することができる。
本発明の実施例および適用について示しかつ説明してきた一方で、本明細書における発明的概念から逸脱することなく、前述以外の多くの修正がさらに可能であることが、当業者には明らかとなるだろう。従って、本発明は、添付の請求項の真意以外に制約されるべきではない。これらの請求項はデータストリームをFPGA上のRAMセルへ送信することについて言及しているが、当業者は、開示されたシステムが、FPGAに配置された他のメモリデバイス(PROMを含むが、これに制限されるものではない)を備えたデバイスにも適用されることに気づくだろう。
従来技術を示すフローチャートである。 開示されたシステムの一実施例を示すフローチャートである。 開示されたシステムの一実施例を示すフローチャートである。 開示されたシステムの一実施例を示すフローチャートである。

Claims (27)

  1. FPGAデバイスをプログラムするために用いられるデータストリームを暗号化するための装置の動作方法であって、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断するステップと、
    データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされるか否かを判断するステップと、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームの一部分を圧縮し、かつ、前記データストリームの他の部分を暗号化するステップ
    を具備することを特徴とする方法。
  2. 前記データストリームを暗号化するステップは、次の少なくとも1つのギャップの始まりまで、該データストリームの8ビット毎にビット反転を行うステップをさらに具備することを特徴とする請求項1に記載の方法。
  3. FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための装置の動作方法であって、
    記データストリームを受信するステップを具備し前記データストリームの一部分は圧縮されており、かつ、前記データストリームの他の部分は暗号化されており、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断するステップと、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームを解読するステップと、
    前記データストリームを、FPGAデバイス内の複数のRAMセルへ送信するステップ
    をさらに具備することを特徴とする方法。
  4. 前記データストリームを解読するステップは、次の少なくとも1つのギャップの始まりまで、該データストリームの8ビット毎にビット反転を行うステップをさらに具備することを特徴とする請求項に記載の方法。
  5. 少なくとも1つのギャップは暗号化されず、かつ、該暗号化されないギャップは圧縮されることを特徴とする請求項1に記載の方法。
  6. 少なくとも1つのギャップにわたって、該ギャップの一連続的セグメントは暗号化され、かつ、該ギャップの他の連続的セグメントは圧縮されることを特徴とする請求項1に記載の方法。
  7. 前記少なくとも1つのギャップ内に、ランダムなビットが挿入されることを特徴とする請求項1に記載の方法。
  8. 前記少なくとも1つのギャップ内に、ランダムではないビットが挿入されることを特徴とする請求項1に記載の方法。
  9. FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための装置の動作方法であって、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断するステップを具備し前記データストリームの一部分は圧縮されており、かつ、前記データストリームの他の部分は暗号化されており、
    データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたか否かを判断するステップと、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたならば、前記データストリームを解読するステップ
    さらに具備することを特徴とする方法。
  10. コンピュータに、FPGAデバイスをプログラムするために用いられるデータストリームを暗号化するための手順を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記手順は、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断する手順と、
    データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされるか否かを判断する手順と、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームの一部分を圧縮し、かつ、前記データストリームの他の部分を暗号化する手順
    を具備することを特徴とする記録媒体
  11. 前記データストリームを暗号化する手順は、次の少なくとも1つのギャップの始まりまで、該データストリームの8ビット毎にビット反転を行う手順をさらに具備することを特徴とする請求項10に記載の記録媒体
  12. コンピュータに、FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための手順を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記手順は、
    記データストリームを受信する手順を具備し前記データストリームの一部分は圧縮されており、かつ、前記データストリームの他の部分は暗号化されており、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断する手順と、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームを解読する手順と、
    前記データストリームを、FPGAデバイス内の複数のRAMセルへ送信する手順
    をさらに具備することを特徴とする記録媒体
  13. 前記データストリームを解読する手順は、次の少なくとも1つのギャップの始まりまで、該データストリームの8ビット毎にビット反転を行う手順をさらに具備することを特徴とする請求項12に記載の記録媒体
  14. 前記データストリームを暗号化するための手順は、少なくとも1つのギャップは暗号化されず、かつ、該暗号化されないギャップは圧縮される、という手順をさらに具備することを特徴とする請求項10に記載の記録媒体
  15. 前記データストリームを暗号化するための手順は、少なくとも1つのギャップにわたって、該ギャップの一連続的セグメントは暗号化され、かつ、該ギャップの他の連続的セグメントは圧縮される、という手順をさらに具備することを特徴とする請求項10に記載の記録媒体
  16. 前記データストリームを暗号化するための手順は、暗号化の前に、前記少なくとも1つのギャップ内に、ランダムなビットが挿入される、という手順をさらに具備することを特徴とする請求項10に記載の記録媒体
  17. 前記データストリームを暗号化するための手順は、暗号化の前に、前記少なくとも1つのギャップ内に、ランダムではないビットが挿入される、という手順をさらに具備することを特徴とする請求項10に記載の記録媒体
  18. コンピュータに、FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための手順を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記手順は、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断する手順を具備し前記データストリームの一部分は圧縮されており、かつ、前記データストリームの他の部分は暗号化されており、
    データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたか否かを判断する手順と、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたならば、前記データストリームを解読する手順
    さらに具備することを特徴とする記録媒体
  19. FPGAデバイスをプログラムするために用いられるデータストリームを暗号化するための装置であって、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断する手段と、
    データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされるか否かを判断する手段と、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームの一部分を圧縮し、かつ、前記データストリームの他の部分を暗号化する手段と
    を具備することを特徴とする装置。
  20. 前記暗号化する手段は、次の少なくとも1つのギャップの始まりまで、該データストリームの8ビット毎にビット反転を行う手段をさらに具備することを特徴とする請求項19に記載の装置。
  21. FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための装置であって、
    記データストリームを受信する手段を具備し前記データストリームの一部分は圧縮されており、かつ、前記データストリームの他の部分は暗号化されており、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断する手段と、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされれば、前記データストリームを解読する手段と、
    前記データストリームを、FPGAデバイス内の複数のRAMセルへ送信する手段と
    をさらに具備することを特徴とする装置。
  22. 前記解読する手段は、次の少なくとも1つのギャップの始まりまで、該データストリームの8ビット毎にビット反転を行う手段をさらに具備することを特徴とする請求項21に記載の装置。
  23. 少なくとも1つの暗号化されないギャップを圧縮する手段をさらに具備することを特徴とする請求項19に記載の装置。
  24. 前記ギャップの一連続的セグメントを暗号化する手段と、該ギャップの他の連続的セグメントを圧縮する手段とをさらに具備することを特徴とする請求項19に記載の装置。
  25. 暗号化の前に、前記少なくとも1つのギャップ内に、ランダムなビットを挿入する手段をさらに具備することを特徴とする請求項19に記載の装置。
  26. 暗号化の前に、前記少なくとも1つのギャップ内に、ランダムではないビットを挿入する手段をさらに具備することを特徴とする請求項19に記載の装置。
  27. FPGAデバイスをプログラムするために用いられる暗号化されたデータストリームを解読するための装置であって、
    データストリーム内に少なくとも1つのギャップが存在するか否かを判断する手段を具備し前記データストリームの一部分は圧縮されており、かつ、前記データストリームの他の部分は暗号化されており、
    データストリーム内の前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたか否かを判断する手段と、
    前記少なくとも1つのギャップにわたって暗号化がイネーブル状態にされたならば、前記データストリームを解読する手段と
    さらに具備することを特徴とする装置。
JP2003527602A 2001-09-13 2002-09-06 Fpga集積回路におけるストリームファイルのための暗号化方法 Expired - Fee Related JP4213585B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/953,580 US7558967B2 (en) 2001-09-13 2001-09-13 Encryption for a stream file in an FPGA integrated circuit
PCT/US2002/028357 WO2003023618A1 (en) 2001-09-13 2002-09-06 Encryption for a stream file in an fpga integrated circuit

Publications (2)

Publication Number Publication Date
JP2005518691A JP2005518691A (ja) 2005-06-23
JP4213585B2 true JP4213585B2 (ja) 2009-01-21

Family

ID=25494214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003527602A Expired - Fee Related JP4213585B2 (ja) 2001-09-13 2002-09-06 Fpga集積回路におけるストリームファイルのための暗号化方法

Country Status (4)

Country Link
US (1) US7558967B2 (ja)
EP (1) EP1425667A4 (ja)
JP (1) JP4213585B2 (ja)
WO (1) WO2003023618A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095508B2 (en) * 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US7139743B2 (en) * 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US6711558B1 (en) * 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US7558967B2 (en) 2001-09-13 2009-07-07 Actel Corporation Encryption for a stream file in an FPGA integrated circuit
JP2004007472A (ja) 2002-03-22 2004-01-08 Toshiba Corp 半導体集積回路、データ転送システム、及びデータ転送方法
US20070277036A1 (en) 2003-05-23 2007-11-29 Washington University, A Corporation Of The State Of Missouri Intelligent data storage and processing using fpga devices
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US20050093572A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with configuration on initialization function for embedded configurable logic array
US7917299B2 (en) 2005-03-03 2011-03-29 Washington University Method and apparatus for performing similarity searching on a data stream with respect to a query string
US7702629B2 (en) 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7954114B2 (en) * 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US8879727B2 (en) 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
CA3059606C (en) 2008-12-15 2023-01-17 Ip Reservoir, Llc Method and apparatus for high-speed processing of financial market depth data
US8930423B1 (en) * 2008-12-30 2015-01-06 Symantec Corporation Method and system for restoring encrypted files from a virtual machine image
US8417965B1 (en) * 2010-04-07 2013-04-09 Xilinx, Inc. Method and circuit for secure definition and integration of cores
JP6045505B2 (ja) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. 金融市場における注文を管理する方法および装置
US9576114B2 (en) * 2012-03-05 2017-02-21 Marvin Marshall System and method for securely retrieving and playing digital media
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US10146845B2 (en) 2012-10-23 2018-12-04 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US10133802B2 (en) 2012-10-23 2018-11-20 Ip Reservoir, Llc Method and apparatus for accelerated record layout detection
US9218494B2 (en) 2013-10-16 2015-12-22 Citrix Systems, Inc. Secure client drive mapping and file storage system for mobile device management type security
WO2015164639A1 (en) 2014-04-23 2015-10-29 Ip Reservoir, Llc Method and apparatus for accelerated data translation
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
JP2017167274A (ja) * 2016-03-15 2017-09-21 株式会社東芝 暗号装置及び復号装置
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning
US11296921B2 (en) * 2017-12-03 2022-04-05 Intel Corporation Out-of-band management of FPGA bitstreams

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5451887A (en) * 1986-09-19 1995-09-19 Actel Corporation Programmable logic module and architecture for field programmable gate array device
US4910417A (en) * 1986-09-19 1990-03-20 Actel Corporation Universal logic module comprising multiplexers
US5091938B1 (en) * 1990-08-06 1997-02-04 Nippon Denki Home Electronics Digital data cryptographic system
JP3081032B2 (ja) 1991-08-23 2000-08-28 株式会社リコー 符号化復号化方法
GB9121591D0 (en) * 1991-10-11 1991-11-27 Pilkington Micro Electronics Data security arrangement for semiconductor programmable logic devices
US5515437A (en) * 1993-08-23 1996-05-07 Matsushita Electric Industrial Co., Ltd. Scramble transmission apparatus and signal processing apparatus
GB2288519A (en) 1994-04-05 1995-10-18 Ibm Data encryption
US5426379A (en) * 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
US5768372A (en) * 1996-03-13 1998-06-16 Altera Corporation Method and apparatus for securing programming data of a programmable logic device
US5675553A (en) * 1996-06-28 1997-10-07 The United States Of America As Represented By The Secretary Of The Navy Method for data gap compensation
US5970142A (en) * 1996-08-26 1999-10-19 Xilinx, Inc. Configuration stream encryption
US5946478A (en) * 1997-05-16 1999-08-31 Xilinx, Inc. Method for generating a secure macro element of a design for a programmable IC
US6006321A (en) * 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US6028445A (en) * 1997-12-30 2000-02-22 Xilinx, Inc. Decoder structure and method for FPGA configuration
US6118869A (en) * 1998-03-11 2000-09-12 Xilinx, Inc. System and method for PLD bitstream encryption
US6324650B1 (en) * 1998-03-16 2001-11-27 John W.L. Ogilvie Message content protection and conditional disclosure
US6205574B1 (en) * 1998-07-28 2001-03-20 Xilinx, Inc. Method and system for generating a programming bitstream including identification bits
JP2000078023A (ja) 1998-09-02 2000-03-14 Oki Electric Ind Co Ltd データ処理方法および装置
JP3033562B2 (ja) 1998-09-02 2000-04-17 富士ゼロックス株式会社 再配置可能な実行プログラムの生成方法及び実行プログラム生成装置
US6735291B1 (en) * 1998-12-11 2004-05-11 Securelogix Corporation Virtual private switched telephone network
US6357037B1 (en) * 1999-01-14 2002-03-12 Xilinx, Inc. Methods to securely configure an FPGA to accept selected macros
US6654889B1 (en) * 1999-02-19 2003-11-25 Xilinx, Inc. Method and apparatus for protecting proprietary configuration data for programmable logic devices
US6446242B1 (en) * 1999-04-02 2002-09-03 Actel Corporation Method and apparatus for storing a validation number in a field-programmable gate array
JP2001109667A (ja) * 1999-10-13 2001-04-20 Nec Ic Microcomput Syst Ltd データ処理方法および装置
US20010032318A1 (en) * 1999-12-03 2001-10-18 Yip Kun Wah Apparatus and method for protecting configuration data in a programmable device
US6756811B2 (en) * 2000-03-10 2004-06-29 Easic Corporation Customizable and programmable cell array
US6904527B1 (en) * 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
US6738962B1 (en) * 2000-06-12 2004-05-18 Altera Corporation Configuration and/or reconfiguration of integrated circuit devices that include programmable logic and microprocessor circuitry
US6526557B1 (en) * 2000-07-25 2003-02-25 Xilinx, Inc. Architecture and method for partially reconfiguring an FPGA
US6507943B1 (en) * 2000-09-26 2003-01-14 Xilinx, Inc. Method of compressing a bitstream of an FPGA
US6931543B1 (en) * 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US7558967B2 (en) 2001-09-13 2009-07-07 Actel Corporation Encryption for a stream file in an FPGA integrated circuit

Also Published As

Publication number Publication date
EP1425667A1 (en) 2004-06-09
WO2003023618A1 (en) 2003-03-20
US7558967B2 (en) 2009-07-07
US20030163715A1 (en) 2003-08-28
EP1425667A4 (en) 2006-12-27
JP2005518691A (ja) 2005-06-23

Similar Documents

Publication Publication Date Title
JP4213585B2 (ja) Fpga集積回路におけるストリームファイルのための暗号化方法
CA2428031C (en) Programmable logic device with decryption algorithm and decryption key
US6981153B1 (en) Programmable logic device with method of preventing readback
US7058177B1 (en) Partially encrypted bitstream method
US9208357B1 (en) FPGA configuration bitstream protection using multiple keys
US6441641B1 (en) Programmable logic device with partial battery backup
US6366117B1 (en) Nonvolatile/battery-backed key in PLD
US9054859B1 (en) FPGA configuration bitstream encryption using modified key
US6957340B1 (en) Encryption key for multi-key encryption in programmable logic device
US7117373B1 (en) Bitstream for configuring a PLD with encrypted design data
US6894527B1 (en) Evolved circuits for bitstream protection
US6965675B1 (en) Structure and method for loading encryption keys through a test access port
US6768337B2 (en) Integrated circuit, method of circuit configuration and program thereof
EP2702526B1 (en) Method and apparatus for securing programming data of a programmable device
US7613931B2 (en) Copy protection method and system for programmable gate array
JP2004519111A (ja) プログラム暗号化を伴うフィールドプログラマブルゲートアレイ
US7581117B1 (en) Method for secure delivery of configuration data for a programmable logic device
JP2004361986A (ja) スクランブル回路
US20030005292A1 (en) Encrypted download of SRAM-based FPGAS
US6711674B1 (en) Method of watermarking configuration data in an FPGA by embedding the watermark corresponding to a macro obtained upon encountering a first watermark tag from the macro
JP6898921B2 (ja) ライフサイクル状態の暗号化マネジメント
JP2008181375A (ja) 半導体記憶装置
JP2006072842A (ja) 半導体装置並びにその再構成方法及びそのプログラミング方法
CN118260811A (en) System and method for securing input/output data
JP2007058451A (ja) プログラム保護方法及びプログラマブル論理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080509

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081030

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4213585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees