HDMI インテル® Arria 10 FPGA IPデザイン例のユーザーガイド

ID 683156
日付 5/12/2021
Public
ドキュメント目次

4.5. FPGAデザインに組み込まれている暗号化キーの保護

多くのFPGAデザインでは暗号化を実装しており、多くの場合は、FPGAビットストリームに秘密鍵を埋め込む必要があります。 インテル® Stratix® 10インテルAgilexのような新しいデバイスファミリーにはセキュア・デバイス・マネージャー・ブロックがあり、これらの秘密鍵を安全にプロビジョニングおよび管理することができます。これらの機能が存在しない場合は、暗号化により、埋め込まれている秘密ユーザーキーを含むFPGAビットストリームのコンテンツを保護することができます。

ユーザーキーは、デザイン環境内で安全に保つ必要があり、理想的には、自動化された安全なプロセスを使用してデザインに追加する必要があります。次の手順は、このようなプロセスを インテル® Quartus® Primeのツールを使用して実装する方法を示しています。
  1. 非セキュア環境において、 インテル® Quartus® PrimeでHDLを開発および最適化します。
  2. デザインをセキュアな環境に転送し、自動化されたプロセスを実装して秘密鍵を更新します。オンチップメモリーはキーの値を埋め込みます。キーが更新されると、メモリー初期化ファイル (.mif) を変更し、「quartus_cdb --update_mif」アセンブラー・フローでHDCP保護キーを変更することができます。この際に、再コンパイルは必要ありません。このステップの実行時間は非常に短く、元のタイミングが維持されます。
  3. 次に、 インテル® Quartus® PrimeのビットストリームをFPGAキーで暗号化してから、暗号化されたビットストリームを非セキュア環境に転送し、最終的なテストと展開を行います。
FPGAから秘密鍵を回復できるすべてのデバッグアクセスを無効にすることが推奨されます。JTAGポートを無効にすることでデバッグ機能を完全に無効にする、もしくは、選択的に無効にし、システム内のメモリーエディターやSignal Tapなどのデバッグ機能で鍵を回復できないことを確認します。FPGAのビットストリームを暗号化する方法や、JTAGアクセスの無効化などのセキュリティー・オプションをコンフィグレーションする方法など、FPGAのセキュリティー機能の使用に関する詳細は、AN556を参照してください。
注: 難読化、またはMIFストレージの秘密鍵の別の鍵での暗号化ステップの追加を検討することができます。