对 Zynq 7000 器件分区进行加密 - 2023.2 简体中文

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

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

AMD Zynq™ 7000 SoC 器件使用嵌入式可编程逻辑 (PL) 散列消息认证码 (HMAC) 和含密码分组链接 (CBC) 模式的高级加密标准 (AES) 模块。

BIF 文件示例

为使用加密分区创建启动镜像,在 BIF 中使用 aeskeyfile 属性指定了 AES 密钥文件。为 BIF 文件中列出的要加密的每个镜像文件指定 encryption=aes 属性。BIF 文件 (secure.bif) 示例如下所示:

image: 
{
	[aeskeyfile] secretkey.nky
	[keysrc_encryption] efuse
	[bootloader, encryption=aes] fsbl.elf
	[encryption=aes] uboot.elf
}
在命令行中,使用以下命令可生成含已加密的 fsbl.elfuboot.elf 的启动镜像。
bootgen -arch zynq -image secure.bif -w -o BOOT.bin

密钥生成

Bootgen 可生成 AES-CBC 密钥。Bootgen 使用 BIF 中指定的 AES 密钥文件来对分区进行加密。如果密钥文件为空或者不存在,Bootgen 会在 BIF 文件中指定的文件内生成密钥。如果在 BIF 中未指定密钥文件,并且针对任一分区已请求加密,那么 Bootgen 会在 BIF 所在目录内生成一个密钥文件,其文件名为 BIF 文件的名称加上 .nky 扩展名。以下是密钥文件样本。

图 1. 密钥文件样本