首页> 中国专利> 加密密钥提供方法、半导体集成电路及加密密钥管理设备

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

摘要

本发明涉及加密密钥提供方法、半导体集成电路及加密密钥管理设备。使用密码的第一设备通过PUF,生成设备唯一数据,并且第二设备根据所生成的设备唯一数据,生成一对助手数据和设备唯一ID。设备唯一数据具有生成环境所导致的波动,并将波动视为设备唯一ID的错误,助手数据充当用于纠正错误的校正数据。第二设备根据设备唯一ID和加密密钥生成散列函数。第二设备首先将助手数据和散列函数中的一个写入到第一设备,在通过写入来认证第一设备之后,在第一设备中写入助手数据和散列函数中的另一个。通过解密加密密钥,第一设备被允许使用密码。

著录项

  • 公开/公告号CN104468094A

    专利类型发明专利

  • 公开/公告日2015-03-25

    原文格式PDF

  • 申请/专利权人 瑞萨电子株式会社;

    申请/专利号CN201410493896.1

  • 发明设计人 押田大介;福永哲也;

    申请日2014-09-24

  • 分类号H04L9/08(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人申发振

  • 地址 日本神奈川

  • 入库时间 2023-12-18 08:49:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-14

    授权

    授权

  • 2016-03-23

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20140924

    实质审查的生效

  • 2015-10-28

    著录事项变更 IPC(主分类):H04L9/08 变更前: 变更后: 申请日:20140924

    著录事项变更

  • 2015-03-25

    公开

    公开

说明书

对相关申请的交叉引用

包括说明书、附图以及摘要的于2013年9月24日提出的日本专 利申请No.2013-196532的公开以引用的方式全文并入本文中。

技术领域

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

背景技术

近年来,报告了针对安装在车辆中的电气单元(电子控制单元: ECU)的各种攻击的情况,诸如不正当的访问和不正当的冒充。在车 载微计算机的相关技术中,在没有采取防止电子窃听的措施的情况下, 用于加密与解密的密钥本身被写入;因此,易于盗窃加密密钥。显然, 从安全性的角度来看,这样的不正当的行为(act)会导致严重的问题。 对于具有针对这样的不正当的行为的高安全性的车载微计算机的需要 越来越大。另一方面,车载微计算机中的故障和缺陷将对人的生命产 生影响。因此,对故障和缺陷的分析是必需的。如果在微计算机上全 部使用防窜改(tamper-resistance)技术以防止不正当的行为,则微 计算机将具有高安全性,就可以防止不正当的行为。另一方面,车辆 制造商、ECU制造商以及芯片制造商难以对故障和缺陷进行分析,给 他们造成不便。

因此,研究使用利用物理不可克隆功能(PUF)生成的设备所特 有的标识代码(或设备唯一ID)的安全技术。在使用PUF的技术中, 例如,将通过设备唯一ID(标识)加密的散列函数写入ROM(只读 存储器)的区域,并且利用通过设备唯一ID解密的散列函数,来解 密数据。因此,确保了安全性。

例如,在SRAM(静态随机存取存储器)通电时,根据初始值导 出物理不可克隆功能(PUF)。SRAM的初始值由于制造变化 (manufacturing variation)而波动;因此,通过取足够大的比特数,它 可以充当每一个设备的唯一值。另一方面,有可重复性的需求:从相 同设备生成的设备唯一ID应该具有相同值,即使它被生成许多次也 是如此。这是因为有这样的可能性:如果从本来相同的设备生成不同 的设备唯一ID,则它可能被当做仿造品。然而,SRAM的初始值以及 许多PUF可能取决于生成它们时所处的环境而具有波动,即,设备所 处的环境温度的差异,电源电压等等。

专利文献1公开了能够生成初始唯一代码的半导体器件,该初始 唯一代码是设备所特有的值,并包括随机比特差错。此半导体器件纠 正初始唯一代码中所包括的错误,生成固定的设备唯一ID(设备唯一 ID),并使用它来解密机密信息。在错误校正中,参考对应于固定的 设备唯一ID的校正数据。

(专利文献)

(专利文献1)日本未经审查的专利申请公开No.2013-003431。

发明内容

由本发明人对专利文献1中所进行的研究揭示了下列新问题的 存在。

对包括可以利用PUF来生成设备唯一ID的半导体器件的设备, 从诸如从外部耦合的服务器之类的外部设备(加密密钥管理设备)写 入对应于设备唯一ID的加密密钥;由此,可以构建使用加密密钥的 密码系统并防止设备遭受各种攻击,诸如对设备的不正当的访问以及 不正当的冒充。例如,当应用于安装在车辆中的ECU之间的加密通 信时,外部设备(例如,服务器)通过利用使用PUF所生成的设备唯 一ID来加密要保密的密钥信息,生成散列函数,并将散列函数存储 在ECU中,具体而言,存储在ECU中实现的MCU(微控制器单元) 中。然而,散列函数在MCU的出厂时并未写入,而是可以在ECU或 车辆组装之后写入,或当车辆在修配厂修理时写入,等等。结果,可 能在那时会发生欺骗加密密钥管理设备的不当的情况。

在这样的系统中,当在MCU中正确地写入规定的散列函数时, MCU被视为无缺陷的物品(item),而当散列函数写入失败时,MCU 被视为有缺陷的物品。从价格的支付目标(payment target of the  price)中排除有缺陷的MCU。可以考虑这样的系统:通过下载等获 取利用散列函数加密的内容,并且所述加密的内容只有在正确地写入 规定的散列函数之后才允许被使用。由于只有在正确地写入散列函数 之后才对它进行收费,因此,如果存在恶意的用户则有这样的可能性: 尽管正确地写入了散列函数,通过向加密密钥管理设备报告虚假的写 入失败,发生逃避支付并允许使用内容的不当情况。如此,结果是存 在这样的安全性缺陷:允许对于加密密钥的不正当的获取。

下面将说明对这样的问题的解决方案。通过阅读下面的本发明说 明书的描述以及附图,本发明的其他问题和新特点将变得清楚。

根据一个实施例,解决方案如下所示。

即,它是一种方法,用于将加密密钥从第二设备提供到使用密码 的第一设备,所述第二设备管理密码的加密密钥,并按如下方式配置。 第一设备生成通过制造变化唯一地定义的设备唯一数据,以及第二设 备根据由第一设备所生成的设备唯一数据,生成一对助手数据(helper  data)和设备唯一ID。这里,设备唯一数据具有生成环境所导致的波 动,并将波动视为设备唯一ID的错误,助手数据充当用于纠正错误 的校正数据。在设备唯一数据中所生成的波动通过使用对应的助手数 据被吸收,设备唯一ID变为没有错误(波动)的并单独地为第一设 备所定义的其所特有的代码。第二设备根据设备唯一ID和加密密钥 生成散列函数。助手数据和散列函数两者都被从第二设备写入到第一 设备,并且第一设备解密加密密钥,允许使用密码。第二设备将助手 数据和散列函数中的第一个写入到第一设备。在确认写入正常地执行 之后,第二设备将助手数据和散列函数中的另一个写入到第一设备。

下面简要说明了通过一个实施例获取的效果。

即,在允许在第一设备中使用加密密钥之前,可以利用通过制造 变化为第一设备单独地定义的其所特有的设备唯一ID,来执行认证; 因此,可以防止对于加密密钥的不正当的获取。

附图说明

图1是示出了根据实施例1的加密密钥提供方法的顺序图;

图2是示出了根据实施例2的加密密钥提供系统的数据流图;

图3是示出了根据实施例2的加密密钥提供方法的顺序图;

图4是示出了根据实施例3的加密密钥提供系统的数据流图;

图5是示出了根据实施例3的加密密钥提供方法的顺序图;

图6是示出了根据实施例4的加密密钥提供系统的数据流图;

图7是示出了根据实施例4的加密密钥提供方法的顺序图;

图8是示出了应用于车辆的电系统的加密密钥提供系统的数据 流图;以及

图9是示出了应用于网络终端的加密密钥提供系统的数据流图。

具体实施方式

1.实施例的概述

首先,将说明在本申请中所公开的本发明的典型的实施例的概述。 在典型的实施例的概述说明中以括号引用的附图的数字符号只例示数 字符号被附加到的组件的概念中所包括的内容。

(1)<在通过助手数据和散列函数的其中之一进行认证之后,提供 助手数据和散列函数中的另一个>

用于从第二设备(30)向使用密码的第一设备(20,21)提供加 密密钥(HF1)的加密密钥提供方法按如下方式配置,其中所述第二 设备(30)管理密码的加密密钥。

第一设备生成通过制造变化唯一地定义的设备唯一数据(UD)。

第二设备基于设备唯一数据(UD)生成一对助手数据(HD)和 设备唯一ID(UC)。设备唯一ID(UC)是单独为第一设备所定义的 其所特有的代码,通过使用对应的助手数据(HD),吸收生成环境所 导致的设备唯一数据(UD)的波动。可以根据一个设备唯一数据(UD) 生成多组助手数据(HD1,HD2)和设备唯一ID(UC1,UC2)。

第二设备根据设备唯一ID和加密密钥生成散列函数(HF2)。

第一设备基于散列函数和设备唯一ID,解密加密密钥。

加密密钥提供方法包括下列步骤:

第一步骤,第一设备生成设备唯一数据(UD)并将它提供到第 二设备;

第二步骤,第二设备根据所提供的设备唯一数据,生成一对助手 数据(HD)和为第一设备唯一地定义的设备唯一ID(UC);

第三步骤,第二设备根据所生成的设备唯一ID和加密密钥生成 散列函数(HF2);

第四步骤,从第二设备向第一设备传输助手数据和散列函数中的 一个;

第五步骤,第一设备基于在第四步骤接收到的助手数据和散列函 数中的一个,将响应数据传输到第二设备;

第六步骤,第二设备通过确认在第五步骤接收到的响应数据的有 效性,来认证第一设备;

第七步骤,在第六步骤认证第一设备之后,第二设备将助手数据 和散列函数中的另一个传输到第一设备;以及

第八步骤,第一设备基于由本身所生成的设备唯一数据和在第四 步骤或第六步骤中接收到的助手数据和散列函数,解密加密密钥。

利用上文所描述的过程,在允许在第一设备(20,21)中使用加 密密钥(HF1)之前,可以利用通过制造变化为第一设备单独地定义 的其所特有的设备唯一ID(UC),来执行认证;因此,可以防止对 于加密密钥的不正当的获取。

(2)<通过助手数据的认证>

具体而言,根据段落(1)的加密密钥提供方法按如下方式配置。

在第四步骤,第二设备将助手数据传输到第一设备。

在第五步骤,第一设备根据接收到的助手数据再现设备唯一ID (UC),基于再现的设备唯一ID创建响应数据,并将响应数据传输 到第二设备。

在第六步骤,通过将响应数据与期望值数据进行比较,第二设备 来确认响应数据的有效性,其中期望值数据是基于在第二步骤所生成 的设备唯一ID(UC)的。

在第七步骤,在第六步骤中认证第一设备之后,第二设备将散列 函数(HF2)传输到第一设备。

利用上文所描述的过程,可以在认证之后(即,在确认已经正常 地建立通信路径之后),将散列函数作为加密密钥信息来传输,因此 可以防止对于加密密钥的不正当的获取。

(3)<两组设备唯一ID和助手数据>

具体而言,根据段落(2)的加密密钥提供方法按如下方式配置。

在第二步骤,根据所提供的设备唯一数据,第二设备生成为第一 设备唯一定义的第一设备唯一ID(UC1)和用于生成第一设备唯一ID 的第一助手数据(HD1)。根据所提供的设备唯一数据,第二设备生 成不同于第一设备唯一ID的第二设备唯一ID(UC2)和用于生成第 二设备唯一ID的第二助手数据(HD2)。

在第三步骤,第二设备根据第二设备唯一ID和加密密钥,生成 散列函数(HF2)。

在第五步骤,第一设备根据接收到的第一助手数据再现第一设备 唯一ID(UC1),基于再现的第一设备唯一ID创建响应数据,并将 响应数据传输到第二设备。

在第六步骤,第二设备通过将响应数据与期望值数据进行比较, 来确认响应数据的有效性,其中期望值数据是基于在第二步骤所生成 的第一设备唯一ID(UC1)的。

在第七步骤,在第六步骤中认证第一设备之后,第二设备将第二 助手数据进一步传输到第一设备。

在第八步骤,第一设备基于由其本身所生成的设备唯一数据 (UD),以及在第七步骤接收到的第二助手数据,生成第二设备唯一 ID(UC2),并根据再现的第二设备唯一ID和在第七步骤中接收到 的散列函数,解密加密密钥(HF1)。

利用上文所描述的过程,可以给用于认证的设备唯一ID(UC1) 和用于保护加密密钥的设备唯一ID(UC2)设置互相不同的值;因此, 可以提高安全性。

(4)<制作响应的摘要>

具体而言,根据段落(3)的加密密钥提供方法按如下方式配置。

在第五步骤,第一设备利用不同于散列函数的另一散列函数,创 建再现的第一设备唯一ID的摘要(digest)(H(UC1))作为响应数据。

在第六步骤,第二设备利用与另一散列函数相同的散列函数,创 建在第二步骤所生成的第一设备唯一ID的摘要(H(UC1))作为期望值 数据,并通过将响应数据与期望值数据进行比较,确认响应数据的有 效性。

利用上文所描述的过程,可以保护在认证时传送的设备唯一ID (UC1);因此,可以进一步提高安全性。

(5)通过HF2=助手数据2+UC2加密的加密密钥

具体而言,根据段落3的加密密钥提供方法按如下方式配置。

在第七步骤,第二设备组合并编码(scramble)散列函数和第二助 手数据,并将编码的数据传输到第一设备。

在第八步骤,第一设备通过解码被编码的数据,解密散列函数和 第二助手数据。

利用上文所描述的过程,可以保护在写入密钥信息时传送的散列 函数(HF2)和助手数据(HD2);因此,可以进一步提高安全性。

(6)<通过散列函数的认证>

具体而言,根据段落(1)的加密密钥提供方法按如下方式配置。

在第四步骤,第二设备将散列函数(HF2)传输到第一设备。

在第五步骤,第一设备基于接收到的散列函数创建响应数据,并 将响应数据传输到第二设备。

在第六步骤,第二设备通过将响应数据与期望值数据进行比较, 来确认响应数据的有效性,其中期望值数据是基于在第三步骤中所生 成的散列函数的。

在第七步骤,在第六步骤中认证第一设备之后,第二设备将助手 数据(HD)传输到第一设备。

利用上文所描述的过程,可以在认证之后(即,在确认已经正常 地建立通信路径之后),传输用于生成设备唯一ID(UC)的助手数 据(HD);因此,可以防止对于加密密钥的不正当的获取。

(7)<配备有PUF生成电路的LSI(通过助手数据的认证)>

半导体集成电路(21)配置有:唯一数据生成单元(1),其用 于生成通过制造变化唯一地定义的设备唯一数据;以及加密密钥解密 单元(6),其用于通过使用由外部设备基于设备唯一数据所生成的并 从外部设备提供的加密密钥信息,解密加密密钥。半导体集成电路按 如下方式配置。

半导体集成电路通过唯一数据生成单元来生成设备唯一数据 (UC),并将设备唯一数据提供到外部设备。

外部设备从半导体集成电路接收设备唯一数据,并根据接收到的 设备唯一数据生成助手数据(HD)和设备唯一ID(UC)。设备唯一 ID(UC)是单独定义的半导体集成电路所特有的代码,通过使用对应 的助手数据(HD)吸收生成环境所导致的设备唯一数据(UD)的波 动。外部设备将助手数据传输到半导体集成电路。

半导体集成电路接收助手数据,根据接收到的助手数据和设备唯 一数据(2)生成对应的设备唯一ID(UC),根据所生成的设备唯一 ID(4_1)生成响应数据(H(UC)),并将响应数据传输到外部设 备。

外部设备接收响应数据,并将接收到的响应数据与期望值数据 (H(UC))进行比较,其中期望值数据是根据由外部设备本身所生 成的设备唯一ID(4_2,5)而产生的。

当比较结果一致时,外部设备根据设备唯一ID和加密密钥(7) 生成散列函数(HF2),并将散列函数传输到半导体集成电路。

半导体集成电路接收散列函数,并根据由其本身所生成的设备唯 一ID和接收到的散列函数(6),解密加密密钥。

根据上文所描述的配置,在允许在半导体集成电路(21)中使用 加密密钥之前,可以利用通过制造变化单独地定义的半导体集成电路 所特有的设备唯一ID(UC),来执行认证;因此,可以防止对于加 密密钥的不正当的获取。

(8)<两组设备唯一ID和助手数据>

具体而言,根据段落(7)的半导体集成电路按如下方式配置。

外部设备根据接收到的设备唯一数据(3),生成第一和第二助 手数据(HD1,HD2)和第一和第二设备唯一ID(UC1,UC2),并 且外部设备将第一助手数据传输到半导体集成电路。

半导体集成电路接收第一助手数据,根据接收到的第一助手数据 (HD1)和设备唯一数据(2_1)生成对应的第一设备唯一ID(UC1), 基于所生成的第一设备唯一ID生成响应数据(H(UC1)),并将响 应数据传输到外部设备。

外部设备接收响应数据,并将接收到的响应数据与期望值数据 (H(UC1))进行比较,其中期望值数据是根据由外部设备其本身 (5)所生成的第一设备唯一ID(UC1)生成的。

当比较结果一致时,外部设备根据第二设备唯一ID和加密密钥 生成散列函数(HF2),并将第二助手数据和散列函数传输到半导体 集成电路(7,8,9)。

半导体集成电路接收第二助手数据和散列函数,根据接收到的第 二助手数据和设备唯一数据(10,2_2)生成第二设备唯一ID,并根 据所生成的第二设备唯一ID和接收到的散列函数,解密加密密钥 (HF1)。

根据上文所描述的配置,可以给用于认证的设备唯一ID(UC1) 和用于保护加密密钥的设备唯一ID(UC2)设置相互不同的值;因此, 可以提高安全性。

(9)<制作响应的摘要>

具体而言,根据段落(8)的半导体集成电路按如下方式配置。

半导体集成电路利用不同于散列函数(4_3)的另一散列函数, 创建再现的第一设备唯一ID的摘要作为响应数据。

外部设备利用与另一散列函数(4_4)相同的散列函数,创建由 其本身所生成的第一设备唯一ID的摘要,作为期望值数据,并将响 应数据与期望值数据(5)进行比较。

根据上文所描述的配置,可以保护在认证时传送的设备唯一ID (UC1);因此,可以进一步提高安全性。

(10)<通过HF2=助手数据2+UC2加密的加密密钥>

外部设备通过组合并编码散列函数和第二助手数据(9),生成 加密密钥再现数据({Enc(HF1),HD2}),并将加密密钥再现数据传输到 半导体集成电路。

半导体集成电路接收加密密钥再现数据,并通过解码接收到的加 密密钥再现数据(10),来解密散列函数和第二助手数据。

根据上文所描述的配置,可以保护在写入密钥信息时传送的散列 函数(HF1)和助手数据(HD2);因此,可以进一步提高安全性。

(11)<读取器/写入器>

具体而言,根据段落(7)到段落(10)中的一个的半导体集成 电路按如下方式配置。

半导体集成电路耦合到与外部设备进行通信的读取器/写入器 (22),并通过读取器/写入器与外部设备执行数据的传输和接收。

根据上文所描述的配置,可以在实现之前的阶段中提供可以让加 密密钥信息写入半导体集成电路(21)中的环境。

(12)<对于配备有与外部设备的接口的终端设备的实现>

具体而言,根据段落(7)到段落(10)中的一个的半导体集成 电路按如下方式配置。

半导体集成电路在配备有与外部设备进行通信的接口(27)的终 端设备(20)中实现,并通过终端设备与外部设备执行数据的传输和 接收。

根据上文所描述的配置,可以在半导体集成电路(21)在终端设 备(20)中实现的状态下,提供可以让加密密钥信息写入半导体集成 电路(21)中的环境。

(13)<加密通信接口>

具体而言,根据段落(7)到段落(12)中的一个的半导体集成 电路按如下方式配置。

半导体集成电路进一步配备有加密电路和使用解密的加密密钥 的解密电路;以及加密通信接口(25)。

根据上文所描述的配置,可以提供可以使用由外部设备写入的加 密密钥来执行加密通信的半导体集成电路。

(14)<加密内容的解密>

具体而言,根据段落(7)到段落(12)中的一个的半导体集成 电路按如下方式配置。

半导体集成电路进一步配备有使用解密的加密密钥的密码解密 电路(28)。半导体集成电路可以访问用于存储使用与加密密钥相同 的加密密钥加密的数据的非易失性存储器(29),并可以将存储在非 易失性存储器中的数据提取(fetch)到密码解密电路。

根据上文所描述的配置,可以提供这样的半导体集成电路(21), 该半导体集成电路(21)可以通过将加密密钥信息写入到半导体集成 电路中,将存储在非易失性存储器(29)中的加密的数据(内容)变 成可用(或激活)状态。

(15)<加密密钥管理设备(利用助手数据的认证)>

加密密钥管理设备(30)耦合到终端设备(20,21),终端设备 (20,21)配备有用于生成通过制造变化唯一地定义的设备唯一数据 (UD)的唯一数据生成单元(1),以及根据加密密钥信息来解密加 密密钥(HF1)的加密密钥解密单元(6)。加密密钥管理设备根据设 备唯一数据生成加密密钥信息,并且将加密密钥信息提供到终端设备。 加密密钥管理设备按如下方式配置。

终端设备通过唯一数据生成单元(1),来生成设备唯一数据(UD), 并将设备唯一数据提供到加密密钥管理设备。

加密密钥管理设备从终端设备接收设备唯一数据,并根据接收到 的设备唯一数据(UD)生成助手数据(HD)和设备唯一ID(UC)。 设备唯一ID(UC)是单独定义的终端设备所特有的代码,通过使用 对应的助手数据(HD)吸收生成环境所导致的设备唯一数据(UD) 的波动。加密密钥管理设备将助手数据传输到终端设备。

终端设备接收助手数据,根据接收到的助手数据(HD)和设备 唯一数据(UD)(2)生成对应的设备唯一ID(UC),根据所生成 的设备唯一ID(4_1,4_3)生成响应数据(H(UC)),并将响应数 据传输到加密密钥管理设备。

加密密钥管理设备接收响应数据,将接收到的响应数据(H(UC)) 与所生成的期望值数据(H(UC))进行比较,其中期望值数据是根 据由加密密钥管理设备其本身所生成的设备唯一ID(4_2,5)的。

当比较结果一致时,加密密钥管理设备根据设备唯一ID和加密 密钥(7)生成散列函数(HF2),并将散列函数传输到终端设备。

终端设备接收散列函数,并根据由其本身所生成的设备唯一ID (UC)和接收到的散列函数(HF2),解密加密密钥(HF1)。

根据上文所描述的配置,在允许在终端设备(20)中使用加密密 钥之前,加密密钥管理设备(30)可以利用通过制造变化单独定义的 终端设备所特有的设备唯一ID(UC),来执行认证;因此,可以防 止对于加密密钥的不正当的获取。

(16)<两组设备唯一ID和助手数据>

具体而言,根据段落(15)的加密密钥管理设备按如下方式配置。

加密密钥管理设备根据接收到的设备唯一数据(UD)(3),生 成第一和第二助手数据(HD1,HD2)和第一和第二设备唯一ID(UC1, UC2),并且加密密钥管理设备将第一助手数据传输到终端设备。

终端设备接收第一助手数据,根据接收到的第一助手数据(HD1) 和设备唯一数据,生成对应的第一设备唯一ID(UC),基于所生成 的第一设备唯一ID(UC)生成响应数据(H(UC)),并将响应数 据传输到加密密钥管理设备。

加密密钥管理设备接收响应数据,并将接收到的响应数据(H (UC))与期望值数据(H(UC))进行比较,其中期望值数据(H (UC))是根据由其本身所生成的第一设备唯一ID(4_2,5)来生 成的。

当比较结果一致时,加密密钥管理设备根据第二设备唯一ID和 加密密钥(7,8)生成散列函数(HF2),并将第二助手数据和散列 函数传输到终端设备。

终端设备接收第二助手数据和散列函数,根据接收到的第二助手 数据(HD2)和设备唯一数据(UD)生成第二设备唯一ID(UC2), 并根据所生成的第二设备唯一ID和接收到的散列函数(6),解密加 密密钥。

根据上文所描述的配置,可以给用于认证的设备唯一ID(UC1) 和用于保护加密密钥的设备唯一ID(UC2)设置相互不同的值;因此, 可以提高安全性。

(17)制作响应的摘要

具体而言,根据段落(16)的加密密钥管理设备按如下方式配置。

终端设备利用不同于散列函数(4_1)的另一散列函数,创建再 现的第一设备唯一ID(UC1)的摘要(H(UC1))作为响应数据。

加密密钥管理设备利用与另一散列函数相同的散列函数,创建由 其本身所生成的第一设备唯一ID(UC)的摘要(H(UC1))作为期望值 数据,并将响应数据与期望值数据({Enc(HF1),HD2})(5)进行比较。

根据上文所描述的配置,可以保护在认证时传送的设备唯一ID (UC1);因此,可以进一步提高安全性。

(18)<通过HF2=助手数据2+UC2加密的加密密钥>

具体而言,根据段落(16)的加密密钥管理设备按如下方式配置。

加密密钥管理设备通过组合并编码散列函数(HF2)和第二助手 数据(HD2)(9),生成加密密钥再现数据,并将加密密钥再现数据 传输到终端设备。

终端设备接收加密密钥再现数据,并通过解码接收到的加密密钥 再现数据(10),来解密散列函数和第二助手数据。

根据上文所描述的配置,可以保护在写入密钥信息时传输的散列 函数(HF2)和助手数据(HD2);因此,可以进一步提高安全性。

(19)<配备有PUF生成电路的LSI(通过散列函数的认证)>

半导体集成电路(21)配备有:用于生成通过制造变化单独定义 的设备唯一数据(UD)的唯一数据生成单元(1);以及用于通过使 用基于设备唯一数据由外部设备(30)所生成的并从外部设备提供的 加密密钥信息,来解密加密密钥(HF1)的加密密钥解密单元(6)。 半导体集成电路(21)按如下方式配置。

半导体集成电路通过唯一数据生成单元,来生成设备唯一数据 (UD),并将设备唯一数据提供到外部设备。

外部设备从半导体集成电路接收设备唯一数据,并根据接收到的 设备唯一数据生成助手数据(HD)和设备唯一ID(UC)。设备唯一 ID(UC)是单独定义的半导体集成电路所特有的代码,通过使用对应 的助手数据(HD),吸收生成环境所导致的设备唯一数据的波动。

外部设备根据设备唯一ID和加密密钥生成散列函数(HF2), 并将散列函数传输到半导体集成电路。

半导体集成电路接收散列函数,根据接收到的散列函数(HF2) (4_5)生成响应数据,并将响应数据传输到外部设备。

外部设备接收响应数据,将接收到的响应数据与由其本身所生成 的期望值数据进行比较(5),当比较结果一致时,外部设备将助手数 据传输到半导体集成电路。

半导体集成电路接收助手数据,根据接收到的助手数据(HD) 和设备唯一数据(UD)生成对应的设备唯一ID(UC),并根据所生 成的设备唯一ID和接收到的散列函数(6)解密加密密钥(HF1)。

根据上文所描述的配置,在允许在半导体集成电路中使用加密密 钥之前,可以利用通过制造变化单独定义的半导体集成电路所特有的 设备唯一ID,来执行认证;因此,可以防止对于加密密钥的不正当的 获取。

(20)<加密密钥管理设备(通过散列函数的认证)>

加密密钥管理设备(30)耦合到终端设备(20,21),终端设备 (20,21)配备有用于生成通过制造变化唯一地定义的设备唯一数据 (UD)的唯一数据生成单元(1),以及根据加密密钥信息来解密加 密密钥(HF1)的加密密钥解密单元(6)。加密密钥管理设备根据设 备唯一数据生成加密密钥信息,并将加密密钥信息提供到终端设备, 并且按如下方式配置。

加密密钥管理设备从终端设备接收设备唯一数据(UD),并基 于接收到的设备唯一数据(UD)生成助手数据(HD)和设备唯一ID (UC)。设备唯一ID(UC)是单独定义的终端设备所特有的代码, 通过使用对应的助手数据(HD),吸收生成环境所导致的设备唯一数 据(UD)的波动。

加密密钥管理设备根据设备唯一ID和加密密钥,生成散列函数 (HF2),并将散列函数传输到终端设备。

终端设备接收散列函数,根据接收到的散列函数(HF2)生成响 应数据,并将响应数据传输到加密密钥管理设备。

加密密钥管理设备接收响应数据,将接收到的响应数据与由其本 身所生成的期望值数据进行比较(5),当比较结果一致时,加密密钥 管理设备将助手数据(HD)传输到终端设备。

终端设备接收助手数据,根据接收到的助手数据(HD)和设备 唯一数据(UD),生成对应的设备唯一ID(UC),并根据所生成的 设备唯一ID和接收到的散列函数(6),解密加密密钥(HF1)。

根据上文所描述的配置,在允许在终端设备(20,21)中使用加 密密钥之前,加密密钥管理设备(30)可以利用通过制造变化单独定 义的终端设备所特有的的设备唯一ID(UC),来执行认证;因此, 可以防止对于加密密钥的不正当的获取。

2.实施例的细节

将进一步详细地说明实施例。

(实施例1)

<在通过助手数据和散列函数中一个的认证之后,提供另一个>

根据实施例1的加密密钥提供方法将加密密钥HF1从第二设备 30提供到使用密码的第一设备(20,21),其中第二设备30管理密 码的加密密钥。第一设备,例如是MCU21,通过读取器/写入器22 耦合到充当加密密钥管理设备(诸如服务器)的外部设备30。同样优 选地,代替MCU21,利用MCU21实现的ECU通过经过OBD-II (机载诊断版本2(On-Board Diagnostics Version II))耦合的重新 编程工具22,耦合到诸如服务器之类的外部设备30。进一步优选地, 第一设备是利用机载(on-board)MCU21实现的终端设备20,通过 在MCU21的内部或外部所提供的通信接口,通过因特网、LAN(局 域网),及其他无线或有线通信线路,耦合到诸如服务器之类的外部 设备30。另外优选地,第一设备(20,21)和第二设备30在单一封 装中实现,或在相同衬底上实现。在该情况下,通信接口和通信路径 实现得非常简单,或可以省略。图1示出了作为这些配置的代表性的 情况的MCU21、读取器/写入器22,以及加密密钥管理设备30之间 的通信的顺序图,其中,时间在垂直方向上示出。上文所描述的内容 同样适用于下面将描述的图3,图5,以及图7。因此,在实施例2, 实施例3,以及实施例4中将省略其说明。

第一设备(例如,MCU)21生成通过制造变化唯一地定义的设 备唯一数据UD。可以通过使用例如物理不可克隆功能(PUF)来生 成设备唯一数据UD。更具体地说,可以根据在通电时的SRAM的初 始值等来定义设备唯一数据UD。设备唯一数据UD具有一定的波动, 这取决于生成它时所处的环境,诸如设备的温度和电源电压。这被视 为设备唯一数据UD中所包括的错误(比特错误)。

第二设备(诸如服务器之类的外部设备)30基于设备唯一数据 UD,生成一对助手数据HD和设备唯一ID(UC)。设备唯一ID(UC) 是单独定义的第一设备21所特有的代码,通过使用对应的助手数据 HD吸收生成环境所导致的设备唯一数据UD的波动。可以根据一个 设备唯一数据(UD)生成多组助手数据(HD1,HD2)和设备唯一ID (UC1,UC2)。

第二设备(诸如服务器之类的外部设备)30根据设备唯一ID (UC)和加密密钥HF1,生成散列函数HF2。

第一设备(例如,MCU)21根据散列函数HF2和设备唯一ID (UC),解密加密密钥HF1。

图1中所示出的加密密钥提供方法是MCU21、读取器/写入器 22,以及加密密钥管理设备30(作为这些配置的代表性的情况)之间 的通信的顺序图,其中,在垂直方向上示出了时间。

MCU21生成设备唯一数据UD,并通过读取器/写入器22,将唯 一数据UD提供给加密密钥管理设备30(第一步骤)。假设读取器/ 写入器22和加密密钥管理设备30之间的用户认证已经完成,会话已 经激活。基于该假设,进一步假设的是通过读取器/写入器22,从加密 密钥管理设备30向MCU21发出设备唯一数据UD的读取命令。在 MCU21和加密密钥管理设备30之间的通信中,读取器/写入器22始 终介于在它们之间。然而,读取器/写入器22不会改变数据;因此, 下列说明省略了关于读取器/写入器22的干预的描述。

加密密钥管理设备30根据MCU21所提供的设备唯一数据UD, 生成一对助手数据HD和单独定义的MCU21所特有的设备唯一ID (UC)(第二步骤)。

加密密钥管理设备30根据所生成的设备唯一ID(UC)和加密 密钥HF1,生成散列函数HF2(第三步骤)。例如,通过将加密密钥 HF1视为消息,并通过使用设备唯一ID(UC)作为加密密钥,对加 密密钥HF1执行加密,生成散列函数HF2。

加密密钥管理设备30将助手数据HD和散列函数HF2中的一个 传输到MCU21(第四步骤)。

MCU21根据在第四步骤中接收到的助手数据HD或散列函数 HF2,将响应数据传输到加密密钥管理设备30(第五步骤)。根据接 收到的助手数据HD或散列函数HF2,生成响应数据。响应数据可以 是任意格式,只要它可以在加密密钥管理设备30中被验证为传输源。

加密密钥管理设备30通过确认在第五步骤接收到的响应数据的 有效性,来认证MCU21(第六步骤)。加密密钥管理设备30根据在 第三步骤生成的设备唯一ID(UC),在认证(第六步骤)之前,生 成用于验证响应数据的期望值数据。

在第六步骤中认证MCU21之后,加密密钥管理设备30将助手 数据HD和散列函数HF2中的另一个传输到MCU21(第七步骤)。

MCU21根据由其本身所生成的设备唯一数据(UD),以及在 第四步骤或第六步骤接收到的助手数据(HD)和散列函数(HF2), 来解密加密密钥HF1(第八步骤)。

根据上文所描述的过程,在允许在第一设备(例如,MCU21) 中使用加密密钥(HF1)之前,可以利用通过制造变化单独定义的第 一设备(例如,MCU21)所特有的设备唯一ID(UC),来执行认证; 因此,可以防止对于加密密钥的不正当的获取。

如上文所描述的,发现了下列问题:即,如果有恶意用户,则通 过向加密密钥管理设备报告虚假的写入失败,即使正常地写入散列函 数,也有逃避收费并允许使用第一设备(例如,MCU21)的不当的 可能性。这是因为,当在第一设备(例如,MCU21)中正常地写入 散列函数时,第一次执行收费。另一方面,在本实施例中,首先使用 设备唯一ID(UC)来执行认证。因此,可以通过将成功的认证视为 正常写入来执行收费。当认证不成功时,不提供用于再现加密密钥的 散列函数HF2。当预先提供了为加密密钥信息的散列函数HF2时,不 提供助手数据HD以防止对于加密密钥的使用,其中该助手数据HD 是用于从加密密钥信息提取加密密钥的信息。认证成功但助手数据 HD和散列函数HF2中的另一个的提供(第七步骤)不成功的情况是 很少的。这样的情况应该作为设备故障,通信故障等等来处理。即使 恶意用户造成这样的情况,也很难使用该情况来逃避收费等等。如此, 可以防止对于加密密钥的不正当的获取。

(实施例2)

<通过助手数据的认证>

图2是示出了根据实施例2的加密密钥提供系统的数据流程图。 使用密码的第一设备(20,21)和为密码管理加密密钥HF1的第二设 备30彼此耦合。被示为“电路”的每一个区块都可以被配置成具有块的 功能的独立电路,或者可以被配置成通过在诸如CPU之类的处理器中 操作的软件实现的功能。多个电路块的功能可以通过一个电路来实现, 或者被示为电路块的块的一部分的功能可以通过另一电路块来实现。 如此,实现功能的电路或软件的配置是任意的。与上文所说明的实施 例1的情况相同,第一设备是例如MCU21,并通过读取器/写入器22 耦合到充当加密密钥管理设备的诸如服务器之类的外部设备30。可另 选地,第一设备是利用机载MCU21实现的终端设备20,并通过在 MCU21的内部或外部提供的通信接口,耦合到诸如服务器之类的外 部设备(第二设备)30。虽然未具体地限制,但是,第一设备(20, 21)和第二设备30之间的通信路径配置有一个系统,例如,带有在相 应的设备中提供的通信接口。然而,在图2中省略了通信接口,并且 示出了用于每个数据的传输和接收的单独线路。第一设备(20,21) 和第二设备30之间的通信利用时间共享数据包,例如,通过通信接口 (未示出)利用一个通信协议来执行。上文所描述的内容同样适用于 下面将描述的图4以及图6。因此,在实施例3,以及实施例4中将省 略其说明。

第一设备(20,21)配置有唯一数据生成单元(PUF)1、唯一 ID生成电路2、摘要生成电路4_1,以及HF1解密电路6。唯一数据 生成单元(PUF)1生成设备唯一数据UD。如上文所描述的,设备唯 一数据UD包括生成环境所导致的波动,即,错误(比特错误)。将 所生成的设备唯一数据UD传输到第二设备30,还将其提供给唯一ID 生成电路2。唯一ID生成电路2根据PUF1所生成的设备唯一数据 UD和由第二设备30所提供的助手数据HD,生成设备唯一ID(UC)。 即使在由PUF1所生成的设备唯一数据UD中存在生成环境所导致的 波动,该波动也被助手数据HD所吸收,即,错误(比特错误)被校 正,设备唯一数据UD便变成高可重复性的数据。将设备唯一ID(UC) 提供到摘要生成电路4_1和HF1解密电路6。摘要生成电路4_1使用 规定的散列函数,根据设备唯一ID(UC),生成消息摘要(在下文中, 简称为“摘要”)H(UC)。将所生成的摘要H(UC)传输到第二设 备30。HF1解密电路6利用设备唯一ID(UC),解密从第二设备30 传输的经加密的加密密钥HF1,并获取加密密钥HF1。

这些电路块可以分别作为独立的电路块内置在MCU21中,或作 为一个加密算术加速器来实现。此外,这些电路块还可以部分地或完 全地使用内置在MCU21中的CPU(中央处理单元),诸如闪存(注 册商标)、SRAM等等之类的非易失性存储器,通过软件的功能来实 现。唯一数据生成单元(PUF)1在被CPU用作工作区的SRAM通 电时读取初始值,并将读取的初始值定义为设备唯一数据UD。

第二设备30配置有用于生成一对助手数据和设备唯一ID的生成 电路3,摘要生成电路4_2、比较器电路5,以及HF2生成电路7。 HF2生成电路7包括用于将HF1加密为加密密钥的加密电路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将加密密钥HF1 发送到加密电路8,并通过将设备唯一ID(UC)用为加密密钥进行加 密而生成散列函数HF2,作为加密的加密密钥Enc(HF1)。将散列 函数HF2传输到第一设备(20,21)的HF1解密电路6。

图3是示出了根据实施例2的加密密钥提供方法的顺序图。

读取器/写入器22的操作员设置IC卡并执行用户认证。例如, 操作员输入用户ID和密码。将认证信息从读取器/写入器22传输到加 密密钥管理设备30。加密密钥管理设备30根据传输的认证信息,进 行认证,当操作员被认证为有效用户时,激活会话。在操作员被认证 为有效用户之前,从读取器/写入器22到MCU21的访问,例如,对 MCU21中的存储器和寄存器的读取被禁止。

当激活会话时,加密密钥管理设备30通过读取器/写入器22向 MCU21发出设备唯一数据读取命令。作为响应,MCU21生成设备 唯一数据(UD),并通过读取器/写入器22,将设备唯一数据(UD) 传输到加密密钥管理设备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被允许 解密并使用加密密钥HF1。根据上文所描述的过程,完成加密密钥从 加密密钥管理设备30向MCU21的提供。

为了使MCU21使用加密密钥HF1,助手数据HD和散列函数 HF2两者都是必需的。这是因为,设备唯一ID(UC)是必需的,以 便通过解密散列函数HF2获取HF1,并因为需要通过使用助手数据 HD,吸收内部地生成的设备唯一数据UD中存在的波动,以便获取设 备唯一ID(UC)。如已经说明的,如果助手数据HD和散列函数HF2 两者同时传输,则会产生安全缺陷,逃避对于写入加密密钥的收费的 不正当的行为将被允许。例如,当MCU21的用户和读取器/写入器 22的操作员是恶意的,如果助手数据HD和散列函数HF2两者同时 传输,则通过向加密密钥管理设备30报告虚假的写入失败,逃避对于 写入加密密钥的收费是可能的,尽管可能从该时间将加密密钥HF1用 于MCU21中。另一方面,根据图3中所示出的加密密钥提供方法, 可以解决本问题。在MCU21使用加密密钥HF1所需的两个参数助手 数据HD和散列函数HF2中,只有助手数据HD被首先写入MCU21 中。在利用摘要H(UC)确认MCU21可以利用所提供的助手数据 HD生成适当的设备唯一ID(UC)之后,散列函数HF2被作为另一 个参数来传输。对摘要H(UC)的确认充当证明真正的MCU21的认 证。摘要H(UC)对应于认证中的响应数据的回复。即使系统被配置 为照原样回复设备唯一ID(UC),也在理论上解决了问题。然而, 产生了另一个安全缺陷:设备唯一ID(UC)会由于其他攻击而被泄 露。可以利用设备唯一ID(UC)的摘要作出回复,而不是照原样回 复设备唯一ID(UC),来进一步提高安全性。

<应用于车辆的电系统的加密密钥提供系统>

图8是示出了应用于车辆的电系统的加密密钥提供系统的数据 流图。

其中安装了根据本实施例的MCU21_1的ECU24_1,与其中安 装了另一MCU21_2的ECU24_2通过车载LAN(局域网)26耦合。 车载LAN26是,例如多个ECU耦合到的CAN(控制器区域网络) 和FlexRay,它们相互进行通信。在图8中,为简明起见,只示出了 两个ECU24_1和24_2。即使它是车载LAN26,其也有可能受到黑 客等的攻击。例如,从外部接管CAN并且控制制动和灯的攻击案件 在最近几年被报告出。为了通过提供阻止这样的攻击的性能从而提高 安全性,采用了加密通信。MCU21_1和MCU21_2分别配备有内置 的通信接口25_1和25_2,它们使用加密密钥HF1,执行消息的加密 与解密。ECU24_1是车辆的门的ECU,ECU24_2是控制面板的ECU。 当更换了门时,为了再次允许在控制面板和门之间有加密通信,需要 将相同加密密钥HF1写入到更换的门的ECU24_1中。上文所描述的 门的更换可能在与车辆制造厂、经销商等等相比具有更低的安全环境 的修配厂中执行。因此,在不加密的情况下,提供加密密钥HF1(其 是高保密性的密钥)是有危险的。因此,读取器/写入器22耦合到MCU 21_1,并从加密密钥管理设备30写入加密密钥。MCU21_1和读取器 /写入器22基于,例如OBD-II,与连接电缆23耦合。加密密钥管理 设备30是诸如服务器之类的外部设备,并安装在安全环境中,并通过 诸如因特网之类的网络31被读取器/写入器22访问。

MCU21_1配置有唯一数据生成单元(PUF)1_1,通过在上文 所描述的实施例中所说明的加密密钥提供方法来写入加密密钥HF1。 对MCU的认证使用由唯一数据生成单元(PUF)1_1所生成的设备唯 一数据UD来执行,并应用根据实施例的加密密钥提供方法。因此, 即使读取器/写入器22的操作员等是恶意用户,也可以安全地写入加 密密钥HF1。安装在其他ECU上的MCU,例如,MCU21_2,可以 类似地配置。

不仅实施例2,而且所有其他实施例1,3,以及4可以适用于应 用在图8中所示出的车辆的电系统的加密密钥提供系统。

<应用于网络终端的加密密钥提供系统>

图9是示出了应用于网络终端的加密密钥提供系统的数据流图。

图9中所示出的网络终端20通过诸如因特网之类的网络31耦合 到内容服务器30。网络终端20配置有MCU21、网络接口27,以及 闪存29。MCU21配置有唯一数据生成单元(PUF)1,以及用于通过 加密密钥HF1来解密密码的解密电路28。由PUF1所生成的设备唯 一数据UD通过网络接口27,放在网络31中的数据包(packet)中, 并传输到服务器30。服务器30将加密密钥HF1提供给MCU21,与 上文所描述的加密密钥提供方法的情况相同。利用加密密钥HF1加密 的内容存储在闪存29中。MCU21通过解密电路28来解密密码,并 使用相关的内容。

网络终端20是,例如电子词典,当用户购买新内容时,应用本 实施例来增强安全性。将购买新内容的用户通过网络31从内容服务器 30下载内容,并将它们存储在自己的闪存29中。内容可以通过封装 介质等等提供,而不通过网络。由于内容是利用加密密钥HF1加密的, 因此,用户在获取加密密钥HF1之前是不能使用该内容的。当用户向 内容服务器30表示出对于相关内容的购买意图时,响应于该意图,内 容服务器30从MCU21读取设备唯一数据UD,并将加密密钥HF1 提供到MCU21,与上文所描述的加密密钥提供方法的情况相同。用 户只有在MCU21中写入加密密钥HF1之后才可以使用相关的内容。

如上文所描述的,对MCU21的认证是利用由唯一数据生成单元 (PUF)1所生成的设备唯一数据UD执行的。因此,可以安全地写 入加密密钥HF1。

不仅实施例2,而且所有其他实施例1,3,以及4可以适用于应 用于图9中所示出的网络终端的加密密钥提供系统。

(实施例3)

<两组设备唯一ID和助手数据>

图4是示出了根据实施例3的加密密钥提供系统的数据流图。

与根据图2中所示出的实施例2的加密密钥提供系统的差异在 于:给第一设备(20,21)提供了两个唯一ID生成电路2_1、2_2, 以及HF2解密电路10。差异还在于:在第二设备30中,助手数据与 设备唯一ID生成电路3生成两组助手数据HD1和设备唯一ID-1 (UC1)以及助手数据HD2和设备唯一ID-2(UC2),而且HF2生 成电路7进一步配备有合并电路9。助手数据HD1对应于设备唯一 ID-1(UC1),助手数据HD2对应于设备唯一ID-2(UC2)。对于一 段由唯一数据生成单元(PUF)1所生成的设备唯一数据UD,当使用 助手数据HD1时,可以生成设备唯一ID-1(UC1),当使用助手数 据HD2时,可以生成设备唯一ID-2(UC2)。唯一ID生成电路2_1 和2_2分别具有上文所描述的功能。助手数据HD1和助手数据HD2, 以及设备唯一ID-1(UC1)和设备唯一ID-2(UC2)分别具有不同的 值。HF2生成电路7中所包括的合并电路9是组合加密的HF1(Enc (HF1))和助手数据HD2,并执行规定的编码的电路。HF2解密电 路10是执行相反的处理(解码)并分离加密的HF1(Enc(HF1)) 和助手数据HD2的电路。配置的其他部分与实施例2的那些相同;因 此,省略了其说明。

图5是示出了根据实施例3的加密密钥提供方法的顺序图。

从用户认证和会话激活直到响应于来自加密密钥管理设备30的 设备唯一数据读取命令,MCU21生成设备唯一数据(UD)并通过读 取器/写入器22将它传输到加密密钥管理设备30的顺序,与参考图3 说明的实施例2的顺序相同,。

利用传输的设备唯一数据(UD),加密密钥管理设备30生成两 对助手数据和设备唯一ID,即,一对相互对应的助手数据HD1和设 备唯一ID-1(UC1),以及另一对相互对应的助手数据HD2和设备 唯一ID-2(UC2)。加密密钥管理设备30首先只将助手数据HD1传 输到MCU21。MCU21将传输的助手数据HD1写入到非易失性存储 器等,并根据助手数据HD1和在MCU21中所生成的设备唯一数据 UD,生成设备唯一ID-1(UC1)。通过摘要生成电路4_3,将所生成 的设备唯一ID-1(UC1)制成摘要,并将其作为消息摘要H(UC1), 传输到加密密钥管理设备30。加密密钥管理设备30根据以前生成的 设备唯一ID-1(UC1),预先生成摘要H(UC1),作为用于验证响 应数据的期望值数据。加密密钥管理设备30确认传输的摘要H(UC1) 和由其本身在内部生成的摘要H(UC1)一致。当一致时,加密密钥 管理设备30生成散列函数HF2,并将它传输到MCU21。散列函数 HF2是加密HF1(Enc(HF1))与助手数据HD2被组合并且受到规 定编码的数据,其中加密的HF1(Enc(HF1))利用设备唯一ID-2 (UC2)。MCU21将传输的散列函数HF2存储到非易失性存储器。 通过HF2解密电路10,MCU21将散列函数HF2分离为加密的HF1 (Enc(HF1))和助手数据HD2。将助手数据HD2输入到唯一ID生成电 路2_2,而唯一ID生成电路2_2根据设备唯一数据(UD)生成设备 唯一ID-2(UC2)。利用所生成的设备唯一ID-2(UC2),HF1解密 电路6解密加密的HF1(Enc(HF1)),以获取加密密钥HF1。在此时刻 之后,MCU21被允许解密并使用加密密钥HF1。根据上文所描述的 过程,完成加密密钥从加密密钥管理设备30向MCU21的提供。

也在本实施例中,与实施例2的情况相同,在助手数据HD和散 列函数HF2中,首先只将助手数据HD传输到MCU21以认证MCU21, 并在认证之后,传输作为另一参数的散列函数HF2,其中助手数据 HD和散列函数HF2是MCU21使用加密密钥HF1所需的两个参数。 根据上文所描述的过程,可以防止对于加密密钥的不正当的获取。

此外,还分离用于认证的设备唯一ID-1(UC1)和用于加密加密 密钥HF1的设备唯一ID-2(UC2),因此,可以进一步提高安全性。

(实施例4)

<通过散列函数的认证>

在实施例2和实施例3中,在助手数据HD和散列函数HF2中, 首先只将助手数据HD传输到MCU21以认证MCU21,并在认证之 后,传输作为另一参数的散列函数HF2,其中助手数据HD和散列函 数HF2是MCU21使用加密密钥HF1所需的两个参数。在本实施例 4中,相反,包括加密状态下的关于加密密钥HF1的信息的散列函数 HF2被首先写入MCU21中,在认证之后,传输作为另一参数的助手 数据HD。根据本过程,类似地,可以防止对于加密密钥的不正当的 获取。

图6是示出了根据实施例4的加密密钥提供系统的数据流图。

第一设备(20,21)配置有唯一数据生成单元(PUF)1、唯一 ID生成电路2、摘要生成电路4_5,以及HF1解密电路6。将由PUF 1所生成的设备唯一数据UD传输到第二设备30的助手数据和设备唯 一ID生成电路3(生成一对助手数据和设备唯一ID),并提供给第 一设备(20,21)的唯一ID生成电路2。摘要生成电路4_5利用规定 的散列函数,生成对于由第二设备30传输的散列函数HF2的消息摘 要H(HF2)。将所生成的摘要H(HF2)传输到第二设备30的比较 器电路5。唯一ID生成电路2根据由PUF1所生成的设备唯一数据 UD和从第二设备30所提供的助手数据HD,生成设备唯一ID(UC)。 HF1解密电路6利用设备唯一ID(UC),解密从第二设备30传输的 作为散列函数HF2的加密的加密密钥HF1,并获取加密密钥HF1。

第二设备30配置有用于生成一对助手数据和设备唯一ID的生成 电路3,HF2生成电路7、摘要生成电路4_6、比较器电路5,以及传 输使能电路11。生成电路30根据由第一设备(20,21)所提供的设 备唯一数据UD,生成一对助手数据HD和设备唯一ID(UC)。将在 生成电路3中所生成的设备唯一ID(UC)输出到HF2生成电路7, 并生成作为加密的加密密钥Enc(HF1)的散列函数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中那样的相同 安全度。

图7是示出了根据实施例4的加密密钥提供方法的顺序图。

从用户认证和会话激活直到响应于来自加密密钥管理设备30的 设备唯一数据读取命令,MCU21生成设备唯一数据(UD)并通过读 取器/写入器22将它传输到加密密钥管理设备30的顺序,与参考图3 说明的实施例2的序列顺序相同。

加密密钥管理设备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)输入到HF1解密电路6。 传输的散列函数HF2已经被输入到HF1解密电路6。因此,HF1解 密电路6可以通过利用输入的设备唯一ID(UC)解密散列函数HF2, 来获取加密密钥。在此时刻之后,MCU21被允许解密并使用加密密 钥HF1。根据上文所描述的过程,完成加密密钥从加密密钥管理设备 30向MCU21的提供。

如上文所描述的,在本实施例中,在助手数据HD和散列函数 HF2中,首先在MCU21中只写入散列函数HF2,其中助手数据HD 和散列函数HF2是MCU21使用加密密钥HF1所需的两个参数。不 同于实施例2和3,本实施例中的MCU21根据散列函数HF2生成摘 要H(HF2)作为响应数据,并将它作为响应传输到加密密钥管理设 备30。在确认此摘要H(HF2)的一致之后,加密密钥管理设备30 传输作为另一参数的助手数据。对摘要H(HF2)的确认充当证明真 正的MCU21的认证。由于MCU21只有在传输助手数据HD之后才 被允许使用加密密钥HF1,因此,可以防止对于加密密钥的不正当的 获取。

如上文所描述的,基于实施例具体描述了本发明人完成的发明。 然而,无论如何强调都不过分,本发明不局限于实施例,并且在不偏 离主旨的范围内,可以进行各种改变。

例如,第一设备(20,21)和第二设备30可以通过以具体形式 的任何类型的实施例来实现。在优选的情况下,MCU21包括包围功 能,并通过单个芯片形成。可替代地,仍然优选的是MCU21被包含 在用于实现另一功能的电路的一部分内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号