Xilinx FPGA bit 文件加密

今天给大侠带来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下进去也能验证。

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

【QQ交流群】

群号:173560979,进群暗语:FPGA技术江湖粉丝。

多年的FPGA企业开发、培训经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,FPGA技术江湖打造最纯净最专业的技术交流学习平台。

【微信交流群】

现微信交流群已建立08群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。

欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式,更多精彩内容等你发现

Xilinx FPGA bit 文件加密相关推荐

  1. vivado中bit文件怎么没有生成_Xilinx FPGA bit 文件加密

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  2. Xilinx FPGA bit文件和MCS下载流程

    1 安装完iMPACT, 点击图标打开 2 打开后界面如下,双击左上角选项Boundary Scan,右边会弹出空白区域 3 右边空白区域右击然后选择Initialize Chain,软件会自动加载已 ...

  3. (27)XILINX FPGA bit文件转换成MCS文件(FPGA不积跬步101)

    1 引言 当FPGA BIT文件在线调试结束后,就不能下载BIT文件了,BIT文件加载掉电丢失:这时就需要固化FPGA文件,一般是将BIT文件转换为MCS文件,然后将该文件加载到FLASH中,掉电不会 ...

  4. Xilinx FPGA的程序加密方法

     更多精彩内容,请微信搜索"FPGAer俱乐部"关注我们. Xilinx所有的FPGA器件都有Device DNA,这是一个57bit的二进制序列,在器件生产的时候烧死到芯片里 ...

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

    项目终于搞完了,到了发布的关键节点,为了防止自己的心血被别人利用,最好对产品进行bit加密. 加密的优点 xilinx的V6和7全系列FPGA支持AES256加密,加密的好处: 1,可以防止别人回读或 ...

  6. MATLAB生成FPGA COE文件之XILINX FPGA滤波器系数

    目录 1 概述 2 生成过程 2.1 第一步进入滤波器界面 2.2 第二步生成滤波器 2.3 第三步设置数据位宽 2.4 第四步生成coe文件 1 概述 本文用于记录XILINX FPGA在使用FIR ...

  7. XILINX FPGA 7K325T 烧录MCS文件后无法自启动的问题

    XILINX FPGA 7K325T 烧录MCS文件后无法自启动的问题 现象描述:使用IMPACT烧写FPGA外挂的BPI的flash后,发现烧完之后DONE信号一直没有拉高,烧写失败,重新上电之后, ...

  8. XILINX FPGA VAVADO设计要点

    XILINX FPGA VAVADO设计要点 一.Timing constraints 分离LOC约束与timing 约束 1.[使用多个XDC约束文件]使用单个约束文件看起来是方便的,但是在设计变得 ...

  9. Xilinx FPGA的配置

    http://blog.sina.com.cn/s/blog_98d98c7f0102v4ex.html http://www.cnblogs.com/aikimi7/p/3499633.html F ...

  10. xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)

    目录 1 概述 2 参考文件 3 远程更新思路 4 MIC配置FPGA的模式 4.1 slave serial mode情况 4.2 slave selectMAP mode情况 5 FPGA配置时序 ...

最新文章

  1. Bicolor的使用
  2. 用python解“BCD解密”问题
  3. 一前端去相亲网站找对象,朋友问:找到了吗?这回复太专业...
  4. 疫情加速人脸识别落地:多地试点AI门禁,居民刷脸核验健康码
  5. 消费消息删除_【进阶之路】可靠消息最终一致性解决方案
  6. js带开关的时钟_昌利JS系列混凝土搅拌机衬板配件
  7. Java学习笔记之 IO包 字节流
  8. oracle服务端安装和下载,oracle 11g 服务端下载地址及安装说明
  9. java dochain,Java filter中的chain.doFilter详解
  10. 【Python】打开/查看 pkl csv json txt 文件
  11. 商务参考体系结构:企业对消费者 (B2C)
  12. curl调用接口方法
  13. 栈帧详解ebp、esp
  14. 惠普微型计算机光驱在哪里,惠普从光驱启动开始怎么做(包括hp笔记本)
  15. 名片管理系统java_java毕业设计_springboot框架的名片管理系统
  16. (7)无参构造方法 有参构造方法
  17. 如何优雅地读写HttpServletRequest和HttpServletResponse的请求体
  18. c语言入门-5-字符串
  19. 【面试宝典】2023前端面试题
  20. 会的多和会的精,你会选哪个

热门文章

  1. 使用Roberts算子进行图像分割(Matlab自编程实现)
  2. AllenNLP安装
  3. siamfc代码解读_每日一文:目标跟踪(SiamFC)
  4. curl源码编译安装
  5. 土地利用转移矩阵图怎么做_土地利用转移矩阵的几种实现方法
  6. 撰写论文时如何复制参考文献公式----Mathpix及Mathtype教程
  7. 将 N 叉树编码为二叉树
  8. 计算机硬盘通过usb接口,并口硬盘转usb接口的方法介绍【详解】
  9. 《如何克服社交焦虑》- (美)埃伦·亨德里克森著;冯晓霞译
  10. 十天学会php 零基础,十天学会php:第一天