NIST SHA-3 支持 - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文
注释: 对于 SHA-3 身份验证,请始终使用 Keccak SHA-3 来计算启动头文件、PPK 散列和启动镜像上的散列。NIST-SHA3 适用于 ROM 未加载的所有其他分区。

生成的签名使用基于下表的 Keccak-SHA3 或 NIST-SHA3:

表 1. 身份验证签名
所用身份验证证书 (AC) 签名 SHA 算法和 SPK eFUSE 用于生成签名的私钥
分区头文件 AC(由 FSBL/FW 加载) SPK 签名 如果使用 SPKID eFUSE,则使用 Keccak;如果使用用户 eFUSE,则使用 NIST PSK
BH 签名 始终使用 Keccak SSKheader
头文件签名 始终使用 Nist SSKheader
BootLoader (FSBL) AC(由 ROM 加载) SPK 签名 始终使用 Keccak;针对 SPK 始终使用 SPKID eFUSE PSK
BH 签名 始终使用 Keccak SSKBootloader
FSBL 签名 始终使用 Keccak SSKBootloader
其他分区 AC(由 FSBL FW 加载) SPK 签名 如果使用 SPKID eFUSE,则使用 Keccak;如果使用用户 eFUSE,则使用 NIST PSK
BH 签名 始终使用 Keccak 填充 SSKPartition
分区签名 始终使用 NIST 填充 SSKPartition

示例

示例 1:以下 BIF 文件利用一组密钥文件对分区进行身份验证:

image:
{
	[fsbl_config] bh_auth_enable
	[auth_params] ppk_select=0; spk_id=0x00000000
	[pskfile] primary_4096.pem
	[sskfile] secondary_4096.pem
	[pmufw_image] pmufw.elf
	[bootloader, authentication=rsa, destination_cpu=a53-0] fsbl.elf
	[authenication=rsa, destination_cpu=r5-0] hello.elf
}

示例 2:以下 BIF 文件针对每个分区使用一个独立辅助密钥对分区进行身份验证:

image:
{
	[auth_params] ppk_select=1
	[pskfile] primary_4096.pem
	[sskfile] secondary_4096.pem
	
	// FSBL (Partition-0)
	[
	  bootloader,
	  destination_cpu = a53-0,
	  authentication = rsa,
	  spk_id = 0x01,
	  sskfile = secondary_p1.pem
	] fsbla53.elf

	// ATF (Partition-1)
	[
	  destination_cpu = a53-0,
	  authentication = rsa,
	  exception_level = el-3,
	  trustzone = secure,
	  spk_id = 0x02,
	  sskfile = secondary_p2.pem
	] bl31.elf
	
	// UBOOT (Partition-2)
	[
	  destination_cpu = a53-0, 
	  authentication = rsa,
	  exception_level = el-2,
	  spk_id = 0x03,
	  sskfile = secondary_p3.pem
	] u-boot.elf
}