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

文档序号:8396107阅读:来源:国知局
了发起通信,请求通信的节点(例如节点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可以是例如数字二 进制矢量。由于从每个芯片的唯一固有属性(例如IF200A)推导固有ID,因此相同类型的 不同芯片可以对于给定的生成要求并不生成同一固有ID(例如UD201A)。
[0031]在例如以上通过引用所合并的Fainstein2013、Rosenblatt2013、Chellappa 2011和Suh2007以及Ravikanth2001中所描述的生成要求135的说明性和非限定性示例 包括:SRAM的通电电压、环形振荡器PUF的配对、DRAM保留失败计数、仲裁器PUF中的竞争 情况的结果、或无序三维微结构的光学斑点。在SRAM示例中,每个单元的位线和字线节点 可以在存储器的通电期间一起短接到电源。如何对两个节点通电的这种要求从可以读取高 电压("1")或低电压("〇")的每个SRAM单元生成固有响应。这些电压读数可以用于生 成芯片的对应唯一固有ID。在环形振荡器PUF中,芯片上的环形振荡器的配对的固有频率 彼此比较,如果第一频率大于第二频率,则不等式的结果为" 1",否则为"0"。存在N个环形 振荡器的N!个独立配对。选取哪些独立配对以创建数字二进制矢量可以构成一个要求。 作为第三示例,可以通过字线低电压VWL来调整DRAM的保留失败计数,直到达到目标失败 计数要求。
[0032] 响应于生成要求135,芯片110A可以生成固有ID201A,其可以是数字二进制矢 量,如上所述。芯片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连同随机生成的数R210-起可以输入到加密要求。加密要求可以是例 如数学函数4220,其中,函数4(10120认,1? 210)的输出取决于其给定的输入。函数心220 可以作为加密要求由主机系统300发送到节点100A,或其可以是对于节点100A和主机系 统300都可访问的预定函数。随机数R210(其可以是矢量)可以是预定的并且存储在对 应芯片110A或节点100A中,或其可以由节点100A或芯片110A使用例如作为对使用加密 要求的预定算法的输入的系统时间或用于随机要求生成器的种子而得以动态地生成,以在 需要随机数的每个操作期间具有唯一随机数210。节点100A外部的随机生成器也可以生成 随机数R210。当随机数R210是预定的并且存储在节点100A中或芯片110A中时,主机系 统300也可以存储同一随机数R210的本地副本。
[0035] 函数&220可以是具有当其它输入为已知的时可以用于重获各原始输入&220(例 如ID1201A或R210)之一的逆函数fVSZO这样的函数。也可以在考虑没有其输入的先验知 识的情况下选取函数4220,其对于反向工程应该是困难的,并且仅使用输出fidDUOlA,R 210)生成ID1201A和R210。
[0036] 函数fidDUOlA,R210)可以生成/输出第一码IDC-I220A。一旦生成,该码就 可以发送到主机系统300,或可以在发送之前使用任何已知的加密协议而进一步被加密。所 述加密协议可以包括但不限于传输层安全(TLS)、内部密钥交换、IPsec、KerBeros、点对点 协议、或使用公钥架构(PKI)的协议。在一个实施例中,IDC-I220A可以在发送之前散列 化。当由主机系统300接收时,IDC-I220A表示函数&220的输出。其是否实际上是函数 f\220的输出取决于芯片110A和/或节点100A是否是认证的。因此,如下所述,主机系统 300可以针对另一值检查IDC-I220A,以确定节点100A是否实际上是认证的。
[0037] 主机系统300可以从芯片110A接收IDC-I22(^,4(10120认,1? 210)的输出。在 使用加密算法已经在发送之前对IDC-I220A进行加密的情况下,主机系统300可以在使用 IDC-I220A在执行其它操作之前对IDC-I220A进行解密。通过使用IDC-I220A,主机系 统300可以使用对应逆函数fVSZO提取对f\220的原始输入中的一个或多个,如下所述。 主机系统300也可以询问其数据库记录以查询芯片110A固有ID(即ID311A)的所存储 的副本,其为与节点100A和要求135关联的副本(在具有多于一个的ID的实施例中,在图 2B-图2C中,ID312A,在图2C中,ID313A)。ID311A是芯片110A的固有ID的所存储的 副本:ID1201A(以及在使用多于一个的ID的情况下,ID2202A(图2B-图2C)、ID3203A(图 2C)),S卩,其与要求135对应。其为例如在芯片的制造或注册之后在主机系统的300的数据 库中所记录的固有ID。
[0038] 主机系统300可以使用逆函数fVSZO以从所接收到的IDC-I220A提取4220的 输入中的一个或两个,只要主机系统300具有IDC-I220A以及两个&220输入ID1201A或 R210中的至少一个即可。相应地,主机系统300可以尝试从IDC-I220A提取R210或 ID1201A。
[0039] 主机系统300可以如下尝试提取R210 :其可以对逆函数提供IDC-I220A 和ID1311A,以提取EV324作为输出(其中,EV代表"所提取的值")。如果节点100A及其 芯片110A是认证的,则ID1311A应匹配ID1201A,并且EV324应匹配作为对f\220的输入 由芯片110A所使用的R210值,以生成IDC-I220A。主机系统300可以具有作为对心220 的输入由芯片110A使用的R210的本地副本。这可以是这样的情况,例如,主机系统300 使用系统时间在主机系统300内部或从主机系统300和节点100A都可访问的另一源再生 R210 (或从与节点100A同步的随机值生成器获得它)。
[0040] 在R210的本地副本对于主机系统300可用的情况下,主机系统300可以执行检 查344以比较EV324与R210的本地副本。可以从主机系统300外部以及节点100A外部 的随机生成器获得R210的本地副本,其中,主机系统300和节点100A都同时(例如当节 点100A进行请求130A时)获得随机数。替代地,作为主机系统300的一部分的随机数生 成器可以获得R210的本地副本,其中,所同步的系统时间在节点100A与主机系统300之 间传送,以生成相同R210值。如果EV324匹配R210的主机系统的300的本地副本,则 主机系统300可以生成认证成功消息140A并且将其发送到节点100A。否则,主机系统300 可以响应于确定节点100A并非认证的而生成并且发送认证失败消息141A。在主机系统300 不保留或具有对R210的本地副本的访问的实施例中,主机系统300可以采用结合图2C所 描述的认证机制。
[0041] 替代地,或除从IDC-I220A提取R210之外,主机系统300可以从IDC-I220A提 取ID1201A。相应地,其可以通过对逆函数&-1320输入R210和IDC-I220A的主机系统的 300的本地副本来确定EV324。主机系统300可以然后针对ID1311A检查344该EV324。 如果节点100A是认证的,则EV324必须与ID1201A相同,并且因此将产生匹配,在此情况 下,主机系统300可以响应于认证请求130A而将认证成功消息140A发送到节点100A;否 贝U,主机系统300可以响应于认证请求130A而将认证失败消息141A发送到节点100A。
[0042] 根据另一替选实施例,主机系统300可以使用随机数的其自身的副本和ID1311A 来生成IDC-I的本地副本(未示出)。主机系统300可以因此直接对从节点100A接收到的 IDC-I220A与IDC-I的其本地副本进行比较。
[0043] 在使用直接IDC-I比较的有关实施例中,主机系统300和节点100A可以分别生 成IDC-I220A和本地副本,并且均可以通过散列算法来处理对应IDC-I码以到达对应散列 值。散列算法可以是例如固有ID(例如{01000…})和随机数(例如{100010…})的0R函 数(例如{110010"])。可选地,0R函数可以包括偏移。主机系统300可以从节点100A接 收散列值,并且对其与其自身的散列值进行比较。如果它们匹配,则节点100A将被看作是 认证的;否则,认证将失败。在有关实施例中,芯片110A所生成的固有ID可以被散列化,并 且与主机系统300在记录中保存的固有ID的对应副本的散列值进行比较。
[0044] 在使用散列函数的实施例中,如上所述,可以在附加安全性是期望的情况下实现。 在这些实施例中,所生成的或询问的固有ID(例如分别ID1201A和ID1311A)或基于这些固 有ID(例如IDC-I220A)的加密码无法用在逆函数中以提取固有ID或对加密函数的其它 输入(例如具有至少R210或所生成或询问的固有ID的输入的4220)。相应地,主机系统 300和节点100A均可以分别使用加密函数(例如&220)以及随机数(例如R210)和询 问的固有ID(例如ID1311A)以及所生成的固有ID(例如ID1201A)的输入来生成码(例如 IDC-I220A)。主机系统300和节点100A可以均使用散列算法以生成对应散列值。如果不 使用逆函数以对散列值进行解码,主机系统300和节点100A可以均使用在进行散列值对散 列值比较中的这些散列值以彼此认证,如上所述。
[0045] 选择哪些值以用于生成码(例如IDC-I220A)并且提取值(例如EV324)取决于 本公开特定实施例,包括各种考虑,如其对于动态地生成随机数(或存储预定值)是否是优 选的。然而,在每种情况下,所生成的固有ID或其副本可以用在对应函数中。
[0046] 图2B描述图1和图2A中所描述的通信系统101的子集的替选实施例。通信系 统101可以包括结合图2A所描述的组件以及附加组件。节点100A的固有特征IF200A可 以用于生成两个而非仅一个对于认证所使用的所生成的固有ID。它们可以是ID1201A和 ID2202A。
[0047] 节点100A可以提交主机
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1