具有物理不可克隆功能的加密设备的制作方法

文档序号:14187205阅读:228来源:国知局

本发明涉及加密设备、加密方法、计算机程序以及计算机可读介质。



背景技术:

物理不可克隆功能采用制造变化来导出数字标识符。该数字标识符因此被绑定到物理介质。因为物理不可克隆功能取决于随机过程变化,所以易于创建puf,但是即使不是完全不可能也非常难于创建产生特定预定标识符的puf。制造变化导致了例如存储器元件中的不同物理特性。物理特性可以包括:掺杂浓度、氧化层厚度、沟道长度、结构宽度(例如金属层的结构宽度)、寄生现象(例如电阻、电容)等。当多次制造数字电路设计时,这些物理特性会稍微变化并且它们共同引起ic元件(例如存储器元件)的行为在一些情况下表现不同。例如,启动行为是由物理特性中的制造变化确定的。

puf产生设备本征响应和不可预测的响应的事实使得它们成为由其生成加密密钥的非常合适的候选。与传统非易失性密钥存储器相对比,基于puf的密钥不以数字格式存储,而是源于puf的物理结构中的小的随机偏差。此外,密钥本身的生成不取决于外部提供的随机性——其可能具有低质量,而是使用设备本身的高熵本征随机性。这些因素的组合可以形成针对加密密钥存储高度安全的解决方案。

使用puf,可以规避对存储密钥的安全存储器的需要。此外,puf提供了防止通过逆向工程获得加密密钥的恶意尝试的自然保护,这是因为在尝试期间对puf造成的损坏很可能改变数字标识符。优选地,所述数字标识符对于其内嵌入物理不可克隆功能的电子设备是唯一的。

例如,已经观察到,一些存储器元件(例如sram)的启动行为展示像puf那样的行为。当这样的存储器被加电时,它倾向于含有内容,即包括数据值的序列,该内容取决于组成该存储器的部件(例如门或晶体管)的至少部分随机的物理特性,例如它们相对于彼此的物理布置。如果存储器被加电多次,则它将大比例地含有相同内容。

puf提供了不可预测的响应和设备唯一的响应,但由于它们的物理起源,这些响应可能受测量噪声和环境影响。另一方面,加密密钥需要完全可靠并且具有全熵。为了弥补这一缺陷,需要对puf响应进行一定量的后期处理。解决噪声的一种方法是使用所谓的模糊提取器(fuzzyextractor)。模糊提取器能够将“噪声”随机值变换成可靠的密钥。在此过程中可以使用误差校正程序来校正这些波动,并且确保每次使用puf时导出相同的数字标识符。误差校正程序使用所谓的辅助数据(helperdata)。模糊提取器可以包括两个阶段。在最初的登记(enrollment)阶段中,从puf响应导出加密密钥。在登记过程中,产生用于puf响应的辅助数据。稍后在实地,重新构建阶段重新评估puf响应,并且使用来自登记阶段的辅助数据重新构建相同的密钥。因此,在登记阶段和重新构建阶段中间需要存储辅助数据。



技术实现要素:

在这方面对模糊提取器的期望属性是辅助数据不包含关于导出的密钥的信息。换句话说,辅助数据不包含敏感信息,并且不能够被用来攻击生成的密钥。因此,辅助数据可以被存储和公开地通信,并且因为将需要直接存储密钥而不需要防御敌手。

模糊提取器的操作可以是基于使用误差校正代码。通常,误差校正代码是分组代码(blockcode)并且是线性的,例如是线性误差校正分组代码。在登记期间,模糊提取器计算用于puf响应的辅助数据,例如通过计算puf响应比特上的若干奇偶校验关系并且在辅助数据中公开这些关系。可以计算辅助数据,例如通过计算一个或多个代码字和puf响应之间的差异。

由于此公开内容,可以显著降低puf响应的不可预测性(如通过其熵测量的)。发明人发现,如果puf具有高偏置(bias),则通过辅助数据造成的关于密钥的信息泄漏是非零的。事实上,如果puf具有非常高的偏置,则辅助数据甚至可以揭示足够的关于密钥的信息,从而允许攻击者完全重新构建密钥。

一个比特串中与纯随机的偏差,特别是偏置,可以通过使用被设计检测该偏差的统计测试来检测。然而,puf响应是敏感数据,原因是它们被用来生成敏感信息,诸如秘密密钥和/或随机种子。对秘密数据(诸如puf响应)的任何操纵可导致额外的信息泄漏。具体地,在处理秘密数据的任何时间可能通过所谓的侧信道(诸如功率消耗、电磁辐射等)泄漏信息。因此期望在检测puf的异常行为时避免引入对puf响应的附加操纵。

提供了一种电子加密设备(100),包括

-物理不可克隆功能(puf)(110),被布置成在第一阶段期间产生第一噪声比特串(112),

-辅助数据创建单元(130),被布置成在所述第一阶段期间由所述第一噪声比特串生成辅助数据,所述辅助数据允许由所述辅助数据和在稍后的第二阶段期间由所述puf产生的第二噪声比特串(114)重新构建所述第一噪声比特串(112),

-统计单元(120),被布置成执行用于验证所述物理不可克隆功能正确起作用的统计测试,所述统计测试使用所述辅助数据计算所述物理不可克隆功能的统计参数,如果所述统计参数满足所述统计测试的标准,则所述统计测试确定正确起作用。

出于对所述puf执行测试的目的,可以专门创建所述辅助数据。在该情况下,可以在已经执行了所述测试之后丢弃所述辅助数据。这样的健康测试在高安全性应用中是期望的,在高安全性应用中,puf的健康被监测。万一所述puf的状况变坏,特别是如果健康下降到阈值以下,则可能存在所述puf将在将来发生故障的风险。使用该测试,所述设备可以采取适当动作,例如警告所述设备的使用者,例如以替换设备。

出于此目的产生的辅助数据与用来登记所述设备的辅助数据属于相同的种类,并且将允许重新构建所述第一噪声比特串,即使该步骤从未被执行。这样的辅助数据被设计成公开数据,因此对所述辅助数据执行统计测试不泄漏信息,至少不多于在规则的辅助数据生成期间泄漏的信息。出于测试目的生成的辅助数据仅可以使用与为了登记生成的辅助数据不同的误差校正代码,例如第一个可以仅使用一个重复代码,后面的可以使用一个更精巧的代码,例如可能使用一个重复代码作为内代码的级联代码。

用于验证所述puf的质量的特别重要的时刻是在登记期间。在登记阶段期间,生成辅助数据,该辅助数据稍后被用来由其导出加密密钥。此外,此辅助数据允许重新构建所述第一噪声比特串,尽管某个实施方案实际上不完全为了重新构建所述第一比特串,而是可以仅重新构建登记代码字(例如参见本文)。在一个实施方案中,所述第一阶段是所谓的登记阶段且所述第二阶段是所谓的重新构建阶段。

本发明的一个方面是一种被布置成确定加密密钥的电子加密设备。所述加密设备被布置成用于登记阶段和稍后的重新构建阶段。所述加密设备包括:

-物理不可克隆功能,被布置成在所述登记阶段期间产生第一噪声比特串并且在所述重新构建阶段期间产生第二噪声比特串,

-辅助数据创建单元,被布置成在所述登记阶段期间由所述第一噪声比特串生成辅助数据,以在所述重新构建阶段期间由所述第二噪声比特串确定所述加密密钥,

-统计单元,被布置成执行用于验证所述物理不可克隆功能正确起作用的统计测试,所述统计测试使用所述辅助数据计算所述物理不可克隆功能的统计参数,如果计算的参数满足所述统计测试的标准,则所述统计测试确定正确起作用。

所述统计单元被布置成使用辅助数据来执行所述测试。辅助数据通常不被视为秘密数据。因此,在统计测试期间使用辅助数据不额外泄漏敏感信息。

在一个实施方案中,所述统计测试包括第一统计测试,所述统计单元被布置成在所述登记阶段期间对由所述第一噪声比特串生成的辅助数据执行所述第一统计测试。在所述登记阶段期间,所述辅助数据已经由所述第一噪声比特串生成。执行统计测试以检测异常辅助数据从而间接检测了异常puf。在所述重新构建阶段期间,相同的辅助数据是可用的,此外一个附加的puf响应:第二噪声比特串是可用的。在一个实施方案中,所述统计测试包括第二统计测试,所述统计单元被布置成在所述重新构建阶段期间使用在所述登记阶段期间生成的辅助数据来执行所述第二统计测试。

所述加密设备是电子设备。例如,所述加密设备可以是移动电子设备,诸如移动电话或平板计算机。所述加密设备可以是智能卡、密钥链(keyfob)或其他便携式安全设备。所述加密设备可以是机顶盒。

本发明的又一个方面涉及一种电子加密方法。此外,可以在登记阶段和重新构建阶段期间应用所述加密方法。例如,在一个实施方案中是一种包括登记阶段和稍后的重新构建阶段的电子加密方法,

-所述登记阶段包括

-利用所述物理不可克隆功能(puf)(110)产生第一噪声比特串(112),

-在所述登记阶段期间由所述第一噪声比特串生成辅助数据,所述辅助数据被布置成在所述重新构建阶段期间由第二噪声比特串(114)确定加密密钥,

-所述重新构建阶段包括

-利用物理不可克隆功能(puf)(110)产生第二噪声比特串(114)并且确定加密密钥,

其中

-所述登记阶段或所述重新构建阶段包括

-执行用于验证所述物理不可克隆功能正确起作用的统计测试,所述统计测试使用所述辅助数据来计算所述物理不可克隆功能的统计参数,如果所述统计参数满足所述统计测试的标准,则所述统计测试确定正确起作用。

本文所描述的加密设备和方法可以被应用到广泛的实际应用中。这样的实际应用包括通过使用加密密钥和/或随机种子的加密算法对数据进行机密性和真实性保护。应用包括例如个人数据的保护、银行应用、通信保护、数字版权管理应用等。随机数的加密应用包括密钥协商协议、许诺、签名方案等。

根据本发明的方法可以被实施在计算机上作为计算机实施的方法,或可以被实施在专用硬件中或可以被实施在二者的组合中。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的实例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,该计算机程序产品包括存储在计算机可读介质上的非暂时性程序代码装置,用于当在计算机上执行所述程序产品时执行根据本发明的方法。

在一个优选地实施方案中,该计算机程序包括计算机程序代码装置,当该计算机程序在计算机上运行时,该计算机程序代码装置适于执行根据本发明的方法的所有步骤。优选地,该计算机程序实现在计算机可读介质上。

本发明的另一方面提供了使计算机程序可供下载的方法。当将计算机程序上传到例如apple的appstore、google的playstore或microsoft的windowsstore中时,并且当该计算机程序可从这样的商店下载时,使用此方面。

附图说明

将参考附图仅以实施例的方式描述本发明的其他细节、方面和实施方案。为了简单明了目的例示了图中的元件,并且所述元件不必按比例绘制。在图中,与已经描述的元件对应的元件可以具有相同的附图标记。在附图中,

图1示意性地示出了加密设备的一个实施方案的一个实施例,

图2示意性地例示了第一统计测试的一个实施例,

图3a示意性地示出了第一统计测试的一个实施例的流程图,

图3b示出了第一统计测试的一个实施例的失败率曲线,

图4a示意性地例示了第二统计测试的一个实施例,

图4b示意性地例示了误差矢量的一个实施例,

图5示意性地示出了加密设备的一个实施方案的一个实施例,

图6a示意性地示出了第二统计测试的一个实施例的流程图,

图6b示出了第二统计测试的一个实施例的失败率曲线,

图7示意性地示出了加密方法的一个实施例的流程图,

图8a示意性地示出了根据一个实施方案的具有包括计算机程序的可写部分的计算机可读介质,

图8b示意性地示出了根据一个实施方案的处理器系统的表示。

图1、图2、图4a、图4b以及图5中的附图标记的列表:

100加密设备

110物理不可克隆功能(puf)

112第一噪声比特串

114第二噪声比特串

116又一个噪声比特串

120统计单元

122第一统计测试

124第二统计测试

130辅助数据创建单元

132辅助数据存储器

140随机种子生成单元

144辅助数据

150标准化器

152误差校正单元

154密钥导出单元

200第一噪声比特串

201-205第一噪声比特串的分组

210重复代码字序列

211-215重复代码字

220辅助数据

221-226第一噪声比特串的掩蔽分组

230汉明权重序列

231-236汉明权重

240计数器单元

242计数

500第二噪声比特串

510第一噪声比特串

520误差矢量

521差异的游程

522非差异的游程

540计数器单元

542误差计数

具体实施方式

虽然本发明可能有许多不同形式的实施方案,但是附图中示出了并且将在本文中详细描述一个或多个具体实施方案;应理解,本公开内容应被认为是本发明的原理的例示,而不意在将本发明限于所示出的并且描述的具体实施方案。

在下文中,为了理解起见,在操作中描述了实施方案的元件。然而,很明显,相应的元件被布置成执行所描述的由它们执行的功能。

图1示意性地示出了加密设备100的一个实施方案的一个实施例。

加密设备100包括物理不可克隆功能(puf)110。加密设备100是被布置成由puf110的响应确定加密密钥的电子设备。

除了puf110之外,加密设备100还包括辅助数据创建单元130、辅助数据存储器132、标准化器150、误差校正单元152以及密钥导出单元154。这些单元协作以由puf110的噪声响应产生可再现的加密密钥。下文首先描述它们的功能。

puf、辅助数据以及密钥重新构建

加密设备100被布置成用于登记阶段和稍后的重新构建阶段。puf110被布置成在登记阶段期间产生第一噪声比特串112并且在重新构建阶段期间产生第二噪声比特串114。在可以重复多次的重新构建阶段期间,产生相同的加密密钥。在登记期间,也可以产生相同的加密密钥。

在登记阶段期间,产生使得能够重复相同地产生加密密钥的辅助数据144。加密设备100包括辅助数据创建单元130,该辅助数据创建单元130被布置成在登记阶段期间由第一噪声比特串112生成辅助数据144,以在重新构建阶段期间由第二噪声比特串114确定加密密钥。

随后产生的噪声比特串之间的改变量对于不同类型的puf是不同的;根据对于puf110类型典型的改变量,可以选择误差校正代码来校正此误差量。可以根据期望的密钥长度、puf的误差百分比和/或puf的偏置水平等来选择puf的噪声比特串的长度。

puf110可能需要一个电力循环,例如掉电之后加电以再次产生噪声比特串。加电信号可以被认作是询问(challenge)。对于基于puf的存储器,加电信号与该存储器中的地址结合可以被认作是询问。

在设备100中,puf110至少两次产生噪声比特串。一次在登记阶段期间,puf110产生第一噪声比特串。稍后在使用阶段期间puf110产生第二噪声比特串。所述第一噪声比特串和所述第二噪声比特串彼此足够接近,例如它们的差异的汉明权重小于一个阈值。

puf是随机功能,所述随机功能以如下的方式限制到物理设备:使得在不使用该物理设备来实际上评估该功能的情况下预测该功能的输出在计算上不可行。此外,因为puf是通过物理系统实现的,所以难以克隆。由不完全受控(即含有一些随机性)的生产过程生产的物理系统证明是puf的良好候选。在一个实施方案中,puf110且因此加密设备100可以是基于由puf110提供的响应以及由其导出的密钥而被唯一地标识的。密钥可以被用作标识设备的标识符。

puf的物理系统被设计成使得它以复杂的方式与激励相互作用并且导致唯一但不可预测的响应。puf的激励被称为询问。一些puf允许较大范围的不同询问,产生不同的响应。puf询问和对应的响应一起被称为询问-响应-对。然而,puf也可以具有单个询问。puf110可以是单询问puf。puf110也可以是多询问puf。在puf110是多询问puf的情况下,当产生噪声比特串特别是第一噪声比特串和第二噪声比特串时,用相同的询问或询问集合询问puf110。

合适的puf源由在加电时含有对存储器的标识有用的加电值的响应模式的电子易失性存储器形成,所述响应模式取决于存储器元件的物理特性。

用来唯一地标识设备的puf的一个已知的实例是所谓的srampuf,其是基于以下事实:当启动sram单元时,由于晶体管的阈值电压的变化——这些变化进而由于掺杂变化造成,sram单元以随机状态启动。当这被执行多次时,每个单元在大多数时间将以相同的状态启动。这些puf可以被实现在具有板上sram存储器的任何设备上。

表现出对于标识存储器足够稳定的随机启动行为的任何存储器被称为可询问的存储器。因为启动行为是随机的,所述两个不同的存储器的启动存储器模式将具有很大差异;因为启动行为是稳定的,所以同一存储器的两个启动存储器模式将具有很小差异。这样的存储器的实例是所提及的sram存储器单元以及像触发器(flip-flop)那样的存储器元件。实际上,可以使用包括多个反馈回路的任何类型的易失性存储器。此类srampuf被更详细地描述于专利出版物wo/2007/116325中。

第二类基于puf的sram可以由双端口ram构建。通过同时在两个端口上写入不同的信息,存储器单元进入未定义的状态并且表现出类似puf的行为。在wo2009024913中更详细地描述了此类puf。其他所谓的本征puf是基于延时现象,参见例如us20030204743。puf可以是通过在fpga上模拟sram存储器单元,例如通过交叉耦合的逆变器或锁存器来构建的,所谓的蝴蝶puf参见欧洲专利ep2191410b1和wo2011018414a2。puf110可以是包括多个总线保持器(例如wo2012069545中所描述的)或触发器(wo/2012/045627)的物理不可克隆功能。

有趣地,puf响应可以被用于两个不同的用途。一方面,通过使用辅助数据抑制噪声,puf响应可以被用来产生加密密钥。另一方面,可以通过从puf响应产生随机种子来利用噪声。在第一种情况下,使用puf响应的稳定性,在第二种情况下使用其噪声。

辅助数据创建单元130被布置成在登记阶段期间由第一噪声比特串112生成辅助数据,以使得可以在重新构建阶段期间由第二噪声比特串114确定加密密钥。

辅助数据创建单元130被配置为从一个误差校正代码获得一个或多个代码字并且确定辅助数据144。使用基于误差校正代码的所谓的代码偏移(code-offset)方法来确定辅助数据。标准化器和误差校正器的组合有时被称为模糊提取器。密钥导出也可以被包括在模糊提取器中。一个(n,k,d)二进制误差校正代码是一组位长为n的代码字,使得代码中的任何两个代码字具有至少为d的汉明距离;代码具有的维度为k。

例如,在登记阶段,从一个分组代码中选择一个或多个随机代码字,即所谓的登记代码字。例如,可以通过对随机选择的种子进行编码来获得登记代码字。辅助数据创建单元130接下来确定登记代码字和第一puf响应112之间的差异。第一puf响应112也被称为登记响应。

如果需要,可以填补或缩短第一puf响应112,以使得第一噪声比特串和第二噪声比特串是代码字大小的倍数。

第一噪声比特串112与登记代码字之间的差异也被称为偏移。在二进制值的情况下,两个矢量之间的偏移可以通过异或(xor)运算来获得。此代码偏移可以被用作辅助数据。在一个实施方案中,辅助数据144包括该偏移,例如,第一puf响应112和一个或多个代码字的xor。辅助数据144被存储在辅助数据存储器132中。

辅助数据存储器132被布置成在登记阶段期间在辅助数据已经由辅助数据创建单元130生成之后存储辅助数据。辅助数据存储器132可以是用于存储辅助数据144的非易失性存储器,例如闪速存储器。使用包括在设备100中的存储器来代替辅助数据存储器132,在一个实施方案中,辅助数据144被外部地存储,例如通过辅助数据存储132。

在重新构建阶段,重新评估puf并且获得第二噪声比特串114。第二噪声比特串114是登记的puf响应112的噪声版本。标准化器150被布置成在重新构建阶段期间将辅助数据144应用于第二噪声比特串,确定一个或多个代码字和噪声。噪声是噪声代码字。特别地,他们是应用了噪声的登记代码字。

通过使第二puf响应移动噪声降低数据144中包含的代码偏移,获得登记代码字的噪声版本。在二进制值的情况下,此移动再次简化为异或运算。

误差校正单元152被布置成校正所述一个或多个噪声代码字,获得一个或多个经校正的代码字。误差校正单元152可以被布置成用于多轮校正。特别地,误差校正单元152可以被布置成在重新构建阶段期间由第二噪声比特串114和辅助数据重新构建第一噪声比特串112。标准化器150可以被包括在误差校正单元152中。

可以使用对应于误差校正代码的误差校正算法来校正噪声代码字,从所述误差校正代码取得登记代码字。假设在重新构建期间puf响应比特误差的数目不太大,则经校正的代码字将等于原始登记的代码字。

如果需要,可以通过使此经校正的代码字再次移动代码偏移来重新构建原始登记的puf响应。必然可以从此响应中提取登记的密钥。替代地,可以从经校正的代码字获得密钥,而不重新构建原始登记的puf响应。还可以对经校正的代码字进行解码,以由其导出密钥。解码也可以涉及一轮或多轮解码。对一个内代码进行解码可以朝向最近的代码字校正,和/或可以擦除有错误的代码字。在后一种情况下,下一个外代码可以被布置成校正具有错误和擦除的代码字。

密钥导出单元154被布置成在重新构建阶段期间由第二噪声比特串114和辅助数据确定加密密钥。具体地,密钥导出单元154可以由误差校正单元152的输出导出加密密钥。例如,密钥导出单元154可以将密钥导出函数应用到一个或多个经校正的代码字。替代地,密钥导出单元154可以将密钥导出函数(kdf)应用到一个或多个经校正的代码字的解码,或应用到经校正的puf响应比特。这样的密钥导出函数的实例包括在ieee标准1363-2000、nist-sp800-108和56-c中定义的kdf1,以及ansix9.42等中的类似函数。该密钥导出函数可以是散列函数。在登记期间,如果需要,还可以导出加密密钥,在此情况下不需要重新构建。

设备100可以包括随机种子生成单元140。随机种子生成单元140被布置成仅在第一统计测试指示正确起作用时通过将熵集中函数(entropyconcentrationfunction)应用到puf响应(例如,第二噪声比特串)来生成随机种子。熵集中函数将较大的串(在此情况下是第二噪声比特串114)中的熵集中到较小的串(在此情况下是随机种子)中。熵集中函数的实例是散列函数,特别是加密散列函数(诸如sha-1)、压缩函数和用于导出种子的导出函数,例如如nist-sp800-90等中定义的。

随机种子可以用在被布置成根据随机种子生成随机数序列的伪随机数生成器中。随机数可以用在许多加密协议中,并且还具有非加密应用。伪随机数生成器未单独示出在图1中。

例如,伪随机数生成器可以是所谓的确定性随机比特生成器(drbg),例如,如在nist-sp800-90中定义和例示的。伪随机数生成器也可以是以计数器模式运行、从随机种子开始的分组密码(blockcipher)(比如说aes),或键入随机种子、用随机种子作为fortuna种子的流密码(streamcipher)(诸如rc4)等。

在数学公式中,设备100的此部分可以被描述如下。令第一噪声比特串是x,第二噪声比特串是y,登记代码字是s。s可以通过根据误差校正代码的编码函数对随机串进行编码来获得;例如s=enc(s),其中s是随机串。编码函数enc可以根据误差校正代码向s添加冗余。存在对应的解码函数dec,以使得s=dec(enc(s))。随机串s可以通过随机数生成器(例如,真随机数生成器或伪随机数生成器)获得,可能从puf110接种。

对于二进制情况,可以通过辅助数据创建单元130获得辅助数据为标准化器150计算我们具有由于第一噪声比特串和第二噪声比特串接近,因此是登记代码字s和噪声代码字s′。误差校正器152由s′重新构建s。密钥导出单元154现在可以由s(例如,直接由s、或由s(s的解码)或由第一噪声比特串等)导出一个密钥。注意,尽管辅助数据w允许由第二噪声比特串y重新构建第一噪声比特串x,实际上没有必要重新构建x,重新构建s或s可能就足够了。在登记期间,加密密钥可以以相同的方式由s、s或x生成。

随机种子生成单元140可以将熵集中函数应用到第二噪声比特串y,例如,获得g(y),其中g是熵集中函数。

统计测试

不幸地,可能发生的是,puf110不产生符合其典型预期行为的响应。以下两个熵方面是重要的:噪声熵和设备之间的熵:

噪声熵:当重复地测量相同的puf实体时与噪声量相关的熵。当使用puf进行随机数生成时,这是重要的。在重复测量中必须存在足够的随机性,以确保从puf导出高质量的随机种子。另一方面,该随机性必须被限制(必须存在足够稳定的比特),以实现足够的可靠性,以使得可以重复地导出加密密钥。

设备之间的熵:与设备之间的唯一性相关的熵。这是由生产过程中不受控制的变化导致的熵,该熵赋予每个设备一个唯一的“电子指纹”。考虑到puf响应测量来自一组puf实体或设备,未测量的实体/设备的puf响应理想地应是不可预测的。当puf被用于安全密钥存储时,此属性保证攻击者得不到受到攻击的特定芯片内的密钥的任何信息,即使他将访问一组类似的puf实体。

在登记期间,产生不足够随机的第一噪声比特串112的puf可能导致加密密钥不具有全熵,但对于辅助数据144甚至更糟的是泄漏用来构建该加密密钥的全部或部分熵。发生这种情况的一个特定情形是当puf110的偏置太高或太低时。例如,如果第一噪声比特串112含有太多零比特,则辅助数据144含有太多的等于登记代码字的比特。

在重新构建期间,一个不同的问题出现。如果第一噪声比特串112太接近第二噪声比特串114,即如果puf中的噪声太低,则通过随机种子生成单元140产生的随机种子将不足够随机。因此,由伪随机数生成器产生的随机数将比预期的更易于预测。这可以导致例如要求不可预测的随机数的加密协议中的安全问题。

为了确保特定的设备具有正确工作的puf且其熵是足够的,期望的是设备可以对其puf资源执行某种检查。以此方式,可以在制造期间或之后在设备寿命周期内做出这样的选择是相关的点滤除掉未通过健康检查的设备。

可以通过设备在运行时通过重复地读出puf响应来检查噪声熵且可以在这些测量内对噪声行为进行某种分析。例如,可以检查的是,多个puf响应彼此之间具有至少一个特定的最小汉明距离,或puf响应可以通过标准化随机性测试,诸如在特定出版物sp800-22中规定的nist统计测试集。然而,完整的nist测试集在代码大小方面相当大,需要很多工作存储器且将花费很长时间来运行。因此它不适合于在设备运行时的快速测试,更不用说硬件实施。对于在实践中重要的某些类型的puf实施方式,特别是不具有电源开关的基于存储器的puf,收集相同的puf源的多次测量更是不切实际的,因为这可能需要在测量中间为设备重新提供电力。

另一个问题是评估设备之间的熵,因为这需要分析从多个设备收集的puf响应,通常这仅可以以离线方式来实现。在运行时在单个设备上比较来自多个设备的puf测量是不切实际的。

看来,在运行时测试puf质量的最实际的方式是通过对单个puf测量运行随机性分析。至少单个puf响应总是可用的,即使在最有限的情境中。人们可以假设,在单个puf响应内测量的puf统计遵循一个至少与在多个设备上的puf统计有关的分布。尽管这不能够保证多个设备上的行为,但是它可以在极端情况下至少标记异常puf行为。

下文描述使用辅助数据的统计测试。注意的是,不使用辅助数据的统计测试是可能的。替代地,加密设备可以被布置成对来自puf的明语(plain)响应执行统计测试。例如,可以对单个puf响应执行fips140-1(单比特测试、扑克测试(pokertest)、游程测试(runstest)以及长响测试(longrungtest))测试。如果测试在登记期间失败,则辅助数据不被生成或被丢弃。如果测试在重新构建期间失败,则不由puf产生随机种子。这些测试对于验证设备之间的熵是特别有效的。

尽管对明语puf响应数据的这样的统计测试将是非常方便的,但是它们也引入了安全风险。一般而言,puf响应数据被视为秘密变量,且对秘密变量的任何操作应被极其谨慎地处理。在对明语puf响应数据的每个测试中计算的测试统计可能公开关于puf响应的信息,puf响应的信息影响导出的密钥的安全性。此信息泄露可以是明确的,例如因为测试统计是外部可读的,或非故意的,例如因为测试统计的计算或存储可以受侧信道攻击的攻击,揭示它们的值。期望对pfu执行健康检查而不揭示附加信息,特别是不通过侧信道揭示附加信息。

设备100包括统计单元120,该统计单元被布置成执行用于验证puf110正确起作用的统计测试。该统计测试使用辅助数据来计算物理不可克隆功能的统计参数并且如果计算的参数满足该统计测试的标准则确定正确起作用。

在一个实施方案中,该统计测试包括第一统计测试122。第一统计测试122解决上文指示的第一问题,即检测泄漏关于密钥的太多信息的辅助数据的生成。该第一统计测试是在登记阶段期间相关的。在一个实施方案中,该统计测试包括第二统计测试124。第二统计测试124解决上文指示的第二问题,即检测对于随机种子的可靠生成puf具有太少噪声。

第一统计测试122

发明人洞察到,代替对明语puf响应数据运行测试,人们还可以对被掩蔽(例如与特定结构的随机掩码进行xor)的puf响应数据执行经修改的统计测试。随机掩码的覆盖使大多数统计测试复杂,但是不一定使它们不可能。通过引入适当的修改,仍然可以对被掩蔽的puf响应数据执行许多测试。此外,可以示出的是,这些被掩蔽的测试较少地揭露或甚至不揭露可以导致安全风险的关于puf响应的信息。

对被掩蔽的puf响应数据(诸如辅助数据)运行统计测试是更安全的。与puf响应数据相反,辅助数据一般而言不被视为秘密变量,而通常被假设是公开变量。由于不管怎样辅助数据是公开的,因此对它计算的测试统计不能够揭示任何秘密信息。在经常使用的基于puf的密钥生成器结构(代码偏移结构)中,辅助数据可以被认为是用来自线性分组代码的随机代码字掩蔽的puf响应。因此,对辅助数据的测试是对被掩蔽的puf响应数据的测试的特殊情况。

在一个实施方案中,统计单元120被布置成在登记阶段期间对由第一噪声比特串112生成的辅助数据执行第一统计测试122。加密设备100被布置成如果第一统计测试未验证物理不可克隆功能正确起作用,则在登记阶段期间丢弃由第一噪声比特串生成的辅助数据。

第一统计测试特别适合于在登记阶段期间执行。在登记阶段期间,生成允许在随后的重新构建阶段期间重复地重新构建加密密钥的辅助数据。在生成辅助数据的时刻,验证puf正确起作用是特别重要的,否则可能会生成不安全的密钥或辅助数据。然而,在其他时间也期望验证puf正确起作用,以例如提防即将发生的puf失败。在后一种情况下,通过以对辅助数据执行统计测试为唯一目的可以生成辅助数据,就如同它是一个登记。这样的辅助数据可以使用复杂度较小的误差校正代码,例如重复代码字。

对在登记期间生成的辅助数据执行统计测试尤其抵制了信息泄漏,这是因为此辅助数据将在任何情况下被生成且被视为公开数据,因此不会发生附加的信息泄露。

从一个统计参数开始,假定利用来自误差校正代码的随机代码字掩蔽数据(例如,与数据进行xor)(在登记期间)且所述数据具有某个允许的偏置,或假定在所述数据是具有某个允许的噪声水平的误差矢量,可以通过确定测试参数的分布来构建统计测试。注意,在任一种情况下假设所述数据是随机的都不会产生满意的结果,因为puf被允许来自随机的某个偏差,例如,关于噪声和偏置。

下文实现了一个特别重要的实施例,即当误差校正代码是重复代码时对偏置的检测。

在登记期间进行偏置检测是重要的,这是由于偏置导致通过辅助数据泄露puf比特。某个偏置可以通过如下方式得以补偿:通过使用较长的puf响应来计算密钥,以使得该密钥中的剩余的不确定性仍然足够高,然而即使如此,puf的偏置应在puf被设计用于的范围内。在一个实施方案中,统计测试被布置成验证对于0比特或对于1比特物理不可克隆功能的偏置在可允许的偏置范围内。

重复代码非常适合于puf噪声降低,这是因为它们可以校正大量的误差然但具有非常低的解码复杂度。在一个实施方案中,误差校正代码是级联误差校正代码,对于该级联误差校正代码,最内代码是重复代码,误差校正重复代码的代码字的系列是通过从该级联误差校正代码中选择一个或多个代码字来选择的。

级联代码是由两个或更多个较简单的代码构建的误差校正代码。在由两个代码构建的级联代码中,这些较简单的代码被称为内代码和外代码。该级联代码的一个代码字可以首先根据外代码编码一个消息并用该内代码编码其结果。如果存在不止两个代码,则相继地用更多个内代码编码该消息。由于此构建,最内代码是重复代码的级联代码具有是重复代码字序列的代码字。合适的外代码可以是reed-solomon代码、reed-muller代码、bch代码或golay代码等。

当重复代码被用作级联代码的最内代码时,辅助数据创建单元130被布置成选择一个误差校正重复代码的一系列重复代码字,并将所述系列中的每个重复代码字与第一噪声比特串的一个对应的部分进行异或(xor),从而获得辅助数据的至少一部分。

使用图2例示了第一统计测试的一个实施方案。

图2示出了第一噪声比特串200,例如,第一噪声比特串112。

图2进一步示出了重复代码字序列210:示出的是代码字211、212、213、214和215。一个重复代码字仅由0比特或仅由1比特组成。重复代码字是至少2比特长,但可以更长,例如长于或等于3、4、5、7、8、16比特等。长度为n的重复代码(其中n≥3)可以校正多达[(n-1)/2]比特误差且检测多达(n-1)比特误差。在图2中,0重复代码字被例示为空白框(211、214和215),1重复代码字被例示为阴影框(212和213)。阴影仅被应用于序列210中,未被应用于其他行中。1代码字和0代码字的特定序列仅是例示性的。该序列可能已经通过直接生成随机重复代码字获得,或通过由最内代码是重复代码的级联代码生成随机代码字获得。例如,随机代码字可以是使用(真)随机数生成器(未被单独示出)来生成的。

第一噪声比特串200已经被分成与重复代码字210相同大小的分组(部分)。第一噪声比特串200内的比特模式应是随机的或至少接近随机的,例如在puf规范内。

第一噪声比特串200和序列210的异或是puf响应200的一个掩蔽版本。例如,可能已经通过辅助数据创建单元130选择了代码字序列,且在此情况下序列220是辅助数据。辅助数据220也被分成与代码字相同长度的分组。对辅助数据220而不是对puf响应200执行第一统计测试。以此方式,泄漏关于puf响应的关键信息的可能性较小,这是由于不直接对puf响应执行计算。尽管将代码字与puf数据进行异或是利用puf数据来计算,但是这个计算首先需要很少的功率且因此对侧信道的贡献小,其次是无论怎样在计算辅助数据时都必须进行的运算。通过对辅助数据执行第一统计测试,不需要额外获取明语puf响应。

在一个实施方案中,第一统计测试包括确定辅助数据220的每个分组的汉明权重(231-236)。由确定的汉明权重来确定物理不可克隆功能的偏置是否在可允许的偏置范围内。可以以多种方式来实现确定物理不可克隆功能的偏置是否在可允许的偏置范围内。

例如,第一统计测试可以包括对在汉明权重阈值上限以上或在汉明权重阈值下限以下的确定的汉明权重的数目进行计数。如果重复代码的分组大小是n,则方便的选择是取汉明权重阈值上限为n-1,取汉明权重阈值下限为1。以此方式,仅辅助数据220的全0分组或全1分组被计数。在一个实施方案中,汉明权重阈值上限是n-c,汉明权重阈值下限是c,其中c<n/2。例如,c可以是1、2、3或4等。重复代码的较长的分组大小允许c的值较大。使用c≥2的值是更灵敏的,特别是对于较大的分组大小。

这可以通过计数器单元240来实现。计数器单元240的输出(即极端汉明权重的数目)是通过统计测试计算的统计参数。该计数被示出为计数242。

汉明权重的分布可以根据偏置增加而改变。在中等偏置的情况下,比通常的汉明权重更大(或更低)的汉明权重的数目开始增加,随着偏置进一步增大,分布进一步移动到极端值内。例如,考虑长度为8的分组。随着1比特的偏置增大,汉明权重为6和7的分组的数目将增加。然而,如果偏置进一步增大,则汉明权重为6和7的分组的数目将再次减少,这是因为权重为8的分组的数目的增加代替了它们。因此,当对非极端汉明权重计数时需要谨慎,因为分布随着偏置改变。对在阈值上限以上或在阈值下限以下的汉明权重计数没有由于此分布改变而偏斜。

最后,第一统计测试确定计数242是否满足所述统计测试的标准,例如计数242是否位于允许的计数的汉明权重范围内。例如,该标准可以是计数242应在计数阈值上限以下。如果辅助数据220的具有极端汉明权重的分组太多,则puf很可能被偏置。

可选地,该标准也可以要求计数242应在计数阈值下限以上。计数阈值下限与高偏置不相关,但是尽管如此指示了puf的随机性是不足的,因为存在太少的极端汉明权重。

用于计数阈值上限的值和用于计数阈值下限的值可以由大小为n的随机分组的汉明权重的二项式分布和可接受的类型i误差(尽管puf正确工作该puf仍被标注为不够随机的概率)导出。

替代地,第一统计测试可以把所有不同的汉明权重的出现制成表格,其中如果w1+w2=n,则汉明权重w1和汉明权重w2被放在一起表格因此具有个条目。对于给定的分组大小,汉明权重230的观察到的频率可以与汉明权重的理论(例如,折叠二项式)分布进行比较,且假设puf的一个随机输出。如果观察到的分布与理论分布相差太多,则puf被发现是不够随机的。将观察到的分布(例如制成表格的频率)与理论分布进行比较可以使用所谓的卡方测试(chi-squaredtest)。此替代方案检测真随机行为的更细微的偏差,但仍然可以被调整到puf的实际参数,诸如它的允许的偏置范围。在一个实施方案中,与先前的测试相比,此测试适于较长的噪声比特串。

在一个实施方案中,第一统计测试包括

-对于重复代码字系列中的每个重复代码字,确定所述重复代码字和所述第一噪声比特串的对应的部分的异或的汉明权重(231-236)。例如,汉明权重230可以被确定。

-对于每个小于或等于的汉明权重w,其中n是重复代码字的比特长度,对等于w或n-w的确定的汉明权重的数目进行计数,从而获得汉明权重的观察到的频率。例如,对于长度n=8的重复代码。可以获得以下计数。

等于0和8、等于1和7等、等于3和5以及等于4的汉明权重的数目;在此情况下总共获得5个计数。

-将用于将观察到的分布与理论分布进行比较的统计测试应用到汉明权重的观察到的频率和应用到针对puf的汉明权重的指定频率。例如,所述指定频率可以通过如下方式获得:假设一个偏置,例如1/2的理想偏置,或对应于所述pif的实际规范的偏置,并考虑到puf的规范和重复代码字的数目来计算汉明权重的预期分布。所述统计测试可以是被设计成比较任何两个分布的一般测试,例如卡方测试或kolmogorov–smirnov测试;如果重复代码的分组长度非常长,则后者是合适的。所述统计测试可以是用来将特定分布(例如,折叠二项式分布)与观察到的分布进行比较的特定测试。后者具有的更灵敏的优点。这样的测试是从统计文献已知的。

-如果用于将一个观察到的分布与一个理论分布进行比较的统计测试指示汉明权重的观察到的频率和针对puf的汉明权重的指定频率比一个分布阈值更接近,则确定puf正确起作用。所述统计测试将产生作为对照分布阈值的统计参数。可以由期望的第一类型的失败率(例如,10^-6)等计算所述分布阈值。

汉明权重是一种快速概述信息同时保留统计相关性的常规方式,然而,在所述登记阶段期间测试由所述第一噪声比特串生成的辅助数据以验证物理不可克隆功能正确起作用的第一统计测试不是一定使用汉明权重。甚至不使用汉明权重也可以检测到更细微的偏差。例如,所述第一统计测试可以执行以下测试。n个比特的2^n个可能的比特模式可以被分成2^(n-1)对,每对中的两个模式是彼此的补码。对于每一对,系列220中的等于该对中的模式中的一个的分组的数目被计数。最后,将观察到的这些对的分布与理论分布进行比较,如上所述。尽管这些后面的测试可以被应用于较短的比特串,其中对于对应的比特串长度计算合适的阈值,但是它们也适合于应用到较长的比特串。

第一统计测试的实践实施例

考虑遵循代码偏移结构的基于puf的密钥生成器。使用的误差校正代码是作为外代码的(24,12)二进制golay代码和作为内代码的(8,1)重复代码的级联。此代码结构被重复15次。基于此代码的密钥生成器能够以<10-6的失败率导出安全128-比特密钥,只要使用的puf具有小于15%的误比特率和偏置在范围[41.8%...58.2%]内的独立相同分布的(i.i.d)比特。如果puf的偏置落在此范围之外,则导出的密钥可能是不安全的。(参见vanderleest等人,ches-2012.)。大于或小于10^-6的失败率是可能的且取决于应用。

测试细节:

掩蔽重复代码二进制比例测试(maskedrepetitioncodebinaryproportiontest)被用来验证所使用的puf具有在所要求的范围内的偏置。对于此测试,假设puf响应比特是i.i.d。该测试被建立使得它可以被应用在通过此密钥生成器产生的代码偏移辅助数据上,以使得测试统计能够不泄漏敏感信息,这是由于由它们导出的数据被视为公开信息。

考虑puf响应的连续的8比特序列,所述连续的8比特序列与代码偏移辅助数据结构中与它们进行xor的8比特重复代码字对齐。总计,总puf响应由15×24=360个这样的8比特序列组成。这些8比特puf响应序列的汉明权重遵循具有参数(n=8,p=puf的偏置)的二项式分布。

在与(随机)8比特重复代码字进行xor之后,对应的8比特辅助数据序列的汉明权重与puf响应的汉明权重相同(如果重复代码字是全0),或与其补码的汉明权重相同(如果重复代码字是全1)。这些8比特辅助数据序列的汉明权重因此遵循通过以下公式定义的分布(所有数学运算使用matlab约定):

pr[hw=s]=pr[hw=n-s]=1/2*binopdf(s;n,p)+1/2*binopdf(n-s;n,p)

原因是0重复代码字和1重复代码字随机地均匀出现。更一般地,人们可以规定:

如果s≠n/2,则q(s)=pr[hw=s或n-s]=binopdf(s;n,p)+binopdf(n-s;n,p),

否则q(s)=pr[hw=s]=binopdf(s;n,p)

因此,q(s)是具有汉明权重为s或n-s的n比特辅助数据序列的预期出现率。基于此预期出现率,还可以确定一组n比特辅助数据序列中汉明权重s或n-s出现的数目的上限界限和/或下限界限,即,具有非常高的概率,在一组k个连贯的n比特辅助数据序列中汉明权重s或n-s出现的数目应小于(相应地,大于)预定上限界限(相应地,下限界限)。我们将此测试称为掩蔽重复代码二进制比例测试。

在此实施例中,我们考虑例如s=0,即对于8比特辅助数据序列考虑(hw=0或hw=8-0=8)的出现。针对puf偏置的值被设定为针对可允许的偏置的阈值,以仍生成安全密钥,即p=58.2%(或p=41.2%)。这产生:

q(s=0)=binopdf(0;8,58.2%)+binopdf(8;8,58.2%)=1.41%,

因此,当puf的偏置是58.2%时,观察的辅助数据当中,k=360个8比特序列中的平均1.41%,或大约5个序列,被预期具有汉明权重0或8。此外,在这些情况下,具有压倒性概率(>1-10-6),观察到的具有汉明权重0或8的8比特序列的数目应小于20,这是因为:

pr[(#观察到的具有hw=0或8的序列)≤19]=binocdf(19;360,1.41%)>1–10-6

由于出现20或更多次观察到汉明权重(0或8)是非常不可能的,所以这可以被设定为一个上限界限。如果观察到汉明权重(0或8)的次数超过19,非常高的可能性是由于puf的偏置太高,且隐蔽重复代码二进制比例测试将输出失败。用于此示例密钥生成器的此测试的基本流程被示出在图3a中。

图3b示出了掩蔽重复代码二进制比例测试的失败率曲线,对于n=8比特重复代码,上限界限是在hw为0或8的360个序列中观察到<20个8比特序列。此测试被调整以对于可接受的偏置区间[41.8%...58.2%]具有<10-6的失败率且在该区间外具有较高的失败率。该测试的失败表示根据此测试该偏置是不可接受的。

该测试输出失败的概率取决于puf的实际真实偏置。对于所呈现的实施例,此关系被示出在图3b中。此曲线示出的是,对于在范围[41.8%...58.2%]内的可接受的偏置,该测试的失败率是小于10-6(因此该测试错误地拒绝具有可接受的偏置的puf的误-拒绝率非常小,小于10-6)。然而,如果该偏置在该可接收的区间外部,则所述测试的失败率急剧地上升到10-6以上且对于>70%或<30%的偏置快速接近100%(存在某些区间是不可接受的偏置水平,约[30%...41.8%]和[58.2%...70%],这些不是以100%的确定性被该测试检测到)。

注意,该测试可以被调整以允许puf内的某个偏置。在此情况下,具有在所述可接受的偏置区间内的偏置的puf应被视为正确起作用。仅检测来自完美的50-50偏置的偏离的统计测试在实践中将不是有用的,这是因为许多puf具有中等偏置。这样的中等偏置是可接受的,因为所述加密设备的其余部分可以被工程设计成将中等偏置纳入考虑,例如,使用比具有完美偏置的puf所需的puf响应更大的puf响应来导出加密密钥或随机种子。甚至在这样的系统中,如果puf具有在所述可接受的偏置区间外部的偏置,则可能出现问题。在一个实施方案中,统计测试被布置成验证对于0比特或对于1比特物理不可克隆功能的偏置在可允许的偏置范围内。

可以基于呈现的公式针对其他可接受的偏置水平和其他所要求的测试失败率调整此测试。此外,对于其他汉明权重观察,例如hw=(1或7),或hw=4,可以调整该测试,且该测试可以形成针对可接受的汉明权重观察的数目的上限界限和下限界限。还可以使用测试与不同汉明权重观察的组合。该测试可以类似地适于其他重复代码长度。

第二统计测试124

像所述第一统计测试那样,所述第二统计测试也使用辅助数据以避免引入对puf响应的新的操作。所述第一统计测试可以对在所述登记阶段期间由puf响应生成的辅助数据进行操作。所述第二统计测试可以对在所述登记阶段期间生成的相同的辅助数据以及在重新构建阶段期间生成的puf响应输出进行操作。

参考图1。在重新构建阶段期间,puf110生成第二噪声比特串114。标准化器150将第二噪声比特串114与在登记期间存储在辅助数据存储器132内的辅助数据144组合。对于二进制数据,辅助数据144和第二噪声比特串114可以进行xor。标准化操作的结果是获得接近一个代码字的比特串,或接近一个代码字的序列的比特串。后者还被称为可校正的比特串。误差校正单元152将误差校正算法应用到该可校正的比特串。该误差校正算法对应于由其得出登记代码字的误差校正代码。在误差校正之后,获得一个可靠的比特串,从该可靠的比特串可以导出一个可再现的加密密钥。

第二统计测试从被校正的误差的数目得出关于puf的结论。有趣地,第二统计测试要求puf应具有最小数目的误差。具有太少误差是puf具有太少噪声且因此不适合于导出随机种子的标记。

在一个实施方案中,统计测试包括第二统计测试124。在重新构建阶段期间使用存储在辅助数据存储器内的辅助数据执行第二统计测试(124)。误差校正单元被布置成对第一噪声比特串和第二噪声比特串之间的不同比特的数目(即经校正的误差的数目)进行计数。如果不同比特的数目大于一个差异阈值,则第二统计测试确定正确起作用。

图4a示出了实现这的一种方式。示出的是第二噪声比特串500,例如噪声比特串114。第二噪声比特串500可以在重新构建阶段期间由puf110直接获得。第二噪声比特串500将通过标准化器150标准化,例如被映射到一个误差校正代码的一个代码字的一个可校正的邻域,其进而通过误差校正器152校正。在一个实施方案中,误差校正单元152由第二噪声比特串500和辅助数据确定登记代码字。由登记代码字和辅助数据可以计算原始第一噪声比特串。先前用来创建辅助数据的第一噪声比特串在图4a中被示出为第一噪声比特串510。第二噪声比特串500与第一噪声比特串510之间的差异是误差矢量520。对于二进制情况,误差矢量520可以通过对比特串500和比特串510进行xor运算来获得。误差矢量520指示第一噪声比特串和第二噪声比特串的不同之处。汉明权重操作器540(例如计数器单元)计算误差矢量520的汉明权重542,计数器单元540被布置成对误差矢量520中的1-比特计数。

由于puf适合于由其导出加密密钥,因此误差矢量520的汉明权重(即误差计数542)将在某个阈值以下。否则puf将太不稳定不能由其导出可靠密钥。不太需要验证puf中误差的数目是否变得高于预期的。如果puf具有的误差大于预期,则这会在适当的时候变得明显,原因是在重新构建阶段期间导出的加密密钥很可能不同于在登记阶段期间导出的密钥。用重新构建的密钥进行的解密操作等因此将失败。尽管此情形是不成功的,但是至少清楚的是puf失败了。如果误差计数542太低,则在登记阶段期间导出的密钥是不清楚的。

如果将由具有足够的熵的第二噪声比特串510导出一个随机种子,则此矢量的汉明权重应足够高。在一个实施方案中,如果不同比特的数目大于一个差异阈值,则第二统计测试确定正确起作用。

误差矢量520中误差的分布应在误差矢量520上随机地分布。在一个实施方案中,第二统计测试验证误差矢量520中1比特的分布与随机的差异不大于puf被设计针对的。显著性可取决于应用,例如,可以使用10^-6的显著性水平。可以通过把误差矢量520分割成多个部分并确定每个部分的汉明权重大于一个阈值来验证分布。在一个实施方案中,误差矢量520不需要在计算开始之前被充分地计算。误差矢量520的部分,对计数的汉明权重做出贡献,在这之后可以丢弃该部分且可以计算误差矢量520的下一个部分。

对误差矢量520执行统计测试尤其测试puf的噪声熵。对于一个良好的puf,通常,设备之间的熵支配噪声熵。对第二噪声比特串的传统随机数测试(例如,fips测试)因此成功的概率高,即使噪声熵太低。

在基于puf的密钥生成的误差校正过程中,使登记和重新构建程序之间不同的puf响应比特被校正。此测试对在一个特定大小的puf分组中校正的比特的数目进行计数。注意,在许多误差校正程序中,误差计数542无论如何都作为次级输出给出。在此情况下,不需要额外的计算来获得差异的总数目。

在第二统计测试124的一个实施方案中,计算的统计参数是第一噪声比特串和第二噪声比特串之间的差异的总数目。此实施方案的一个版本被例示在图4a中。差异的总数目给出关于噪声熵的直接信息;如果差异的总数目太低,例如在差异的总数目的阈值以下,则puf可以被认为具有太低的噪声熵。在此情况下,由puf导出随机种子是不可取的。但是仍然可以由第二噪声比特串重新构建密钥。设备之间的熵可能是足够的,即使噪声熵太低。

在第二统计测试124的一个实施方案中,计算的统计参数是第一噪声比特串和第二噪声比特串之间的差异中的差异比特的最长游程。在第二统计测试124的一个实施方案中,计算的统计参数是第一噪声比特串和第二噪声比特串之间的差异中的非差异比特的最长游程。图4b例示了这些实施方案。图4b示出了一个误差矢量的一部分,例如重新构建的第一噪声比特串和第二噪声比特串之间的xor,例如误差矢量520的一部分。在此实施方案中,一个1比特对应于一个差异,也被称为一个误差,一个零比特对应于一个非差异,换言之第一噪声比特串和第二噪声比特串一致的位置。最长游程统计给出关于第二噪声比特串中噪声的分布的信息。例如,统计测试可以确定差异比特的最长游程在差异比特的最长游程阈值上限以上或在差异比特的最长游程阈值下限以下。例如,统计测试可以确定非差异比特的最长游程在非差异比特的最长游程阈值上限以上或在非差异比特的最长游程阈值下限以下。最长阈值上限和最长阈值下限可以是通过确定具有设计的可接受噪声范围的puf的游程的理论分布来计算的。

在参考521处,示出了差异的一个游程,例如误差矢量中全都是误差的一系列连续比特。在参考522处,示出了非差异的一个游程,例如误差矢量中全都是非差异的一系列连续比特。在图4b中,指示了最长游程——至少是误差矢量的示出部分中最长的。

对一个最长游程的确定可以被递增地实现。在此情况下,误差矢量不必在任何特定时间在设备100中是完全可用的。误差矢量的一部分可以被计算,统计参数被更新,且误差矢量的该部分被一个新的部分替换。

在这些实施方案中,puf响应在登记和重新构建中间被重新评估,否则该测试不能够产生有意义的结果。

在理论上,如果puf正确地工作,例如,即是稳定的又是足够随机的,则相同的第二噪声比特串可以被用来重新构建加密密钥并且导出随机种子。根据未校正的第二噪声比特串计算随机种子,而根据经校正的第二噪声比特串重新构建加密密钥。例如,在一个实施方案中,随机种子生成单元140被布置成仅在第二统计测试指示正确起作用时通过将熵集中函数应用到第二噪声比特串来生成随机种子。如果随机种子足够长并且足够随机,则未校正的第二噪声比特串中的噪声将支配未校正的第二噪声比特中存在的任何信息。在此情况下,强不可逆熵集中函数是可取的,例如加密散列函数。

然而,为了避免任何机会加密密钥上的信息可能通过随机数生成泄露出来,可以使用一个不同的puf响应来产生随机种子。例如,在一个实施方案中,物理不可克隆功能110被布置成在重新构建阶段期间产生第二噪声比特串114和又一个噪声比特串116,第二噪声比特串114和又一个噪声比特串116不重叠。随机种子生成单元140被布置成仅在第二统计测试指示正确起作用时才将熵集中函数应用到所述又一个噪声比特串。这具有优点是随机数不会泄漏加密密钥上的信息。

例如,在一个实施方案中,puf是基于存储器的,从第一存储器地址获得所述第一噪声比特串和所述第二噪声比特串,并且从第二存储器地址获得所述又一个噪声比特串,所述第一存储器地址和第二存储器地址是不同的并且优选地不重叠。所述第一噪声比特串和所述第二噪声比特串可以被认为是对相同的第一询问(例如相同的地址)的响应;所述又一个噪声比特串可以被认为是对与第一询问不同的第二询问(例如不同的地址)的响应。可以以该方式使用其他puf,例如可以用第一询问来询问延时puf以产生第一噪声比特串和第二噪声比特串,并且可以在重新构建期间用第二询问来询问延时puf以产生又一个噪声比特串。

图5示出了使用又一个噪声比特串116的一个实施方案。例如,在此实施方案中,第二噪声比特串可以通过标准化器150而被映射到一个可校正的比特串,例如,一个代码字的一个可校正的邻域中的一个字。对经校正的第二噪声比特串和未校正的噪声比特串之间的差异执行一次第二统计测试或多次第二统计测试;注意到,经校正的第二噪声比特串应与第一噪声比特串相同。如果第二统计测试指示puf在其规范内工作,例如具有足够的熵或足够的噪声等,则现在从又一个噪声比特串116导出随机种子。在一个实施方案中,第二噪声比特串和又一个噪声比特在统计上独立,这是因为它们是从puf的不同部分获得的,而除了噪声之外第一噪声比特串和第二噪声比特串是相同的。

实验已经示出,从第二噪声比特串计算的统计代表整个puf,从而也代表所述又一个噪声比特串。可以通过使第二噪声比特串和又一个噪声比特串交错来进一步改进此关系。例如,puf可以是基于存储器的puf、对所述又一个比特串做出贡献的第一存储器地址和第三存储器地址、对所述第二噪声比特串做出贡献的第二存储器地址和第四存储器地址,第一地址小于第二地址小于第三地址小于第四地址。

第二统计测试的实践实施例

基于存储器的puf响应的1千字节(8192比特)部分被用来接种具有128比特的安全强度的drbg。该8192比特部分是又一个puf响应。根据[nist,sp800-90a,使用确定性随机比特生成器生成随机数的建议],此puf响应数据的噪声的最小熵应至少是192比特。此puf被设计成用于在[40%-60%]内的偏置。对于这样的puf,为了提供具有8192比特的足够的噪声最小熵,其(平均)误比特率被确定为必须至少是2.6%。

此puf响应的另一部分(2880比特)被用于密钥生成。这些是第一噪声比特串和第二噪声比特串。此部分可以与被用于接种drbg的部分完全分离,但是由于它们来自相同的puf,因此假设它们在偏置和误比特率方面具有相同的质量。用于密钥生成的部分经过一个误差校正结构(代码偏置辅助数据结构),以在puf响应上存在比特误差的情况下重新构建相同的密钥。

测试细节:

因为在密钥重新构建期间密钥生成器以其噪声形式以及以其误差校正形式访问puf响应的一部分,所以密钥生成器可以对发生的比特误差的数目进行计数。基于对此计数的观察,在误比特率至少是2.6%的假设下,可以确定这是否是现实观察。特别地,人们可以确定观察到的比特误差的数目的阈值下限:

t=binocdf-1(10-6;2880,2.6%)=38。

如果观察到的比特误差的数目在此阈值以下,则具有高概率(>1-10-6),这是因为平均误比特率不够高。在这种情况下,此比特误差的数目测试将输出失败。用于此示例密钥生成器的此测试的基本流程被示出在图6a中。注意,失败测试在此情形下原则上对密钥生成本身没有任何影响;测试结果(基于密钥生成的)仅对drbg的接种是重要的。

测试输出失败的概率取决于puf的实际真实误比特率。对于所提出的实施例,此关系被示出在图6b中。图6b示出的是比特误差的数目测试的失败率曲线,被调整到对于>2.6%的可接受的误比特率具有<10-6的失败率。如果2880比特puf响应部分中的观察到的比特误差的数目小于38,则此特定测试输出失败。测试失败表示根据此测试,误比特率(噪声最小熵)是不可接受的。

此曲线示出的是,对于大于2.6%的可接受的误比特率,测试的失败率是<10-6(因此该测试错误地拒绝具有可接受的误比特率的puf的误-拒绝率非常小,小于10-6)。然而,如果平均误比特率小于可接受的极限,则该测试的失败率上升到10-6以上,并且对于<1.0%的平均误比特率而言接近100%。存在某一区间的不可接受的平均误比特率,约为[1.0%...2.6%],其不是以100%确定性被该测试检测到。根据应用,可以做出类型1误差和类型2误差之间以及对应的误差水平之间的不同权衡。对于其他可接受的平均误比特率水平和其他所需的测试失败率,可以基于提供的公式来调整此测试。

通常,设备100包括一个执行存储在设备100处的适当软件的微处理器(未示出);例如该软件可能已经被下载和/或被存储在对应的存储器内,例如易失性存储器(诸如ram)或非易失性存储器(诸如flash(未示出))。替代地,设备100可以整体地或部分地以可编程逻辑实施为例如现场可编程门阵列(fpga)。设备100可以整体地或部分地被实施为所谓的专用集成电路(asic),即为它们的特定用途定制的集成电路(ic)。

在一个实施方案中,设备100包括物理不可克隆功能电路、辅助数据创建电路、统计电路、密钥导出电路、误差校正电路、随机种子生成电路、标准化器电路和/或辅助数据存储器电路。所述电路实施本文所描述的对应的单元。所述电路可以是处理器电路和存储器电路,该处理器电路执行该存储器电路中以电子方式表示的指令。所述电路还可以是fpga、asic等。

图7示意性地示出了电子加密方法的一个实施例的流程图。方法700是一个示例实施方案且含有可选特征:在一个实施方案中,方法700可以如本文所描述的被修改。可以在设备(诸如设备100、101、1110等)上执行方法700。

加密方法700包括登记阶段710和重新构建阶段730。

登记阶段710包括:

-用物理不可克隆功能(puf110)产生712第一噪声比特串(112),

-由该第一噪声比特串生成714辅助数据以在该重新构建阶段期间由第二噪声比特串(114)确定该加密密钥,

-对由该第一噪声比特串生成的辅助数据执行716第一统计测试,

如果第一统计测试指示puf未正确起作用,例如,设备之间的熵显现太低,或puf的偏置太高,则辅助数据被丢弃718和720。在一些设备上可能存在恢复机制,例如,尝试一个不同的询问并且产生新的第一噪声比特串。此外,假使puf是一个单询问puf,则相同的询问可以被重新应用;例如,在基于存储器的puf的情况下,通过为存储器重新供电,例如为sram重新供电。在其他设备上,所述设备可能必须被完全丢弃。

重新构建阶段730包括

-利用所述物理不可克隆功能(puf110)产生732第二噪声比特串(114),

-由所述第二噪声比特串(114)和所述辅助数据重新构建所述第一噪声比特串(112),以及

-确定736所述加密密钥;例如,所述加密密钥可以由所述第一噪声比特串导出,例如通过应用散列函数。

-确定738所述第一噪声比特串和所述第二噪声比特串之间的差异,

-对所述差异执行740第二统计测试,

如果根据第二统计测试742puf正确地工作,则应用744一个熵集中函数以生成一个随机种子。该熵集中函数可以被应用到所述第二噪声比特串的全部或部分或可以被应用到puf110的又一个响应。

如本领域的技术人员将明了的,许多不同的执行方法700的方式是可能的。例如,所述步骤的顺序可以变化或一些步骤可以并行执行。此外,在步骤中间可以插入其它方法步骤。插入的步骤可以表示诸如本文所描述的所述方法的改进,或可以与所述方法无关。例如,步骤736和步骤740可以至少部分地并行执行。此外,在开始下一个步骤之前,一个给定的步骤可能还未完全完成。

可使用软件执行根据本发明的方法,该软件包括用于使处理器系统执行方法700的指令。软件可以仅包括所述系统的特定子实体采用的那些步骤。该软件可以被存储在合适的存储介质(诸如硬盘、软盘、存储器等)中。该软件可以作为信号沿着缆线或无线或使用数据网络(例如互联网)被发送。该软件可以被制成可供下载和/或供在服务器上远程使用。可以使用被布置成配置可编程逻辑(例如现场可编程门阵列(fpga))以执行所述方法的比特流来执行根据本发明的方法。

应理解,本发明还扩展到适于将本发明付储实践的计算机程序,特别是在载体上或在载体中的计算机程序。该程序可以是源代码形式、目标代码形式、源代码和目标代码之间的中间代码形式(诸如部分编译形式),或适合用于在实施根据本发明的方法中使用的任何其它形式。涉及计算机程序产品的实施方案包括对应于所阐明的方法中的至少一个的每个处理步骤的计算机可执行指令。这些指令可以被细分成子程序和/或可以被存储在可以被静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一个实施方案包括对应于所阐明的系统和/或产品中的至少一个的每个装置的计算机可执行指令。

图8a示出了计算机可读介质1000,该计算机可读介质1000具有包括计算机程序1020的可写部分1010,计算机程序1020包括用于使处理器系统执行根据一个实施方案的加密方法的指令。计算机程序1020可以作为物理标记或借助于计算机可读介质1000的磁化在计算机可读介质1000上实现。然而,还可想到任何其他合适的实施方案。此外,应理解,尽管计算机可读介质1000在此被示出为光盘,但是计算机可读介质1000可以是任何合适的计算机可读介质(诸如硬盘、固态存储器、闪速存储器等),并且可以是不可记录的或可记录的。计算机程序1020包括用于使处理器系统执行所述加密方法的指令。

图8b示出了根据一个实施方案的处理器系统1100的示意性表示。该处理器系统包括一个或多个集成电路1110。一个或多个集成电路1110的架构被示意性地示出在图8b中。电路1110包括处理单元1120,例如cpu,用于使计算机程序部件运行以执行根据一个实施方案的方法和/或实施它的模块或单元。电路1110包括用于存储程序代码、数据等的存储器1122。存储器1122的一部分可以是只读的。电路1110可以包括通信元件1126,例如天线、连接器或二者等。电路1110可以包括用于执行在所述方法中定义的处理的部分或全部的专用集成电路1124。处理器1120、存储器1122、专用ic1124和通信元件1126可以经由互连件1130(比如说总线)相互连接。处理器系统1110可以被布置成分别使用天线和/或连接器实现接触通信和/或非接触通信。

应注意,上文提及的实施方案例示而非限制本发明,并且本领域的技术人员将能够设计许多替代实施方案。

在权利要求中,放置在括号中的任何参考标记都不应被解释为限制权利要求。动词“包括”(comprise)以及其词形变化的使用不排除存在权利要求中所列元件或步骤之外的其他元件或步骤。元件前面的冠词“一个(a/an)”不排除存在多个这样的元件。本发明可以通过硬件(包括几个分立元件)以及通过适当编程的计算机实现。在列举了几个设备的装置权利要求中,这些设备中的几个可以通过同一项硬件实现。仅凭某些措施被记载在相互不同的从属权利要求中这一事实,不指示不能有利地使用这些措施的组合。

在权利要求中,括号中的参考指实施方案的图中的参考标记或实施方案的公式,因此增加了权利要求的可理解性。这些参考不被解释为限制权利要求。

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