Dynamic Function eXchange なしでは不可能な新しいアプリケーションがあります。Dynamic Function eXchange と非対称暗号化を組み合わせると、FPGA コンフィギュレーション ファイルをより確実に保護できるようになります。非対称暗号化の詳細は、ウィキペディアの「公開鍵暗号」トピックを参照してください。
非対称キー暗号化 では、グレーで示された部分の機能を FPGA の物理パッケージ内にインプリメントできます。cleartext の情報および秘密キーが保護されたコンテナーの外に漏洩することはありません。
図 1. 非対称キー暗号化
このデザインの実際のインプリメンテーションでは、初期 BIT ファイルは暗号化されていないデザインで、機密情報は含まれていません。初期デザインには、公開キーと秘密キーのペアを生成するアルゴリズムと、ホスト、FPGA、および ICAP を接続するインターフェイスのみが含まれます。
初期 BIT ファイルが読み込まれた後、FPGA で公開キーと秘密キーのペアが生成されます。公開キーはホストに送信され、ホストはこれを使用してパーシャル BIT ファイルを暗号化します。暗号化されたパーシャル BIT ファイルは FPGA にダウンロードされ、その FPGA 内で復号化され、ICAP に送信されて、FPGA がパーシャル リコンフィギュレーションされます (非対称キー暗号化)。
図 2. 暗号化されたパーシャル BIT ファイルの読み込み
パーシャル BIT ファイルが FPGA デザインの大部分を占め、スタティック デザインのロジックは FPGA リソースのほんの一部しか使用しない場合があります。
これには、次のような利点があります。
- 公開キーと秘密キーのペアをいつでも再生成できます。ホストから新しいコンフィギュレーションがダウンロードされたときに、別の公開キーで暗号化できます。パワーオン リセットの後など FPGA が同じパーシャル BIT ファイルでコンフィギュレーションされる場合でも、別の公開キーが使用されます。
- 秘密キーは SRAM に格納されます。FPGA の電源が切れると、秘密キーも失われます。
- システムが盗難に遭い、FPGA の電源がオンのままでも、秘密キーは汎用 FPGA プログラマブル ロジックに格納されているので、そのキーを発見するのは非常に困難です。特殊レジスタには格納されません。秘密キーを格納する各レジスタ ビットを、物理的にリモートで無関係の領域に配置できます。