ステージ 0: ダミー キーを使用してプレーンなビットストリームを暗号化し、認証。keyrolling が必要な場合は、keylife パラメーターを追加
.nky ファイルを指定することも、Bootgen で暗号化用のキーを含む .nky ファイルを生成することもできます。難読化された AES キー生成は Bootgen ではサポートされません。keyrolling 機能には keylife
パラメーターが必要です。
the_ROM_image:
{
[aeskeyfile] encrypt.nky
[sskfile] dummykey.pem
[encryption=aes, authentication=rsa,keylife =32] plain-system.bit
}
bootgen -arch fpga -image stage0.bif -w -o auth-encrypt-system.bit -log info
このステップの後、暗号化が有効になっている場合は .nky ファイルが生成されます。このファイルにはすべてのキーが含まれています。ステージ 1: ハッシュを生成
次にそのコード例を示します。
the_ROM_image:
{
[authentication=rsa] auth-encrypt-system.bit
}
bootgen -arch fpga -image stage1.bif -generate_hashes -log info
ステージ 2: ハッシュ HSM に署名
ここでは、例として OpenSSL が使用されています。
openssl rsautl -sign -inkey rsaPrivKeyInfo.pem -in auth-encrypt-system.sha384 > auth-encrypt-system.sha384.sig
HSM サーバーを使用してハッシュに署名します。SSI テクノロジ デバイスの場合、各 SLR (Super Logic Region) の署名を生成します。次の例は、4 つの SLR を持つデバイスの署名を生成するコードを示しています。
openssl rsautl -sign -inkey rsaPrivKeyInfo.pem -in auth-encrypt-system.0.sha384 > auth-encrypt-system.0.sha384.sig
openssl rsautl -sign -inkey rsaPrivKeyInfo.pem -in auth-encrypt-system.1.sha384 > auth-encrypt-system.1.sha384.sig
openssl rsautl -sign -inkey rsaPrivKeyInfo.pem -in auth-encrypt-system.2.sha384 > auth-encrypt-system.2.sha384.sig
openssl rsautl -sign -inkey rsaPrivKeyInfo.pem -in auth-encrypt-system.3.sha384 > auth-encrypt-system.3.sha384.sig
ステージ 3: RSA 証明を実際の署名で更新
次にそのコード例を示します。
the_ROM_image:
{
[spkfile] rsaPubKeyInfo.pem
[authentication=rsa, presign=auth-encrypt-system.sha384.sig] auth-encrypt-system.bit
}
Command:bootgen -arch fpga -image stage3.bif -w -o rsa_encrypt.bit -log info
注記: SSI テクノロジ デバイスの場合は、
presign=<first presign
filename>:<number of total presigns>
を使用します。たとえば、4 つの SLR を持つデバイスには、<first presign
filename:4>
が必要です。