Zynq-7000 SoC 身份验证证书 - 2022.1 Chinese

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

Document ID
UG1400
Release Date
2022-04-26
Version
2022.1 简体中文

“Authentication Certificate”(身份验证证书)是包含分区身份验证相关所有信息的结构。此结构具有公钥和 BootROM/FSBL 需验证的所有签名。在每个“身份验证证书”内都包含一个“Authentication Header”(身份验证头文件),可提供诸如密钥大小、用于签名的算法等信息。“身份验证证书”附加到启用身份验证的实际分区内。如果针对任一分区启用身份验证,那么头文件表同样需进行身份验证。“头文件表身份验证证书”将附加到头文件表内容末尾。

Zynq®-7000 SoC 将 RSA-2048 身份验证与 SHA-256 散列算法结合使用,这表示主密钥和辅助密钥大小均为 2048 位。由于 SHA-256 用作为安全散列算法,因此 FSBL、分区和身份验证证书必须填充至 512 位边界。

Zynq®-7000 SoC 中的身份验证证书格式如下表所示。

表 1. Zynq-7000 SoC 身份验证证书
身份验证证书位 描述
0x00 身份验证头文件 = 0x0101000。请参阅 Zynq-7000 SoC 身份验证证书头文件
0x04 证书大小
0x08 UDF(56 个字节)
0x40 PPK 模数(256 个字节)
0x140 模数扩展(256 个字节)
0x240 指数
0x244 填充(60 个字节)
0x280 SPK 模数(256 个字节)
0x380 模数扩展(256 个字节)
0x480 指数(4 个字节)
0x484 填充(60 个字节)
0x4C0 SPK 签名 = RSA-2048 (PSK, 填充 || SHA-256 (SPK))
0x5C0 FSBL 分区签名 = RSA-2048 (SSK, SHA256 (启动头文件 || FSBL 分区))
0x5C0 其它分区签名 = RSA-2048 (SSK, SHA-256 (分区 || 填充 || 身份验证头文件 || PPK || SPK || SPK 签名))