0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何对xilinx FPGA进行bit文件加密

FPGA设计论坛 ? 来源:FPGA设计论坛 ? 作者:FPGA设计论坛 ? 2022-05-17 09:36 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

加密的优点

xilinx的V6和7全系列FPGA支持AES256加密,加密的好处:

1,可以防止别人回读或者对你的程序进行逆向;

2,防止更改烧写的bit文件。

如果仅仅是防止回读,可以简单设置BITSTREAM.READBACK.SECURITY,其中LEVEL1是禁止回读,LEVEL2禁止回读和重新烧写FPGA。

但如果对手的逆向能力很强,比如说在FPGA上电加载bit的时候用逻辑分析仪把用bit文件“读”出来,这个简单的设置肯定就不行了。这时候可以使用AES256加密。

AES算法简介:

AES即高级加密标准,是一种区块加密,当然也是对称加密。区块固定为128bit,秘钥为128,192或256bit。AES有5种加密模式,xliinx采用的是CBC模式。有一个128bit初始向量IV(startCBC),先利用初始向量IV与第一组数据进行异或后再进行加密运算生成C1。将C1作为初始向量与第二组数据进行异或后再进行加密运算生成C2。以此类推,当最后一组数据加密完毕后,将加密结果拼接为最终结果,C = C1C2C3……Cn。

所以采用CBC模式的256AES需要两个东西,128bit-startCBC和256bit-AES key。

到这里还没完,完成了bit加密还没有认证,万一别人把烧进去bit文件篡改了怎么办?(重新烧了新的bit文件)。所以xilinx又提供了HMAC的认证,这个就跟校验差不多了,检查消息的完整性。

所以还需要提供256bit-HMAC,加上128bit-startCBC和256bit-AES key,一共是三个。这三个key可以自己生成,也可以指定空的 .nky文件,由软件随机生成好。

7b9b4734-d581-11ec-bce3-dac502259ad0.png

加密的AES key可以存到FPGA内部易失性的BBR或只能烧写一次(OTP)的eFUSE中。

BBR需要电池供电,可以多次编程。eFUSE不需要电池,但只能烧写一次。这里使用eFUSE

eFUSE寄存器

首先来看一下eFUSE寄存器:

7bae717e-d581-11ec-bce3-dac502259ad0.png

一共有四个寄存器,分别是存放AES秘钥,用户信息,设备DNA和eFUSE控制。下面特别关注一下eFUSE控制寄存器:

7bc722d2-d581-11ec-bce3-dac502259ad0.png

7c07e556-d581-11ec-bce3-dac502259ad0.png

一共有6个bit有用,各种设置的优缺点表里有详细说明,使用参考设置101100就行了。

其中bit0很重要,万一置位了,AES的key又搞丢了,FPGA就变砖头了。

具体的操作步骤如下:

1生成key和加密bit

下面三个key可以自己生成填进去,也可以由软件随机生成。

7c1e53c2-d581-11ec-bce3-dac502259ad0.png

7c4de8a8-d581-11ec-bce3-dac502259ad0.png

要打开edit device properties,先要打开sythesized design 或者implement design,然后在generate bitstream右键设置

7c693b80-d581-11ec-bce3-dac502259ad0.png

7c80293a-d581-11ec-bce3-dac502259ad0.png

7c9bfb06-d581-11ec-bce3-dac502259ad0.png

2下载eFUSE

7c9bfb06-d581-11ec-bce3-dac502259ad0.png

7cbd26e6-d581-11ec-bce3-dac502259ad0.png

7cecba6e-d581-11ec-bce3-dac502259ad0.png

7d10bce8-d581-11ec-bce3-dac502259ad0.png

3烧写FPGA程序

7d475f50-d581-11ec-bce3-dac502259ad0.png

7d63fc82-d581-11ec-bce3-dac502259ad0.png

program

7d83adde-d581-11ec-bce3-dac502259ad0.png

7d978e58-d581-11ec-bce3-dac502259ad0.png

4验证

很简单,读出mcs然后烧到另一个FPGA里面去,可以看到不能工作。当然,也可以在前面eFUSE设置时选择只能加载AES加密的bit文件,这样换一个不加密的bit下进去也能验证。

7daa02f4-d581-11ec-bce3-dac502259ad0.png

7dbe66c2-d581-11ec-bce3-dac502259ad0.png

审核编辑 :李倩

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

    关注

    1646

    文章

    22096

    浏览量

    620599
  • 算法
    +关注

    关注

    23

    文章

    4720

    浏览量

    95918
  • Xilinx
    +关注

    关注

    73

    文章

    2185

    浏览量

    127083

原文标题:FPGA学习-如何对xilinx FPGA进行bit文件加密

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于SM4的文件加密解密功能实现(ECB模式)

    ? ##HarmonyOS 应用开发## 先上一下效果 前置准备:有一个演示.txt文件,我提前下载到了手机上,里面的内容是“测试内容,今天天气很好”。 进入“文件加密”页面,选择文件
    发表于 06-29 13:21

    FPGA远程烧写bit文件和调试ILA指南

    FPGA 开发过程中,烧写bit文件和使用ILA进行调试是再常见不过的操作。但如果 FPGA 板卡被放在机房,或者通过PCIe插在服务器
    的头像 发表于 06-05 16:41 ?1086次阅读
    <b class='flag-5'>FPGA</b>远程烧写<b class='flag-5'>bit</b><b class='flag-5'>文件</b>和调试ILA指南

    XILINX XCZU67DR FPGA完整原理图

    电子发烧友网站提供《XILINX XCZU67DR FPGA完整原理图.pdf》资料免费下载
    发表于 05-30 15:29 ?1次下载

    如何在MBDT中使用S32k344进行加密

    我想加密和解密通过 CAN 总线发送的数据,为此我想使用 S32k344 中的 HSE 模块在 MBDT 1.5 中进行对称加密-解密,但工具箱中没有可用的块。那我该怎么做呢。请分享与 HSE 相关的
    发表于 03-25 07:21

    xilinx FPGA IOB约束使用以及注意事项

    xilinx FPGA IOB约束使用以及注意事项 一、什么是IOB约束 在xilinx FPGA中,IOB是位于IO附近的寄存器,是FPGA
    的头像 发表于 01-16 11:02 ?1006次阅读
    <b class='flag-5'>xilinx</b> <b class='flag-5'>FPGA</b> IOB约束使用以及注意事项

    使用xilinx的k7160t对ads5271的数字信号进行采集,外部输入电压时,FPGA采集到的值比实际的值大,怎么解决?

    使用xilinx的k7160t对ads5271的数字信号进行采集,通过sclk与sdata接口将ad配置成Deskew Pattern模式与Sync Pattern模式FPGA这边正确的收到555
    发表于 12-26 06:29

    基于Xilinx ZYNQ7000 FPGA嵌入式开发实战指南

    电子发烧友网站提供《基于Xilinx ZYNQ7000 FPGA嵌入式开发实战指南.pdf》资料免费下载
    发表于 12-10 15:31 ?38次下载

    【米尔-Xilinx XC7A100T FPGA开发板试用】测试一

    感谢米尔电子和电子发烧友提供的米尔-Xilinx XC7A100T FPGA开发板。 MYD-J7A100T用的 FPGAXILINX 公司 ARTIX-7 系列的 XC 7A1
    发表于 12-08 08:48

    ADC3583怎么用Xilinx的ISERDESE2采集信号?

    我看datasheet上3种模式2-wire/1-wire/1/2-wireSLDVS都是9位或者18位的,我用xilinxfpga中的ISERDESE2的DDR模式只支持4-,6-,8-bit位宽,或者2个级联支持10或1
    发表于 11-21 07:12

    采用Xilinx FPGA的AFE79xx SPI启动指南

    电子发烧友网站提供《采用Xilinx FPGA的AFE79xx SPI启动指南.pdf》资料免费下载
    发表于 11-15 15:28 ?0次下载
    采用<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的AFE79xx SPI启动指南

    【米尔-Xilinx XC7A100T FPGA开发板试用】+04.SFP之Aurora测试(zmj)

    【米尔-Xilinx XC7A100T FPGA开发板试用】+04.SFP之Aurora测试(zmj) 在前一篇文章“【米尔-Xilinx XC7A100T FPGA开发板试用】+03
    发表于 11-14 21:29

    【米尔-Xilinx XC7A100T FPGA开发板试用】+03.SFP光口测试(zmj)

    。 为了方便用户使用,vivado中提供了一个IBERT(Integrated Bit Error Ratio Tester)的测试工具用于对Xilinx FPGA芯片的高速串行收发器进行
    发表于 11-12 16:54

    【米尔-Xilinx XC7A100T FPGA开发板试用】+02.PCIE接口测试(zmj)

    通信速率可高达 5G bit 带宽。本例程中通过利用 XILINX 的 XDMA IP 来实现 PCIE 的发送和接收速度测试。 1.1参考电路 米尔-Xilinx XC7A100T FPGA
    发表于 11-12 16:05

    Xilinx 7系列FPGA PCIe Gen3的应用接口及特性

    Xilinx7系列FPGA集成了新一代PCI Express集成块,支持8.0Gb/s数据速率的PCI Express 3.0。本文介绍了7系列FPGA PCIe Gen3的应用接口及一些特性。
    的头像 发表于 11-05 15:45 ?3485次阅读
    <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b> PCIe Gen3的应用接口及特性

    如何申请xilinx IP核的license

    在使用FPGA的时候,有些IP核是需要申请后才能使用的,本文介绍如何申请xilinx IP核的license。
    的头像 发表于 10-25 16:48 ?1553次阅读
    如何申请<b class='flag-5'>xilinx</b> IP核的license