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
    +关注

    关注

    1603

    文章

    21333

    浏览量

    593851
  • 算法
    +关注

    关注

    23

    文章

    4456

    浏览量

    90854
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119485

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

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

收藏 人收藏

    评论

    相关推荐

    基于 FPGA 的光纤混沌加密系统

    加密数据送至寄存 器缓存,使得我们的加密效率提高了 15 倍。 系统综合测试分析 IBERT(Integrated Bit Error Ratio Tester)是 Xilinx
    发表于 04-26 17:18

    Xilinx fpga芯片系列有哪些

    Xilinx FPGA芯片拥有多个系列和型号,以满足不同应用领域的需求。以下是一些主要的Xilinx FPGA芯片系列及其特点。
    的头像 发表于 03-14 16:24 919次阅读

    FPGA设计高级技巧 Xilinx

    FPGA设计高级技巧 Xilinx
    发表于 01-08 22:15

    罗彻斯特电子携手AMD/Xilinx可持续供应Xilinx传统FPGA产品

    罗彻斯特电子携手AMD/Xilinx,为Xilinx传统FPGA和相关配置PROM产品提供供货支持。
    的头像 发表于 11-07 09:04 283次阅读

    Xilinx 7系列与Ultrascale系列FPGA的区别

    Xilinx是一家专业的可编程逻辑器件(PLD)厂商,其产品包括FPGA、CPLD、SOC等。XilinxFPGA产品线有多个系列,其中7系列和Ultrascale系列是比较常见的两
    发表于 09-15 14:44 2341次阅读
    <b class='flag-5'>Xilinx</b> 7系列与Ultrascale系列<b class='flag-5'>FPGA</b>的区别

    Xilinx FPGA的GTx的参考时钟

    本文主要介绍Xilinx FPGA的GTx的参考时钟。下面就从参考时钟的模式、参考时钟的选择等方面进行介绍。
    发表于 09-15 09:14 2503次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的GTx的参考时钟

    基于Xilinx FPGA的边界扫描应用

    上一篇文章,介绍了基于STM32F103的JTAG边界扫描应用,演示了TopJTAG Probe软件的应用,以及边界扫描的基本功能。本文介绍基于Xilinx FPGA的边界扫描应用,两者几乎是一样。
    的头像 发表于 09-13 12:29 780次阅读
    基于<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的边界扫描应用

    XILINX FPGA IP之FIFO Generator例化仿真

    上文XILINX FPGA IP之FIFO对XILINX FIFO Generator IP的特性和内部处理流程进行了简要的说明,本文通过实际例子对该IP的使用
    的头像 发表于 09-07 18:31 943次阅读
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> IP之FIFO Generator例化仿真

    生成DDR200T开发板FPGA bit/mcs文件时如何下载Release package?

    求助,生成DDR200T开发板FPGA bit/mcs文件时需要下载Release package怎么下载?
    发表于 08-12 08:30

    获取Xilinx FPGA芯片IDCODE的4种方法

    ,这样就可以通过读取IDCODE,来进行自动区分不同的硬件,分别进行不同的处理方式。本文介绍Xilinx所有FPGA芯片型号IDCODE的获取方法,一共4种方式,总有一种适合你,这些方
    的头像 发表于 07-03 13:01 1814次阅读
    获取<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>芯片IDCODE的4种方法

    XILINX FPGA IP之Clocking Wizard详解

    锁相环基本上是每一个fpga工程必不可少的模块,之前文档xilinx 7 系列FPGA时钟资源对xilinx fpga的底层时钟资源做过说明
    发表于 06-12 17:42 3443次阅读
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> IP之Clocking Wizard详解

    基于JAVA的RSA文件加密软件的设计与实现(源代码及论文)

    分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。设计一套完整实用的RSA文件加密解决方案,具体编码实现。对RSA算法进行
    发表于 06-09 16:01 0次下载

    Xilinx FPGA pcb设计

    Xilinx FPGA pcb设计
    发表于 05-29 09:11 0次下载

    FPGAbit跨时钟域之格雷码(一)

    FPGAbit跨时钟域适合将计数器信号转换为格雷码。
    的头像 发表于 05-25 15:21 2061次阅读
    <b class='flag-5'>FPGA</b>多<b class='flag-5'>bit</b>跨时钟域之格雷码(一)

    AMD Artix 7 FPGA OTA在线升级的实现

    AMD FPGA支持的MultiBoot特性,可以使FPGA先尝试启动最新的配置(bit文件,后续称为Update Bit。如果最新的配置
    的头像 发表于 05-17 10:39 497次阅读