用于认证电子通信系统中的节点的方法和装置转让专利

申请号 : CN201410681506.3

文献号 : CN104715187B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·切尔拉帕桐畑外志昭S·罗塞恩布拉特

申请人 : 国际商业机器公司

摘要 :

本公开提供用于认证电子通信系统中的节点的方法和装置。第一节点的固有ID的第一副本可以存储在第二节点上。第一节点可以接收使得其生成其固有ID的第二副本的要求。第二副本和随机值可以用作函数的输入以生成第一码。第一码发送到第二节点。第二节点使用随机值和/或固有ID的其本地副本来对第一码进行解码。第二节点针对其本地信息来检查已解码信息,并且如果存在匹配,则认证第一节点。

权利要求 :

1.一种用于认证电子通信系统中的节点的计算机实现的方法,所述方法包括:从节点接收认证请求;

将生成要求发送到所述节点,其中,所述生成要求提示所述节点生成表示具有包括随机值和基于固有特征的第一固有ID的输入的第一加密要求的输出的第一码,其中所述第一加密要求是可逆函数;

响应于所述生成要求来从所述节点接收所述第一码;

生成第二码,其中,所述第二码表示具有包括所述第一码、所述随机值以及第二固有ID中的至少两个的输入的第二加密要求的输出,其中,从除了所述节点之外的源获得所述第二固有ID;并且其中,所述随机值包括以下值中的一个:发送到所述节点和主机系统的外部值,或使用相同的种子输入在主机系统和所述节点中的每个中生成的值;以及在第二加密要求与第一加密要求相同的情况下,基于所述第二加密要求具有所述随机值和所述第二固有ID的输入,以及所述第二码匹配所述第一码来认证所述节点;或者在第二加密要求为第一加密要求的逆函数的情况下,基于以下项中的一个或更多个来认证所述节点:所述第二加密要求具有所述第一码和所述随机值的输入,以及所述第二码匹配所述第二固有ID;以及所述第二加密要求具有所述第一码和所述第二固有ID的输入,以及所述第二码匹配所述随机值;

由此所述第一固有ID匹配所述第二固有ID。

2.如权利要求1所述的方法,其中:

所述固有特征是所述节点的固有特征;

所述第一固有ID是使用所述生成要求基于所述节点的所述固有特征由所述节点动态生成的所述节点的固有ID;以及所述第二固有ID是从与所述生成要求和所述节点相关联的数据库记录中获得的,其中,所述数据库记录未保存在所述节点上。

3.如权利要求1所述的方法,其中:

所述第一固有ID是从与所述生成要求相关联的数据库记录获得的,其中,所述数据库记录能够由所述节点获得;以及基于所述固有特征使用所述生成要求来动态生成所述第二固有ID。

4.如权利要求1所述的方法,其中:

所述第二码是具有所述随机值和所述第二固有ID的输入的第二加密要求的输出;以及基于与所述第二码的散列化值匹配的所述第一码的散列化值来认证所述节点,其中,使用散列算法来生成所述第一码的所述散列化值和所述第二码的所述散列化值。

5.如权利要求1所述的方法,还包括:

将多个附加生成要求发送到所述节点,其中,所述多个附加生成要求提示所述节点生成所述节点的对应的多个固有ID;

接收所述多个固有ID的加密副本;

对所述多个固有ID的所述加密副本进行解密,以生成对应的多个解密值;以及基于与从除了所述节点之外的源获得的对应固有ID匹配的所述多个解密值中的每一个来认证所述节点。

6.如权利要求1所述的方法,其中,所述固有特征包括以下项中的一个或更多个:SRAM的通电电压值、环形振荡器物理不可克隆函数值的配对、DRAM保留故障计数、仲裁器物理不可克隆函数中的竞争情况的结果、以及无序三维微结构的光学斑点。

7.一种用于认证电子通信系统中的节点的系统,所述系统包括:计算机,具有处理器和有形存储设备;以及

在存储设备上实施以用于所述处理器执行的程序,所述程序具有多个模块,所述多个模块包括:接收模块,被配置为从节点接收认证请求;

发送模块,被配置为把生成要求发送到所述节点,其中,所述生成要求提示所述节点来生成表示具有包括随机值和基于固有特征的第一固有ID的输入的第一加密要求的输出的第一码,其中所述第一加密要求是可逆函数;

第二接收模块,被配置为响应于所述生成要求来从所述节点接收所述第一码;

生成模块,被配置为生成第二码,其中,所述第二码表示具有包括所述第一码、所述随机值以及第二固有ID中的至少两个的输入的第二加密要求的输出,其中,从除了所述节点之外的源获得所述第二固有ID;并且其中,所述随机值包括以下值中的一个:发送到所述节点和主机系统的外部值,或使用相同的种子输入在主机系统和所述节点中的每个中生成的值;以及认证模块,被配置为

在第二加密要求与第一加密要求相同的情况下,基于所述第二加密要求具有所述随机值和所述第二固有ID的输入,以及所述第二码匹配所述第一码来认证所述节点;或者在第二加密要求为第一加密要求的逆函数的情况下,基于以下项中的一个或更多个来认证所述节点:所述第二加密要求具有所述第一码和所述随机值的输入,以及所述第二码匹配所述第二固有ID;以及所述第二加密要求具有所述第一码和所述第二固有ID的输入,以及所述第二码匹配所述随机值;

由此所述第一固有ID匹配所述第二固有ID。

8.如权利要求7所述的系统,其中:

所述固有特征是所述节点的固有特征;

所述第一固有ID是使用所述生成要求基于所述节点的所述固有特征由所述节点动态生成的所述节点的固有ID;以及所述第二固有ID是从与所述生成要求和所述节点相关联的数据库记录获得的,其中,所述数据库记录未被保存在所述节点上。

9.如权利要求7所述的系统,其中:

所述第一固有ID是从与所述生成要求相关联的数据库记录中获得的,其中,所述数据库记录能够由所述节点获得;以及基于所述固有特征使用所述生成要求动态生成所述第二固有ID。

10.如权利要求7所述的系统,其中:

所述第二码是具有所述随机值和所述第二固有ID的输入的第二加密要求的输出;以及基于与所述第二码的散列化值匹配的所述第一码的散列化值来认证所述节点,其中,使用散列算法来生成所述第一码的所述散列化值和所述第二码的所述散列化值。

11.如权利要求7所述的系统,还包括:

将多个附加生成要求发送到所述节点,其中,所述多个附加生成要求提示所述节点生成所述节点的对应的多个固有ID;

接收所述多个固有ID的加密副本;

对所述多个固有ID的所述加密副本进行解密,以生成对应的多个解密值;以及基于与从除了所述节点之外的源获得的对应固有ID匹配的所述多个解密值中的每一个来认证所述节点。

12.如权利要求7所述的系统,其中,所述固有特征包括以下项中的一个或更多个:SRAM的通电电压值、环形振荡器物理不可克隆函数值的配对、DRAM保留故障计数、仲裁器物理不可克隆函数中的竞争情况的结果、以及无序三维微结构的光学斑点。

说明书 :

用于认证电子通信系统中的节点的方法和装置

技术领域

[0001] 本申请总体涉及电子通信,更具体地说,涉及用于各电子设备之间的电子通信的认证协议。

背景技术

[0002] 发送机和接收机之间的电子通信可以包括一个或多个安全或认证等级,包括:确认发送机和接收机的各个身份以及对它们之间所传送的数据进行加密。对于认证,一些传统方法使用ID和密码。可以使用公钥和私钥通过加密来保护通信。然而,当未授权的发送机和接收机获知ID和密码时,未授权的访问或未授权的通信是可能的。相应地,可能期望实现通信协议以保护电子系统不受未授权的访问或使用。

发明内容

[0003] 本公开的实施例包括一种用于认证电子通信系统中的节点的方法、系统和计算机程序产品。从节点接收认证请求。将生成要求发送到所述节点,其中,所述生成要求提示所述节点生成表示具有包括第一随机值和基于固有特征的第一固有ID的输入的第一加密要求的输出的第一码。从所述节点响应于所述生成要求而接收所述第一码。生成第二码,其中,所述第二码表示具有包括所述第一码、第二随机值以及第二固有ID中的至少两个的输入的第二加密要求的输出,其中,从除了所述节点之外的源获得所述第二固有ID。基于以下项中的一个或多个来认证所述节点:(a)所述第二加密要求具有所述第二随机值和所述第二固有ID的输入以及所述第二码匹配所述第一码;(b)所述第二加密要求具有所述第一码和所述第二随机值的输入以及所述第二码匹配所述第二固有ID;以及(c)所述第二加密要求具有所述第一码和所述第二固有ID的输入以及所述第二码匹配所述第二随机值;由此,所述第一随机值匹配所述第二随机值,所述第一固有ID匹配所述第二固有ID。
[0004] 以下参照附图详细描述各个实施例的其它特征以及结构和操作。在附图中,相同标号指示相同或功能相似的要素。

附图说明

[0005] 图1是描述根据本公开实施例的通信系统的示意性框图;
[0006] 图2A是描述根据本公开实施例的使用至少一个固有ID的通信系统的示意性框图;
[0007] 图2B是描述根据本公开实施例的使用至少两个固有ID的通信系统的示意性框图;
[0008] 图2C是描述根据本公开实施例的使用至少三个固有ID的通信系统的示意性框图;
[0009] 图2D是描述根据本公开实施例的使用一个或多个固有ID的通信系统的示意性框图;
[0010] 图3是描述根据本公开实施例的用于认证通信系统中的节点的方法的步骤的流程图;
[0011] 图4是描述根据本公开实施例的计算机系统的示意性框图;
[0012] 图5是描述根据本公开实施例的示例性云计算环境的示意性框图;以及[0013] 图6是描述根据本公开实施例的图5的云计算环境的多层功能实施例的示意性框图。

具体实施方式

[0014] 图1是描述根据本公开的实施例的通信系统101的示意性框图。现参照图1,本公开的实施例包括基于固有ID的芯片对芯片通信系统101。通信系统101可以启用包括例如节点100A、100B和100C的两个或更多个节点100之间的安全通信。每个这样的节点100可以分别包括通信设备或芯片110,例如芯片110A、110B和110C。在有关实施例中,芯片110可以是对应通信设备的构成组件。给定对应生成要求,每个芯片110可以具有可以用于生成一个或多个对应固有ID的唯一固有特征(IF)200或特性。例如,芯片110的IF可以是SRAM(静态随机存取存储器)的通电电压值、环形振荡器物理不可克隆函数(PUF)配对或DRAM保留故障计数。
通常,芯片110的IF 200可以是其它芯片中无法复制的芯片110的唯一物理特性。所生成的固有ID可以是例如所生成的数字二进制矢量,如{0010100001111…1101}。
[0015] 可以采用若干方法、机制和系统以响应于生成要求而使用其IF200来生成芯片110的一个或多个唯一并且难以复制的固有ID。如以下更详细地描述的那样,生成要求可以被设计为:从芯片110诱发对于芯片并且还对于生成要求都唯一的固有ID响应。响应于生成要求所生成的固有ID可以是例如数字二进制矢量。由于从芯片110的IF200推导固有ID,因此不同的芯片110将不能够产生对给定生成要求的同一固有ID响应。用于生成固有ID的IF 200可以不随着时间以及其它字段条件而变化。基于芯片110的IF 200所生成的固有ID唯一地依赖于芯片的某种固有属性,从而使用同一要求的不同芯片将不能够产生同一固有ID或该固有ID的紧密近似。在一些实施例中,芯片110可以基于多个生成要求而生成大量这样的固有ID,以使得能够在芯片110享有的/进行的每个认证和/或通信期间使用不同的固有ID,这进一步加强了安全性。
[0016] 用于生成芯片的唯一固有ID的一种实现方式描述于2013年5月23日公开的Fainstein等人的题为“Retention Based Intrinsic Fingerprint Identification Featuring a Fuzzy Algorithm and a Dynamic Key”的美国专利公开20130133031A1(“Fainstein 2013”)中,通过其引用而全部合并到此。
[0017] 生成芯片的唯一固有ID的附加实现方式描述于IEEE Journal of Solid-State Circuits,Vol.48,No.4,April 2013中公开的Rosenblatt等人的“Field Tolerant Dynamic Intrinsic Chip ID Using 32nm High-K/Metal Gate SOI Embedded DRAM”(“Rosenblatt 2013”)中,通过其引用而全部合并到此。
[0018] 生成芯片的唯一固有ID的另一实现方式描述于Custom Integrated Circuits Conference(CICC),2011IEEE的Chellappa等人的“Improved Circuits for Microchip Identification using SRAM Mismatch”(“Chellappa 2011”)中,通过其引用而全部合并到此。
[0019] 生成芯片的唯一固有ID的另一实现方式描述于Proceedings of the 44th Annual Design Automation Conference(ACM),2007,Suh等人的“Physical Unclonable Functions for Device Authentication and Secret Key Generation”(“Suh 2007”)中,通过其引用而全部合并到此。
[0020] 用于生成芯片的唯一固有ID的附加实现方式描述于Ravikanth等人的博士论文“Physical One-Way Functions”(“Ravikanth 2001”)中,通过其引用而全部合并到此。
[0021] 虽然芯片110包含固有特征IF 200,但它们的对应固有ID并未保存在芯片110自身或包含芯片110的节点100上。或者,芯片110能够使用它们的各个IF 200来生成固有ID。图1中所描述的芯片110A、110B和110C的IF 200可以分别是例如IF 200A、IF 200B和IF 200C。
[0022] 各节点100的认证和/或它们之间的通信可以为主机系统300所便利,主机系统300可以是例如原始设备制造商(OEM)或网络管理器。主机系统300可以保存芯片110的固有ID(即基于节点100上的芯片110的对应IF 200的固有ID)的记录(即副本)。可以如下获得主机系统300的记录中所保存的这些副本:生成要求可以呈现给芯片110,响应于此,芯片110使用芯片110的IF 200来生成固有ID的副本。芯片110的固有ID的所生成的副本连同用于生成它的要求一起可以存储在主机系统300的记录中。此后,如以下将描述的那样,可以询问主机系统300的记录以获得所存储的芯片110固有ID的副本。所询问的副本可以然后用于便利芯片110、节点100和/或它们进行的通信的认证。
[0023] 在原始制造商可以操作主机系统300的情况下,可以从已知的芯片110固有ID组装芯片110的固有ID的记录。例如,一旦原始制造商制造了芯片110,原始制造商就可以生成芯片110的固有ID,并且在记录中存储它们,如上所述。替代地,并且并非限制,可以许可节点100和/或芯片110注册到主机系统300,由此,主机系统300接收注册芯片110和/或节点100的固有ID的记录。在有关实施例中,芯片110的固有ID的记录/副本可以存储在与主机系统
300通信的不同系统上的记录中,由此,主机系统300可以重获固有ID的副本。
[0024] 任何节点100可以将请求130发送到主机系统300,以认证节点100和/或许可与另一节点100或与多个节点100的通信。例如,节点100A可以将请求130A发送到主机300,请求对于与节点100B的通信的认证和/或许可。相似地,节点100B可以将请求130B发送到主机系统300,请求对于与节点100A或与另一节点100的通信的认证和/或许可。
[0025] 在从节点100接收到请求130时,主机系统300可以通过对从芯片的IF 200生成的请求节点的芯片110的至少一个固有ID的所生成的副本(即,作为认证处理的一部分所生成的固有ID的副本)、与由主机系统300或主机系统300能访问的另一系统/设备所保存的主机系统300的记录中存储的芯片固有ID的对应的所存储的一份副本(或多份副本)进行比较来认证节点100。固有ID的所生成的副本与固有ID的所存储的副本之间的比较无需是直接的,即,在比较之前,可以存在一个或多个加密等级,如结合以下更详细讨论的本公开实施例所描述的那样。
[0026] 发送请求130的节点100上的芯片110的固有ID的所生成的副本由请求芯片110动态地生成(即,其是作为认证方法的一部分而生成的),而主机系统300的记录中所存储的对应副本是芯片110的固有ID的对应副本。如果请求节点100得以成功地认证,则主机系统300可以将对应的认证成功消息140传送到节点100。主机系统300可以批准150用于节点100A与节点100B之间的通信105开始的许可。如果认证失败,则主机系统300可以传送对应的认证失败消息141,并且可以拒绝151用于节点100A与节点100B的通信的许可。
[0027] 在另一示例性实施例中,继续参照图1,建立芯片对芯片通信105的处理可以开始于例如节点100A将请求130A发送到主机系统300,其可以是对认证的请求和/或对与节点100B通信的请求。主机系统300可以通过确认其芯片110A的身份来认证请求节点100A,如本公开实施例中描述的那样。主机系统300也可以认证节点100B。相应地,主机系统300可以通过对使用芯片110A和110B的IF 200A和IF 200B生成的节点100A和100B的固有ID与主机系统300的记录中的对应的所存储的副本进行比较来认证它们。请求和认证方法对于这两个节点100A和节点100B可以是相同的,并且可以进一步扩展到其它连接到与主机系统300进行通信的节点100的网络的其它节点(100C等)。如果节点100A和节点100B是认证的,则主机系统300可以分别将对应认证成功消息(或信号)140A和140B发送到节点100A和节点100B。
如果这两个节点不是认证的,则主机系统300可以分别将对应认证失败消息(或信号)141A和141B发送到节点100A和节点100B。如果两个节点100A和100B的认证是成功的,则主机系统300可以批准150对节点100A和100B通信的许可。否则,主机系统300可以拒绝151通信。
[0028] 虽然对本公开实施例的主机系统300的引用将主机系统300描述为便于两个或更多个节点100之间的通信,但主机系统300并不一定促进这些通信而超出认证通信中所涉及的节点100。因此,根据本公开一些实施例,主机系统300可以是单机认证系统,或可以是执行附加连网和通信功能的较大系统的一部分。
[0029] 图2A描述根据本公开示例性实施例的包括节点100A和主机系统300的图1的通信系统100的子集。为了发起通信,请求通信的节点(例如节点100A)可以将通信请求130A发送到主机系统300。这可能要求节点100A通过可以用于在主机系统的300的数据库中查询节点100A的ID细节的唯一公共标识符(如MAC地址、制造商序列号)来标识自身。操作于或结合于节点100A和/或主机系统300的计算机程序351可以促进节点100A和主机系统300的功能。程序351可以发送/接收通信请求,促进节点100A上的固有ID生成,促进主机系统300上的固有ID询问,执行所生成的和所询问的固有ID和/或基于此的加密值的比较。程序351在主机系统300和节点100A上可以是相同的。替代地,均可以具有执行上述功能子集的不同程序。
[0030] 在从节点100A接收到通信请求130A时,主机系统300可以访问其数据库,如以下更详细描述的那样,以定位节点100A的固有ID细节。主机系统300也可以从多个可用的生成要求当中选择生成要求135,并且将所选择的生成要求135发送到节点100A。生成要求135可以被设计为:诱发来自芯片110A的固有ID响应(例如ID1201A),其对于芯片并且也对于生成要求135都是唯一的。响应于生成要求所生成的固有ID可以是例如数字二进制矢量。由于从每个芯片的唯一固有属性(例如IF 200A)推导固有ID,因此相同类型的不同芯片可以对于给定的生成要求并不生成同一固有ID(例如UD 201A)。
[0031] 在例如以上通过引用所合并的Fainstein 2013、Rosenblatt 2013、Chellappa 2011和Suh2007以及Ravikanth 2001中所描述的生成要求135的说明性和非限定性示例包括:SRAM的通电电压、环形振荡器PUF的配对、DRAM保留失败计数、仲裁器PUF中的竞争情况的结果、或无序三维微结构的光学斑点。在SRAM示例中,每个单元的位线和字线节点可以在存储器的通电期间一起短接到电源。如何对两个节点通电的这种要求从可以读取高电压(“1”)或低电压(“0”)的每个SRAM单元生成固有响应。这些电压读数可以用于生成芯片的对应唯一固有ID。在环形振荡器PUF中,芯片上的环形振荡器的配对的固有频率彼此比较,如果第一频率大于第二频率,则不等式的结果为“1”,否则为“0”。存在N个环形振荡器的N!个独立配对。选取哪些独立配对以创建数字二进制矢量可以构成一个要求。作为第三示例,可以通过字线低电压VWL来调整DRAM的保留失败计数,直到达到目标失败计数要求。
[0032] 响应于生成要求135,芯片110A可以生成固有ID 201A,其可以是数字二进制矢量,如上所述。芯片110A响应于要求135所生成的固有ID可以包括使用至少一个ID1201A的至少一个部分。其也可以包括使用两个ID(例如ID1201A和ID2202A)的两个部分,如参照图2B所描述的那样,或使用三个ID(例如ID1201A、ID2202A和ID3203A)的三个部分,如结合图2C所描述的那样。在其它实施例中,单个所生成的ID可以划分为用于认证和/或通信处理的多个部分。
[0033] 图2A描述芯片110A的所生成的固有ID包括单个固有ID分量ID1201A的实施例。替代地,节点100A可以通过使用主机系统300和节点100A先前已经协定的算法而使用主机系统300提供的要求135以生成一个内部要求(或在其它实施例中两个或三个内部要求);例如,作为通信系统101的组件用于定义通信协议和策略的配置文件的一部分。在使用多于一个的固有ID的实施例中,可以响应于分离的生成要求而生成每个固有ID。
[0034] 除了生成要求135之外,响应于节点100A生成固有ID,加密要求也可以从主机300发送到节点100A。加密要求可以用于对可以在主机系统300和节点100A的其它认证函数中所使用的一个或多个值进行加密和/或解密,如下所述。在节点100A进行接收时,所生成的ID1201A连同随机生成的数R 210一起可以输入到加密要求。加密要求可以是例如数学函数f1220,其中,函数f1(ID1201A,R 210)的输出取决于其给定的输入。函数f1220可以作为加密要求由主机系统300发送到节点100A,或其可以是对于节点100A和主机系统300都可访问的预定函数。随机数R 210(其可以是矢量)可以是预定的并且存储在对应芯片110A或节点100A中,或其可以由节点100A或芯片110A使用例如作为对使用加密要求的预定算法的输入的系统时间或用于随机要求生成器的种子而得以动态地生成,以在需要随机数的每个操作期间具有唯一随机数210。节点100A外部的随机生成器也可以生成随机数R 210。当随机数R 
210是预定的并且存储在节点100A中或芯片110A中时,主机系统300也可以存储同一随机数R 210的本地副本。
[0035] 函数f1220可以是具有当其它输入为已知的时可以用于重获各原始输入f1220(例如ID1201A或R 210)之一的逆函数f1-1320这样的函数。也可以在考虑没有其输入的先验知识的情况下选取函数f1220,其对于反向工程应该是困难的,并且仅使用输出f1(ID1201A,R 210)生成ID1201A和R 210。
[0036] 函数f1(ID1201A,R 210)可以生成/输出第一码IDC-I 220A。一旦生成,该码就可以发送到主机系统300,或可以在发送之前使用任何已知的加密协议而进一步被加密。所述加密协议可以包括但不限于传输层安全(TLS)、内部密钥交换、IPsec、KerBeros、点对点协议、或使用公钥架构(PKI)的协议。在一个实施例中,IDC-I 220A可以在发送之前散列化。当由主机系统300接收时,IDC-I 220A表示函数f1220的输出。其是否实际上是函数f1220的输出取决于芯片110A和/或节点100A是否是认证的。因此,如下所述,主机系统300可以针对另一值检查IDC-I 220A,以确定节点100A是否实际上是认证的。
[0037] 主机系统300可以从芯片110A接收IDC-I 220A,f1(ID1201A,R 210)的输出。在使用加密算法已经在发送之前对IDC-I 220A进行加密的情况下,主机系统300可以在使用IDC-I 220A在执行其它操作之前对IDC-I 220A进行解密。通过使用IDC-I 220A,主机系统300可以使用对应逆函数f1-1320提取对f1220的原始输入中的一个或多个,如下所述。主机系统300也可以询问其数据库记录以查询芯片110A固有ID(即ID 311A)的所存储的副本,其为与节点100A和要求135关联的副本(在具有多于一个的ID的实施例中,在图2B-图2C中,ID 
312A,在图2C中,ID 313A)。ID 311A是芯片110A的固有ID的所存储的副本:ID1201A(以及在使用多于一个的ID的情况下,ID2202A(图2B-图2C)、ID3203A(图2C)),即,其与要求135对应。其为例如在芯片的制造或注册之后在主机系统的300的数据库中所记录的固有ID。
[0038] 主机系统300可以使用逆函数f1-1320以从所接收到的IDC-I220A提取f1220的输入中的一个或两个,只要主机系统300具有IDC-I220A以及两个f1220输入ID1201A或R 210中的至少一个即可。相应地,主机系统300可以尝试从IDC-I 220A提取R 210或ID1201A。
[0039] 主机系统300可以如下尝试提取R 210:其可以对逆函数f1-1320提供IDC-I 220A和ID1311A,以提取EV 324作为输出(其中,EV代表“所提取的值”)。如果节点100A及其芯片110A是认证的,则ID1311A应匹配ID1201A,并且EV 324应匹配作为对f1220的输入由芯片
110A所使用的R 210值,以生成IDC-I 220A。主机系统300可以具有作为对f1220的输入由芯片110A使用的R 210的本地副本。这可以是这样的情况,例如,主机系统300使用系统时间在主机系统300内部或从主机系统300和节点100A都可访问的另一源再生R 210(或从与节点
100A同步的随机值生成器获得它)。
[0040] 在R 210的本地副本对于主机系统300可用的情况下,主机系统300可以执行检查344以比较EV 324与R 210的本地副本。可以从主机系统300外部以及节点100A外部的随机生成器获得R 210的本地副本,其中,主机系统300和节点100A都同时(例如当节点100A进行请求130A时)获得随机数。替代地,作为主机系统300的一部分的随机数生成器可以获得R 
210的本地副本,其中,所同步的系统时间在节点100A与主机系统300之间传送,以生成相同R 210值。如果EV 324匹配R 210的主机系统的300的本地副本,则主机系统300可以生成认证成功消息140A并且将其发送到节点100A。否则,主机系统300可以响应于确定节点100A并非认证的而生成并且发送认证失败消息141A。在主机系统300不保留或具有对R 210的本地副本的访问的实施例中,主机系统300可以采用结合图2C所描述的认证机制。
[0041] 替代地,或除从IDC-I 220A提取R 210之外,主机系统300可以从IDC-I 220A提取ID1201A。相应地,其可以通过对逆函数f1-1320输入R 210和IDC-I 220A的主机系统的300的本地副本来确定EV 324。主机系统300可以然后针对ID1311A检查344该EV 324。如果节点100A是认证的,则EV 324必须与ID1201A相同,并且因此将产生匹配,在此情况下,主机系统
300可以响应于认证请求130A而将认证成功消息140A发送到节点100A;否则,主机系统300可以响应于认证请求130A而将认证失败消息141A发送到节点100A。
[0042] 根据另一替选实施例,主机系统300可以使用随机数的其自身的副本和ID1311A来生成IDC-I的本地副本(未示出)。主机系统300可以因此直接对从节点100A接收到的IDC-I 220A与IDC-I的其本地副本进行比较。
[0043] 在使用直接IDC-I比较的有关实施例中,主机系统300和节点100A可以分别生成IDC-I 220A和本地副本,并且均可以通过散列算法来处理对应IDC-I码以到达对应散列值。散列算法可以是例如固有ID(例如{01000…})和随机数(例如{100010…})的OR函数(例如{110010…})。可选地,OR函数可以包括偏移。主机系统300可以从节点100A接收散列值,并且对其与其自身的散列值进行比较。如果它们匹配,则节点100A将被看作是认证的;否则,认证将失败。在有关实施例中,芯片110A所生成的固有ID可以被散列化,并且与主机系统
300在记录中保存的固有ID的对应副本的散列值进行比较。
[0044] 在使用散列函数的实施例中,如上所述,可以在附加安全性是期望的情况下实现。在这些实施例中,所生成的或询问的固有ID(例如分别ID1201A和ID1311A)或基于这些固有ID(例如IDC-I 220A)的加密码无法用在逆函数中以提取固有ID或对加密函数的其它输入(例如具有至少R 210或所生成或询问的固有ID的输入的f1220)。相应地,主机系统300和节点100A均可以分别使用加密函数(例如f1220)以及随机数(例如R 210)和询问的固有ID(例如ID1311A)以及所生成的固有ID(例如ID1201A)的输入来生成码(例如IDC-I220A)。主机系统300和节点100A可以均使用散列算法以生成对应散列值。如果不使用逆函数以对散列值进行解码,主机系统300和节点100A可以均使用在进行散列值对散列值比较中的这些散列值以彼此认证,如上所述。
[0045] 选择哪些值以用于生成码(例如IDC-I 220A)并且提取值(例如EV 324)取决于本公开特定实施例,包括各种考虑,如其对于动态地生成随机数(或存储预定值)是否是优选的。然而,在每种情况下,所生成的固有ID或其副本可以用在对应函数中。
[0046] 图2B描述图1和图2A中所描述的通信系统101的子集的替选实施例。通信系统101可以包括结合图2A所描述的组件以及附加组件。节点100A的固有特征IF 200A可以用于生成两个而非仅一个对于认证所使用的所生成的固有ID。它们可以是ID1201A和ID2202A。
[0047] 节点100A可以提交主机系统300可以接收的认证请求130A。主机系统300可以选择生成要求135,并且将其传送到节点100A,以使得其使用IF 200A生成其固有ID,即ID1201A和ID2202A(在有关实施例中,可以基于不同的生成要求或预定算法来生成这些ID中的每一个)。节点100A可以使用ID1201A和R 210作为函数f1220的输入,以产生IDC-I 220A。节点100A可以将IDC-I 220A传送到主机系统300。
[0048] 主机系统300可以使用IDC-I 220A和ID1311A(后者是芯片的110A固有ID的主机系统的本地副本)作为对f1-1320的输入,以产生EV 324。如果ID1311A与ID1201A相同,则EV 324将等于R 210。如以上结合图2A所讨论的那样,R 210可以由主机系统300本地存储或生成,或可以由主机系统300从外部源获得。相应地,存在节点100A为认证的指示,并且主机系统300可以生成对应认证成功消息140A。
[0049] 随后,主机系统300可以使用EV 324和ID2312A作为对第二可逆函数f2330的输入,从而f2(ID2312A,EV 324)生成被称为IDC-II330A的第二标识码的输出。函数f2330可以是与具有对应逆f1-1230函数的f1220相似的函数。IDC-II 330A值可以发送到节点100A。与IDC-I 220A相似,可以使用本领域公知的技术在发送之前对第二标识码IDC-II 330A进行加密。除了生成并且发送IDC-II 330A之外,主机系统300还可以执行结合图2A所描述的认证功能。
替代地,主机系统300可以保持认证确定,直到已经进行其它认证功能(例如,在主机系统
300没有随机数R 210的本地副本的情况下)。
[0050] 继续参照图2B,节点100A可以从主机系统300接收IDC-II 330A。节点100A可以使用逆f2-1230函数以提取EV 240值(其中,EV代表“所提取的值”)。在确定EV 240的值中,节点100A可以使用f2-1(IDC-II 330A,R 210)或f2-1(IDC-II 330A,ID2202A)。如果节点100A和主机系统300都是认证的,则在第一情况下,EV 240将是等于ID1201A的值,而在第二情况下,EV 240将是等于R 210的值。因此,节点100A可以执行检查244,以对EV 240与ID2202A或与R210进行比较。节点100A可以执行这两个检查,但这不是必须的。如果检查244是成功的(即,如果存在匹配),则节点100A可以做出认证确定180a:主机系统300是认证的。否则,其可以确定主机系统300并非认证的,并且其可以结束180其与主机系统300的通信。这种功能提供针对非认证主机系统300的节点100A保护,从而即使主机系统300确定节点100A为认证的,节点100A也不一定必须信任主机系统300,并且可以关于其是否应与另一节点(例如节点100B)进行通信而进行其自身的确定。
[0051] 图2C描述图1-图2B中所描述的通信系统101的替选实施例。通信系统101可以包括结合图1-图2B所描述的组件和功能,并且可以包含在此所描述的附加或替选组件和功能。主机系统300可以响应于来自节点100A的对认证的请求130A而传送生成要求135。响应于生成要求135,节点100A可以使用IF 200A(和/或芯片110A的其它IF)以及预定算法(其可以是生成要求135)来生成固有ID即ID1201A、ID2202A和ID3203A。替代地,可以使用一个IF 200A响应于三个不同的生成要求135而单独生成这三个固有ID。主机系统300可以具有记录中所存储的包括ID1311A、ID2312A和ID3313A的这些ID的对应副本(或可以另外具有对其的访问)。如果主机系统300和节点100A都是认证的,则主机系统的300所保存的固有ID的所存储的副本将匹配节点100A/芯片110A所生成的固有ID。
[0052] 节点100A可以通过使用f1(ID1201A,R 210)来生成IDC-I 220A,并且将其发送到主机系统300。主机系统300可以执行结合图2A所描述的认证功能。替代地,或外加地,主机系统300可以生成IDC-II 330A,并且将其发送到节点100A,如结合图2B所描述的那样。替代地,或外加地,节点100A可以于在检查244中确定匹配时使用第三可逆函数f3250生成具有R 210和ID3203A的输入的第三码IDC-III 250A。主机系统300可以接收IDC-III 250A,并且连同ID3313A或主机系统的300的本地副本或R 210一起将其用作对逆函数f3-1350的输入,从而(如果节点100A是认证的,则)f3-1(IDC-III 250A,ID3313A)生成等于R 210的主机系统的
300的本地副本的EV 340(其中,EV代表“所提取的值”),并且(如果节点100A是认证的,则)f3-1(IDC-III250A,ID3313A)生成等于ID3313A的EV 340。取决于对f3-1350的输入,主机系统
300可以执行检查344以对EV 340与R 210的其本地副本或与ID3313A或与二者进行比较(但这并非必须的)。如果检查344的结果是肯定的(即存在匹配),则主机系统300可以生成认证成功信号140A,并且将其发送到节点100A,否则,可以生成认证失败信号141A,并且将其发送到节点100A。
[0053] 现参照图1-图2C,(例如,通过做出请求130B并且接收认证成功消息140B或认证失败消息141B),主机系统300和节点100B可以进行主机系统300和节点100A所进行的相同认证和/或通信请求和批准/拒绝过程,以认证节点100B,并且对于节点100B以认证主机系统300。在节点100B得以认证时,主机系统300可以把传达两个节点的成功标识的许可批准信号150发送到这两个节点100A和节点100B。
[0054] 在这两个节点100A和节点100B都被批准对通信的许可之后,它们可以开始使用工业标准安全加密通信协议来彼此进行通信。
[0055] 在一个或多个节点100之间的所建立的通信期间,系统101的任何第一节点(例如节点100A或节点100B)可以请求主机系统300重新认证第一节点正与之通信的第二节点。在此情况下,主机系统300可以从第二节点请求标识。此时,上述整个认证和/或通信请求可以再一次出现。
[0056] 图2D示出图1和图2A-图2C的通信系统101的示例性实施例,并且还描述节点100A和主机系统300的附加细节。根据图2D中所描述的实施例,通过使用其构成SRAM或DRAM单元的某种独特属性,存储器域或体115A的节点100A固有特征IF 200A可以用于使用大型板载存储器系统(如缓存或随机存取存储器)来生成对应固有ID。芯片110A的不同部分(如存储器的不同体或域115A)上的同一生成要求135可以优选地生成三个不同的独特ID(例如ID1201A、ID2202A、ID3203A)。存储器域/体115A可以包括可以用于生成包括例如ID1201A、ID2202A和ID3203A的对应固有ID的项120A。
[0057] 在从节点100A接收到通信请求时,主机系统300可以询问其数据库400,并且重获与节点100A关联的记录404。记录404可以具有包含节点100A的固有ID的副本的多个项,每个项与不同生成要求135关联。记录404可以具有例如具有对应生成要求135的项404A。记录400的很多项中的项404的选择可以基于主机系统300和节点100A都已知的预定算法。项
404A可以例如与ID即ID1311A、ID2312A和ID3313A对应(也描述于图2C中)。与项404A关联的生成要求135可以由主机系统300传送到节点100A。
[0058] 现通常参照图2A-图2C,函数f1220、f2330和f3250均可以是包括XOR函数或偏移函数(例如比特移位运算)的可逆函数。对于每个这样的函数,只要其结果和其各输入之一是已知的,就可以使用对应逆函数来确定另外输入。通过将输出乘以或加上常数值可以进一步修改该函数的输出。逆函数f1-1320、f2-1230和f3-1350均可以分别是f1220、f2330和f3250的除法的逆函数,并且可以还包括例如由同一常数值进行的除法或减法。
[0059] 在替选实施例中,主机系统300所提供的生成要求135或其一部分可以用于从预定义的函数的集合动态地选择函数f1220、f2330和f3250。预定义的函数可以是对于主机系统300以及系统101的各节点100中的每一个都可用的。
[0060] 在替选实施例中,函数f1220、f2330和f3250可以是相同的函数。
[0061] 再次参照图1-图2C,根据本公开替选实施例,可以通过以下方式来执行主机系统300进行的认证:芯片110A可以生成IDC-I 220A值(即f1(ID1201A,R 210)的乘积),并且将其发送到主机系统300。主机系统300可以通过使用f1-1320从所发送的IDC-I 220A值提取R 
210的值,如上所述,其中,所提取的值是EV 324。主机300可以然后使用ID2312A和IDC-I 
220A的值生成IDC-II 330A值。因此,可以根据f2(ID2312A,IDC-I 220A)(其也可以描述为f2(ID2312A,f1(R 210,ID1201A)))形成IDC-II 330A。该替选IDC-II 330A值可以发送回到节点100A。
[0062] 节点100A可以从所发送的IDC-II 330A值提取EV 240值,以使用IDC-I 220A和R 210作为对f2-1230的输入来验证主机系统300,并且然后根据f3(EV 240,R 210)生成IDC-III 250A。替选IDC-III250A可以发送到主机系统300。
[0063] 主机系统300可以使用具有IDC-III 250A和EV 324的输入的f3-1350从所发送的值提取EV3340值,并且使用它来针对ID3313A的值而在检查344中认证节点100A。
[0064] 相应地,ID1201A、ID2202A和R 210的组合可以使用仅两个ID来生成足够的不同消息(即f1(ID1201A,R 210)、f2(ID2202A,f1(R 210,ID1201A))、f3(ID2202A,R 210)),其难以为了获取关于单个ID的信息而反向工程。
[0065] 再次参照图1-图2C,根据本公开附加实施例,节点100A可以如下认证主机系统300。节点100A可以对主机系统300发送认证请求130A,其可以是对主机系统300将加密码发送到节点100A从而节点100A可以认证主机系统300的请求。主机系统300或节点100A可以选择对应生成要求135并且将其传送到彼此。主机系统300所发送的加密码可以是例如由主机系统300使用f1220所生成的具有(使用主机系统300所保存/获得的R 210的副本的)R 210和ID1311A(其为来自与芯片110A和所传送的要求135对应的记录的主机系统300所询问的节点100A上的芯片110A的固有ID的副本)的输入的IDC-I220A的副本。主机系统300可以将该加密码传送到节点100A,并且可以在传送之前通过散列算法来处理它。节点100A可以自身使用采用(使用由节点100A所保存/获得的R 210的副本的)R 210和ID1201A(使用所协定的加密要求135所生成的芯片110A的固有ID的副本)的输入的f1220来生成IDC-I 220A。节点100A可进一步使用散列算法对IDC-I 220A进行加密,散列算法可以是主机系统300和节点100A都具有访问并且协调以使用的散列算法。在从主机系统300接收到加密码时,节点
100A可以对加密码与节点100A上所生成的IDC-I220A或与其散列值进行比较。如果比较指示匹配,则节点100A可以认证主机300,并且基于认证而执行附加功能(未示出)。在该实施例中,节点100A不必将从加密要求推导的任何码发送到主机系统300。
[0066] 图3描述便于结合图1-图2D所描述的功能的在图2A-图2C中所描述的程序351的示例性实施例。程序351可以实施为在通信系统101中的节点上操作的计算机程序,或其可以实施在多个节点100上。在多节点实施例中,程序351可以包括在例如主机系统300上操作的组件351A和例如在节点100A上操作的组件351B。
[0067] 请求节点100可以将组件351B的步骤352中的认证和/或通信请求发送到接收节点(其中,请求可以是请求130A,接收节点可以是主机系统300)。作为该请求的一部分,或除该请求之外,请求节点也可以对接收节点发送公共ID(如MAC地址或制造商序列号)。请求节点具有可以用于促进认证的至少一个固有特征IF(例如IF 200A)。
[0068] 接收节点的组件351A可以连同公共ID(如MAC地址)一起在步骤354中接收认证请求。在步骤356中,组件351A可以使用MAC地址来询问数据库(例如图2D中的数据库400),以选择生成要求(例如生成要求135)以及一个或多个对应固有ID(例如可以在记录404中存储的所询问的固有ID即ID1311A、ID2312A、ID3313A)。如果请求节点是认证的,则请求节点在程序351的其它步骤中所生成的固有ID(例如所生成的固有ID ID1201A、ID2202A、ID3203A)将匹配接收节点所询问的固有ID。在步骤356中,接收节点将所选择的生成要求传送到请求节点。
[0069] 在步骤362中,请求节点接收所选择的生成要求。通过使用该生成要求,请求节点使用请求节点的固有特征(IF)(例如IF 200A)或请求节点的组件(例如芯片和集成电路)或具有固有特征的其它组件(例如节点100A的芯片110A)的IF来生成固有ID(例如所生成的固有ID ID1201A、ID2202A、ID3203A)。
[0070] 在步骤366中,请求节点使用步骤362中所生成的固有ID来生成对应第一码(例如IDC-I 220A)。第一码表示第一加密要求的输出(例如函数f1220)。如果请求节点是认证的,则第一码可以由接收节点用于认证请求节点。如果请求节点并非认证的,则第一码在程序351的其它步骤中不会通过由接收节点所执行的检查(例如检查344),如以下将描述的那样。第一加密要求可以是在步骤362中生成的具有第一随机数(例如R 210)和请求节点的所生成的固有ID(例如ID1201A)的输入的可逆函数。一旦生成,就在步骤366中将第一码发送到接收节点。
[0071] 在步骤370中,接收节点从请求节点接收第一码。
[0072] 在步骤374中,接收节点生成第二码作为第二加密要求的输出。在步骤378中,第一值得以从第一码推导出来,并且与第二码进行比较,并且请求节点在比较指示这两个值匹配时得以认证。
[0073] 步骤374中所生成的第二码以及从第一码推导的第一值可以是取决于本公开特定实施例而通过若干方式确定的,并且可以包括而不限于以下。
[0074] 在关于步骤374的本公开的一个方面中,第二码可以是第二加密函数的输出,其中,第二加密函数和第一加密函数是请求节点和接收节点都获知的同一函数(例如f1220)。在此情况下,从第一码推导的第一值是第一码自身(例如IDC-I 220A)。因此,如果第二码匹配第一码,则认证请求节点。在有关实施例中,第一码和第二码中的每一个可以在接收节点接收第一码之前由它们各自的节点散列化,在此情况下它们的散列值彼此比较。
[0075] 在关于步骤374的本公开的另一方面中,可以使用第一加密要求或函数(例如f1-1320)从第一码提取从第一码推导出的第一值(例如作为EV 324值)。第一逆加密函数可以是第一加密要求或函数(例如f1220)的逆函数,其中,第一加密函数具有第一随机数(例如节点100A所保存的R 210)和请求节点的所生成的固有ID(例如ID1201A)的所生成的副本的输入(请求节点自身使用IF执行固有ID生成)。在该实施例中,接收节点可以提取第一加密函数的两个输入中任一个:随机数或所生成的固有ID。在第一情况下,第二码可以是对于接收节点本地可用的随机数(例如主机系统300所保存的R 210)的所生成的/获得的/存储的副本(即来自除了第一码之外的源)。在第二情况下,第二码可以是请求节点的固有ID(例如ID1311A)的所询问的副本。在任一情况下,接收节点可以在第一值(其为所提取的值)匹配第二码时认证请求节点。
[0076] 程序351及其组件351A和351B可以包括附加步骤(未示出),由此,请求节点认证接收节点。在本公开的该方面中,接收节点可以将其生成的第二码(例如与主机系统300使用函数(如f1220)本地生成的IDC-I 220A相似的码)发送到请求节点,请求节点可以直接对第二码与第一码进行比较,或(使用f1-1320)以与接收节点从第一码提取第一值相同的方式从第二码提取第二值(例如EV 240)。替代地,接收节点所生成的第二码可以是具有第二询问固有ID(例如ID2312)和第一随机数或第二随机数(例如节点100A所保存的并且主机系统300所提取的R 210或主机系统300在本地保存的R 210)的输入的不同的第二加密要求函数(例如f2330)的输出。请求节点可以使用第一随机数(例如节点100A本地保存的R 210)和第二所生成的固有ID(例如ID2202A)的输入来生成对应码(例如节点100A使用f2330本地生成的IDC-II 330A的副本),并且对第二码与对应码进行比较。在二者匹配时,请求节点可以认证接收节点。
[0077] 在附加实施例(未示出)中,程序351及其组件可以包括附加认证步骤,由此,请求节点使用第三加密要求(例如f3250)或具有第一随机数(例如节点100A所保存的R 210)和第三所生成的固有ID(例如ID3203A)的输入的函数来生成第三码(例如IDC-III 250A)。替代地,可以使用具有至少一个所提取的值(例如EV 240)的第三加密要求(例如f3250)作为其各输入之一来生成第三码,其中,所提取的值是接收节点用作对第二加密要求(例如f2330)的输入的第二随机数(例如来自主机系统300的R 210)或第二固有ID(例如ID2312A)的所询问的副本。也可以使用第二码(例如从主机系统300接收的IDC-II 330A或其本地所生成的副本)作为输入来生成第三码。
[0078] 在以上实施例中,请求节点可以将第三码发送到接收节点。接收节点可以通过与以上关于从第一码提取的第一值和从第二码提取的第二值相同的方式从第三码提取第三值(例如EV 340)。接收节点可以针对第二随机数(即主机系统300本地保存的R 210)或更早提取的随机数(例如EV 324)或针对第三固有ID(例如ID3313A)的所询问的副本来检查(例如检查344)第三值。在比较指示匹配时,接收节点可以认证请求节点。
[0079] 在程序351的其它步骤(未示出)中,接收节点可以执行以上步骤中的一个或多个,以认证请求节点希望与之通信的附加节点(例如节点100B)。在认证请求节点和附加节点二者时,程序351可以许可它们俩之间的通信,或否则可以拒绝这种通信。
[0080] 现参照图4,结合图1-图3所描述的节点、设备和/或系统中的一个或多个可以是计算设备1000,并且可以包括内部组件800和外部组件900的各个集合。内部组件800的各集合中的每一个包括一个或多个处理器820;一个或多个计算机可读RAM 822;一条或多条总线826上的一个或多个计算机可读ROM 824;一个或多个操作系统828;执行方法351的一个或多个软件应用828a(例如程序351及其组件351A和351B和/或设备驱动器模块);以及一个或多个计算机可读有形存储设备830。一个或多个操作系统828以及设备驱动器模块840被存储在各个计算机可读有形存储设备830中的一个或多个上,以用于经由各个RAM 822(其典型地包括缓存存储器)中的一个或多个由各个处理器820中的一个或多个执行。在图4所示的实施例中,计算机可读有形存储设备830中的每一个是内部硬驱的磁盘存储设备。替代地,计算机可读有形存储设备830中的每一个是半导体存储设备,如ROM824、EPROM、闪存或可以存储计算机程序和数字信息的任何其它计算机可读有形存储设备。
[0081] 内部组件800的每个集合还包括R/W驱动或接口832,以读取自或写入到一个或多个计算机可读有形存储设备936,例如薄设施存储设备、CD-ROM、DVD、SSD、存储棒、磁带、磁盘、光盘或半导体存储设备。R/W驱动或接口832可以用于将设备驱动器840固件、软件或微码加载到有形存储设备936,以促进与计算设备1000的组件的通信。
[0082] 内部组件800的每个集合可以还包括网络适配器(或交换端口卡)或接口836,如TCP/IP适配器卡、无线WI-FI接口卡或3G或4G无线接口卡或其它有线或无线通信链路。与计算设备1000关联的操作系统828可以经由网络(例如互联网、局域网或广域网)以及各个网络适配器或接口836从外部计算机(如服务器)下载到计算设备1000。从网络适配器(或交换端口适配器)或接口836以及与计算设备1000关联的操作系统828加载到各个硬驱830和网络适配器836中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
[0083] 外部组件900的各集合中的每一个可以包括计算机显示监视器920、键盘930和计算机鼠标934。外部组件900可以还包括触摸屏、虚拟键盘、触摸板、指点设备和其它人机接口设备。内部组件800的各集合中的每一个还包括设备驱动器840,用于对计算机显示监视器920、键盘930和计算机鼠标934进行接口连接。设备驱动器840、R/W驱动或接口832以及网络适配器或接口836包括硬件和(存储设备830和/或ROM 824中存储的)软件。
[0084] 现参照图5,描述说明性云计算环境500。如所示,云计算环境500包括一个或多个云计算节点,其中的每一个可以是云消费者所使用的本地计算设备(例如个人数字助理(PDA)或蜂窝电话500A、台式计算机500B、膝上型计算机500C和/或汽车计算机系统500N)可以与之通信的系统1000(图4)。各节点1000可以彼此通信。它们在一个或多个网络(如如上所述的私有云、社区云、公共云或混合云或其组合)通过物理或虚拟方式而分组(未示出)。这允许云计算环境500提供基础架构、平台和/或软件作为云消费者无需在本地计算设备上为此而保存资源的服务。应理解,图5所示的计算设备500A-N的类型意图仅是说明性的,计算节点1000和云计算环境500可以通过任何类型的网络和/或网络可寻址连接(例如使用web浏览器)与任何类型的计算机化的设备进行通信。
[0085] 现参照图6,示出云计算环境500(图5)所提供的功能抽象层集合。预先应理解,图6所示的组件、层和功能意图仅是说明性的,本发明实施例不限于此。如所描述的那样,提供以下层和对应功能。
[0086] 硬件和软件层610包括硬件和软件组件。硬件组件的示例包括大型机,在一个示例中 系统;基于RISC(精简指令集计算机)架构的服务器,在一个示例中IBM 系统;IBM 系统;IBM 系统;存储设备;网络和连
网组件。软件组件的示例包括网络应用服务器软件,在一个示例中为IBM 应
用服务器软件;以及数据库软件,在一个示例中为IBM 数据库软件(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere和DB2是在全球很多辖区注册的国际商业机器公司的商标)。
[0087] 虚拟化层614提供可以提供虚拟实体的以下示例的抽象层:虚拟服务器、虚拟存储件、包括虚拟私有网络的虚拟网络、虚拟应用和操作系统、以及虚拟客户机。
[0088] 在一个示例中,管理层618可以提供下述功能。资源供给提供计算资源和用于在云计算环境内执行任务的其它资源的动态获取。计量和定价随着在云计算环境内利用资源而提供成本跟踪以及对于这些资源的消耗的计费或开票。在一个示例中,这些资源可以包括应用软件执照。安全性提供用于云消费者和任务的身份验证以及用于数据和其它资源的保护。用户入口提供用于消费者和系统管理者的对云计算环境的访问。服务等级管理提供云计算资源分配和管理,从而所需的服务等级得以满足。服务等级协定(SLA)规划和实施提供用于根据SLA来预期未来需求的云计算资源的预先布置和获取。
[0089] 工作负荷层622提供云计算环境可以被利用的功能的示例。从该层可以提供的负荷和功能的示例包括:构图和导航;软件开发和生命周期管理;虚拟课堂教育传送;数据分析处理;事务处理;以及例如结合图1–图5所描述和讨论的本公开实施例所提供的通信认证。
[0090] 虽然关于本发明优选实施例特别示出并且描述了本发明,但本领域技术人员应理解,在不脱离该申请的精神和范围的情况下,可以在形式和细节方面进行改变。因此,本发明意图并非受限于在此所描述和示出的确切形式和细节,而是落入所附权利要求的范围内。
[0091] 所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“模块”或“系统”。此外,本发明的各个方面还可以采用在一个或多个计算机可读介质中实施的计算机程序产品的形式,该计算机可读介质上实施有计算机可读的程序代码。
[0092] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0093] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中例如实施了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0094] 计算机可读介质上实施的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0095] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0096] 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0097] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以指导计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0098] 计算机程序指令也可以加载到计算机、其它可编程数据处理装置或其它设备以产生待在计算机或其它可编程装置或其它设备上执行的一系列操作,以产生计算机实现的处理,从而在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图块中指定的功能/动作的处理。
[0099] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0100] 虽然已经使用数字和字母依次或顺序地标识所公开的方法的步骤以及所公开的系统的组件以及环境,但这种排号或用词并非指示这些步骤必须以所陈述的顺序来执行,而仅是被提供以促进方法的步骤的清楚引用。此外,可以并行执行方法的步骤以执行它们的所描述的功能。