HSM モード - 2022.1 日本語

Bootgen ユーザー ガイド (UG1283)

Document ID
UG1283
Release Date
2022-04-26
Version
2022.1 日本語

プロダクションの FPGA では HSM モードを使用しますが、標準モードでも選択できます。

標準モード

標準モードでは、認証署名が埋め込まれたビットストリームが生成されます。このモードでは、認証されたビットストリームを生成するための秘密キーがユーザーに提供されていると想定されます。次のコマンドを使用して Bootgen を実行します。

bootgen -arch fpga -image all.bif -o rsa_ref.bit -w on -log error

次に、HSM モードで認証されたビットストリームを生成する手順を示します。このモードでは、秘密キーはセキュア チームが管理し、ユーザーには提供されません。次の図に、HSM モードのフローを示します。

図 1. HSM モードのフロー

ステージ 0: ダミー キーで認証

これは、1 つのビットストリームに 1 回だけ実行するタスクです。ステージ 0 では、Bootgen により stage0.bif ファイルが生成されます。

bootgen -arch fpga -image stage0.bif -w -o dummy.bit -log error

stage0.bif の内容は次のとおりです。フォーマットについては、次のステージを参照してください。

the_ROM_image:
{
	[sskfile] dummykey.pem
	[authentication=rsa] plain.bit
}
注記: 認証されたビットストリームには、ヘッダー、実際のビットストリーム、署名およびフッターが含まれます。この dummy.bit は、認証されたビットストリームのフォーマットのビットストリームを取得するために作成され、ダミー署名を含みます。ダミー ビット ファイルが Bootgen に渡されると、署名が計算されてオフセットに挿入され、認証されたビットストリームが生成されます。

ステージ 1: ハッシュを生成

bootgen -arch fpga
          -image stage1.bif -generate_hashes -log error

Stage1.bif は次のとおりです。

the_ROM_image:
{
	[authentication=rsa] dummy.bit
}

ステージ 2: ハッシュ HSM に署名

ここでは、例として OpenSSL が使用されています。

openssl rsautl -sign
  -inkey rsaPrivKeyInfo.pem -in dummy.sha384 > dummy.sha384.sig

ステージ 3: RSA 証明を実際の署名で更新

Stage3.bif は次のとおりです。

bootgen -arch fpga -image stage3.bif -w -o rsa_rel.bit -log error
the_ROM_image:
{
	 [spkfile] rsaPubKeyInfo.pem
	 [authentication=rsa, presign=dummy.sha384.sig]dummy.bit
}
注記: eFUSE に書き込む必要のある公開キー ダイジェストは、HSM モードのステージ 3 で生成された rsaPubKeyInfo.pem.nky ファイルに含まれます。