基于FPGAs的重配置异或门ROPUF电路及其工作方法与流程

文档序号:16671370发布日期:2019-01-18 23:36阅读:393来源:国知局
本发明涉及芯片认证、ip保护领域,具体的说是一种基于fpgas的重配置异或门ropuf电路及其工作方式。
背景技术
::随着社会信息化发展的不断深入,信息安全问题越来越受到人们的重视。被认为能永久存储和不被攻击者所知的密钥是传统密码学的核心,然而现有许多技术可以破解传统密钥,使得传统密钥不足以保证硬件的安全。为有效解决此安全问题,物理不可克隆函数(physicalunclonablefunction,puf)应运而生。puf作为一种新兴的革命性硬件安全原语,能够更加有效地应对安全问题。与传统的安全技术相比,puf输出的信息来自于随机的制造过程物理特征,而不是非易失性存储器中存储的易泄露数字位流,因此puf技术虽然实现起来简单但却具有极高的安全性。同时,puf的输出响应还具有优秀的不可篡改性,因为puf的本质属性是来源于芯片制造过程中无法避免的微小延时差异,而这种微小的差异根植于深亚微米甚至是纳米级的物理结构中,任何可能的物理攻击都会对puf的微小物理特征产生破坏从而使得其输出响应发生显著变化,使得puf具有天然的抗侵入式以及半侵入式物理攻击的能力。在设计的puf电路的历史进程中,以ropuf(ringoscillatorphysicalunclonablefunction)最为经典。ropuf是分别使用奇数个反相器构成若干个振荡环,在芯片中布置这些振荡环,由于工艺的原因,其振荡固有频率不同,经过两两比较得到若干位的响应输出。有研究者提出了如图6所示现有技术中传统的7阶ropuf电路,传统的ropuf由两个结构完全相同的ro构成。传统的7阶ropuf在fpga上实现时,从图6可以看出至少需要16个lut(look-up-table)才能实现,才得到一位的puf输出响应,lut资源消耗很大。fpga中资源是有限的,不可占用太多的lut资源来实现puf电路。技术实现要素:本发明是为避免上述现有技术所存在的不足之处,提供了一种基于fpgas的重配置异或门ropuf电路及其工作方法电路,以期极大程度减少硬件资源开销,并保证重配置异或门ropuf电路能够在fpga上的通用性,从而可以用于芯片id或者密钥生成器。为了达到上述目的,本发明所采用的技术方案为:本发明一种基于fpgas的重配置异或门ropuf电路的特点是由两个ro振荡环对、四个计数器和两个比较器构成;任意一个ro振荡环对是由一个双输出与门使能信号单元与七个双输出重配置异或门延时单元构成;任意一个ro振荡环对中的双输出与门使能信号单元中两个与门的一个输入端相连接,并作为使能端en,两个与门的另外一个输入端与ro振荡环对的输出端相连接;当i=1时,两个与门的输出端分别与第i个双输出重配置异或门延时单元中两个异或门的一个输入端相连接;当i∈[1,6]时,第i个双输出重配置异或门延时单元中两个异或门的另一个输入端相连接,作为第i个配置端s[i],第i个双输出重配置异或门延时单元中两个异或门的输出端分别与第i+1个双输出重配置异或门延时单元中两个异或门的一个输入端相连接;第i+1个双输出重配置异或门延时单元中两个异或门的另一个输入端相连接,作为第i+1个配置端s[i+1];当i=7时,第i个双输出重配置异或门延时单元中两个异或门的输出端作为ro振荡环对的输出端;第一ro振荡环对的输出端分别与第一计数器和第二计数器的输入端相连接;第二ro振荡环对的输出端分别与第三计数器和第四计数器的输入端相连接;所述第一计数器的输出端与第三计数器的输出端与第一比较器的输入端相连;所述第一比较器的输出端的输出作为可配置异或门ropuf电路的一位响应输出;所述第二计数器的输出端与第四计数器的输出端与第二比较器的输入端相连;所述第二比较器的输出端的输出作为可配置异或门ropuf电路的另一位响应输出。本发明所述的基于fpgas的重配置异或门ropuf电路的特点也在于,所述双输出与门使能信号单元是由双输出六输入查找表lut6_2是如下步骤进行配置得到的:步骤1、设定双输出六输入查找表lut6_2的初值为64'h000000a0_000000c0;步骤2、令所述双输出六输入查找表lut6_2的高位输入端a[5]接高电平;步骤3、令所述双输出六输入查找表lut6_2的低位输入端a[4]和a[3]接低电平;步骤4、令所述双输出六输入查找表lut6_2的低位输入端a[2]作为所述使能端en;步骤5、令所述双输出六输入查找表lut6_2的低位输入端a[1]和a[0]作为所述双输出与门使能信号单元的两个输入端。所述第i个双输出重配置异或门延时单元是由双输出六输入查找表lut6_2是如下步骤进行配置得到的:步骤1、设定双输出六输入查找表lut6_2的初值为64'h0000003c_0000005a;步骤2、令所述双输出六输入查找表lut6_2的高位输入端a[5]接高电平;步骤3、令所述双输出六输入查找表lut6_2的低位输入端a[4]和a[3]接低电平;步骤4、令所述双输出六输入查找表lut6_2的低位输入端a[2]作为第i个配置端s[i];步骤5、令所述双输出六输入查找表lut6_2的低位输入端a[1]和a[0]作为所述双输出重配置异或门延时单元的两个输入端。本发明所述的基于fpgas的可配置异或门ropuf电路的工作方法的特点是按如下步骤进行:步骤1、设置振荡时间t;步骤2、令两个ro振荡环对的使能端en=1且所述两个ro振荡环对在振荡时间t内振荡;步骤3、当振荡时间t结束时,令两个ro振荡环对的使能端en=0;步骤4、利用第一计数器和第二计数器分别得到第一ro振荡环对的振荡频率f1和f2;步骤5、利用第三计数器和第四计数器分别得到第二ro振荡环对的振荡频率f3和f4;步骤6、利用第一比较器对第一计数器得到振荡频率f1和第三计数器得到的振荡频率f3进行比较,得到的结果作为可配置异或门ropuf电路的一位响应输出;步骤7、利用第二比较器对第二计数器得到振荡频率f2和第四计数器得到的振荡频率f4进行比较,得到的结果作为可配置异或门ropuf电路的另一位响应输出。与已有技术相比,本发明的有益效果体现在:1、本发明利用fpga中双输出六输入查找表lut6_2由两个单输出五输入查找表lut5组成的结构以及异或门可控反向门的特点,设计的重配置异或门ropuf电路仅占传统ropuf电路的0.78125%,因此极大程度上降低了fpga硬件开销。2、2、本发明在同一个可配置逻辑块clb中实现一个ro振荡环对,连线不需要跨clb,极大的提高了ropuf电路的可靠性与安全性。3.本发明利用了具有可控反相器性质的异或门特性,配置配置端,相比传统的ropuf,在生成相同输出响应位时,极大降低了硬件开销。附图说明图1是本发明的双输出与门使能信号单元图;图2是本发明的双输出重配置异或门延时单元图;图3是双输出六输入查找表lut6_2的内部结构图;图4是本发明的ro振荡环对原理图;图5是本发明的7阶重配置异或门ropuf电路整体示意图;图6是现有技术中传统的7阶ropuf结构图;图7是本发明的ro振荡环对在clb上实现的示意图。具体实施方式本实施例中,一种基于fpgas的重配置异或门ropuf电路,如图5所示,是由两个ro振荡环对、四个计数器和两个比较器构成;任意一个ro振荡环对是由一个如图1所示的双输出与门使能信号单元与如图2所示的七个双输出重配置异或门延时单元构成;如图4所示,任意一个ro振荡环对中的双输出与门使能信号单元中两个与门的一个输入端相连接,并作为使能端en,两个与门的另外一个输入端与ro振荡环对的输出端相连接;当i=1时,两个与门的输出端分别与第i个双输出重配置异或门延时单元中两个异或门的一个输入端相连接;当i∈[1,6]时,第i个双输出重配置异或门延时单元中两个异或门的另一个输入端相连接,作为第i个配置端s[i],第i个双输出重配置异或门延时单元中两个异或门的输出端分别与第i+1个双输出重配置异或门延时单元中两个异或门的一个输入端相连接;第i+1个双输出重配置异或门延时单元中两个异或门的另一个输入端相连接,作为第i+1个配置端s[i+1];当i=7时,第i个双输出重配置异或门延时单元中两个异或门的输出端作为ro振荡环对的输出端;第一ro振荡环对的输出端分别与第一计数器和第二计数器的输入端相连接;第二ro振荡环对的输出端分别与第三计数器和第四计数器的输入端相连接;第一计数器的输出端与第三计数器的输出端与第一比较器的输入端相连;第一比较器的输出端的输出作为可配置异或门ropuf电路的一位响应输出;第二计数器的输出端与第四计数器的输出端与第二比较器的输入端相连;第二比较器的输出端的输出作为可配置异或门ropuf电路的另一位响应输出。本实施例中,双输出与门使能信号单元是由双输出六输入查找表lut6_2是如下步骤进行配置得到的,其中,如图3所示,双输出六输入查找表lut6_2是由两个单输出五输入查找表与一个多路选择器组成;两个单输出五输入查找表共用所述双输出六输入查找表lut6_2的低位输入端a[0]、a[1]、a[2]、a[3]和a[4]的五位地址线;所述双输出六输入查找表lut6_2的高位输入端a[5]作为所述多路选择器的控制端;两个单输出五输入查找表的输出端分别连接于所述多路选择器的两个输入端;双输出六输入查找表lut6_2的双输出分别为多路选择器的输出和第二五输入查找表的输出;步骤1、设定双输出六输入查找表lut6_2的初值为64'h000000a0_000000c0;步骤2、令双输出六输入查找表lut6_2的高位输入端a[5]接高电平;步骤3、令双输出六输入查找表lut6_2的低位输入端a[4]和a[3]接低电平;步骤4、令双输出六输入查找表lut6_2的低位输入端a[2]作为使能端en;步骤5、令双输出六输入查找表lut6_2的低位输入端a[1]和a[0]作为双输出与门使能信号单元的两个输入端。本实施例中,第i个双输出重配置异或门延时单元是由双输出六输入查找表lut6_2是如下步骤进行配置得到的:步骤1、设定双输出六输入查找表lut6_2的初值为64'h0000003c_0000005a;步骤2、令双输出六输入查找表lut6_2的高位输入端a[5]接高电平;步骤3、令双输出六输入查找表lut6_2的低位输入端a[4]和a[3]接低电平;步骤4、令双输出六输入查找表lut6_2的低位输入端a[2]作为第i个配置端s[i];步骤5、令双输出六输入查找表lut6_2的低位输入端a[1]和a[0]作为双输出重配置异或门延时单元的两个输入端。本实施例中,一种基于fpgas的可配置异或门ropuf电路的工作方法是按如下步骤进行:步骤1、根据7阶重配置异或门ropuf电路整体示意图,通过veriloghdl编写出重配置异或门ropuf电路,并设置振荡时间t,例如设置为50ms;步骤2、新建.ucf文件,将实现重配置异或门ropuf约束在两个平行位置的clb,例如;步骤3、通过ise14.7综合、实现后,下载程序;步骤4、通过microblaze软核处理器及sdk软件调试包,令两个ro振荡环对的使能端en=1且例如配置端为0000001,两个ro振荡环对在振荡时间t内振荡;步骤5、通过microblaze软核处理器及sdk软件调试包,当振荡时间t结束时,令两个ro振荡环对的使能端en=0;步骤6、通过microblaze软核处理器、sdk软件调试包和串口调试助手,利用第一计数器counter1和第二计数器counter2分别得到第一ro振荡环对的振荡频率f1和f2;步骤7、通过microblaze软核处理器、sdk软件调试包串口调试助手,利用第三计数器counter3和第四计数器counter4分别得到第二ro振荡环对的振荡频率f3和f4;步骤8、利用第一比较器c1对第一计数器counter1得到振荡频率f1和第三计数器counter3得到的振荡频率f3进行比较,得到的结果作为可配置异或门ropuf电路的一位响应输出;步骤9、利用第二比较器c2对第二计数器counter2得到振荡频率f2和第四计数器counter4得到的振荡频率f4进行比较,得到的结果作为可配置异或门ropuf电路的另一位响应输出。步骤10、通过microblaze软核处理器及sdk软件调试包,重复步骤4到步骤9过程,对配置信号s[i]进行64种配置,可以得到128位的puf输出。为了说明本发明方案的积极效果,使用的xilinxvirtex-7系类fpga平台,对提出的重配置异或门ropuf电路进行了设计与实现,如图7所示,在一个clb中实现ro振荡环对;且对图6所示传统的ropuf电路进行实现,并如表1所示给出了面积开销比较。从表1看出,两种puf电路面积消耗相同情况下,本发明提出来的重配置异或门ropuf电路在puf响应位数远远多于传统ropuf电路的puf响应位。本发明仅仅使用同一clb的8个lut资源形成了7阶的重配置异或门ro振荡环对,并且本重配置异或门ro振荡环对可以通过配置实现重构。本发明是在同一个clb中实现了重配置异或门ro振荡环对,连线不需要跨clb,大大的提高了其可靠性与安全性。表1本发明重配置异或门ropuf电路与图5所示传统ropuf方案综合比较。电路名称ro阶数puf响应位数clb数lut数传统ropuf71216xcropuf7128216当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1