インテル® Stratix® 10 デバイス・セキュリティー・ユーザーガイド

ID 683642
日付 9/02/2021
Public
ドキュメント目次

4.5.1. AESルート・キー・コンパクト証明書

quartus_pfg コマンド・ライン・ツールを使用して、AESルートキー .qek ファイルを変換し、コンパクト証明書 .ccert フォーマットにします。キーの格納場所の指定は、コンパクト証明書の作成時に行います。quartus_pfg ツールを使用して、署名されていないコンパクト証明書を作成して後で署名することができます。AESルート・キー・コンパクト証明書に正常に署名するには、AESルートキー証明書の署名許可 (許可ビット6) がイネーブルされている署名チェーンを使用してください。

次のコマンド例のいずれかを実行して、AESキーコンパクト証明書の署名に使用する追加のキーペアを作成します。
quartus_sign --family = stratix10 --operation = make_private_pem \ --curve = secp384r1 aesccert1_private.pem
quartus_sign --family = stratix10 --operation = make_public_pem \ aesccert1_private.pem aesccert1_public.pem
pkcs11-tool --module = / usr / local / lib / softhsm / libsofthsm2.so \ --token_label s10-token --login --pin s10-token-pin \ --keypairgen –mechanism ECDSA-KEY-PAIR-GEN \ --key-type EC:secp384r1 --usage-sign --label aesccert1 --id 2
次のいずれかのコマンドを実行して、正しいアクセス許可ビットが設定された署名チェーンを作成します。
quartus_sign --family = stratix10 --operation = append_key \ --previous_pem = root_private.pem --previous_qky = root.qky \ --permission = 0x40 --cancel = 1 \ aesccert1_public.pem aesccert1_sign_chain.qky
quartus_sign --family = stratix10 --operation = append_key \ --module = softHSM –module_args = "-token_label = s10-token \ --user_pin = s10-token-pin --hsm_lib = / usr / local / lib / softhsm /libsofthsm2.so "\ --previous_pem = root --previous_qky = root.qky \ --permission = 0x40 --cancel = 1 aesccert1 aesccert1_sign_chain.qky
次のいずれかのコマンドを実行し、目的のAESルートキーの格納場所に応じて、署名されていないAESコンパクト証明書を作成します。
//Create eFuse AES root key unsigned certificate 
quartus_pfg --ccert -o ccert_type=EFUSE_WRAPPED_AES_KEY \ 
-o qek_file=aes.qek unsigned_efuse1.ccert 

//Create BBRAM AES root key unsigned certificate 
quartus_pfg --ccert -o ccert_type=BBRAM_WRAPPED_AES_KEY \
-o qek_file=aes.qek unsigned_bbram1.ccert
//Create IID PUF AES root key unsigned certificate 
quartus_pfg --ccert \
-o ccert_type=IID_PUF_WRAPPED_AES_KEY \ 
-o qek_file=aes.qek \ 
-o IV=1234567890ABCDEF1234567890ABCDEF unsigned_puf1.ccert
quartus_sign コマンドまたはリファレンス実装を使用して、コンパクト証明書に署名します。
quartus_sign --family = stratix10 --operation = sign \ --pem = aesccert1_private.pem --qky = aesccert1_sign_chain.qky \ unsigned_<location> 1.ccertsigned_<location> 1.ccert
quartus_sign --family = stratix10 --operation = sign --module = softHSM \ --module_args = "-token_label = s10-token --user_pin = s10-token-pin \ --hsm_lib = / usr / local / lib / softhsm / libsofthsm2.so "--pem = aesccert1 \ --qky = aesccert1_sign_chain.qky unsigned_<location> 1.ccertsigned_<location> 1.ccert
インテル® Quartus® Prime Programmerを使用し、AESルート・キー・コンパクト証明書をJTAG経由でインテルStratix 10デバイスにプログラムします。Quartus Programmerは、EFUSE_WRAPPED_AES_KEY コンパクト証明書タイプを使用する場合、デフォルトで仮想eFuseをプログラミングします。--non_volatile_keyオプションを追加して、物理ヒューズのプログラミングを指定します。
//For physical (non-volatile) eFuse AES root key 
quartus_pgm -c 1 -m jtag -o "pi;signed_efuse1.ccert" --non_volatile_key  

//For virtual (volatile) eFuse AES root key 
quartus_pgm -c 1 -m jtag -o “pi;signed_efuse1.ccert”   

//For BBRAM AES root key  
Quartus_pgm -c 1 -m jtag -o “pi;signed_bbram1.ccert” 

SDMプロビジョニング・ファームウェアとメイン・ファームウェアでは、AESルートキー証明書のプログラミングをサポートします。FPGAファブリックまたはHPSのSDMメールボックス・インターフェイスを使用して、AESルートキー証明書をプログラムすることもできます。