集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1267|回复: 2

xilinx FPGA bit 文件加密

[复制链接]
zxopenljx 发表于 2021-4-8 15:44:17 | 显示全部楼层 |阅读模式
原文链接:https://mp.weixin.qq.com/s/qdEi1dfNgDcuYaRvKCK8Zw
大家好,今天咱们聊聊 xilinx FPGA bit 文件加密 ,当你的项目终于做完了,到了发布的关键节点,为了防止自己的心血被别人利用,最好对产品进行bit加密。
      
        首先咱们来了解一下加密的优点,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文件,由软件随机生成好。
     
图片
        加密的AES key可以存到FPGA内部易失性的BBR或只能烧写一次(OTP)的eFUSE中。BBR需要电池供电,可以多次编程。eFUSE不需要电池,但只能烧写一次。这里使用eFUSE.
        eFUSE寄存器
        首先来看一下eFUSE寄存器:
        
图片

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

图片

        

图片

      
        一共有6个bit有用,各种设置的优缺点表里有详细说明,使用参考设置101100就行了。其中bit0很重要,万一置位了,AES的key又搞丢了,FPGA就变砖头了。
        具体的操作步骤如下:
        1. 生成key和加密bit
        下面三个key可以自己生成填进去,也可以由软件随机生成。
        

图片

      
        

图片

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

        
图片

图片

        2. 下载eFUSE
        
图片

      
        

图片

        

图片

        
        
图片

        3. 烧写FPGA程序
        
图片

        
图片

        

图片


图片

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

        
图片


图片


图片


图片

图片
hellokity 发表于 2021-4-8 17:47:24 | 显示全部楼层
xilinx FPGA bit 文件加密
dameihuaxia 发表于 2021-4-10 14:39:47 | 显示全部楼层
xilinx FPGA bit 文件加密
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-29 03:48 , Processed in 0.059118 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表