用于实现物理不可克隆函数的电路以及相应的运行方法与流程

文档序号:12803397阅读:255来源:国知局
用于实现物理不可克隆函数的电路以及相应的运行方法与流程

本发明总的来说涉及硬件安全领域,具体而言涉及一种用于实现物理不可克隆函数的电路以及相应的运行方法。



背景技术:

物理不可克隆函数(puf)是一种应用于集成电路芯片安全领域的新方法。puf是一种芯片领域的“生物特征”识别技术,也可以称之为“芯片指纹”技术。puf从各个芯片中提取每个芯片特有的“指纹”信息,这些“指纹”信息可以用来验证芯片的真伪、保护存储器中的数据,在芯片的安全和防伪领域有着巨大的应用前景。

这种“指纹”信息的原理在于,不同芯片在制造过程中总会产生许多不可避免的个体差异。芯片的制造差异来自两个方面,一个是芯片的固有结构差异,另一个就是制造过程中由于外界条件的影响所产生的随机差异。芯片是通过晶片经显影、刻蚀等步骤制成的,而且即使是同一晶棒上切下来的晶片,它们也存在各自的结构差异,这种物理结构差异称为芯片的固有结构差异;芯片在制造的过程中,由于温度、电压等外界条件的随机差异,制造出的芯片不可避免地具有差异性(即使芯片的版图是完全一致的),这种差异称之为芯片的随机差异。通过提取芯片在制造过程中所产生的差异,就能够生成芯片独特的“指纹”信息,这些“指纹”信息即使是芯片的制造商也无法复制和预测。

puf的种类有很多,适合在智能卡中实现的puf包括srampuf、仲裁器puf和振荡器puf。其中振荡器puf由于其稳定的特性、较好的可实现性以及较高的物理安全性受到了广泛的关注。最初的振荡器puf通过对振荡器频率进行两两比较来得到一位响应,其挑战响应空间非常小,因此其应用十分受限。改进的振荡器累加和puf将振荡器频率两两比较之后的差值进行累加,由挑战来决定振荡器频率差值的取值。由于puf需要较大的挑战响应空间来满足各类应用场景,例如 身份认证协议,因此振荡器累加和puf需要大量的振荡器来实现。为了满足安全性,通常对于挑战响应空间的要求为264,因此振荡器累加和puf中至少需要128个振荡器。另外,由于振荡器的数目增加,为了对这些振荡器进行频率测量和比较的逻辑也相应增加。为了节省面积和降低功耗,可以将多个振荡器共用频率测量和比较逻辑,但是会大幅增加频率测量的时间。因此,为了实现符合安全要求的挑战响应空间,振荡器累加和puf需要较大的时间、面积和功耗开销。



技术实现要素:

本发明的任务是提供一种用于实现物理不可克隆函数的电路以及相应的运行方法,所述电路和方法能够在满足安全性要求并且不增加频率测量时间的同时减少振荡器的数目,从而降低芯片面积和功耗开销。

在本发明的第一方面,该任务通过一种用于实现物理不可克隆函数的电路来解决,一种用于实现物理不可克隆函数的电路,该电路包括n个延时通路可配置的振荡器ro0,ro1,……ron-2,ron-1,其中n为偶数,并且所述振荡器ro0,ro1,……ron-2,ron-1分别具有频率f0,f1,……fn-2,fn-1,并且所述n个振荡器ro0,ro1,……ron-2,ron-1被分为n/2组,每组包含两个振荡器ro2j,ro2j+1,其中0≤j≤n/2-1,每个振荡器ro0,ro1,……ron-2,ron-1包括m个延时单元组di,其中0≤i≤m-1,并且每个延时单元组di包括至少两个延时单元,该电路被配置为:

根据挑战的相应延时单元选择位c[0],...c[m-1],...c[(n/2-1)m],...c[nm/2-1]来选择每个振荡器ro0,ro1,……ron-2,ron-1的每个延时单元组di的延时单元之一以形成延时通路,其中每组的两个振荡器ro2j,ro2j+1的对应延时单元被分配相同的延时单元选择位;

将每组的两个振荡器ro2j,ro2j+1的频率f2j,f2j+1相减得到频率差值δfj=f2j-f2j+1,并且根据挑战的相应差值取值控制位d[0],...d[n/2-1]对每组的两个振荡器ro2j,ro2j+1的频率差值进行取值控制,其中如果相应差值取值控制位为1,则将δfj取反并且如果相应差值取值控制位为0,则维持原值,或者如果相应差值取值控制位为0,则将δfj取反并且如果相应差值取值控制位为1,则维持原值; 以及

将所有频率差值δfj相加得到振荡器频率差值累加和,并且根据振荡器频率差值累加和得到1比特响应。

根据本发明的电路的原理在于,通过延时通路可配置的振荡器来实现puf。所有振荡器在实现时尽可能保持一致,但是由于芯片的固有结构差异和制造差异,制造出的振荡器中的延时单元的延时必然会存在差异,振荡器的频率必然也会存在差异。这样的差异既存在于同一颗芯片的不同振荡器中,也存在于不同芯片的振荡器中。挑战的比特位分为两个部分、即延时单元选择位和差值取值控制位,其中延时单元选择位用于在单个振荡器中选择延时通路来控制该振荡器的频率,而差值取值控制位用于对两个振荡器的频率差值进行维持原值或者取反的取值控制。不同的挑战将导致不同的延时单元被选择,以及振荡器的频率差异以何种取值加入频率累加和中,从而导致生成不同的响应。延时单元和振荡器的频率差异完全由芯片的固有结构差异和制造差异导致,因此即使使用精密的制造工艺也无法复制出相同的电路。由此可见,根据本发明的电路能够满足puf的基本要求。

本发明的优点在于:传统振荡器累加和物理不可克隆函数的挑战只用来选择控制振荡器频率差值的取值,因此需要大量振荡器来提升挑战响应空间。而本发明中的振荡器累加和物理不可克隆函数的挑战分为两个部分,除了传统方法中所需要的挑战,还需要额外的挑战比特位在单个振荡器中选择延时通路来控制该振荡器的频率。与传统方案相比,本发明中的方案通过振荡器中延时通路可配置的方法使得更多的选择控制由挑战来决定,只需要较少振荡器就能实现相同的挑战响应空间。例如为了实现264的响应空间,现有技术中的方案需要128个振荡器,而通过在每个振荡器中设置三级延时单元组,本发明中的方案只需要32个振荡器就能实现相同的响应空间。因此,本发明中的方案能够在保证安全性并且不增加频率测量时间的情况下大幅减小芯片面积和功耗开销。

在根据本发明的一个优选方案中规定,每个延时单元组di包含第一和第二延时单元di,0和di,1并且所述第一和第二延时单元di,0和di,1用一个多路选择器来选择控制,其中将挑战的延时单元选择位用作多路选择器的选择控制位,其中如果多路选择器的选择控制位输入为0, 则选择第一延时单元di,0,并且如果多路选择器的选择控制位输入为1,则选择第二延时单元di,1。通过优选方案,可以以每两个延时单元分别实现双倍的响应空间、即通过分别选择每个延时单元组中的第一延时单元和第二延时单元来得到不同的响应,由此以最少的延时器件得到最大化的响应空间。

在根据本发明的一个扩展方案中规定,每个延时单元组di包含第一多个延时单元和第二多个延时单元并且所述第一多个延时单元和第二多个延时单元用一个多路选择器来选择控制,其中将挑战的延时单元选择位用作多路选择器的选择控制位,其中如果多路选择器的选择控制位输入为0,则选择第一多个延时单元,并且如果多路选择器的选择控制位输入为1,则选择第二多个延时单元。与前述优选方案不同,在该扩展方案中,每个延时单元组包括第一多个延时单元和第二多个延时单元。通过这样做,可以在不增加多路选择器的情况下将尽可能多的延时单元纳入延时通路中,从而使比较结果更充分地体现电路之间的差异性,从而增加安全性。在一个优选的方案中,每个延时单元组包括第一两个延时单元和第二两个延时单元,但是延时单元的其它数目也是可以设想的。

在本发明的另一扩展方案中规定,如果振荡器频率差值累加和大于等于一阈值,则使响应为1并且如果振荡器频率差值累加和小于该阈值,则使响应为0,或者如果振荡器频率差值累加和大于等于一阈值,则使响应为0并且如果振荡器频率差值累加和小于该阈值,则使响应为1。该阈值可以由厂家或用户设定,且该阈值的优选值为0。通过该可配置的阈值,可以实现认证过程的附加的灵活性和安全性。

在本发明的一个优选方案中规定,n为32,m为3。该通过该优选方案,可以实现尽可能大的响应空间与尽可能少的振荡器和多路选择器的折中,从而以合理成本实现较高的安全性。

在本发明的第二方面,前述任务通过一种运行用于实现物理不可克隆函数的电路的方法来解决,该电路包括n个延时通路可配置的振荡器ro0,ro1,……ron-2,ron-1,其中n为偶数,并且所述振荡器ro0,ro1,……ron-2,ron-1分别具有频率f0,f1,……fn-2,fn-1,每个振荡器ro0,ro1,……ron-2,ron-1包括m个延时单元组di,其中0≤i≤m-1,并且每个延时单元组di包括至少两个延时单元,并且所有振荡器 ro0,ro1,……ron-2,ron-1被分为n/2组,每组包含两个振荡器ro2j,ro2j+1,其中0≤j≤n/2-1,该方法包括如下步骤:

接收挑战,其中所述挑战包括延时单元选择位c[0],...c[m-1],...c[(n/2-1)m],...c[nm/2-1]和差值取值控制位d[0],...d[n/2-1];

根据挑战的相应延时单元选择位c[0],...c[m-1],...c[(n/2-1)m],...c[nm/2-1]来选择每个振荡器ro0,ro1,……ron-2,ron-1的每个延时单元组di的延时单元之一以形成延时通路,其中每组的两个振荡器ro2j,ro2j+1的对应延时单元被分配相同的延时单元选择位;

将每组的两个振荡器ro2j,ro2j+1的频率f2j,f2j+1相减得到频率差值δfj=f2j-f2j+1,并且根据挑战的相应差值取值控制位d[0],...d[n/2-1]对每组的两个振荡器ro2j,ro2j+1的频率差值进行取值控制,其中如果相应差值取值控制位为1,则将δfj取反并且如果相应差值取值控制位为0,则维持原值,或者如果相应差值取值控制位为0,则将δfj取反并且如果相应差值取值控制位为1,则维持原值;以及

将所有频率差值δfj相加得到振荡器频率差值累加和,并且根据振荡器频率差值累加和得到1比特响应。

通过本发明的方法,同样可以实现前述优点。

应当指出,本发明的技术方案不仅可以用于认证或鉴权,而且可以应用于其它应用,例如密钥生成、射频识别等等。

附图说明

下面参考附图根据实施例进一步阐述本发明。

图1示出了根据本发明的用于实现物理不可克隆函数的电路的电路原理图;

图2示出了振荡器的单个延时单元组的示意图;以及

图3示出了根据本发明的运行用于实现物理不可克隆函数的电路的方法的流程图。

具体实施方式

图1示出了根据本发明的用于实现物理不可克隆函数的电路100 的电路原理图。在图1中,电路100包括32个振荡器ro0,……ro31,这些振荡器被分为16组,每组两个振荡器ro2j,ro2j+1,其中0≤j≤15,每个振荡器包括3个延时单元组di,其中0≤i≤2,并且每个延时单元组包括两个延时单元、即第一延时单元和第二延时单元。但是应当理解,这仅仅是示例性的,而在其它实施例中,可以设置其它数目的振荡器和延时单元组以及每个延时器组中的延时单元的数目,例如可以设置64个振荡器,每个振荡器包括6个延时单元组,并且每个延时单元组包括4个延时单元、即第一两个延时单元和第二两个延时单元。

挑战c的长度为64位,对应于1比特的响应r,也就是说,将64位的挑战输入到本发明的电路中,可以得到1比特的输出响应。挑战c被分为两个部分、即48位的延时单元选择位c[0],...c[2],...c[45],...c[47]和16位的差值取值控制位d[0],...d[15],其中每一位的延时单元选择位分别控制一组振荡器中的两个对应的延时单元组的延时单元选择,例如,延时单元选择位c[0]控制振荡器ro0中的延时单元组d0和振荡器ro1中的延时单元d0的延时单元选择,并且延时单元选择位c[3]控制振荡器ro2中的延时单元组d0和振荡器ro3中的延时单元d0的延时单元选择,并且以此类推;每一位的差值取值控制位控制每组两个振荡器的频率差值的取值、即取正还是取反,例如差值取值控制位d[0]控制振荡器ro0和ro1的频率差值的取值,差值取值控制位d[1]控制振荡器ro2和ro3的频率差值的取值,并且以此类推。

根据本发明的电路100被配置为实现如下功能:

根据挑战的相应延时单元选择位c[0],...c[2],...c[45],...c[47]来选择每个振荡器ro0,ro1,……ro30,ro31的每个延时单元组di的延时单元之一以形成延时通路,其中每组的两个振荡器ro2j,ro2j+1的对应延时单元被分配相同的延时单元选择位;

将每组的两个振荡器ro2j,ro2j+1的频率f2j,f2j+1相减得到频率差值δfj=f2j-f2j+1,并且根据挑战的相应差值取值控制位d[0],...d[15]对每组的两个振荡器ro2j,ro2j+1的频率差值进行取值控制,其中如果相应差值取值控制位为1,则将δfj取反并且如果相应差值取值控制位为0,则维持原值,或者如果相应差值取值控制位为0,则将δfj取反并且如果相应差值取值控制位为1,则维持原值;以及

将所有频率差值δfj相加得到振荡器频率差值累加和,并且根据振荡器频率差值累加和得到1比特响应。例如,如果频率差值大于等于阈值0,则输出响应1,否则输出响应0。但是这仅仅是示意性的,在其它实施例中,可以选择其它阈值。

应当注意,该电路的上述功能可以通过硬件来实现。例如,延时单元的选择可以使用多路选择器来实现(具体选择过程参见图2),差值的形成例如可以使用减法器或者、反相器和加法器来实现。但是,该电路的一部分功能也可以通过软件来实现,例如在由硬件功能生成并测量得到各个振荡器的频率以后,可以将各个振荡器的频率用作数字输入,并由软件编程的处理器对这些数字输入进行减法、差值取值、累加和比较输出操作。这样的操作是可行的,因为生成并测量频率以后的诸如减法、差值取值、累加和比较输出之类的操作并不涉及电路之间的个体差异,因此可以以软件方式实现而不会影响安全性。

从上面可以看出,与传统方法相比,本发明中的电路通过振荡器中延时通路可配置的方式使得能够通过挑战实现更多的选择控制,因此只需要较少振荡器就能实现相同的挑战响应空间,因此能够在保证安全性并且不增加频率测量时间的情况下大幅减小芯片面积和功耗开销。

图2示出了振荡器的单个延时单元组di的示意图。在图2中,延时单元组di包括两个延时单元、即第一延时单元di,0和第二延时单元di,1。但是这仅仅是示例性的,在其它实施例中,延时单元组di可以包括其它数目的延时单元、例如四个延时单元、即第一两个延时单元和第二两个延时单元。在该实施例中,振荡器为环形振荡器,并且延时单元为具有一定延时的反相器,其中每个振荡器具有奇数个反相器。在图1中,输入ln为环形振荡器的反馈输入、或者经过一个或多个延时单元组的反馈输入,选择输入sel为挑战的延时单元选择位,输出out为经过第一延时单元di,0或者第二延时单元di,1的反馈输入。当该延时单元选择位为1时,多路选择器例如选择输出经过第一延时单元di,0的反馈输出,而当该延时单元选择位为0时,多路选择器例如选择输出经过第二延时单元di,1的反馈输出。

从图2中可以看出,每个延时单元组都提供了两种不同的输出,这两种不同的输出进而造成两种不同的响应,从而可以通过设置延时 单元组在不增加振荡器数目的情况下实现更大的响应空间。

图3示出了根据本发明的运行用于实现物理不可克隆函数的电路100的方法300的流程图。应当指出,步骤310的虚线框表示该步骤是可选步骤。

在步骤302,接收挑战,其中所述挑战包括延时单元选择位c[0],...c[m-1],...c[(n/2-1)m],...c[nm/2-1]和差值取值控制位d[0],...d[n/2-1]。

在步骤304,根据挑战的相应延时单元选择位c[0],...c[m-1],...c[(n/2-1)m],...c[nm/2-1]来选择每个振荡器ro0,ro1,……ron-2,ron-1的每个延时单元组di的延时单元之一以形成延时通路,其中每组的两个振荡器ro2j,ro2j+1的对应延时单元被分配相同的延时单元选择位。

在步骤306,将每组的两个振荡器ro2j,ro2j+1的频率f2j,f2j+1相减得到频率差值δfj=f2j-f2j+1,并且根据挑战的相应差值取值控制位d[0],...d[n/2-1]对每组的两个振荡器ro2j,ro2j+1的频率差值进行取值控制,其中如果相应差值取值控制位为1,则将δfj取反并且如果相应差值取值控制位为0,则维持原值,或者如果相应差值取值控制位为0,则将δfj取反并且如果相应差值取值控制位为1,则维持原值;

在步骤308,将所有频率差值δfj相加得到振荡器频率差值累加和,并且根据振荡器频率差值累加和得到1比特响应;以及

在可选的步骤310,根据所述1比特响应输出计算结果。

上述方法阐述了根据本发明的电路的运行原理,但是应当指出,如上所述,该方法的步骤既可以全部用硬件来实现,也可以部分用硬件、部分用软件来实现。本领域的技术人员能够根据需要选择合适的软件/硬件实现方式。

虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是对本领域技术人员显而易见的是,这些实施方式仅仅是作为示例示出的。本领域技术人员可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

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