布置用于密钥共享的密码系统的制作方法

文档序号:12515202阅读:376来源:国知局
布置用于密钥共享的密码系统的制作方法与工艺

本发明涉及密码系统、网络设备、共享方法、计算机程序以及计算机可读介质。



背景技术:

在密码学中,密钥协商协议是可能尚未共享共同密钥的两方或更多方能够借以商定这样的密钥的协议。优选地,双方都可以影响结果,使得任一方都无法强行促成密钥的选择。窃听两方之间的所有通信的攻击者应当不会获知关于密钥的任何东西。然而,尽管看到相同的通信的攻击者获知不到任何东西或获知得很少,各方自身可以导出共享密钥。

密钥协商协议例如对安全通信是有用的,例如对在各方之间对消息进行加密和/或认证是有用的。

实际的密钥协商协议在1976年当Whitfield Diffie和Martin Hellman引入公钥密码学的概念时被引入。他们提出了一种用于在两方之间进行密钥协商的系统,其利用了在具有q个元素的有限域GF(q)上计算对数的明显困难性。使用该系统,两个用户可以商定对称密钥。对称密钥然后可以用于例如两方之间的加密通信。

当各方尚未具有共享秘密时,用于密钥协商的Diffie-Hellman系统是适用的。Diffie-Hellman密钥协商方法要求资源繁重的数学运算,比如在有限域上执行求幂运算。指数和域尺寸二者可能是大的。这使得密钥协商协议不那么适合用于低资源设备。另一方面,密钥协商协议在资源受限设备中将是非常有用的。例如,在诸如物联网、自组织无线网等等之类的应用领域中,密钥协商可以用来保护设备之间的链接。另一个示例是阅读器与电子标签之间的通信,例如读卡器与智能卡或者标签阅读器与标签(例如RFID标签或NFC标签)之间的通信。

在C. Blundo, A. De Santis, A. Herzberg、S. Kutten, U. Vaccaro和M. Yung的“Perfectly-Secure Key distribution for Dynamic Conferences”, Springer Lecture Notes in Mathematics, Vol. 740,pp. 471-486, 1993 (被称为“Blundo”)中给出了针对在给定通信网络中的网络设备对之间设立安全连接的问题的另一种方案。

该系统假设中心机构(也被称为网络机构或受信任的第三方(TTP))生成系数在具有p个元素的有限域F中的对称双变量多项式f(x,y),其中p是素数或素数的幂。每个设备具有在F中的身份号并且由TTP向每个设备提供了局部密钥材料。对于具有标识符η的设备,局部密钥材料是多项式f(η,y)的系数。如果设备η希望与设备η’通信,它使用它的密钥材料生成密钥K(η,η’) = f(η,η’)。当f是对称的时,生成相同的密钥。局部密钥材料是秘密的。局部密钥材料的知识将直接危害系统。特别地,它将允许窃听者获得相同的共享密钥。该方法要求设备的网络中的每一个设备具有其自身的唯一身份号和局部密钥材料。

如果攻击者知晓t+1个或更多个设备的密钥材料,这种密钥共享方案的问题就会发生,其中t是双变量多项式的次数。攻击者然后可以重构多项式f(x,y)。在那一刻,系统的安全被完全破坏。给定任意两个设备的身份号,攻击者可以重构这对设备之间共享的密钥。

受信任的第三方形成单点故障。如果受信任的第三方受到危害并且其根密钥材料被泄露,则可以计算所有网络设备的密钥材料。使用从局部密钥材料且最终从根密钥材料导出的密钥的所有通信可能受到危害,例如加密可能被破坏,认证可能被伪造等等。

事实上,受信任的第三方自身可以从其根密钥材料和节点的身份重构各个节点的建钥材料以及任意节点对之间的密钥。因而,TTP可以无意中听到网络中的所有通信。这在某些情况下可能是不合需要的情形,因为它要求非常高级别的信任。



技术实现要素:

提供一种包括被布置成配置多个网络设备以用于密钥共享的多个配置服务器的密码系统。

每一个配置服务器包括:

- 密钥材料获得器,其被布置成以电子形式获得特定用于该配置服务器的根密钥材料,

- 网络设备管理器,其被布置成以电子形式获得多个网络设备中正被配置的网络设备的网络设备身份号,

- 计算单元,其被布置成从根密钥材料和网络设备身份号计算用于网络设备的局部密钥材料,并且

- 该网络设备管理器进一步被布置成向正被配置的网络设备提供所计算的局部密钥材料,

- 对于多个网络设备中的每一个网络设备,多个配置服务器中至少两个配置服务器向所述网络设备提供所计算的局部密钥材料,该网络设备被布置成将所述至少两个所提供的所计算的局部密钥材料加在一起,从而获得单个组合的局部密钥材料。

当网络设备从至少两个不同的配置服务器接收到局部密钥材料时,通过使用受信任的第三方而引入的单点故障被移除。网络设备可以使用从超过1个配置服务器获得的局部密钥材料。即使一个配置服务器受到危害,由先前从受危害的配置服务器接收局部密钥材料的网络设备所导出的密钥仍然是安全的。而且,一个单个配置服务器不能导出密钥,因为密钥生成过程使用多个配置服务器的局部密钥材料导出单个密钥。因而,使用多个配置服务器所要求的信任级别比仅存在单个配置服务器的情况更小。

例如,根密钥材料可以包括双变量多项式,并且由用于网络设备的配置服务器计算局部密钥材料可以包括通过将网络设备身份号替换到所述特定多项式中来获得单变量多项式。单变量多项式与作为组合运算符的加法兼容。这允许网络设备例如将单变量多项式相加或者将从中导出的中间密钥相加。

本发明的一个方面涉及第一网络设备,其被配置成确定与多个网络设备中任一个共享的密钥。第一网络设备包括:

- 电子存储装置,其被布置成存储第一网络设备身份号,

- 接收器,其被布置成从多个配置服务器中至少两个不同的配置服务器接收多个局部密钥材料,

- 通信单元,其被布置成获得多个网络设备中的第二网络设备的第二网络设备身份号,并且向第二网络设备提供第一网络设备身份号,以及

- 共享密钥单元,其被布置成从第一网络设备的多个局部密钥材料中至少两个和第二网络设备身份号导出共享密钥,其中共享密钥单元(330)被布置成将第一网络设备的多个局部密钥材料中所述至少两个组合在一起,从而获得单个组合的局部密钥材料,共享密钥单元(330)被布置成将所述至少两个局部密钥材料相加以组合它们,共享密钥从第二网络设备身份号和组合的局部密钥材料而导出。

对于网络设备,降低了其共享密钥通过在不同地点(例如受信任的第三方)的故障而受危害的风险。即使它的多个局部密钥材料之一是已知的,仍将存在从其导出共享密钥的另一局部材料。相应地,单点故障被移除。而且,单个配置服务器不能导出密钥,因为密钥生成过程使用多个配置服务器的局部密钥材料。

在一个实施例中,共享密钥单元被布置成将第一网络设备的多个局部密钥材料中所述至少两个组合在一起,从而获得单个组合的局部密钥材料,共享密钥从第二网络设备身份号和该组合的局部密钥材料而导出。例如,可以将局部密钥材料相加。在所述组合之后,可以删除原始密钥材料,从而降低存储要求。当原始密钥材料不再存在于设备中时,共谋攻击变得更困难。而且,使用组合的局部密钥材料的另外的计算是更高效的。

取代将密钥材料组合成单个组合密钥材料的是,共享密钥单元可以被布置成从第二网络设备身份号和第一网络设备的多个局部密钥材料中的第一局部密钥材料导出第一中间共享密钥,并且被布置成从第二网络设备身份号和第一网络设备的多个局部密钥材料中的第二局部密钥材料导出第二中间共享密钥,共享密钥通过组合第一和第二中间密钥而导出。可以使用任何大于1的数量的局部密钥材料。

在两种情况下,所述至少两个密钥材料影响结果得到的共享密钥。

在密码系统的一个实施例中,局部密钥材料包括多项式,例如单变量多项式,网络设备被布置成将所述至少两个所提供的所计算的局部密钥材料相加在一起,从而通过将所述至少两个所提供的多项式相加获得单个组合的局部密钥材料。例如,特定用于配置服务器的根密钥材料可以包括从其计算用于网络设备的局部密钥材料的一个或多个多变量(例如双变量)多项式。

在一个实施例中,多个局部密钥材料连同多个相关联配置服务器标识符一起被存储在第一网络设备处,配置服务器标识符指示在第一网络设备处从其接收相关联的局部密钥材料的配置服务器,第一网络设备包括配置单元,其被布置成与第二网络设备商定多个配置服务器标识符的子集,以使得第一和第二网络设备二者都具有与该子集的配置服务器相关联的局部密钥材料。

该系统允许网络设备积累更多的局部密钥材料。例如,这允许在不停机且不危害系统的情况下现在有可能在配置服务器之间迁移。如果密钥材料被存储为单个组合的密钥材料,则在迁移期间,配置服务器可以发送附加的密钥材料,该附加的密钥材料在与所存储的组合的密钥材料组合时具有效果,或者从该组合中移除旧的密钥材料以及可选地直接添加新的密钥材料。 这使共谋攻击复杂化。

本文描述的密钥共享的方法可以应用在宽广范围的实际应用中。这样的实际应用包括:家庭自动化、移动通信等等。

在一个实施例中,共享密钥单元被布置成从第一网络设备的多个局部密钥材料中的至少三个或至少四个和第二网络设备身份号导出共享密钥。

根据本发明的方法可以作为计算机实现的方法而在计算机上实现,或者在专用硬件中实现,或者在二者的组合中实现。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选的是,计算机程序产品包括存储在计算机可读介质上的非瞬时程序代码构件,以用于当在计算机上执行所述程序产品时执行根据本发明的方法。

在一个优选实施例中,计算机程序包括适于在该计算机程序运行在计算机上时执行根据本发明的方法的所有步骤的计算机程序代码构件。优选的是,计算机程序被体现在计算机可读介质上。

附图说明

本发明的这些和其他方面根据下文中描述的实施例是明显的,并且将参照这些实施例进行阐述。在附图中,

图1a作为框图示意性示出密码系统的实施例的一个示例,

图1b作为框图示意性示出电子存储装置的实施例的一个示例,

图2作为框图示意性示出配置服务器200的实施例的一个示例,

图3作为框图示意性示出第一网络设备300和第二网络设备350的实施例的一个示例,

图4作为框图示意性示出密钥共享系统102的实施例的一个示例,

图5作为流程图示意性示出方法500的实施例的一个示例,

图6作为框图示意性示出集成电路400的实施例的一个示例。

应当注意的是,在不同的图中具有相同参考数字的项目具有相同的结构特征和相同的功能,或者是相同的信号。在已经解释了这样的项目的功能和/或结构的情况下,在详细描述中没有必要对其进行重复解释。

图1-4,6中的参考数字的列表:

1 多个配置服务器

2 多个网络设备

100,102 密钥共享系统

110 个性化设备

121, 122 密钥共享

200, 201, 202 配置服务器

210, 211, 212 密钥材料获得器

220, 223, 225 计算单元

222 替换单元

224 多项式约简单元

226 多项式加法单元

228 单变量多项式的集合的总和

229 单变量私钥多项式

230 网络设备管理器

232 身份号消息

236 私钥材料消息

238 连接

240 多项式操纵单元

250 参数集合

252 双变量多项式的第一私有集合

254 约简整数的第二私有集合

256 公共全局约简整数

276 配置服务器标识符

300 第一网络设备

310 身份号

320, 321, 322 电子存储装置

330 共享密钥单元

332 替换单元

334 整数约简单元

336 密钥调和单元

340 密钥导出设备

342 通信单元

345 密码单元

350 第二网络设备

355 身份号

360 第三网络设备

370 第一密钥材料集合

372 私有单变量密钥多项式

374 公共全局约简整数

376 配置服务器标识符

380 第二密钥材料集合

382 私有单变量密钥多项式

386 配置服务器标识符

390 配置单元

400 集成电路

410 互连

420 处理器

430 存储器

440 I/O单元

450 计算单元。

具体实施方式

虽然本发明可受许多不同形式的实施例的影响,但是在附图中示出了一个或更多具体实施例并且将在本文中对其进行详细描述,应当理解的是,本公开内容应被视为例示本发明的原理,而不旨在将本发明限于所示出和描述的具体实施例。在下文中,为了理解,在操作中描述电路。然而,将会显然的是,相应的元件被布置成执行被描述为它们所执行的功能。

图1a作为框图示意性图示了密码密钥共享系统100的实施例的一个示例。

密钥共享系统100包括被布置成配置多个网络设备1以用于密钥共享的多个配置服务器2。

图1a示出配置服务器200、201和202。存在至少两个配置服务器。

每个配置服务器包括密钥材料获得器、网络设备管理器、计算单元和网络设备管理器。为了清楚,图1a仅示出密钥材料获得器和计算单元。图1a示出:对于配置服务器200,密钥材料获得器210和计算单元220;对于配置服务器201,密钥材料获得器211和计算单元223;以及对于配置服务器202,密钥材料获得器212和计算单元225。计算单元220、223和225可以共享相同的设计。

密钥材料获得器被布置成以电子形式获得特定用于配置服务器的根密钥材料;不同的配置服务器具有不同的根密钥材料。例如,密钥材料获得器可以生成根密钥材料,或者可以接收根密钥材料;在一个实施例中,密钥材料获得器包括存储根密钥材料的存储装置,密钥材料获得器从该存储装置中检索根密钥材料。在一个实施例中,根密钥材料包括一个或多个私有双变量多项式()。存储装置可以是电子存储器、磁性存储装置、光学存储装置等等。

网络设备管理器被布置成以电子形式获得多个网络设备1的正被配置的网络设备的网络设备身份号(A)。

计算单元被布置成从根密钥材料和网络设备身份号(A)计算用于网络设备的局部密钥材料。局部密钥材料也被称为密钥材料集合。

在一个实施例中,计算单元被布置成将网络设备身份号替换到所述一个或多个私有双变量多项式(fi(A, ))中,从而获得一个或多个单变量多项式,局部密钥材料从这一个或多个单变量多项式被导出;局部密钥材料包括单变量多项式。

网络设备管理器230进一步被布置成向正被配置的网络设备提供所计算的局部密钥材料。一种提供的方式是发送。例如,网络设备管理器230可以进一步被布置成向正被配置的网络设备发送所计算的局部密钥材料。

配置服务器可以被实现为例如web服务器。网络设备管理器可以利用计算机网络连接实现,例如LAN网络或因特网。配置服务器不需要使用计算机网络连接;它们也可以直接连接到配置下的网络设备。后者可以例如适合连同网络设备的制造一起使用。不同类型的配置服务器可以在系统100的单个实施例中组合。用于从配置服务器向网络设备传递局部密钥材料的连接在图1a中已被图示为从多个配置服务器2到多个网络设备1的箭头。

密钥共享系统100包括被布置成配置多个网络设备1以用于密钥共享的多个配置服务器2。

图1a示出网络设备300、350和360。存在至少两个网络设备,但是在典型的实施例中网络设备的数量比配置服务器的数量大得多。例如,在一个实施例中,存在数量至少是配置服务器的50倍的网络设备。

根据一个实施例的多个设备可以轻易地在设备对之间建立密钥,从而允许它们中任何两个之间的安全通信。相应地,我们把所述设备称作网络设备。在一个实施例中,两个设备之间的通信使用无线通信。其他形式的通信也是可能的,例如有线通信等。

每个网络设备包括被布置成存储第一网络设备身份号的电子存储装置。图1a示出具有电子存储装置320的第一网络设备300;具有电子存储装置321的第二网络设备350;以及具有电子存储装置322的第三网络设备360。为了保证在多个网络设备之中可导出的不同密钥的数量足够大,优选的是,身份号唯一标识多个网络设备内的网络设备;尽管后者不是必需的。例如,身份号也可以用以定址多个设备内的设备;另一方面,可以使用独立定址机制,例如预留用于密钥协商的身份号。

网络设备进一步包括接收器、通信单元和共享密钥单元330。为了清楚,图1a仅示出电子存储装置和计算单元。

接收器被布置成从多个配置服务器中至少两个不同的配置服务器接收多个局部密钥材料。接收器可以是网络连接单元,例如无线连接单元,例如Wi-Fi,或者有限连接,例如以太网。接收器还可以是专有连接,例如以便例如在制造期间将局部密钥材料加载到设备。

网络设备从不同的配置服务器接收局部密钥材料。网络设备可以从不同类型的配置服务器接收局部密钥材料。例如,在制造期间,网络设备可以例如通过计算机网络连接接收第一局部密钥材料并且稍后接收附加的局部密钥材料。

在网络设备接收到它们的局部密钥材料之后,它们不需要配置服务器介入以与另一个网络设备共享密钥。网络设备的通信单元和共享密钥单元被网络设备用来与多个网络设备中的另一个网络设备(例如第二网络设备)共享密钥。通信单元被布置成获得多个网络设备中的第二网络设备的第二网络设备身份号(B),并且向第二网络设备提供第一网络设备身份号。共享密钥单元330被布置成从第一网络设备的多个局部密钥材料中至少两个和第二网络设备身份号导出共享密钥。第二网络设备执行类似的计算,但利用了它自己的多个局部密钥材料和第一设备的身份号。在两端处计算的结果是共享密钥。

具有两个网络设备(例如第一网络设备300和第二网络设备350)之间的通信的知识的某人在不使用不合理的大资源的情况下不能获得它们的共享密钥。即使设备360也不能导出设备300与350之间共享的密钥。

存在若干用于密钥共享的算法,例如可以在系统100中使用的密钥协商协议。下面描述这些算法其中的两个示例。

当两个网络设备需要共享密钥(例如对称密钥),例如以便加密和/或认证这两个设备之间的通信时,每个网络设备从第一网络设备的多个局部密钥材料中至少两个和第二网络设备身份号导出共享密钥。用于导出共享密钥的局部密钥材料源自相同的根密钥材料。

在图1a中图示的示例中:第一网络设备300从配置服务器200和201接收局部密钥材料,即从它们各自的根密钥材料导出的局部密钥材料;第二网络设备350从配置服务器200、201和202接收局部密钥材料;并且第三网络设备360从配置服务器201和202接收局部密钥材料,即从它们各自的根密钥材料导出的局部密钥材料。

例如,第一和第二网络设备300和350已经从相同的两个配置服务器200和201接收了局部密钥材料。使用这些局部密钥材料,它们可以导出它们之间共享的密钥。

使用多个局部密钥材料导出共享密钥可以以若干方式完成。

从两个或更多个局部密钥材料导出共享密钥的第一方式使用共享密钥单元330,其被布置成将多个局部密钥材料中至少两个组合在一起,从而获得单个组合的局部密钥材料。共享密钥可以从单个组合的局部密钥材料和所接收的网络设备身份号导出。后者可以使用来自本领域的密钥共享算法,例如下面进一步描述的两个示例之一。例如,所述两个或更多个局部密钥材料可以被相加在一起以组合它们。

将局部密钥材料相加以组合例如适合用于密钥协商,其中根密钥材料包括双变量多项式且局部密钥材料包括从双变量多项式导出的单变量多项式。将包括单变量多项式的局部密钥材料相加可以包括将单变量多项式相加,例如将具有相同指数的单项式的系数相加。

组合的局部密钥材料可以在密钥共享期间或在配置阶段期间等导出。例如,网络设备可以被配置用于特定数量的局部密钥材料,例如2或3或更多;当网络设备已经接收到该数量的局部密钥材料时,进行组合,例如在需要密钥共享之前,例如在接收第二网络设备身份号之前。该操作提高了安全性,因为避免了攻击者取得对单独的局部密钥材料的访问权。然而,组合也可以在密钥共享期间、例如在接收到第二网络设备身份号之后进行。

组合局部密钥材料具有附加优点:随着所使用的局部材料的数量增加,抵御网络设备的共谋攻击的安全性提高。

在局部建钥材料被组合之后,它们可以随后被移除,共享密钥从所接收的标识符和组合的密钥材料导出,该组合的密钥材料包含第一网络设备的至少两个局部密钥材料。

从两个或更多个局部密钥材料导出共享密钥的第二方式使用共享密钥单元330,其被布置成从第二网络设备身份号和第一网络设备的多个局部密钥材料中的第一局部密钥材料导出第一中间共享密钥,并且被布置成从第二网络设备身份号和第一网络设备的多个局部密钥材料中的第二局部密钥材料导出第二中间共享密钥。共享密钥通过组合第一和第二中间密钥而导出。首先导出中间密钥以及将它们组合以形成共享密钥与宽广范围的(例如基于Diffie-Hellman的)密钥协商协议兼容。

中间密钥可以是原则上可以独自地用于保护通信的密码共享密钥。另一方面,中间密钥也可能不适合独自地使用,例如因为中间密钥未被共享。例如,密钥共享算法的部分可以在导出中间密钥期间已被省略,其确保中间密钥充分可能对密钥共享的双方(例如第一和第二网络设备)、这样的模运算、调和等等而言是相等的。对于第一和第二中间密钥的组合,省略的部分可以一起完成。

组合中间密钥也可以通过将它们相加来完成。当一些运算将在组合的密钥上执行时,相加或与底层密钥协商机制兼容的一些其他数学运算例如是合适的。相加可以以对某数字取模来完成。取代基本算术运算(比如,相加、异或(xor)、乘法等等)的是,密钥导出函数可以用来从中间密钥导出共享密钥;该密钥导出将至少第一和第二中间密钥当作输入并且将共享密钥或其某种前驱作为输出产生。例如,应用于第一和第二中间密钥的串联的密码散列函数(例如sha-256)可以用作密钥导出函数。与底层密钥协商机制不相容的密码密钥导出函数适合用于组合被共享(例如对双方(例如第一和第二网络设备)而言是相等的)的中间密钥。

在一个实施例中,所有所述多个网络设备从所有所述多个配置服务器接收局部密钥材料。例如,这样的实施例适合用于恰好存在两个配置服务器的系统。从所有配置服务器接收局部密钥材料使可以从不同配置服务器获得的对安全的贡献最大化。例如,给定若干配置服务器,例如3或4个或更多,共享密钥单元330可以被布置成从相同数量的局部密钥材料导出共享密钥。

尽管后者不是必需的,但是不同的网络设备可以从不同的配置服务器、可能也从不同数量的配置服务器接收局部密钥材料,使得不是所有网络设备都具有相同数量的局部密钥材料。在该实施例中,网络设备可以被配置,例如预先编程,在导出与哪个网络设备的共享密钥时使用哪个局部密钥材料。网络设备还可以被配置成选择正确的局部密钥材料。

在一个实施例中,所述多个局部密钥材料连同多个相关联的配置服务器标识符一起被存储在第一网络设备处。配置服务器标识符指示在第一网络设备处从其接收相关联的局部密钥材料的配置服务器。每个配置服务器与唯一标识多个配置服务器之中的配置服务器的配置服务器标识符相关联。网络设备包括配置单元,其被布置成与第二网络设备商定多个配置服务器标识符的子集,使得第一和第二网络设备二者具有与该子集的配置服务器相关联的局部密钥材料。配置单元在图1a中未被单独示出。配置单元是可选的。

图1b图示了电子存储装置320的实施例的一个示例。存储装置320存储第一网络设备300的身份号、第一密钥材料集合370(即,第一局部密钥材料)和第二个第二密钥材料集合380(即,第二局部密钥材料)。存储装置320还存储与第一局部密钥材料相关联的第一配置服务器标识符376和与第二局部密钥材料相关联的第二配置服务器标识符386。例如,第一配置服务器标识符376可以标识配置服务器200,并且第二配置服务器标识符386可以标识配置服务器201。

返回图1a,配置单元可以以若干方式布置以实现关于多个配置服务器标识符的子集的协商。

例如,第一网络设备的配置单元可以被布置成向第二网络设备发送多个配置服务器标识符并且从第二网络设备接收所述子集。第一网络设备导出与其共享的密钥的第二网络设备的配置可以被布置成从第二网络设备接收多个配置服务器标识符,确定所接收的多个配置服务器标识符与第一网络设备的配置服务器标识符之间的交集,从该交集中选择子集,并且将该子集发送至第二网络设备。

例如,第二网络设备350可以向第三网络设备360发送配置服务器200、201和202的配置标识符。第三网络设备360可以确定所接收的多个配置服务器标识符与它自己(第三网络设备)的多个配置服务器标识符(其是用于配置服务器201和202的配置标识符)之间的交集。在该示例中,该交集是用于配置服务器201和202的配置标识符。从该交集中,第三网络设备360然后选择子集。所得的子集可以被发送回第二网络设备350。网络设备可以使用它们各自的通信单元发送消息。

从交集中选择子集可以以若干方式完成。例如,交集可以被选择为子集。这使得组合成共享密钥的局部密钥材料的量最大化,这提高了安全性。然而,如果交集是大的,则更小的选择可能是优选的,从而减少开销。例如,在一个实施例中,配置单元被布置成:在配置服务器标识符的数量小于或等于交集参数(例如4或5或更多)的情况下,将完整的交集选择为子集,并且如果配置服务器标识符的数量多于交集参数,则选择交集参数数量的配置服务器标识符。从交集中进行选择可以通过随机选择完成,或者以其他方式完成,例如取配置服务器标识符的第一交集参数。交集参数可以由配置单元例如取决于配置单元的可配置安全性参数动态预定或确定。

在图1a中所示的示例中,第一网络设备300和第三网络设备360仅具有来自单个共享配置服务器(在此情况下,配置服务器201)的局部密钥材料。如果使用配置单元,则这可以在交集被确定时来检测。此时,配置单元可以产生出错消息,其指示导出与该网络设备的共享密钥是不可能的,因为不存在从至少两个相同的配置服务器可获得的局部密钥材料。在一个实施例中,可以提供回退机制,例如可以使用从单个局部密钥材料导出的共享密钥。后者不是优选的,因为它可以允许攻击者强行促成具有更低安全性的回退情形。然而,在一些应用中,这相比于通信的缺乏可能是优选的。该回退是不可能的,如果交集是空的话;后者可以通过确保网络设备具有来自一个配置服务器的至少一个局部密钥材料来避免。例如,所有网络设备可以例如在制造期间从至少一个特定配置服务器接收局部密钥材料。附加的局部密钥材料可以由网络设备在使用期间获得。以此方式,在网络设备的寿命期间,共享密钥的安全性提高。而且,局部密钥材料的起源变得越来越模糊,从而使强大的敌手发起的例如能够危害配置服务器的攻击越来越艰难。

下文描述了适合与系统100一起使用的两个密钥共享算法。二者具有提高的安全性的优点,因为通过危害配置服务器造成的单点故障已被消除。单个配置服务器的根密钥材料的泄露不直接危害所有导出的共享密钥的安全性。

描述了可以用在系统100中的第一密码密钥共享机制。配置服务器的根密钥材料可以包括单个双变量多项式。例如,配置服务器i可以具有双变量多项式。这里,双变量多项式的两个输入用xy指示;这些变量是形式变量,为了清楚起见,后者有时被省略,例如省略为。双变量多项式可以在环上定义,特别地在以对某数字取模的整数上定义,更特别地以对素数取模定义,例如。

如果配置服务器i利用身份号r配置网络设备,则配置服务器计算环中(例如上,例如以对p取模)计算Ri(r,x);从而获得单变量多项式。局部密钥材料包括单变量多项式。

如上文所解释,网络设备可以从所有或一些配置服务器接收局部密钥材料。尽管配置服务器具有不同的根密钥材料。例如不同的双变量多项式,但是它们全部都共享用于计算的相同环,例如它们全部都以对p取模进行计算,等等。

如果第一网络设备(例如第一网络设备300)希望导出与第二网络设备(例如第二网络设备350)共享的密钥,则这两个网络设备交换网络设备标识符;例如第一网络设备向第二网络设备发送标识符A并且从第二网络设备接收标识符B。

下文中,为了清楚起见,假设网络设备从服务器i=1和i=2(例如服务器200和201)接收了局部密钥材料,并且计算是以对p取模进行;然而本文中指示的变体加上必要的修改适用。第一网络设备可以计算两个中间密钥和。这两个中间密钥中的每一个可以以对p取模进行约简,以此方式获得两个共享的中间密钥。这两个共享的中间密钥可以使用密钥导出函数组合成单个共享密钥。以对p取模进行约简也可以被推迟,首先将中间密钥相加并且然后执行以对p取模进行的约简。后者的结果可以被直接用作共享密钥。如果需要,具有单个输入的密钥导出函数可以用来使密钥中的熵持平(even out),例如应用散列函数。

取代导出中间密钥的是,网络设备也可以组合局部密钥材料自身。例如,第一网络设备可以将单变量多项式(优选地以对p取模)相加,从而获得单个组合的局部密钥材料SC。为了导出共享密钥,网络设备现在可以在所接收的身份号下直接对单个组合局部密钥材料求值。

参照图2和3,描述了可以用在系统100中的第二密码学密钥共享机制。首先以数学术语描述密钥共享方法的实施例。该密钥共享方法可以在如下文所描述的设备中实现,例如在用于配置网络设备300的配置服务器200上实现,例如在密钥共享系统100中实现,等等。网络设备也被称为节点或网络节点。

所述方法具有设立阶段和使用阶段。设立阶段可以包括发起步骤和登记步骤。发起步骤不涉及网络设备。

发起步骤选择系统参数。发起步骤可以由受信任的第三方(TTP)执行。系统参数也可以被视为给定的输入。在这种情况下,受信任的第三方不需要生成它们,并且发起步骤可以被跳过。例如,受信任的第三方可以从设备制造商接收系统参数。设备制造商可能已经执行了发起步骤以获得系统参数。为了阐释方便起见,当作执行发起步骤,我们将引用受信任的第三方,记住这并不是必需的。配置服务器之一可以作为受信任的第三方具有的附加功能,例如以便选择系统参数并且将它们分配给其他配置服务器。

发起步骤

选择用于将在一个实例的使用阶段中在设备之间共享的密钥的期望的密钥长度;该密钥长度被称作“b”。还选择期望的身份号长度。在稍后的登记步骤期间,每一个设备将与身份号长度的身份号相关联;身份号长度被称作“B”。号的长度以位为单位测量。可能存在多个并行的实例;每个实例允许共享密钥的导出。可能存在单个实例。每个配置获得用于每个实例的根密钥材料,每个配置服务器优选地使用相同数量的实例。实例的数量可以是1。

优选的是b≤B,但是这并不是必需的。为了针对晶格攻击(lattice attack)的更高抵抗力,我们可以选择b<B。在一个实施例中,Bb的倍数,例如B是至少2b,或者对于推荐的安全级别,B是至少4b。用于低安全性应用的典型数值可以是b=8,B=16。对于高安全性,b=8,B=32是更好的。

对于每一个实例,两方可以导出共享密钥。共享密钥可以被组合以形成更大的组合密钥。实例的数目被选择成使得组合密钥是足够长的以用于该组合密钥将被使用在其中的安全性应用。

b关于B的更小值提高了针对所谓的共谋攻击的应变力。在共谋攻击中,攻击者获得关于在目标网络节点与多个共谋网络节点之间使用的共享密钥的信息。

实例的数量、密钥尺寸和子密钥长度常常将例如由系统设计者预先确定,并且作为输入被提供给受信任方。

实例参数

接下来,选择用于每一个实例的参数。选择期望的次数;该次数控制某些多项式的次数。次数将被称作“α”,其至少是1。针对α的一种实际选择是2。更安全的应用可以使用α的更高值,例如3或4或者甚至更高。对于简单的应用,α=1也是可能的。α=1的情况涉及所谓的“隐藏数问题”;更高的“α”值涉及证实这些情况难以破解的扩展隐藏数问题。值α=1(虽然是可能的)不被推荐,并且应当仅被考虑用于非常低安全性的应用。对于低安全性应用,α>2的值(例如α=3)是可能的。然而对于高安全性,α≥32是推荐的,例如α=32。

选择多项式的数目。多项式的数目将被称作“m”。针对m的一种实际的选择是2。更安全的应用可以使用m的更高值,例如3或4或者甚至更高。

注意到,(例如用于资源受限设备的)低复杂度应用可以使用m=1。值m=1(虽然是可能的)不被推荐,并且应当仅被考虑用于低安全性应用。安全参数αm的更高值增加了系统的复杂度,并且相应地增加了其难解性(intractability)。更复杂的系统更难以分析,并且因此对密码分析更有抵抗力。下面假设m≥2。

选择满足2(α+1)B+b-1 ≤ N的公共模量N。优选的是,公共模量N被选择成恰好具有(α+1)B+b位,并且因此还有N < 2(α+1)B+b。举例来说,N可以在该区间内被随机选择。密钥长度b、次数α和多项式的数目m常常将例如由系统设计者预先确定,并且作为输入被提供给受信任方。公共模量还可以是固定的,例如在标准中固定,但是更典型地将在参数生成期间选择。

在一个实施例中,所有配置服务器获得相同的参数,包括公共模量N、共享密钥尺寸b、标识符尺寸B和次数α。配置服务器进一步需要私有模量和私有双变量多项式。可能的是,这些也可以由受信任的第三方选择并且被分配给配置服务器,这仍然保护配置服务器以免稍后的危害,但允许在受信任方上的中心攻击的可能性。

在一个实施例中,每个配置服务器的密钥材料获得器被布置成生成特定用于该配置服务器的根密钥材料的至少一部分。每个配置服务器的根密钥材料的重要部分是私有模量和对应的双变量多项式。在一个实施例中,密钥材料获得器生成用于该配置服务器的至少私有模量和双变量模量;下文中,这一点被假设,记住它不是绝对必需的。

在每一个配置服务器中,选择m个私有模量p1,p2,…,pm。模量是正整数。在一个实施例中,每一个所选择的数字满足以下关系:。其中βj是随机B位整数,即βj< 2B。更优选的是,私有模量具有的位数恰好等于标识符长度B,即2B-1≤βj< 2B。私有模量被称作第二私有集合。

对于m>1,系统更加复杂并且因此更加安全,因为针对不同模量的取模运算被组合,即使这样的运算在通常的数学意义上是不相容的。为此原因,有利的是把所选择的私有模量pj选择成是成对区别的。

如果仅使用将被推荐具有m>1的一个配置服务器,然而,通过组合多个局部密钥材料,最终的共享密钥与局部密钥材料(无论是否被组合在单个组合的局部密钥材料中)之间的关系变得不那么线性。在一个实施例中,m>1。

在一个实施例中,m≥1,α>1,,βj< 2B,并且2(α+1)B+b-1 ≤ N

在每一个配置服务器中,生成m个次数为αj的双变量多项式f1,f2,…,fm;其被称作第一私有集合。优选的是,所述双变量多项式是对称的;这允许所有网络设备与每一个其他的网络设备商定共享密钥。这些双变量多项式也可以被选择成是不对称的。在后一种情况下,设备被分成两组;第一组通过替换双变量多项式的第一变量获得局部密钥材料,第二组通过替换双变量多项式的第二变量获得局部密钥材料。一个组中的设备只能与另一组中的设备商定共享密钥。

所有次数满足αj≤α,并且对于至少一个j,我们有αj=α。一种更好的选择是取得每一个次数为α的多项式。α>1的值被推荐,并且优选地使用更高的值。双变量多项式是两个变量的多项式。对称多项式f满足f(x,y) = f(y,x)。在通过整数模pj形成的有限环中对每一个多项式fj求值,该整数模pj是通过计算模pj而获得的。整数模pj形成具有pj个元素的有限环。多项式fj的系数是整数,并且表示通过模pj运算定义的有限环中的元素。在一个实施例中,利用从0直至pj-1的系数来表示多项式fj。双变量多项式可以被随机选择,例如通过选择这些界限内的随机系数来随机选择。

密钥共享的安全性取决于这些双变量多项式,因为这些双变量多项式是系统的根建钥材料;因此优选地采取强有力的措施来保护它们,例如控制过程、防篡改设备等等。优选的是,所选择的整数p1,p2,…,pm也被保秘,其包括对应于pj的值βj,尽管这并没有那么关键。这并不适用于不需要保密的参数,如NbBmα我们还将以下面的形式引用双变量多项式:对于j=1,2,…,m,我们写出。出于这个原因,可接受的是,这些参数由受信任的第三方(TTP)(例如第一配置服务器)选择并且被分配给其他配置服务器。

可以通过若干方式改变前面的实施例。可以通过多种多样的方式选择关于公共和私有模量的限制,使得单变量多项式的模糊化(obfuscation)是可能的,而仍然使得在网络设备处获得的共享密钥足够频繁地保持足够靠近彼此。什么是足够的将取决于应用、所需的安全级别以及网络设备处可用的计算资源。前面的实施例组合各个正整数,使得在生成多项式共享时实施的模运算当其在所述整数上相加时按照非线性方式被组合,从而创建用于存储在网络设备上的局部密钥材料的非线性结构。针对Npj的上述选择具有以下属性:(i)N的大小对于所有网络设备是固定的;(ii)非线性效果出现在形成存储在设备上的密钥材料的系数中。由于该特定形式,可以通过在以对N取模约简之后以对2b取模进行约简来生成共享小密钥。

登记步骤

在登记步骤中,为每一个网络设备分配来自两个或更多个配置服务器的局部密钥材料,也被称为建钥材料(KM)。局部密钥材料包括私有单变量密钥多项式。网络设备在它已从两个配置服务器获取两个局部密钥材料时可以参加根据一个实施例的系统。然而,贯穿网络设备的寿命,可以在网络设备处接收新的局部密钥材料。在一个实施例中,在网络设备已经导出共享密钥之后,该网络设备接收附加的局部密钥材料。

建钥材料包括用于每一个实例的建钥材料(如果使用多个实例)。下面我们描述如何针对网络设备导出用于一个实例的建钥材料。每一个实例具有对该实例而言唯一的建钥材料,即使建钥材料的部分可以在不同的实例之间共享。为了简化起见,我们将其局部密钥材料被使用的这两个配置服务器编号为1和2。

网络设备与身份号A相关联。身份号可以例如由TTP按需分配,或者可以已经被存储在设备中,例如在制造时存储在设备中,等等。A的位尺寸是B位。可以通过多种多样的方式生成A。对于高安全性,A的低位是随机的。举例来说,A可以被选择成随机数;A可以是另外的身份号的散列值,例如序列号,其可能被截取到B位。

配置服务器1生成用于设备A的建钥材料的集合如下:

这使用特定用于第一配置服务器的根密钥材料:私有约简整数p1,j和双变量多项式( , )。从而获得单变量多项式的集合,并且对于第一私有集合的每一个特定多项式,身份号(A)被替换到所述特定多项式fi(A,x)中,并且以对与所述特定多项式相关联的约简整数取模进行约简。所得到的单变量多项式的集合被求和。所述求和可以与单变量多项式的所述生成组合。x是形式变量;x的系数(如指数)被相加以获得的系数。注意到,建钥材料是非线性的。标记标示将括号之间的多项式的每一个系数以对pj取模进行约简。

有可能对此加上另外的模糊数字,如下:

其中是具有从配置服务器1接收的身份号A的设备的建钥材料。换句话说,我们有。标记“”标示随机整数,其是模糊数字的一个示例,使得。注意到,随机整数中任何一个可以是正的或负的。对于每一个设备再次生成随机数。因此,项表示次数为aX的多项式,其系数长度随着次数的增加而更短。可替换地,一种更一般、但更复杂的条件是是小的,例如< 2α+1。不同的有限环上的混合效应为安全性提供了最大的贡献,模糊数字的使用因此是可选的。

所有其他的加法可以使用自然整数算术(即在环中),或者(优选地)它们使用模N加法。因此,对单变量多项式的求值各自单独以对更小的模量pj取模来进行,但是这些简化的单变量多项式自身的求和优选地以对N取模来进行。此外,加上模糊多项式可以使用自然整数算术或者优选地使用对N取模来进行。建钥材料包括系数,其中。建钥材料可以被呈现为如上面的多项式。在实践中,建钥材料可以被存储为整数的列表,例如数组。设备A还接收数字Nb。对多项式的操纵可以被实现为例如对于包含系数的数组的操纵,例如按照预定顺序列出所有系数。注意到,在其他数据结构中,多项式例如可以被实现为包括(次数、系数)对的总集的关联数组(其也被称作“映射”),优选地使得每一个系数在总集中最多出现一次。被提供给设备的系数优选地处在0,1,…,N-1的范围中。

第二建钥材料的生成由第二配置服务器取而代之地使用双变量多项式f2,j和私有约简整数p1,j以相同方式进行。

使用阶段

一旦两个设备具有身份号A和B并且从至少两个配置服务器接收到了它们各自的建钥材料,它们可以使用两个建钥材料获得一个共享密钥。

例如,设备A和B可以组合所使用的单变量多项式,例如在此情况下将其相加。实际上,这使值m加倍,从而除了所述至少两个配置服务器不再是单点故障的事实之外,提供了显著的安全性提高。在将单变量多项式相加之后,可以应用以对公共全局约简整数N取模的约简。

使用单个组合的局部密钥材料,对于每一个实例,设备A可以执行以下步骤以获得他的共享密钥。首先,设备A获得设备B的身份号B,随后A通过计算下式生成共享密钥:。上标“c”指示使用组合的密钥材料。

也就是说,A针对值B对被看作整数多项式的组合的建钥材料求值;对建钥材料的求值的结果是一个整数。接下来,设备A可以首先以对公共模量N取模并且随后对密钥模量2b取模来约简求值的结果。该结果将被称作A的中间密钥,它是0直至2b-1的范围内的整数。对于其部分,设备B可以通过针对身份A对其建钥的材料求值并且以对N取模以及随后对2b取模约简该结果来生成对应于A的B的中间密钥。注意到,KABK(A,B)的另一种标记。

如果根密钥材料中的双变量多项式是对称的,则A的中间密钥以及对应于A的B的中间密钥常常是相等的,尽管不一定总是相等。关于整数p1,p2,…,pm以及关于(可选的)随机数的特定要求是使得密钥常常是相等的,并且以对2的密钥长度次幂取模而几乎总是彼此接近。

我们还将把该密钥称作K(A,B)。在这里,A是设备A的B位标识符,即。[注意到,设备B的标识符B与也被称作B的标识符长度无关。例如,前者可以是一个128位数字,而后者则可以是数字128。]。

设备A生成的例如用于对其与设备B的通信进行加密的b位密钥K(A,B)并不总是等于K(B,A),设备B生成的例如用于对其与设备A的通信进行加密的密钥。然而,这些密钥之间的差异在下面的意义上是有限的:成立,其中N是公共全局约简整数,标示对2b取模运算,并且δ是绝对值有界的整数:。K(A,B)是中间密钥的一个实例,并且其通过加上或减去校正项的倍数(即N的倍数)定义可能的共享密钥的集合。该倍数小于或等于上界(例如Δ),并且大于或等于下界(例如-Δ)。

上界和下界的值可以被计算,并且取决于所选择的参数。通过把建钥材料的一半位设定为零,可以获得关于所述差异的相对清晰的界限。在这种情况下,我们有Δ2m+2α+1。在这里,m标示混合多项式的数目,并且α是其次数。然而,对于其他实施例,还可以通过在K(A,B)和K(B,A)的导出之后跟踪可能不同的位的数目而获得类似的界限。在不假设把系数设定为零的情况下,我们有界限Δ2m

此时,A方和B方的经修改的中间密钥非常可能是相等的。如果A和B获得了相同的密钥,则它们可以将其用作在A与B之间共享的对称密钥;举例来说,它可以被用于多种多样的密码学应用,例如它们可以交换使用共享密钥加密和/或认证的一条或多条消息。优选的是,将密钥导出算法应用于共享密钥以用于对主密钥的进一步保护,例如可以应用散列函数。

A方和B方可以通过发送密钥调和数据验证它们在修改之后确实获得了相同的密钥。例如,通过发送经修改的密钥的散列值,或者发送预定串的加密等等。如果密钥调和数据显示没有获得相同的共享密钥,则可以对经校正的密钥进行修改以符合所接收到的密钥调和数据,使得第一设备和第二设备获得对于完全相同的共享密钥的访问权。所述修改可以涉及依据其上的界限尝试δ的不同值。由于界限相对小,因此找到正确的校正项的工作量也是可能的。另一种可能性是在调和数据中包括中间密钥的若干最低有效位。校正项将复制这些位,在调和之后,这些位被丢弃。

取代使用组合的密钥材料的是,系统也可以从每个局部密钥材料导出中间密钥。中间密钥可以单独被调和并且然后被组合成单个共享密钥,然而也可能的是首先将中间密钥模N相加,并且然后以对2^b取模进行约简;即,第一和第二中间密钥比共享密钥更长。以此方式获得的共享密钥可以如上文所指示的那样被调和。

所选择的m个私有模量p1,p2,…,pm优选地是成对地互素的。如果这些数字是成对地互素的,则模运算之间的相容性的缺乏得到增加。获得成对地互素的数字可以通过下述来获得:按顺序选择整数,针对每一个新的整数测试是否所有各对不同的数字仍然互素,如果不是的话,则从集合中移除刚刚选择的数字。这一过程继续,直到所有m个数字都被选择为止。通过要求所选择的m个私有模量p1,p2,…,pm是不同的素数,复杂度甚至进一步提高。

组合多个实例

所描述的系统允许网络节点商定共享密钥,所述共享密钥可以是小的,也小于其标识符。更高安全性与实际实现方式的组合使得希望选择相对小的b的值,例如b≤8或者可能甚至b≤16。在不创建不切实际地长的密钥材料的情况下增加密钥长度的一种方式是组合多个小密钥。系统允许所述方商定多个子密钥,所述多个子密钥一起形成共享密钥。我们将提到生成子密钥作为密钥协商实例的系统。每一个实例可以具有它自己的独立参数,但是按照与其他实例相同的原理操作。尽管如此,多个实例可以共享它们的参数中的一些参数。我们将提到从如前所述的系统(即从单个实例)获得的共享密钥作为“小”密钥,以及两个或更多小密钥的组合作为“大密钥”。组合的实例的数目被称作“t”。

一种可能的选择是以下参数集合:α=10、b=8、B=32。为了提高安全性,可取的是使用32位ID的全跨度。特别地,在长度为256的任何区间中,应当使用少于10个ID。一般来说,通过下述实现更高安全性:设定预先确定的第一和第二身份阈值并且选择身份号,使得没有第一身份阈值大小(例如256)的区间包含超过身份值的第二身份阈值(例如10)。这例如可以由网络设备管理器施行,例如通过根据该规则生成身份值,或者通过拒绝为具有超出阈值的身份值的设备生成局部密钥材料。

图2是用于配置网络设备以进行密钥共享的配置服务器200和第一设备300的示意性框图。我们把设备300称作网络设备。

配置服务器200典型地被实现为集成设备。举例来说,配置服务器200可以被包括在服务器中。配置服务器200可以通过网络配置网络设备,例如无线网络或互联网等等。然而,配置服务器200还可以被集成在用于制造网络设备的制造设备中。

配置服务器200包括密钥材料获得器210、网络设备管理器230以及计算单元220。配置服务器200意在与多个网络设备一起工作。图2示出了一个这样的设备,第一网络设备300。

配置服务器200选择秘密密钥材料,其也被称作根密钥材料。配置服务器200随后导出用于多个网络设备中的每一个的局部密钥材料。局部密钥材料是从根密钥材料以及网络设备的至少一个公共身份号A导出的。在图2中,网络设备300存储身份号310。网络设备还可以具有多个身份号,例如每个实例一个身份号。网络设备还可以存储另外的身份号,并且在需要时从中导出身份号310,例如通过对所述另外的身份号进行散列运算。

局部密钥材料包括对特定网络设备而言私有的部分,即只对一个特定的网络设备以及可能受信任的设备是可访问的。局部密钥材料还可以包含尽管是获得共享密钥所需要的但是对于保持秘密不那么关键的部分。

使用形容词“公共的”和“私有的”是为了有助于理解:即使能够访问所有公共数据,也无法计算出私有数据,至少在给定应用的安全性或者与用于密钥生成、加密和解密所需的资源相比不是没有不合理的高资源的情况下是无法计算出私有数据的。然而,“公共的”并不意味着必然使得相应的数据可用于除了配置服务器200和网络设备之外的任何人。特别地,使公共全局约简整数和其他公共参数针对不受信任的各方保持秘密提高了安全性。同样地,对私有数据的访问可以被限制到生成或需要该数据的一方,这提高了安全性。然而,受信任方可以被允许访问私有数据;对于私有数据的访问降低了安全性。

使用它们的局部密钥材料和另一方的身份号,网络设备可以在它们之间商定共享密钥。

密钥材料获得器210被配置成以电子形式至少获得参数集合250。参数集合250包括公共全局约简整数256 N、双变量多项式的第一私有集合252 fi( , )以及约简整数的第二私有集合254 pi,其中第一集合中的每一个双变量多项式与第二集合的约简整数和公共全局约简整数256 N相关联。针对具有位尺寸为B的标识数字的网络节点生成参数集合。该参数集合将被用于生成局部密钥材料,所述局部密钥材料进而将被用来导出共享密钥。在一个实施例中,小密钥的位尺寸b满足b<B;虽然这并不是必需的,但是它使得通过解决晶格问题攻击系统更难。在一个实施例中,b≤B,特别地b可以等于B。

在优选实施例中,密钥材料获得器210被配置成以电子形式获得参数集合250。如果使用多个实例,则密钥材料获得器210可以包括多个参数集合。图2示出了参数集合250。

参数集合的公共全局约简整数256 N优选地不同于该集合的每一个约简整数254;尽管这不是严格必需的。优选的是,参数集合的公共全局约简整数256 N大于或等于该参数集合的每一个约简整数254。

密钥材料获得器210不需要与网络设备进行交互以获得密钥材料;特别地,密钥材料获得器210不需要身份号。配置服务器200可以是分布式系统,其中密钥材料获得器210位于与计算单元220不同的物理位置处。密钥材料获得器210生成密钥材料的全部或一部分,并且/或者从外部源获得密钥材料的全部或一部分。举例来说,密钥材料获得器210适合于从外部源接收公共全局约简整数256并且生成第一私有集合252和第二集合254。后者允许利用固定的公共全局约简整数256制造所有网络设备,从而降低成本。

密钥材料获得器210可以包括电子随机数生成器。该随机数生成器可以是真或伪随机数生成器。密钥材料获得器210可以例如使用电子随机数生成器生成公共全局约简整数N;尽管如此,对于所有密钥材料获得器(例如在图1a的情况下210、211、212),N的值应当是相同的。例如,N可以在配置服务器之间传送。

虽然公共全局约简整数是公共信息,但是引入随机性使得分析系统更困难。

对于第一集合中的每一个双变量多项式,来自第二集合的约简整数被关联。可以从整数环随机地选择随机系数,例如整数对某一数字(比如相关联的约简整数)取模。

密钥材料获得器210可以使用电子随机数生成器生成第二私有集合中的约简整数pi的一个或更多系数。所述约简整数不必是素数。然而,它们可以被选择成素数以提高抵抗力。素数产生作为一种类型的环的域。相同的参数集合(即相同的第一和第二私有集合)以及公共全局约简数字被用于稍后需要共享密钥的所有网络设备。

密钥材料获得器210可以例如使用电子随机数生成器生成第一私有集合252中的双变量多项式(fi( , ))的一个或更多系数。密钥材料获得器210可以按照这种方式生成所有双变量多项式。密钥材料获得器210可以使用这些多项式的最大次数,例如2次、3次或更高次,并且生成比该次数多一的随机系数。

方便的是规定第一私有集合252的某些方面,比如私有集合252中的多项式的数目以及多项式的次数或最大次数。还可以规定多项式中的一些系数为零,以便例如减少存储需求。

第一集合可以包含两个相等的多项式。这将工作,然而,除非相关联的约简整数是不同的,否则所述集合的尺寸可以被减小。因此,典型地,每当第一集合中的两个或更多双变量多项式相同时,相关联的约简整数(即底层环)是不同的。

在一个实施例中,双变量多项式(fi( , ))的所有第一私有集合仅包括对称的双变量多项式。仅使用对称多项式具有的优点在于,每一个网络设备可以与所配置的网络设备中的任何其他网络设备商定共享密钥。然而,双变量多项式的第一私有集合可以包含一个或更多不对称多项式;这具有效果:设备可以被分成两组;来自一个组的设备只能与第二组的设备商定共享密钥。

密钥材料获得器210被配置成以电子形式获得双变量多项式的第一私有集合252,其在公式中也被称作fi( , )。下面描述的实施例假设集合252中的所有双变量多项式都是对称的。第二参数集合的生成可以按照相同的方式进行。

还可以把对称双变量多项式标记成fi(x,y),其中的两个形式变量作为占位符。对称双变量多项式满足fi(x,y)=fi(y,x)。这一要求变换成对系数的要求,例如单项式xayb的系数等于单项式xbya的系数。

第一私有集合252中的多项式的数目可以取决于应用而被不同地选择。所述系统将在第一和第二集合仅包含单个多项式时工作;在这样的系统中,密钥可以被成功地共享并且提供中等水平的安全性。然而,只有当第一集合在其中具有至少2个多项式并且第二集合具有至少两个不同的约简整数时,才实现在不同的环上混合的安全性优点。

私有集合252包括至少一个双变量多项式。在配置服务器200的一个实施例中,私有集合252由一个多项式构成。在私有集合252中仅具有一个多项式降低了复杂度、存储需求,并且提高了速度。然而,在私有集合252中仅具有一个多项式被认为与在私有集合252中具有两个或更多多项式相比不那么安全,因为这样的一个多项式的系统不会受益于下面所描述的求和中的附加的混合。然而,密钥共享将会正确地工作,并且被认为对于低价值和/或低安全性应用是足够安全的。

在剩下的部分中,我们将假设私有集合252包括至少两个对称双变量多项式。在一个实施例中,至少两个或者甚至所有的多项式是不同的;这使得对系统的分析显著复杂化。但是这并非必要的;私有集合252可以包括两个相等的多项式,并且当在不同的环上对这两个多项式求值的情况下仍然可以受益于求和步骤中的混合。注意到,不同的约简整数定义不同的环。在一个实施例中,私有集合252包括与不同的相关联的约简整数相关联的至少两个相等的多项式。在第一集合中具有两个或更多相等的多项式降低了存储需求。在一个实施例中,第二集合包括至少两个多项式,并且第二集合中的所有多项式是不同的。

私有集合252中的多项式可以具有不同的次数。对于对称双变量多项式的次数,我们将意指两个变量之一的多项式的次数。举例来说,x2y2+2xy+1的次数等于2,因为x中的次数是2。多项式可以被选择成在每一个变量中具有相同的次数;如果私有集合252中的多项式是对称的,则在另一个变量中次数将是相同的。

私有集合252中的多项式的次数可以取决于应用而被不同地选择。私有集合252包括次数为1或更高的至少一个对称双变量多项式。在一个实施例中,私有集合252仅包括次数为1的多项式。在私有集合252中仅具有线性多项式降低了复杂度、存储需求,并且提高了速度。然而,在私有集合252中仅具有一次多项式被认为与在私有集合252中具有次数至少为二的至少一个多项式相比不那么安全,因为这样的系统是明显更加线性的。尽管如此,如果在不同的环上对私有集合252中的多个多项式求值,则即使私有集合252中的所有多项式都是线性的,所得到的加密也不是线性的。在一个实施例中,私有集合252包括次数为2或更高的至少一个(优选地两个)多项式。然而,如果仅使用1次多项式,密钥生成、加密和解密将正确地工作,并且被认为对于低价值和/或低安全性应用是足够安全的。

只要具有更高次数的(多个)多项式提供足够的安全性,在私有集合252具有一个或更多0次多项式将不会影响系统。

对于中等安全性应用,私有集合252可以包括次数为2的两个对称双变量多项式或者甚至由其构成。对于更高安全性应用,私有集合252可以包括两个对称双变量多项式或者甚至由其构成,其中一个的次数为2且一个的次数高于2(例如3)。增加多项式的数目和/或其次数将以资源消耗的增加为代价进一步提高安全性。

优选的是,约简整数被选择成使得相同的约简整数集合中的任何两个约简整数的差具有公约数。特别地,公约数可以是2b,或者用语言表述,任何两个约简整数之间的差的二进制表示以至少与将从该实例导出的小密钥的尺寸一样多的零结尾。

举例来说,用于生成约简整数和公共全局约简整数的一种方式如下。

首先生成公共全局约简整数N。例如,作为规定大小的随机整数。

对于每一个约简整数,生成整数βi并且生成约简整数pi作为所述差。

公共全局约简整数可以被选择成具有(α+1)B+b位或更多,其中α是第一私有集合中的双变量多项式的单个变量中的最高次数。在这种情况下,整数βi可以被选择成βi < 2B。在一个实施例中,公共全局约简整数具有至少(α+1)B+b位,其中α是第一私有集合中的双变量多项式的单个变量中的最高次数。

密钥材料获得器210可以被编程在软件中或硬件中或者其组合中。密钥材料获得器210可以与用于多项式操纵的计算单元220共享资源。

网络设备管理器230被配置成以电子形式获得用于网络设备300的身份号310,A。网络设备管理器230可以从网络设备接收身份号。举例来说,网络设备管理器230可以包括或者利用通信单元以用于通过网络接收身份号。举例来说,网络设备管理器230可以包括天线以用于作为无线信号接收身份号。身份号可以被表示成若干位,身份号中的位数b典型地至少与共享密钥中的位数一样大。

系统200可以针对所有参数集合使用相同的身份号。然而,还有可能针对不同的参数集合使用不同的身份号。在后一种情况下,网络管理器230获得多个身份号。

计算单元220被配置成计算针对参数集合和标识数字A的单变量私有密钥多项式229。计算单元220被应用于密钥材料获得器210的每一个参数集合。在一个实施例中,计算单元针对至少两个参数集合或者甚至针对每一个参数集合使用相同的标识数字。在一个实施例中,计算单元针对至少两个参数集合或者甚至针对所有参数集合使用网络设备的不同标识数字。这样获得的单变量私有密钥多项式以及相应的公共全局约简整数是将被发送到网络设备的局部密钥材料的部分。

计算单元220通过连接238从密钥材料获得器210接收参数集合中的数据。下面描述计算单元220如何从参数集合确定单变量私有密钥多项式。从其他参数集合生成单变量私有密钥多项式是按照相同的方式进行的。

计算单元220可以计算单变量私有密钥多项式229如下:

通过把身份整数A替换到当前被处理的参数集合的第一私有集合中的每一个多项式中而获得单变量多项式。通过针对双变量多项式的仅仅一个变量替换值,双变量多项式简化到单变量多项式。随后把所得到的单变量多项式以对与在其中替换身份整数A的双变量多项式相关联的约简整数取模进行约简。将所得到的单变量多项式的集合求和,例如通过把各个多项式中的y的等幂的系数相加来求和。这可以从下述中针对的公式获得:

假设fi(x,y)是第一私有集合中的一个双变量多项式。该多项式的系数从环取得。即,第一集合中的多项式的系数是从整数环取得。为了简单起见,使用变量xy来表示第一集合中的整数的形式变量。

在替换之后,计算单元220获得fi(A,y)。计算单元220进一步被配置成把该项以对pi取模进行约简。例如在系统操作于其上的环(例如Zp)中例如通过以对p取模进行约简来约简系数。优选的是,计算单元220使所述结果进入规范形式,即预定的标准化表示。适当的规范形式是通过单项式的次数归类的系数的表示。可替换地,所述替换可以针对y。

为了确保身份号在系统中“随机”行动,可取的是在链中的点处的随机化步骤,以确保攻击不简化。特别地如果根据特定顺序给予网络设备身份号(例如序列号),这样的随机化步骤是可取的。举例来说,密码散列(例如sha-256)可以应用于身份号,结果被缩短到B位。

此外,身份号可以被扩展到更多位。举例来说,例如通过散列和/或串联,B’位的身份号可以被扩展到B位,其中B'<B。举例来说,身份号A可以被扩展到H(A)或者扩展到A||H(A);H标示散列,并且||标示串联。串联是在LSB侧进行的。对于这一运算,优选的是高度非线性的散列,比如密码散列。

如果第一集合仅包含对称多项式,则身份整数A的替换可以在双变量多项式的两个变量当中的任一个变量中。然而,如果替换是在非对称多项式中进行,则需要更多注意。举例来说,计算单元220可以被配置成获得第一网络设备300是处在第一组还是第二组中。第一和第二组分别与双变量多项式的第一和第二变量相关联。对于第一组中的网络设备,总是使用第一变量。对于第二组中的网络设备,总是使用第二变量。

图2示出了实现该功能一种可能的方式。图2示出了替换单元222、多项式约简单元224、多项式加法单元226以及单变量多项式的集合的总和228;后者将是单变量私有密钥多项式229。

替换单元222、多项式约简单元224和多项式加法单元226可以被组织到计算单元中;这一选项已通过图2中的虚线指示。

这些可以工作如下。替换单元222把身份整数A替换到第一集合的一个双变量多项式中。替换单元222可以收集项以带来规范形式的结果,但是这也可以等待。多项式约简单元224接收替换结果,并且以对与在其中进行替换的双变量多项式相关联的约简整数取模来约简该替换结果。

在由多项式加法单元226求和之前,将身份整数A替换到所述特定多项式fi(A,y)中并且以对与所述特定多项式相关联的约简整数取模进行约简的结果被表示成规范形式的系数列表。变量y充当形式变量。该替换有时被简单地标记成:fi(A, )。

多项式加法单元226接收经约简的单变量多项式,并且将其加到总和228中的累积总数(running total)。在生成单变量私有密钥多项式之前,总和228被重置到0。多项式加法单元226可以使用自然算术或者对与参数集合相关联的公共全局约简整数取模在系数方面把各个多项式相加。

当第一私有集合的所有多项式都以这种方式被处理时,总和228中的结果可以被用作单变量私有密钥多项式。例如总和228中的所得到的单变量私有密钥多项式可以被表示成系数列表并且被以规范形式表示。

如果系统200使用多个实例,即如果系统200使用多个参数集合,则计算单元220确定用于其中每一个实例的单变量私有密钥多项式。如果需要的话,单元220可以重新使用某些信息,例如单元220可以使用相同的身份号A生成所有单变量私有密钥多项式。对于更高安全性,各参数集合是独立的,并且优选地还使用不同的身份号。

网络设备管理器230还被配置用于通过电子方式把所生成的单变量私有密钥多项式229、相应的公共全局约简整数256 N存储在网络设备处。使用单变量私有密钥多项式229及其一个或多个身份号,第一网络设备300可以与从相同的根材料配置的其他设备共享密钥。网络设备管理器230还可以被配置用于通过电子方式把参数Bb存储在网络设备处。

配置服务器200还可以包括配置服务器标识符276,例如在电子存储器中。网络设备管理器230可以在网络设备处存储配置服务器标识符276,例如连同密钥材料一起。配置服务器标识符276是可选的,并且可以例如在所有网络设备从相同的配置服务器集合中接收建钥材料的情况下被省略。

通过电子方式存储可以包括设备管理器通过电子方式将信息发送到第一设备,第一设备随后存储该信息。

虽然计算单元220可以被实现在软件中,但是计算单元220特别适合于实现在硬件中。如果只有多项式约简单元224实现硬件,将获得显著的速度改进;不由单元224的硬件版本执行的系统200的部分功能可以在由处理器运行的软件中执行。

图2示出了计算单元220从第一网络设备300接收身份号消息232;第一网络设备300从计算单元220接收私有密钥材料消息236。私有密钥材料消息236可以包括公共全局约简整数、单变量私有密钥多项式计算单元。

这些消息典型地是通过网络设备管理器230发送和接收的。私有密钥材料消息236可以被分解在多条消息上。如果使用多个实例,则这些实例可以将其相应的私有密钥材料消息组合成单个消息。

配置服务器200可以被配置成通过生成用于第一网络设备300的身份号而获得身份号。这样的配置非常适合于制造设施。在这种情况下,第一网络设备300从配置系统200接收身份号消息232,而不是发送身份号消息232,例如从密钥材料获得器210或计算单元220接收身份号消息232。

图3是第一网络设备300和第二网络设备350的示意性框图。第一网络设备300和第二网络设备350被配置成一起确定共享密钥。

第二网络设备350可以具有与网络设备300相同的设计。我们仅仅详细描述第一网络设备300,第二网络设备350可以是相同的或类似的。图3仅仅示出了第二网络设备350存储身份号355。第二网络设备350的身份号355是公共的,并且可以与网络设备300交换以共享密钥。第二网络设备350还需要局部密钥材料(未示出),特别是对应于身份号355的一个或更多单变量私有密钥多项式。

第一网络设备300包括电子存储装置320、通信单元342、共享密钥单元330以及密钥导出设备340。

存储装置320存储设备300的局部密钥材料。在图3所示的实施例中,存储装置320包括从两个不同的配置服务器(例如配置服务器200和201)接收的密钥材料集合370和380。每个密钥材料包括单变量私有密钥多项式,两个密钥材料利用相同的公共全局约简整数374工作。例如,密钥材料370包括单变量私有密钥多项式372和配置服务器标识符386;例如,密钥材料380包括单变量私有密钥多项式382和配置服务器标识符386。局部密钥材料370和380已经从不同的配置服务器被接收,公共全局约简整数374可以已经从TTP被接收,在制造期间被输入或者从配置服务器被接收,例如配置网络设备的第一个配置服务器。

该实施例被描述为布置用于单个实例,即导出与彼此网络设备的单个共享密钥的密钥材料。网络设备可以被供应多个密钥材料集合,其进而可以包含来自多个配置服务器的多个建钥材料,以便允许网络设备导出多个共享密钥,例如以组合来形成更长的密钥。存储装置320还存储被配置服务器用来生成密钥材料中的单变量私有密钥多项式的身份号310 A

在所示的示例中,建钥材料370和380尚未被组合。在一个实施例中,建钥材料例如在接收它时被组合,这将减少存储器要求和复杂的逆向工程。

存储装置320可以是存储器,例如非易失性和可写存储器,比如闪存。存储装置320可以是其他类型的存储装置,例如诸如硬盘之类的磁性存储装置。存储装置320可以是一次性写入存储器。

通信单元342被配置成获得第二网络设备350的身份号355 B。通信单元342可以被实现为有线连接,例如Wi-Fi、蓝牙或Zigbee连接。通信单元342可以利用数据网络(例如互联网)上的连接来实现。

共享密钥单元330被配置成导出对应于存储装置320中的密钥材料370的与设备350共享的密钥。设备350具有对应于密钥材料370的密钥材料。下面描述共享密钥单元330如何可以使用密钥材料370导出单个共享密钥;然而也可以组合多个实例。

共享密钥单元330可以包括替换单元332和整数约简单元334。替换单元332和整数约简单元334一起形成共享密钥单元330。后者用虚线指示。

共享密钥单元330被配置成从所接收的网络设备350的身份整数B和建钥材料导出网络设备300和350之间的中间密钥。这被用来从第一网络设备的多个局部密钥材料中至少两个和第二网络设备身份号导出共享密钥。

从身份整数B和建钥材料导出中间密钥,共享密钥单元330被配置成把身份整数B替换到诸如单变量私有多项式372之类的单变量私有密钥多项式中,并且以对公共全局约简整数374取模来约简替换结果。共享密钥单元330可以使用与替换单元222和多项式约简单元224类似的硬件或软件。注意到,第一网络设备300不具有对第一和第二私有集合的访问权。约简单元334的结果是中间密钥。

在一个实施例中,共享密钥单元被布置成将第一网络设备的多个局部密钥材料中所述至少两个组合在一起,从而获得单个组合的局部密钥材料,共享密钥从第二网络设备身份号和组合的局部密钥材料导出。例如,它们可以通过将单变量多项式相加,例如对等幂的系数求和来组合。共享密钥单元可以以对全局公共约简整数374取模进行约简。中间密钥从组合的密钥材料导出。后者的结果可以以全局公共约简整数374 N取模进行约简,随后是以对2b取模约简和/或如下指示的调和。

取代在导出中间密钥(进而从该中间密钥导出共享密钥)之前组合建钥材料的是,共享密钥单元330可以被布置成从多个局部密钥材料导出多个中间密钥。通过组合第一和第二中间密钥导出共享密钥。例如,多个中间密钥首先被以对公共全局约简整数374 N取模相加。后者的结果可以以对对2b取模约简和/或如下指示被调和。

在一个实施例中,不同的网络设备可以从不同的配置服务器接收局部密钥材料。在此实施例中,组合密钥材料或中间密钥要求:对于参加密钥共享的两个网络设备,所使用的局部密钥材料源自相同的根密钥材料。

存储装置320存储多个局部密钥材料370、380以及连同可选的多个相关联的配置服务器标识符376、386。网络设备300包括可选的配置单元390。配置单元被布置成与第二网络设备(例如网络设备350)商定多个配置服务器的子集,以使得第一和第二网络设备二者都具有与该子集的配置服务器相关联的局部密钥材料。例如,配置单元390可以使用通信单元342向第二网络设备发送多个配置服务器标识符并且从第二网络设备接收子集。

网络设备350还可以包括配置单元,其被布置成从第一网络设备300接收多个配置服务器标识符,确定所接收的多个配置服务器标识符与第二网络设备的多个配置服务器标识符之间的交集,从交集中选择子集,以及向第一网络设备300发送该子集。

配置单元390可以被配置用于两种功能。例如,配置单元390可以被布置成当设备300发起密钥共享时向其他网络设备发送多个配置服务器标识符,并且当它未发起密钥共享时选择子集。

可选地,密钥共享单元330包括密钥调和单元336。可能发生的是设备300和设备350没有达成相同的共享密钥。应用可以选择忽略这种可能性。这样做时,一些网络设备对可能无法从事经加密和/或经认证的通信,因为它们缺少共同的共享密钥。对于一些应用来说,使仅仅一些网络设备对安全就足够了,例如自组织网络是这方面的一个实例。设备300和350还可以利用可选的密钥调和单元336进行配置。在两个设备300和350中的一个中,密钥调和单元336从所生成的密钥生成密钥调和数据并且将其发送到另一个设备;在另一个设备中,密钥调和单元336使用所接收的密钥调和数据来调适所生成的密钥,使得在两个设备中导出的共享密钥是相同的。

如果密钥调和单元336被用来调适密钥,则其调适所生成的密钥直到它符合密钥调和数据为止,即,从经调适的密钥导出密钥调和数据将给出与所接收到的用于该密钥的密钥调和数据相同的结果。调适密钥可以通过加上公共全局约简整数的倍数并且以对2b取模进行约简来进行,即,KBA+δN mod 2b。如果没有调和被执行,则中间密钥直接以对对2b取模进行约简。

举例来说,设备300中的密钥调和单元336获得所生成的小密钥的预定数目的最低有效位作为密钥调和数据。举例来说,预定数目c可以被选择为使得2c≥1+2D的最小数字,其中α是第一私有集合中的多项式的次数,并且m是多项式的数目。D标示可能的密钥的剩余数目,即,经修改的中间密钥中的剩余的不确定性。如果最低有效位被用作调和数据,则密钥调和单元加上倍数直到c个最低有效位与所接收到的位相同为止。即使b=8,对于每一个实例仍保留5位。这5位不要求附加的调和,然而通过组合多个实例可以获得任何期望长度的密钥,例如通过组合16个实例以获得80位共享密钥。

密钥导出设备340被配置成从被导出的一个或更多密钥(例如(多个)经修改的中间密钥)导出共享密钥。共享密钥是所谓的对称密钥。约简的结果是整数。该结果可以几乎直接被用作密钥,例如通过可选地在调和之后串联其系数。

从约简结果导出共享密钥可以包括应用密钥导出函数,例如在开放移动联盟的OMA DRM规范中定义的函数KDF(OMA-TS-DRM-DRM-V2_0_2-20080723-A,section 7.1.2 KDF)以及类似的函数。

取代每b位密钥发送和接收密钥调和数据,密钥调和单元还可以被配置成在组装的大共享密钥上生成密钥调和数据,这可能甚至是在如KDF那样的密钥调和算法之后。在这种情况下,密钥调和单元同时调适所有小密钥,直到找到满足密钥调和数据的大密钥为止。虽然同时改变多个小密钥是多得多的工作,但是在大密钥上生成密钥调和数据也安全得多,因为更少直接信息可用于小密钥。

图3进一步示出了第一网络设备300中的可选密码单元345。密码单元345被配置成使用共享密钥。举例来说,密码单元345可以是被配置用于利用共享对称密钥对电子消息进行加密的加密单元。举例来说,密码单元345可以是被配置用于利用共享对称密钥对电子消息进行解密的解密单元。

图4是类似的密钥共享系统102的示意性框图。除了网络设备从个性化设备110接收其身份号之外,系统102与系统100相同。网络设备随后通过发送其身份号向配置服务器200和201登记。即使是设备360也无法获得在设备300与350之间共享的密钥。

个性化设备110可以分配也被用于其他目的的身份号。举例来说,个性化设备110可以分配网络地址,比如MAC地址。网络地址被网络节点使用来把网络通信量从第二网络节点路由到其自身。然而,网络地址也可以兼作身份号。在这种情况下,网络节点使其网络地址可用于系统200和201并且接收单变量私有密钥多项式,所述单变量私有密钥多项式允许网络节点使用其网络地址作为身份号进行加密通信。优选的是,身份号具有完全熵,也就是B位的熵。然而,当这无法实现时,优选的是在把所述数字用作身份号之前执行熵平滑化函数,例如散列函数。

个性化设备110可以通过避免接近的(即共享许多或所有最高有效位)身份号来生成身份号以提高系统的安全性。举例来说,服务器110可以随机生成身份号,例如真或伪随机。将预定数目的随机位附加到身份号也是足够的,例如10位。身份号可以具有形式A1||A2,其中A1不是随机的,例如序列号、网络地址等等,并且其中A2是随机的。A2可以由随机数生成器生成。A2还可以通过对A1进行散列运算而生成。如果使用带密钥的散列运算,例如HMAC,则对于无法访问所述密钥的各方来说,A2与随机是不可区分的。密钥可以由服务器110生成和存储。

服务器110可以被包括在配置服务器之一中,例如包括在系统200中,例如合并在网络管理器230中。

典型地,设备200、201、202和300、350、360和110中的每一个包括微处理器(未示出),其执行存储在设备处的适当的软件;举例来说,该软件可能已被下载并且/或者存储在相应的存储器中,例如诸如RAM之类的易失性存储器或者诸如闪存之类的非易失性存储器(未示出)。该设备也可以配备有微处理器和存储器(未示出)。可替换地,该设备可以完全地或部分地在可编程逻辑中实现,例如实现为现场可编程门阵列(FPGA)。该设备可以完全地或部分地被实现为所谓的专用集成电路(ASIC),即针对其特定用途定制的集成电路(IC)。

图6是集成电路400的示意性框图。集成电路400包括处理器420、存储器430以及I/O单元440。集成电路400的这些单元可以通过互连410(比如总线)在彼此之间进行通信。处理器420被配置成执行存储在存储器430中的软件,以便执行本文所描述的方法,例如用以配置设备的方法或者用以确定共享密钥的方法。通过这种方式,集成电路400可以被配置为配置服务器200或者被配置为网络设备,比如第一网络设备300;存储器430的一部分可以按照要求存储公共全局约简整数、双变量多项式的第一私有集合、约简整数的第二私有集合、身份号、明文消息以及/或者经加密的消息。

I/O单元440可以被用来与诸如设备200或300之类的其他设备进行通信,以便例如接收密钥数据(比如双变量多项式的第一私有集合252)并且可能还有相关联的参数(比如尺寸、次数、模量等等),或者发送和接收经加密和/或经认证的消息。I/O单元440可以包括用于无线通信的天线。I/O单元440可以包括用于有线通信的电气接口。

集成电路400可以被集成在计算机、移动通信设备(比如移动电话)等等中。集成电路400还可以被集成在照明设备中,例如与LED设备布置在一起。举例来说,被配置为网络设备并且与诸如LED之类的照明单元布置在一起的集成电路400可以接收利用共享对称密钥加密的命令。

(例如合并在照明设备中的)多个网络设备可以形成经加密的网络的节点,其中使用节点之间的共享密钥对链接进行加密。

集成电路400可以被集成在期望快速对称密钥协商的其他设备中。集成电路400可以被集成在支付系统中。集成电路400可以被集成在汽车中。多辆这样的汽车可以被布置用于车对车通信,其中使用共享密钥来加密和/或认证车对车消息。

虽然多项式操纵可以由处理器420按照存储在存储器430中的多项式操纵软件的指令来执行,但是如果集成电路400配置有可选的计算单元450,则密钥生成的任务以及计算单变量多项式是更快的。在该实施例中,计算单元450是用于执行替换和约简运算的硬件单元。

典型地,设备200和300中的每一个包括微处理器(未示出),其执行存储在设备200和300处的适当的软件;举例来说,该软件可能已被下载并且/或者存储在相应的存储器中,例如诸如RAM之类的易失性存储器或者诸如闪存之类的非易失性存储器(未示出)。可替换地,设备200和300可以完全地或部分地实现在可编程逻辑中,例如实现为现场可编程门阵列(FPGA)。

图5作为流程图示意性地示出确定与多个网络设备中任何一个共享的密钥的方法500的实施例的一个示例。该方法可以例如通过由300、350和360中任何一个执行。该方法包括:

存储510第一网络设备身份号(310,A),

从多个配置服务器中至少两个不同的配置服务器接收520多个局部密钥材料,

获得530所述多个网络设备中的第二网络设备的第二网络设备身份号(355,B),

向第二网络设备提供540第一网络设备身份号,

从第一网络设备的多个局部密钥材料中至少两个和第二网络设备身份号导出550共享密钥,该共享密钥在第一与第二网络设备之间共享。

如对本领域技术人员而言将显然的是,执行所述方法的许多不同方式是可能的。举例来说,步骤的顺序可以改变,或者可以并行地执行一些步骤。此外,在各个步骤之间可以插入其他方法步骤。所插入的步骤可以表示比如本文所描述的方法的细化,或者可以与该方法无关。

根据一个实施例的方法可以使用软件执行,所述软件包括用于使得处理器系统执行方法500或600的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以被存储在适当的存储介质中,比如硬盘、软盘、存储器等等。软件可以作为信号沿着线缆或通过无线方式或者使用数据网络(例如因特网)来发送。可以使软件可用于下载和/或在服务器上远程使用。可以使用位流来执行方法,所述位流被布置成配置例如现场可编程门阵列(FPGA)之类的可编程逻辑以执行方法。

应当领会,本发明还扩展到计算机程序,特别是适于将本发明付诸实践的载体上或载体中的计算机程序。该程序可以是源代码、目标代码、比如部分编译形式的代码中间源和目标代码的形式,或者适用于根据一个实施例的方法的实现方式的任何其他形式。涉及计算机程序产品的一个实施例包括对应于至少一种所阐述的方法的每一个处理步骤的计算机可执行指令。这些指令可以被细分成子例程并且/或者存储在可以静态或动态链接的一个或更多文件中。涉及计算机程序产品的另一个实施例包括对应于至少一种所阐述的系统和/或产品的每一个构件的计算机可执行指令。

应当注意,前面提到的实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多可替换实施例。

在权利要求书中,置于括号之间的任何附图标记不应当被解释为限制权利要求。动词“包括”及其词形变化的使用并不排除权利要求中所陈述的元件或步骤之外的其他元件或步骤的存在。元件之前的冠词“一”并不排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件来实现,并且借助于适当编程的计算机来实现。在列举若干构件的设备权利要求中,这些构件当中的若干项可以由同一个硬件项体现。在互不相同的从属权利要求中叙述某些措施的起码事实并不指示不能使用这些措施的组合来获益。

在权利要求书中,括号中的参考标记指的是实施例的附图中的附图标记或者实施例的公式,从而提高了权利要求的可理解性。这些参考标记不应当被解释为限制权利要求。

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