当前位置:   article > 正文

使用xilinx7系列FPGA对比特流进行加密认证时如何确保密钥已经正确加载到FPGA中_复旦微7系列fpga位流加密

复旦微7系列fpga位流加密

使用xilinx7系列FPGA对比特流进行加密认证时如何确保密钥已经正确加载到FPGA中

序言

通常使用FPGA时,默认是不对比特流进行加密认证的。XIlinx 7系列FPGA支持采用AES-256-CBC模式和SHA256对比特流进行加密认证,采用软件进行认证加密,通过硬件进行解密验证。当使用加密认证模式时,首先应当将密钥下载到FPGA中,可以选择下载到BRAM中或者eFUSE寄存器中,如何确保密钥下载成功呢?通过查阅官方文档Xapp1239,找到了方法,供大家一起学习使用。

硬件验证

为验证AES密钥是否已正确编程到BBRAM或eFUSE寄存器中,有以下几步验证步骤

步骤1

使用Vivado Design Suite 2014.3.1或更高版本生成比特流流:包括未加密的位流,使用个性化密钥的加密位流,使用全1的加密位流,使用全0的加密位流.

步骤2

检查生成的比特流以验证是否进行了加密。

步骤3

在尚未对其eFUSE进行编程的FPGA上
a:检查硬件:使用Vivado设备编程器连接到FPGA,并通过JTAG下载未加密的BIT文件。设计是否按预期运行?
b:测试FPGA解密器:下载使用全零密钥加密的BIT文件(用于eFUSE)。
c:测试加密的比特流安全性:下载使用您的个性化密钥加密的BIT文件。预期配置失败。

步骤4

4.编程eFUSE密钥和选项:
a )对电路板加电,以确保上述测试中的所有错误均已从FPGA中清除,并且未配置FPGA。
b)通过JTAG编程AES密钥。 (如果使用eFUSE,请首先使用BBRAM密钥执行步骤3b和3c作为验证检查,然后对eFUSE进行编程以进行最终测试。)
c)检查密钥无法读取:使用Vivado工具检查硬件设备>属性>寄存器> eFUSE> FUSE_CNTL,并将位3编程为1。此外,检查其他FUSE_CNTL位是否在编程操作期间被编程。

步骤5

在带有已编程的eFUSE密钥和选项的FPGA上:
a)测试密钥:下载使用您的个性化密钥加密的BIT文件。
b)测试密钥:下载与全零密钥关联的加密BIT文件。预期配置失败。
c)测试密钥设置:下载未加密的BIT文件。结果取决于安全设置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/545790
推荐阅读
相关标签
  

闽ICP备14008679号