Xilinx FPGA的程序加密方法



更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。

Xilinx FPGA的程序加密方法_第1张图片

Xilinx所有的FPGA器件都有Device DNA,这是一个57bit的二进制序列,在器件生产的时候烧死到芯片里面,每个芯片都是唯一的。我们可以根据这个DNA,并结合相关的加密算法,来设计加密的安全流程。在这里,这个DNA安全流程就类似于ATM交易。在ATM上取钱,需要插入银行卡并输入交易密码。如果卡号和密码与存储在银行系统里的ID匹配,就会批准交易,反之,则禁止交易。具体到FPGA上的实现,如下图所示:

Xilinx FPGA的程序加密方法_第2张图片


在图中,Device DNA是蓝色的部分,加密算法是绿色部分,外部存储器(Flash)是紫色部分。在使用时,我们通过一个比较器给出授权结果,流程如下:

1、器件上电,加载程序,进行FPGA配置。

2、读取FPGA DNA,并将其发送给加密算法。

3、加密算法生成有效的结果。

4、比较结果和存储的校验值,如果结果和存储的校验值相同,则程序可以正常运行。否则,禁止程序运行,或设置定时炸弹,破坏外部设备。

在这里即使DNA被外部用户读取获知,但由于加密算法是自己开发的,别人不知道,这就是整个安全流程的关键,一定要保密。算法是在FPGA架构内实现的,它只是FPGA内几百万个配置位中的少数几位,很难破解。


在这个基础上,还可以根据flash的ID,进一步的加密,如下图:

Xilinx FPGA的程序加密方法_第3张图片

在FPGA Device DNA的基础上,再结合flash的ID进行二次验证加密,安全性会得到进一度的保障。

另外,在源头上,我们可以设置禁止程序回读的功能,以上几种方法,从硬件和软件上相结合,可以保证设计的安全性。

具体在程序实现时,流程图如下:

Xilinx FPGA的程序加密方法_第4张图片

本文转载自: http://blog.chinaaet.com/GreatCause/p/5100053098,如涉及侵权,请私信小编删除。

============华 丽 的 分 割 线============

想加入我们FPGA学习交流群吗?可以长按或扫描以下二维码,审核通过后我们邀请您加入

这些微信群旨在打造一个提供给FPGA工程开发人员及兴趣爱好者(统称“FPGAer”)进行技术交流、答疑解惑和学习的平台。而且我们也将会通过网络举办FPGA技术讲座,分享相关研究文献 


Xilinx FPGA的程序加密方法_第5张图片

了解更多FPGA知识可以长按或扫描以下二维码关注FPGAer俱乐部


Xilinx FPGA的程序加密方法_第6张图片


你可能感兴趣的:(Xilinx FPGA的程序加密方法)