加密密钥提供方法、半导体集成电路及加密密钥管理设备的制作方法

文档序号:7815218阅读:144来源:国知局
加密密钥提供方法、半导体集成电路及加密密钥管理设备的制作方法
【专利摘要】本发明涉及加密密钥提供方法、半导体集成电路及加密密钥管理设备。使用密码的第一设备通过PUF,生成设备唯一数据,并且第二设备根据所生成的设备唯一数据,生成一对助手数据和设备唯一ID。设备唯一数据具有生成环境所导致的波动,并将波动视为设备唯一ID的错误,助手数据充当用于纠正错误的校正数据。第二设备根据设备唯一ID和加密密钥生成散列函数。第二设备首先将助手数据和散列函数中的一个写入到第一设备,在通过写入来认证第一设备之后,在第一设备中写入助手数据和散列函数中的另一个。通过解密加密密钥,第一设备被允许使用密码。
【专利说明】加密密钥提供方法、半导体集成电路及加密密钥管理设备
[0001]对相关申请的交叉引用
[0002]包括说明书、附图以及摘要的于2013年9月24日提出的日本专利申请N0.2013-196532的公开以引用的方式全文并入本文中。

【技术领域】
[0003]本发明涉及加密密钥提供方法、半导体集成电路及加密密钥管理设备。具体而言,本发明可以适用于针对使用物理不可克隆设备的唯一数据的所生成的加密密钥的不正当的获取具有阻止能力(resistance property)的加密密钥提供方法、半导体集成电路及加密密钥管理设备。

【背景技术】
[0004]近年来,报告了针对安装在车辆中的电气单元(电子控制单元:ECU)的各种攻击的情况,诸如不正当的访问和不正当的冒充。在车载微计算机的相关技术中,在没有采取防止电子窃听的措施的情况下,用于加密与解密的密钥本身被写入;因此,易于盗窃加密密钥。显然,从安全性的角度来看,这样的不正当的行为(act)会导致严重的问题。对于具有针对这样的不正当的行为的高安全性的车载微计算机的需要越来越大。另一方面,车载微计算机中的故障和缺陷将对人的生命产生影响。因此,对故障和缺陷的分析是必需的。如果在微计算机上全部使用防窜改(tamper-resistance)技术以防止不正当的行为,则微计算机将具有高安全性,就可以防止不正当的行为。另一方面,车辆制造商、ECU制造商以及芯片制造商难以对故障和缺陷进行分析,给他们造成不便。
[0005]因此,研究使用利用物理不可克隆功能(PUF)生成的设备所特有的标识代码(或设备唯一 ID)的安全技术。在使用PUF的技术中,例如,将通过设备唯一 ID(标识)加密的散列函数写入ROM(只读存储器)的区域,并且利用通过设备唯一 ID解密的散列函数,来解密数据。因此,确保了安全性。
[0006]例如,在SRAM(静态随机存取存储器)通电时,根据初始值导出物理不可克隆功能(PUF) ο SRAM的初始值由于制造变化(manufacturing variat1n)而波动;因此,通过取足够大的比特数,它可以充当每一个设备的唯一值。另一方面,有可重复性的需求:从相同设备生成的设备唯一 ID应该具有相同值,即使它被生成许多次也是如此。这是因为有这样的可能性:如果从本来相同的设备生成不同的设备唯一 ID,则它可能被当做仿造品。然而,SRAM的初始值以及许多PUF可能取决于生成它们时所处的环境而具有波动,S卩,设备所处的环境温度的差异,电源电压等等。
[0007]专利文献I公开了能够生成初始唯一代码的半导体器件,该初始唯一代码是设备所特有的值,并包括随机比特差错。此半导体器件纠正初始唯一代码中所包括的错误,生成固定的设备唯一 ID (设备唯一 ID),并使用它来解密机密信息。在错误校正中,参考对应于固定的设备唯一 ID的校正数据。
[0008](专利文献)
[0009](专利文献I)日本未经审查的专利申请公开N0.2013-003431。


【发明内容】

[0010]由本发明人对专利文献I中所进行的研究揭示了下列新问题的存在。
[0011]对包括可以利用PUF来生成设备唯一 ID的半导体器件的设备,从诸如从外部耦合的服务器之类的外部设备(加密密钥管理设备)写入对应于设备唯一 ID的加密密钥;由此,可以构建使用加密密钥的密码系统并防止设备遭受各种攻击,诸如对设备的不正当的访问以及不正当的冒充。例如,当应用于安装在车辆中的ECU之间的加密通信时,外部设备(例如,服务器)通过利用使用PUF所生成的设备唯一 ID来加密要保密的密钥信息,生成散列函数,并将散列函数存储在ECU中,具体而言,存储在ECU中实现的MCU(微控制器单元)中。然而,散列函数在MCU的出厂时并未写入,而是可以在E⑶或车辆组装之后写入,或当车辆在修配厂修理时写入,等等。结果,可能在那时会发生欺骗加密密钥管理设备的不当的情况。
[0012]在这样的系统中,当在MCU中正确地写入规定的散列函数时,MCU被视为无缺陷的物品(item),而当散列函数写入失败时,MCU被视为有缺陷的物品。从价格的支付目标(payment target of the price)中排除有缺陷的MCU。可以考虑这样的系统:通过下载等获取利用散列函数加密的内容,并且所述加密的内容只有在正确地写入规定的散列函数之后才允许被使用。由于只有在正确地写入散列函数之后才对它进行收费,因此,如果存在恶意的用户则有这样的可能性:尽管正确地写入了散列函数,通过向加密密钥管理设备报告虚假的写入失败,发生逃避支付并允许使用内容的不当情况。如此,结果是存在这样的安全性缺陷:允许对于加密密钥的不正当的获取。
[0013]下面将说明对这样的问题的解决方案。通过阅读下面的本发明说明书的描述以及附图,本发明的其他问题和新特点将变得清楚。
[0014]根据一个实施例,解决方案如下所示。
[0015]即,它是一种方法,用于将加密密钥从第二设备提供到使用密码的第一设备,所述第二设备管理密码的加密密钥,并按如下方式配置。第一设备生成通过制造变化唯一地定义的设备唯一数据,以及第二设备根据由第一设备所生成的设备唯一数据,生成一对助手数据(helper data)和设备唯一 ID。这里,设备唯一数据具有生成环境所导致的波动,并将波动视为设备唯一 ID的错误,助手数据充当用于纠正错误的校正数据。在设备唯一数据中所生成的波动通过使用对应的助手数据被吸收,设备唯一 ID变为没有错误(波动)的并单独地为第一设备所定义的其所特有的代码。第二设备根据设备唯一 ID和加密密钥生成散列函数。助手数据和散列函数两者都被从第二设备写入到第一设备,并且第一设备解密加密密钥,允许使用密码。第二设备将助手数据和散列函数中的第一个写入到第一设备。在确认写入正常地执行之后,第二设备将助手数据和散列函数中的另一个写入到第一设备。
[0016]下面简要说明了通过一个实施例获取的效果。
[0017]S卩,在允许在第一设备中使用加密密钥之前,可以利用通过制造变化为第一设备单独地定义的其所特有的设备唯一 ID,来执行认证;因此,可以防止对于加密密钥的不正当的获取。

【专利附图】

【附图说明】
[0018]图1是示出了根据实施例1的加密密钥提供方法的顺序图;
[0019]图2是示出了根据实施例2的加密密钥提供系统的数据流图;
[0020]图3是示出了根据实施例2的加密密钥提供方法的顺序图;
[0021]图4是示出了根据实施例3的加密密钥提供系统的数据流图;
[0022]图5是示出了根据实施例3的加密密钥提供方法的顺序图;
[0023]图6是示出了根据实施例4的加密密钥提供系统的数据流图;
[0024]图7是示出了根据实施例4的加密密钥提供方法的顺序图;
[0025]图8是示出了应用于车辆的电系统的加密密钥提供系统的数据流图;以及
[0026]图9是示出了应用于网络终端的加密密钥提供系统的数据流图。

【具体实施方式】
[0027]1.实施例的概述
[0028]首先,将说明在本申请中所公开的本发明的典型的实施例的概述。在典型的实施例的概述说明中以括号引用的附图的数字符号只例示数字符号被附加到的组件的概念中所包括的内容。
[0029](I)〈在通过助手数据和散列函数的其中之一进行认证之后,提供助手数据和散列函数中的另一个〉
[0030]用于从第二设备(30)向使用密码的第一设备(20,21)提供加密密钥(HFl)的加密密钥提供方法按如下方式配置,其中所述第二设备(30)管理密码的加密密钥。
[0031]第一设备生成通过制造变化唯一地定义的设备唯一数据(UD)。
[0032]第二设备基于设备唯一数据(UD)生成一对助手数据(HD)和设备唯一 ID(UC)。设备唯一 ID(UC)是单独为第一设备所定义的其所特有的代码,通过使用对应的助手数据(HD),吸收生成环境所导致的设备唯一数据(UD)的波动。可以根据一个设备唯一数据(UD)生成多组助手数据(HDl,HD2)和设备唯一 ID (UCl,UC2)。
[0033]第二设备根据设备唯一 ID和加密密钥生成散列函数(HF2)。
[0034]第一设备基于散列函数和设备唯一 ID,解密加密密钥。
[0035]加密密钥提供方法包括下列步骤:
[0036]第一步骤,第一设备生成设备唯一数据(UD)并将它提供到第二设备;
[0037]第二步骤,第二设备根据所提供的设备唯一数据,生成一对助手数据(HD)和为第一设备唯一地定义的设备唯一 ID(UC);
[0038]第三步骤,第二设备根据所生成的设备唯一 ID和加密密钥生成散列函数(HF2);
[0039]第四步骤,从第二设备向第一设备传输助手数据和散列函数中的一个;
[0040]第五步骤,第一设备基于在第四步骤接收到的助手数据和散列函数中的一个,将响应数据传输到第二设备;
[0041]第六步骤,第二设备通过确认在第五步骤接收到的响应数据的有效性,来认证第一设备;
[0042]第七步骤,在第六步骤认证第一设备之后,第二设备将助手数据和散列函数中的另一个传输到第一设备;以及
[0043]第八步骤,第一设备基于由本身所生成的设备唯一数据和在第四步骤或第六步骤中接收到的助手数据和散列函数,解密加密密钥。
[0044]利用上文所描述的过程,在允许在第一设备(20,21)中使用加密密钥(HFl)之前,可以利用通过制造变化为第一设备单独地定义的其所特有的设备唯一 ID(UC),来执行认证;因此,可以防止对于加密密钥的不正当的获取。
[0045](2) <通过助手数据的认证>
[0046]具体而言,根据段落(I)的加密密钥提供方法按如下方式配置。
[0047]在第四步骤,第二设备将助手数据传输到第一设备。
[0048]在第五步骤,第一设备根据接收到的助手数据再现设备唯一 ID(UC),基于再现的设备唯一 ID创建响应数据,并将响应数据传输到第二设备。
[0049]在第六步骤,通过将响应数据与期望值数据进行比较,第二设备来确认响应数据的有效性,其中期望值数据是基于在第二步骤所生成的设备唯一 ID(UC)的。
[0050]在第七步骤,在第六步骤中认证第一设备之后,第二设备将散列函数(HF2)传输到第一设备。
[0051]利用上文所描述的过程,可以在认证之后(即,在确认已经正常地建立通信路径之后),将散列函数作为加密密钥信息来传输,因此可以防止对于加密密钥的不正当的获取。
[0052](3) <两组设备唯一 ID和助手数据>
[0053]具体而言,根据段落(2)的加密密钥提供方法按如下方式配置。
[0054]在第二步骤,根据所提供的设备唯一数据,第二设备生成为第一设备唯一定义的第一设备唯一 ID(UCl)和用于生成第一设备唯一 ID的第一助手数据(HDl)。根据所提供的设备唯一数据,第二设备生成不同于第一设备唯一 ID的第二设备唯一 ID(UC2)和用于生成第二设备唯一 ID的第二助手数据(HD2)。
[0055]在第三步骤,第二设备根据第二设备唯一 ID和加密密钥,生成散列函数(HF2)。
[0056]在第五步骤,第一设备根据接收到的第一助手数据再现第一设备唯一 ID(UCl),基于再现的第一设备唯一 ID创建响应数据,并将响应数据传输到第二设备。
[0057]在第六步骤,第二设备通过将响应数据与期望值数据进行比较,来确认响应数据的有效性,其中期望值数据是基于在第二步骤所生成的第一设备唯一 ID(UCl)的。
[0058]在第七步骤,在第六步骤中认证第一设备之后,第二设备将第二助手数据进一步传输到第一设备。
[0059]在第八步骤,第一设备基于由其本身所生成的设备唯一数据(UD),以及在第七步骤接收到的第二助手数据,生成第二设备唯一 ID(UC2),并根据再现的第二设备唯一 ID和在第七步骤中接收到的散列函数,解密加密密钥(HFl)。
[0060]利用上文所描述的过程,可以给用于认证的设备唯一 ID(UCl)和用于保护加密密钥的设备唯一 ID(UC2)设置互相不同的值;因此,可以提高安全性。
[0061](4)〈制作响应的摘要>
[0062]具体而言,根据段落(3)的加密密钥提供方法按如下方式配置。
[0063]在第五步骤,第一设备利用不同于散列函数的另一散列函数,创建再现的第一设备唯一 ID的摘要(digest) (H(UCl))作为响应数据。
[0064]在第六步骤,第二设备利用与另一散列函数相同的散列函数,创建在第二步骤所生成的第一设备唯一 ID的摘要(H(UCl))作为期望值数据,并通过将响应数据与期望值数据进行比较,确认响应数据的有效性。
[0065]利用上文所描述的过程,可以保护在认证时传送的设备唯一 ID(UCl);因此,可以进一步提高安全性。
[0066](5)通过HF2 =助手数据2+UC2加密的加密密钥
[0067]具体而言,根据段落3的加密密钥提供方法按如下方式配置。
[0068]在第七步骤,第二设备组合并编码(scramble)散列函数和第二助手数据,并将编码的数据传输到第一设备。
[0069]在第八步骤,第一设备通过解码被编码的数据,解密散列函数和第二助手数据。
[0070]利用上文所描述的过程,可以保护在写入密钥信息时传送的散列函数(HF2)和助手数据(HD2);因此,可以进一步提高安全性。
[0071](6) <通过散列函数的认证>
[0072]具体而言,根据段落(I)的加密密钥提供方法按如下方式配置。
[0073]在第四步骤,第二设备将散列函数(HF2)传输到第一设备。
[0074]在第五步骤,第一设备基于接收到的散列函数创建响应数据,并将响应数据传输到第二设备。
[0075]在第六步骤,第二设备通过将响应数据与期望值数据进行比较,来确认响应数据的有效性,其中期望值数据是基于在第三步骤中所生成的散列函数的。
[0076]在第七步骤,在第六步骤中认证第一设备之后,第二设备将助手数据(HD)传输到第一设备。
[0077]利用上文所描述的过程,可以在认证之后(即,在确认已经正常地建立通信路径之后),传输用于生成设备唯一 ID(UC)的助手数据(HD);因此,可以防止对于加密密钥的不正当的获取。
[0078](7) <配备有PUF生成电路的LSI (通过助手数据的认证)>
[0079]半导体集成电路(21)配置有:唯一数据生成单元(I),其用于生成通过制造变化唯一地定义的设备唯一数据;以及加密密钥解密单元(6),其用于通过使用由外部设备基于设备唯一数据所生成的并从外部设备提供的加密密钥信息,解密加密密钥。半导体集成电路按如下方式配置。
[0080]半导体集成电路通过唯一数据生成单元来生成设备唯一数据(UC),并将设备唯一数据提供到外部设备。
[0081]外部设备从半导体集成电路接收设备唯一数据,并根据接收到的设备唯一数据生成助手数据(HD)和设备唯一 ID(UC)。设备唯一 ID(UC)是单独定义的半导体集成电路所特有的代码,通过使用对应的助手数据(HD)吸收生成环境所导致的设备唯一数据(UD)的波动。外部设备将助手数据传输到半导体集成电路。
[0082]半导体集成电路接收助手数据,根据接收到的助手数据和设备唯一数据(2)生成对应的设备唯一 ID (UC),根据所生成的设备唯一 ID (4_1)生成响应数据(H(UC)),并将响应数据传输到外部设备。
[0083]外部设备接收响应数据,并将接收到的响应数据与期望值数据(H(UC))进行比较,其中期望值数据是根据由外部设备本身所生成的设备唯一 ID(4_2,5)而产生的。
[0084]当比较结果一致时,外部设备根据设备唯一 ID和加密密钥(7)生成散列函数(HF2),并将散列函数传输到半导体集成电路。
[0085]半导体集成电路接收散列函数,并根据由其本身所生成的设备唯一 ID和接收到的散列函数(6),解密加密密钥。
[0086]根据上文所描述的配置,在允许在半导体集成电路(21)中使用加密密钥之前,可以利用通过制造变化单独地定义的半导体集成电路所特有的设备唯一 ID(UC),来执行认证;因此,可以防止对于加密密钥的不正当的获取。
[0087](8) <两组设备唯一 ID和助手数据>
[0088]具体而言,根据段落(7)的半导体集成电路按如下方式配置。
[0089]外部设备根据接收到的设备唯一数据(3),生成第一和第二助手数据(HDl,HD2)和第一和第二设备唯一 ID (UCl, UC2),并且外部设备将第一助手数据传输到半导体集成电路。
[0090]半导体集成电路接收第一助手数据,根据接收到的第一助手数据(HDl)和设备唯一数据(2_1)生成对应的第一设备唯一 ID(UCl),基于所生成的第一设备唯一 ID生成响应数据(H(UC1)),并将响应数据传输到外部设备。
[0091]外部设备接收响应数据,并将接收到的响应数据与期望值数据(H(UCl))进行比较,其中期望值数据是根据由外部设备其本身(5)所生成的第一设备唯一 ID(UCl)生成的。
[0092]当比较结果一致时,外部设备根据第二设备唯一 ID和加密密钥生成散列函数(HF2),并将第二助手数据和散列函数传输到半导体集成电路(7,8,9)。
[0093]半导体集成电路接收第二助手数据和散列函数,根据接收到的第二助手数据和设备唯一数据(10,2_2)生成第二设备唯一 ID,并根据所生成的第二设备唯一 ID和接收到的散列函数,解密加密密钥(HFl)。
[0094]根据上文所描述的配置,可以给用于认证的设备唯一 ID(UCl)和用于保护加密密钥的设备唯一 ID(UC2)设置相互不同的值;因此,可以提高安全性。
[0095](9) <制作响应的摘要>
[0096]具体而言,根据段落(8)的半导体集成电路按如下方式配置。
[0097]半导体集成电路利用不同于散列函数(4_3)的另一散列函数,创建再现的第一设备唯一 ID的摘要作为响应数据。
[0098]外部设备利用与另一散列函数(4_4)相同的散列函数,创建由其本身所生成的第一设备唯一 ID的摘要,作为期望值数据,并将响应数据与期望值数据(5)进行比较。
[0099]根据上文所描述的配置,可以保护在认证时传送的设备唯一 ID(UCl);因此,可以进一步提高安全性。
[0100](10) <通过HF2 =助手数据2+UC2加密的加密密钥>
[0101]外部设备通过组合并编码散列函数和第二助手数据(9),生成加密密钥再现数据({Enc (HFl),HD2}),并将加密密钥再现数据传输到半导体集成电路。
[0102]半导体集成电路接收加密密钥再现数据,并通过解码接收到的加密密钥再现数据
(10),来解密散列函数和第二助手数据。
[0103]根据上文所描述的配置,可以保护在写入密钥信息时传送的散列函数(HFl)和助手数据(HD2);因此,可以进一步提高安全性。
[0104](11)〈读取器/写入器〉
[0105]具体而言,根据段落(7)到段落(10)中的一个的半导体集成电路按如下方式配置。
[0106]半导体集成电路耦合到与外部设备进行通信的读取器/写入器(22),并通过读取器/写入器与外部设备执行数据的传输和接收。
[0107]根据上文所描述的配置,可以在实现之前的阶段中提供可以让加密密钥信息写入半导体集成电路(21)中的环境。
[0108](12)〈对于配备有与外部设备的接口的终端设备的实现>
[0109]具体而言,根据段落(7)到段落(10)中的一个的半导体集成电路按如下方式配置。
[0110]半导体集成电路在配备有与外部设备进行通信的接口(27)的终端设备(20)中实现,并通过终端设备与外部设备执行数据的传输和接收。
[0111]根据上文所描述的配置,可以在半导体集成电路(21)在终端设备(20)中实现的状态下,提供可以让加密密钥信息写入半导体集成电路(21)中的环境。
[0112](13)〈加密通信接口〉
[0113]具体而言,根据段落(7)到段落(12)中的一个的半导体集成电路按如下方式配置。
[0114]半导体集成电路进一步配备有加密电路和使用解密的加密密钥的解密电路;以及加密通信接口(25)。
[0115]根据上文所描述的配置,可以提供可以使用由外部设备写入的加密密钥来执行加密通信的半导体集成电路。
[0116](14)〈加密内容的解密〉
[0117]具体而言,根据段落(7)到段落(12)中的一个的半导体集成电路按如下方式配置。
[0118]半导体集成电路进一步配备有使用解密的加密密钥的密码解密电路(28)。半导体集成电路可以访问用于存储使用与加密密钥相同的加密密钥加密的数据的非易失性存储器(29),并可以将存储在非易失性存储器中的数据提取(fetch)到密码解密电路。
[0119]根据上文所描述的配置,可以提供这样的半导体集成电路(21),该半导体集成电路(21)可以通过将加密密钥信息写入到半导体集成电路中,将存储在非易失性存储器
(29)中的加密的数据(内容)变成可用(或激活)状态。
[0120](15)〈加密密钥管理设备(利用助手数据的认证)>
[0121]加密密钥管理设备(30)耦合到终端设备(20,21),终端设备(20,21)配备有用于生成通过制造变化唯一地定义的设备唯一数据(UD)的唯一数据生成单元(I),以及根据加密密钥信息来解密加密密钥(HFl)的加密密钥解密单元(6)。加密密钥管理设备根据设备唯一数据生成加密密钥信息,并且将加密密钥信息提供到终端设备。加密密钥管理设备按如下方式配置。
[0122]终端设备通过唯一数据生成单元(I),来生成设备唯一数据(UD),并将设备唯一数据提供到加密密钥管理设备。
[0123]加密密钥管理设备从终端设备接收设备唯一数据,并根据接收到的设备唯一数据(UD)生成助手数据(HD)和设备唯一 ID (UC)。设备唯一 ID(UC)是单独定义的终端设备所特有的代码,通过使用对应的助手数据(HD)吸收生成环境所导致的设备唯一数据(UD)的波动。加密密钥管理设备将助手数据传输到终端设备。
[0124]终端设备接收助手数据,根据接收到的助手数据(HD)和设备唯一数据(UD) (2)生成对应的设备唯一 ID (UC),根据所生成的设备唯一 ID (4_1,4_3)生成响应数据(H(UC)),并将响应数据传输到加密密钥管理设备。
[0125]加密密钥管理设备接收响应数据,将接收到的响应数据(H(UC))与所生成的期望值数据(H(UC))进行比较,其中期望值数据是根据由加密密钥管理设备其本身所生成的设备唯一 ID(4_2,5)的。
[0126]当比较结果一致时,加密密钥管理设备根据设备唯一 ID和加密密钥(7)生成散列函数(HF2),并将散列函数传输到终端设备。
[0127]终端设备接收散列函数,并根据由其本身所生成的设备唯一 ID(UC)和接收到的散列函数(HF2),解密加密密钥(HFl)。
[0128]根据上文所描述的配置,在允许在终端设备(20)中使用加密密钥之前,加密密钥管理设备(30)可以利用通过制造变化单独定义的终端设备所特有的设备唯一 ID(UC),来执行认证;因此,可以防止对于加密密钥的不正当的获取。
[0129](16)〈两组设备唯一 ID和助手数据>
[0130]具体而言,根据段落(15)的加密密钥管理设备按如下方式配置。
[0131]加密密钥管理设备根据接收到的设备唯一数据(UD) (3),生成第一和第二助手数据(HD1,HD2)和第一和第二设备唯一 ID(UC1,UC2),并且加密密钥管理设备将第一助手数据传输到终端设备。
[0132]终端设备接收第一助手数据,根据接收到的第一助手数据(HDl)和设备唯一数据,生成对应的第一设备唯一 ID(UC),基于所生成的第一设备唯一 ID(UC)生成响应数据(H(UC)),并将响应数据传输到加密密钥管理设备。
[0133]加密密钥管理设备接收响应数据,并将接收到的响应数据(H(UC))与期望值数据(H(UC))进行比较,其中期望值数据(H(UC))是根据由其本身所生成的第一设备唯一ID(4_2,5)来生成的。
[0134]当比较结果一致时,加密密钥管理设备根据第二设备唯一 ID和加密密钥(7,8)生成散列函数(HF2),并将第二助手数据和散列函数传输到终端设备。
[0135]终端设备接收第二助手数据和散列函数,根据接收到的第二助手数据(HD2)和设备唯一数据(UD)生成第二设备唯一 ID (UC2),并根据所生成的第二设备唯一 ID和接收到的散列函数(6),解密加密密钥。
[0136]根据上文所描述的配置,可以给用于认证的设备唯一 ID(UCl)和用于保护加密密钥的设备唯一 ID(UC2)设置相互不同的值;因此,可以提高安全性。
[0137](17)制作响应的摘要
[0138]具体而言,根据段落(16)的加密密钥管理设备按如下方式配置。
[0139]终端设备利用不同于散列函数(4_1)的另一散列函数,创建再现的第一设备唯一ID(UCl)的摘要(H(UCl))作为响应数据。
[0140]加密密钥管理设备利用与另一散列函数相同的散列函数,创建由其本身所生成的第一设备唯一 ID(UC)的摘要(H(UCl))作为期望值数据,并将响应数据与期望值数据({Enc(HFl), HD2}) (5)进行比较。
[0141]根据上文所描述的配置,可以保护在认证时传送的设备唯一 ID(UCl);因此,可以进一步提高安全性。
[0142](18) <通过HF2 =助手数据2+UC2加密的加密密钥>
[0143]具体而言,根据段落(16)的加密密钥管理设备按如下方式配置。
[0144]加密密钥管理设备通过组合并编码散列函数(HF2)和第二助手数据(HD2) (9),生成加密密钥再现数据,并将加密密钥再现数据传输到终端设备。
[0145]终端设备接收加密密钥再现数据,并通过解码接收到的加密密钥再现数据(10),来解密散列函数和第二助手数据。
[0146]根据上文所描述的配置,可以保护在写入密钥信息时传输的散列函数(HF2)和助手数据(HD2);因此,可以进一步提高安全性。
[0147](19)〈配备有PUF生成电路的LSI (通过散列函数的认证)>
[0148]半导体集成电路(21)配备有:用于生成通过制造变化单独定义的设备唯一数据(UD)的唯一数据生成单元(I);以及用于通过使用基于设备唯一数据由外部设备(30)所生成的并从外部设备提供的加密密钥信息,来解密加密密钥(HFl)的加密密钥解密单元(6)。半导体集成电路(21)按如下方式配置。
[0149]半导体集成电路通过唯一数据生成单元,来生成设备唯一数据(UD),并将设备唯一数据提供到外部设备。
[0150]外部设备从半导体集成电路接收设备唯一数据,并根据接收到的设备唯一数据生成助手数据(HD)和设备唯一 ID(UC)。设备唯一 ID(UC)是单独定义的半导体集成电路所特有的代码,通过使用对应的助手数据(HD),吸收生成环境所导致的设备唯一数据的波动。
[0151]外部设备根据设备唯一 ID和加密密钥生成散列函数(HF2),并将散列函数传输到半导体集成电路。
[0152]半导体集成电路接收散列函数,根据接收到的散列函数(HF2) (4_5)生成响应数据,并将响应数据传输到外部设备。
[0153]外部设备接收响应数据,将接收到的响应数据与由其本身所生成的期望值数据进行比较(5),当比较结果一致时,外部设备将助手数据传输到半导体集成电路。
[0154]半导体集成电路接收助手数据,根据接收到的助手数据(HD)和设备唯一数据(UD)生成对应的设备唯一 ID(UC),并根据所生成的设备唯一 ID和接收到的散列函数(6)解密加密密钥(HFl)。
[0155]根据上文所描述的配置,在允许在半导体集成电路中使用加密密钥之前,可以利用通过制造变化单独定义的半导体集成电路所特有的设备唯一 ID,来执行认证;因此,可以防止对于加密密钥的不正当的获取。
[0156](20)〈加密密钥管理设备(通过散列函数的认证)>
[0157]加密密钥管理设备(30)耦合到终端设备(20,21),终端设备(20,21)配备有用于生成通过制造变化唯一地定义的设备唯一数据(UD)的唯一数据生成单元(I),以及根据加密密钥信息来解密加密密钥(HFl)的加密密钥解密单元(6)。加密密钥管理设备根据设备唯一数据生成加密密钥信息,并将加密密钥信息提供到终端设备,并且按如下方式配置。
[0158]加密密钥管理设备从终端设备接收设备唯一数据(UD),并基于接收到的设备唯一数据(UD)生成助手数据(HD)和设备唯一 ID (UC)。设备唯一 ID (UC)是单独定义的终端设备所特有的代码,通过使用对应的助手数据(HD),吸收生成环境所导致的设备唯一数据(UD)的波动。
[0159]加密密钥管理设备根据设备唯一 ID和加密密钥,生成散列函数(HF2),并将散列函数传输到终端设备。
[0160]终端设备接收散列函数,根据接收到的散列函数(HF2)生成响应数据,并将响应数据传输到加密密钥管理设备。
[0161]加密密钥管理设备接收响应数据,将接收到的响应数据与由其本身所生成的期望值数据进行比较(5),当比较结果一致时,加密密钥管理设备将助手数据(HD)传输到终端设备。
[0162]终端设备接收助手数据,根据接收到的助手数据(HD)和设备唯一数据(UD),生成对应的设备唯一 ID (UC),并根据所生成的设备唯一 ID和接收到的散列函数(6),解密加密密钥(HFl)。
[0163]根据上文所描述的配置,在允许在终端设备(20,21)中使用加密密钥之前,力口密密钥管理设备(30)可以利用通过制造变化单独定义的终端设备所特有的的设备唯一ID(UC),来执行认证;因此,可以防止对于加密密钥的不正当的获取。
[0164]2.实施例的细节
[0165]将进一步详细地说明实施例。
[0166](实施例1)
[0167]<在通过助手数据和散列函数中一个的认证之后,提供另一个>
[0168]根据实施例1的加密密钥提供方法将加密密钥HFl从第二设备30提供到使用密码的第一设备(20,21),其中第二设备30管理密码的加密密钥。第一设备,例如是MCU21,通过读取器/写入器22耦合到充当加密密钥管理设备(诸如服务器)的外部设备30。同样优选地,代替MCU21,利用MCU21实现的E⑶通过经过OBD-1I (机载诊断版本2 (On-BoardDiagnostics Vers1n II))稱合的重新编程工具22,稱合到诸如服务器之类的外部设备30。进一步优选地,第一设备是利用机载(on-board)MCU21实现的终端设备20,通过在MCU21的内部或外部所提供的通信接口,通过因特网、LAN(局域网),及其他无线或有线通信线路,耦合到诸如服务器之类的外部设备30。另外优选地,第一设备(20,21)和第二设备30在单一封装中实现,或在相同衬底上实现。在该情况下,通信接口和通信路径实现得非常简单,或可以省略。图1示出了作为这些配置的代表性的情况的MCU21、读取器/写入器22,以及加密密钥管理设备30之间的通信的顺序图,其中,时间在垂直方向上示出。上文所描述的内容同样适用于下面将描述的图3,图5,以及图7。因此,在实施例2,实施例3,以及实施例4中将省略其说明。
[0169]第一设备(例如,MCU) 21生成通过制造变化唯一地定义的设备唯一数据UD。可以通过使用例如物理不可克隆功能(PUF)来生成设备唯一数据UD。更具体地说,可以根据在通电时的SRAM的初始值等来定义设备唯一数据W。设备唯一数据UD具有一定的波动,这取决于生成它时所处的环境,诸如设备的温度和电源电压。这被视为设备唯一数据UD中所包括的错误(比特错误)。
[0170]第二设备(诸如服务器之类的外部设备)30基于设备唯一数据UD,生成一对助手数据HD和设备唯一 ID (UC)。设备唯一 ID (UC)是单独定义的第一设备21所特有的代码,通过使用对应的助手数据HD吸收生成环境所导致的设备唯一数据UD的波动。可以根据一个设备唯一数据(M))生成多组助手数据(HD1,HD2)和设备唯一 ID(UC1,UC2)。
[0171]第二设备(诸如服务器之类的外部设备)30根据设备唯一 ID(UC)和加密密钥HF1,生成散列函数HF2。
[0172]第一设备(例如,MCU) 21根据散列函数HF2和设备唯一 ID (UC),解密加密密钥HFl。
[0173]图1中所示出的加密密钥提供方法是MCU21、读取器/写入器22,以及加密密钥管理设备30 (作为这些配置的代表性的情况)之间的通信的顺序图,其中,在垂直方向上示出了时间。
[0174]MCU21生成设备唯一数据UD,并通过读取器/写入器22,将唯一数据UD提供给加密密钥管理设备30 (第一步骤)。假设读取器/写入器22和加密密钥管理设备30之间的用户认证已经完成,会话已经激活。基于该假设,进一步假设的是通过读取器/写入器22,从加密密钥管理设备30向MCU21发出设备唯一数据UD的读取命令。在MCU21和加密密钥管理设备30之间的通信中,读取器/写入器22始终介于在它们之间。然而,读取器/写入器22不会改变数据;因此,下列说明省略了关于读取器/写入器22的干预的描述。
[0175]加密密钥管理设备30根据MCU21所提供的设备唯一数据UD,生成一对助手数据HD和单独定义的MCU21所特有的设备唯一 ID(UC)(第二步骤)。
[0176]加密密钥管理设备30根据所生成的设备唯一 ID(UC)和加密密钥HF1,生成散列函数HF2 (第三步骤)。例如,通过将加密密钥HFl视为消息,并通过使用设备唯一 ID (UC)作为加密密钥,对加密密钥HFl执行加密,生成散列函数HF2。
[0177]加密密钥管理设备30将助手数据HD和散列函数HF2中的一个传输到MCU21 (第四步骤)。
[0178]MCU21根据在第四步骤中接收到的助手数据HD或散列函数HF2,将响应数据传输到加密密钥管理设备30 (第五步骤)。根据接收到的助手数据HD或散列函数HF2,生成响应数据。响应数据可以是任意格式,只要它可以在加密密钥管理设备30中被验证为传输源。
[0179]加密密钥管理设备30通过确认在第五步骤接收到的响应数据的有效性,来认证MCU21 (第六步骤)。加密密钥管理设备30根据在第三步骤生成的设备唯一 ID (UC),在认证(第六步骤)之前,生成用于验证响应数据的期望值数据。
[0180]在第六步骤中认证MCU21之后,加密密钥管理设备30将助手数据HD和散列函数HF2中的另一个传输到MCU21 (第七步骤)。
[0181]MCU21根据由其本身所生成的设备唯一数据(UD),以及在第四步骤或第六步骤接收到的助手数据(HD)和散列函数(HF2),来解密加密密钥HFl (第八步骤)。
[0182]根据上文所描述的过程,在允许在第一设备(例如,MCU21)中使用加密密钥(HFl)之前,可以利用通过制造变化单独定义的第一设备(例如,MCU21)所特有的设备唯一ID(UC),来执行认证;因此,可以防止对于加密密钥的不正当的获取。
[0183]如上文所描述的,发现了下列问题:S卩,如果有恶意用户,则通过向加密密钥管理设备报告虚假的写入失败,即使正常地写入散列函数,也有逃避收费并允许使用第一设备(例如,MCU21)的不当的可能性。这是因为,当在第一设备(例如,MCU21)中正常地写入散列函数时,第一次执行收费。另一方面,在本实施例中,首先使用设备唯一 ID(UC)来执行认证。因此,可以通过将成功的认证视为正常写入来执行收费。当认证不成功时,不提供用于再现加密密钥的散列函数HF2。当预先提供了为加密密钥信息的散列函数HF2时,不提供助手数据HD以防止对于加密密钥的使用,其中该助手数据HD是用于从加密密钥信息提取加密密钥的信息。认证成功但助手数据HD和散列函数HF2中的另一个的提供(第七步骤)不成功的情况是很少的。这样的情况应该作为设备故障,通信故障等等来处理。即使恶意用户造成这样的情况,也很难使用该情况来逃避收费等等。如此,可以防止对于加密密钥的不正当的获取。
[0184](实施例2)
[0185]<通过助手数据的认证>
[0186]图2是示出了根据实施例2的加密密钥提供系统的数据流程图。使用密码的第一设备(20,21)和为密码管理加密密钥HFl的第二设备30彼此耦合。被示为“电路”的每一个区块都可以被配置成具有块的功能的独立电路,或者可以被配置成通过在诸如CPU之类的处理器中操作的软件实现的功能。多个电路块的功能可以通过一个电路来实现,或者被示为电路块的块的一部分的功能可以通过另一电路块来实现。如此,实现功能的电路或软件的配置是任意的。与上文所说明的实施例1的情况相同,第一设备是例如MCU21,并通过读取器/写入器22耦合到充当加密密钥管理设备的诸如服务器之类的外部设备30。可另选地,第一设备是利用机载MCU21实现的终端设备20,并通过在MCU21的内部或外部提供的通信接口,耦合到诸如服务器之类的外部设备(第二设备)30。虽然未具体地限制,但是,第一设备(20,21)和第二设备30之间的通信路径配置有一个系统,例如,带有在相应的设备中提供的通信接口。然而,在图2中省略了通信接口,并且示出了用于每个数据的传输和接收的单独线路。第一设备(20,21)和第二设备30之间的通信利用时间共享数据包,例如,通过通信接口(未示出)利用一个通信协议来执行。上文所描述的内容同样适用于下面将描述的图4以及图6。因此,在实施例3,以及实施例4中将省略其说明。
[0187]第一设备(20,21)配置有唯一数据生成单元(PUF) 1、唯一 ID生成电路2、摘要生成电路4_1,以及HFl解密电路6。唯一数据生成单元(PUF)I生成设备唯一数据UD。如上文所描述的,设备唯一数据UD包括生成环境所导致的波动,S卩,错误(比特错误)。将所生成的设备唯一数据UD传输到第二设备30,还将其提供给唯一 ID生成电路2。唯一 ID生成电路2根据PUFl所生成的设备唯一数据UD和由第二设备30所提供的助手数据HD,生成设备唯一 ID(UC)。即使在由PUFl所生成的设备唯一数据UD中存在生成环境所导致的波动,该波动也被助手数据HD所吸收,S卩,错误(比特错误)被校正,设备唯一数据UD便变成高可重复性的数据。将设备唯一 ID(UC)提供到摘要生成电路4_1和HFl解密电路6。摘要生成电路4_1使用规定的散列函数,根据设备唯一 ID(UC),生成消息摘要(在下文中,简称为“摘要”)H(UC)。将所生成的摘要H(UC)传输到第二设备30。HFl解密电路6利用设备唯一ID(UC),解密从第二设备30传输的经加密的加密密钥HFl,并获取加密密钥HFl。
[0188]这些电路块可以分别作为独立的电路块内置在MCU21中,或作为一个加密算术加速器来实现。此外,这些电路块还可以部分地或完全地使用内置在MCU21中的CPU(中央处理单元),诸如闪存(注册商标)、SRAM等等之类的非易失性存储器,通过软件的功能来实现。唯一数据生成单元(PUF) I在被CPU用作工作区的SRAM通电时读取初始值,并将读取的初始值定义为设备唯一数据W。
[0189]第二设备30配置有用于生成一对助手数据和设备唯一 ID的生成电路3,摘要生成电路4_2、比较器电路5,以及HF2生成电路7。HF2生成电路7包括用于将HFl加密为加密密钥的加密电路8。生成电路3根据从第一设备(20,21)所提供的设备唯一数据UD,生成一对助手数据HD和设备唯一 ID(UC)。对于包括生成环境导致的波动,即,错误(比特错误)的设备唯一数据UD,可以通过使用助手数据HD来吸收波动(纠正错误),并生成对应的设备唯一 ID(UC)。具有该功能的电路的示例是第一设备(20,21)中所包括的唯一 ID生成电路2。将由生成电路3所生成的助手数据HD传输到第一设备(20,21)的唯一 ID生成电路2。将由生成电路3所生成的设备唯一 ID(UC)提供到摘要生成电路4_2,以生成摘要H(UC)。将所生成的摘要H(UC)发送到比较器电路5,并将其与由第一设备(20,21)的摘要生成电路4_1所生成的摘要H(UC)进行比较。比较器电路5配置有,例如,CRC(循环冗余校验)电路。当比较器电路5的比较结果是两个摘要被发现是一致的时候,将使能信号输出到HF2生成电路7。当确认两个摘要一致时,HF2生成电路7将加密密钥HFl发送到加密电路8,并通过将设备唯一 ID(UC)用为加密密钥进行加密而生成散列函数HF2,作为加密的加密密钥Enc (HFl)。将散列函数HF2传输到第一设备(20,21)的HFl解密电路6。
[0190]图3是示出了根据实施例2的加密密钥提供方法的顺序图。
[0191]读取器/写入器22的操作员设置IC卡并执行用户认证。例如,操作员输入用户ID和密码。将认证信息从读取器/写入器22传输到加密密钥管理设备30。加密密钥管理设备30根据传输的认证信息,进行认证,当操作员被认证为有效用户时,激活会话。在操作员被认证为有效用户之前,从读取器/写入器22到MCU21的访问,例如,对MCU21中的存储器和寄存器的读取被禁止。
[0192]当激活会话时,加密密钥管理设备30通过读取器/写入器22向MCU21发出设备唯一数据读取命令。作为响应,MCU21生成设备唯一数据(UD),并通过读取器/写入器22,将设备唯一数据(M))传输到加密密钥管理设备30。在下文,MCU21和加密密钥管理设备30之间的通信都是通过读取器/写入器22执行的。然而,以下的说明在省略短语“通过读取器/写入器22”的情况下进行。加密密钥管理设备30根据传输的设备唯一数据(UD),生成一对助手数据HD和设备唯一 ID (UC)。加密密钥管理设备30只将助手数据HD首先传输到MCU21。MCU21将传输的助手数据HD写入到非易失性存储器等等,并根据助手数据HD和在MCU21中所生成的设备唯一数据UD,生成设备唯一 ID(UC)。校正设备唯一数据UD中所包括的错误(比特错误),并生成高可重复性的设备唯一 ID (UC)。将所生成的设备唯一ID(UC)制成摘要,并将其作为消息摘要H(UC),传输到加密密钥管理设备30。加密密钥管理设备30根据以前生成的设备唯一 ID(UC),预先生成摘要H(UC),作为用于验证响应数据的期望值数据。加密密钥管理设备30确认传输的摘要H(UC)和由其本身在内部生成的摘要H(UC) —致。当一致时,加密密钥管理设备30生成散列函数HF2,并将它传输到MCU21。MCU21将传输的散列函数HF2写入到非易失性存储器。在此时刻之后,MCU21被允许解密并使用加密密钥HFl。根据上文所描述的过程,完成加密密钥从加密密钥管理设备30向MCU21的提供。
[0193]为了使MCU21使用加密密钥HF1,助手数据HD和散列函数HF2两者都是必需的。这是因为,设备唯一 ID (UC)是必需的,以便通过解密散列函数HF2获取HF1,并因为需要通过使用助手数据HD,吸收内部地生成的设备唯一数据UD中存在的波动,以便获取设备唯一ID(UC)。如已经说明的,如果助手数据HD和散列函数HF2两者同时传输,则会产生安全缺陷,逃避对于写入加密密钥的收费的不正当的行为将被允许。例如,当MCU21的用户和读取器/写入器22的操作员是恶意的,如果助手数据HD和散列函数HF2两者同时传输,则通过向加密密钥管理设备30报告虚假的写入失败,逃避对于写入加密密钥的收费是可能的,尽管可能从该时间将加密密钥HFl用于MCU21中。另一方面,根据图3中所示出的加密密钥提供方法,可以解决本问题。在MCU21使用加密密钥HFl所需的两个参数助手数据HD和散列函数HF2中,只有助手数据HD被首先写入MCU21中。在利用摘要H(UC)确认MCU21可以利用所提供的助手数据HD生成适当的设备唯一 ID(UC)之后,散列函数HF2被作为另一个参数来传输。对摘要H(UC)的确认充当证明真正的MCU21的认证。摘要H(UC)对应于认证中的响应数据的回复。即使系统被配置为照原样回复设备唯一 ID (UC),也在理论上解决了问题。然而,产生了另一个安全缺陷:设备唯一 ID(UC)会由于其他攻击而被泄露。可以利用设备唯一 ID(UC)的摘要作出回复,而不是照原样回复设备唯一 ID (UC),来进一步提高安全性。
[0194]<应用于车辆的电系统的加密密钥提供系统>
[0195]图8是示出了应用于车辆的电系统的加密密钥提供系统的数据流图。
[0196]其中安装了根据本实施例的MCU21_1的E⑶24_1,与其中安装了另一 MCU21_2的ECU24_2通过车载LAN (局域网)26耦合。车载LAN26是,例如多个ECU耦合到的CAN (控制器区域网络)和FlexRay,它们相互进行通信。在图8中,为简明起见,只示出了两个E⑶24_1和24_2。即使它是车载LAN26,其也有可能受到黑客等的攻击。例如,从外部接管CAN并且控制制动和灯的攻击案件在最近几年被报告出。为了通过提供阻止这样的攻击的性能从而提高安全性,采用了加密通信。MCU21_1和MCU21_2分别配备有内置的通信接口 25_1和25_2,它们使用加密密钥HFl,执行消息的加密与解密。E⑶24_1是车辆的门的E⑶,E⑶24_2是控制面板的ECU。当更换了门时,为了再次允许在控制面板和门之间有加密通信,需要将相同加密密钥HFl写入到更换的门的ECU24_1中。上文所描述的门的更换可能在与车辆制造厂、经销商等等相比具有更低的安全环境的修配厂中执行。因此,在不加密的情况下,提供加密密钥HFl (其是高保密性的密钥)是有危险的。因此,读取器/写入器22耦合到MCU21_1,并从加密密钥管理设备30写入加密密钥。MCU21_1和读取器/写入器22基于,例如OBD-1I,与连接电缆23耦合。加密密钥管理设备30是诸如服务器之类的外部设备,并安装在安全环境中,并通过诸如因特网之类的网络31被读取器/写入器22访问。
[0197]MCU21_1配置有唯一数据生成单元(PUF) 1_1,通过在上文所描述的实施例中所说明的加密密钥提供方法来写入加密密钥HFl。对MCU的认证使用由唯一数据生成单元(PUF) 1_1所生成的设备唯一数据UD来执行,并应用根据实施例的加密密钥提供方法。因此,即使读取器/写入器22的操作员等是恶意用户,也可以安全地写入加密密钥HF1。安装在其他ECU上的MCU,例如,MCU21_2,可以类似地配置。
[0198]不仅实施例2,而且所有其他实施例1,3,以及4可以适用于应用在图8中所示出的车辆的电系统的加密密钥提供系统。
[0199]<应用于网络终端的加密密钥提供系统>
[0200]图9是示出了应用于网络终端的加密密钥提供系统的数据流图。
[0201]图9中所示出的网络终端20通过诸如因特网之类的网络31耦合到内容服务器30。网络终端20配置有MCU21、网络接口 27,以及闪存29。MCU21配置有唯一数据生成单元(PUF) 1,以及用于通过加密密钥HFl来解密密码的解密电路28。由PUFl所生成的设备唯一数据UD通过网络接口 27,放在网络31中的数据包(packet)中,并传输到服务器30。服务器30将加密密钥HFl提供给MCU21,与上文所描述的加密密钥提供方法的情况相同。利用加密密钥HFl加密的内容存储在闪存29中。MCU21通过解密电路28来解密密码,并使用相关的内容。
[0202]网络终端20是,例如电子词典,当用户购买新内容时,应用本实施例来增强安全性。将购买新内容的用户通过网络31从内容服务器30下载内容,并将它们存储在自己的闪存29中。内容可以通过封装介质等等提供,而不通过网络。由于内容是利用加密密钥HFl加密的,因此,用户在获取加密密钥HFl之前是不能使用该内容的。当用户向内容服务器30表示出对于相关内容的购买意图时,响应于该意图,内容服务器30从MCU21读取设备唯一数据UD,并将加密密钥HFl提供到MCU21,与上文所描述的加密密钥提供方法的情况相同。用户只有在MCU21中写入加密密钥HFl之后才可以使用相关的内容。
[0203]如上文所描述的,对MCU21的认证是利用由唯一数据生成单元(PUF) I所生成的设备唯一数据UD执行的。因此,可以安全地写入加密密钥HFl。
[0204]不仅实施例2,而且所有其他实施例1,3,以及4可以适用于应用于图9中所示出的网络终端的加密密钥提供系统。
[0205](实施例3)
[0206]<两组设备唯一 ID和助手数据>
[0207]图4是示出了根据实施例3的加密密钥提供系统的数据流图。
[0208]与根据图2中所示出的实施例2的加密密钥提供系统的差异在于:给第一设备(20,21)提供了两个唯一 ID生成电路2_1、2_2,以及HF2解密电路10。差异还在于:在第二设备30中,助手数据与设备唯一 ID生成电路3生成两组助手数据HDl和设备唯一ID-1 (UCl)以及助手数据HD2和设备唯一 ID-2(UC2),而且HF2生成电路7进一步配备有合并电路9。助手数据HDl对应于设备唯一 ID-1 (UCl),助手数据HD2对应于设备唯一ID-2(UC2)。对于一段由唯一数据生成单元(PUF) I所生成的设备唯一数据UD,当使用助手数据HDl时,可以生成设备唯一 ID-1 (UCl),当使用助手数据HD2时,可以生成设备唯一ID-2(UC2)。唯一 ID生成电路2_1和2_2分别具有上文所描述的功能。助手数据HDl和助手数据HD2,以及设备唯一 ID-1 (UCl)和设备唯一 ID-2(UC2)分别具有不同的值。HF2生成电路7中所包括的合并电路9是组合加密的HFl (Enc(HFl))和助手数据HD2,并执行规定的编码的电路。HF2解密电路10是执行相反的处理(解码)并分离加密的HFl (Enc (HFl))和助手数据HD2的电路。配置的其他部分与实施例2的那些相同;因此,省略了其说明。
[0209]图5是示出了根据实施例3的加密密钥提供方法的顺序图。
[0210]从用户认证和会话激活直到响应于来自加密密钥管理设备30的设备唯一数据读取命令,MCU21生成设备唯一数据(UD)并通过读取器/写入器22将它传输到加密密钥管理设备30的顺序,与参考图3说明的实施例2的顺序相同,。
[0211]利用传输的设备唯一数据(UD),加密密钥管理设备30生成两对助手数据和设备唯一 ID,即,一对相互对应的助手数据HDl和设备唯一 ID-1 (UCl),以及另一对相互对应的助手数据HD2和设备唯一 ID-2 (UC2)。加密密钥管理设备30首先只将助手数据HDl传输到MCU21。MCU21将传输的助手数据HDl写入到非易失性存储器等,并根据助手数据HDl和在MCU21中所生成的设备唯一数据UD,生成设备唯一 ID-1 (UCl)。通过摘要生成电路4_3,将所生成的设备唯一 ID-1 (UCl)制成摘要,并将其作为消息摘要H(UCl),传输到加密密钥管理设备30。加密密钥管理设备30根据以前生成的设备唯一 ID-1 (UCl),预先生成摘要H (UCl),作为用于验证响应数据的期望值数据。加密密钥管理设备30确认传输的摘要H(UCl)和由其本身在内部生成的摘要H(UCl) —致。当一致时,加密密钥管理设备30生成散列函数HF2,并将它传输到MCU21。散列函数HF2是加密HFl (Enc (HFl))与助手数据HD2被组合并且受到规定编码的数据,其中加密的HFl (Enc (HFl))利用设备唯一 ID_2 (UC2)。MCU21将传输的散列函数HF2存储到非易失性存储器。通过HF2解密电路10,MCU21将散列函数HF2分离为加密的HFl (Enc(HFl))和助手数据HD2。将助手数据HD2输入到唯一 ID生成电路2_2,而唯一 ID生成电路2_2根据设备唯一数据(UD)生成设备唯一 ID-2(UC2)。利用所生成的设备唯一 ID-2 (UC2),HF1解密电路6解密加密的HFl (Enc (HFl)),以获取加密密钥HFl。在此时刻之后,MCU21被允许解密并使用加密密钥HF1。根据上文所描述的过程,完成加密密钥从加密密钥管理设备30向MCU21的提供。
[0212]也在本实施例中,与实施例2的情况相同,在助手数据HD和散列函数HF2中,首先只将助手数据HD传输到MCU21以认证MCU21,并在认证之后,传输作为另一参数的散列函数HF2,其中助手数据HD和散列函数HF2是MCU21使用加密密钥HFl所需的两个参数。根据上文所描述的过程,可以防止对于加密密钥的不正当的获取。
[0213]此外,还分离用于认证的设备唯一 ID-1 (UCl)和用于加密加密密钥HFl的设备唯一 ID-2(UC2),因此,可以进一步提高安全性。
[0214](实施例4)
[0215]〈通过散列函数的认证〉
[0216]在实施例2和实施例3中,在助手数据HD和散列函数HF2中,首先只将助手数据HD传输到MCU21以认证MCU21,并在认证之后,传输作为另一参数的散列函数HF2,其中助手数据HD和散列函数HF2是MCU21使用加密密钥HFl所需的两个参数。在本实施例4中,相反,包括加密状态下的关于加密密钥HFl的信息的散列函数HF2被首先写入MCU21中,在认证之后,传输作为另一参数的助手数据HD。根据本过程,类似地,可以防止对于加密密钥的不正当的获取。
[0217]图6是示出了根据实施例4的加密密钥提供系统的数据流图。
[0218]第一设备(20,21)配置有唯一数据生成单元(PUF) 1、唯一 ID生成电路2、摘要生成电路4_5,以及HFl解密电路6。将由PUFl所生成的设备唯一数据UD传输到第二设备30的助手数据和设备唯一 ID生成电路3 (生成一对助手数据和设备唯一 ID),并提供给第一设备(20,21)的唯一 ID生成电路2。摘要生成电路4_5利用规定的散列函数,生成对于由第二设备30传输的散列函数HF2的消息摘要H(HF2)。将所生成的摘要H(HF2)传输到第二设备30的比较器电路5。唯一 ID生成电路2根据由PUFl所生成的设备唯一数据UD和从第二设备30所提供的助手数据HD,生成设备唯一 ID(UC)。HFl解密电路6利用设备唯一 ID(UC),解密从第二设备30传输的作为散列函数HF2的加密的加密密钥HF1,并获取加密密钥HFl。
[0219]第二设备30配置有用于生成一对助手数据和设备唯一 ID的生成电路3,HF2生成电路7、摘要生成电路4_6、比较器电路5,以及传输使能电路11。生成电路30根据由第一设备(20,21)所提供的设备唯一数据UD,生成一对助手数据HD和设备唯一 ID (UC)。将在生成电路3中所生成的设备唯一 ID(UC)输出到HF2生成电路7,并生成作为加密的加密密钥Enc(HFl)的散列函数HF2。将散列函数HF2传输到第一设备(20,21),通过摘要生成电路4_5,作为响应数据,生成消息摘要H(HF2)。将在第二设备30中所生成的散列函数HF2提供到摘要生成电路4_6,以生成摘要H(HF2)。将所生成的摘要H(HF2)发送到比较器电路5,并将其与作为第一设备(20,21)的响应数据所生成的摘要H(HF2)进行比较。当比较器电路5的比较结果是:两个摘要被发现是一致的,将使能信号输出到传输使能电路11。当确认两个摘要一致时,传输使能电路11将助手数据HD传输到第一设备(20,21)的唯一 ID生成电路2。如此,即使通过首先传输HF2来执行认证,也可能获得如在实施例2和3中那样的相同安全度。
[0220]图7是示出了根据实施例4的加密密钥提供方法的顺序图。
[0221]从用户认证和会话激活直到响应于来自加密密钥管理设备30的设备唯一数据读取命令,MCU21生成设备唯一数据(UD)并通过读取器/写入器22将它传输到加密密钥管理设备30的顺序,与参考图3说明的实施例2的序列顺序相同。
[0222]加密密钥管理设备30根据传输的设备唯一数据(UD),生成一对助手数据HD和设备唯一 ID(UC)。此外,加密密钥管理设备30生成散列函数HF2,并将它传输到MCU21。MCU21将传输的散列函数HF2写入到非易失性存储器。MCU21通过摘要生成电路4_5,根据传输的散列函数HF2生成消息摘要H(HF2),并对加密密钥管理设备30作出响应。加密密钥管理设备30通过将作为响应数据的摘要H(HF2)与通过摘要生成电路由加密密钥管理设备30其自身生成的摘要H(HF2)进行比较,来确认摘要。当确认摘要的一致时,将助手数据HD从加密密钥管理设备30传输到MCU21。MCU21将助手数据HD写入到非易失性存储器。MCU21的唯一 ID生成电路2根据本助手数据HD和在内部生成的设备唯一数据UD,生成设备唯一ID(UC)。将所生成的设备唯一 ID(UC)输入到HFl解密电路6。传输的散列函数HF2已经被输入到HFl解密电路6。因此,HFl解密电路6可以通过利用输入的设备唯一 ID(UC)解密散列函数HF2,来获取加密密钥。在此时刻之后,MCU21被允许解密并使用加密密钥HFl。根据上文所描述的过程,完成加密密钥从加密密钥管理设备30向MCU21的提供。
[0223]如上文所描述的,在本实施例中,在助手数据HD和散列函数HF2中,首先在MCU21中只写入散列函数HF2,其中助手数据HD和散列函数HF2是MCU21使用加密密钥HFl所需的两个参数。不同于实施例2和3,本实施例中的MCU21根据散列函数HF2生成摘要H(HF2)作为响应数据,并将它作为响应传输到加密密钥管理设备30。在确认此摘要H(HF2)的一致之后,加密密钥管理设备30传输作为另一参数的助手数据。对摘要H(HF2)的确认充当证明真正的MCU21的认证。由于MCU21只有在传输助手数据HD之后才被允许使用加密密钥HF1,因此,可以防止对于加密密钥的不正当的获取。
[0224]如上文所描述的,基于实施例具体描述了本发明人完成的发明。然而,无论如何强调都不过分,本发明不局限于实施例,并且在不偏离主旨的范围内,可以进行各种改变。
[0225]例如,第一设备(20,21)和第二设备30可以通过以具体形式的任何类型的实施例来实现。在优选的情况下,MCU21包括包围功能,并通过单个芯片形成。可替代地,仍然优选的是MCU21被包含在用于实现另一功能的电路的一部分内。
【权利要求】
1.一种加密密钥提供方法,用于将加密密钥从第二设备提供到使用密码的第一设备,所述第二设备管理所述密码的所述加密密钥, 其中,所述第一设备生成由制造变化唯一定义的设备唯一数据, 其中,所述第二设备基于所述设备唯一数据,生成一对助手数据和设备唯一 ID,所述设备唯一 ID是单独定义的所述第一设备所特有的代码,通过使用对应的助手数据,吸收生成环境所导致的所述设备唯一数据的波动, 其中,所述第二设备根据所述设备唯一 ID和所述加密密钥生成散列函数, 其中,所述第一设备基于所述散列函数和所述设备唯一 ID,解密所述加密密钥,以及 其中,所述加密密钥提供方法包括: 第一步骤,所述第一设备生成所述设备唯一数据,并将所述设备唯一数据提供到所述第二设备; 第二步骤,所述第二设备根据所提供的所述设备唯一数据,生成一对助手数据和为所述第一设备唯一地定义的设备唯一 ID ; 第三步骤,所述第二设备根据所生成的所述设备唯一 ID和所述加密密钥生成散列函数; 第四步骤,从所述第二设备向所述第一设备传输所述助手数据和所述散列函数中的一个; 第五步骤,所述第一设备基于在所述第四步骤接收到的所述助手数据和所述散列函数中的一个,将响应数据传输到所述第二设备; 第六步骤,所述第二设备通过确认在所述第五步骤接收到的所述响应数据的有效性,来认证所述第一设备; 第七步骤,在所述第六步骤认证所述第一设备之后,所述第二设备将所述助手数据和所述散列函数中的另一个传输到所述第一设备;以及 第八步骤,所述第一设备基于由其本身所生成的所述设备唯一数据和在所述第四步骤或所述第六步骤中接收到的所述助手数据和所述散列函数,解密所述加密密钥。
2.根据权利要求1所述的加密密钥提供方法, 其中,在所述第四步骤,所述第二设备将所述助手数据传输到所述第一设备, 其中,在所述第五步骤,所述第一设备根据接收到的助手数据再现所述设备唯一 ID,基于再现的设备唯一 ID,创建所述响应数据,并将所述响应数据传输到所述第二设备, 其中,在所述第六步骤,所述第二设备通过将所述响应数据与期望值数据进行比较,来确认所述响应数据的所述有效性,其中所述期望值数据是基于在所述第二步骤生成的所述设备唯一 ID的;并且 其中,在所述第七步骤,在所述第六步骤中认证所述第一设备之后,所述第二设备将所述散列函数传输到所述第一设备。
3.根据权利要求2所述的加密密钥提供方法, 其中,在所述第二步骤,根据所提供的设备唯一数据,所述第二设备生成为所述第一设备唯一地定义的第一设备唯一 ID和用于生成所述第一设备唯一 ID的第一助手数据,以及不同于所述第一设备唯一 ID的第二设备唯一 ID和用于生成所述第二设备唯一 ID的第二助手数据, 其中,在所述第三步骤,所述第二设备根据所述第二设备唯一 ID和所述加密密钥,生成散列函数, 其中,在所述第四步骤,所述第二设备将所述第一助手数据传输到所述第一设备, 其中,在所述第五步骤,所述第一设备根据所述接收到的第一助手数据再现所述设备唯一 ID,基于再现的第一设备唯一 ID,创建所述响应数据,并将所述响应数据传输到所述第二设备, 其中,在所述第六步骤,所述第二设备通过将所述响应数据与基于在所述第二步骤所生成的所述第一设备唯一 ID的所述期望值数据进行比较,来确认所述响应数据的所述有效性。 其中,在所述第七步骤,在所述第六步骤中认证所述第一设备之后,所述第二设备将所述第二助手数据进一步传输到所述第一设备,以及 其中,在所述第八步骤,所述第一设备基于由其本身所生成的所述设备唯一数据,以及在第所述七步骤接收到的所述第二助手数据,生成所述第二设备唯一 ID,并根据再现的第二设备唯一 ID和在所述第七步骤中接收到的散列函数,解密所述加密密钥。
4.根据权利要求3所述的加密密钥提供方法, 其中,在所述第五步骤,所述第一设备利用不同于所述散列函数的另一散列函数,创建所述再现的第一设备唯一 ID的摘要,作为所述响应数据,以及 其中,在所述第六步骤,所述第二设备利用与所述另一散列函数相同的散列函数,创建在所述第二步骤所生成的所述第一设备唯一 ID的摘要,作为所述期望值数据,并通过将所述响应数据与所述期望值数据进行比较,确认所述响应数据的所述有效性。
5.根据权利要求3所述的加密密钥提供方法, 其中,在所述第七步骤,所述第二设备组合并编码所述散列函数和所述第二助手数据,并将所编码的数据传输到所述第一设备,以及 其中,在所述第八步骤,所述第一设备通过解码所述编码的数据,解密所述散列函数和所述第二助手数据。
6.根据权利要求1所述的加密密钥提供方法, 其中,在所述第四步骤,所述第二设备将所述散列函数传输到所述第一设备, 其中,在所述第五步骤,所述第一设备基于所述接收到的散列函数,创建所述响应数据,并将所述响应数据传输到所述第二设备, 其中,在所述第六步骤,所述第二设备通过将所述响应数据与基于在所述第三步骤中所生成的所述散列函数的所述期望值数据进行比较,来确认所述响应数据的所述有效性,以及 其中,在所述第七步骤,在所述第六步骤中认证所述第一设备之后,所述第二设备将所述助手数据传输到所述第一设备。
7.—种半导体集成电路,包括: 唯一数据生成单元,所述唯一数据生成单元可操作以生成由制造变化唯一定义的设备唯一数据;以及 加密密钥解密单元,所述加密密钥解密单元可操作以通过使用由外部设备基于所述设备唯一数据所生成的并从所述外部设备提供的加密密钥信息,来解密加密密钥, 其中,所述半导体集成电路通过所述唯一数据生成单元,来生成所述设备唯一数据,并将所述设备唯一数据提供到所述外部设备, 其中,所述外部设备从所述半导体集成电路接收所述设备唯一数据,并根据所接收到的设备唯一数据,生成助手数据和设备唯一 ID,所述设备唯一 ID是单独定义的所述半导体集成电路所特有的代码,通过使用所述对应的助手数据,吸收所述生成环境所导致的所述设备唯一数据的波动,并且所述外部设备将所述助手数据传输到所述半导体集成电路, 其中,所述半导体集成电路接收所述助手数据,根据所接收到的助手数据和所述设备唯一数据,生成对应的设备唯一 ID,基于所生成的设备唯一 ID生成响应数据,并将所述响应数据传输到所述外部设备, 其中,所述外部设备接收所述响应数据,将所接收到的响应数据与根据由其本身所生成的所述设备唯一 ID生成的期望值数据进行比较, 其中,当所述比较结果一致时,所述外部设备根据所述设备唯一 ID和所述加密密钥生成散列函数,并将所述散列函数传输到所述半导体集成电路,以及 其中,所述半导体集成电路接收所述散列函数,并根据由其本身所生成的所述设备唯一 ID和所接收到的散列函数,来解密所述加密密钥。
8.根据权利要求7所述的半导体集成电路, 其中,所述外部设备根据所接收到的设备唯一数据,生成第一和第二助手数据以及第一和第二设备唯一 ID,所述外部设备将所述第一助手数据传输到所述半导体集成电路,其中,所述半导体集成电路接收所述第一助手数据,根据所接收到的第一助手数据和所述设备唯一数据生成对应的第一设备唯一 ID,基于所生成的第一设备唯一 ID生成响应数据,并将所述响应数据传输到所述外部设备, 其中,所述外部设备接收所述响应数据,将所接收到的响应数据与根据由其本身所生成的所述第一设备唯一 ID生成的所述期望值数据进行比较, 其中,当所述比较结果一致时,所述外部设备根据所述第二设备唯一 ID和所述加密密钥生成散列函数,并将所述第二助手数据和所述散列函数传输到所述半导体集成电路,以及 其中,所述半导体集成电路接收所述第二助手数据和所述散列函数,根据所接收到的第二助手数据和所述设备唯一数据生成第二设备唯一 ID,并根据所述所生成的第二设备唯一 ID和所接收到的散列函数,解密所述加密密钥。
9.根据权利要求8所述的半导体集成电路, 其中,所述半导体集成电路利用不同于所述散列函数的另一散列函数,创建所再现的第一设备唯一 ID的摘要作为所述响应数据,以及 其中,所述外部设备利用与所述另一散列函数相同的散列函数,创建由其本身所生成的所述第一设备唯一 ID的摘要,作为所述期望值数据,并将所述响应数据与所述期望值数据进行比较。
10.根据权利要求8所述的半导体集成电路, 其中,所述外部设备通过组合并编码所述散列函数和所述第二助手数据,生成加密密钥再现数据,并将所述加密密钥再现数据传输到所述半导体集成电路,以及 其中,所述半导体集成电路接收所述加密密钥再现数据,并通过解码所接收到的加密密钥再现数据,来解密所述散列函数和所述第二助手数据。
11.根据权利要求7所述的半导体集成电路, 其中,所述半导体集成电路耦合到能够与所述外部设备进行通信的读取器/写入器,并通过所述读取器/写入器与所述外部设备执行数据的传输和接收。
12.根据权利要求7所述的半导体集成电路, 其中,所述半导体集成电路在配备有能够与所述外部设备进行通信的接口的终端设备中实现,并通过所述终端设备,与所述外部设备执行数据的传输和接收。
13.根据权利要求7所述的半导体集成电路,进一步包括: 加密电路和使用所解密的加密密钥的解密电路;以及 加密通信接口。
14.根据权利要求7所述的半导体集成电路,进一步包括: 使用所解密的加密密钥的密码解密电路, 其中,所述半导体集成电路访问用于存储使用与所述加密密钥相同的加密密钥加密的数据的非易失性存储器,并将存储在所述非易失性存储器中的所述数据提取到所述密码解密电路。
15.一种加密密钥管理设备,耦合到终端设备,所述加密密钥管理设备包括:唯一数据生成单元,用于生成由制造变化唯一地定义的设备唯一数据;以及加密密钥解密单元,用于从加密密钥信息解密加密密钥,所述加密密钥管理设备可操作以根据所述设备唯一数据,生成所述加密密钥信息,并将所述加密密钥信息提供到所述终端设备, 其中,所述终端设备通过所述唯一数据生成单元来生成所述设备唯一数据,并将所述设备唯一数据提供到所述加密密钥管理设备, 其中,所述加密密钥管理设备从所述终端设备接收所述设备唯一数据,并根据所接收到的设备唯一数据生成助手数据和设备唯一 ID,所述设备唯一 ID是单独定义的所述终端设备所特有的代码,通过使用所述对应的助手数据,吸收生成环境所导致的所述设备唯一数据的波动,所述加密密钥管理设备将所述助手数据传输到所述终端设备, 其中,所述终端设备接收所述助手数据,根据所接收到的助手数据和所述设备唯一数据生成对应的设备唯一 ID,基于所生成的设备唯一 ID生成响应数据,并将所述响应数据传输到所述加密密钥管理设备, 其中,所述加密密钥管理设备接收所述响应数据,并且将所接收到的响应数据与根据由其本身所生成的所述设备唯一 ID生成的期望值数据进行比较, 其中,当所述比较结果一致时,所述加密密钥管理设备根据所述设备唯一 ID和所述加密密钥生成散列函数,并将所述散列函数传输到所述终端设备,以及 其中,所述终端设备接收所述散列函数,并根据由其本身所生成的所述设备唯一 ID和所述接收到的散列函数,来解密所述加密密钥。
16.根据权利要求15所述的加密密钥管理设备, 其中,所述加密密钥管理设备根据所接收到的设备唯一数据,生成第一和第二助手数据以及第一和第二设备唯一 ID,所述加密密钥管理设备将所述第一助手数据传输到所述终端设备, 其中,所述终端设备接收所述第一助手数据,根据所接收到的第一助手数据和所述设备唯一数据生成对应的第一设备唯一 ID,根据所生成的第一设备唯一 ID生成响应数据,并将所述响应数据传输到所述加密密钥管理设备, 其中,所述加密密钥管理设备接收所述响应数据,将所接收到的响应数据与根据由其本身所生成的所述第一设备唯一 ID生成的所述期望值数据进行比较, 其中,当所述比较结果一致时,所述加密密钥管理设备根据所述第二设备唯一 ID和所述加密密钥生成散列函数,并将所述第二助手数据和所述散列函数传输到所述终端设备,以及 其中,所述终端设备接收所述第二助手数据和所述散列函数,并根据所接收到的第二助手数据和所述设备唯一数据生成第二设备唯一 ID,并根据由其本身所生成的所述第二设备唯一 ID和所接收到的散列函数,解密所述加密密钥。
17.根据权利要求16所述的加密密钥管理设备, 其中,所述终端设备利用不同于所述散列函数的另一散列函数,创建所再现的第一设备唯一 ID的摘要作为所述响应数据,以及 其中,所述加密密钥管理设备利用与所述另一散列函数相同的散列函数,创建由其本身所生成的所述第一设备唯一 ID的摘要,作为所述期望值数据,并将所述响应数据与所述期望值数据进行比较。
18.根据权利要求16所述的加密密钥管理设备, 其中,所述加密密钥管理设备通过组合并编码所述散列函数和所述第二助手数据,生成加密密钥再现数据,并将所述加密密钥再现数据传输到所述终端设备,以及 其中,所述终端设备接收所述加密密钥再现数据,并通过解码所接收到的加密密钥再现数据,来解密所述散列函数和所述第二助手数据。
【文档编号】H04L9/08GK104468094SQ201410493896
【公开日】2015年3月25日 申请日期:2014年9月24日 优先权日:2013年9月24日
【发明者】押田大介, 福永哲也 申请人:瑞萨电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1