基于环形振荡器的物理指纹生成电路及方法与流程

文档序号:15454636发布日期:2018-09-15 00:47阅读:171来源:国知局

本发明属于信息安全与密码学的技术领域,涉及一种基于环形振荡器的物理指纹生成电路及方法。



背景技术:

环形振荡器,是由一串奇数个串联连接的反相器构成的一个闭环回路。其振荡周期等于从第一阶到最后一阶的全部延迟总和。因此,数字信号的传播延迟大小是信号在路径上遇到元器件的电子参数的函数。这些元器件电子参数包括mosfet沟道长度、宽度和阈值电压等,它们都会不同程度的受到制造过程中不可控差异的影响。所以,数字信号的传播延迟将会呈现部分随机性,受到具体物理实体的影响,在测量时呈现出物理不可克隆的特性。

截止目前,国外市场已经有成熟的物理不可克隆函数(puf)产品商用。美国intrinsic-id公司作为行业领导者,近年来,先后将自己的产品应用到智能卡、汽车、fpga、物流和政府领域,尤其是与nxp、altera的深度合作。该公司的解决方案不仅为下一代芯片免除了存储密钥对非易失性存储器的需求,还可以应用于现有系统。利用puf,能在需要时从芯片的硬件特性中(就像芯片的生物指纹)提取密钥。因为在电源关闭状态下并没有密钥,黑客便无法破解任何信息,而传统上密钥都是永久存储在非易失性存储器中。

现有数字puf技术中,主要采用环形振荡器结构、仲裁器结构和静态随机存取(英文:staticrandom-accessmemory,简称:sram)存储器结构等。其中,sram存储器结构puf需要后续大规模、高性能纠错算法电路配合,才能达到实际使用的性能要求;仲裁器结构puf同样有着高电路开销的问题,并且电路布局布线上苛刻的对称性要求导致在fpga这种内部lut单元布线固定的环境下,唯一性性能很不理想。



技术实现要素:

为了解决相关技术中采用环形振荡器结构、仲裁器结构和sram存储器结构实现puf时,电路开销过高的技术问题,本申请提供了一种基于环形振荡器的物理指纹生成电路及方法。具体技术方案如下:

第一方面,提供了一种基于环形振荡器的物理指纹生成电路,该基于环形振荡器的物理指纹生成电路包括环形振荡器阵列电路、数据选择电路、第一计数器电路、第二计数器电路以及数据比较器电路,其中:

该环形振荡器阵列电路包括至少两路环形振荡器电路,每路环形振荡器电路的输出端均与数据选择电路的数据输入端连接,每路环形振荡器电路的输入端均与同一个脉冲信号发射端相连,脉冲信号发射端用于发射使能脉冲信号;数据选择电路的第一输出端与第一计数器电路的输入端连接,数据选择电路的第二输出端与第二计数器电路的输入端连接;第一计数器电路的输出端与数据比较器电路的第一输入端连接,第二计数器电路的输出端与数据比较器电路的第二输入端连接。

由于每块晶圆的每个部分在制造过程中会有细微的工艺漂移,反映到电路上,同样的电路结构会有不同的电路时延,并且这种特性不可预知、不可克隆。通过利用同一使能脉冲信号控制多个环形振荡器电路,并利用数据选择电路、计数器电路和数据比较器电路的配合,实现了将各环形振荡器电路的电路特性差异量化为可计数的环形振荡器频率差异,并在此基础上最大程度地对电路结构进行复用,大大降低电路开销,其结构灵活、精简,电路规模小、成本低,生成速度快,可靠性高,能满足物理指纹信息唯一性、可靠性的要求。

可选的,每路环形振荡器电路包括依次串联的1个二输入与非门和2*k+1个非门,每路环形振荡器电路的二输入与非门的两个输入端分别接同一个脉冲信号发射端以及同组环形振荡器电路中的第2*k个非门的输出端,k为大于0的自然数。

可选的,各路环形振荡器电路的布局布线均符合相邻排布、对称排布、内部布线的布线规则。

可选的,第一计数器电路和第二计数器电路的复位信号输入端均与复位信号控制电路的复位信号输出端相连,以便于在选择信号改变时,对第一计数器电路和第二计数器电路中的计数进行清零。

第二方面,提供了一种基于环形振荡器的物理指纹生成方法,该基于环形振荡器的物理指纹生成方法应用于如第一方面以及第一方面各种可选实现方式中提供的基于环形振荡器的物理指纹生成电路中,该环形振荡器阵列电路包括n+1路环形振荡器电路,n为大于0的自然数,该基于环形振荡器的物理指纹生成方法包括:在n+1路环形振荡器电路输入端所接入的使能脉冲信号激活后,n+1路环形振荡器电路开始振荡以产生n+1个不同频率的时钟信号;向数据选择电路输入选择信号,数据选择电路将选择信号所对应的相邻两路环形振荡器电路的时钟信号分别输入至第一计数器电路和第二计数器电路;第一计数器电路和第二计数器电路对所输入的时钟信号进行计数,并将计数得到的数据输入至数据比较器电路;数据比较器电路对第一计数器电路和第二计数器电路输入的计数值进行比较,输出比较结果。

通过利用同一使能脉冲信号控制多个环形振荡器电路,并利用数据选择电路、计数器电路和数据比较器电路的配合,实现了将各环形振荡器电路的电路特性差异量化为可计数的环形振荡器频率差异,并在此基础上最大程度地对电路结构进行复用,大大降低电路开销,其结构灵活、精简,电路规模小、成本低,生成速度快,可靠性高,能满足物理指纹信息唯一性、可靠性的要求。

可选的,相邻两路环形振荡器电路包括第i个环形振荡器电路和第i+1个环形振荡器电路,i为大于0且小于或等于n的自然数,数据选择电路将选择信号所对应的相邻两路环形振荡器电路的时钟信号至第一计数器电路和第二计数器电路,包括:

数据选择电路将相邻两路环形振荡器电路中的第i个环形振荡器电路的时钟信号输入至第一计数器电路,将相邻两路环形振荡器电路中的第i+1个环形振荡器电路的时钟信号输入至第二计数器电路。

可选的,第一计数器电路和第二计数器电路对所输入的时钟信号进行计数,并将计数得到的数据输入至数据比较器电路时,包括:

第一计数器电路将第i个环形振荡器电路的时钟信号进行计数,将得到的第一计数值输入至数据比较器电路的第一输入端;

第一计数器电路将第i+1个环形振荡器电路的时钟信号进行计数,将得到的第二计数值输入至数据比较器电路的第二输入端。

可选的,数据比较器电路对第一计数器电路和第二计数器电路输入的计数值进行比较,输出比较结果时,包括:

数据比较器电路的第一输入端所输入的第一计数值大于数据比较器电路的第二输入端所输入的第二计数值时,数据比较器电路输出0或1中的一种;

数据比较器电路的第一输入端所输入的第一计数值小于数据比较器电路的第一输入端所输入的第二计数值时,数据比较器电路输出0或1中的另一种。

可选的,该基于环形振荡器的物理指纹生成方法还包括:

利用外部电路依次遍历选择信号,将遍历到的选择信号输入至数据选择电路。

利用选择信号的遍历,控制数据选择电路对相邻环形振荡器电路的选择,实现对各相邻环形振荡器电路输出的时钟信号的选择。

可选的,选择信号依次包括0~(n-1),当被遍历到的选择信号为j时,所述数据选择电路选择第j环形振荡器电路和第j+1环形振荡器电路输出的时钟信号,j为大于或等于0,且小于或等于n-1的自然数。

通过设置数据选择电路已经对应的可遍历的选择信号,大大减少了各组环形振荡器电路至计数器电路之间线路的数量,降低了电路的复杂度和成本。

可选的,该基于环形振荡器的物理指纹生成方法还包括:

当向数据选择电路输入的选择信号改变时,第一计数器电路和第二计数器电路内的数据复位置为0。

通过在选择信号改变时,将两个计数器内的数据复位置为0,保证选择信号改变后,重新选择的两路环形振荡器电路输出的时钟信号的计数的准确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本发明一个实施例中提供的基于环形振荡器的物理指纹生成电路的电路示意图;

图2是图1中环形震荡器阵列电路的电路结构示意图。

其中,附图标记如下:

100、环形振荡器阵列电路;100a、环形振荡器电路;101、数据选择电路;102、第一计数器电路;103、第二计数器电路;104、数据比较器电路。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

为了能够物理不可克隆、高可靠性地进行物理指纹信息生成,本发明提供了一种基于环形振荡器的物理指纹生成电路,下面结合图1至图2对该基于环形振荡器的物理指纹生成电路的结构进行举例说明。

图1是本发明一个实施例中提供的基于环形振荡器的物理指纹生成电路的电路示意图,该基于环形振荡器的物理指纹生成电路的电路包括环形振荡器阵列电路100、数据选择电路101、第一计数器电路102、第二计数器电路103以及数据比较器电路104。

这里的环形振荡器阵列电路100包括至少两路环形振荡器电路100a,每路环形振荡器电路100a的输出端均与数据选择电路101的数据输入端连接,每路环形振荡器电路100a的输入端均与同一个脉冲信号发射端相连,脉冲信号发射端用于发射使能脉冲信号。当脉冲信号到来以后,每一路环形振荡器电路100a开始振荡产生时钟信号并输出。由于每一路线路延时不同,导致时延长的路径,振荡频率低,时延短的路径,振荡频率高。

在一种可能的实现方式中,环形振荡器阵列电路100包括n+1个环形振荡器电路100a,请参见图2所示,其是图1中环形震荡器阵列电路的电路结构示意图。每路环形振荡器电路100a包括依次串联的1个二输入与非门和2*k+1个非门,每路环形振荡器电路100a的二输入与非门的两个输入端分别接同一个脉冲信号发射端以及同组环形振荡器电路100a中的第2*k个非门的输出端,k为大于0的自然数。

由图2示出的环形振荡器阵列电路100的组成结构,环形振荡器阵列电路100输入的脉冲使能信号为1位脉冲激活信号,输出为n+1位的时钟信号。

另外,在实际电路设计时,各路环形振荡器电路100a的布局布线均符合相邻排布、对称排布、内部布线的布线规则。

数据选择电路101的第一输出端与第一计数器电路102的输入端连接,数据选择电路101的第二输出端与第二计数器电路103的输入端连接。

在一种可能的实现方式中,可以利用外部电路遍历一组选择信号,以控制数据选择电路101依序选择各相邻两路环形振荡器电路100a的时钟信号。因此,数据选择电路101的选择信号输入端与外部电路的选择信号输出端连接。

第一计数器电路102的输出端与数据比较器电路104的第一输入端连接,第二计数器电路103的输出端与数据比较器电路104的第二输入端连接。数据比较器电路104为可以用于比较两个信号大小的电子器件,本申请中不对数据比较器电路104的型号进行限定。

第一计数器电路102和第二计数器电路103的复位信号输入端均与复位信号控制电路(未示出)的复位信号输出端相连,以便于在选择信号改变时,对第一计数器电路102和第二计数器电路103中的计数进行清零。第一计数器电路102和第二计数器电路103为可以计数的电子器件,本申请不对其具体型号进行限定。

为了保证第一计数器电路102和第二计数器电路103可以对时钟信号进行正确计数,本申请第一计数器电路102和第二计数器电路103选用m位计数器,在实际应用中,m的取值可以根据时钟信号的频率进行设置。

对应于图1和图2所示的电路,本申请还提供了应用于图1和图2电路上的基于环形振荡器的物理指纹生成方法,其中,环形振荡器阵列电路100包括n+1路环形振荡器电路100a,n为大于0的自然数。该方法在实现物理指纹的生成时,可以包括如下的流程:

s1、在n+1路环形振荡器电路100a输入端所接入的使能脉冲信号激活后,n+1路环形振荡器电路100a开始振荡以产生n+1个不同频率的时钟信号;

s2、向数据选择电路101输入选择信号,数据选择电路101将选择信号所对应的相邻两路环形振荡器电路100a的时钟信号分别输入至第一计数器电路102和第二计数器电路103;

为了便于描述,这里的相邻两路环形振荡器电路100a可以记为第i个环形振荡器电路100a和第i+1个环形振荡器电路100a,i为大于0且小于或等于n的自然数。

在实现步骤s2时,数据选择电路101将所述相邻两路环形振荡器电路100a中的第i个环形振荡器电路100a的第一时钟信号输入至所述第一计数器电路102,将所述相邻两路环形振荡器电路100a中的第i+1个环形振荡器电路100a的第二时钟信号输入至所述第二计数器电路103。

s3、第一计数器电路102和第二计数器电路103对所输入的时钟信号进行计数,并将计数得到的数据输入至数据比较器电路104;

对应的,在实现步骤s3时,第一计数器电路102将所述第i个环形振荡器电路100a的时钟信号进行计数,将得到的第一计数值输入至所述数据比较器电路104的第一输入端;所述第一计数器电路102将所述第i+1个环形振荡器电路100a的时钟信号进行计数,将得到的第二计数值输入至所述数据比较器电路104的第二输入端。

显然,这里的第一计数值和第二计数值均是以电路信号的形式输送给数据比较器电路104的。

s4、数据比较器电路104对第一计数器电路102和第二计数器电路103输入的计数值进行比较,输出比较结果。

数据比较器电路104的第一输入端所输入的第一计数值大于所述数据比较器电路104的第二输入端所输入的第二计数值时,所述数据比较器电路104输出0或1中的一种;所述数据比较器电路104的第一输入端所输入的第一计数值小于所述数据比较器电路104的第一输入端所输入的第二计数值时,所述数据比较器电路104输出0或1中的另一种。比如,第一计数值大于第二计数值时,数据比较器电路104输出1,第一计数值小于第二计数值时,数据比较器电路104输出0。

在完成上述步骤s1-s4之后,外部电路依次遍历后续的选择信号,继续执行步骤s2-s4,直至完成最后一组相邻环形振荡器电路100a所对应的比较结果的输出。

比如,选择信号依次包括0~(n-1),当被遍历到的选择信号为j时,所述数据选择电路101选择第j环形振荡器电路100a和第j+1环形振荡器电路100a输出的时钟信号,j为大于或等于0,且小于或等于n-1的自然数。

为了保证选择信号改变后,重新选择的两路环形振荡器电路100a输出的时钟信号的计数的准确性,当向数据选择电路101输入的选择信号改变时,利用复位信号控制所述第一计数器电路102和所述第二计数器电路103内的数据复位置为0,此时,第一计数器电路102和第二计数器电路103的复位信号输入端均接入复位信号。

通过上述方式,最后可以输出一组由n个二进制数值组成的字符串,即输出长度为n的物理指纹信息。

上述物理指纹信息长度n,第一计数器电路102、第二计数器电路103和数据比较器电路104位宽m,非门个数有关参数k都可以根据实际需求与电路情况进行灵活配置。

下面以1024位物理指纹信息生成为例,说明在外围电路配合下1024位物理指纹信息的生成与读取的过程。

本实施例中环形振荡器阵列电路100包含1025路环形振荡器电路100a,每个环形振荡器电路100a内由1个二输入与非门和9个非门串联而成,与非门的输入端连接脉冲激活信号和第8个非门输出的反馈信号。数据选择电路101为2015选2,两个计数器均为32位,数据比较器电路104数据位宽同样也为32位。(即n=1024,m=32,k=4)

利用上述电路生成物理指纹信息的步骤如下:

上电初始化后,将脉冲使能信号短暂置“1”后置“0”,2015路环形振荡器阵列电路100开始振荡产生不同频率输出,首先数据选择电路101输入10’d0,数据选择电路101选择第0和第1条环形振荡器电路100a的输出结果,分别传递给第一计数器和第二计数器。此时,两个计数器内数值快速递增,假设第0条环形振荡器电路100a路径时延小于第1条环形振荡器电路100a路径时延,意味着第0条环振频率高于第1条环振频率,那么,第一计数器的值必将大于第二计数器的值。从而,数据比较器电路104产生“1”的输出。

在外围电路的控制下,经过1ms后,复位信号置“1”进行计数器复位,并同时改变选择信号为10d’1,此时,数据选择电路101选择第1和第2条环形振荡器电路100a的输出结果,分别传递给第一计数器电路102和第二计数器电路103。假设,第1条环形振荡器电路100a路径时延大于第2条环形振荡器电路100a路径时延,意味着第1条环振频率低于第2条环振,那么,第一计数器的值必将小于第二计数器的值。从而,数据比较器电路104产生“0”的输出。

重复以上步骤,数据选择输入信号遍历完10d’0至10d’1023以后,电路输出将得到完整的串行比特数据流,包含1024位物理指纹信息。整个过程耗时大约1s。

综上所述,本申请提供的基于环形振荡器的物理指纹生成方法,通过利用同一使能脉冲信号控制多个环形振荡器电路100a,并利用数据选择电路101、计数器电路和数据比较器电路104的配合,实现了将各环形振荡器电路100a的电路特性差异量化为可计数的环形振荡器频率差异,并在此基础上最大程度地对电路结构进行复用,大大降低电路开销,其结构灵活、精简,电路规模小、成本低,生成速度快,可靠性高,能满足物理指纹信息唯一性、可靠性的要求。

本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1