组成员对组秘密的管理转让专利

申请号 : CN201280047180.8

文献号 : CN103828289B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J.A.C.恩森A.A.M.斯塔林

申请人 : 皇家飞利浦有限公司

摘要 :

一种将新的设备(121)添加到设备组(110)的方法,其中所述设备组包括托管可信模块(151)的至少一个设备(111),所述方法包括:生成设备组中的可信模块(151,153)和设备(111,112,113,…,11N)的密钥以及新的设备(121)的密钥;将所生成的密钥分发给设备组(110)中的可信模块(151,153);将所生成的密钥分发给设备组中的设备,使得设备组中的每个设备接收除它自己的密钥之外的新的设备的密钥、设备组中的可信模块的和所有其它设备的密钥;在可信模块(151)与新的设备(121)之间建立安全认证通道(130);以及将除新的设备的密钥之外的所生成的密钥发送到新的设备(121)。

权利要求 :

1.一种用于将新的设备(121)添加到设备组(110)的方法,其中设备组(110)包括托管可信模块(151)的至少一个设备(111),并且每个设备和由设备组中的设备所托管的每个可信模块拥有用于消息的加密的设备密钥,所述方法包括:生成设备组中的一个或多个可信模块(151, 153)的设备密钥、设备组中的一个或多个设备(111, 112, 113, …, 11N)的设备密钥以及新的设备(121)的设备密钥;

将所生成的设备密钥分发给设备组(110)中的一个或多个可信模块(151, 153)中的每一个;

将所生成的设备密钥分发给设备组中的一个或多个设备中的每一个,使得设备组中的每个设备接收除它自己的设备密钥之外的新的设备的设备密钥、设备组中的一个或多个可信模块的设备密钥以及设备组中的其它设备的设备密钥;

在一个或多个可信模块(151, 153)的可信模块(151)与新的设备(121)之间建立安全认证通道(130);以及将除所述新的设备它本身的设备密钥之外的所生成的设备密钥发送到新的设备(121)。

2.根据权利要求1所述的方法,进一步包括:

通过所述安全认证通道(130)从新的设备(121)中接收由新的设备(121)所生成的任何密钥,以及将除所述设备它本身的设备密钥之外的所接收到的密钥分发给设备组(110)中的一个或多个可信模块(151, 153)和一个或多个设备(111, 112, 113, …, 11N)中的每一个。

3.根据权利要求1所述的方法,其中设备组中的所述一个或多个可信模块中的每一个的设备密钥和设备组中的所述一个或多个设备中的每一个的设备密钥通过对设备组中的可信模块和设备中的每一个的现有密钥执行单向函数而被生成。

4.根据权利要求1所述的方法,其中所有设备密钥是由一个或多个可信模块(151, 

153)的可信模块(151)生成的,并且

其中设备组中的一个或多个可信模块(151, 153)的可信模块(151)拥有设备组中的所有可信模块的设备密钥和设备组中的所有设备的设备密钥,以及其中设备组中的每个设备拥有除它自己的设备密钥之外的、设备组中的所有可信模块的设备密钥和设备组中的所有其它设备的设备密钥。

5.根据权利要求1所述的方法,其中所述新的设备的设备密钥被随机地生成。

6.根据权利要求1所述的方法,其中所有设备密钥通过在消息中使用根据设备组中的所有设备的现有设备密钥构建的密钥来加密设备密钥而被分发给设备组中的所有可信模块。

7.根据权利要求1所述的方法,其中设备密钥通过在消息中使用根据设备组中的所有非寻址设备的现有设备密钥构建的密钥来加密除所述消息意在供其使用的设备的设备密钥之外的所有设备密钥而被分发给设备组中的每个设备。

8.一种将新的设备(121, 212)添加到设备组(110)的方法,其中所述设备组包括托管可信模块(151, 251)的至少一个设备(111, 212),要被添加的新的设备(121, 212)托管可信模块(252),每个设备和由设备组中的设备所托管的每个可信模块拥有用于消息的加密的设备密钥,所述方法包括:生成设备组中的一个或多个可信模块(151, 153)的设备密钥、设备组中的一个或多个设备(111, 112, 113, …, 11N)的设备密钥、新的设备(121, 212)的设备密钥、以及由所述新的设备所托管的可信模块(252)的设备密钥;

将所生成的设备密钥分发给设备组中的一个或多个可信模块(151, 153)中的每一个;

将所生成的设备密钥分发给设备组中的一个或多个设备中的每一个,使得设备组中的每个设备接收除它自己的设备密钥之外的新的设备的设备密钥、由新的设备所托管的可信模块的设备密钥、设备组中的一个或多个可信模块的设备密钥以及设备组中的其它设备的设备密钥;

在设备组中的一个或多个可信模块(211)的可信模块(251)与由新的设备(212)所托管的可信模块(252)之间建立安全认证通道;

将所生成的设备密钥发送到由新的设备(212)所托管的可信模块(252);以及将除所述新的设备它本身的设备密钥之外的所生成的设备密钥发送到新的设备(121, 

212)。

9.根据权利要求8所述的方法,进一步包括:

通过安全认证通道(130)从由所述新的设备所托管的可信模块(252)中接收通过由所述新的设备所托管的可信模块(252)被生成的任何密钥,以及将除所述设备它本身的设备密钥之外的所接收到的密钥分发给设备组(110)中的一个或多个可信模块(151, 153)和一个或多个设备(111, 112, 113, …, 11N)中的每一个。

10.根据权利要求8所述的方法,其中设备组中的所述一个或多个可信模块中的每一个的设备密钥和设备组中的所述一个或多个设备中的每一个的设备密钥通过对设备组中的可信模块和设备中的每一个的现有密钥执行单向函数而被生成。

11.根据权利要求8所述的方法,其中所有设备密钥是由一个或多个可信模块(151, 

153)的可信模块(151)生成的,并且

其中设备组中的一个或多个可信模块(151, 153)的可信模块(151)拥有设备组中的所有可信模块的设备密钥和设备组中的所有设备的设备密钥,以及其中设备组中的每个设备拥有除它自己的设备密钥之外的、设备组中的所有可信模块的设备密钥和设备组中的所有其它设备的设备密钥。

12.根据权利要求8所述的方法,其中所述新的设备的设备密钥和由所述新的设备所托管的可信模块的设备密钥被随机地生成。

13.根据权利要求8所述的方法,其中所有设备密钥通过在消息中使用根据设备组中的所有设备的现有设备密钥构建的密钥来加密设备密钥而被分发给设备组中的所有可信模块。

14.根据权利要求8所述的方法,其中设备密钥通过在消息中使用根据设备组中的所有非寻址设备的现有设备密钥构建的密钥来加密除所述消息意在供其使用的设备的设备密钥之外的所有设备密钥而被分发给设备组中的每个设备。

15.一种将新的设备添加到设备组的方法,其中所述设备组包括n (n>0)个设备,所述设备中的至少一个托管可信模块,其中每个设备和由设备组中的设备所托管的每个可信模块拥有所述每个设备和每个可信模块能够用其加密到整个设备组或到设备组的任何子集的消息的密钥材料,使得在k-弹性方案(k>1)下仅被寻址设备能够解密所述消息,所述方法包括:针对具有至多k-1个成员的设备组的子集,其扩展有新的设备,所以针对至多k个成员设备的子集,生成每子集的密钥材料以便加密能够被除设备组的所述子集中的设备之外的并且除新的设备之外的所有设备解密的消息;

将所生成的密钥材料分发给设备组中的一个或多个可信模块;

将每子集的所生成的密钥材料分发给设备组中的不是设备组的所述子集的一部分的设备;

在所述可信模块与所述新的设备之间建立安全认证通道;以及

将除所述新的设备所属于的所述子集的密钥材料之外的所生成的设备密钥材料发送到所述新的设备。

16.根据权利要求15所述的方法,进一步包括:

通过安全认证通道从所述新的设备中接收由所述新的设备所生成的任何密钥材料,以及将所接收到的密钥材料分发给所述一个或多个可信模块中的每一个,并且将每子集的所接收到的密钥材料分发给设备组中的不是设备组的所述子集的一部分的设备。

17.一种将新的设备添加到设备组的方法,其中所述设备组包括n (n>0)个设备,所述设备中的至少一个托管可信模块,其中要被添加的所述新的设备托管可信模块,其中每个设备和由设备组中的设备所托管的每个可信模块拥有所述每个设备和每个可信模块能够用其加密到整个设备组或到设备组的任何子集的消息的密钥材料,使得在k-弹性方案(k>

1)下仅被寻址设备能够解密所述消息,所述方法包括:

针对具有至多k-1个成员的设备组的子集,其扩展有新的设备,所以针对至多k个成员设备的子集,生成每子集的新的密钥材料以便加密能够被除设备组的所述子集中的设备之外的并且除新的设备之外的所有设备解密的消息;

将所生成的密钥材料分发给设备组中的一个或多个可信模块;

将每子集的所生成的密钥材料分发给设备组中的不是设备组的所述子集的一部分的设备;

在由设备组中的设备中的至少一个所托管的可信模块与由新的设备所托管的可信模块之间建立安全认证通道;

将所生成的设备密钥材料发送到由所述新的设备所托管的可信模块;以及将除所述新的设备所属于的所述子集的密钥材料之外的所生成的密钥材料发送到所述新的设备。

18.根据权利要求17所述的方法,进一步包括:

通过安全认证通道从所述新的设备接收通过由所述新的设备所托管的可信模块被生成的任何密钥材料,以及将所接收到的密钥材料分发给所述一个或多个可信模块中的每一个,并且将每子集的所接收到的密钥材料分发给设备组中的不是设备组的所述子集的一部分的设备。

说明书 :

组成员对组秘密的管理

技术领域

[0001] 本发明涉及组秘密的管理,并且更特别地,涉及用于组成员管理组秘密的方法和系统。

背景技术

[0002] 特定实施例在这里针对一组设备的密钥管理,其包括在不要求管理秘钥并且将密钥分发给组成员的中央管理局的情况下启动组、扩展组成员关系以及减少组成员关系。特定实施例进一步允许该组设备的设备将安全消息发送到在组成员之中的设备的任何子组,其中非寻址设备不能够解密所述消息。
[0003] 消息加密方案是已知的并且可以是基于例如“零消息广播”(ZMB)或“广播加密”的;见,例如Amos Fiat和Moni Naor的Broadcast Encryption, 1993(在下文中的Fiat与Naor)。Fiat与Naor讨论了广播加密。一般而言,术语“广播加密”能够简单地意指广播的加密。然而,如由Fiat与Naor所介绍的那样,该术语具有特定含义。Fiat与Naor的“广播加密”被开发用于使得广播装置能够安全地将消息广播到设备的预定义的组的子集。该预定义的组被称作设备组(Device Group)。
[0004] Fiat与Naor的广播加密的最简单变例中的中心思想是:设备组中的每个设备拥有除它自己的设备密钥(Device Key)之外的该设备组中的所有其它设备的设备密钥。设备组还可以具有设备组密钥(Device Group Key)。要注意的是存在针对大的组的密钥管理过程,使得每个设备仅必须被发布比组大小减一少的密钥,例如2log (组大小)个密钥并且能够根据这些密钥计算被要求的所有密钥。
[0005] 当消息的广播装置想要安全地将消息发送到来自设备组的设备的子集的地址时,广播装置将被寻址设备的ID置为消息的明文部分,并且计算加密密钥,所述加密密钥是非寻址设备的所有设备密钥的函数。非寻址设备的设备密钥被使用,因为被寻址设备不具有它们自己的密钥。广播装置加密并且广播消息。设备组中的未被寻址的设备不能够解密消息,因为它们不具有它们自己的密钥。在设备组外的设备不能够解密消息,因为它们不具有非寻址设备的密钥。仅设备组中的被寻址设备能够解密消息。当然,属于该设备组的设备必须知道根据设备密钥来计算消息密钥的算法。一般而言,所述算法不必对在设备组外的其它设备保密。
[0006] 相关概念是k-弹性(resiliency)。在Krishnaram Kenthapadi 2003年11月11日的“Broadcast Encryption”中,定义k-弹性如下:
[0007] 在由n个用户的集合U构成的系统中,如果对于从用户的集合S分离的每个子集T,具有S的所有秘密的偷听者不能够获得关于为T所共有的秘密的“知识”,则广播方案对于用户的集合S而言是弹性的。我们能够考虑安全的计算定义或信息论。如果它对于大小为k的任何集合 S ⊂ U而言是弹性的,则方案是k-弹性的。
[0008] 定义k-弹性的另一方式是:如果至少k+1个成员必须共谋或者一起工作以便获得所有组秘密,则广播方案是k-弹性的。结合组的知识的这样的攻击被称作共谋攻击(collusion attack)。
[0009] 上面所描述的方案是1-弹性的。用上述定义看来是简单的,因为任何组成员能够从任何其它组成员学习到它缺失的秘密(它自己的密钥)。
[0010] 现有k-弹性广播加密方案的例子可以在Amos Fiat and Moni Naor, Broadcast Encryption, 1993以及 Krishnaram Kenthapadi, Broadcast Encryption, 2003年11月11日中被找到。
[0011] 当将成员添加到设备组时,所有旧的成员通常被发布新的组密钥或者对旧的组密钥执行单向函数,并且新的成员被发布新的密钥。要注意的是,单向函数是易于针对每个输入来计算的数学函数,但对于所述每个输入而言反函数非常难以计算。通过这样做,新的成员不能够解密发送到组的旧消息。这在实际的实施方案中可能是或者可能不是必要条件。
[0012] 将消息发送到设备组中的所有设备
[0013] 如果在设备组外的广播装置需要将消息广播到设备组中的所有设备,则以上简单的方案存在问题,因为不存在非寻址的设备,所以广播装置没有密钥来使用。在这里的解决方案将使用所有设备知道的特殊设备组密钥。可以说,这个设备组密钥是不存在的设备的设备密钥。对于k-弹性方案存在类似的解决方案。
[0014] 如果设备组的成员想要将消息发送到设备组中的所有其它设备,则它具有相同的问题。因此,附加于设备组中所有其它设备的设备密钥,每个设备同样得到设备组密钥。因此,为了将消息发送到设备组的所有成员,广播装置将使用设备组密钥。
[0015] 广播加密方案的问题是它们依靠中央管理局来分发由每个设备所要求的密钥以及管理组的成员关系。
[0016] 美国专利申请No. 61/536,761公开了一种系统,其中这样的中央管理局是不被要求的并且组设备本身能够管理设备组建立和管理,以及能够进一步管理每个设备所要求的密钥。根据这样的系统,在k-弹性方案中将新的设备添加到设备组通过在新的设备与旧的设备组的k + 1个设备之间建立安全认证通道(SAC)而被执行。要注意的是,对于k的最小允许值是1,使得用户在新的设备与至少2个其它设备之间做出连接。如果近场通信(NFC)被用于安全认证通道,则这牵涉到用新的设备“接触”旧的设备组中的诸设备中的一个并且然后接触旧的设备组中的至少一个其它设备。要注意的是,NFC是典型地要求4cm或更少的距离来发起连接的一组短程无线技术。因为所牵涉的距离是如此短,所以当通信通道被建立时设备几乎接触彼此或者实际上接触彼此。因此,在NFC中,“接触”意味着设备实际上正在接触彼此或者非常接近于彼此。

发明内容

[0017] 根据本文中所讨论的本发明的实施例,对于任何k-弹性方案,要求的安全认证通道的数目被减少至仅一个。那意味着当NFC被用于安全认证通道时,设备的用户仅“接触”设备组的一个其它设备以便将该设备添加到设备组中。
[0018] 根据本发明的实施例,可信模块被添加到至少一个设备。可信模块对于k-弹性方案来说包含至少k个设备的秘密,但优选地包含所有设备的秘密。可信模块被编程以便它将秘密提供给被允许获得那些秘密的设备。例如,可信模块不使其托管设备的秘密为其托管设备所获知,因为在广播加密中设备不被允许知道它自己的(一个或多个)密钥。那意味着,尽管可信模块确实包含至少k个设备或虚拟设备的秘密,但是这些秘密不能够被任何其它设备用在共谋攻击中。
[0019] 可信模块被装配成建立到在它被托管在里面的设备外的设备的安全认证通道。该安全认证通道便于设备密钥到其它设备的安全分发。设备密钥可以是它从其主机设备获知以及它本身为其它设备生成的设备密钥。
[0020] 根据本发明的实施例,可信模块实施微型密钥分发中心的至少一部分。
[0021] 根据本发明的实施例,可信模块理想地适于被与NFC处理器的安全模块组合。
[0022] 在一个实施例中,本发明涉及将新的设备添加到设备组的方法,其中所述设备组包括托管可信模块的至少一个设备,其中每个设备和由设备组中的设备所托管的每个可信模块拥有用于消息的加密的设备密钥,所述方法包括:生成设备组中的一个或多个可信模块的设备密钥、设备组中的一个或多个设备的设备密钥以及新的设备的设备密钥;将所生成的设备密钥分发给设备组中的一个或多个可信模块中的每一个;将所生成的设备密钥分发给设备组中的一个或多个设备中的每一个,使得设备组中的每个设备接收除它自己的设备密钥之外的新的设备的设备密钥、设备组中的一个或多个可信模块的设备密钥以及设备组中的其它设备的设备密钥;在一个或多个可信模块的可信模块与新的设备之间建立安全认证通道;以及将除新的设备它本身的设备密钥之外的所生成的设备密钥发送到新的设备。
[0023] 在另一实施例中,本发明涉及将新的设备添加到设备组的方法,其中所述设备组包括托管可信模块的至少一个设备,并且其中要被添加的所述新的设备托管可信模块,其中每个设备和由设备组中的设备所托管的每个可信模块拥有用于消息的加密的设备密钥,所述方法包括:生成设备组中的一个或多个可信模块的设备密钥、设备组中的一个或多个设备的设备密钥、新的设备的设备秘钥以及由新的设备所托管的可信模块的设备密钥;将所生成的设备密钥分发给设备组中的一个或多个可信模块中的每一个;将所生成的设备密钥分发给设备组中的一个或多个设备中的每一个,使得设备组中的每个设备接收除它自己的设备密钥之外的新的设备的设备密钥、由新的设备所托管的可信模块的设备密钥、设备组中的一个或多个可信模块的设备密钥以及设备组中的其它设备的设备密钥;在一个或多个可信模块的可信模块与由新的设备所托管的可信模块之间建立安全认证通道;将所生成的设备秘钥发送到由新的设备所托管的可信模块;以及将除新的设备它本身的设备密钥之外的所生成的设备密钥发送到新的设备。
[0024] 在另一实施例中,本发明涉及将新的设备添加到设备组的方法,其中所述设备组包括n  (n>0)个设备,所述设备中的至少一个托管可信模块,其中每个设备和由设备组中的设备所托管的每个可信模块拥有它能够用其加密到整个设备组或到设备组的任何子集的消息的密钥材料,使得在k-弹性方案(k>1)下仅被寻址设备能够解密消息,所述方法包括:针对具有至多k-1个成员的设备组的子集(扩展有新的设备,所以针对至多k个成员设备的子集)生成每子集的密钥材料以便加密能够被除设备组的子集中的设备之外的并且除新的设备之外的所有设备解密的消息;将所生成的密钥材料分发给设备组中的一个或多个可信模块;将每子集的所生成的密钥材料分发给设备组中的不是设备组的子集的一部分的设备;在可信模块与新的设备之间建立安全认证通道;以及将除新的设备所属于的子集的密钥材料之外的生成的设备密钥材料发送到新的设备。
[0025] 在另一实施例中,本发明涉及将新的设备添加到设备组的方法,其中所述设备组包括n (n>0)个设备,所述设备中的至少一个托管可信模块,其中要被添加的所述新的设备托管可信模块,其中每个设备和由设备组中的设备所托管的每个可信模块拥有它能够用其加密到整个设备组或到设备组的任何子集的消息的密钥材料,使得在k-弹性方案(k>1)下仅被寻址设备能够解密消息,所述方法包括:针对具有至多k-1个成员的设备组的子集(扩展有新的设备,所以针对至多k个成员设备的子集)生成每子集的新的密钥材料以便加密能够被除设备组的子集中的设备之外的并且除新的设备之外的所有设备解密的消息;将所生成的密钥材料分发给设备组中的一个或多个可信模块;将每子集的所生成的密钥材料分发给设备组中的不是设备组的子集的一部分的设备;在由设备组中的设备中的至少一个所托管的可信模块与由新的设备所托管的可信模块之间建立安全认证通道;将所生成的设备密钥材料发送到由新的设备所托管的可信模块;以及将除新的设备所属于的子集的密钥材料之外的所生成的密钥材料发送到新的设备。
[0026] 一般而言,本发明的各种方面可以被以在本发明的范围内可能的任何方式组合以及耦合。被认为是本发明的主题在本说明书的结束处的权利要求书中被特别指出并且被清楚地要求保护。本发明的前述和其它特征及优点从结合附图进行的以下具体实施方式中是明显的。

附图说明

[0027] 图1示出了根据本发明的实施例的当新的设备被添加到现有设备组时被形成的新的设备组。
[0028] 图2示出了根据本发明的实施例的在两个可信模块之间的安全认证通道。
[0029] 图3示出了根据本发明的实施例的在可信模块与设备之间的安全认证通道。
[0030] 图4示出了根据本发明的实施例的将设备密钥分发给其主机的可信模块。
[0031] 图5示出了根据本发明的实施例的将设备添加到设备组的流程图。
[0032] 图6示出了根据本发明的另一实施例的将设备添加到设备组的流程图。
[0033] 图7示出了根据本发明的实施例的将设备添加到设备组的配置。
[0034] 图8示出了根据本发明的另一实施例的将设备添加到设备组的配置。
[0035] 图9示出了根据本发明的另一实施例的将设备添加到设备组的配置。
[0036] 图10示出了根据本发明的另一实施例的将设备添加到设备组的配置。

具体实施方式

[0037] 根据在美国专利申请No. 61/536,761中的先前公开的系统,在k-弹性系统广播加密系统中,k + 1个安全认证通道被建立以便将设备添加到设备组。对于k-弹性系统,至少k + 1个设备集合起来以便获得设备组的所有密钥材料。最简单的广播加密方案是1-弹性,其为了让设备被添加到设备组以获得设备组的所有密钥材料要求建立2个安全认证通道。
[0038] 在本文中所公开的本发明的实施例中,在k-弹性系统广播加密系统中,当将设备添加到设备组时仅一个安全认证通道被建立。例如,建立从要被添加的设备到所述组的另一设备的安全认证通道可以使用NFC来完成,所述NFC牵涉用一个设备“接触”另一个设备。在这个实施例中,用户“接触”仅一个设备而不是两个或更多个,这对于用户来说可能有利地是更方便的和直观的。要注意的是,从设备组去除设备不要求安全认证通道。
[0039] 根据本发明的一个实施例,设备组中的设备中的至少一个托管可信模块。这个可信模块能够生成、操纵并且交换秘密,使得托管可信模块的设备不能够学习到该设备不应该知道的秘密。例如,可信模块可以托管针对托管该可信模块的设备的设备密钥,其中持有可信模块的设备可以不学习它自己的设备密钥。因此,当设备组中的设备中的至少一个托管可信模块时,即使当不存在生成并且分发密钥的外部方时,新的设备也能够通过与可信模块交互而被添加到设备组。
[0040] 本文中制定的例子是针对1-弹性方案的。这些例子可以被推广到k-弹性方案。
[0041] 图1示出了根据本发明的一个实施例的、新的设备121被添加到现有设备组110。当设备被从现有设备组110添加或者去除时,新的设备组120被创建。新的设备组120也被称为下一代设备组。设备组的每一代可以具有它自己的密钥材料组。当新的设备被添加到设备组以便创建下一代设备组时,该设备组中的可信模块和设备中的一个或多个创建下一代设备组的密钥材料。因此,第j代设备组包括第j代设备密钥。
[0042] 如图1的例子中所示,新的设备121通过经由安全认证通道130与属于现有设备组的设备111的交互被添加,从而创建下一代设备组120。设备111托管可以生成设备密钥并且将其分发给设备121的可信模块151。根据本文中的实施例,为了在k-弹性广播加密系统中添加新的设备,当将设备添加到设备组时仅要求一个安全认证通道。因此,在这两个设备之中,至少已经是现有设备组的成员的设备111托管安全模块。不存在新的设备121托管可信模块的要求。同样地,在设备111、112、113、...、11N之中,可以存在多个可信模块151、153被它们在设备组中的相应设备111、113托管。然而,每个设备不都要求可信模块。当设备组的成员被从设备组去除时,可信模块不被要求。
[0043] 对于1-弹性广播加密方案,在第j代设备组的创建的末期,以下规则根据本发明的一个实施例被实施。
[0044] 规则1 被是第j代设备组的一部分的设备所托管的可信模块知道所有第j代设备密钥(既有可信模块的也有设备的)。
[0045] 规则2 第j代设备组的设备知道除它们自己的(一个或多个)设备密钥之外的所有第j代设备密钥(既有可信模块的也有设备的)。
[0046] 规则3 不是第j代设备组的一部分的设备不知道任何第j代设备密钥(既有可信模块的也有设备的)。
[0047] 规则4 被不是第j代设备组的一部分的设备所托管的可信模块不知道任何第j代设备密钥(既有可信模块的也有设备的)。
[0048] 对于k-弹性广播加密方案,设备未被允许知道与它是其成员的设备的任何子集相关联的密钥。
[0049] 为了确保在前一代设备组的设备之间交换的消息不能够被任何新近添加的设备读取,新的密钥针对下一代设备组被生成。为了能够在不用新的设备知道它自己的(一个或多个)密钥的情况下将新的设备的(一个或多个)密钥分发给前一代设备组的设备,这在设备添加过程中是同样必要的。
[0050] 下一代设备密钥可以通过对当前设备密钥使用单向函数或者通过选择随机数而被创建。选择随机数对于其中没有前一代密钥是可用的情况或者在从设备组去除设备的情况下可能是有用的。
[0051] “可信模块”根据变化实施例包括下列属性中的一个或多个。
[0052] 属性1 可信模块可以被配置成使用随机数发生器来生成并且存储秘密,诸如秘密数或秘密密钥。
[0053] 属性2 作为使用随机数发生器的替代方案,可信模块可以被配置成对秘密使用单向函数来生成该秘密的下一代版本。这个特征可能被安全考虑因素限制。
[0054] 属性3 可信模块可以被配置成使用设备组标识符、索引以及使用设备组代数(generation number)对用于操纵的秘密进行寻址。通过设备组标识符和代数,秘密被链接到特定设备组的特定代。通过索引,秘密被链接到设备、设备的集合或设备的子集。这三个数在可信模块中唯一地对秘密进行寻址。
[0055] 属性4 可信模块可以被配置成根据固定算法以及使用它已存储的秘密密钥来构建加密或解密密钥,如由它们的索引和代数所指示的。例如,可信模块可以使用对于第10代的设备组6的秘密值2和5来创建加密密钥。
[0056] 属性5 可信模块可以被配置成用构建的加密密钥来加密其秘密数中的一些并且使这个加密的值在其接口中的一个上可用。
[0057] 属性6 可信模块可以被配置用构建的解密密钥来解密它在其接口中的一个上接收到的消息并且安全地存储经解密的内容。
[0058] 属性7 如果解密的消息包含秘密,连同包含它们的索引或代数,则可信模块可以被配置成在其中这些密钥被用它们的索引和代数寻址的将来的操纵中使用这些秘密。
[0059] 属性8 可信模块可以被配置成与另一可信模块建立安全认证通道。
[0060] 属性9 可信模块可以被配置成与它被托管在里面的设备之外的不托管可信模块的设备建立安全认证通道。这意味着,托管可信模块的设备不能够读取在可信模块与不托管可信模块的另一个设备之间的业务量。
[0061] 属性10 可信模块可以被配置成通过上述安全通道转移秘密,连同转移它们的索引和代数。
[0062] 属性11 可信模块可以被配置成以这样的方式安全地将选择的一组秘密转移到其主机设备,该方式防止其主机获得其主机不被允许知道的秘密。可信模块应该确信它正在与它自己的主机设备进行通信。这可以通过例如建立到主机设备的安全认证通道而被实现。这个安全认证通道可以类似于如在属性9中所建立的与它被托管在里面的设备以外的设备的安全认证通道。主机设备可以被配置成不能够假定一个以上的身份以用于建立这个安全认证通道。
[0063] 属性12 可信模块可以被配置成从它被其被托管的设备接收密钥并且让这些密钥中的每一个链接到不同组的设备组标识符、索引以及设备组代数。
[0064] 根据一个实施例,设备具有以下属性中的一个或多个:
[0065] 属性21 如果设备托管可信模块,则它可以被配置成以这样一种方式从其可信模块接收密钥,所述方式即:对于该设备来说非常难以或者不可能假定一个以上的身份,否则设备能够用其多个身份来应用共谋攻击。
[0066] 属性22 如果设备不托管可信模块,则它可以被配置成与其它设备中的可信模块建立安全认证通道。这对于设备来说使得非常难以或者不可能假定一个以上的身份以用于建立这个安全认证通道,否则设备能够用其多个身份来应用共谋攻击。
[0067] 属性23 设备可以被配置成将它已经生成的密钥存储在它托管的可信模块中,从而将这些密钥中的每一个链接到不同组的设备组标识符、索引以及设备组代数。
[0068] 以下标记法被用在根据一些实施例的示例性场景中,其中1-弹性广播加密方案被使用。因为仅一个设备组被牵涉在以下例子中,所以为了清楚起见设备组标识符已被省略。一般而言,可信模块和设备具有针对一个以上的设备组的密钥的集合。
[0069] D(i)表示设备i。索引i是设备的标识符。索引i能够被用作在可信模块中的秘密的地址的一部分。
[0070] T(i)表示可信模块i。索引i是可信模块的标识符。索引i能够被用作在可信模块中的秘密的地址的一部分。
[0071] Kj(i)是设备i的密钥的第j代。索引i是设备的标识符并且j是代数。索引i和代数j能够被用作在可信模块中的秘密的地址的部分。
[0072] Qj(i)是可信模块i的密钥的第j代。索引i是可信模块的标识符并且j是设备组的代数。索引i和代数j能够被用作在可信模块中的秘密的地址的部分。
[0073] 图5示出了根据本发明的实施例的用于将设备添加到设备组的一般步骤。图5中所描述的步骤没有规定当将设备添加到设备组时生成下一代密钥的特定设备或可信模块。
[0074] 存在两种不同的初始情形:
[0075] (1) 第一情形是当新的设备组被创建时。这通过“集合(bring together)”两者都不是设备组的成员的两个设备来完成。两个设备中的至少一个托管可信模块。因此,设备被添加到大小为一的设备组。
[0076] (2) 第二情形是当使设备成为现有设备组的成员时。这通过“集合”新的设备和设备中的作为现有设备组的成员的一个来完成。在这两个设备之中,至少已经是现有设备组的成员的设备托管安全模块。
[0077] 短语“集合”在这里指示安全认证通道被建立了。如果两个设备都托管一个可信模块,则这个通道被建立在可信模块之间,或者在设备中的仅一个托管可信模块的情况下,这个通道被建立在可信模块与另一个设备之间。当两个NFC模块中的一个被与另一个接触时,术语“集合”受在两个NFC模块之间安全地做出连接的动作启发。
[0078] 一般而言,当将设备添加到大小为一或更大的设备组时以下过程被执行。
[0079] 在不失一般性的情况下,在这里假定D(1)是属于现有设备组并且新的设备通过其被添加的设备。D(1)托管可信模块Q(1)。
[0080] 如图5中所示,当将设备添加到设备组时执行的前两个一般过程如下:
[0081] 步骤510:下一代密钥的生成
[0082] 下一代设备密钥针对新的设备组的设备并且针对设备托管的可信模块被生成。这些能够由已经是现有设备组的一部分的设备D(1)所托管的安全模块Q(1)来生成。这是简单的密钥生成方案。
[0083] 然而,下一代密钥中的一些或全部可以由其它设备来生成,如在下面所规定的那样。如果一个或多个密钥将被其它设备生成,则一些方案被用来分发生成密钥并且确保所有密钥被生成的工作。对于这样的方案所存在的许多方法在本文中未被详细地描述。
[0084] 新的设备和已经是现有设备组的一部分的设备可以为新的设备组中的一些或所有其它设备以及为它们托管的可信模块中的一些或全部生成下一代设备密钥。然而,设备不能够为它们本身生成密钥(规则2)。因此,另一设备或可信模块为该设备生成密钥。
[0085] 由新的设备或已经是现有设备组的一部分的设备所托管的任何可信模块可以为新的设备组中的一些或所有其它设备以及为它们托管的可信模块中的一些或全部生成下一代设备密钥。
[0086] 具有前一代密钥的设备或可信模块能够使用单向函数根据这些前一代密钥生成下一代密钥。在这种情况下,拥有这些前一代密钥的设备和可信模块能够自己生成下一代密钥并且这些如此生成的下一代密钥只需要被分发给新的设备组中的不拥有前一代设备密钥的设备和可信模块。后者设备使用由生成下一代密钥的设备或可信模块所提供的密钥,并且被防止使用它们自己可能已经用随机数发生器生成的密钥。
[0087] 当先前的设备密钥不存在或者不被生成设备或可信模块知道时,随机数发生器可以被用于下一代密钥的生成。设备或可信模块中的一个使用随机数发生器来生成下一代密钥,并且将这个密钥分发给其它设备或可信模块以供它们使用。
[0088] 在下文中,生成加密密钥的方式被提到。此外,加密密钥可以使用可信模块的前一代密钥中的任一个和在下面所指示的(一个或多个)密钥的函数而被生成,因为现有设备组中的设备和可信模块中的全部都拥有这些密钥。
[0089] 步骤520:下一代密钥在现有设备组中的首次分发
[0090] 由现有设备组的设备所托管的可信模块以及现有设备组的设备能够分发它们已经针对现有设备组的特定设备生成的下一代密钥,其通过用该特定设备的前一代设备密钥来加密这个下一代密钥而实现。由现有设备组的设备所托管的所有可信模块和现有设备组的除这个密钥针对其被生成的设备之外的所有设备能够读取这个消息。因此,下一代密钥被分发给所有可信模块和除特定设备之外的设备。
[0091] 由现有设备组的设备所托管的可信模块以及现有设备组的设备能够分发它们已经针对由现有设备组的设备所托管的可信模块生成的下一代密钥,其通过用该可信模块的前一代设备密钥来加密这个下一代密钥而实现。
[0092] 在生成设备或者可信模块不具有前一代密钥的情况下,它使用它能够针对密钥的分发而建立的安全认证通道(见属性8、9、10、11、21以及22)。设备使用属性23和属性12来将它已生成的密钥转移到它托管的可信模块。
[0093] 步骤530:下一代密钥与要被添加的设备的交换
[0094] 存在这个特征的两个变例:
[0095] 变例1,要被添加的设备托管可信模块
[0096] 如图2中所示,托管可信模块252的新的设备212将被添加到包括托管可信模块251的设备211的设备组,从而创建新的设备组。可信模块251在这里被表示为Q(1)。为了交换密钥,安全认证通道230被建立在由设备212所托管的可信模块252与托管可信模块251的设备211之间。
[0097] 可信模块252通过属性12和23从设备212中接收设备212可能已生成的任何下一代密钥。使用安全认证通道230,可信模块252从设备212中接收到的任何下一代密钥和可信模块252可能已生成的任何下一代密钥被安全地发送到Q(1)。
[0098] Q(1)现在拥有新的设备组的所有下一代密钥。
[0099] 使用安全认证通道230,Q(1)将要被添加的设备212的可信模块252还不拥有的新的设备组的所有下一代密钥发送到这个可信模块252。
[0100] 如图4中所示并且往回联系图2,由要被添加的设备411 (设备212)所托管的可信模块451 (可信模块252)使用属性11和21将除这个设备411的设备密钥之外的、新的设备组的所有下一代密钥发送到它被托管在其中的设备411。在这个例子中,设备411包括设备存储器模块461来存储这些密钥。
[0101] 变例2,要被添加的设备不托管可信模块
[0102] 如图3中所示,新的设备313将被添加到包括托管可信模块351的设备311的设备组,从而创建新的设备组。可信模块351在这里被表示为Q(1)。为了交换密钥,安全认证通道330被建立在要被添加的新的设备313与托管可信模块351的设备311之间(见属性9和22)。
[0103] 使用安全认证通道330,要被添加的设备313可能已生成的下一代密钥被安全地发送到Q(1)。
[0104] Q(1)现在拥有新的设备组的所有下一代密钥。
[0105] 使用安全认证通道330, Q(1)将除这个设备313的设备密钥之外的、要被添加的设备313还不拥有的新的设备组的所有下一代密钥发送到这个设备313。
[0106] 在步骤530的末期,要被添加的设备313拥有它们被允许具有的所有下一代密钥。
[0107] 步骤540:下一代密钥在现有设备组中的第二次分发
[0108] 当在步骤530中Q(1)获得任何缺失的下一代密钥时,Q1将这些分发给现有设备组的设备和可信模块,如在步骤520中所指示的那样。
[0109] 图6图示了用于将设备添加到设备组的另一实施例。该实施例使用针对将设备添加到设备组的以下例子而被说明,其中所述设备组包括托管可信模块Q(1)的设备。例子示出了Q(1)生成下一代密钥,因此其它设备和可信模块不必分发下一代密钥的生成并且方案不被要求来协调密钥生成和分发中的其它设备活动。然而,本发明不限于这个方案。
[0110] 步骤610:下一代密钥的生成
[0111] 使用图2来说明图6的过程,可信模块251被指定为Q(1)并且为它本身、它的主机设备211 (D1)、为要被添加的设备212并且如果要被添加的设备212托管可信模块则为要被添加的设备212的可信模块252以及为现有设备组的所有设备和它们托管的可信模块生成下一代设备密钥。
[0112] 在其中现有设备组仅由D(1)和Q(1)构成的情况下,下一代密钥的生成使用随机数发生器被执行,因为Q(1)不拥有前一代密钥。
[0113] 步骤620:与要被添加的设备的安全通信
[0114] 如果要被添加的设备212托管可信模块,则安全认证通道230被建立在Q(1)与设备212的可信模块252之间,或者如果设备212不托管可信模块,则与要被添加的设备212本身建立安全认证通道230。
[0115] 步骤630:下一代密钥到要被添加的设备的分发
[0116] 如果要被添加的设备212托管可信模块,则Q(1)使用步骤620的安全认证通道230来将所有下一代密钥发送到由要被添加的设备所托管的可信模块。这个可信模块252将除设备212它本身的设备密钥之外的所有下一代密钥发送到要被添加的设备212(属性11和21)。
[0117] 当设备252不托管可信模块时,Q(1)使用步骤620的安全认证通道230来将除要被添加的设备它本身的设备密钥之外的所有下一代密钥发送到要被添加的设备(属性9和22)。
[0118] 步骤640:下一代密钥到现有设备组中的可信模块的分发
[0119] Q(1)使用根据现有设备组中的所有设备的前一代设备密钥构建的密钥来加密针对新的设备组的下一代密钥。可信模块本身的前一代密钥也可以被使用但这不是必要的。这个加密的消息被发送到现有设备组的其它设备并且可以通过或经由托管可信模块的设备被发送。在接收到这样的消息时,设备将这个消息提供给它们托管的可信模块。仅由来自现有设备组的设备所托管的可信模块能够解密这个消息并且现在拥有新的设备组的下一代设备密钥。
[0120] 步骤650:下一代密钥到现有设备组中的设备的分发
[0121] Q(1)单独地为现有设备组中的设备(包括它被托管的设备D(1))中的每一个创建消息。该消息包含除这个消息意在供其使用的设备的设备密钥之外的、新的设备组的所有第二代密钥。所使用的加密密钥是根据现有设备组的所有非寻址设备的前一代设备密钥构建的。
[0122] 其中Q(1)不具有前一代密钥的唯一情况是当现有设备组仅由D(1)构成时。在这种情况下,Q(1)必须使用属性11和21来将要被添加的设备的设备密钥提供给D(1)。
[0123] 替换地,旧的设备组中的托管可信模块的设备使用属性11和21从它们托管的可信模块中接收新的设备组的除它们本身的设备密钥之外的所有下一代密钥。
[0124] 其它分发方案也是可能的。例如,Q(1)可以单独地将下一代设备密钥中的每一个分发给现有设备组中的所有设备(包括它被托管的设备D(1))。设备密钥被用相应的前一代设备密钥加密,所以设备不能够解密它自己的密钥。然而,不过如先前讨论的那样,可信模块能够读取它们自己的密钥。
[0125] 一些制定的示例性场景
[0126] 图6中所示出的步骤610 - 650被用在这些场景中。在初始情形未被提到的情况下,来自直接在前的场景的一个被假定。
[0127] 初始情形 - 没有被形成的设备组
[0128]设备ID 可用的密钥
设备1  
可信模块1  
[0129]设备ID 可用的密钥
设备2  
可信模块2  
[0130]设备ID 可用的密钥
设备3  
可信模块3  
[0131]设备ID 可用的密钥
设备4  
可信模块4  
[0132] 例子1 - 设备2被添加到仅由设备1构成的设备组中
[0133] 例子1的情形在图7中被示出。为了清楚起见,不是现有设备组或新的设备组的一部分的设备未被示出。
[0134] 步骤610 (例子1) 下一(第一)代密钥的生成:
[0135] 可信模块1为它本身、其主机设备(D1)、为要被添加的设备并且如果要被添加的设备托管可信模块则为要被添加的设备的可信模块生成第一代设备密钥。因为它不具有前一代密钥,所以这使用随机数发生器来完成。
[0136] 可信模块的主机设备未被允许获得的密钥被一对方括弧括起。
[0137]设备ID 可用的密钥
设备1  
可信模块1 [K1(1)], K1(2), Q1(1), Q1(2)
[0138]设备ID 可用的密钥
设备2  
可信模块2  
[0139]设备ID 可用的密钥
设备3  
可信模块3  
[0140]设备ID 可用的密钥
设备4  
可信模块4  
[0141] 步骤620 (例子1) 与要被添加的设备的安全通信:
[0142] 安全认证通道被建立在可信模块1和2之间。
[0143] 步骤630 (例子1) 下一(第一)代密钥到要被添加的设备的分发:
[0144] 可信模块1将它具有的所有第一代密钥发送到可信模块2。
[0145] 可信模块2将除设备2它本身的设备密钥之外的所有第一代密钥发送到设备2。
[0146]设备ID 可用的密钥
设备1  
可信模块1 [K1(1)], K1(2), Q1(1), Q1(2)
[0147]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0148]设备ID 可用的密钥
设备3  
可信模块3  
[0149]设备ID 可用的密钥
设备4  
可信模块4  
[0150] 步骤640 (例子1) 下一(第一)代密钥到现有设备组中的可信模块的分发:
[0151] 因为可信模块1是现有设备组中的唯一可信模块,所以在这个步骤中不需要做任何事。
[0152] 步骤650 (例子1) 下一(第一)代密钥到现有设备组中的设备的分发:
[0153] 设备1是现有设备组中的唯一设备。可信模块1将除设备1它本身的设备密钥之外的所有第一代密钥提供给现有设备组中的所有设备。
[0154]设备ID 可用的密钥
设备1 K1(2), Q1(1), Q1(2)
可信模块1 [K1(1)], K1(2), Q1(1), Q1(2)
[0155]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0156]设备ID 可用的密钥
设备3  
可信模块3  
[0157]设备ID 可用的密钥
设备4  
可信模块4  
[0158] 这时候,添加过程被完成。
[0159] 能够看出,上面所列举的所有规则(规则1-4)在这个过程下被遵守。
[0160] 设备1和2现在能够使用密钥Q1(1)或Q1(2)或两者的组合来交换消息,并且SAC对于消息的安全交换来说不是需要的。两个可信模块能够读取这些消息,但那是容许的,因为一个人不能够从这些可信模块中获得除它们能够通过设计使其成为可用的信息以外的信息。
[0161] 例子2 - 设备3通过设备1被添加到设备组D1、D2,其中设备3托管可信模块[0162] 例子2的情形在图8中被示出。为了清楚起见,不是现有设备组或新的设备组的一部分的设备未被示出。
[0163] 步骤610 (例子2) 下一代密钥的生成:
[0164] 可信模块1对其所有第一代密钥进行密钥更新以便创建第二代密钥。这能够使用单向函数或者用随机数发生器来完成。
[0165] 可信模块1使用随机数发生器为设备3和可信模块3创建第二代设备密钥。
[0166] 可信模块的主机设备未被允许获得的密钥被一对方括弧括起。
[0167]
[0168]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0169]设备ID 可用的密钥
设备3  
可信模块3  
[0170]设备ID 可用的密钥
设备4  
可信模块4  
[0171] 步骤620 (例子2) 与要被添加的设备的安全通信:
[0172] 可信模块1和3建立安全认证通道。
[0173] 在设备3不托管可信模块情况下,可信模块1必须与设备3建立安全认证通道。这在下面在例子3中被制定。
[0174] 步骤630 (例子2) 下一代密钥到要被添加的设备的分发:
[0175] 可信模块1将它具有的所有第二代密钥发送到可信模块3。
[0176] 可信模块3将除设备3它本身的设备密钥之外的所有第二代密钥发送到设备3。
[0177]
[0178]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0179]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1), Q2(2), Q2(3)
可信模块3 K2(1), K2(2), [K2(3)], Q2(1), Q2(2), Q2(3)
[0180]设备ID 可用的密钥
设备4  
可信模块4  
[0181] 步骤640 (例子2) 下一代密钥到现有设备组中的可信模块的分发:
[0182] 可信模块1使用根据现有设备组中的所有设备的第一代设备密钥(但没有可信模块的那些) (在这种情况下是K1(1) 和K1(2))构建的秘钥来加密它具有的所有第二代密钥。这个加密的消息被发送(可能地经由或通过其主机设备)到所有其它设备。在接收到这样的消息时,设备将这个消息提供给它们托管的可信模块。仅由来自现有设备组的设备所托管的可信模块(在这种情况下是可信模块1和2,但1是发送者)能够解密这个消息。
[0183]
[0184]
[0185]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1), Q2(2), Q2(3)
可信模块3 K2(1), K2(2), [K2(3)], Q2(1), Q2(2), Q2(3)
[0186]设备ID 可用的密钥
设备4  
可信模块4  
[0187] 步骤650 (例子2) 下一代密钥到现有设备组中的设备的分发:
[0188] 可信模块1为现有设备组中的设备(包括它被托管的设备D(1))中的每一个(在这种情况下设备1和2)单独地创建消息。该消息包含除这个消息意在供其使用的设备的设备密钥之外的、新的设备组的所有第二代密钥。所使用的加密密钥是根据现有设备组的所有非寻址设备的前一代设备密钥构建的,所以针对设备1的消息被用K1(2)加密并且针对设备2的消息被用K1(1)加密。
[0189]
[0190]
[0191]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1), Q2(2), Q2(3)
可信模块3 K2(1), K2(2), [K2(3)], Q2(1), Q2(2), Q2(3)
[0192]设备ID 可用的密钥
设备4  
可信模块4  
[0193] 这时候,添加过程被完成。
[0194] 能够看出,上面所列举的所有规则(规则1-4)在这个过程下被遵守。
[0195] 设备1、2以及3能够使用密钥Q2(1)或Q2(2)或Q2(3)或这些的任何组合交换新的设备组中的所有设备能够读取的消息。
[0196] 设备(例如,设备1)能够防止新的设备组中的其它设备(例如设备2)通过使用已排除设备的密钥(在这个例子中K2(2))来构建用于加密这些消息的密钥来读取消息。
[0197] SAC对于上述消息交换来说不是需要的。
[0198] 例子3 - 设备3经由设备1被添加到设备组D1、D2,其中设备3不托管可信模块[0199] 例子3的情形在图9中被示出。为了清楚起见,不是现有设备组或新的设备组的一部分的设备未被示出。
[0200] 初始情形
[0201]设备ID 可用的密钥
设备1 K1(2), Q1(1), Q1(2)
可信模块1 [K1(1)], K1(2), Q1(1), Q1(2)
[0202]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0203]设备ID 可用的密钥
设备3  
可信模块3 可信模块不存在
[0204]设备ID 可用的密钥
设备4  
可信模块4  
[0205] 步骤610 (例子3) 下一代密钥的生成:
[0206] 可信模块1对其所有第一代密钥进行密钥更新以便创建第二代密钥。
[0207] 这能够使用单向函数或者用随机数发生器来完成。
[0208] 可信模块1为设备3生成第二代设备密钥。因为它不具有针对设备3的前一(第一)代密钥,所以这使用随机数发生器来完成。
[0209] 可信模块的主机设备未被允许获得的密钥被一对方括弧括起。
[0210]
[0211]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0212]设备ID 可用的密钥
设备3  
可信模块3 可信模块不存在
[0213]设备ID 可用的密钥
设备4  
可信模块4  
[0214] 步骤620 (例子3) 与要被添加的设备的安全通信:
[0215] 可信模块1与设备3建立安全认证通道。
[0216] 步骤630 (例子3) 下一代密钥到要被添加的设备的分发:
[0217] 可信模块1通过安全认证通道将除针对设备3的设备密钥之外的、它具有的所有第二代密钥发送到设备3。
[0218]
[0219]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0220]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1), Q2(2)
可信模块3 可信模块不存在
[0221]设备ID 可用的密钥
设备4  
可信模块4  
[0222] 步骤640 (例子3) 下一代密钥到现有设备组中的可信模块的分发:
[0223] 可信模块1使用根据现有设备组中的所有设备的第一代设备密钥(但不是可信模块的那些) (在这种情况下K1(1)和K1(2))构建的秘钥来加密它具有的所有第二代密钥。这个加密的消息被发送(可能地经由或通过其主机设备)到所有其它设备。在接收到这样的消息时,设备将这个消息提供给它们托管的可信模块。仅由来自现有设备组的设备所托管的可信模块(在这种情况下是可信模块1和2,但1是发送者)能够解密这个消息。
[0224]
[0225]设备ID 可用的密钥
设备2 K1(1), Q1(1), Q1(2)
可信模块2 K1(1), [K1(2)], Q1(1), Q1(2)
[0226]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1), Q2(2)
可信模块3 可信模块不存在
[0227]设备ID 可用的密钥
设备4  
可信模块4  
[0228] 步骤650 (例子3) 下一代密钥到现有设备组中的设备的分发:
[0229] 可信模块1为现有设备组中的设备(包括它被托管的设备D(1))中的每一个(在这种情况下是设备1和2)创建消息。该消息包含除这个消息意在供其使用的设备的设备密钥之外的、新的设备组的所有第二代密钥。所使用的加密密钥是根据现有设备组的所有非寻址设备的前一代设备密钥构建的,所以针对设备1的消息被用K1(2)加密并且针对设备2的消息被用K1(1)加密。
[0230]
[0231]
[0232]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1), Q2(2)
可信模块3 可信模块不存在
[0233]设备ID 可用的密钥
设备4  
可信模块4  
[0234] 这时候,添加过程被完成。
[0235] 能够看出,上面所列举的所有规则(规则1-4)在这个过程下被遵守。
[0236] 设备1、2以及3能够使用密钥Q2(1)或Q2(2)或这些的任何组合交换新的设备组中的所有设备能够读取的消息。
[0237] 设备(例如,设备1)能够防止设备组中的其它设备(例如,设备2)通过使用已排除设备的密钥(在这个例子中是K2(2))来构建用于加密这些消息的密钥来读取消息。
[0238] SAC对于上述消息交换来说不是需要的。
[0239] 例子4 - 设备3经由设备1被添加到设备组D1、D2,其中设备2和3两者都不托管可信模块
[0240] 例子4的情形在图10中被示出。为了清楚起见,不是现有设备组或新的设备组的一部分的设备未被示出。
[0241] 初始情形
[0242]设备ID 可用的密钥
设备1 K1(2), Q1(1)
可信模块1 [K1(1)], K1(2), Q1(1)
[0243]设备ID 可用的密钥
设备2 K1(1), Q1(1)
可信模块2 可信模块不存在
[0244]设备ID 可用的密钥
设备3  
可信模块3 可信模块不存在
[0245]设备ID 可用的密钥
设备4  
可信模块4  
[0246] 步骤610 (例子4) 下一代密钥的生成:
[0247] 可信模块1对其所有密钥进行密钥更新以便创建第二代密钥。这能够使用单向函数或者用随机数发生器来完成。
[0248] 可信模块1为设备3生成第二代设备密钥。因为它不具有前一(第一)代密钥,所以这使用随机数发生器来完成。
[0249] 可信模块的主机设备未被允许获得的密钥被一对方括弧括起。
[0250]
[0251]设备ID 可用的密钥
设备2 K1(1), Q1(1)
可信模块2 可信模块不存在
[0252]设备ID 可用的密钥
设备3  
可信模块3 可信模块不存在
[0253]设备ID 可用的密钥
设备4  
可信模块4  
[0254] 步骤620 (例子4) 与要被添加的设备的安全通信:
[0255] 可信模块1与设备3建立安全认证通道。
[0256] 步骤630 (例子4) 下一代密钥到要被添加的设备的分发:
[0257] 可信模块1通过安全认证通道将除针对设备3的设备密钥之外的、它具有的所有第二代密钥发送到设备3。经交换的密钥被用黄色指示。
[0258]
[0259]设备ID 可用的密钥
设备2 K1(1), Q1(1)
可信模块2 可信模块不存在
[0260]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1)
可信模块3 可信模块不存在
[0261]设备ID 可用的密钥
设备4  
可信模块4  
[0262] 步骤640 (例子4) 下一代密钥到现有设备组中的可信模块的分发:
[0263] 这个步骤在这种情况下是空的,因为现有设备组中没有其它设备托管可信模块。
[0264] 步骤650 (例子4) 下一代密钥到现有设备组中的设备的分发:
[0265] 可信模块1为现有设备组中的设备(包括它被托管的设备D(1))中的每一个(在这种情况下是设备1和2)单独地创建消息。该消息包含除这个消息意在供其使用的设备的设备密钥之外的、新的设备组的所有第二代密钥。所使用的加密密钥是根据现有设备组的所有非寻址设备的前一代设备密钥构建的,所以针对设备1的消息被用K1(2)加密并且针对设备2的消息被用K1(1)加密。
[0266]
[0267]
[0268]设备ID 可用的密钥
设备3 K2(1), K2(2), Q2(1)
可信模块3 可信模块不存在
[0269]设备ID 可用的密钥
设备4  
可信模块4  
[0270] 这时候,添加过程被完成。
[0271] 能够看出,上面所列举的所有规则(规则1-4)在这个过程下被遵守。
[0272] 设备1、2以及3能够使用密钥Q2(1)交换新的设备组中的所有设备能够读取的消息。
[0273] 设备(例如,设备1)能够防止设备组中的其它设备(例如,设备2)通过使用已排除设备的密钥(在这个例子中是K2(2))来构建用于加密这些消息的密钥来读取消息。
[0274] SAC对于上述消息交换来说不是需要的。
[0275] k-弹性方案
[0276] 以上方法还能够被用在k-弹性方案中。对于k-弹性方案,代替每设备一个密钥,密钥针对多达k个成员的大小并且包括k个成员的所有子集被生成。因为在前面部分的方法中,是特定设备组的一部分的可信模块不需要被排除于解密意在供给该设备组中的其它设备的消息之外,所以在k-弹性方案中仅设备密钥针对可信模块被生成,并且没有具有两个或更多个成员的子集被生成,所述两个或更多个成员的子集包括一个或多个可信模块。
[0277] 在前面部分的方法提到设备密钥的无论什么地方,属于所述设备是其成员的具有最大尺寸为k个成员的子集的密钥被用来创建密钥。
[0278] 设备不被允许知道其中它是其成员的任何子集的密钥(规则2的变例)。密钥的分发是这样的使得这个规则未被违反。
[0279] 在图5中所示出的用于将新的设备添加到设备组的一般步骤还能够被应用在k-弹性方案中。
[0280] 在步骤510中,新的密钥材料被可信模块按子集生成以便加密能够被除设备组的子集中的设备之外的和除新的设备之外的所有设备解密的消息。这将针对具有现有设备组的至多k–1个成员并且包括新的设备的子集被完成,所以这些是至多k个成员设备的子集。
[0281] 在步骤520中,每子集的新的密钥材料被分发给设备组中的不是设备组的子集的一部分的所有设备。
[0282] 在步骤530中,除新的设备所属于的子集的密钥材料之外,新的设备密钥材料在可信模块与新的设备之间被交换。要做到这一点,安全认证通道被首先建立。两个变例与针对1-弹性方案在上面所讨论的那些类似。
[0283] 在步骤540中,在可信模块在步骤530中获得任何缺失的新的密钥情况下,可信模块像在步骤520中所指示的那样将这些分发给设备。
[0284] 本发明适用于诸设备,诸如TV、PC监视器、(数字、家庭)音频系统、接入点、专用无线扩充口、PC。
[0285] 前面的详细描述已经阐述了本发明能够采取的许多形式中的几个。意图是,前面的详细描述被理解为本发明能够采取的选择形式的说明,而不作为对本发明的定义的限制。它仅仅是权利要求,其包括旨在限定本发明的范围的所有等同物。例如,图5和6中所图示的过程流不要求步骤被以特定顺序执行。
[0286] 最优选地是,本发明的原理被实施为硬件、固件以及软件的任何组合。而且,软件被优选地实施为在由部件或者由特定设备和/或设备的组合构成的程序存储单元或计算机可读存储介质上有形地体现的应用程序。应用程序可以被上传到包括任何适合的架构的机器上,并且被包括任何适合的架构的机器执行。优选地,机器被实施在计算机平台上,所述计算机平台具有诸如一个或多个中央处理单元(“CPU”)、存储器以及输入/输出接口之类的硬件。计算机平台还可以包括操作系统和微指令代码。本文中所描述的各种过程和功能可以是能够被CPU执行的微指令代码的一部分或应用程序的一部分或其任何组合,而无论这样的计算机或处理器是否被显式地示出。此外,各种其它外围单元可以被连接到诸如附加的数据存储单元和打印单元之类的计算机平台。