xilinx FPGA bit 文件加密

电子说

1.3w人已加入

描述

当你的项目终于做完了,到了发布的关键节点,为了防止自己的心血被别人利用,最好对产品进行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文件,由软件随机生成好。       for example        ···        Device xc7a35t;        Key 0 0f2ec1178ae0d04c8c1431afe8266d08e799b01c5c486c2567f3621f47319aaf;        Key StartCBC a6262d508c338eeab815340a7832436d;        Key HMAC d82e72733a7bd7904c802d13db37187b8ad20b972ac163470c5a4d239bce6308;        ···        加密的AES key可以存到FPGA内部易失性的BBR或只能烧写一次(OTP)的eFUSE中。 BBR需要电池供电,可以多次编程。eFUSE不需要电池,但只能烧写一次。这里使用eFUSE.        eFUSE寄存器       首先来看一下eFUSE寄存器:       

加载

加载

加载

加载

加载

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

加载

加载

加载

加载

加载

加载

加载

加载

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分