注释 :如需了解更多信息,请参阅《使用加密确保 7 系列 FPGA 比特流的安全》(XAPP1239)。
要生成加密比特流,请在 Vivado IDE 中打开已实现的设计。在主工具栏中,依次选择“Flow” → “Bitstream
Settings”(流程 > 比特流设置),这样即可显示“Settings”(设置)对话框。在此对话框顶部,单击“Configure
Additional Bitstream Settings”(配置其他比特流设置)。
这样会显示“Edit Device Properties”(编辑器件属性)对话框。选择左侧窗格中的“Encryption”(加密)。
在“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 加密文件。