注释: 如需了解更多信息,请参阅
使用加密确保 7 系列 FPGA 比特流的安全(XAPP1239)。
要生成加密比特流,请在 Vivado IDE 中打开已实现的设计。在主工具栏中,依次选择 (流程 > 比特流设置),这样即可显示“Settings”(设置)对话框。在此对话框顶部,单击Configure Additional Bitstream Settings(配置其他比特流设置)。
图 1. 7 系列设置
这样会显示“Edit Device Properties”(编辑器件属性)对话框。选择左侧窗格中的Encryption(加密)。
图 2. 7 系列配置加密设置
在“Edit Device Properties”对话框中,指定“Encryption Settings”(加密设置)和“Key Settings”(密钥设置):
- Encryption Settings(加密设置)
- 将Enable Bitstream Encryption(启用比特流加密)设为YES(是)。
- 将Select location of encryption key(选择加密密钥位置)设为BBRAM或EFUSE。
- 密钥位置会嵌入加密比特流中。
- 当加密比特流下载至器件后,它会指令 FPGA 使用已加载到 BBR 或 eFUSE 密钥寄存器中的密钥来对加密的比特流进行解密。
- Key Settings(密钥设置)
- 指定 HMAC 身份验证密钥和密码分组链接 (CBC) 起始值。
- 如果不指定这些值,则 Vivado 会为您生成随机值。
- 这些值嵌入到加密比特流中,而无需编程到 FPGA 中。
注释: 除非指定输入加密文件,否则这些值将存储在当前工程约束文件中。要避免将该值存储在约束文件中,请指定输入加密文件。
- 指定加密比特流时要使用的AES encryption key (AES 加密密钥)。您可使用最多 64 个十六进制字符来指定 256 位密钥。
- 此密钥将写入含 .nky 文件扩展名的文件中。将该密钥加载到 BBR 中时,或者将该密钥编程到 eFUSE 密钥寄存器中时,请使用此文件。
注释: 除非指定输入加密文件,否则这些值将存储在当前工程约束文件中。要避免将该值存储在约束文件中,请指定输入加密文件。 - 指定输入加密文件。
- 指定现有 .nky 文件即可获取加密密钥设置。该字段为可选字段,如果手动指定 AES、HMAC 和 CBC,则可省略该字段。
指定加密设置后,请单击OK(确定)以将这些设置应用于工程并重新生成比特流。完成
write_bitstream
操作后,您将获得一个编程文件和一个 .nky 加密文件。 - 指定 HMAC 身份验证密钥和密码分组链接 (CBC) 起始值。