一种基于FPGA的低开销的ROPUF电路结构的制作方法

文档序号:11231097阅读:732来源:国知局
一种基于FPGA的低开销的RO PUF电路结构的制造方法与工艺
本发明涉及信息安全与硬件安全领域,特别是在芯片认证、密钥生成领域,通过在fpga内设计puf电路,使得能够利用这种电路将片内器件延时的微小差异转换成一个芯片独有的随机序列码,这种随机序列码可以用于芯片id的产生和密钥的生成。此外,还可以用于集成电路ip核的保护方面。
背景技术
:随着信息科技的发展,信息安全与硬件安全问题日益严峻。在超大规模在超大规模集成电路发展领域,知识产权(intellectualproperty,ip)核的复用大大减少了项目的开发周期,降低工程的开发难度;然而,随之而来的ip核非授权盗版使用问题也日益突出。物理不可克隆函数是一种利用物理实体在被制造过程中所受的不可控偏差,输出随机唯一的二进制序列的函数。国外研究者已经对物理不可克隆函数研究了十几年,硅puf是近些年研究的比较热的一类,它是一种物理不可克隆电路,它可以利用集成电路在制造过程中不可控的偏差造成的器件延时大小差异,来产生随机的二进制序列。例如,ropuf是分别使用同样数目的奇数个反相器构成若干个振荡环,在芯片的不同位置布置这些振荡环,由于芯片不同位置的器件同样存在工艺偏差,导致不同位置的ro振荡频率很有可能不同,两两比较振荡器的频率大小,得到频率差,用频率差的正负来表示puf的二进制输出,布置的ro越多,得到的puf输出响应位数越多,消耗的硬件资源也越多。基于fpga平台的puf研究中,ropuf受到广大研究者的关注,因为ropuf实现时的基本器件比较简单,布线要求不高,同时fpga中有丰富的计算单元和逻辑单元来统计和比较ro的频率大小。有研究者提出如图5所示的可重构ropuf,这种环形振荡器的基本延时单元由两个反相器和一个选择器构成,通过选择器的选择位确定信号要经过的反相器,实现ro的重构,进而改变ro的固有振荡频率;在配置选择位时必须使上下两支ro的对应配置位完全相同,才能保证两支ro的组成结构完全相同,使频率差异仅取决于芯片自身的工艺偏差。置位与门使能端,ro开始起振工作,通过计数器统计两支ro的频率,再通过比较器得到两支ro的频率差,得到puf的一位输出响应。这种可重构ropuf在fpga上实现时,每个可配置延时单元都会占用一个lut,每个使能单元占用一个lut,从图中可以看出至少需要16个lut才能实现两支ro,得到一位的puf输出响应,lut资源消耗很大。fpga中资源是有限的,不可能占用很多资源来实现puf电路。所以,必须从fpga现有的资源结构出发,设计更加合理的适合fpga平台的ropuf电路。技术实现要素:本发明的一个目的是提出一种基于fpga中具有双输出的lut6_2的低开销的ropuf电路结构,这种ropuf电路硬件开销更小,通用性更强,可以用于生成仅与芯片制造过程中不可控的偏差有关的真随机序列作为芯片id或者密钥生成器的可信随机输入数据。这种puf电路的基本单元是奇数阶的双输出ro,这种ro由可配置延时单元即lut6_2组成,其内部的两个具有单输出的lut5均被初始化为反相器和选择器,用来选择信号传输经过哪个反相器。由于芯片生产过程中不可控的偏差,导致两个反相器的信号时延大小不一样;即便是同一芯片,在不同的区域实现反相器,它们的信号时延大小也存在差异。本发明利用fpga中lut6_2由两个lut5组成的结构特点,设计的双输出ropuf电路比传统ropuf电路节约近一半的lut资源。为实现上述目的,本发明采用的技术方案为一种基于fpga中lut6_2的低开销的ropuf电路结构,该电路由一个双输出的使能单元和七个双输出的可配置延时单元组成。使能单元由两个与门组成;两个与门中的一个与门中的输入相互连接,另外一个与门的输入端分别与两个振荡环的反馈信号连接。可配置延时单元由两个反相器和两个二选一选择器组成;两路信号从与门输出后接入该单元的两个输入,经反相器反向后,分别接入选择器的不同输入端,信号从选择器输出后接入下一级可配置延时单元的两个振荡信号输入端;最终,最后一级的可配置延时单元输出信号反馈回使能单元的反馈输入端如图2所示,为发明的双输出ro结构原理图,ro的使能信号在被置位前,与门的输出始终为0,经过奇数级反相器后,振荡环的输出始终为1,ro处于关闭状态;当使能信号被置位后,与门的输出跟随与门的另一个输入,ro开始振荡工作,输出端开始测ro的振荡频率。通过配置激励位x[i]控制信号是否交换反相器,i为ro低i位控制位,1≤i≤7,改变信号传输时延。为保证两支振荡环同时正常工作,双输出ro的配置位中1的个数应为偶数个,以形成上下两支振荡闭环。由双输出ro的原理可知,延时单元是一个三输入二输出的模块,通过调整其内反相器与选择器的位置后,双输出ro的原理等价于图3,将每个时延模块中的反相器和选择器调换一下位置,使信号进入时延模块后先进入选择器模块,再经过反相器,这样便于下一步使用lut6_2中具有共同输入端的lut5,实现时延模块的功能。fpga的lut6_2内部结构如图1所示,两个lut5共用lut6_2的五输入地址线,在双输出ro中,组成其基本延时单元的两个选择器的输入也是共用的。所以,为充分利用lut6_2的两个lut5,将双输出ro的一个基本单元布置在一个lut6_2中。分配a1、a2为选择器的两个输入端,a3为选择器的控制端。如图4所示,为发明的基于fpga基本逻辑单元,即lut6_2的1位响应puf电路的结构示意图。图4中仅描述了其中一个可配置延时单元的lut级内部信号流向,其他可配置延时单元没有一一列出lut级的描述。从图4中看出,该双输出ro具有两个输出端,ro包含奇数个可配置延时单元。每个延时单元由一个lut6_2来实现,而这种lut6_2是由两个一模一样的lut5组成的,如图1所示。两个lut5共用了lut6_2输入的低五位,lut6_2的最高位通过一个选择器控制output1的输出,而output2一直输出低位lut5的输出d0。信号通过a1、a2进入lut6_2,在lut6_2内部,输入端a1的信号分别进入高位lut5的输入a端和低位lut5的输入a端;输入端a2端信号分别进入高位lut5的输入b端和低位lut5的输入b端,两个lut5的c端作为选择器的控制端一起与lut6_2的a3端相连。双输出ro的可配置延时单元具有两个lut5,要实现选择反相器的功能,需要为lut6_2设置实现该功能的初值,64位初值的高32位为高位lut5的初值,应设为0x00000053;低32位为低位lut5的初值,应为0x00000035。双输出ro的使能单元为两个与门,这两个与门的其中一个输入端互连,另外两个输入端分别接振荡环的反馈信号,同样,这两个与门在两个lut5中分别实现,两个lut5的初值应分别为0x000000a0、0x000000c0。本发明中可以通过配置位配置具有不同延时大小的反相器,组成两支具有不同频率的ro。在ro的两个输出端使用计数器统计各自的振荡频率;再使用比较器得到ro的频率差,根据频率差的正负,得到1位puf的输出响应。通过在芯片的不同区域布置多个双输出ro单元,比较它们的固有频率,就可以得到多位输出的puf电路。由于本发明利用了具有双输出的lut,所以相比普通ropuf在fpga上的实现,在构造同样的输出响应位数的puf电路时,硬件消耗会降低一半。附图说明图1是双输出ro的基本延时单元,以及lut6_2的内部结构图,图中还指明了基本延时单元各器件在lut中实现时的具体布置。图2是发明的双输出ro的原理图,由两种单元组成:使能单元、延时单元。图3是发明的双输出ro的等效原理图,将反相器和选择器调换位置,图中示意了在特定输入激励下,双输出ro的两支振荡环内部信号流向。图4是在特定输入激励下,一位响应的双输出ropuf电路结构,图中示例了其中一个可配置延时单元为lut层次的双输出ro中信号的流向图,其中,lut6_2的最高位a6保持高,a3作为选择控制位,a1、a2分别为振荡环的信号输入端。图5是一种7阶重构ropuf实现方案。表1是本发明的时延测量电路同图5所示重构ropuf方案的综合比较。具体实施方式通过采用本发明的在同一clb内实现的双输出ro来构建环形振荡器puf在fpga上的实现电路,其结构如图4。图中列出了其中一个延时单元在fpga实现时的lut层次电路设计,通过planahead工具,把组成振荡环的每个延时单元,也即每个实现延时单元功能的lut6_2约束在fpga的同一个clb内。信号经过与门输出后,进入两个单输出的lut,lut的a3位为控制位,决定哪路信号经过本lut输出。例如,图中7位控制位的值为“1100000”,当控制位为1时,就要交叉选择通路,通过图中具有箭头的实线和虚线显示了两支环形振荡器的信号流向,可以看出前两个延时单元的信号传输通路各发生了一次交叉互选通路的情况,后五个延时单元的控制位均为0,信号分别在上路和下路直线传输,不发生交叉互换的情况。本发明的双输出ropuf设计是基于lut6_2内部结构是由两个具有共同输入的lut5组成的原理,这也是本发明所实现的ropuf电路比传统ropuf电路硬件资源开销少的重要原因。采用本发明在fpga上设计双输出ropuf的基本步骤如下:步骤1:使用原理图方式设计具有使能控制位的7阶双输出ro;步骤2:设置实现使能与门所用lut6_2的初值为0x000000c0_000000a0,设置实现延时单元所用lut6_2的初值为0x00000035_00000053;步骤3:综合前两步所设计的电路,获取双输出ro的例化模板,并在程序中例化一个双输出ro;步骤4:使用planahead工具,将实现使能的lut6_2和实现7个延时单元的lut6_2约束在同一个clb内;步骤5:下载程序,通过串口发送七阶双输出ro的7位配置位信息,例如配置为1100000;步骤6:置位双输出ro的使能端x[0],两支振荡环同时起振,开始通过计数器统计两支ro的固有频率;步骤7:置位使能100ms后,复位双输出ro的使能端x[0],通过比较器比较两个频率的大小,得到一位puf的输出响应。为了说明本发明方案的积极效果,使用的spartan-6系列fpga平台,对发明所提出的双输出ropuf设计进行了实现,对本发明的七阶双输出ropuf同图5所示的七阶重构ropuf进行了比较,表1给出了两种puf的硬件开销比较结果。从表1中可以看出本发明的puf输出响应位在多于传统ropuf的情况下,硬件资源消耗大大少于传统ropuf,本发明仅使用同一clb内的8个lut资源就形成了两个七阶的环形振荡器,并且这种环形振荡器还可以通过配置位实现重构。此外本发明是在fpga的单个clb内实现了两支ro,所用器件之间的连线不需要跨clb,减少了器件之间连线长度,间接地提高了puf的可靠性和安全性。从图中还可以看出,在fpga上实现同阶、相同输出响应位数的puf电路时,本发明的硬件开销仅为图5七阶重构ropuf实现所需硬件资源的50%。表1电路名ro阶数puf响应位数lut逻辑资源双输出ropuf718重构ropuf7116当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1