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

文档序号:11635798阅读:291来源:国知局
包括物理不可克隆功能的加密设备的制造方法与工艺

本发明涉及电子加密设备、电子服务器、系统、电子加密方法、电子服务器方法、计算机程序以及计算机可读介质。



背景技术:

在部署之前或甚至在部署之后认证设备通常涉及将密钥编程到嵌入设备内的一次性可编程(otp)存储器(memory)和/或非易失存储器(nvm)内。一旦已经将密钥编程,就可以建立设备认证和安全连接。使用这些安全连接,可以使用空中(over-the-air)更新解锁/设置特征。密钥编程自身是该过程中昂贵但必需的步骤,通常由oem或芯片制造商执行。

为了补充此过程,已经提出了物理不可克隆功能(puf)。puf的主要应用之一是导出像可编程逻辑(例如fpga、pld和dsp)和集成电路(ic)那样的设备上的加密密钥。仅在设备需要时生成密钥并且过后删除密钥,而不是将密钥储存在某个非易失存储器内。这使得攻击者很难使用物理攻击来找到密钥。

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

puf的此属性使得它们适合于许多应用。例如,puf可以被用来与造假作斗争。尽管可能用欺骗手段拷贝特定设备或其他制造项,但是不可能以足够的精度复制可以嵌入其内以使得它将产生与原始的数字标识符相同的数字标识符的puf。作为另一个实例,puf被用来创建加密密钥。使用puf规避了对存储密钥的安全存储器的需要。此外,puf提供了防止通过逆向工程获得加密密钥的非法尝试的自然保护,这是因为在尝试期间可能对puf造成的损害会改变数字标识符。优选地,数字标识符对于其内嵌入物理不可克隆功能的电子设备是唯一的。puf已经被有利地应用在电子设备中。甚至在ic制造期间不可避免的微小制造变化会导致ic的不同属性。为了获得以相同方式操作的一批ic,通常抑制这些不同属性。然而,为了创建puf,利用了一批ic中的个体ic之间的差异。

例如,已经观察到,一些存储器元件的启动行为展示像puf那样的行为。当这样的存储器被加电时,它倾向于含有内容,即包括数据值的序列),该内容依赖于组成该存储器的部件(例如门或晶体管)的至少部分随机的物理特性,例如它们相对于彼此的物理布置。如果存储器被加电多次,则它将大比例地含有相同内容。不幸地,因为puf行为取决于小变动,所以一定的误差百分比是不可避免的。误差校正程序可以被用来校正这些变动,并且保证每次使用puf都导出相同的数字标识符。有时被称为模糊提取的误差校正程序使用所谓的辅助数据(helperdata)。

尽管在为设备设置密钥期间puf可以取代对非易失存储器的需要,但是仍存在对这种类型的存储器的需要。例如,辅助数据需要被存储在设备上以使得设备可以校正puf的噪声输出。



技术实现要素:

提供了如权利要求中限定的一种电子加密设备,所述电子加密设备被布置成用于登记(enrollment)阶段和稍后的使用阶段。所述加密设备在登记阶段期间生成第一puf数据,所述第一puf数据由物理不可克隆功能的第一噪声比特串导出。所述第一puf数据唯一地标识所述物理不可克隆功,并且包括第一辅助数据,所述第一辅助数据可以稍后被用来校正所述puf的噪声输出中的噪声。在一个实施方案中,所述第一puf数据包括所述第一噪声比特串的一部分。在一个实施方案中,所述第一辅助数据自身被用来标识所述puf,并且不需要含有标识所述puf的任何其他信息。所述第一puf数据被发送到服务器,以使得当稍后在使用阶段中需要所述辅助数据时,可以通过发送第二puf数据从所述服务器请求所述辅助数据。所述第二puf数据从由所述puf生成的第二噪声比特串导出。所述第二puf数据可以包括噪声比特串的标识所述puf的一部分。有趣地,所述第二puf也包括辅助数据。出人意料地,所述服务器可以识别两个辅助数据是否是针对同一puf生成的。两个辅助数据不是针对同一puf生成的选择使得更有效地使用噪声比特串并且因此可以使用较小的puf;另一方面,它在服务器侧需要更多的处理。

本发明的一个方面涉及如权利要求中限定的一种电子服务器。所述服务器从加密设备接收第一puf数据。所述第一puf数据包括第一辅助数据。在接收第二puf数据之后,所述服务器可以识别对应于发送所述第二puf数据的加密设备中的puf的正确的第一辅助数据。在一个实施方案中,所述第二puf数据包括通过所述加密设备的puf产生的噪声比特串的一部分。因为由相同的puf产生的噪声比特串靠近在一起,例如具有低汉明距离或否则具有高相关度,所以这可以被用来标识puf。在一个实施方案中,所述第二puf数据包括辅助数据。使用所述第二puf中的辅助数据可以标识在第一puf数据中接收的对应于同一puf的辅助数据。

所述加密设备和所述服务器是电子设备。所述加密设备可以是移动电子设备,诸如移动电话、集成电路(例如sim卡)。所述加密设备特别适合于大量生产的低成本设备。例如,加密设备可以是传感器。

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

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

附图说明

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

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

图1b示意性地示出了辅助数据生成器的一个实施方案的一个实施例。

图2示意性地示出了电子服务器的一个实施方案的一个实施例。

图3a示意性地示出了在电子加密设备的一个实施方案中在登记阶段期间数据的第一实施例。

图3b示意性地示出了在电子加密设备的一个实施方案中在使用阶段期间数据的第一实施例。

图4a示意性地示出了在电子加密设备的一个实施方案中在登记阶段期间数据的第二实施例。

图4b示意性地示出了在电子加密设备的一个实施方案中在使用阶段期间数据的第二实施例。

图5示意性地示出了电子加密方法的一个实施例。

图6示意性地示出了电子服务器方法的一个实施例。

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

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

图1-图4中的附图标记的列表:

100、100’、100”电子加密设备

101多个加密设备

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

120随机数生成器

130辅助数据生成器

131代码字生成器

132差异单元

133辅助数据生成器输出

142登记单元

144使用阶段单元

150通信单元

160误差校正单元

170密钥生成器

180加密单元

200电子服务器

210通信单元

220电子数据库

230响应单元

310第一噪声比特串

312第一噪声比特串的第二部分

314第一噪声比特串的第一部分

320第二噪声比特串

322第二噪声比特串的第二部分

324第二噪声比特串的第一部分

330第一辅助数据

332第二辅助数据

340第一随机比特串

341第二随机比特串

342私有密钥

344公共密钥

350、351第一puf数据

352、353第二puf数据

具体实施方式

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

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

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

加密设备100被布置成用于登记阶段和稍后的使用阶段。在登记阶段期间,加密设备100将数据传输到服务器。稍后在使用阶段期间,加密设备100接收从该服务器返回的信息。这允许加密设备100用安全密钥工作,即使不需要存储器(storage)来存储密钥或甚至存储用于标识设备的标识符。这减少或者甚至消除了在制造这些设备期间昂贵的个性化步骤,并减少或者甚至消除了对设备100上的非易失可重写存储器的需要。

参考图1a和图1b,公开了设备100的一个可能的架构。

加密设备100包括所谓的物理不可克隆功能110,所述物理不可克隆功能通常被称为puf。puf110被布置成产生噪声比特串,也被称为响应。例如,puf110可以被询问,通常被称为“被询问(challenged)”,以产生噪声比特串。当puf110被询问多次时,则puf110将多次产生噪声比特串。当多次产生噪声比特串时,噪声比特串通常将不相同。噪声比特串不相同可以通过辅助数据来解决。随后产生的噪声比特串之间的改变量在不同类型的puf之间不同;根据所述改变量,可以选择误差校正代码以校正此误差量。噪声比特串足够稳定且足够长以唯一地标识puf设备。可以相对于一组加密设备(在该组加密设备中,加密设备是可唯一地标识的,例如由服务器200服务的一组加密设备)和/或puf的误差百分比选择puf的噪声比特串的长度。

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

puf是随机功能,所述随机功能以如下的方式限制到物理设备:使得在不使用该物理设备来实际上评估该功能的情况下预测该功能的输出在计算上不可行。此外,因为puf是通过物理系统实现的,所以难以克隆。由不完全受控(即,含有一些随机性)的产生过程生产的物理系统证明是puf的良好候选。根据应用,只要在不同的加电上加电值足够持久稳固,可以容忍一定量的随机性。

puf110且因此加密设备100可以是基于由puf110提供的响应而被唯一地标识的。

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

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

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

表现出对于标识存储器足够稳定的随机启动行为的任何存储器被称为可询问的存储器。因为启动行为是随机的,所述两个不同的存储器在它们的启动存储器模式中将具有很大差异;因为启动行为是稳定的,所以同一存储器的两个启动存储器模式将具有很小差异。这样的存储器的实例不仅是所提及的sram存储器单元,还有基于交叉耦合的逆变器或锁存器的其他存储器单元(例如在欧洲专利申请ep07114732.6中描述的蝴蝶puf)以及像触发器(flip-flop)那样的存储器元件。实际上,可以使用包括多个反馈回路的任何类型的易失性存储器。

第二类基于puf的sram可以由双端口ram构建。通过同时在两个端口上写入不同的信息,存储器单元进入未定义的状态并且表现出类似puf的行为。在wo2009024913中更详细地描述了此类puf。其他所谓的本征puf是基于延时现象以及基于对fpga上的sram存储器单元的模拟。细节可以在us20030204743(延时puf)和wo2011018414a2(蝴蝶puf)中找到。puf110可以是包括多个总线保持器(例如wo2012069545中所描述的)的物理不可克隆功能。

加密设备100包括随机数生成器120,该随机数生成器被布置成在登记阶段期间选择第一随机比特串。puf110和随机数生成器120二者在登记阶段期间都产生比特串。然而,如果噪声比特串多次由puf110产生,则它们将靠近在一起;如果随机数生成器120多次产生随机比特串,则它们通常将是不相关的。例如,它们的不同可以接近于50%。所述随机数生成器可以是真随机数生成器或伪随机数生成器。

在一个实施方案中,随机数生成器例如通过将加密散列(hash)(诸如sha-256)应用到噪声比特串(例如登记比特串)来由该噪声比特串产生真随机种子(seed)。在此情况下,噪声比特串还未被误差校正。随机数生成器使用所述种子生成随机比特串。

加密设备100包括辅助数据生成器130,该辅助数据生成器被布置成由第一噪声比特串的至少一部分和第一随机比特串计算第一辅助数据。辅助数据包括冗余,以将由puf110产生的噪声比特串校正成与由同一puf110产生的更早的比特串相同。在此情况下,第一辅助数据被布置成用于稍后将通过物理不可克隆功能产生的第二噪声比特串的至少一部分映射到第一随机比特串。在一个实施方案中,针对第一噪声比特串的严格小于整个噪声比特串的一部分生成辅助数据。在一个实施方案中,针对整个噪声比特串生成辅助数据。这两个选择具有不同的优点并且下文对其进行更充分解释。

针对puf生成辅助数据本身是已知的。参见例如,c.等人,efficienthelperdatakeyextractoronfpgas,ches2008;p.tuyls等人,securekeystoragewithpufs,springer的题为“securitywithnoisydata”的书的第16章;y.dodis,m.reyzin和a.smith.fuzzy摘录:howtogeneratestrongkeysfrombiometricsandothernoisydata.inc.cachin和j.camenisch,编辑,advancesincryptology|-eurocrypt2004,springer-verlag,2004,lncs的第3027卷,第523-540页。

参考图1b公开了生成辅助数据的一个可能的架构。在此实施方式中,辅助数据生成器130包括代码字生成器131和差异单元132。代码字生成器131从随机数生成器120接收随机比特串,例如第一随机比特串,并且生成选自一个误差校正代码的一个或多个代码字的序列。误差校正代码是一个代码字集合,以使得该集合中的任何两个代码字具有至少最小距离(d)的距离。该距离通常被计算作为两个代码字之间的异或差异的汉明权重。所述最小距离至少是3,但是通常更高,这取决于puf110的误差率。例如,代码字生成器131可以将随机比特串编码为一个或多个代码字的序列。后者被称为编码;例如,将原始比特串转变为已编码的比特串。

差异单元132计算噪声比特串(例如登记比特串)和由代码字生成器131确定的代码字的序列之间的差异。该差异通常是异或运算;这不是必需的,该差异也可以是算术减法等。该差异被称为辅助数据。辅助数据生成器130也可以被称为模糊提取器。误差校正代码优选地是线性的,例如reed-solomon代码、hadamard代码、bch代码等。误差校正代码也可以是通过组合不同的代码(例如代码级联)获得的。辅助数据生成器130具有输出133,例如针对噪声比特串的至少一部分和随机比特串生成的辅助数据。考虑到噪声比特串足够接近于用来生成辅助数据的噪声比特串,所述辅助数据使得能够恢复随机比特串。

通常仅在登记阶段期间应用辅助数据生成器130以生成稍后能够使第一随机比特串重现的辅助数据。然而,在一个实施方案中,辅助数据生成器130被更经常地使用,例如在设备100每次加电时。

在一个实施方案中,设备100包括密钥生成器170,该密钥生成器被布置成在登记阶段期间由第一随机比特串生成公共密钥,所述公共密钥对应于私有密钥。例如,密钥生成器170可以生成用于在非对称加密中使用的公共私有密钥对。私有密钥对于设备100是私有的,并且在一个实施方案中永不离开设备100。然而,公共密钥可以与其他设备共享。私有密钥允许设备100解码用公共密钥加密的消息,和/或对消息进行签名以使得可以用公共密钥验证消息,例如使用加密单元。现有技术中存在许多公共-私有密钥系统,例如rsa、椭圆曲线密码学、ecdsa、ecies、eigamal、dsa等。例如,第一随机比特串可以被用作种子以生成质数,比方说对于rsa,或被用来选择椭圆曲线上的随机点等。密钥生成器通常将由第一随机比特串生成公共密钥和私有密钥二者,然而,在登记阶段期间仅需要公共密钥,而在使用阶段期间仅需要私有密钥。

例如,加密设备可以是传感器。由加密设备100测量的传感器数据可以通过设备100使用私有密钥签名。

返回图1a。加密设备100包括登记单元142。登记单元142被布置成在登记阶段期间由第一噪声比特串生成第一puf数据。第一puf数据(例如登记数据)被发送到设备100外部的服务器200。第一puf数据唯一地标识物理不可克隆功能。第一puf数据至少包括第一辅助数据。加密设备100还包括通信单元150,该通信单元被布置成在登记阶段期间将第一puf数据传输到电子服务器200。在一个实施方案中,通信单元150被布置成在登记阶段期间将第一puf数据连同公共密钥传输到电子服务器200。在发送第一puf数据之后,第一辅助数据、公共密钥、私有密钥、第一随机比特串和第一噪声比特串全都可以被丢弃,例如被从设备100擦除。

通信单元150可以是计算机网络连接,例如通过lan/wan网络或通过因特网。该连接可以是例如无线连接或有线连接,诸如wi-fi或以太网。

发送第一puf数据完成了登记阶段。注意,在登记阶段中,加密设备100不需要在非易失存储器中储存任何数据,包括辅助数据、密钥。

在登记阶段期间,加密设备将第一puf数据发送到服务器200。在使用阶段,加密设备重新构建第一随机比特串。

加密设备100包括使用阶段单元144,该使用阶段单元被布置成在使用阶段期间生成第二puf数据。第二puf数据是从puf110产生的第二噪声比特串导出的。第二puf数据也唯一地标识物理不可克隆功能。通信单元150被布置成在使用阶段期间将第二puf数据传输到服务器200,并且作为响应从该服务器接收第一辅助数据。服务器200从多个加密设备中间标识加密设备100,并且在该设备的登记阶段期间发送该服务器早先从加密设备100接收的第一辅助数据。

在使用阶段期间,puf110被布置成产生第二噪声比特串。加密设备100包括误差校正器160,该误差校正器被布置成在使用阶段期间由第二噪声比特串的至少一部分和接收的第一辅助数据确定第一随机比特串。例如,遵循图1b中给出的实施例,误差校正器160可以被布置成将接收的第一辅助数据添加到第二噪声比特串的至少一部分。因此,通常将获得近似代码字的序列,换言之,与第一比特串相比,所述代码字的序列加上了与第二噪声比特串中存在的噪声量相同的噪声量。误差校正器160将近似代码字的序列校正回到代码字的序列,例如使用与误差校正代码相关联的误差校正算法。最终,误差校正器160可以将代码字的序列解码以获得第一随机比特串。例如密钥生成器可以被布置成由第一随机比特串构建对应于公共密钥的私有密钥。

此时在使用阶段中,加密设备100可以使用私有密钥,例如用于加密、签名等。尽管如此,加密设备100不需要非易失存储器来获得私有密钥。

登记单元142和使用阶段单元144可以被实施为单独的单元。登记单元142和使用阶段单元144可以被组合成具有两种运行模式(登记模式和使用阶段模式)的组合登记/使用阶段单元。根据模式,分别使用该组合单元的登记单元部分或使用阶段部分。

图1a示出了与服务器200通信联系的设备100,用虚线例示。在一个实施方案中,服务器200与多个像设备100的那样的加密设备通信。除了加密设备100以外,图1a还示出了多个加密设备中的加密设备100’和100”。多个加密设备将第一辅助数据存储在服务器200处以对它们的puf进行误差校正,并且使用同一puf将它自身标识到服务器200。这允许多个设备在很大程度上是相同的。例如,在一个实施方案中,在登记阶段期间存储在设备上的所有信息(如果有的话)对于全部多个加密设备都是相同的。这减少了设置设备的时间和设备的非易失存储器的数量。

在一个实施方案中,加密设备100被布置成在登记阶段期间不写入包含在该设备中的任何非易失存储器。尽管一些实施方案可以在登记阶段结束之前执行一些写入,例如将固件写入到闪速存储器,但是在其他实施方案中,不需要非易失储存器。事实上,在一个实施方案中,加密设备不包括非易失可重写存储器。该设备可以包括存储软件的rom。

在一个实施方案中,加密设备不包括被布置成存储加密数据的多个微型保险丝。微型保险丝经常被用来储存密钥或标识设备的标识符。微型保险丝既昂贵又写入耗时,因此避免使用它们是有利的。事实上,在一个实施方案中,加密设备不包括用于唯一地标识加密设备的唯一的、固定的、预定标识符。通过puf110产生的噪声比特串不能够被预定;而噪声比特串是通过puf110的材料的随机变动确定的。

在一个实施方案中,加密设备包括具有签名证书(signingauthority)的公共密钥,并且加密设备被布置成使用具有签名证书的公共密钥验证接收的第一辅助数据的签名,误差校正器被布置成在验证失败的情况下不使用接收的第一辅助数据。例如,公共密钥可以被存储在设备100的非易失存储器中。公共密钥对于所有多个加密设备可以是相同的。例如,设备100可以包括用于验证接收的第一辅助数据的签名的加密单元180。

在一个实施方案中,出于与运行加密设备100的应用相关的目的,电子加密设备100可以含有一些非易失存储器。电子加密设备100也可以(或者替代地)含有用于保护该设备免受攻击的一些非易失存储器。例如,非易失存储器可以被用来存储计数器以防止回滚攻击(roll-backattack)。在回滚攻击中,使设备完全回到先前的状态,否认在此期间已经做出的任何改变。可以通过存储与回滚数据相关的非递减计数器来防止回滚攻击。例如,该计数器可以指示固件的版本号。如果新的固件的版本号低于计数器中所指示的版本,则该固件被拒绝。尽管如此,即使使用一些非易失存储器,非易失存储器的总量和个性化所需的时间减少了。不是所有的实施方式都需要回滚保护;这取决于应用和/或攻击模型。

参考图3a-图4b解释了构建第一puf数据和第二puf数据的两种不同的方式。

图2示意性地示出了电子服务器200的一个实施方案的一个实施例。图2示出了服务器200连同多个加密设备101。示出了多个加密设备中的三个设备:加密设备100、100’、100”。多个加密设备可以包括不止三个设备,比方说不止1000个、不止10000个等。

服务器200包括通信单元210,该通信单元被布置成在加密设备100的登记阶段期间从加密设备100接收第一puf数据。第一puf数据唯一地标识加密设备100的不可克隆功能并且包括第一辅助数据。通信单元210在加密设备100的使用阶段还从加密设备100接收第二puf数据。第二puf数据也唯一地标识物理不可克隆功能110。类似地,通信单元210可以从多个加密设备101中的其他设备接收第一puf数据和第二puf数据。

服务器200包括电子数据库,该电子数据库被布置成响应于接收第一puf数据至少存储第一辅助数据。

服务器200包括响应单元230,该响应单元被布置成由第二puf数据标识物理不可克隆功能、从数据库检索第一辅助数据以及使用通信单元210将第一辅助数据传输到已标识的加密设备。

图3a示意性地示出了在电子加密设备的一个实施方案中在登记阶段期间数据的第一实施例。

示出了第一噪声比特串310,例如由puf110产生。第一噪声比特串310包括第一部分314和非重叠的第二部分312。第二部分312标识puf110,且于是标识设备100。还示出了第一随机比特串340,例如由随机数生成器120产生。由第一部分314和第一随机比特串340计算辅助数据330;因此给出辅助数据330和第二噪声比特串,第一随机比特串340可以被重新构建。第一puf数据350包括第一辅助数据330和第一噪声比特串的第二部分312。服务器200稍后可以由第一puf数据350中接收的第二部分312标识puf110。由第一随机比特串340生成公共密钥344,且可能生成私有密钥342。公共密钥344可以连同第一puf数据350被传输到服务器200。

数据库220被布置成储存与加密设备100的物理不可克隆功能310的第一噪声比特串310的第二部分312相关联的第一辅助数据330。例如,第一辅助数据330和第二部分312可以被存储在相同的记录中。

图3b示意性地示出了在电子加密设备的一个实施方案中在使用阶段期间数据的第一实施例。

示出了第二噪声比特串320,例如由puf110产生。第二噪声比特串320包括第一部分324和非重叠的第二部分322。将第二噪声比特串320分割成两部分与分割第一噪声比特串310是相同的,以使得第一噪声比特串310的第一部分接近于第二噪声比特串320的第一部分,并使得第一噪声比特串310的第二部分接近于第二噪声比特串320的第二部分。第二puf数据352包括第二噪声比特串320的第二部分322。基于第二部分322,服务器200标识puf并且检索它在第一puf数据350中更早接收的辅助数据330。基于此,服务器200使辅助数据330返回到加密设备100。

响应单元230被布置成通过确定第二puf数据352中接收的第二噪声比特串的第二部分322和数据库220中储存的第一噪声比特串310的第二部分312之间的差异来标识物理不可克隆功能。例如,如果该差异小于第一标识阈值,则标识物理不可克隆功能。该第一标识阈值可以由多个加密设备101的大小、多个加密设备中的第一个的puf的误差率和噪声比特串的大小确定。替代地,物理不可克隆功能可以被标识为存储在数据库220中的第一噪声比特串310的第二部分312,对于第一噪声比特串310的第二部分312,在数据库220的所有第二部分中差异是最小的。

由第一部分324和辅助数据330重新构建第一随机比特串340;例如误差校正器可以被布置成由第二噪声比特串的第一部分和接收的第一辅助数据确定第一随机比特串。由第一随机比特串340生成私有密钥342,且可能生成公共密钥344。加密设备100通常不需要公共密钥342。

在一个实施方案中,加密单元180可以使用私有密钥342对消息进行签名,并且例如使用通信单元150将消息发送到例如服务器200。服务器200可以使用与第一puf数据350一起接收的公共密钥验证签名。在一个实施方案中,服务器200使用与第一puf数据350一起接收的公共密钥将消息加密,并且将消息发送到设备100。加密单元180可以使用私有密钥342将消息解密。

噪声比特串的第二部分被用来标识设备。噪声比特串的第一部分可以被用于密钥导出。通常,第二部分可以远小于第一部分。用于标识的第二部分的长度例如取决于设备中必须被标识的设备的数目。考虑到串是由使用导出的,第一部分的长度取决于使用。例如,可能需要加密密钥具有例如80比特、128比特甚至256比特等的最小长度。在一个实施方案中,第二部分具有比第一部分更小的比特长度。在一个实施方案中,第一部分是第二部分的至少两倍长。

图4a示意性地示出了在电子加密设备的一个实施方案中在登记阶段期间数据的第二实施例。

示出了第一噪声比特串310,例如由puf110产生。还示出了第一随机比特串340,例如由随机数生成器120产生。由第一噪声比特串310和第一随机比特串340计算辅助数据330;因此给出辅助数据330和第二噪声比特串,第一随机比特串340可以被重新构建。由第一随机比特串340生成公共密钥344,且可能生成私有密钥342。公共密钥344可以连同第一puf数据351传输到服务器200。有趣地,在此实施方案中,第一puf数据不需要直接含有第一噪声比特串110的任何部分。即使第一puf数据351是基于随机比特串340,服务器200仍能够用它标识设备200。

图4b示意性地示出了在电子加密设备的一个实施方案在使用阶段期间数据的第二实施例。

示出了第二噪声比特串320,例如由puf110产生。还示出了第二随机比特串341,例如由随机数生成器120产生。由第二噪声比特串320和第二随机比特串341计算辅助数据332。第二puf数据353包括第二辅助数据332。

通过服务器200将第二辅助数据与第一辅助数据100进行比较以标识puf110。通常,第二辅助数据绝被用来实际校正puf110的噪声比特串。然而,第二辅助数据是全功能的;第二辅助数据可以被用于稍后将由物理不可克隆功能产生的噪声比特串映射到第二随机比特串。

基于第二辅助数332,服务器200标识puf并且检索它在第一puf数据351中更早接收的辅助数据330。基于此,服务器200使辅助数据330返回到加密设备100。由噪声比特串320和辅助数据330重新构建第一随机比特串340;例如误差校正器可以被布置成由第二噪声比特串320和接收的第一辅助数据确定第一随机比特串。由第一随机比特串340生成私有密钥342,且可能生成公共密钥344。加密设备100通常不需要公共密钥342。

例如,响应单元230可以被布置成通过确定第二辅助数据332和第一辅助数据330之间的差异标识puf110。例如,第二辅助数据332和第一辅助数据330可以被异或在一起。接下来,在差异和最接近的一个或多个代码字之间确定距离。如果该距离小于第二标识阈值,则标识物理不可克隆功能。替代地,可以选择使该距离最小化的第一辅助数据330。

将使用一个实施例进一步例示此实施方案。

我们将第一噪声比特串表示为x1并且将第二噪声比特串表示为y1,例如puf的。我们将一个不同的设备的第一噪声比特串和第二噪声比特串分别标识为x2和y2,例如设备100’的puf的。由设备100的辅助数据生成器确定的代码字的序列是由设备100’的辅助数据生成器确定的代码字的序列是在设备100和100’的相应的登记阶段中,对于设备100和100’,第一辅助数据分别可以被计算为服务器200将二者都存储在数据库220中。在使用阶段中,设备100可以将第二辅助数据计算为c表示代码字。加法和减法二者都可以被实施为异或。

在从设备100接收第二辅助数据之后,服务器200需要选择存储在数据库200中的哪个第一辅助数据将被发送回设备100。服务器200可以通过计算接收的第二辅助数据和存储的第一辅助数据之间的差异继续进行:

这些表达式中的第二项是代码字之间的差异。如果误差校正代码是线性的,则这些表达式它们自身是一个或多个代码字的序列。第一项是来自puf的噪声比特串之间的差异。在方程1的情况下,即对于存储的第一辅助数据和接收的第二辅助数据之间的正确匹配,此项的汉明权重很小,并且由puf的误差率确定。在方程2的情况下,即对于存储的第一辅助数据和接收的第二辅助数据之间的不正确匹配,此项的汉明权重很大,该项是基本上是随机的。添加到代码字的序列的随机比特串自身是随机比特串。服务器200现在可以通过应用与误差校正代码相关联的误差校正算法的误差校正器来运算两个差异结果是针对每个差异的代码字的序列,例如c1和c2。从差异中减去发现的代码字的序列:

在差异(1)的情况下,误差率很小,因此代码字将经常甚至总是等于因此,将接近于或甚至等于(x1-y1)。此值的汉明权重小,因为从相同的puf取得的噪声比特串靠近在一起。在差异(2)的情况下,误差率大,因此代码字将在大多数时间不同。因此,预期具有较大的汉明权重。

服务器200可以使用这来标识正确的第一辅助数据。对于每个存储的第一辅助数据,存储的第一辅助数据和接收的第二辅助数据之间的差异被确定,比方说使用异或。误差校正器被应用于该差异,形成最接近该差异的代码字的序列。在该差异和该代码字的序列之间确定另一个差异。由该另一个差异获得汉明权重。在所有第一辅助数据中,可以选择导致最小汉明权重的第一辅助数据。替代地,可以使用导致汉明权重在第二差异阈值以下的第一辅助数据。

图4a和图4b的第一puf数据和第二puf数据具有需要较少的puf数据的优点。较小的puf可以被用来标识到服务器200以及由其导出密钥。即使使用srampuf,存储器优选地不被再用于其他目的以对抗老化效应。使用辅助数据标识到服务器200允许减少需要的puf量。另一方面,图3a和图3b的第一puf数据和第二puf数据要简单得多并且需要较少的处理,尤其是在服务器200侧上。

在一个实施方案中,随机数生成器120被布置成基于从物理不可克隆功能110获得的噪声比特串生成随机数。例如,随机数生成器120可以使用第一噪声比特串来导出第一随机比特串。如果使用第二随机比特串,则随机数生成器120可以使用第二噪声比特串来导出第二随机比特串。可以从puf110获得一个单独的随机比特串而非第一噪声比特串和第二噪声比特串;这具有需要较大的puf的缺点。例如,随机数生成器120可以弄乱噪声比特串以获得散列的噪声比特串,随机数生成器120被布置为伪随机数生成器以由一个种子生成随机数,该种子包括散列的噪声比特串。该散列可以是加密散列,例如sha-1、sha-256等。噪声比特串中的噪声导致随机比特串为至少部分地真随机。

在一个实施方案中,设备110包括唯一地标识一批加密设备的批次标识符,第一puf数据和第二puf数据包括该批次标识符。设备110是由批次标识符标识的批次的一部分。当需要在第二puf数据和第一puf数据的数据库之间发现匹配时,批次标识符可以显著地减少服务器侧上需要的计算工作量。使用批次标识符,可以显著地减少搜索空间。批次标识符可以被用在参考图3a-图3b给出的实施例以及参考图4a-图4b给出的实施例中。

例如,服务器200的响应单元可以被布置成由第二puf数据和批次标识符标识物理不可克隆功能。例如,电子数据库可以被布置成存储第一辅助数据和批次标识符,该第一辅助数据和该批次标识符二者都是从第一puf数据获得的;可能还包括第一噪声比特串的第二部分,如果该第二部分被使用。响应单元可以被布置成通过首先将在第二puf数据中接收的批次标识符与存储在数据库中的一个或多个批次标识符进行比较来由第二puf数据标识物理不可克隆功能。当接收的批次标识符和存储的批次标识符相等时,响应单元可以通过将在第二puf数据中接收的第二部分和/或辅助数据与同经比较的批次标识符一起存储的第二puf数据和/或辅助数据进行比较来进一步标识物理不可克隆功能。

批次标识符标识一批加密设备。一个批次包括多个加密设备,例如至少两个。多个设备101可以包括多个批次。作为一个实施例,假设多个设备101包括每批100个设备、共十批的1000个设备。即使所有设备已被注册,例如通过发送第一puf数据,标识仅需要比较100个设备,而不需要比较1000个设备。批次标识符可以远小于唯一地标识设备而不是标识批次的标识符。

批次标识符可以被嵌入设备110的rom内,使得制造具有不同批次标识符的新批次仅涉及改变rom掩膜。替代地,批次标识符可以被存储在设备上,例如在制造或登记期间。

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

在一个实施方案中,电子加密设备包括随机数生成器电路、辅助数据生成器电路、登记单元电路、通信单元电路、使用阶段单元电路,每个电路被布置成用于它们的相应功能。在一个实施方案中,服务器包括通信单元电路、电子数据库电路和响应单元电路。这些电路可以是处理器电路和存储电路,该处理器电路执行存储电路中以电子方式表示的指令。所述电路还可以是fpga、asic等。系统可以包括附加的电路,例如密钥生成电路、加密单元电路等;所述电路实施在本文中描述的对应单元。

图5示意性地示出了电子加密方法500的一个实施例。方法500具有登记阶段510和稍后的使用阶段520。

登记阶段510包括:

使用物理不可克隆功能(puf)产生511第一噪声比特串,

选择512第一随机比特串,

由该第一噪声比特串的至少一部分和该第一随机比特串计算513第一辅助数据,

生成514第一puf数据,该第一puf数据由该第一噪声比特串导出,该第一puf数据唯一地标识该物理不可克隆功能,该第一puf数据包括该第一辅助数据,以及

将该第一puf数据传输515到电子服务器。

使用阶段520包括:

使用该物理不可克隆功能(puf)产生521第二噪声比特串,

生成522第二puf数据,该第二puf数据由该第二噪声比特串导出,并且唯一地标识该物理不可克隆功能,

将该第二puf数据传输523到该服务器,并且作为响应从该服务器接收该第一辅助数据。

由该第二噪声比特串的至少一部分和接收的第一辅助数据确定524该第一随机比特串。

图6示意性地示出了电子服务器方法600的一个实施例。

方法600包括:

在电子加密设备的登记阶段期间,从加密设备接收610第一puf数据,该第一puf数据唯一地标识该加密设备的物理不可克隆功能,该第一puf数据包括第一辅助数据,以及

响应于接收该第一puf数据储存620第一辅助数据,

在该加密设备的使用阶段期间,从该加密设备接收630第二puf数据,该第二puf数据唯一地标识该物理不可克隆功能,

由该第二puf数据标识640该物理不可克隆功能,

检索650该第一辅助数据,

将该第一辅助数据传输660到该加密设备。

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

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

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

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

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

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

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

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

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