AN 556: インテルFPGAにおけるデザイン・セキュリティー機能の使用

ID 683269
日付 11/12/2019
Public
ドキュメント目次

インテル® FPGAにおけるデザイン・セキュリティー機能の使用

更新対象:
この翻訳版は参照用であり、翻訳版と英語版の内容に相違がある場合は、英語版が優先されるものとします。翻訳版は、資料によっては英語版の更新に対応していない場合があります。最新情報につきまし ては、必ず英語版の最新資料をご確認ください。

このアプリケーション・ノートでは、デザイン・セキュリティー機能を40、28、および20nm インテル® FPGAで使用し、デザインを不正なコピー、リバース・エンジニアリング、およびコンフィグレーション・ファイルの改ざんから保護する方法について説明します。このアプリケーション・ノートでは、40nm、28nm、および20nm FPGAデザインのセキュリティー機能に対するハードウェア要件およびソフトウェア要件のほか、安全なコンフィグレーション・フローの実装手順を提供します。

注: このアプリケーション・ノートでは用語として、「40nm」「28nm」、または「20nm」 FPGAを使用しています。次の表では、サポートされるFPGAとその適用デバイスを一覧表示します。
表 1.  サポートされるFPGA
FPGA デバイス
40nm Arria® IIおよび Stratix® IV
28nm Arria® V Cyclone® V、および Stratix® V
20nm インテル® Arria® 10および インテル® Cyclone® 10 GX

商業用および軍事用の環境では、デザイン・セキュリティーはデジタル設計者にとって重要な考慮事項です。FPGAが役割を果たすシステム・コンポーネントがより大規模で重要なものになるにつれて、デザインを不正なコピー、リバース・エンジニアリング、および改ざんから保護することが重要です。インテルFPGAでは、256ビットのAdvanced Encryption Standard (AES) アルゴリズムを使用してコンフィグレーション・ビットストリームを暗号化することで、こうした問題に対処しています。

表 2.  サポートされているインテルFPGAでのAESモード
FPGA AESモード
40nm カウンターモード (CTR)
28nm 暗号ブロックチェーン (CBC)
20nm CTRおよび鍵付きハッシュメッセージ認証コード (HMAC)

デバイスの動作中、FPGAでは、コンフィグレーション・データをSRAMコンフィグレーション・セルに格納します。SRAMメモリーは揮発性のため、SRAMセルへのコンフィグレーション・データのロードは、デバイスの電源投入のたびに行う必要があります。コンフィグレーション・データは通常、フラッシュメモリーやコンフィグレーション・デバイスなどの外部メモリーソースからFPGAに送信されます。コンフィグレーション・データは、メモリーソースからFPGAへの送信中にインターセプトすることが可能です。コンフィグレーション・データが暗号化されていないと、インターセプトしたコンフィグレーション・データを使用して、他のFPGAをコンフィグレーションすることができます。

インテルFPGAでは、揮発性と不揮発性の両方のキーストレージを提供しています。デザイン・セキュリティー機能を使用すると、キーはFPGAに格納されます。セキュリティー・モードに応じて、FPGAのコンフィグレーションには、同じキーで暗号化されたコンフィグレーション・ファイルを使用するか、またはボードテスト用には、通常のコンフィグレーション・ファイルを使用します。

デザイン・セキュリティー機能が使用可能なのは、FPGAのコンフィグレーション時に、ファースト・パッシブ・パラレル (FPP) コンフィグレーション・スキームで、外部ホスト ( MAX® IIまたはMAX Vデバイスもしくはマイクロプロセッサー) を使用する場合か、アクティブシリアル (AS) またはパッシブシリアル (PS) コンフィグレーション・スキームを使用する場合です。