フィールドプログラマブルゲートアレイFPGAにおいて、前記FPGAの外部にあり前記FPGAと動作可能に接続された遠隔キー記憶デバイスから暗号化されたFPGAロード復号キーを受信し、復号化されたFPGAロード復号化キーを提供するために、前記暗号化されたFPGAロード復号キーをキーセキュリティユニット内で復号化し、暗号化されたFPGAコンフィギュレーションデータを前記FPGAにおいて受信し、コンフィギュレーションデータセキュリティユニットにおいて、前記復号化されたFPGAロード復号化キーを用いて前記FPGAコンフィギュレーションデータの復号化及び認証を行うFPGAを構成する方法。前記FPGAコンフィギュレーションデータが、新暗号規格の暗号ブロック連鎖メッセージ認証コードを備えたカウンタAESCCM暗号化モードを用いて復号化される請求項1の方法。前記暗号化されたFPGAコンフィギュレーションデータが、プログラマブルROMメモリPROMデバイスを含むメモリデバイスから受信される請求項1の方法。前記FPGAコンフィギュレーションデータを復号化及び認証するステップが、前記FPGAを構成するために迂回不能である請求項1の方法。前記FPGAコンフィギュレーションデータを復号化することが、前記FPGAコンフィギュレーションデータに対応付けられた暗号化状態を示し、前記FPGAの外部にあって前記FPGAと動作可能に接続された認証デバイスから前記FPGAにおいてチャレンジメッセージを受信し、状態暗号化ユニットにおいて、レスポンスメッセージを生成するために前記暗号化状態を用いて前記チャレンジメッセージを暗号化し、前記レスポンスメッセージを前記認証デバイスに送信し、前記認証デバイスが、復号化されたチャレンジメッセージを生成するために前記レスポンスメッセージを復号化し、前記FPGAコンフィギュレーションデータの完全性を示すために前記チャレンジメッセージを当該復号化されたチャレンジメッセージと比較する請求項1の方法。前記チャレンジメッセージが新暗号規格の暗号ブロック連鎖AESCBC暗号化モードを用いて暗号化される請求項5の方法。前記暗号化状態が、前記FPGAコンフィギュレーションデータの少なくとも一部に基づいて決定される請求項5の方法。前記暗号化されたFPGAロード復号キーがセッションキーを用いて復号化され、前記共通キーが前記FPGA及び前記遠隔キー記憶デバイスの両方に格納される請求項5の方法。前記チャレンジメッセージの前記暗号化が前記セッションキーを用いて実行され、前記セッションキーが前記認証デバイスにも格納される請求項8の方法。前記セッションキーが、鍵共有プロトコルを用いて前記FPGA及び前記遠隔キー記憶デバイスにおいて計算される請求項8の方法。前記鍵共有プロトコルが、MenezesQuVanstoneMQVプロトコル、楕円曲線MQVECMQVプロトコル、及びDiffieHellmanプロトコルの一つを含む請求項10の方法。フィールドプログラマブルゲートアレイFPGAにおいて、前記FPGAの外部にあり前記FPGAと動作可能に接続された遠隔キー記憶デバイスから暗号化されたFPGAロード復号キーを受信するキーインタフェースと、復号化されたFPGAロード復号化キーを提供するために、前記暗号化されたFPGAロード復号キーをキーセキュリティユニット内で復号化するキーセキュリティユニットと、前記FPGAにおいて、暗号化されたFPGAコンフィギュレーションデータを受信するロードインタフェースと、前記復号化されたFPGAロード復号化キーを用いて前記FPGAコンフィギュレーションデータの復号化及び認証を行うコンフィギュレーションデータセキュリティユニットと、を備えるFPGAを構成するシステム。前記コンフィギュレーションデータセキュリティユニットが、新暗号規格の暗号ブロック連鎖メッセージ認証コードを備えたカウンタAESCCM暗号化モードを用いて前記FPGAコンフィギュレーションデータを復号化する請求項12のシステム。前記暗号化されたFPGAコンフィギュレーションデータが、プログラマブルROMメモリPROMデバイスを含むメモリデバイスから受信される請求項12のシステム。前記キーセキュリティユニット、コンフィギュレーションデータセキュリティユニット、及び前記状態暗号化ユニットの少なくとも一つが、前記FPGA内にある請求項12のシステム。前記コンフィギュレーションデータセキュリティユニットが、前記FPGAを構成するために迂回不能である請求項12のシステム。前記コンフィギュレーションデータセキュリティユニットが前記FPGAコンフィギュレーションデータに対応付けられた暗号化状態を生成し、前記FPGAの外部にあって前記FPGAと動作可能に接続された認証デバイスから前記FPGAにおいてチャレンジメッセージを受信する認証入力インタフェースと、レスポンスメッセージを生成するために前記暗号化状態を用いて前記チャレンジメッセージを暗号化する状態暗号化ユニットと、前記レスポンスメッセージを前記認証デバイスに送信し、前記認証デバイスが、復号化されたチャレンジメッセージを生成するために前記レスポンスメッセージを復号化し、前記FPGAコンフィギュレーションデータの完全性を示すために前記チャレンジメッセージを当該復号化されたチャレンジメッセージと比較する請求項12のシステム。前記チャレンジメッセージが新暗号規格の暗号ブロック連鎖AESCBC暗号化モードを用いて暗号化される請求項16のシステム。前記暗号化状態が、前記FPGAコンフィギュレーションデータの少なくとも一部に基づいて決定される請求項17のシステム。前記暗号化されたFPGAロード復号キーがセッションキーを用いて復号化され、前記共通キーが前記FPGA及び前記遠隔キー記憶デバイスの両方に格納される請求項17のシステム。前記状態暗号化ユニットが前記チャレンジメッセージを暗号化するために前記セッションキーを使用し、前記セッションキーがさらに前記認証デバイスに格納される請求項20のシステム。前記セッションキーが、鍵共有プロトコルを用いて前記FPGA及び前記遠隔キー記憶デバイスにおいて計算される請求項20のシステム。前記鍵共有プロトコルが、MenezesQuVanstoneMQVプロトコル、楕円曲線MQVECMQVプロトコル、及びDiffieHellmanプロトコルの一つを含む請求項22のシステム。前記遠隔キー記憶デバイスが、セキュアプロセッサを含み、当該セキュアプロセッサが、前記鍵共有プロトコルを使用するとともに前記遠隔キー記憶デバイスの出力として前記セッションキーの生成を促進するように構成された請求項22のシステム。フィールドプログラマブルゲートアレイFPGAにおいて暗号化されたFPGAコンフィギュレーションデータを受信するロードインタフェースと、FPGAロード復号化キーを用いてFPGAコンフィギュレーションデータの復号化及び認証を行い、前記FPGAコンフィギュレーションデータに対応付けられた暗号化状態を生成するコンフィギュレーションデータセキュリティユニットと、前記FPGAの外部にあるとともに前記FPGAと動作可能に接続され、前記FPGAにおいて認証デバイスからチャレンジメッセージを受信する認証入力インタフェースと、レスポンスメッセージを生成するために、前記暗号化状態を用いて前記チャレンジメッセージを暗号化する状態暗号化ユニットと、前記レスポンスメッセージを前記認証デバイスに送信する認証出力インタフェースと、を備え、前記認証デバイスは、復号化されたチャレンジメッセージを生成するために前記レスポンスメッセージを復号化し、前記FPGAコンフィギュレーションデータの完全性を示すために前記チャレンジメッセージを当該復号化されたチャレンジメッセージと比較する、FPGAを構成するシステム。前記FPGAコンフィギュレーションデータを用いてプログラムされるプログラマブルロジック回路をさらに備えた請求項25のシステム。プロセッサに実行されることによって請求項2の方法を実行するコンピュータ命令を含む有形のコンピュータ読み取り可能な媒体を有する製造物。本開示の様々な実施形態は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組み合わせにおいて実現される。本開示の様々な態様は、機械読み取り可能な媒体に格納された命令として実現することもできる。この命令は、一又は複数のプロセッサによって読み出されて実行されてもよい。機械読み取り可能な媒体には、機械例えば、コンピュータデバイスによって読み取り可能な形式の情報を蓄積又は転送する任意のメカニズムが含まれる。例えば、機械読み取り可能な記憶媒体には、ROM、RAM、磁気ディスク記憶媒体、光学式記憶媒体、フラッシュメモリデバイス、及びこれら以外のものが含まれる。また、本明細書において、ファームウェア、ソフトウェア、ルーチン、又は命令は、所定の動作を実行する具体的な例示的実施形態の観点から説明されるが、かかる説明は便宜上のものにすぎず、かかる動作は、実際には、コンピュータデバイス、プロセッサ、コントローラ、又はファームウェア、ソフトウェア、ルーチン、もしくは命令を実行するこれら以外のデバイスによって実行される。図1は、FPGA102をセキュアに構成するシステム100の機能ブロック図を示す。FPGA102を構成するために、システム100は、FPGAコンフィギュレーションデータ記憶デバイス104、遠隔キー記憶デバイス106、及び認証デバイス108を含むことができる。FPGAコンフィギュレーションデータ記憶デバイス104は、暗号化又は復号化されたコンフィギュレーションデータ又はロードデータを格納し、FPGA102に提供することができる。コンフィギュレーションデータの少なくとも一部分がFPGA102を構成するために使用される。遠隔キー記憶デバイス106は、キーを格納し、コンフィギュレーションデータが暗号化された状態でFPGA102に提供された場合には、コンフィギュレーションデータをFPGA102で復号化するために当該キーをFPGA102にセキュアに提供することができる。一実施形態において、遠隔キー記憶デバイス106は、プロセッサ120、不揮発性メモリユニット122、揮発性メモリユニット124、及び乱数発生器RNG126を含むことができる。コンフィギュレーションデータキーを遠隔キー記憶デバイス106に格納し、ローカル以外、すなわちFPGA以外の場所に格納することにより、FPGA102に侵入しようとする者に対するFPGA構成のセキュリティを向上させることができる。このようなハッカーは、無権限でFPGAコンフィギュレーションデータを改変及び/又は複製し、さらにリバースエンジニアリングする可能性がある。FPGA102においてコンフィギュレーションデータが改変又はその他の改ざんを受けていないことを確認するために、FPGA102は、反復認証プロセスにおいて認証デバイス108と協働することができる。この反復認証プロセスによって、FPGA102の動作の開始時点及び動作期間中におけるコンフィギュレーションデータのセキュリティを確保することができる。図1に示すとおり、一実施形態における認証デバイス108は、乱数発生器RNG170、認証-暗号ACエンジン172、及びメモリデバイス174を含むことができる。一実施形態において、遠隔キー記憶デバイス106及び/又は認証デバイス108は、FPGA102の外部にありFPGA102と動作可能に接続されたセキュアプロセッサ又はその一部である。一部の実施形態において、セキュアプロセッサは、データに対する全ての処理が完全authenticで機密が保持されたものとなるように、データもしくはプログラムコード、又はその両方の処理が保護されているプロセッサである。セキュアプロセッサへの全ての入力は、処理を行う前に認証される。セキュアプロセッサにおいては、機密性が要求されないときには、一部のデータを外部メモリに置いておくこともできるが、かかる外部データは、セキュアプロセッサ内の認証プロセスを使用して如何なる改変からも保護されている。一以上の実施形態において、FPGA102、デバイス104、106、108、又はこれらのサブコンポーネント後述の各々は、本明細書で説明される機能及び処理を処理するために、一又は複数のプロセッサ及び/又はメモリモジュールを含むことができる。システム100の構造面及び機能面の詳細については後述する。デバイス104、106及び108は、システム100において個別のコンポーネントとして図示されているが、一以上の実施形態において、デバイス104、106及び108を一又は二のデバイスに実装させることもできる。一実施形態において、FPGA102並びにデバイス104、106及び108は、チップ上の同一の回路に配置され動作するように構成されてもよい。他の実施形態において、FPGA102は、一つのシステムにおけるチップ例えば、無人飛行機のチップ上で動作することができる。また、デバイス104、106及び108の一又は複数は、他のシステムの一部であってもよい。この他のシステムは、前記FPGAシステム例えば、無人飛行機用の遠隔操作システムから地理的に離れていてもよい。FPGA102がシステム100の他のデバイスから離れて配置されている場合には、デバイス104、106及び108の一又は複数を、必要なインタフェース及びコンポーネントを用い有線又は無線のネットワーク不図示を介してFPGA102と動作可能に接続することができる。かかるネットワークは、TCPIPネットワーク、インターネット、又はプライベート無線周波数RFネットワークもしくは公衆無線周波数ネットワークの一又は複数を含むことができる。遠隔キー記憶デバイス106及び認証デバイス108が二つの別個のデバイス例えば、二つの別個の回路又はチップに実装される場合には、当業者に明らかなように、一又は複数のシステムパラメータ例えば、セッションキーは、デバイス106、108の両方によって共有されることになる。図2は、本開示の一又は複数の実施形態に従った例示的なFPGA102を示す。図示のとおり、FPGA102には、コントローラ202、迂回不能なnonbypassable暗号化ローダcryptoloader204、プログラマブルロジック206、及び入出力IOコア208が含まれる。FPGA102を構成するために必要ではなく、又は、FPGA102の構成に無関係なFPGA102のリソース及び/又はコンポーネントは、図2又は本開示における後述の図表に示されていないが、当業者であればそのようなリソースやコンポーネントについて理解することができる。一実施形態において、コントローラ202は、システム100のデバイス104、106及び108と連動してメッセージ及び/又はデータ例えば、コンフィギュレーションデータ、キー、認証メッセージ等を送受信する。また、コントローラ202は、特に、迂回不能な暗号化ローダ204、ロジックユニット206、及びIOコア208に接続され、これらのFPGAコンポーネントとデータ及び/又はメッセージを交換することによって、これらのFPGAコンポーネントを制御することができる。一以上の実施形態において、コントローラ202は、FPGAインタフェースユニット220、キーセキュリティユニット222、乱数発生器RNG224、ワンタイムプログラマブルキーストレージOPKSユニット226、及び揮発性キーストレージVKSユニット228を含む。一実施形態において、FPGAインタフェースユニット220は、FPGA102の内部及び外部にあるコンポーネント間でのメッセージ及び/又はデータの交換を促進するインタフェースすなわち、キーインタフェース230及び認証インタフェース232を含む。例えば、FPGAインタフェースユニット220は、キーインタフェース230を用いて、暗号化キー又はFPGAロード復号化キーを遠隔キー記憶デバイス106から受信することができる。この暗号化キーを用いることによって、暗号化されたFPGAコンフィギュレーションデータを復号化し、FPGA102を構成することができる。上述のように、暗号化キーは、暗号化キーの機密性を保持し、必要に応じてFPGA102にセキュアに送信するために、遠隔キー記憶デバイス106すなわち、FPGA102の外部に格納されていてもよい。一実施形態において、暗号化キーは、FPGA102においてキーインタフェース230を介して暗号化された状態で受信される。例えば、暗号化キーは、セッションキーを用いて暗号化される。一実施形態において、セッションキーは、遠隔キー記憶デバイスにおいて計算されて格納されており、暗号化キーとともにFPGA102にセキュアに送信される。他の実施形態において、計算されたセッションキーは、遠隔キー記憶デバイス102及びFPGA102の両方に格納される。セッションキーは、例えば、MenezesQuVanstoneMQVプロトコル、楕円曲線MQVECMQVプロトコル、又はDiffieHellmanプロトコル等の様々な鍵共有プロトコルの一又は複数を用いて計算される。セッションキーの計算に用いられる鍵共有プロトコルは、遠隔キー記憶デバイス106に関連付けられた一又は複数のプロセッサ又は処理モジュール例えば、プロセッサ120及びFPGAコントローラ202例えば、キーセキュリティユニット222と協働し、又は、これらによって実行される。また、遠隔キー記憶デバイス106例えば、メモリユニット122及びFPGAコントローラ202例えば、OPKSユニット226及びVKSユニット228内の一又は複数のメモリデバイスを用いることにより、鍵共有プロトコルによって生成されたパラメータ及び/又はその他のデータを記憶することができる。FPGAコントローラ202内の乱数発生器224及び/又は遠隔キー記憶デバイス106内の乱数発生器126は、鍵共有プロトコルの実行の一部として用いられる。一実施形態においては、ECMQVプロトコルを鍵共有プロトコルとして用いてセッションキーの計算が行われる。ECMQVプロトコルは、コンフィギュレーションキーよって、FPGA102のコンフィギュレーションデータを、受動的な攻撃及び能動的な攻撃の両方から保護することができる。受動的な攻撃は、敵対者やハッカーが、プロトコルを実行する主体すなわち遠隔キー記憶デバイス106及びキーセキュリティユニット222を単に観察することによってプロトコルの目的達成を阻害しようとするものであり、能動的な攻撃は、敵対者が、メッセージを挿入、削除、変更、又は繰り返すことによってプロトコルの実行主体との間の通信を妨害するものである。また、ECMQVプロトコルは、セキュアな暗号化キー通信について以下の効果を提供することができる。1.既知キー安全性Knownkeysecurity:遠隔キー記憶デバイス106とキーセキュリティユニット222との間でECMQVプロトコルを実行することにより、ユニークな秘密キーを実行の都度生成することができる。このようなキーは、共通セッションキーと呼ばれ、遠隔キー記憶デバイス106において暗号化キーを暗号化し、キーセキュリティユニット222において暗号化された暗号化キーを復号化するために用いられる。ECMQVプロトコルは、他の共通セッションキーを知っている敵対者を前にした場合であっても、遠隔キー記憶デバイス106からFPGAコントローラ202に暗号化キーをセキュアに送信するという目的を達することができる。2.完全フォワード秘匿性Perfectforwardsecrecy:一又は複数のプロトコル実行主体の長期longtermプライベートキーが漏洩した場合に、このプロトコル実行主体によって確立された今までの共通セッションキーの安全性が影響を受けない。3.キー漏洩なりすなし安全性Keycompromiseimpersonation:キーセキュリティユニット222に関連付けられた長期プライベートキーが敵対者によって開示又は盗難された場合には、キーセキュリティユニット222になりすますことができる。しかしながら、ECMQVプロトコルを用いることにより、当該敵対者はキーセキュリティユニット222に対して他の主体になりすますことができない。4.未知の鍵共有Unknownkeyshare:ECMQVプロトコルによって、プロトコル実行主体についての情報がない限りプロトコル実行主体キーセキュリティユニット222又は遠隔キー記憶デバイス106が、キーを他のプロトコル実行主体と強制的に共有させられることを防止できる。5.キー制御:いずれのプロトコル実行主体も共通セッションキーを事前に選択された値にする必要がない。6.低オーバーヘッド:ECMQVプロトコルは、プロトコル実行主体間におけるパスプロトコル実行時に交換されるメッセージの数を最小化することができ、通信オーバーヘッド送信される総ビット数を小さくすることができる。動作時には、遠隔キー記憶デバイス106及びキーセキュリティユニット222の各々は、ECMQVプロトコルの一部として、固定又は長期のキーペア及び一時又は短期のキーペアを生成する。当該固定キーペアは、所定期間各主体に結び付けられているが、一時キーペアはプロトコルの実行ごとに生成される。遠隔キー記憶デバイス106及びキーセキュリティユニット222については、固定キーペア及び一時キーペアはいずれも、当業者に明らかなECMQVプロトコルに特有の所定のパラメータユニット106及び222に共通を用いて生成される。例えば、かかるパラメータは、有限領域Fqqは領域サイズにわたって定義された特性pの楕円曲線EC、曲線EC上の基底有限点P、基底点Pの位数ordern、及び余因子hを含むことができる。これらのパラメータは、FPGAコントローラ202例えば、OPKSユニット226内の不揮発性メモリデバイス及び遠隔キー記憶デバイス106内のメモリユニット122の各々に格納することができる。この不揮発性メモリデバイスは、プログラマブルROMPROMデバイス、消去可能なPROMEPROMデバイス、及び電気的に消去可能なPROMEEPROMデバイスの一又は複数であってもよい。これらのメモリデバイスに格納されたECMQVプロトコルパラメータは、キーセキュリティユニット222やデバイス106のプロセッサ120に直接又は間接に関連付けられる。キーセキュリティユニット222の固定プライベートキーs222は、RNG224を用いて生成され、インターバル1n1で乱数を提供する。その後、キーセキュリティユニットの固定パブリックキーS222が、S222s222Pとなるように楕円曲線E上の点として計算される。固定キーペアS222s222は、OPKSユニット226に格納される。遠隔キー記憶デバイス106に関する固定キーペアS106s106は、RNG126を用いて同様の方法で生成され、デバイス106の不揮発性メモリ122に格納される。一実施形態において、固定パブリックキーS222及びS106は、FPGAコントローラ202と遠隔キー記憶デバイス106とによって例えばインタフェースユニット220を介して交換され、これらのパブリックキーは不揮発性メモリデバイスの各々に格納される。また、キーセキュリティユニット222及び遠隔キー記憶デバイス106における一時キーペアは、以下のようにして生成される。まず、キーセキュリティユニット222は、RNG224を用いてインターバル1n1の乱数として一時プライベートキーe222を生成し、一時パブリックキーE222をE222e222Pとなるように計算し、次に、当該パブリックキーE222を遠隔キー記憶デバイス106に送信する。この一時キーペアE222e222は、OPKSユニット226に格納される。一時キーペアE106e106も同様にして生成され、遠隔キー記憶デバイス106に格納される。この一時パブリックキーE106は、FPGAコントローラ202に送信され、OPKSユニット226に格納される。キーセキュリティユニット222は、遠隔キー記憶デバイス106から受信したパブリックキーS106及びE106を、ECMQVプロトコルによって定義されている一又は複数の既知の有効化プロセスを用いて有効化することができる。有効化に成功すると、ユニット222は以下の計算を行う。I222modnユニット222におけるセッションキーKhI222ここで、キーEに対するE’は、2f2として計算される。ただし、x’は、E楕円曲線EC上のx座標のバイナリ表現から得られる整数であり、flog2n1である。セッションキーKが0の場合には、キーセキュリティユニット222は、プロトコルを終了し、フェイルステータスをプロトコルを再実行する指示として遠隔キー記憶デバイス106に送信する。キーセキュリティユニット222と同時に、遠隔キー記憶デバイス106は、パラメータ及びキーペアに基づいて以下の計算を行う。I106modnデバイス106におけるセッションキーKhI106ユニット106及び222の両方で計算されるセッションキーKは同一であり、ECMQVプロトコルの実行の度に計算されるので、セッションキーKは、キーセキュリティユニット222例えば、VKSユニット228及び遠隔キー記憶デバイス106例えば、メモリユニット124内の内部にある揮発性メモリデバイスに格納される。セッションキーKを計算した後、遠隔キー記憶デバイス106に格納されている暗号化キー又はFPGAロード復号キーが、セッションキーKを用いて暗号化される。この暗号化されたFPGAロード復号キーは、デバイス106によってFPGA102へ送信される。FPGA102においては、当該FPGAロード復号キーがキーインタフェース230において受信される。キーインタフェース230は、当該暗号化されたキーをキーセキュリティユニット222に渡し、ユニット222が、前もって計算され格納されているセッションキーKを用いて当該暗号化されたFPGAロード復号キーを復号化する。このようにして得られた復号化FPGAロード復号キーは、ユニット222から例えばインタフェースユニット220図2に示されているを介して暗号化ローダ204に送信される。一実施形態において、暗号化ローダ204は、コンフィギュレーションデータセキュリティCDSユニット242、状態暗号化SEユニット244、ロードインタフェース246、メモリ248、及び乱数発生器RNG250を含む。一部の実施形態において、RNG224及びRNG250はいずれも、システム100内の単一のデバイスとして実装することができる。暗号化ローダ204は、記憶デバイス104等の外部記憶デバイスから受信されたFPGAコンフィギュレーションデータを復号化し、コンフィギュレーションデータを用いてロジックユニット206を構成するように構成されている。また、暗号化ローダ204は、FPGAコントローラ202及び認証デバイス108と協働して動作し、コンフィギュレーションデータの当初認証及び/又はその後の認証を繰り返し実行する。一実施形態において、FPGA102は、全てのコンフィギュレーションデータの復号化及び認証プロセスが暗号化ローダ204内で実行される方法で実現されてもよい。換言すれば、暗号化ローダ204を迂回してFPGA102を構成することはできない。かかる実装によって、FPGAコンフィギュレーションの実行の都度、コンフィギュレーションデータの機密性及びデータの完全性をチェックすることができる。動作時には、記憶デバイス104の暗号化されたFPGAコンフィギュレーションデータがロードインタフェース246において受信される。ロードインタフェース246は、当該データを内部でメモリ248に送信し格納する。一実施形態において、インタフェースユニット220から受信されたFPGAロード復号キーは、メモリ248にも格納される。記憶デバイス104は、プログラマブルROMPROMデバイス、消去可能なPROMEPROMデバイス、及び電気的に消去可能なPROMEEPROMデバイスの一又は複数であってもよいこれらのものを含んでもよい。一実施形態において、CDSユニット242は、メモリ248に動作可能に接続され、暗号化されたFPGAコンフィギュレーションデータ及び前記FPGAロード復号化キーをフェッチすることができる。また、CDSユニット242は、コンフィギュレーションデータの機密性及び初期の完全性を提供可能なブロック暗号アルゴリズムを用いてコンフィギュレーションデータを復号化するように構成される。CDSユニット242は、前記FPGAコンフィギュレーションデータ記憶デバイス104に格納されているを暗号かするために用いたものと同じブロック暗号アルゴリズムとを遠隔キー記憶デバイス106に当初格納されているものと同じFPGAロード復号キーとともに使用するものとする。一実施形態において、CDSユニット242は、新暗号規格AESアルゴリズムを用いてFPGAコンフィギュレーションデータを復号化する。このAESアルゴリズムは、例えば、電子コードブックECBモード、暗号ブロック連鎖CBCモード、伝播CBCモード、カウンタCTRモード、暗号ブロック連鎖メッセージ認証コードを備えたカウンタCCMモード等の様々な動作モードを含むことが知られている。一実施形態において、CDSユニット242は、暗号化したがって機密性のためのCTRモードとコンフィギュレーションデータの初期認証のための暗号ブロック連鎖メッセージ認証コードCBCMACモードとを組み合わせたAESCCMモードを利用する。一実施形態において、CDSユニット242の動作モードは、コントローラ202によって選択され、モード信号を用いて図2に示すローダ204に指示される。一部の実施形態におけるCDSユニット242は、単一のAESモード例えば、AESCCMモードに代えて、2つの別個のアルゴリズムを利用するように構成されてもよい。この2つの別個のアルゴリズムの一つは、コンフィギュレーションデータの暗号化―復号化アルゴリズムで、他方はコンフィギュレーションデータの初期認証アルゴリズムである。コンフィギュレーションデータを事前暗号化するためにCCMモードも用いられたとすると、FPGAコンフィギュレーションデータ記憶デバイス104から受信されるは、FPGA102を構成するために用いた元のデータ、及び当該FPGAコンフィギュレーションデータの暗号化状態暗号化状態を示すデータを含むことができる。一実施形態において、暗号化状態データは、コンフィギュレーションデータの事前暗号化の際に生成されたメッセージ認証コードMAC値を含む。例えば、このMAC値は、元のFPGAコンフィギュレーションデータについて実行されたCCMアルゴリズムのCBCMACモードの出力として生成される。したがって、計算されたMAC値は、元のFPGAコンフィギュレーションデータの少なくとも一部分に基づいているか、そのような一部分の関数である。計算されたMAC値は、CCMアルゴリズムのCTRモードを用いた暗号化のために元のFPGAコンフィギュレーションデータと組み合わされるか又は対応付けられ、暗号化されたFPGAコンフィギュレーションデータが提供される。CCMモードを用いた復号化及び認証については、CDSユニット242は、まずCTRモードの初期値IVとしてノンスを用いるとともにFPGAロード復号キーメモリ248からフェッチされたものを用いてCTRモードを実行し、暗号化されたFPGAコンフィギュレーションデータを復号化する。一実施形態において、ノンスは、ローダ204のRNG250を用いて生成される。CTRモードを実行することにより、元のFPGAコンフィギュレーションデータ及び関連付けられたMAC値が復元される。一実施形態において、CDSユニット242は、復元されたFPGAコンフィギュレーションデータ及び/又は復元されたMAC値をメモリ248に複製することができる。次に、CDSユニット242は、復元されたFPGAコンフィギュレーションデータに対し、RNG250を用いて生成された初期値CTRモードにおいて用いられる値とは異なるものとFPGAロード復号化キーとを用いて、CCMアルゴリズムのCBCMACモードを実行する。CBCモードは、RNG250から得られる値に代えて、初期値としてゼロを用いることができる。CBCMACモードを実行することにより新しいMAC値が得られる。この新しいMAC値は、FPGAコンフィギュレーションデータを認証するために、CDSユニット242によって、復元されたMAC値と比較される。例えば、FPGAコンフィギュレーションデータが事前暗号化後に如何なる方法であれ改変又は改ざんされた場合には、CDSユニット242においてCBCMACモードによって生成されたMAC値は、CTRモードによって復元された元のMAC値と等しくならない。したがって、新しいMAC値が復元されたMAC値と等しくないと判断された場合には、ローダ204は、そのFPGAコンフィギュレーションデータを廃棄し、無権限アクセス及び/又はシステム100におけるコンフィギュレーションデータの改変を示すステータス信号をコントローラ202に送信し、FPGA構成処理を終了する。または、新しいMAC値が復元されたMAC値と同一と判断された場合には、復号化の成功及びFPGAコンフィギュレーションデータの認証を示すステータス信号がコントローラ202に送信され、復元されたFPGAコンフィギュレーションデータがマルチプレクサ252を介してロジックユニット206に送られる。ロジックユニット206は、当該復元されたFPGAコンフィギュレーションデータを用いてプログラムされる。その後、ロジックユニット206は、IOコア208と動作可能に接続され、FPGA102の動作に必要なデータを送受信する。コントローラ202は、データアクセスのタイミングやロジックユニット206とIOコア208との間の通信をIO信号を用いて制御する。FPGAコンフィギュレーションデータを復号化し復元した後、敵対者がFPGAの動作を監視し、FPGAコンフィギュレーションデータへのアクセスや同データの変更を試みる可能性がある。かかる無権限のデータアクセスや改変によってFPGAが意図しない機能で動作するおそれがあるため、FPGAコンフィギュレーションデータを繰り返し反復して認証することが重要である。FPGA102についてかかる認証を行う周期は、システム100に事前設定されていてもよく、ユーザによって自由に設定可能としてもよい。したがって、かかる反復認証プロセスに関して、FPGA102は、認証デバイス108と協調して動作する。例えば、FPGA102は、認証デバイス108に動作可能に接続され、認証のためにAESCBC暗号モードを実行することができる。CBCモードにおいて認証プロセスを開始するために、認証デバイス108は、チャレンジメッセージを生成することができる。このチャレンジメッセージは、FPGA102に送信され、インタフェースユニット220の認証インタフェース232において受信される。このチャレンジメッセージは、RNG170によって生成され、認証デバイス108のメモリ174に格納された乱数を含むメッセージであってもよい。コントローラ202においては、インタフェース232が、受信したチャレンジメッセージを暗号化ローダ204に渡す。また、VKSユニット228に格納されているセッションキーキーセキュリティユニット222によって事前に生成されたものは、暗号化ローダ204に送信され、メモリ248に格納される。また、動作時には、コントローラは、CBC暗号化モードを指示するモード信号を暗号化ローダ204に送信し、状態暗号化SEユニット244を有効化してCBCモードを実行することができる。SEユニット244は、チャレンジメッセージを入力メッセージとし、セッションキーをCBCモードキーとし、CDSユニット242によって生成された新しいMAC値CCMモード復号化中に生成されたものをCBCモード用の初期値として、CBC暗号化モードを実行することができる。SEユニット244は、次に、レスポンスメッセージを出力として生成する。このレスポンスメッセージは、インタフェースユニット220に転送され、認証デバイス108にまで送信される。一実施形態において、インタフェース232は、認証入力インタフェースとしてだけでなく認証出力インタフェースとしても機能し、レスポンスメッセージを認証デバイス108に送信するために用いられる。認証デバイス108においては、レスポンスメッセージがデバイス108のメモリ174に格納され、ACエンジン172がCBCモードを用いてレスポンスメッセージの復号化を実行するように構成される。CBCモードの復号化を実行するために、ACエンジン172は、FPGA102又は遠隔キー記憶デバイス106から受信したセッションキーを提供される。また、CBCモードの初期値mとして、CDSユニット242において復元されたMAC値がACエンジン172にインタフェース232を介して複製される。ACエンジン172は、受信データに基づいて当該レスポンスメッセージを復号化し、復号化されたチャレンジメッセージを生成する。ACエンジン172は、次に、復号化されたチャレンジメッセージを、当初FPGA102に送られたチャレンジメッセージと比較し、FPGAコンフィギュレーションデータの完全性を決定する。例えば、FPGAコンフィギュレーションデータについて無権限アクセス及び/又は改変があった場合には、SEユニット244においてチャレンジメッセージ暗号化のために初期値として用いられた新しいMAC値は、ACエンジン172によってレスポンスメッセージ復号化のために用いられた復元後のMAC値と異なるようになる。したがって、復号化されたチャレンジメッセージは、当初FPGA102に送られたチャレンジメッセージと同一ではなく、これによって、FPGAコンフィギュレーションデータが完全ではなく、無権限の方法で改変又はアクセスされたことが示される。認証108からのかかる情報を用いて、FPGA構成プロセスは終了される。このプロセスは、無権限の主体が特定及びブロックされ、及び/又は、コンフィギュレーションデータがリロード又は訂正された後に再開される。反復認証の各サイクルについて、新しいチャレンジメッセージが認証デバイス108によって生成され、以前のCBCモード暗号化において生成されたレスポンスメッセージが次回のCBCモード暗号化のための初期値として利用されてもよい。最初の認証サイクルにおいて用いられたものと同一のセッションキーを、後続の全ての認証サイクルにおいてCBCモードキーとして利用することができる。上述した公知の暗号アルゴリズム、すなわち、ECMQVアルゴリズム、CCMアルゴリズム、及びCBCアルゴリズムに関する詳細は、本出願においては説明を省略した。また、上述の実施形態及び本開示の態様は、限定的なものであることを意図するものではなく本発明概念の機能面及び構造面での原理を図示し説明するためのものであり、また、以下の特許請求の範囲の趣旨及び範囲に入る様々な変形を含むことを意図している。