您的位置 首页 编程

使用异步采样电路进步SRAM工艺FPGA的规划安全性

随着FPGA的容量、性能以及可靠性的提高及其在消费电子、汽车电子等领域的大规模应用,FPGA设计的安全性问题越来越引起人们的关注。相比其他工艺FPGA而言,处于主流地位的SRAM工艺FPGA有一些优势

跟着FPGA的容量、功能以及可靠性的进步及其在消费电子、轿车电子等范畴的大规划使用,FPGA规划的安全性问题越来越引起人们的重视。比较其他工艺FPGA而言,处于干流方位的SRAM工艺FPGA有一些优势,可是因为SRAM的易失性,掉电今后芯片中的装备信息将丢掉,所以每次体系上电时都需求从头装备。这就使得剽窃者可以通过对FPGA的装备数据引脚进行采样,得到该FPGA的装备数据流,完成对FPGA内部规划电路的克隆。为了维护规划者的知识产权以及推进SRAM工艺FPGA更大规划的使用,产业界和学术界从加密算法的视点对SRAM工艺FPGA的规划安全性提出了多种解决计划 [1~2]。

异步电路的竞赛和险象问题所导致的不确定性,是数字电路规划中令人头疼的问题。可是,假如把这种不确定性使用在本安全计划中,相同可以困扰剽窃者,然后更有效地维护规划。为此,本文提出了使用异步采样电路的不确定性进步SRAM工艺FPGA规划安全性的办法,以进步体系的安全性。

1 计划简介

1.1 规划计划的指导思想

(1) CPLD是难以用反向工程等物理手法进行破解的,而且用这些办法破解CPLD的本钱和规划的开发本钱附近。Xilinx公司宣称其CoolRunner- II系列CPLD的安全性彻底可以到达ASIC适当的等级[3]。而且,CPLD也可以用抗进犯性强的小规划反熔丝FPGA来替代[4]。

(2) CPLD中触发器资源较少,因而应尽量下降CPLD中的电路复杂度。

本计划凭借了跳频的理念,在FPGA和CPLD中别离保存两个密钥表,在一开端同步之后,FPGA中的密钥挑选状况机依据异步采样电路输出的状况跳转指示信号进行跳转。一起CPLD接纳FPGA送来的状况跳转信号,其间的密钥状况机也进行相应的跳转,并将密钥传回给FPGA。在没有过失的情况下,这两个状况机将共同地跳转。FPGA通过对CPLD送来的密钥进行承认来验证CPLD的合法性:查验是否和自己的密钥状况机所挑选的密钥共同,假如共同,则阐明所衔接的CPLD为合法的CPLD,FPGA电路正常作业;不然以为所衔接的CPLD为不合法,中止FPGA电路作业。由以上指导思想规划的体系框图如图1所示。

1.gif

此外,CPLD向FPGA传递的密钥先使用M序列进行加密,这样使得对体系的破解首要需求对M序列加密算法进行破解,然后进一步进步了体系的抗进犯才干。

1.2 异步采样电路

温度的改动、电压的动摇等要素都会使晶振所输出的时钟发生颤动。因而,用一个时钟去采样另一个时钟驱动的信号,其采样值是不行猜测的。异步采样电路的机理便是使用两个时钟之间相位和频率的不确定性,发生一个不行猜测的序列。单比特异步采样电路的示意图如图2所示。图中有4个触发器(FF1、FF2、FF3、 FF4)和两个时钟(clk、clks)。FF1、FF2由clks信号驱动,其间FF1是用于避免亚稳态呈现的触发器,它的输入信号同步于clk的信号,FF2的输出信号则同步于clks的信号。FF3、FF4由clk信号驱动,其间FF3的效果和FF1相似,用于避免亚稳态的呈现,它的输入信号同步于clks的信号;FF4的输出信号则同步于clk的信号。通过上述处理后,FF4的输出发生了一个随机序列,这个随机序列不同于同步电路发生的伪随机序列,其状况的搬运同温度、电压等外界要素有关,是一个彻底不行猜测的随机序列。此外,异步采样电路对两个时钟之间的相位灵敏,所以在电路板每次上电时所生成的序列也是不同的。

2.gif

异步采样模块的VHDL完成如下:

–this process is triggered by clks

process(rst, clks)

begin

if rst=‘0’ then

ff1 = (others=>‘0’);

ff2 = (others=>‘0’);

elsif clks‘event and clks=‘1’ then

ff1 = din; –din is the signal triggered by clk

ff2 = ff1;

end if;

end process;

— this process is triggered by clk

process(rst, clk)

begin

if rst=‘0’ then

ff3 = (others=>‘0’);

ff4 = (others=>‘0’);

elsif clk′event and clk=‘1’ then

ff3 = ff2;

ff4 = ff3;

end if;

end process;

dout = ff4; — dout is output random signal

其间:din为同步于clk的输入序列,dout为输出的随机序列。

将本文所规划的办法使用到Altera公司的Cyclone[5]系列FPGA中,使用Quartus II中的SignalTapII Logical Analyzer东西,两次采样复位后FPGA内异步采样电路的输入输出信号,得到如图3所示的波形,其间两个时钟:clk为2.000MHz,clks 为2.048MHz。调查体系复位后异步采样电路输出序列的随机性可以发现,每次将体系复位后,选用同步电路规划的伪随机序列发生器发生相同的伪随机序列 (din);可是,将这个伪随机序列(din)输入异步采样电路后,在输出(dout)却得到不同的随机序列。这阐明同一块电路板每次上电时都将生成不同的随机序列。

3.gif

1.3 密钥挑选状况机

FPGA 和CPLD中各有一个彻底相同的密钥挑选状况机,该状况机依据异步采样电路输出的随机序列进行跳转,其跳转规矩可以自定义。在本文规划的体系中,密钥表中寄存有8个32位长的密钥,密钥状况机共有8个状况,记为状况0~状况7,每个状况别离对应一个密钥,记为密钥0~密钥7。

假定当时状况为状况i,异步采样电路的输出为j,其间i、j∈N,且0≤i, j≤7。那么可以选用如下简略的跳转规矩:当采样电路的输出为0时,跳转到状况0;不然,跳转到状况(i+j)mod8。为了进步体系的安全性,也可以选用各种无序的跳转规矩,通过改动跳转规矩和密钥表,可以得到不同的体系。

1.4 M序列加密解密电路

因为CPLD向 FPGA传递密钥之前,先使用M序列进行加密,使得对体系的破解首要需求对M序列加密算法进行破解,这样既避免了密钥的明文传输,又进步了体系的安全性。之所以选用M序列作为加密算法,首要考虑的是解密的自同步特性。此外依据本规划的假定即CPLD的破解是不行行的,考虑到CPLD触发器资源严重,对 FPGA向CPLD之间的跳转指示信号的传输没有进行加密,为此而节省了CPLD中的电路。

M序列的级数越大,生成的随机序列的周期越长,破解的难度也越大。这儿选用20阶的M序列,其来源多项式为x20+x3+1。

1.5 密钥校验

CPLD 将其密钥状况机所对应的密钥回送给FPGA,FPGA则通过对CPLD送来的密钥进行承认来验证CPLD的合法性。为了不至于多占用引脚,32位密钥是串行传输的。串行传输给剽窃者的破解也增加了难度,但一起带来的问题是:FPGA需求先进行同步和串并转化之后才干进行密钥校验。

4.gif

密钥校验的状况机如图4所示。状况机共有失步、预同步、同步和维护四种状况。预同步状况的设置是为了避免假同步,只要接连三次校验正确才以为找到了同步。维护状况的设置是为了避免误码引起不必要的失步,使得偶然的误码并不会导致校验状况机失步。下面别离介绍密钥校验电路在这四种状况的详细作业方式:

(1)失步状况:体系刚启动时,FPGA的密钥校验状况机处于失步状况,此刻异步采样电路不作业,输出为0,CPLD一向发送密钥0。密钥校验电路在M序列解密电路输出的串行密钥流里查找密钥0的码型,在查找到密钥0的码型后,密钥校验状况机跳转到预同步状况。

(2)预同步状况:当密钥校验状况机处于预同步状况时,异步采样电路仍然不作业,输出跳转指示为0,CPLD仍发送密钥0。密钥校验电路进行密钥0校验,假如接连三次密钥校验正确,则进入同步态;不然回来失步态从头进行密钥查找。

(3)同步状况:此刻异步采样电路开端作业,输出随机序列指示FPGA和CPLD中两个密钥状况机进行跳转。此刻密钥校验电路将CPLD送来的密钥和FPGA内部挑选的密钥进行比照,假如发生校验过错则跳转至维护状况;不然继续进行密钥校验作业。

(4)维护状况:异步采样电路仍然作业,密钥校验电路继续进行密钥校验,假如接连三次密钥校验过错则跳转到失步状况从头进行密钥查找;不然回来同步状况。

在密钥校验电路中设有过错计数器,该计数器在失步状况下计数。一旦过错计数器的计数超越设定的阈值,则以为密钥查验失利,中止FPGA电路的作业使能。

2 安全性剖析

这儿罗列几种常见的进犯办法,并扼要剖析本计划在这些进犯下的安全性。因为本规划假定CPLD的破解是不行行的,所以不考虑对CPLD进行反向工程直接破解等办法。

2.1 对装备数据流进行采样

剽窃者通过对FPGA的装备数据引脚(图1中的方位①)进行采样,得到该FPGA的装备数据流,完成对FPGA内部规划电路的克隆。

这种办法显然是不行行的,因为FPGA只要在承认了所衔接的为合法CPLD今后才干正常作业,也便是说,需求一起克隆一份CPLD内的规划才干使得FPGA正常作业。

2.2 对密钥数据流进行采样

剽窃者使用2.1中所述办法对FPGA内部规划电路进行克隆今后,又对密钥数据流(图1中的方位②)进行采样,用存储器将这些密钥数据流存起来,在FPGA上电后将这个密钥数据流发送给FPGA,妄图模仿一个合法的CPLD。

这种办法也是不行行的。因为异步采样电路对两个时钟之间的相位灵敏,所以在电路板每次上电时所生成的随机序列是不同的,也便是说,每次上电后发生的密钥数据流是不同的。因而,通过这次采样得到的密钥数据流,下次上电时能用的可能性很小。

2.3 CPLD作业原理剖析

由以上剖析可以发现,本计划可以很好地反抗克隆进犯。所以,要破解本计划,剽窃者只要一起对FPGA和CPLD之间的数据进行采样(图1中的方位②和③),依据CPLD的输入输出剖析CPLD的作业原理,从算法层面上破解CPLD,但很难成功破解。因为:

(1)因为FPGA和CPLD之间的密钥数据流通过M序列加密今后再进行传输,所以破解M序列加密算法是剖析CPLD的第一步。一起加密时因选用了20阶M序列,而且每32个周期改动一下密钥,进步了序列归纳进行剖析的难度。

(2)有8个32位的密钥,而密钥的长度和个数关于剽窃者来说都是不知道的。

(3)在破解了M序列加密算法和取得一切的密钥今后,还需求破解毫无规矩的密钥挑选状况机。即便一个8状况的状况机,因每个状况有8种搬运的可能性,总的搬运联系就有88=16 777 216种。

因而,想要破解本体系所需的精力和本钱都适当高。剽窃者需求知道满足的体系规划参数,例如M序列生成多项式、密钥个数、密钥长度、密钥状况机个数以及密钥挑选状况机搬运规矩等,才干对本计划成功破解。

对 FPGA规划安全性的考虑源于所选用的Xilinx公司的Spartan3系列和Altera公司的Cyclone系列FPGA进行产品的开发。本文所提出的计划是使用异步采样电路的不确定性使得体系不易被克隆。将该计划融合到其他加密计划中,可进一步进步这些计划的安全性。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部