使用混合布尔网络作为物理不可克隆函数的系统和方法与流程

文档序号:29575206发布日期:2022-04-09 06:00阅读:111来源:国知局
使用混合布尔网络作为物理不可克隆函数的系统和方法1.相关申请的交叉引用2.本技术要求于2019年6月7日申请且标题为“systemsandmethodsusinghybridbooleannetworksasphysicalunclonablefunctions(使用混合布尔网络作为物理不可克隆函数的系统和方法)”的美国临时专利申请号62/858,542以及于2019年9月26日申请且标题为“systemsandmethodsusinghybridbooleannetworksasphysicalunclonablefunctions(使用混合布尔网络作为物理不可克隆函数的系统和方法)”的美国临时专利申请号62/906,244的权益,所述申请的公开内容通过全文引用的方式明确地并入本文中。3.关于联邦政府赞助研究的声明4.本发明是依据由航空与导弹研究、开发和工程中心(amrdec)授予的批准号w31p4q-19-c-0014在政府的支持下完成。政府对本发明具有一定权利。
背景技术
::5.由于对隐私保护和安全计算的需求不断增长,加密密钥的创建、存储和分发仍然是活跃的研究领域[参见j.zhangetal.keygenerationfromwirelesschannels:areview.ieeeaccess,4:614-626,2016;r.bhanoteta..areviewandcomparativeanalysisofvariousencryptionalgorithms.internationaljournalofsecurityanditsapplications,9(4):289-306,2015;p.tuylsetal.securitywithnoisydata:onprivatebiometrics,securekeystorageandanti-counterfeiting.springerscience&businessmedia,2007]。一种非常适合于这些任务的新兴技术是物理不可克隆函数(puf),物理不可克隆函数通过产生加密密钥但并非明确地需要存储它们来用作“数字指纹”[参见t.mcgrathetal.apuftaxonomy.appliedphysicsreviews,6(1):011303,2019]。在最基本的层面上,puf是以对该puf的特定副本(本文中有时称为“实例”)唯一的方式将输入位串(本文中有时称为“质询”)可靠地映射到输出位串(本文中有时称为“响应”)的物理装置。这种行为是puf对其制造过程中的微小变化极其敏感的结果。具体而言,安全的puf设计具有以下性质:可靠性、唯一性、不可克隆性和不可预测性。例如,在特定的puf实例的情况下,由对同一个质询的连续评估所产生的响应是相同的,只是有一个小误差(即,可靠的)。另外,在两个puf实例和特定质询的情况下,所得响应是不同的(即,唯一的)。由于构建过程的性质,没有两个puf实例可能具有相同的质询-响应行为(即,不可克隆的)。而且,即便了解构建过程,也难以或不可能根据对不同质询的响应来推断出对一个质询的响应(即,不可预测的)。[0006]puf进一步被分类为弱或强[参见u.rührmairetal.strongpufs:models,constructions,andsecurityproofs.intowardshardware-intrinsicsecurity,pages79-96.springer,2010]。弱puf仅拥有一个或很少的可能质询。另一方面,强puf含有指数级数量的独立密钥,使得尝试从受损装置中提取全部的独立密钥变成很难或不可能的任务。此性质非常适合用于认证目的。要了解为什么会这样,请考虑登记过程[参见k.frikkenetal.robustauthenticationusingphysicallyunclonablefunctions.inpierangelasamarati,motiyung,fabiomartinelli,andclaudioa.ardagna,editors,informationsecurity,pages262-277,berlin,heidelberg,2009.springerberlinheidelberg]。[0007]在制造时,制造商通过收集并存储与该装置相关联的质询-响应对(crp)数据库来登记每个puf。一旦puf分发给用户,制造商便通过发送质询并请求对应的响应来认证装置。理想情况下,临时访问强puf不太可能足以让对手获得所需数量的crp来进行假冒。从这个场景中可以看出强puf具有实际重要性的两个条件。首先,查询puf应花费很少时间,使得登记和认证过程在工业规模上可行。其次,crp的空间应足够大,使得即便对于快速查询过程,仍无法实时获得全部的crp数据库。puf也可以用于在本地生成公钥/私钥对。在此应用中,不需要登记。而是,响应于质询而生成唯一密钥。[0008]最后,期望强puf产生多位响应。此性质用于增加熵并且减少认证所需的crp数量。例如,假设一个天真的对手通过简单地猜测0或1来响应每个质询,每个位的概率为50%。对于具有强位响应的理想的强puf,对手在例如7次质询之后猜对每个位的概率是0.57≈1%。对于理想的7位puf,在仅单个质询之后便达到此相同的阈值。许多现有的puf拥有以下性质中的仅一个或几个(但不是所有):(1)现有puf仅产生单个位的响应,从而显著地减少其熵;(2)现有puf需要大量的时间来建立crp数据库,阻碍了认证的广泛采用;(3)现有puf是“弱的”,因为它们仅具有一对或多对可能的质询-响应,从而显著地减少安全应用;以及(4)现有puf的制造和使用较难或成本高,从而降低实用性。技术实现要素:[0009]本文描述了示例集成电路(ic)芯片。ic芯片包括物理不可克隆函数(puf)和辅助电路。puf是混合布尔网络。另外,辅助电路被配置为接收瞬态响应启用信号。[0010]另外,辅助电路被配置为引入时间延迟。时间延迟的持续时间与混合布尔网络的特性时间尺度有关。[0011]替代地或另外,在一些实现方式中,辅助电路包括多个电子装置,其中每个电子装置被配置为实现布尔运算。例如,辅助电路可以包括多对串联连接的反相门。[0012]替代地或另外,在一些实现方式中,辅助电路包括多个电子装置,其中每个电子装置被配置为实现复制操作。[0013]替代地或另外,混合布尔网络包括多个电子装置,其中每个电子装置被配置为实现布尔运算。混合布尔网络可以包括时钟和无时钟电子装置。任选地,在一些实现方式中,混合布尔网络被配置为修改后的随机数生成器。[0014]替代地或另外,ic芯片还包括衬底。混合布尔网络与辅助电路设置在衬底上。在一些实现方式中,混合布尔网络和辅助电路彼此物理上非常接近地位于衬底上。例如,混合布尔网络和辅助电路可以任选地彼此相邻地位于衬底上。[0015]替代地或另外,ic芯片任选地还包括多个puf,其中每个puf包括相应的混合布尔网络。在一些实现方式中,ic芯片还包括组合器电路,所述组合器电路被配置为组合puf中的每一个的相应输出。任选地,组合器电路包括puf。[0016]在一些实现方式中,ic芯片是现场可编程门阵列(fpga)。替代地,在其他实现方式中,ic芯片是专用ic(asic)芯片。[0017]在一些实现方式中,ic芯片任选地还包括寄存器,其中所述寄存器被配置为经由辅助电路接收瞬态响应启用信号。另外,寄存器被配置为捕获puf的响应。[0018]本文描述了用于使用puf提供网络安全的示例方法。所述方法包括将质询位串输入到puf中。puf包括被配置为展现出混沌行为的电路。质询位串设置电路的初始状态。另外,所述方法包括将电路从初始状态释放、从电路捕获瞬态响应位串以及使用瞬态响应位串来提供网络安全。在从初始状态释放之后的预定时间段内捕获瞬态响应位串。[0019]例如,在电路的瞬态期间捕获瞬态响应位串。另外,瞬态的持续时间与电路的特性时间尺度有关。另外,预定时间段大约是电路的特性时间尺度的十倍。[0020]替代地或另外,电路任选地是混合布尔网络。混合布尔网络包括多个电子装置,其中每个电子装置被配置为实现布尔运算。另外,混合布尔网络包括时钟和无时钟电子装置。在该实现方式中,将质询位串输入到puf中的步骤包括将根据质询位串的每个位的相应电压供应到所述电子装置中的相应电子装置。质询位串的长度是n个位,其中n大于或等于2。替代地或另外,从电路捕获瞬态响应位串的步骤包括检测电子装置中的每一个的相应状态,其中电子装置的相应状态对应于瞬态响应位串的每个位的相应值。瞬态响应位串的长度是n个位,其中n大于或等于2。任选地,混合布尔网络可以被配置为修改后的随机数发生器。[0021]替代地或另外,在一些实现方式中,从电路捕获瞬态响应位串的步骤任选地包括从电路捕获多个响应位串。另外,所述方法还包括从多个响应位串获得最终的响应位串。例如,最终响应位串可以包括从响应位串中的每一串选择的一个或多个位。在一些实现方式中,从响应位串中的每一串选择的一个或多个位是使用加密密钥确定的。替代地,在其他实现方式中,从响应位串中的每一串选择的一个或多个位是使用预定密钥确定的。[0022]替代地或另外,在一些实现方式中,所述方法还包括确定瞬态响应位串是否与质询位串相关联。如果瞬态响应位串与质询位串相关联,那么使用瞬态响应位串来提供网络安全。例如,确定瞬态响应位串是否与质询位串相关联的步骤包括查询质询-响应对数据库。[0023]替代地或另外,在一些实现方式中,使用瞬态响应位串来认证装置。[0024]替代地或另外,在一些实现方式中,瞬态响应位串用作加密密钥。[0025]本文还描述了用于puf登记的示例方法。所述方法包括提供puf。puf包括被配置为展现出混沌行为的电路。另外,所述方法包括:将质询位串输入到puf中,其中质询位串设置电路的初始状态;以及将电路从初始状态释放。所述方法还包括从电路捕获瞬态响应位串,以及将质询位串和瞬态响应位串存储在质询-响应对数据库中。在从初始状态释放之后的预定时间段内捕获瞬态响应位串。[0026]另外,所述方法任选地还包括将多个质询位串输入到puf中以及从电路捕获多个瞬态响应位串。质询-响应对数据库将相应的质询位串与瞬态响应位串相关联。[0027]替代地或另外,所述方法还包括将所选质询位串传输到物理装置、从物理装置接收对所选质询位串的响应、查询质询-响应对数据库以确定响应是否与所选质询问题相关联、以及将质询-响应对数据库查询的结果传输到物理装置。[0028]本文还描述了用于使用puf提供网络安全的另一种示例方法。所述方法包括将相应的质询位串输入到多个物理不可克隆函数(puf)中的每一个。puf中的每一个包括被配置为展现出混沌行为的相应电路,并且相应的质询位串设置相应电路中的每一个的相应初始状态。所述方法还包括将相应电路中的每一个从相应的初始状态释放、从相应电路中的每一个捕获相应的瞬态响应位串、将相应的瞬态响应位串组合以获得用于puf的组合响应位串以及使用所述组合响应位串来提供网络安全。[0029]本文还描述了示例系统。所述系统包括ic芯片,所述ic芯片包括puf,其中所述puf包括被配置为展现出混沌行为的电路。所述系统还包括物理装置,所述物理装置包括处理器和可操作地耦合到处理器的存储器,其中存储器上面存储有计算机可执行指令。ic芯片是物理装置的组成部分。所述物理装置被配置为将质询位串输入到puf中,其中质询位串设置电路的初始状态,并且将电路从初始状态释放。所述物理装置还被配置为从电路捕获瞬态响应位串,并且使用瞬态响应位串来提供网络安全。在从初始状态释放之后的预定时间段内捕获瞬态响应位串。[0030]另外,所述系统还可以包括验证装置。验证装置可操作地耦合到物理装置,例如通过网络。物理装置任选地被进一步配置为向验证装置请求质询位串,并且响应于所述请求从验证装置接收质询位串。物理装置被进一步配置为确定瞬态响应位串是否与质询位串相关联。如果瞬态响应位串与质询位串相关联,那么使用瞬态响应位串来提供网络安全。[0031]替代地或另外,验证装置被配置为查询质询-响应对数据库以确定瞬态响应位串是否与质询位串相关联,并且将质询-响应对数据库查询的结果传输到物理装置。[0032]应理解,上述主题也可以实现为计算机控制的设备、计算机过程、计算系统或制品,诸如计算机可读存储介质。[0033]本领域技术人员在参阅以下附图和具体实施方式之后将会了解或明白其他系统、方法、特征和/或优点。希望所有此类附加系统、方法、特征和/或优点包括在本说明书中,并且受所附权利要求书保护。附图说明[0034]附图中的部件相对于彼此不一定按比例绘制。在若干视图中,类似的参考标号指示对应的部分。[0035]图1是根据本文描述的实现方式的示例系统的框图。[0036]图2是根据本文描述的实现方式的示例集成电路(ic)芯片的框图。[0037]图3是示出根据本文描述的实现方式的用于与ic芯片一起使用的多个puf的框图。[0038]图4a是示出根据本文描述的实现方式的用于使用puf提供网络安全的示例操作的流程图。图4b是示出根据本文描述的实现方式的用于puf登记的示例操作的流程图。[0039]图5是示例计算装置。[0040]图6a至图6d示出了具有16个节点(n=16)的示例混合布尔网络随机数发生器(hbn-rng)。图6a是hbn-rng的图示。图6b至图6d是图6a的hbn-rng的部件。从时钟读出的状态读取随机数(参见图6d)。图6e至图6g示出了根据本文描述的实现方式的具有16个节点(n=16)的示例hbn-puf。图6e是hbn-puf的图示。图6f和图6g是图6e的hbn-puf的部件。从时钟读出的状态读取随机数(参见图6d)。在一个时钟周期之后从时钟读出读取响应(参见图6g)。自主部分的初始条件由质询串指定(参见图6f)。通过改变reset位的值来将网络从初始条件释放(参见图6f)。[0041]图7a至图7d是示出具有16个和256个节点(即,n=16和n=256puf实例)的hbn-puf的对于每个网络大小在最佳时间测得的装置内和装置间统计数据的图表。图7a示出了n=16的最大和最小的可靠性。图7b示出了n=16的平均可靠性和唯一性。图7c示出了n=256的最大和最小可靠性。图7d示出了n=256的平均可靠性和唯一性。图7a和图7c示出了每芯片的可靠性统计数据。请注意,重叠表示相似的可靠性;所有其他芯片分布都介于这两者之间。图7b及图7d示出了每个质询的平均统计数据。请注意分布内与分布间的清楚分隔,表示两种网络大小的强可靠性和唯一性。[0042]图8a和图8b是示出在时间t=topt(图8a)和t=2topt(图8b)时n=256节点网络的平均位值的图表。请注意,在两种情况下,密集中心约0.5,指示在最佳测量时间处和超过最佳测量时间的随机位值分布。[0043]图9是n=7节点网络的具有高(>0.05位)互信息的区域的可视化,所述区域构成总空间的0.255%。[0044]图10是示出熵结果的概述的图表。hmin曲线表明指数增长。所有三条曲线在n=3-8窗口内相当接近。[0045]图11是具有n=16和t=3τ的实验和模型数据的最大李雅普诺夫指数的绘图,拟合λexperiment=0.64±0.23τ-1和λmodel=0.55±0.31τ-1。请注意,斜率为正,表示混沌,并且之后收敛到ln(0.5)=-0.693,表示时间序列之间的完全去相关。[0046]图12a至图12d是示出n=16和n=256节点网络的性能和变化的图表。虚线表示最佳测量时间。图12a示出了在每个温度(t)下的n=16节点网络。图12b示出了在每个t下的n=16节点网络变化。图12c示出了在每个t下的n=256节点网络性能。图12d示出了在每个t下的n=256节点网络变化。[0047]图13a是示出具有延迟线触发器的示例hbn-puf的各个温度点(即,t=-5、5、15、25、35、45、55℃)处的δμ=μinter-μintra对测量时间的图表,所述延迟线触发器去除链路的温度相关性。从图13a中观察到,最佳延迟量与温度无关。图13b是示出具有延迟链路(绘图1302)和不具有延迟链路(图1304)的示例hbn-puf的μintra对温度的图表。在60℃的范围内μintra有适度增加,这可以通过标准误差校正进行控制。具体实施方式[0048]除非另外限定,否则本文所使用的所有技术和科学术语具有如本领域的普通技术人员通常所理解的相同的含义。类似或等同于本文中所描述的那些的方法和材料可以用于实践或测试本公开。如本说明书中和所附权利要求书中所使用,单数形式“一个”、“所述”包括复数指示对象,除非上下文另外清楚地指出。本文所用的术语“包括”及其变形与术语“包含”及其变形同义地使用并且是开放的、非限制性术语。本文所用的术语“任选的”或“任选地”意指随后描述的特征、事件或情况可能发生或可能不发生,并且描述包括所述特征、事件或情况发生的情形和其未发生的情形。范围可以在本文中表达为自“约”一个特定值和/或至“约”另一个特定值。当表达这样的一个范围时,一方面包括从一个具体值和/或至另一个具体值。类似地,当值表达为近似值时,通过使用先行词“约”,将理解所述具体值形成另一方面。应进一步理解,范围中的每一个的端点既与另一端点显著相关,又独立于另一端点。如本文所用,术语“约”或“大约”在关于时间(例如,持续时间)或物理尺寸的测量使用时,意指在参考测量的正负10百分比内。[0049]如上所述,物理不可克隆函数(puf)是一种硬件网络安全原语。当以质询进行查询时,puf会产生唯一的、不可预测的响应。因此,puf提供唯一的指纹(例如,“硅指纹”),这是源自制造差异的熵的结果。puf可以用于网络安全应用,包括但不限于安全密钥生成、无记忆密钥存储、装置认证、防伪和知识产权保护。使用puf需要用户提供“质询”信息集(诸如一组二进制位),并且puf生成“响应”信息集,然后针对质询-响应对(crp)数据库检查所述“响应”信息集。常规的puf装置往往很慢(例如,质询与响应之间的时间很长)和/或产生比质询位序列小得多的响应位序列,从而限制puf的安全性。此外,可以“学习”常规的puf,即,可以使用各种攻击策略(诸如使用机器学习)推导出质询-响应对的集合。相比之下,本文描述了基于在现场可编程门阵列(fpga)或专用集成电路(asic)上实现的混合布尔网络的瞬态(可能为混沌)动态的puf。fpga或asic的细微制造差异(诸如逻辑元件上升和下降时间、逻辑元件阈值差异以及在芯片上传播的信号延迟的细微差异)导致布尔网络对不同质询位序列的不同瞬态行为(不同响应),所述不同的瞬态行为用作网络的初始条件。[0050]现在参考图1,示出了示例系统。所述系统包括物理装置102和验证装置104,其中物理装置102可操作地耦合到验证装置104。物理装置102和验证装置104可以由一个或多个通信链路可操作地耦合。本公开设想一个或多个通信链路是任何合适的通信链路。例如,通信链路可以由促进物理装置102与验证装置104之间的数据交换的任何介质实现,包括但不限于有线链路、无线链路和光学链路。本公开设想物理装置102和验证装置104中的每一者可以是或可以包括计算装置(例如,至少处理单元和存储器,诸如图5所示的框502的基本计算装置配置)。另外,本公开设想物理装置102可以是电子装置,例如,包括但不限于消费型电子装置。[0051]任选地,并且如图1所示,物理装置102和验证装置104经由一个或多个网络110可操作地耦合。本公开设想一个或多个网络110是任何合适的通信网络。网络110可以在一个或多个方面彼此相似。替代地或另外,网络110可以在一个或多个方面彼此不同。网络110可以包括局域网(lan)、无线局域网(wlan)、广域网(wan)、城域网(man)、虚拟专用网络(vpn)等,包括以上网络中的任一者的部分或组合。物理装置102和验证装置104可以通过一个或多个通信链路120(例如,促进物理装置102与验证装置104之间的数据交换的任何介质)(包括但不限于有线链路、无线链路和光学链路)耦合到网络110。[0052]如图1所示,物理装置102包括集成电路(ic)芯片200。在一些实现方式中,ic芯片200包括现场可编程门阵列(fpga)。fpga是在电子电路中使用的装置。fpga是包括可编程逻辑块和互连件的半导体装置。fpga能够在制造之后编程,例如,使用硬件描述语言(hdl)。fpga在本领域中是已知的,因此在此不再进一步详细描述。替代地,在其他实现方式中,ic芯片200是专用ic(asic)。asic是定制的ic芯片。与fpga不同,asic无法在制造之后编程。asic在本领域中是已知的,因此在此不再进一步详细描述。ic芯片200是物理装置102的组成部分。例如,ic芯片200被布置在物理装置102之中/之上、结合到所述物理装置中和/或嵌入所述物理装置中。如本文所描述,ic芯片200包括puf,所述puf包括被配置为展现出混沌行为的电路。在本文所描述的一些实现方式中(例如,关于图2和图6e至图6g),puf是混合布尔网络。替代地,在其他实现方式中,本公开设想puf可以是被配置为展现出混沌行为的另220和辅助电路230可以任选地彼此相邻地位于衬底上。puf220和辅助电路230可以任选地使用彼此靠近地位于衬底上的电子装置来构建。换句话说,在此实现方式中,puf220与辅助电路230之间不会有任何中间电子装置。应当理解,将puf220和辅助电路230彼此相邻定位仅被提供作为紧密物理接近的示例。例如,本公开设想,当puf220与辅助电路230之间的空间是微米级(即使其间布置了一个或多个电子装置)时,puf220和辅助电路230是紧密物理接近。[0059]应当理解,puf220的特性随着温度和/或电源电压而改变。在下文中,应当理解,在提到温度的情况下,关于电源电压的类似陈述适用。另外,期望puf220在相对大的温度范围和电源电压下工作。例如,puf220是电子装置的部件,其可能经受各种温度。替代地或另外,puf220具有在电池放电时提供较少电压的电池。如上所述,puf的特性随温度和/或电源电压而变化。然而,在集成了puf220的电子装置中使用的典型时钟信号(例如,图2所示的瞬态响应启用信号210)具有不同的温度特性,这可能会负面地影响puf220的功能性。例如,时钟信号可以随着温度变化而保持设计频率,但是为了使puf220的性能最大化而对其进行测量的时间可以根据温度而变化。因此,为了提供相对于温度变化具有鲁棒性的puf,由物理装置生成的启用信号被馈送通过辅助电路230,随后用于触发寄存器240来记录puf220的响应。因此,辅助电路230被配置为引入时间延迟,所述时间延迟以与puf220类似的方式随着温度和电压而变化。时间延迟的持续时间与puf220的特性时间尺度有关。结果,与常规puf相比,puf220展现出改进的温度稳定性。这由图13a和图13b证明。[0060]类似于puf220,辅助电路230包括多个电子装置(本文也称为“逻辑元件”)。因此,辅助电路230包括与puf220中所包括的相同类型的电子装置。换句话说,puf220与辅助电路230的组成装置的温度特性是相同的。另外,辅助电路230可以用fpga或asic来实现(即,以与puf220相同的方式)。如上所述,辅助电路230被设计成引入时间延迟。在一些实现方式中,每个电子装置被配置为实现布尔运算。例如,辅助电路230可以包括多对串联连接的反相门。在其他实现方式中,每个电子装置被配置为实现复制操作。应当理解,辅助电路230中电子装置的数量与时间延迟的持续时间直接相关。例如,瞬态响应启用信号210在输入到寄存器240中之前被馈送通过较大数量的电子装置会导致较长的时间延迟。因此,可以基于puf220的特性时间尺度来选择辅助电路230中电子装置的数量。作为示例,辅助电路230的延迟线可以被配置为使得时间延迟的持续时间是约10个特性时间尺度。应理解,10个特性时间尺度仅被提供作为示例。本公开设想使用多于或少于10个特性时间尺度的时间延迟。[0061]任选地,在一些实现方式中,ic芯片200还包括多个puf,其中每个puf包括相应的混合布尔网络。例如,图3中示出了多个puf。在图3中,存在两个puf,即,puf320a(“网络0”)和puf320b(“网络1”)。puf320a和320b在本文中统称为puf320。应当理解,两个puf320仅被提供作为示例。本公开设想在ic芯片中包括多于两个puf。另外,提供组合器电路325。组合器电路325被配置为组合puf320中的每一个的相应输出。例如,组合器电路325可以被配置为对由puf320输出的相应位串进行采样并且使用标准来组合这些位串。在一些实现方式中,组合器电路325是被配置为根据标准翻转的选择位(例如,b=0:使用来自网络0的某些位;b=1:使用来自网络1的某些位)。替代地或另外,在一些实现方式中,标准是制造时的随机数。替代地或另外,在其他实现方式中,组合器电路325包括用于生成标准的puf。[0062]现在参考图4a,示出了使用puf来提供网络安全的示例操作。本公开设想图4a的操作可以使用关于例如图1至图3和图6e至图6g描述的一个或多个装置和puf来实现。在步骤402处,将质询位串输入到puf中(参见例如图2和图6e)。将质询位串输入到puf中的步骤包括将根据质询位串的每个位的相应电压(例如,高电压=逻辑1)/低电压=逻辑0)供应到puf的电子装置中的相应电子装置。质询位串的长度为n位,其中n大于或等于2。例如,对于图6e中的puf,n=16。质询位串可以输入到puf的节点中,例如,在图6f所示的“质询”位线上。质询位串设置puf的初始状态。在步骤404处,将puf从初始状态释放。将puf从其初始状态释放的步骤包括翻转reset位,这允许混合布尔网络演变。例如,这可以在图6f所示的“重置”位线上完成。[0063]在步骤406处,从puf捕获瞬态响应位串。例如,这可以在图6g所示的触发器的输出端完成。从puf捕获瞬态响应位串的步骤包括检测电子装置中的每一个的相应状态(例如,高电压/低电压),其中电子装置的相应状态对应于瞬态响应位串的每个位的相应值(例如,高电压=逻辑1)/低电压=逻辑0)。瞬态响应位串的长度为n个位,其中n大于或等于2。例如,对于图6e中的puf,n=16。本文描述的puf(例如,如图2和图6e至图6g所示)的每个质询产生多个位,这提高了对机器学习攻击的抵抗力和/或增加了总熵。另外,在于步骤404处将puf从初始状态释放之后的预定时间段内捕获瞬态响应位串。例如,在puf的瞬态期间捕获瞬态响应位串。瞬态的持续时间与puf的特性时间尺度有关。另外,预定时间段是puf的特性时间尺度的约十倍。例如,在一些实现方式中,预定时间段是约1纳秒(ns)。[0064]在一些实现方式中,从puf捕获瞬态响应位串的步骤任选地包括从puf捕获多个响应位串。在瞬态周期期间的不同时间(例如,周期性地)捕获响应位串中的每一串。这样,在瞬态内收集多个响应。然后从响应位串中获得瞬态响应位串。例如,瞬态响应位串可以包括从响应位串中的每一串选择的一个或多个位。在一些实现方式中,从响应位串中的每一串选择的一个或多个位是使用加密密钥确定的,所述加密密钥可以任选地使用另一个puf生成。替代地,在其他实现方式中,从响应位串中的每一串选择的一个或多个位是使用预定密钥确定的,所述预定密钥可以任选地在制造时指派。[0065]在步骤408处,使用瞬态响应位串来提供网络安全。在一些实现方式中,使用瞬态响应位串来认证装置。替代地,在其他实现方式中,瞬态响应位串用作加密密钥。应当理解,认证和安全密钥生成仅提供作为示例应用。本公开设想将本文描述的puf用于其他应用,包括但不限于无记忆密钥存储、防伪、防篡改、安全通信和知识产权保护。如本文所述,当以质询进行查询时,预计puf会产生唯一的、不可预测的响应(例如,指纹)。预期响应于特定的质询位串,将接收特定的瞬态响应位串。如本文所述,这样的对应关系(即,crp)可以存储在数据库中。因此,对于认证,如果在步骤408处接收到的瞬态响应位串与在步骤402处输入的质询位串匹配,则可以认证装置(例如,图1中所示的物理装置102)。对于安全密钥生成,唯一且不可预测的瞬态响应位串可以用作密钥或其一部分。这样的密钥不需要存储在装置上,并且其只能由装置本身生成。另外,应当理解,安全密钥应用不需要登记过程,包括生成crp数据库。密钥(例如,公钥或私钥)是响应于质询位串而接收到的瞬态响应位串。无需进行比较。[0066]现在参考图4b,示出了puf登记的示例操作。本公开设想图4b的操作可以使用关于例如图1至图3和图6e至图6g描述的一个或多个装置和puf来实现。在步骤452处,提供puf。例如,puf可以是关于图2和图6e描述的puf中的一个。在步骤454处,将质询位串输入到puf中,其中质询位串设置puf的初始状态。在步骤456处,将puf从其初始状态释放。在步骤458处,从puf捕获瞬态响应位串。应当理解,步骤454至458类似于以上关于图4a描述的步骤402至406。此后,在步骤460处,将质询位流和瞬态响应位串存储在质询-响应对数据库中。本公开设想步骤454至460可以由验证装置(例如,如图1所示的验证装置104)执行。另外,本公开设想可以在制造puf之后执行步骤454至460。[0067]应当了解,本文关于各图描述的逻辑操作可以被实现为(1)在计算装置(例如,图5所述的计算装置)上运行的计算机实现的动作或程序模块(即,软件)的序列,(2)在电子装置内的互连机器逻辑电路或电路模块(例如,硬件,诸如fpga),和/或(3)电子装置的软件和硬件的组合。因此,本文所论述的逻辑操作并不限于硬件和软件的任何特定组合。实现方式是取决于计算装置的性能和其他要求的选择问题。因此,本文中描述的逻辑操作以不同的方式称为操作、结构装置、动作或模块。这些操作、结构装置、动作和模块可以用软件、固件、专用数字逻辑以及其任何组合来实现。还应了解,可以执行比附图中示出且本文中描述的更多或更少的操作。这些操作也可以按与本文中描述的不同的次序来执行。[0068]示例计算装置[0069]参考图5,示出了其上可以实现本文所述的方法的示例计算装置500。应当理解,示例计算装置500只是其上可以实现本文描述的方法的合适计算环境的一个示例。任选地,计算装置500可以是熟知的计算系统,包括但不限于:个人计算机、服务器、手持或膝上型装置、多处理器系统、基于微处理器的系统、网络个人计算机(pc)、小型计算机、大型计算机、嵌入式系统、和/或包括多个和任何以上系统或装置的分布式计算环境。分布式计算环境使连接到通信网络或其他数据传输介质的远程计算装置能够执行各种任务。在分布式计算环境中,程序模块、应用程序和其他数据可以存储在本地和/或远程计算机存储介质上。[0070]在计算装置500的最基本配置中,计算装置500通常包括至少一个处理单元506和系统存储器504。根据计算装置的确切配置和类型,系统存储器504可以是易失性存储器(诸如随机存取存储器(ram))、非易失性存储器(诸如只读存储器(rom)、快闪存储器等)、或这两者的某个组合。这种最基本的配置在图5中以虚线502示出。处理单元506可以是执行计算装置500的操作所必需的算术和逻辑运算的标准可编程处理器。计算装置500还可以包括用于在计算装置500的各种部件之间传达信息的总线或其他通信机构。[0071]计算装置500可以具有另外的特征/功能性。例如,计算装置500可以包括另外的存储装置,诸如可移除存储装置508和不可移除存储装置510,包括但不限于磁性或光学盘或带。计算装置500还可以包含允许装置与其他装置通信的网络连接516。计算装置500还可以具有输入装置514,诸如键盘、鼠标、触摸屏等。还可以包括输出装置512,诸如显示器、扬声器、打印机等。附加装置可以连接到总线,以便有助于在计算装置500的部件之间进行数据通信。所有这些装置在本领域中是众所周知的,并且无需在此详述。[0072]处理单元506可以被配置为执行编码在有形计算机可读介质中的程序代码。有形计算机可读介质是指能够提供致使计算装置500(即,机器)以特定方式操作的数据的任何介质。可以利用各种计算机可读介质来向处理单元506提供指令以供执行。示例有形计算机可读介质可以包括但不限于在任何方法或技术中实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性介质、非易失性介质、可移除介质和不可移除介质。系统存储器504、可移除存储装置508和不可移除存储装置510均为有形的计算机存储介质的示例。示例有形计算机可读记录介质包括但不限于集成电路(例如,现场可编程门阵列或专用ic)、硬盘、光盘、磁光盘、软盘、磁带、全息存储介质、固态装置、ram、rom、电可擦除编程只读存储器(eeprom)、快闪存储器或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置。[0073]在示例实现方式中,处理单元506可以执行存储在系统存储器504中的程序代码。例如,总线可以将数据运载到系统存储器504,处理单元506从所述系统存储器接收并执行指令。系统存储器504接收到的数据可以在由处理单元506执行之前或之后任选地存储在可移除存储装置508或不可移除存储装置510上。[0074]应当理解,本文中描述的各种技术可以结合硬件或软件、或在适当时结合其组合来实现。因此,当前公开的主题的方法和设备、或其某些方面或部分可以采取实施在有形介质中的程序代码(即,指令)的形式,所述有形介质诸如软盘、cd-rom、硬盘驱动器或任何其他机器可读存储介质,其中当将程序代码加载到机器(诸如计算装置)中并由所述机器执行时,所述机器变为用于实践当前公开的主题的设备。在程序代码在可编程计算机上执行的情况下,计算装置通常包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输出装置。一个或多个程序可以实现或利用结合当前公开的主题而描述的过程,例如,通过使用应用编程接口(api)、可再用控件等。此类程序可以用高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,如果期望的话,程序可以用汇编或机器语言来实现。在任何情况下,语言可以是编译或解释语言,并且其可以与硬件实现方式组合。[0075]实施例[0076]物理不可克隆函数(puf)是利用制造过程中的微小变化来创建唯一且稳定的识别特性的装置,其应用范围为从知识产权保护和装置认证到密钥交换。下面提出了包括在现场可编程门阵列上实现的混沌布尔网络的puf设计,混沌布尔网络能够在短至10纳秒(ns)内生成质询-响应对。与其他设计相比,每个质询都会收集多个响应位。这证明了熵随着网络大小的指数缩放。从puf设计中发现高程度的唯一性和可靠性,对于256节点网络,分别由μinter=0.41±0.02和μintra=0.02±0.01表征。进一步表明,布尔网络是混沌的并且可抵抗第三方机器学习攻击,同时展现出适度的温度变化,这促进商业使用。[0077]下面描述的电路设计是在可市售的现成硬件上建置的具有多个响应位的唯一的已知强puf。puf是非常紧凑的混沌电路,其中初始条件由质询位串设置。响应位串是通过在其初始瞬态期间(通常在10ns内)读出电路的状态而生成。具体来说,电路设计是在现场可编程门阵列(fpga)上实现的混合布尔网络(hbn)。puf特性源于布线和逻辑元件的微小的fpga制造变化,在不同fpga之间进行比较时,这些变化会改变hbn动态,从而改变其作为puf的质询响应行为。此外,非线性和混沌动态与熵随着网络大小的指数缩放相结合似乎会导致对机器学习攻击的适应。最后,本公开设想通过让电路在瞬态行为之后继续很好地演变到混沌状态,电路设计可以兼作真正的硬件随机数发生器(hrng)。[0078]puf设计[0079]下面描述的是不同类型网络的定义以及之前在用于随机数生成的类似设计的系统上的工作。[0080]混合布尔网络和随机数生成[0081]布尔网络是连接的节点的集合,每个节点都处于状态0或1。每个节点的状态由布尔函数确定,所述函数将连接到其的所有节点的状态作为输入,并输出该节点的新状态。自治布尔网络(abn)是无视外部时钟来进行功能更新的布尔网络:其动态发生的速度与物理衬底允许的一样快。abn动态对沿网络链路的传播速度的变化以及每个节点的上升和下降时间的变化非常敏感,使其成为puf部件的很有吸引力的候选者。这与时钟布尔网络(诸如用软件实现的网络)形成对比,时钟布尔网络使用全局时钟同步更新所有节点状态。混合布尔网络(hbn)包含时钟和无时钟部件。[0082]如rosin研究的[参见d.rosin.ultra-fastphysicalgenerationofrandomnumbersusinghybridbooleannetworks.indynamicsofcomplexautonomousbooleannetworks,pages57-79.springer,2015;d.rosinetal.ultrafastphysicalgenerationofrandomnumbersusinghybridbooleannetworks.physicalreviewe,87(4):040902,2013],在现场可编程门阵列(fpga)上实现的hbn在用于随机数生成时可以用于产生极高的随机位速率。这对许多安全通信协议都很有用,包括流行的rivest-shamir-adleman密码系统[参见j.jonssonandb.kaliski.public-keycryptographystandards(pkcs)#1:rsacryptographyspecificationsversion2.1.technicalreport,2003],所述密码系统依赖于生成随机数来加密安全数据。尽可能快地生成随机数通过提高可以对数据加密的速率并减少必须存储加密密钥的时间来提供安全优势。[0083]rosin的结构在本文中称为hbn-rng,被设计成在fpga上创建混沌物理系统,所述混沌物理系统的动态快速地接近硬件允许的最大频率。hbn-rng在图6a中示出。图6b至图6d示出了图6a所示的hbn-rng的部件。该速率由fpga上的逻辑元件(le)的有限上升时间和下降时间的倒数给出,这些时间因fpga和le而异。对于alteracycloneivfpga,上升时间和下降时间大约是0.27±0.01ns[参见d.rosinetal.ultrafastphysicalgenerationofrandomnumbersusinghybridbooleannetworks.physicalreviewe,87(4):040902,2013],为了方便起见,这个量被近似定义为τ/2,使得τ≈0.5ns。这给出了大约1ghz的最大频率。这样的速率允许hbn-rng比同步的时钟系统更快地生成随机数,同步的时钟系统具有更大的开销。hbn-rng还被设计为展现出自激,并且不会偏向逻辑高或低。[0084]如图6a至图6d所示,hbn-rng由n个节点组成的环形成,其中每个节点与其自身及其两个邻居耦合。节点(即,图6c所示的节点)中除了一个以外都执行3输入xor运算,对于奇数个真输入返回1,否则返回0。其中节点(即,图6b所示的节点)中的一个执行xnor运算,xor运算的逻辑非,这破坏了环的旋转对称性并迫使系统自激。现在参考图6d,hbn-rng的时钟部分包括由全局时钟604驱动的n位寄存器602,所述全局时钟记录四个abn节点在其上升沿的状态。所记录的位串然后通过最终的xor门606,之后被读出,如果传入的位串足够不相关,则这样会减少偏差。[0085]当在alteracycloneivfpga上实现时,hbn-rng中向混沌的转变发生在n=5时,超过该值时,网络对初始条件和le参数细节变得非常敏感。可以用并行运行的n=16个网络的128个副本实现高效的rng,从而产生12.8gbit/s的随机位速率。[0086]hbn-puf[0087]上面描述的物理随机数生成器在许多方面都是“类puf”的。首先,到节点的信号通路和输入阻抗的微小制造变化足以引起不同的混沌瞬态行为,这表明puf的唯一性。其次,图6a中所示的hbn-rng和类似的abn[参见o.d'huysetal.super-transientscalingintime-delayautonomousbooleannetworkmotifs.chaos:aninterdisciplinaryjournalofnonlinearscience,26(9):094810,2016]具有持续时间可能比网络的特性时间尺度长几个数量级的瞬态,网络的特性时间尺度是数百皮秒等级。这表明了瞬态hbn响应的稳定性窗口,其中网络状态在此处描述的意义上是可靠的,同时保留了有关上述物理细节的重要信息。[0088]考虑到这些因素,可以修改hbn-rng方案以充当hbn-puf,如图6e所示。特定地说,与图6a所示的hbn-rng相比,进行了以下改变:[0089]用xorle608和多路复用器610替换每个节点,所述多路复用器将abn的初始状态设置为特定的n位串(质询),如图6f所示;以及[0090]使用n位寄存器612以与其动态相当的速率捕获网络的时间序列,然后使用全局时钟614读出所述时间序列并选择(以下面定义的方式)来自瞬态的n位响应,如图6g所示。[0091]第一个变化是通过移除xnor节点使网络变得可质询并防止从全0状态自激。质询c被定义为根据节点的一些任意但固定的标记来设置abn的初始状态的n位二进制串(本文中也称为“质询位串”)。在数学上,由方程(1)示出:[0092]c=x(t=0),ꢀꢀꢀꢀ(1)[0093]对于时间t=0时abn的n位状态x(t)。通过将质询定义为abn的初始状态,获得脂数级增大的质询空间,其中可能的质询数量增加为2n。具体来说,有效质询的数量nvc被定义为长度为n的并非abn的稳态的所有可能位串。这意味着我们排除了所有n的全0或全1状态,因为异步3输入xor在任何一种情况下都保持静态。类似地,对于偶数n,具有交替的0和1的状态被排除在外。因此,有效质询的数量由方程(2)给出:[0094][0095]第二个变化是捕获abn的瞬态行为,其中其同时是最可靠且唯一的。这是fpga制造变化将网络与其初始状态充分去相关以充当电路的“指纹”的时间点。形式上,通过将abn的初始状态设置为c并且然后允许其在行为仍处于瞬态阶段时在短时间内演变来对hbn-puf进行质询。然后通过评估hbn-puf的逐位布尔导数来从abn时间序列中选择hbn-puf对质询c的n位响应r,所述响应被定义为方程(3):[0096][0097]其中xor[.,.]是逐位xor函数并且|用于表示特定值下的评估。如下文所述,时间t≥τ是在应用质询之后存储abn的记录时间。最佳时间topt是瞬态中的布尔导数状态的时间序列中的使唯一性和可靠性最大化的时间,如通过下述的优化例程来选择。选择使用布尔导数是受到用于减少上述hbn-rng的输出位串中的偏差的xor过程启发。最后,每次质询读取的位的数目是n,因此设计中的可提取位可以潜在地缩放为n2n,从而产生强的puf。[0098]abn演化的时间序列收集如下。首先在t=0将abn设置为c,随后将reset位翻转为0,从而允许abn演变。然后通过沿着延迟线传递reset信号来在τ≈0.5ns间隔中自主地记录abn的动态。延迟线由连续的反相门对组成,每一对使reset信号大致延迟τ。在每次延迟之后,网络中的所有节点在该时间的状态都被放在寄存器中,然后稍后使用全局时钟来推送到存储器中。这个过程确保了abn的动态在与其演变相当的时间尺度上被捕获,因为延迟线中使用的反相门对和abn中的节点的le均接近于τ,尽管各自因制造差异而稍有不同。[0099]实验程序[0100]hbn-puf是通过将设计编码为硬件编程语言(例如,verilog硬件描述语言(hdl))并且使用编译器(例如,来自加利福尼亚州圣克拉拉的intel公司的quartusii计算机辅助设计(cad)软件)来编译代码而创建,其中放置和布线是通过其优化程序自动地选择。然后用相同的.sof文件来单独地对n芯片=10编程。每个芯片是来自台湾新竹的terasic公司的de10-nano片上系统(soc),所述片上系统托管来自加利福尼亚圣克拉拉的intel公司的cyclonev5cseba6u23i7fpga。这确保每个fpga在布局和设计两者中例示了本文所述的hbn-puf的相同副本(例如,如图6e中所示),这意味着一个puf实例与另一个puf实例的唯一变化是由于fpga制造的变化所致。[0101]使用自定义python脚本,将ndistinct唯一且随机选择的有效质询加载到每个芯片的板上存储器上并且用于设置hbn的初始状态。然后,网络在瞬态混沌阶段期间演变一小段时间,将时间序列保存到存储器,并且将puf重置为下一个质询。[0102]重复整个过程nquery次,使得每个芯片的所应用的质询的总数等于ndistinct×nquery。如下所述,执行多数表决,在这种情况下,对给定质询的响应被视为对同一质询的nvotes=25个响应中最常观察到的位。这样,应用质询的次数为nquery=nvotes×nrepeat并且投票后对该质询的响应次数为nrepeat,使得crp的总数为ndistinct≈nrepeat。然后读出时间序列的数据并将其用于下面描述的分析。[0103]装置统计数据[0104]下面定义和评估了跨多个芯片和针对不同网络大小的puf设计的唯一性和可靠性的标准度量。发现了与其他最先进的puf相当的一致性能。还示出了表明hbn-puf可以兼作硬件随机数发生器的结果。[0105]
背景技术
:[0106]设是一个特定的puf实例p,属于遵循上述设计的所有puf实例的集合。响应r是从puf实例p的所有可能的物理状态的集合到长度n的所有二进制串(表示为{0,1}n)的集合的随机可变映射。[0107]具体来说,响应将由质询c导致的puf实例p的特定状态视为输入。逐个地表达元素,这个映射是sp,c→r(sp,c)。为了简化符号表示,响应r(p,c)被写成puf实例p和应用于它的质询c的函数,默认情况下上面给出的形式定义是成立的。[0108]通过研究各种p和c的r的分布来表征的可靠性和唯一性;换句话说,通过逐个质询地比较来自单独和不同的实例的响应来研究设计如何作为puf执行。为此,定义了以下标准度量。[0109]装置内和装置间定义[0110]考虑来自相同质询串ci的两个不同的响应。这些响应可能是由于将相同的质询串应用于相同的puf实例两个不同次数ci,j和ci,k而产生,或者它们可能是由于将质询应用于两个不同的puf实例恰好一次pl和pm。第一种情况将用于衡量可靠性:理想情况下,单个puf实例在面临相同质询时应产生相同的响应。第二种情况将用于衡量唯一性:两个不同的puf实例应对相同的质询给出响应,在比较时,这些响应看起来是随机且不相关的。为清楚起见,总结了这些指标:[0111]i∈[0,ndistinct]:不同的质询;[0112]j,k∈[0,nrepeat]:不同质询的单独应用;[0113]l,m∈[0,nchips]:单独的puf实例。[0114]如果将每个响应视为一个n位串,则两个响应之间的不同位的分数如方程(4)和(5)所示表示:[0115]rijk;l=d[r(pl,ci,j),r(pl,ci,k)]÷nꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(4)[0116]uilm;j=d[r(pl,ci,j),r(pm,ci,k)]÷n,ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(5)[0117]其中d[.,.]是汉明距离(两个n位二进制串之间的不同位的数目),rijk;l(助记词“可靠性”)是由于质询i的应用j和k导致的固定puf实例pl的响应之间的实例内(装置内或装置内)的分数汉明距离。同样,uilm;j(助记词“唯一性”)是由于质询i的固定应用j导致的puf实例pl和pm的响应之间的实例之间(装置内或装置内)的分数汉明距离。[0118]为了逐个质询地获得这些距离的分布,对用于构建它们的成对组合进行平均,然后对剩余的指标进一步平均以获得可靠性μintra和唯一性μinter的平均度量。具体来说,如果《.》(a,b),c表示成对组合(a,b)和剩余指标c的数量的平均值,则:[0119]μintra=《r》(j,k),l,i,ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(6)[0120]μinter=《u》(l,m),j,i·ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(7)[0121]为了衡量单个芯片的可靠性,不要对实例pl进行平均,使得每个芯片的平均可靠性为μintra;l=《r》(j,k),i。请注意,记录了表示网络的时间演变的n位串的时间序列,因此在每个时间点都存在上述度量。理想情况下,总是μintra=0并且μinter=0.5。实际上,情况并非如此,并且响应被选择为最大化δμ(t):=μinter(t)-μintra(t)的时间点topt,即,同时是最可靠和唯一的瞬态中的点。[0122]实验性装置内和装置间统计数据[0123]此处,我们呈现了对于n=16和n=256节点网络各自重复nrepeat=10次的ndistinct=100有效质询的结果。在图7a至图7d的左侧绘制了最不可靠和最可靠芯片《r》(j,k)的逐个质询的可靠性分布,其平均值是逐个芯片的平均可靠性μinter;l。在图7a至图7d的右侧绘制了逐个质询的可靠性和唯一性分布《r》(j,k),l和《u》(l,m),j,其平均值分别是μintraandμinter。[0124]从图7a和图7c中可以看出,对于所测试的网络大小,所有芯片在给定的不确定性内具有相同的可靠性,这意味着任何单个芯片与任何其他芯片一样可靠。从图7b和图7d中可以看出,对于每个网络大小,两个分布是紧密居中并且明确间隔开,其指示将一个puf实例的响应错误地归给另一个puf实例的概率接近于零(误报率低)。这意味着本文描述的hbn-puf(例如,如图6e所示)非常适合于认证目的。[0125]此外,我们看到μinter和μintra分别与其理想值0,5和0相差最多9%和2%。这些误差可通过标准方法进一步纠正,诸如:纠错算法、在登记期间将最不唯一和最不可靠的位制成表格并将它们从响应中删除,或者只是需要更多的响应,直到错误识别的概率接近零。这些方法中的每一种对于本文描述的hbn-puf都是实用的,因为针对每个质询非常快速地收集多个响应位,从而使认证任务比单个位的响应puf更简单和更安全。这是因为与猜测单个位相比,对手正确猜出例如n=256位响应的概率可以忽略不计,在这种情况下,认证将需要非常大量的质询。相反,与上述分布非常相似的分布仅使用少量质询获得,例如,ndistinct~10。[0126]随机数生成[0127]下文示出,hbn-puf响应的平均位值稍后展现出围绕0.5紧密居中的分布,表明了随机质量。考虑上文提出的n=256节点网络,并且设sijln为时间t≥topt时来自质询i、应用j和实例l的响应串s的第n个位。图8a和图8b绘制了对于n=256时间t=topt和t=2topt的s的分布及其平均值。[0128]从图8a和图8b中可见,数据呈现为几乎没有偏向0或1。本公开设想其他测试,诸如用nist统计套件[参见l.basshametal.sp800-22rev.laastatisticaltestsuiteforrandomandpseudorandomnumbergeneratorsforcryptographicapplications.nationalinstituteofstandardsandtechnology(nist),2010]可以作为用于验证硬件rng行为的下一个步骤来执行。[0129]熵分析[0130]在puf的安全性分析中,可提取的熵至关重要。该量最终与可靠性和唯一性都有关并且提供可以与puf实例安全地交换的信息量的上限[参见p.tuylsetal.information-theoreticsecurityanalysisofphysicaluncloneablefunctions.ininternationalconferenceonfinancialcryptographyanddatasecurity,pages141-155.springer,2005]。很难直接估计可提取的熵,因为它由指数高维度的空间中的概率分布形成。下文描述了从有限数据估计熵的几种方法。[0131]该过程开始于假设本文描述的hbn-puf的响应中的位对之间的独立性(例如,如图6e所示)并计算各种网络大小n的最小熵。最小熵的计算随n亚指数地缩放,因此允许有效地估计大n装置的熵的上限。然后通过计算位对之间的经验互信息来完善这个假设,这些信息已被证明存在于其他puf中[参见r.maes.physicallyunclonablefunctions.springer,2016]。这会在低n装置中产生更准确的熵估计。结果被解释为本文所述的hbn-puf的熵的下限。提出了第三熵度量,其更紧密地作为低n装置的上限。另外,总结了这些结果,找到了熵随网络大小的指数缩放。下文中,所有对数都是以2为底,并且在topt选择响应。[0132]最小熵[0133]随机变量x的最小熵被定义为方程(8):[0134]hmin(x)=log(pmax(x)),ꢀꢀꢀꢀ(8)[0135]其中pmax(x)是最可能得到的概率。如果x=(x1,x2,...,xn)是n个独立随机变量的向量,则最小熵被定义为方程(9):[0136][0137]在具有多个质询和大响应空间的强puf的情况下,需要对响应位进行排序以理解熵计算。自然排序是将第i个节点对第j个质询的响应定义为xjn+i,其中质询按字典顺序排列。对于n=3的简单情况,这在表1中进行了说明。此处只有6个质询,因为忽略了不重要的全0和全1质询。表1示出了n=3的响应位排序的示例,其中总共有3x6=18位。[0138]表1[0139][0140]假设xi的独立性,本文所述的hbn-puf的最小熵可以容易地用方程式(9)根据pmax(xi)的经验估计来计算[参见d.holcombetal.power-upsramstateasanidentifyingfingerprintandsourceoftruerandomnumbers.ieeetransactionsoncomputers,58(9):1198-1210,2009;p.simonsetal.buskeeperpufs,apromisingalternativetodflip-floppufs.in2012ieeeinternationalsymposiumonhardware-orientedsecurityandtrust,pages7-12.ieee,2012]。对于每个xi,pmax(xi)的估计只是观察到的0或1频率,以较大者为准。为了将熵计算置于上下文中,计算被呈现为最佳情况的一部分。如果所有xi都是独立且完全无偏差的,即,每个xi为0或1的可能性相等,则最小熵将等于有效质询数目nvc的n倍。因此,最小熵密度如方程(10)所示定义:[0141]ρmin=hmin/(nnυc).ꢀꢀꢀꢀ(10)[0142]由于质询空间nvc的指数缩放,无法使用n>8的所有可能的有效质询来测量这些值,尽管如下所述研究了低n的完整质询空间。因此,假设随机选择的质询形成代表性样本并乘以未使用空间的分数以获得hmin。表2呈现了n=8、16、32、64的最小熵(hmin)和最小熵密度(ρmin),其中nchips=10,ndisttnct=100,并且nrepeat=100。[0143]表2[0144][0145][0146]从表2中可以看出,hbn-puf的最小熵大约为全最小熵的50%。为了进行比较,各种标准电子puf的最小熵在51%与99%之间,参见,例如参考文献[参见r.maes.physicallyunclonablefunctions.springer,2016]以进行更完整的比较。因此,hbn-puf具有与最先进技术相当的最小熵密度。最小熵的另一种解释是,如果对手只知道xi的偏差,则它等于可以安全交换的位的数目。从表2中可以看出,可以交换5.6×1022位的信息,以对抗天真的对手。该hbn-puf仅使用3×64=192个le,与其他基于fpga的puf设计相比非常紧凑,因此可以通过增加环的大小而轻松地增加熵。[0147]联合熵[0148]如上所述,假设xi是独立的,但并非必须如此。可能的情况是,某些位会揭示有关其他位的信息,从而减少熵。首先通过计算由方程(11)定义的互信息来研究位对之间的这些相关性:283-301.springer,2012]。[0173]熵总结[0174]上文描述了三种不同的统计测试来估计hbn-puf中的熵。其中两个测试是计算密集型的并且仅对大小为n=3-8的hbn-puf执行。一种测试更容易扩展,其针对高达64的n进行评估。为了将这些估计更好地理解为n和资源规模的函数,这三个估计示出于图10中。[0175]hctw估计得到最大的熵,接着是hmin和hjoint。这是预料之中的,因为hctw是上限估计,而hjoint等于hmin,惩罚项由互信息确定。尽管如此,所有三个估计都相当接近,尤其是在图10中的尺度上。此外,hmin的函数形式在对数对数尺度上是凸的,这表明随着n呈指数增长。[0176]这些结果表明,本文所述的hbn-puf(例如,如图6e所示)不仅在其质询空间在资源大小方面呈指数级大的意义上是强的,而且其熵也呈指数级大。这是重要的区别,因为对于大多数安全性应用来说,对手知道的质询-响应对是没有用的。许多先前报道的强puf已明确表明容易受到模型构建攻击[参见u.rührmairetal.modelingattacksonphysicalunclonablefunctions.inproceedingsofthe17thacmconferenceoncomputerandcommunicationssecurity,pages237-249.acm,2010]。[0177]机器学习的混沌和弹性[0178]混沌系统由其对初始条件的极端敏感性来定义。对混沌系统的轻微扰动将导致大相径庭的长期行为。出于这个原因,许多机器学习平台难以预测混沌系统超过被称为李雅普诺夫时间的特性时间尺度的行为,该结果扩展到对puf的机器学习攻击[参见l.liuetal.lorenzchaoticsystem-basedcarbonnanotubephysicalunclonablefunctions.ieeetransactionsoncomputer-aideddesignofintegratedcircuitsandsystems,37(7):1408-1421,2018]。本文描述的hbn-puf的李雅普诺夫时间(例如,如图6e所示)是通过实验和模拟计算的,表明其是混沌的。下文提出来自pufmeter的结果[参见f.ganjietal.pufmeterapropertytestingtoolforassessingtherobustnessofphysicallyunclonablefunctionstomachinelearningattacks.ieeeaccess,7∶122513-122521,2019]。pufmeter是第三方puf特定的机器学习平台,其无法学习本文描述的hbn-puf的行为。[0179]李雅普诺夫指数[0180]系统的李雅普诺夫指数是相空间中的两个邻近点发散速率的度量。设z(t)是作为时间的函数的两条轨迹的分离,并设z(0)很小。然后|z(t)≈|z(0)|expλt,其中λ是李雅普诺夫指数。λ的光谱是针对不同取向的初始分离获得的。然而,最大λ通常会随着时间占主导地位,因此其被用作混沌的指标:如果最大λ为正,则轨迹将呈指数发散,并且系统通常被称为混沌。[0181]最大李雅普诺夫指数计算[0182]最大李雅普诺夫指数是通过将[r.zhangetal.booleanchaos.physicalreviewe,80(4),oct2009]的方法扩展到n位响应而计算。此处,对同一质询的两个n位响应x(t)和y(t)的时间序列之间的布尔距离由方程(13)定义:[0183][0184]其中t是固定长度的窗口,并且t0是d=0时的第一时间,即,t0是两个时间序列在长度t的窗口内相差至少1个位的第一时间。请注意,因为d(t)是相空间中分离的布尔度量,所以其线性区域中随时间变化的对数的平均值是λ。[0185]因此,对给定质询的重复响应的所有成对组合计算每个时间序列段的布尔距离的平均对数,并再次对所有质询进行平均,以获得遵循上述指标约定的《ln(d(t))》(j,k),i,或简称为<lnd>。通过将<lnd>对t拟合到一条直线,获得最大李雅普诺夫指数λ的估计值。这是通过实验和使用数学模型模拟来自相同质询的响应两者来完成的。[0186]puf的数学模型[0187]使用由方程(14)给出的耦合一阶微分方程组来对puf动态建模:[0188][0189]其中xi(t)是节点i在时间t的连续状态,取值介于0和1之间,τi是该节点的特性上升/下降时间,f是3输入xor函数的连续版本,并且ng(i)是连接到节点i的所有节点(即,其邻居)的列表。此处,ng(i)限于自身和其在环中的两个邻居,并且f由方程(15)定义:[0190]f(x,y,z)=θ(1+tanh(ax(x-0.5)tanh(ay(y=0.5))tanh(az(z-0.5))),ꢀꢀꢀꢀ(15)[0191]其中θ(w)是表示连续信号到布尔值的转变的阈值函数。θ(w)由方程(16)定义:[0192]θ(w)=(1+tanh(aw(w-0.5))/2,ꢀꢀꢀꢀ(16)[0193]其中ai是“挤压”参数,此处全部选择为a=20,并且所有节点选择了τi=0.5。初始状态被设置为质询值,其中扰动被选择为在[0,0.05]之间以防止相同的模拟。然后对所述质询值进行数值积分、抽样和布尔化以匹配它们的实验对应物。然后为每个质询值计算李雅普诺夫指数,如图11所示。[0194]最大李雅普诺夫指数结果[0195]从图11中可以看出,对于实验和模型数据,λ>0。这表明实验电路及其理论模型两者都展现出混沌。另外,李雅普诺夫时间tl=1/λ与最佳响应读出时间topt相当,这意味着最佳响应时间跟随向混沌的转变。[0196]使用pufmeter进行机器学习攻击[0197]pufmeter[参见f.ganjietal.pufmeterapropertytestingtoolforassessingtherobustnessofphysicallyunclonablefunctionstomachinelearningattacks.ieeeaccess,7:122513-122521,2019]是最近设计的用于评估puf的安全性的第三方机器学习平台。它使用可能近似正确的学习和k-junta函数来尝试学习给定puf的质询-响应行为,并且指示puf在理论上是否容易受到各种类型的攻击。由于pufmeter搜索整个有效质询空间nvc的事实,测试此处限于n=16节点网络。此外,pufmeter背后的理论基于单个位的响应。出于这个原因,pufmeter用于测试响应的单个位,以及我们整个响应串的xor。这些结果呈现在表5中。[0198]表5示出了使用pufmeter的n=16节点puf机器学习攻击结果,其中内部参数δ=0.01和e=0.05决定了分析的概率阈值。结果κ=0表明pufmeter无法对本文所述的hbn-puf进行建模(例如,如图6e所示)。[0199]表5[0200][0201]此处,κ是可由pufmeter使用来预测对给定质询的响应的布尔变量的最小数量;由于κ=0,pufmeter无法对hbn-puf的行为进行建模。噪声上限、平均灵敏度和噪声灵敏度用于衡量预计可能发生攻击类型的理论界限。根据这些项,pufmeter表明hbn-puf可能容易受到基于傅立叶的攻击。[0202]结合指数熵缩放和混沌非线性动态,pufmeter无法对本文所述的hbn-puf进行建模表明hbn-puf的行为可能对机器学习攻击具有弹性。[0203]温度变化[0204]在比较不同环境条件下或长运行时间内的puf时,温度变化是一个重要的实际问题[参见s.matheweta..16.2a0.19pj/bpvt-variation-toleranthybridphysicallyunclonablefunctioncircuitfor100%stablesecurekeygenerationin22nmcmos.in2014ieeeinternationalsolid-statecircuitsconferencedigestoftechnicalpapers(isscc),pages278-279.ieee,2014]。通过将nchips=10de-10-nano′s加载到能够在大范围内控制湿度和温度条件的环境测试室设施中,针对两种网络大小,n=16和n=256,对本文所述的hbn-puf的温度变化进行评估。[0205]对于这些测试,首先将温度升高到55℃,并将湿度吹扫到<5%,以去除多余的水分并防止在较低温度下凝结。接下来,温度以10℃的增量降低到最终温度t=15℃。在每个温度下,通常在10分钟内,允许腔室达到平衡,如数字显示器所指示。然后,对板进行查询,其中ndistinct=50并且nrepeat=50个质询。[0206]上述度量δμ(t)=μinter(t)-μintra(t)是针对两种网络大小在每个温度下计算的。该数量表明当在相同温度下与其他puf相比时每个puf的性能。另外,在每个温度下,计算在25℃下hbn-puf相对于自身的偏差。这是表示为μintra;25℃的量。该测量等同于将单个芯片视为由不同的实例组成-每个温度一个实例。其是在每个温度下通过将响应与在25℃下生成的响应进行比较,然后对所有质询和所有芯片(单个芯片展现出相似的值)进行平均来计算。这些绘图在图12a至图12d中呈现为t(在登记响应之后反相门的数目)的函数。每条曲线都是一个单独的温度。[0207]如从图12a和图12c中可以看出,对于两种网络大小,观察到最佳测量时间topt和性能度量δμ随温度变化保持不变,指示hbn-puf实例在相同的温度下在彼此进行比较时表现同样出色。[0208]从图12b和图12d可以看出,给定hbn-puf实例的响应在温度改变的早期与其自身没有显著变化。然而,随着时间的推移,与室温下的响应相比,给定实例的响应开始发散,对于上面示出的256节点网络显然是这样的。这可以理解为热波动翻转单个位的结果,随着时间的推移,热波动会继续以指数方式扰乱系统。根据应用,可能很有用的是,存储在不同时间或温度下的响应的类别并在响应中指示要与哪个类别进行比较。[0209]本公开设想使用穆勒门或c门来提高温度稳定性。众所周知,穆勒门或c门可用于异步puf中的温度稳定[参见s.gujja.temperaturevariationeffectsonasynchronouspufdesignusingfpgas.universityoftoledo,2014]。因此,本文所述的hbn-puf可以被修改为包括用于稳定与热波动相关联的单个位翻转的穆勒门。其他潜在的温度稳定技术包括关于温度来优化fpga上puf的布局和合成,以及本文所述的后处理纠错方案。[0210]结论[0211]上述结果表明,hbn-puf展现出强的可靠性和唯一性度量,其中装置间和装置内统计数据接近于理想值并且具有紧密分布。这表明hbn-puf可用于装置认证目的。另外,凭借其n位响应,与单个位的响应puf相比,hbn-puf需要更少的质询用于认证。结合质询空间的大小随网络大小呈指数增长,这使得hbn-puf对认证和安全性都很有吸引力,因为对于例如n=256节点网络,查询每个质询所需的时间比宇宙的生命周期更长,即使以纳秒间隔。[0212]上面的结果还表明,各种熵估计表明hbn-puf熵随网络大小呈指数缩放,与其他puf设计相比,得到更多的熵并使用更少的硬件。这意味着由数百个le构建的hbn-puf可以使用可市售的fpga有效地在其物理结构中存储数万亿个或更多个独立的加密密钥,所述fpga具有用于比此处考虑的设计更大的设计的存储器,例如,n=1024节点网络在存储器限制内很容易实现。[0213]此外,与诸如环形振荡器的类似的puf相比,hbn-puf似乎展现出混沌动态和机器学习的弹性。[0214]尽管已经用专用于结构特征和/或方法论行为的语言对主题进行了描述,但应当理解,所附权利要求中定义的主题不一定限制于上文所描述的特定特征或行为。相反,上文所描述的特定特征和行为是作为实现权利要求的示例形式而公开。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1