暗号化ビットストリームを生成するには、Vivado IDE でインプリメント済みデザインを開きます。メイン メニューから をクリックして [Settings] ダイアログ ボックスを開きます。ダイアログ ボックスの上部にある Configure Additional Bitstream Settings というリンクをクリックします。
[Edit Device Properties] ダイアログ ボックスが開きます。左側のペインで Encryption をクリックします。
[Edit Device Properties] ダイアログ ボックスで、Encryption Settings および Key Settings を指定します。
-
Encryption Settings
- Enable Bitstream Encryption を YES に設定します。
-
Select location of encryption key を BBRAM または EFUSE のいずれかに設定します。
- キー ロケーションは暗号化されたビットストリームに埋め込まれます。
- 暗号化されたビットストリームをデバイスにダウンロードすると、FPGA で BBR または eFUSE キー レジスタに読み込まれたキーが使用され、暗号化されたビットストリームが復号化されます。
-
Enable obfuscated key load を ENABLE または DISABLE に設定します。
- イネーブルにすると、ユーザーが生成したキーが BBRAM に保存される前に暗号化されます。ディスエーブルにすると、キーはそのまま BBRAM に保存されます。
-
Key Settings
-
Starting AES encryption key (key0) でビットストリームを暗号化する際に使用する AES 暗号キーを指定します。64 個までの 16 進数文字を使用して、256 ビット キーを指定できます。
- キーは、拡張子が .nky のファイルに書き込まれます。キーを BBR に読み込む際、またはキーを eFUSE キー レジスタにプログラムする際に、このファイルを使用します。
-
注記: この値は、入力暗号化ファイルが指定されている場合を除き、現在のプロジェクトの制約ファイルに保存されます。この値が制約ファイルに保存されないようにするには、入力暗号化ファイルを指定してください。
-
Input encryption file を指定します。
- 既存の .nky ファイルを指定して、暗号キー設定を取得します。このフィールドはオプションで、AES、HMAC、および CBC を手動で指定する場合は入力する必要はありません。
-
Starting AES initial vector (IV0) value を指定します。
- 最初のキーの初期化ベクターです。各キーには、入力暗号化ファイルで供給可能な個別の初期化ベクターが必要です。
-
注記: この値は、現在のプロジェクトの制約ファイルに保存されます。この値が制約ファイルに保存されないようにするには、入力暗号化ファイルを指定してください。
-
Starting obfuscate initial vector (Obfuscate IV0)
value を指定します。
- 難読化キーの初期化ベクターです。
-
注記: この値は、現在のプロジェクトの制約ファイルに保存されます。この値が制約ファイルに保存されないようにするには、入力暗号化ファイルを指定してください。
-
Starting AES encryption key (key0) でビットストリームを暗号化する際に使用する AES 暗号キーを指定します。64 個までの 16 進数文字を使用して、256 ビット キーを指定できます。
-
Key Rolling Settings
- debug file to report all the keys generated in KDF mode を生成する必要がある場合は、そのように指定します。
- Fixed Input Data for KDF keyrolling を指定します。これはオプションで 60 バイトの固定入力値を 120 桁の 16 進数で指定できます。この 60 バイトの入力と 4 バイトのカウンターが、RAND_bytes を介して KDF の疑似ランダム固定入力値の 64 バイトの入力となります。
- Seed for KDF Keyrolling を指定します。これはオプションで KDF の 32 バイトのシード値を 64 桁の 16 進数で指定できます。
-
Number of encryption
blocks per key および Number of
frames per AES-256 key を指定します。
- 暗号化ブロックおよびフレームの数は、ビットストリームを個別のキーを使用するいくつのセクションに分割するかを指定します。
認証設定を指定するには、左側のペインで Authentication をクリックします。
[Edit Device Properties] ダイアログ ボックスの [Authentication] ページで、次のように設定します。
-
Authentication Settings
- Enable Bitstream Authentication を YES に設定します。
- Input file containing RSA Private Key で RSA 秘密キーを含む入力ファイルを指定します。
設定を終了したら、OK をクリックして設定をプロジェクトに適用します。インプリメンテーションを再実行してビットストリームを再生成します。
write_bitstream
コマンドの処理が正常に完了すると、生成された暗号キー ファイル (.nky) が暗号化ビットストリーム ファイルと同じ場所に保存されます。
256 ビットの AES (Advanced Encryption Standard) キーを使用してビットストリームを暗号化し、ビットストリームをダウンロードして認証された FPGA 上でのみ実行されるようにすると、ビットストリームの IP を保護できます。これには、暗号化ビットストリームをダウンロードする前に、256 ビットのキーを認証された FPGA の BBR レジスタにプログラムします。