您的位置 首页 基础

对SRAM工艺的FPGA进行加密的办法浅析

对SRAM工艺的FPGA进行加密的方法浅析-由于大规模高密度可编程逻辑器件多采用SRAM工艺,要求每次上电,对FPGA器件进行重配置,这就使得可以通过监视配置的位数据流,进行克隆设计。因此,在关键、核心设备中,必须采用加密技术保护设计者的知识产权。

在现代电子体系规划中,因为可编程逻辑器材的杰出功能、灵敏便利的可晋级特性,而得到了广泛的运用。

因为大规模高密度可编程逻辑器材多选用SRAM工艺,要求每次上电,对FPGA器材进行重装备,这就使得能够经过监督装备的位数据流,进行克隆规划。因而,在要害、中心设备中,有必要选用加密技能维护规划者的知识产权。

1 依据SRAM工艺FPGA的保密性问题

一般,选用 SRAM工艺的 FPGA芯片的的装备办法首要有三种:由核算机经过下载电缆装备、用专用装备芯片(如Altera公司的EPCX系列芯片)装备、选用存储器加微控制器的办法装备。榜首种办法合适调试规划时要用,第二种和第三种在实践产品中运用较多。第二种办法的长处在于外围电路非常简略,体积较小,适用于不需要频频晋级的产品;第三种办法的长处在于本钱较低,晋级功能好。

以上几种办法在体系加电时,都需要将装备的比特流数据依照确认的时序写入SRAM工艺的FPGA。因而,选用必定的电路对装备FPGA的数据引脚进行采样,即可得到装备数据流信息。使用记录下来的装备数据可对另一块FPGA芯片进行装备,就完结了对FPGA内部规划电路的克隆。典型的克隆办法见图1。

对SRAM工艺的FPGA进行加密的办法浅析

2 对SRAM工艺FPGA进行有用加密的办法

因为SRAM工艺的FPGA上电时的装备数据是能够被仿制的,因而独自的一块FPGA芯片是无法完结有用加密的。FPGA芯片供货商对位数据流的界说是不揭露的,因而无法经过外部的装备数据流信息估测内部电路。也便是说,经过对FPGA装备引脚的数据进行采样可得到装备信息。但也不能知道内部电路结构。假如在装备完结后使FPGA处于非作业状况,使用别的一块保密性较强的 CPU发生暗码验证信息与FPGA进行通讯,仅在验证成功的情况下使能FPGA正常作业,则能有用地对规划进行加密。详细电路结构见图2。

对SRAM工艺的FPGA进行加密的办法浅析

体系加电时,由单片机对SRAM工艺的FPGA进行装备。装备完结时,FPGA内部功能块的使能端为低,不能正常作业。此刻,单片机判别到装备完结后,将ASET信号置为高电平,使能FPGA内的伪码发生电路作业;一起,单片机发生一个伪码验证信息,在FPGA中将两路伪码进行比较,两者彻底匹配时,FPGA内部电路正常作业,不然不能正常作业。加密电路首要使用了装备完结后处于闲暇状况的单片机和FPGA内部分逻辑单元,没有添加硬件本钱。

由上述评论可知,体系的加密才能首要由CPU的加密才能决议。这就要求CPU的加密算法要满足杂乱,使得对验证信息的捕获与辨认满足困难。最常见的加密算法便是发生两个伪随机序列发生器:一个坐落SRAM工艺的FPGA内;另一个坐落CPU内。当两者匹配时,经过验斑驳。对PN码有两点要求:一方面,要求伪随机序列的长度满足长,使得要捕获整个序列不太可能;另一方面,伪随机序列的线性杂乱度要满足高,使估测伪随机序列的结构不易完结。

一般选用的伪随机码发生器的反应电路如图3所示。实践中,可选用级数较高的线性反应移位寄存器来发生伪随机码。如选用40级线性移位寄存器发生的最大序列的周期为2?40=10?12。若将一切伪随机码截获并存储,就需要1000Gb的存储空间;若码速率为50Kbps,捕获时刻将长达5555小时;当添加移位寄存器的级数时,所需的存储空间和捕获时刻都会呈指数添加,以至于难以完结。选用较为简略的线性反应电路被估测出反应结构的可能性较大,因而实践的体系中,除了级数要较多之外,往往经过对多个线性移位寄存器发生的伪码进行特定运算发成长码,以添加所发生伪码的线性杂乱度。

对SRAM工艺的FPGA进行加密的办法浅析

3 FPGA内的校验作业电路

在此选用40级线性反应移位寄存器来发生伪随机码,特征多项式为20000012000005(八进制表明)。其移位寄存器表明方式为:Bin=B23?XOR?B21XORB2XORB0,FPGA内作业电路见图4。

对SRAM工艺的FPGA进行加密的办法浅析

在上电之后,单片机将图4中的电路装备在FPGA中。装备完结后,单片机发送的ASET信号由低电平跳变为高电平,使得FPGA内的PN码发生电路开端作业,并于CPU发送过来的PN码进行比较。比较成果共同就使能USER_DESIGN模块正常作业。其间PLL_BITSYS模块用来发生VERIFY_PN的位同步时钟,选用微分锁相原理完结。各种参考资料都有较多介绍,在此不再胪陈。

COMPARE_PN模块完结对单片机发送的伪随机码和PNMA_PRODUCER模块发生的伪随机码的比较:当两路相同,输出1,不一起输出0;若两路伪码彻底匹配,则稳定输出1,使USER_DESIGN电路正常作业,不然,输出为类似于伪码的信号,使USER_DESIGN电路不能正常作业。

4 FPGA内的伪随机码发生电路

PNMA_PRODUCER模块和来发生伪随机码 ,选用移位寄存器完结,详细电路见图5。

LPM_SHIFTREG为移位寄存器模块。移位寄存器ASET端为异步置位端,高电平有用,即ASET为高时,将初值85置入移位寄存器内,LPMSHIFTREG模块的“DIRECTION”设置为“RIGHT”即移位方向为右移。Q[39..0]表明40位移位寄存器的各个状况,SHIFTIN为串行输入,SHIFTIN为Q0、Q2、Q21、Q23四个状况异或运算的成果。

对SRAM工艺的FPGA进行加密的办法浅析

体系加电时,单片机将ASET置为低电平,经过一个非门,变成高电平使移位寄存器处于置位状况。在装备完结后,单片机将ASET信号置为高电平,经非门使移位寄存器正常作业。使用移位寄存器电路发生伪随机码的电路非常简略,反应逻辑也便于修正。

5 单片机验证伪码的程序

在位寻址区(20H~2FH)界说了字节变量WORD1、WORD2、WORD3、WORD4、WORD5,用来存储移位寄存器的40个状况。其间Q0对应WORD1.0,Q1对应WORD1.1……Q39对应WORD5.7。一起,在位寻址区界说了WORD6、WORD7、WORD8、WORD9,用来进行后边的反应逻辑核算。

单片机一上电,首先将ASET脚清零,一起,也将PNMA脚清零,将初值55H作为移位寄存器的初始状况,接着完结FPGA的上电装备作业。装备完结后,单片机检测来自FPGA的外部中止CONFDONE。假如装备完结,CONFDONE为高电;不然,为低电平。在检测到CONFDONE为高电平,即装备完结后,单片机将ASET脚置为1,使能FPGA内的伪码发生电路作业,单片机发生伪随机码的流程。装备完结后,首先将Q0输出到PNMA引脚,接着核算反应逻辑输入,将参加反应运算的几个状况运算成果存在中心变量MID_VARY中。然后,对各个状况进行右移,为了进步运算功率,运用了带进位C的字节循环右移指令。移位完结后,将MID_VARY存入Q39,再将新的Q0输出到PNMA引脚,程序循环履行发生伪随机码。

单片机中心源程序如下:

CLR ASET;单片机上电后将ASET位清0

CLR PNMA

MOV WORD1,#55h

MOV WORD2,#0

MOV WORD3,#0

MOV WORD4,#0

MOV WORD5,#0;将55H作为移位寄存器的初值PEIZHI:

……;进行FPGA的装备作业

JB CONFDONE,PNPRODUCE;依据CONFDONE判别装备是否完结

LJMP PEIZHI;不然持续装备

PNPRODUCE:SETB ASET;装备完结后,将ASET脚置1

XMQLOOP:MOV C,Q0

MOV PNMA,C;将Q0输出到PNMA引脚,作为PN码

MOV C,Q0

MOV WORD6.0,C;用WORD6单元的0位来存Q0的状况

MOV C,Q2

MOV WORD7.0,C;用WORD7单元的0位来存Q2的状况

; MOV C,Q21

MOV WORD8.0,C;用WORD8单元的0位来存Q21的状况

MOV C,Q23

MOV WORD9.0,C;用WORD9单元的0位来存Q23的状况

MOV ACC,WORD6

XRL A,WORD7

XRL A,WORD8

XRL A,WORD9;经过异或指令,核算反应逻辑

MOV C,ACC.0;反应逻辑为Qin=Q0;

XOR Q2 XOR Q21 XOR Q23

MOV MID_VARY,C;将运算后的状况存到MID_VARY中右移运算

MOV ACC,WORD1

RRC A;移位Q7~Q0

MOV WORD1,A;移位后,保存到WORD1单元中

MOV ACC,WORD2

RRC A;移位Q15~Q8

MOV WORD2,A;移位后,保存到WORD2单元中

MOV Q7,C;将Q8的值赋到Q7

MOV ACC,WORD3

RRC A;移位Q23~Q16

MOV WORD3,A;移位后,保存到WORD3单元中

MOV Q15,C;将Q16的值赋到Q15

MOV ACC,WORD4

RRC A;移位Q31~Q24

MOV WORD4,A;移位后,保存到WORD4单元中

MOV Q23,C;将Q24的值赋到Q23

MOV ACC,WORD5

RRC A;移位Q39~Q32

MOV WORD5,A;移位后,保存到WORD5单元中

MOV Q31,C;将Q32的值赋到Q31

MOV C,MID_VARY;将前面反

馈核算的值赋给Q39

MOV Q39,C

LJMP XMALOOP ;持续发生下一代PN码元

6 其它加密办法介绍及比较

对SRAM工艺的FPGA进行加密,除了能够使用单片机完结外,还能够用E2PROM工艺的CPLD完结。与用单片机完结比较,使用CPLD的长处在于可完结高速伪码,但要在硬件电路中添加一块CPLD芯片,使整个硬件电路杂乱化,添加了本钱。本文供给的加密办法考虑到装备完结后单片机处于闲暇状况,此刻使用单片机进行加密,不需要添加任何电路本钱,使得整个体系硬件结构非常简练。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/337724.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部