Xilinx FPGA的Bitstream比特流加密设置方法

关于Xilinx FPGA的Bitstream比特流加密设置方法更多信息可参阅应用笔记xapp1084。

使用加密bitstream分两个步骤:

  • 将bitstream的AES密钥存储在FPGA芯片内
  • 将使用AES密钥加密的Bitstream通过SPI Flash或JTAG加载至FPGA芯片

AES密钥可以存储在两个存储区之一:

  • BBRAM区域,是一个片内RAM区域。当VCCBATT_0掉电,BBRAM数据将会丢失,AES密钥也将随之丢失。VCCBATT_0该引脚可接一个1.0~1.89V范围电压的电池(也就是1.5V或1.55V纽扣电池)。该引脚最大电流仅为150nA,一颗160mAh的LR44氧化银纽扣电池可供其使用长达125年(电池的使用寿命通常没这么久)。如不使用BBRAM区域存储,VCCBATT_0引脚可接至VCCAUX(1.8V)或GND。
  • eFuse区域,是一个一次性写入区域,可永久存储密钥,该方法无需电池

在生成Bitstream时需要明确指定使用的存储区,默认值为BBRAM。

仅当FPGA中存储的AES密钥与生成加密Bitstream时使用的AES密钥完全匹配时,FPGA芯片才能成功加载Bitstream,有效地避免了Bitstream数据被别有用心的人恶意拷贝。(例如抄板FPGA方案后,同时拷贝Flash数据)


加载密钥至BBR的配置方法:

生成加密Bitstream的设置方法:

该设置会自动创建约束条目:

text 复制代码
set_property BITSTREAM.ENCRYPTION.ENCRYPT YES [current_design]
set_property BITSTREAM.ENCRYPTION.KEY0 256'h9196d12d9e552b0f9a3c806d14b98596022c01ff29b67ed4f801f796ae346826 [current_design]

还可以修改【Select location of encryption key】选项,选择使用eFuse内的AES密钥解密Bitstream。

相关推荐
I'm a winner9 小时前
新手入门Makefile:FPGA项目实战教程(二)
笔记·fpga开发
我爱C编程12 小时前
基于FPGA的8PSK+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·通信·8psk·帧同步·snr·卷积编码·维特比译码
I'm a winner20 小时前
新手入门 Makefile:FPGA 项目实战教程(三)
fpga开发
范纹杉想快点毕业1 天前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
lazyduck1 天前
从半年到一年的 bug 往事:TCP modbus的卡死与补救
fpga开发·modbus
范纹杉想快点毕业2 天前
《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
服务器·c语言·stm32·单片机·华为·fpga开发·51单片机
Chipi Chipi2 天前
FPGA即插即用Verilog驱动系列——串口数据、命令解析
fpga开发
FPGA_ADDA3 天前
基于 AMDXCVU47P HBM2 FPGA 的 2 路 100G 光纤 PCIe 高性能计算加速卡
fpga开发·vu47p·100g光纤pcie·高性能计算加速卡
霖003 天前
高级项目——基于FPGA的串行FIR滤波器
人工智能·经验分享·matlab·fpga开发·信息与通信·信号处理
I'm a winner3 天前
FPGA+护理:跨学科发展的探索(四)
笔记·fpga开发