运用物理不可克隆函数的无数据库验证的制作方法

文档序号:12467650阅读:260来源:国知局
运用物理不可克隆函数的无数据库验证的制作方法与工艺

所揭示实施例一般来说涉及验证领域。更特定来说且并非以任何限制方式,本发明针对于运用物理不可克隆函数的无数据库验证。



背景技术:

随着计算机及计算机芯片的使用激增,产生了验证给定集成电路(IC)芯片是否为由已知实体提供的已知芯片的需要。可通过将秘密密钥存储于IC芯片上的非易失性存储器中来实现常规验证。图1A中的过程100A图解说明此情况。在此图中,秘密密钥KA在IC芯片102被制造时或当IC芯片102仍在已知实体的控制下时写入到一次性可编程(OTP)非易失性存储器104中。秘密密钥KA还与检验器(例如,将正在使用IC芯片102且需要能够验证IC芯片的装置)共享,在图1B中所展示。在验证过程100B中,检验器106查询IC芯片102以确保存在正确的秘密密钥。在所展示的实例中,检验器106将随机消息R发送到IC芯片102且请求IC芯片102使用存储于IC芯片102上的密钥104来计算消息R的散列。IC芯片102使用基于散列的消息验证码(HMAC)模块108来计算H(R,KA)。检验器106执行对H(R,KA)的单独计算且将结果与由IC芯片102提供的值进行比较。如果两个计算匹配,那么IC芯片102经检验为真实的。理论上,伪造的IC芯片将不具有秘密密钥,且因此将不能通过验证。

然而已展示,可经由物理攻击提取存储于非易失性存储器中的秘密密钥,例如打开芯片封装并读出存储器内容。避免此的一种方式为在IC芯片上使用易失性物理不可克隆函数(PUF)来提供加密密钥,如在图2中所展示。PUF为物理实体,所述物理实体体现于物理结构中、易于评估但难以预测且仅可在IC芯片被供电时读出。在授权过程200中,IC芯片202含有PUF 210、HMAC 208及唯一识别IC芯片202的芯片ID 212。为证实IC芯片202,检验器206从IC芯片202获得芯片ID 212。检验器206接着能够存取数据库214以定位与IC芯片202相关联的密钥。如同在先前实例中,检验器206将消息m发送到IC芯片202,其中HMAC 208从PUF 210接收密钥KA并执行散列H(m,KA)。当IC芯片202传回散列H(m,KA)时,检验器206进行对H(m,KA)的单独确定,且如果两个值匹配,那么检验器206便知晓IC芯片202为有效的。关于此解决方案的问题起因于每一IC芯片均具有唯一密钥的事实。数据库214可为相当大的,但为验证IC芯片202,检验器206需要对数据库214进行存取。此存取并非在所有情况中均为可能的,例如,当检验器系统未连接到网络时为不可能的。可产生此问题的一个实例为打印机试图验证喷墨盒上的IC芯片。在不具有网络连接的情况下,检验器没有办法确定与喷墨盒上的IC芯片相关联的唯一密钥且因此没有办法进行检验。



技术实现要素:

本专利申请案揭示用于在不需要检验器对密钥数据库进行存取的情况下提供对使用PUF的IC芯片的验证的装置及方法。在所揭示实施例中,使用主密钥来加密PUF秘密密钥。所述经加密PUF密钥在芯片处于已知实体的控制下的时间期间使用非易失性存储器或一次性可编程存储器而存储于所述IC芯片上。从不将所述主密钥存储于所述IC芯片上,且所述主密钥仅为制造商及希望将所述IC芯片用于检验的客户所知晓。因此,即使攻击者可读取非易失性存储器,其也仅可看到经加密PUF秘密密钥。

在验证期间,检验器从所述IC芯片获得所述经加密PUF秘密密钥,接着使用所述主密钥将其解密。从此点开始,可使用用于质询-响应验证的各种标准协议。举例来说,所述检验器将随机消息发送到所述IC芯片。PUF模块产生其易失性秘密密钥(KA)。所述IC芯片使用所述PUF秘密密钥KA对所述消息执行运算(例如安全散列或加密),接着将结果发送到所述检验器。所述检验器使用经解密PUF密钥检查所述结果。如果所述结果匹配,那么所述IC芯片被视为真实的。

在一个方面中,揭示集成电路(IC)芯片的实施例。所述IC芯片包含:物理不可克隆函数(PUF),其产生针对所述IC芯片的唯一密钥;处理器;非易失性存储器;及加密模块,其含有第一指令,当由所述处理器执行时,所述第一指令从所述PUF接收所述唯一密钥、从外部源接收主密钥、使用所述主密钥将所述唯一密钥加密且将所述经加密唯一密钥存储于所述非易失性存储器中。

在另一方面中,揭示一种可在集成电路(IC)芯片上操作以用于提供对所述IC芯片的验证的方法的实施例。所述方法包含:从物理不可克隆函数(PUF)接收针对所述IC芯片的唯一密钥;从外部源接收主密钥;使用所述主密钥将所述唯一密钥加密;及将所述经加密唯一密钥存储于非易失性存储器中。

在又一方面中,揭示一种用于提供对集成电路(IC)芯片的验证的方法的实施例。所述方法包含:将主密钥提供到所述IC芯片;指示所述IC芯片使用所述主密钥将从所述IC芯片上的物理不可克隆函数接收的唯一密钥加密;将烧穿电压(burn voltage)提供到所述IC芯片;及指示所述IC芯片将所述经加密唯一密钥存储于非易失性存储器中。

所揭示系统及方法的优点包含至少以下各项:

●基于PUF的秘密密钥存储较不易于遭受物理攻击的破坏;及

●检验器不需要对芯片ID及对应PUF密钥数据库的存取但可快速存取所期望PUF密钥并将其解密。

附图说明

在附图的各图中以实例方式而非以限制方式图解说明本发明的实施例,其中相似参考符号指示类似元件。应注意,对本发明中的“一”或“一个”实施例的不同提及未必是对相同实施例的提及,且此些提及可意指至少一者。此外,当结合实施例描述特定特征、结构或特性时,应认为:无论是否明确描述,结合其它实施例实现此特征、结构或特性在所属领域的技术人员的知识范围内。

附图并入本说明书中并形成其一部分以图解说明本发明的一个或多个示范性实施例。将从结合所附权利要求书且参考附图作出的以下详细说明理解本发明的各种优点及特征,在图式中:

图1A描绘如此项技术中已知的用于IC芯片证实的设置阶段的实例;

图1B描绘如此项技术中已知的用于IC芯片证实的验证阶段的实例;

图2描绘如此项技术中已知的用于IC芯片证实的验证阶段的实例;

图3A描绘根据本发明的实施例的用于IC芯片证实的设置阶段的实例;

图3B描绘根据本发明的实施例的用于IC芯片证实的验证阶段的实例;

图4A描绘根据本发明的实施例的用于IC芯片证实的设置阶段的实例;

图4B描绘根据本发明的实施例的用于IC芯片证实的验证阶段的实例;

图5描绘根据本发明的实施例的用于IC芯片证实的验证阶段的实例;

图6图解说明根据本发明的实施例的用于对IC芯片执行设置的方法;

图7图解说明根据本发明的实施例的可在IC芯片上操作以用于执行IC芯片的设置的方法;且

图8描绘根据本发明的实施例的可在IC芯片上操作以用于执行对IC芯片的验证的方法。

具体实施方式

现在将详细参考附图描述本发明的特定实施例。在本发明的实施例的以下详细说明中,陈述众多特定细节以便提供对本发明的更透彻理解。然而,所属领域的技术人员将显而易见,可在不使用这些特定细节的情况下实践本发明。在其它实例中,未详细描述众所周知特征以避免使描述不必要地复杂。

现在参考图式且更特定来说参考图3A及3B,展示根据本发明的实施例的IC芯片的设置及验证的一般化实例。在过程300A中,IC芯片302已被完整制造但尚未离开制造设施(fab)301。IC芯片302含有PUF 310、处理器318、存储器320及一次性可编程(OTP)非易失性存储器316。OTP存储器316为数字存储器的形式,其中每一位的设定是由熔丝或反熔丝锁定;OTP存储器316用于永久地存储由PUF 310创建的密钥KA的经加密副本。通过跨越薄氧化物晶体管的栅极及衬底施加将不会在正常操作期间遇到的高电压脉冲而将OTP存储器316编程,此在栅极与衬底之间有效地形成沟道。用以将OTP存储器316编程所需要的高电压在本文中被称为烧穿电压。IC芯片302还含有加密模块314及验证模块308。Fab 301含有主密钥KM。在IC芯片302的设置期间,fab 301将主密钥KM及操作电源(未具体展示)两者提供到IC芯片302。Fab 301还为IC芯片302提供烧穿电压305以实现到OTP存储器316的写入。在来自fab 301的指示下,PUF 310产生唯一密钥KA且将KA提供到加密模块314。加密模块314将密钥KA加密且将经加密唯一密钥E(KM,KA)写入到OTP 316,其中E(KM,KA)表示用主密钥KM加密的唯一密钥KA。以此方式,PUF 310的输出的经加密版本在不使唯一密钥KA的值对IC芯片本身外部的任何实体可见的情况下存储于IC芯片302上。可在不向不具有主密钥KM的任何实体显露KA的情况下将密钥KA的经加密版本提供到检验器,如将在下一图中所见。将理解,OTP 316可呈其它形式,例如,现场可编程只读存储器,在此情形中存储器316的编程可在fab 401外部发生。使用类似技术的其它实施例也在本发明的范围内。

图3B描绘根据本发明的实施例的用于IC芯片证实的验证阶段的实例。在过程300B中,将IC芯片302以消息322呈现给检验器306。IC芯片302为检验器306提供经加密唯一密钥KA的副本。检验器306含有主密钥KM的副本,所述主密钥KM的副本用于将唯一密钥KA解密。检验器306将请求324发送到IC芯片302。在至少一个实例中,质询请求含有随机数据块。验证模块308从PUF 310接收密钥KA、使用KA对随机数据块执行已知运算并将结果作为消息326传回。已知运算可包含使用密钥KA变换随机数据块的任何运算,且可包含但不限于加密、散列函数或类似运算。在使用主密钥KM将唯一密钥KA解密之后,检验器306对先前发送到IC芯片302的随机数据块执行相同已知运算且将结果与来自IC芯片302的响应进行比较。如果所计算结果匹配来自IC芯片302的响应,那么芯片得到验证。如先前所提及,图3A及3B图解说明设置及验证过程的一般化版本。图4A、4B及5图解说明这些过程的更具体版本。

图4A描绘用于IC芯片证实的设置阶段的具体实例。在过程400A中,IC芯片402包含PUF 410、AES-128模块414、OTP存储装置416、密钥散列消息验证码(HMAC)安全散列算法1(SHA1)模块408、处理器418、存储器420及公共芯片ID 419。在至少一个实施例中,PUF 410经实施为常规SRAM PUF。通常常规SRAM PUF中的20%到30%的位不会跨越电压及温度可靠地加电到相同状态。在至少一个实施例中,通过在测试期间表征不可靠位且从PUF响应丢弃这些不可靠位而解决此错误率。期望从剩余可靠位获得足够熵以形成在IC芯片当中唯一的密码密钥。已展示,可需要约3x压缩来形成足够熵。因此,在至少一个实施例中,针对通常使用的128位的密钥长度,使用具有大约549位(例如,(128*3)/0.7)的SRAM阵列来实施常规SRAM PUF,实施SRAM阵列给出可靠的128位密码密钥。在测试期间,PUF 410接收对不可靠响应、电路技术及/或错误校正译码的任何必要屏蔽,使得由PUF 410产生可靠的128位数。在每一IC芯片中,128位数不会跨电压及温度操作条件而改变且在IC芯片当中为唯一的。

高级加密标准(AES)模块414为加密模块且用于将唯一密钥KA加密。HMAC-SHA1模块408为此实施例中的验证模块且将在验证阶段中进一步讨论。在至少一个实施例中,AES-128模块414利用计数器模式,其中公共芯片ID 419用作计数器。如同在先前实例中,fab 401含有主密钥KM。Fab 401将主密钥KM及烧穿电压405提供到IC芯片402。在fab 401的指示下,PUF 410产生密钥KA且将KA发送到AES-128加密模块414。在于图4A中图解说明的至少一个实施例中,AES-128模块414还接收公共芯片ID 419。在所展示的实施例中,经加密唯一密钥(即,E(KM,KA))的值是通过以下等式确定

E(KM,KA)=EAES-CTR(KM,pad128(PublicChipID),KA)

其中EAES-CTR为加密过程,pad128(PublicChipID)指示公共芯片ID 419经填补到128位,密钥KA为一个块长(128位)的纯文本,且主密钥KM(也为128位长)为AES加密密钥。经加密密钥E(KM,KA)经存储于IC芯片上的OTP存储器416中。

图4B描绘用于在图4A中所展示的实施例的IC芯片证实的验证阶段的实例。在过程400B中,当将IC芯片402呈现给检验器406时,IC芯片402将其公共芯片ID 419及经加密密钥E(KM,KA)提供于消息422中。从此点开始,可使用标准HMAC-SHA-1协议来验证IC芯片402。检验器406含有主密钥KM的副本,检验器使用所述主密钥KM的副本将经加密PUF密钥解密。在所展示的实施例中,检验器406还将公共芯片ID 419与主密钥KM一起使用以根据以下公式将经加密PUF密钥解密,

PUF密钥=DAES-CTR(KM,pad128(PublicChipID),E(KM,KA))

其中DAES-CTR为解密过程且参数与在加密过程中所使用的相同。检验器406产生随机消息R(其可为例如160位长)且将R以消息424发送到IC芯片402。在IC芯片402中,PUF 410产生唯一密钥KA且将所述密钥发送到HMAC-SHA1模块408。HMAC-SHA1模块408执行:

H[pad(KA||H[pad(KA||R)])],

其中KA为PUF密钥,||表示串联,H[]为SHA-1散列函数且pad()插入填补以形成具有512位的块大小的针对SHA-1的输入块。IC芯片402将160位输出以消息426发送回到检验器406。检验器406使用R及先前经解密PUF密钥执行相同运算。检验器406将其自身散列的结果与来自IC芯片406的160位输出进行比较。如果两个值匹配,那么IC芯片402得到验证。

在第二实施例中,在图4A及4B中所展示的实施方案经修改使得在设置阶段期间使用的加密电路可重新用于质询-响应验证。以此方式,不需要单独电路用于验证。图5描绘根据此第二实施例的用于IC芯片证实的验证阶段的实例。在过程500中,类似于先前实例,IC芯片502包含PUF 510、AES-128模块514、OTP存储装置516、处理器518、存储器520及公共芯片ID 519。应认识到,针对此实施例的设置阶段将与图4A的设置阶段等同且因此将不再次讨论。在与检验器506的初始接触之后,IC芯片502将经加密密钥E(KM,KA)及公共芯片ID 519以消息522发送到检验器506。检验器506含有主密钥KM的副本且能够将E(KM,KA)解密以获得唯一密钥KA。检验器506产生128位随机消息R且将R作为请求以消息524发送到IC芯片502。PUF 510产生密钥KA,所述密钥KA经发送到AES-128模块514。AES-128模块514用唯一密钥将R进行如下加密且将经加密消息作为消息526发送到检验器506:

E(R)=EAES-CTR(KA,pad128(PublicChipID),R)

其中E(R)为经加密消息R。当检验器506接收通信526时,检验器将E(R)进行如下解密:

DecryptedMsg=DAES-CTR(KA,pad128(PublicChipID),E(R))

如果经解密消息等于消息R,那么IC芯片502得到验证。

接下来转到图6,流程图600图解说明由制作设施或类似实体执行以用于提供对IC芯片的验证的实例性方法。fab或其它实体将主密钥提供(605)到IC芯片且指示(610)IC芯片使用主密钥将由IC芯片上的物理不可克隆函数(PUF)提供的密钥加密。fab还将烧穿电压提供(615)到IC芯片且指示(620)IC芯片将经加密密钥写入到一次性可编程存储器。

在图7中,流程图700图解说明由IC芯片执行以用于提供对IC芯片的验证的实例性方法。在此方法中,IC芯片上的加密模块从IC芯片上的物理不可克隆函数(PUF)接收(705)唯一、可再现密钥。加密模块例如从fab接收(710)主密钥,且使用主密钥将唯一密钥加密(715)。IC芯片接着将经加密唯一密钥写入(720)到非易失性存储器位置,例如一次性可编程存储器。此完成IC芯片的设置。

在图8中,流程图800描绘由IC芯片执行以用于运用检验器实体来验证IC芯片的实例性方法。所述方法通过将经加密唯一密钥提供(805)到检验器而开始。在至少一个实施例中,响应于来自检验器的请求而提供经加密唯一密钥。在至少一个实施例中,将IC芯片编程以在遇到适当读取器后自动提供经加密唯一密钥。IC芯片从检验器接收(810)消息R。IC芯片上的PUF产生(815)针对IC芯片的唯一密钥,且IC芯片使用所述唯一密钥对消息R执行(820)运算以创建回复。如较早所描述,运算可为加密、散列法或任何其它类型的运算,所述运算以可运用相同唯一密钥再现但难以以其它方式再现的方式更改消息R。IC芯片将回复消息发送(825)到检验器以完成检验过程。

如本文中所使用,术语“处理器”应被理解为指代各种硬件处理装置,其可涵盖例如微处理器、现场可编程栅极阵列(FPGA)、专用集成电路(ASIC)及其它类似硬件处理装置的装置。术语“模块”用于指代用以执行所要函数的软件及/或硬件的任何组合。即,模块(例如加密模块、验证模块、AES模块及/或HMAC模块)可实施为存储于存储器中且由处理器执行以执行加密、验证、散列或类似物的软件指令。模块还可作为逻辑电路完全实施于硬件中以执行所要函数。模块还可作为硬件与软件的组合而实施。

尽管已详细展示并描述各种实施例,但权利要求书并不限于任何特定实施例或实例。上文详细说明中无一者应视为暗示任何特定组件、元件、步骤、动作或功能为必要的使得其必须包含于权利要求书的范围中。以单数形式对元件的提及并不打算意指“一个且仅一个”(除非如此明确陈述),而是“一个或多个”。所属领域的技术人员所已知的上文所描述实施例中的元件的所有结构及功能等效物以引用方式明确并入本文中且打算由本发明权利要求书涵盖。因此,所属领域的技术人员将认识到,本文中所描述的示范性实施例可在上文所附权利要求书的精神及范围内以各种修改及更改实践。

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