eFUSE AES密钥验证步骤详解

电子说

1.2w人已加入

描述

以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。

eFUSE 具备一次性可编程特性,即只要使用特定密钥将“熔丝 (FUSE)”熔断,就无法再使用任何其他密钥对其进行编程。

在本文中,我们将探讨有关 AES 密钥验证步骤的内容,当您在器件上以物理方式对 eFUSE 密钥进行编程时应遵循这些验证步骤进行操作。

eFUSE 具备一次性可编程特性,即只要使用特定密钥将“熔丝 (FUSE)”熔断,就无法再使用任何其他密钥对其进行编程。

eFUSE 广泛适用于各种量产器件,在本文中我们将为大家演示一个典型情境,即客户希望向第三方供应商提供采用 AES 编程的 FPGA 的情境。

曾经出现过这样的问题,用户以错误方式对错误的 eFUSE 密钥进行编程,导致加密比特流编程失败。在此情境中,我们无法将 eFUSE 复原,因为它已发生熔断。

在下文中,我们将探讨有关 AES 密钥验证步骤的内容,当您在器件上以物理方式对 eFUSE 密钥进行编程时应遵循这些验证步骤进行操作。

1. 使用 EFUSE_TEST_MODE 对 AES 密钥进行测试性编程。

这将把 eFUSE 编程软件命令发送到器件,但并不会实际对任何熔丝进行编程。

2. 要启用 EFUSE_TEST_MODE,请右键单击“硬件管理器 (Hardware Manager)”上的“硬件服务器属性 (Hardware Server Properties)”,然后选中“EFUSE_TEST_MODE”选项,如下图所示:

AES

3. 启用 EFUSE_TEST_MODE 并对 eFUSE 密钥编程后,就会在 Vivado 安装目录中创建一个 .nkz 文件。

请检查该 .nkz 文件,确认其中是否已正确显示 AES 密钥。

4. 如果此操作成功,请取消勾选“EFUSE_TEST_MODE”框,然后以真正物理方式仅将此 AES 密钥编程到器件中。

请勿对任何其他控制寄存器、安全寄存器或 RSA 进行编程。操作完成后将重新写入 .nkz 文件,但其中所含内容应不变。

请验证两个 .nkz 文件的内容是否相同。

5. 如果两个 .nkz 文件内容相同,那么请对加密比特流文件进行编程。

6. 运行以下命令以验证 .nky 和加密比特流:

create_hw_bitstream -hw_device [current_hw_device ] -nky mtl1_c1.nky mtl1_c1.bit

verify_hw_devices -key efuse

注释:特此澄清,在第 3 步中,除非您已在 eFUSE Wizard 中更改 .nkz 文件的文件名,否则,将覆盖同一个输出 .nkz 文件。因此,您应该将第 1 个 .nkz 复制到其他文件或者在向导中更改此 .nkz 文件的文件名以便后续对两个文件进行比较。

EFUSE_TEST_MODE 仅用于验证目的。如果编程测试成功,并且您取消勾选 EFUSE_TEST_MODE 并遵循与测试过程相同的编程步骤进行操作,那么就能将正确的 AES 密钥编程到器件中。

遵循上述步骤进行操作时,请勿对控制寄存器或安全寄存器进行编程。成功完成验证后即可进行各项详细设置。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分