基于模板的Ad-hoc组密钥设定方法

申请号 CN201510025815.X 申请日 2015-01-19 公开(公告)号 CN104486760A 公开(公告)日 2015-04-01
申请人 南京大学; 发明人 刘向阳; 梁小江; 杨博;
摘要 本 发明 提供一种基于模板的Ad-hoc组密钥设定方法,在部署前进行 节点 的逻辑层次划分,再依据逻辑层次划分进行密钥分配,然后采用对称密钥分配协议设定组密钥。本发明能够安全高效地在动态Ad-hoc网络中设定组密钥。
权利要求

1.一种基于模板的Ad-hoc组密钥设定方法,其特征在于,在部署前进行节点的逻辑层次划分,再依据逻辑层次划分进行密钥分配,然后采用对称密钥分配协议设定组密钥。
2.根据权利要求1所述的基于模板的Ad-hoc组密钥设定方法,其特征在于,所述逻辑层次划分为:假设有n个节点,记为S={U0,U1,U2,…,Un-1},将S划分成大小相等的两半S1,S2(|S1|=|S2|=n/2),称S1与S2位于同一层,且它们互为相邻组,然后按同样的方式将S1划分成S11,S12,将S2划分成S21,S22…如此递归划分,直到每个部分只包含一个节点为止;以这样的方式划分节点,得到一个类似二叉树的节点层次结构。
3.根据权利要求1所述的基于模板的Ad-hoc组密钥设定方法,其特征在于,所述密钥分配具体为:假设有X和Y两个节点组位于同一层,且互为相邻组,X中的节点作为发送者,Y中有n个节点;发送者选择两个随机数Sf,Sr,然后用这两个随机数分别产生两个哈
2 n 2 n
希链,h(Sf),h(Sf)…h(Sf)称为前向哈希链,h(Sr),h(Sr)…h(Sr)称为反向哈希链;每i
个接收节点Yi将会收到两个哈希值,即从前向哈希链中得到h(Sf),从反向哈希链中得到n+1-i
h (Sr);基于哈希链的性质,只有Yi能同时拥有这两个哈希值,Y中的其他节点不可能同时拥有,也不能同时产生这两个哈希值,即这两个哈希值将Yi与Y中的其他节点区分开来。

说明书全文

基于模板的Ad-hoc组密钥设定方法

技术领域

[0001] 本发明涉及无线Ad-hoc网络,具体涉及一种基于模板的Ad-hoc组密钥设定方法。

背景技术

[0002] 已经有大量工作对如何在ad-hoc网络中进行安全组通讯进行了研究,广义上这些现有工作可以分为三种类型:会议密钥协商,集中式组管理,分布式组密钥设定。在会议密钥协商协议中,每个组成员贡献部分密钥用于产生组密钥。这些协议的安全性很好,而且允许任意大小的动态群组。然而,由于所有的组成员都需要参与到组密钥的产生过程,这导致了大量的通信开销,这些协议即使对中等规模大小的群组也不具有很好的扩展性。
[0003] 集中式组管理协议,假设具有一个中心管理员来辅助网络中群组的形成及负责维护动态群组的安全,而中心节点的存在很容易造成单点失效(即过度依赖于中心节点,当中心节点不可用时,整个机制将失效)。当中,有些协议维护了一个组成员的物理多播树,使用公钥证书来设定组密钥。然而,这是一个开销很大的方法,因为数据要在每个连接上进行加密。还有部分协议,它们考虑了在定义良好的地理区域内进行动态ad-hoc组管理的问题,这份工作虽然允许任意的节点组成一个群组,但仍然需要组控制者来设立组密钥。
[0004] 在分布式组密钥设定方面,考虑了动态群组的形成及预分配密钥用于实现组密钥设定。他们假设在部署之前,节点被放置在随机的组中。在运行时节点相互协作来产生组密钥。然而,这个方法是低效的,因为它需要来自邻居节点的协助,而邻居节点的相互协作会产生大量通信开销,因此,也不能支持任意大小的群组。
[0005] 现有技术在设定动态Ad-hoc网络的组密钥时的主要缺点就是开销过大,需要中心管理者的参与或是邻居节点的协作而产生大量通信开销,不能适用于任意规模的网络,并且不能很好的解决节点共谋的问题。因此,要解决的问题是如何安全高效地在动态Ad-hoc网络中设定组密钥。

发明内容

[0006] 本发明针对上述现有技术存在的问题作出改进,即本发明要解决的技术问题是提供一种基于模板的Ad-hoc组密钥设定方法,该方法能够安全高效地在动态Ad-hoc网络中设定组密钥。
[0007] 为了解决上述技术问题,本发明提供了如下的技术方案:
[0008] 一种基于模板的Ad-hoc组密钥设定方法,在部署前进行节点的逻辑层次划分,再依据逻辑层次划分进行密钥分配,然后采用对称密钥分配协议设定组密钥。
[0009] 逻辑层次划分具体为:假设有n个节点,记为S={U0,U1,U2,…,Un-1}。将S划分成大小相等的两半S1,S2(|S1|=|S2|=n/2),我们称S1与S2位于同一层,且它们互为相邻组。接下来,我们按同样的方式将S1划分成S11,S12,将S2划分成S21,S22…如此递归划分,直到每个部分只包含一个节点为止。以这样的方式划分节点,我们得到一个类似二叉树的节点层次结构。
[0010] 密钥分配具体为:假设有X和Y两个节点组,它们位于同一层,且互为相邻组,X中的节点作为发送者,Y中有n个节点。发送者选择两个随机数Sf,Sr,然后用这两个随机数2 n 2 n
分别产生两个哈希链,h(Sf),h(Sf)…h(Sf)称为前向哈希链,h(Sr),h(Sr)…h(Sr)称为i
反向哈希链。然后,每个接收节点Yi将会收到两个哈希值,即从前向哈希链中得到h(Sf),n+1-i
从反向哈希链中得到h (Sr)。基于哈希链的性质,只有Yi能同时拥有这两个哈希值,Y中的其他节点不可能同时拥有,也不能同时产生这两个哈希值。因此,这两个哈希值将Yi与Y中的其他节点区分开来。由于不需要动态组管理者的参与,采用对称密钥分配协议实现;适用于任意大小的网络规模和任意大小的群组,
[0011] 本发明的有益效果是高效,在进行动态Ad-hoc网络的组密钥设定时开销很低。这是因为本发明方法不需要动态组管理者的参与,采用对称密钥分配协议实现。此外,本发明方法可以适用于任意大小的网络规模和任意大小的群组,这是由于我们采用了密钥预分配方式,并且将节点组成一个逻辑层次划分的结果。同时,本发明方法具有良好的抗节点共谋特性,这是由于我们采用了节点划分的随机重组方案,打乱了节点间的密钥共享模式,增加了节点共谋攻击的难度,达到了降低共谋攻击的影响。附图说明
[0012] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0013] 图1是本发明n=8时的一个节点划分示例;
[0014] 图2是本发明单播通信模板;
[0015] 图3是本发明基于哈希链的密钥分配;
[0016] 图4是本发双重哈希链密钥分配示意图;
[0017] 图5是子集密钥分配方案;
[0018] 图6抗共谋方案示例。

具体实施方式

[0019] 以下结合附图和具体实施例对本发明作进一步详细说明。
[0020] 如图1-6所示,本发明公开一种基于模板的Ad-hoc组密钥设定方法,在部署前进行节点的逻辑层次划分,再依据逻辑层次划分进行密钥分配,然后采用对称密钥分配协议设定组密钥。
[0021] 逻辑层次划分具体为:假设有n个节点,记为S={U0,U1,U2,…,Un-1}。将S划分成大小相等的两半S1,S2(|S1|=|S2|=n/2),我们称S1与S2位于同一层,且它们互为相邻组。接下来,我们按同样的方式将S1划分成S11,S12,将S2划分成S21,S22…如此递归划分,直到每个部分只包含一个节点为止。以这样的方式划分节点,我们得到一个类似二叉树的节点层次结构。
[0022] 密钥分配具体为:假设有X和Y两个节点组,它们位于同一层,且互为相邻组,X中的节点作为发送者,Y中有n个节点。发送者选择两个随机数Sf,Sr,然后用这两个随机数2 n 2 n
分别产生两个哈希链,h(Sf),h(Sf)…h(Sf)称为前向哈希链,h(Sr),h(Sr)…h(Sr)称为i
反向哈希链。然后,每个接收节点Yi将会收到两个哈希值,即从前向哈希链中得到h(Sf),n+1-i
从反向哈希链中得到h (Sr)。基于哈希链的性质,只有Yi能同时拥有这两个哈希值,Y中的其他节点不可能同时拥有,也不能同时产生这两个哈希值。因此,这两个哈希值将Yi与Y中的其他节点区分开来。
[0023] 下面结合两个较佳的实施例进一步分析。
[0024] 实施例一:
[0025] 第一阶段节点的逻辑层次划分
[0026] 假设有n个节点,记为S={U0,U1,U2,…,Un-1}。将S划分成大小相等的两半S1,S2(|S1|=|S2|=n/2),我们称S1与S2位于同一层,且它们互为相邻组。接下来,我们按同样的方式将S1划分成S11,S12,将S2划分成S21,S22…如此递归划分,直到每个部分只包含一个节点为止。以这样的方式划分节点,我们得到一个类似二叉树的节点层次结构。
[0027] 如图1,展示了n=8时的一个节点划分示例。
[0028] 第二阶段密钥分配
[0029] 假设有X和Y两个节点组,它们位于同一层,且互为相邻组,X中的节点作为发送者,Y中有n个节点。发送者选择两个随机数Sf,Sr,然后用这两个随机数分别产生两个哈2 n 2 n
希链,h(Sf),h(Sf)…h(Sf)称为前向哈希链,h(Sr),h(Sr)…h(Sr)称为反向哈希链。然i
后,每个接收节点Yi将会收到两个哈希值,即从前向哈希链中得到h(Sf),从反向哈希链中n+1-i
得到h (Sr)。基于哈希链的性质,只有Yi能同时拥有这两个哈希值,Y中的其他节点不可能同时拥有,也不能同时产生这两个哈希值。因此,这两个哈希值将Yi与Y中的其他节点区分开来。
[0030] 如图2所示,R1,R2,R3,R4分别从S的前向哈希链与反向哈希链中得到两个哈希3 2
值,如R3得到h(Sf),h(Sr),它所拥有的两个哈希值与其他节点均不同。
[0031] 同理,如图3-4所示,把Y组作为发送节点所在组,X作为接收节点组,应用相同的分配机制,我们可以为X组的节点分配密钥。这样,我们完成了在互为相邻组之间的节点的密钥分配。
[0032] 在每一层的相邻组之间我们都按照上述方式进行密钥分配,最终,我们实现了在节点逻辑层次结构上的密钥分配。
[0033] 第三阶段组密钥设定
[0034] 现在,我们将说明如何得到S中的发送者(如S1)在3个不同的组成员实例中实现安全的组密钥设定。
[0035] 在第一种组成员实例中,组成员仅有R中的一个节点,比如R1(S1->R1)。
[0036] 那么发送者S1产生密钥h(Sf),h6(Sr),并结合从R组得到的密钥h(Tf),h6(Tr),6 6
继而产生会话密钥的加密密钥Tk:h(Tf)⊕h(Tr)⊕h(Sf)XOR h(Sr),然后再使用Tk来传送组密钥Kg。
[0037] 这里产生的Tk只有S1和R1知道,其他S和R中的节点均不知道。接下来为了产生MAC签名密钥,S1组合它从R中得到的密钥值和S分配给R1的密钥值得到MAC密钥6 6 6
h(Tf)⊕h(Sr)⊕h(Sf),h(Tr)⊕h(Sf)⊕h(Sr)。然后用这两个密钥产生HMAC签名。
这对于认证来说是非常重要的一步,由于单向哈希链的本质特性,S中的其他节点也可以产生由S1产生的哈希值,但与此同时,S中的其他节点不能知道S1从R组得到的哈希值。因而这种情况下,设定组密钥的开销为一次加密,两个签名及一个消息传送。
[0038] 在第二种组成员实例中,R中的若干个节点组成一个群组,例如,R1,R2,R3作为群组成员(S1->R1,R2,R3)。
[0039] 此时,为了产生会话密钥的加密密钥Tk,发送节点按如下方式操作。由于发送者S1知道这些接收者的逻辑标识,而这些接收者所知道的密钥标识对于S1来说也是可知的。由于节点的标识符是连续的,S1能确定此时所有的接收者都能知道或可以产生3 6 5 6
h(Sf),h(Sr)。比如,R2知道h(Sr)并且能够产生h(Sr),其他节点也类似。因此,发送者S1就把这些接收者知道的共同密钥与它自己从R组得到的密钥组合起来产生会话密钥
3 6 6
的加密密钥Tk:h(Sf)⊕h(Sr)⊕h(Tf)⊕h(Tr)。接下来,消息认证的过程与前面的组成员实例类似,即发送者S1组合用于产生加密密钥的那些密钥及它从R中得到的每个密钥用于产生MAC密钥:
[0040] h(Tf)⊕h3(Sf)⊕h6(Sr),h6(Tr)⊕h3(Sf)⊕h6(Sr)。因此,设定组密钥的开销为一次加密,两个签名及一次消息传送。
[0041] 第三种组成员实例
[0042] 情形1:R中的所有节点都是组成员(S1->R1,R2,R3,R4,R5,R6)。
[0043] 对于这种情形,发送者S1通过组合以下两种类型的密钥来产生会话密钥的加密密钥Tk:(a)一个能够被所有R中的节点从它们预先加载的密钥中产生的密钥(b)S1从R中得到的密钥。我们注意到,在这个例子中,R中的所有节点都可以从它们得到的密钥中产6 6 6
生这个密钥:h(Sf),h(Sr)。因此,S1产生会话密钥的加密密钥Tk如下:Tk=h(Sf)⊕h
6 6
(Sr)⊕h(Tf)⊕h(Tr),然后再使用Tk来传送组密钥Kg。接下来,为了产生这个消息的签
6 6 6 6 6
名,与前面的情况相同,S1使用h(Sf)⊕h(Sr)⊕h(Tf)和h(Sf)⊕h(Sr)⊕h(Tr)作为签名密钥。因此,设定组密钥的开销为一次加密,两个签名和一个消息传送。
[0044] 情形2:S中的所有节点都是组成员(S1->S2,S3,S4,S5,S6)。
[0045] 这种情况下,S1组合它所在组的主密钥产生会话的加密密钥Tk:Sf⊕Sr.Sf与Sr对于S1所在组的成员都是已知的,而由于单向哈希链的性质,R组的成员无法得知Sf与Sr。
[0046] 至于签名MAC,S1将根据节点的逻辑层次划分,依次向下进行发送节点与相邻节点组之间的认证,与情形1的认证过程相同。
[0047] 最后,使用前面章节提及的分解技术及组合上述3中组成员实例,可以实现为任意的动态ad-hoc群组进行组密钥的设定。
[0048] 在该分配中,每个节点存储的密钥总数分析如下:在每一层,相对于其邻居组,每个节点需要存储2个随机种子,并且会从邻居组中收到2个哈希值,由于n个节点共有logn层,因而每个节点存储的密钥总数为4logn。
[0049] 实施例二:密钥子集分配方案:
[0050] 如图5所示,密钥子集分配方式是一个增强版本,现有技术中的基本分配方式考虑的是一个发送者和一组接收者,并且只考虑了发送节点的认证。发送者选择一个不同密钥数量为K的密钥池,然后从中选择一个大小为L的唯一子集分配给每个接收者,我们在前面的模板上实例化这个基本机制用于组密钥的设定。现有技术中指出,对于大小为n的组,发送者仅需要维护K=logn+1/2loglogn+1个密钥即可,而每个接收者仅需要持有|K|/2个密钥。
[0051] 假设节点仍按前面提及的划分方式进行逻辑层次划分。
[0052] 现在,考虑如图1所示的两个组S和R。S组的每个节点拥有一个密钥池{K1,K2,K3,K4,s},R组的每个节点拥有一个密钥池{C1,C2,C3,C4,r},随机数s和r用于将密钥分配给邻居组的节点时对密钥进行盲化处理。为了给R组的节点加载密钥,管理员首先用S组拥有的密钥产生盲密钥值:hKi=HMAC(Ki,s) HMAC为安全的单向哈希函数。R组的每个节点会收到两个密钥集合:一个密钥集合用于保障点对点的安全通信,另一个密钥集合用于保障安全的组通信。为了保证安全的点对点通信,每个节点收到一个盲密钥子集,比如,R1收到hK1,hK2。这样的分配可以保证这两个密钥的组合只有R1和S组中的所有节点知道,而R组中的其他节点是不知道的。为了保证安全的组通信,R1收到一个这样的密钥,它由所有不在其收到的密钥子集中的其他密钥的异或得到,比如,R1接收到hK3⊕hK4。这样的分配使得R1可以按如下的方式产生一个共享组密钥:把hC1⊕hC2⊕hC3⊕hC4这个值与从S组中得到密钥hK1,hK2组合起来。R1可以用这个密钥给S中的所有节点发送一个广播消息。而且,根据异或的性质,R中的所有节点都可以用它们各自的密钥产生这个组密钥。现在我们来说明这个密钥分配方式是如何用于在两个组之间设定组密钥。作为例子,假设有两个组S和R,我们让S1∈S表示某个群组的发送者,然后选择3个不同组成员实例来进行说明。
[0053] 基于上面的密钥分配结果,我们可得到如下的组成员实例。
[0054] 1)在第一个组成员实例中,只有R组中的一个节点作为组成员(S1->R1)。此时,S1用密钥hC1⊕hC2(这个密钥对R中的节点来说是已知的)及密钥hK1⊕hK2(这个密钥是被加载进R中的某个节点的)的组合来产生唯一的会话密钥的加密密钥:Tk=hC1⊕hC2⊕hK1⊕hK2。接着,S1产生一个会话密钥Kg,然后使用某种对称加密算法ENC(如AES)用Tk加密Kg,再加上必要的元数据后把加密消息ENC(Tk,Kg)发送给R1。此外,使用密钥Tk,S1可以按如下的方式增加用于认证该消息的认证码:
[0055] HMAC(Tk,Kg)。带有认证的组密钥设定的开销为:一次加密,一次签名及传送一个消息。
[0056] 2)在第二个组成员实例中,R组的若干个节点成为组成员,比如,选择R4,R5,R6作为组成员(S1->R4,R5,R6)。为了设定组密钥,S1首先确定被所有组成员共享的密钥的最小集合,如在文献(C.K.Wong,M.Gouda,and S.S.Lam,“Secure group communications using key graphs,”IEEE/ACM Transactions on Networking,2000)中指出的那样,这个问题也被成为密钥覆盖问题,也可以进一步映射成集合覆盖问题,而集合覆盖问题是NP-complete问题。我们按如下的带贪心策略的启发式方法来解决这个问题:我们先创建一个密钥的列表,对于每个密钥,我们列出共享该密钥的节点,然后我们选择那些被最多组成员共享的密钥。在这种情况下,hK4被R4,R5,R6共享,并且R中的其他节点不知道该密钥。因此,S1可以产生会话密钥的加密密钥Tk:hK4⊕hC1⊕hC2,然后使用Tk来传送组密钥Kg。至于签名,发送者S1需要产生多个MACs,因为对于每个接收者来说,能独立的验证该消息的来源是非常重要的。例如,如果用密钥hK4来对消息进行签名,那就无法区分S1和其他接收者,因为此时任何一个参与者都可以产生该签名。因此,我们对发送者采用文献(S.S.Kulkarni,B.Bezawada,and M.Gouda,“Optimal key distribution for secure communication,”Department of Computer Science,Michigan State University,East Lansing,Michigan,Tech.Rep.MSU-CSE-07-189,July 2007)中提到的签名方法,即发送者使用它拥有的不同密钥对同一个消息产生多个消息认证码(multiple MACs),而每个接收者可以用自己拥有的密钥验证这些MACs中的一个子集。因此,发送者S1产生如下的MAC签名密钥用于对组密钥消息进行签名:hK1⊕hC1⊕hC2,hK2⊕hC1⊕hC2,hK3⊕hC1⊕hC2,hK4⊕hC1⊕hC2。在上述情况下,此时设定组密钥的开销为:一次加密及传送一个消息,签名的开销为O(logn|R|),也即发送者为接收者集合R所持有的密钥的数量。
[0057] 最后一种组成员实例。
[0058] 情形1:即整个R组的所有节点都是群组成员(S1–>R1,R2,R3,R4,R5,R6)。此时,发送者S1将以下密钥异或产生会话密钥的加密密钥Tk:hC3⊕hC4(从R部分得到),hK1⊕hK2⊕hK3⊕hK4(R组的所有节点都可以产生),然后再使用Tk来传送组密钥Kg。注意到,上述这些密钥的组合只有S1知道,S中的其他节点均不知道。接下来,发送者S1像组成员实例2场景中那样产生签名的消息认证码,即S1用其拥有的所有密钥来在该消息上产生HMAC签名。
[0059] 情形2:S中的所有节点都是组成员(S1->S2,S3,S4,S5,S6)。
[0060] 这种情况下,S1产生会话密钥的加密密钥Tk:K1⊕K2⊕K3⊕K4.由于K1,K2,K3,K4只有S1所在组成员可知,而由于密钥经过盲化处理,R组节点成员不能得知原来的密钥K1,K2,K3,K4。至于签名,S1根据节点的逻辑层次划分,向下依次向其相邻节点组进行认证,与情形1的过程相同。
[0061] 关于增强抗共谋的方案:
[0062] 上面所述的密钥分配协议容易受到节点共谋的攻击,即两个或更多的节点将它们所拥有的密钥聚集在一起,试图损害其他节点间的通信。因此,有必要采用抗共谋的机制用于解决这个问题并且减少共谋的影响。
[0063] 我们注意到,当每个节点和其他任意一个节点共享一个唯一的密钥时能达到最理想的抗共谋特性。在这样的密钥分配方案中,发送节点需要传送与动态ad-hoc群组大小相同的消息数量来设定群组密钥。由于我们的协议为优化这个开销提供了途径,我们现在重点关注增强其抗共谋能。我们仅考虑共谋攻击(也即内部攻击),而不是妥协攻击(也即外部攻击)。我们假设ad-hoc设备的硬件具有足够的防损害功能,敌对方不能通过收集这些设备来获取更多的信息。当发送节点使用共谋节点所具有的共谋密钥池中的密钥进行加密密钥Tk的生成时(即此时发送的消息可被共谋节点破译),我们说共谋攻击是成功的。
[0064] 在我们的协议中,密钥的脆弱性导致共谋的原因在于,分配给节点的密钥是基于一个确定性的密钥协议,而且节点的标识符也为共谋节点识别合适的目标提供了可能。因此,为了防止共谋攻击,有两个很重要的直觉:(a)给节点增加密钥(b)将这些额外的密钥进行随机化分布。基于这两个想法,我们描述了一个方法用以随机的方式给节点分配额外的密钥。这样一种密钥分配的结果在于,为了进行有效的共谋攻击,敌对方必须选择尽可能多的目标节点,而这敌对方的这些动作最终都会被其他节点侦测到。
[0065] 为了描述我们的方法,我们考虑以下两个节点组A与B,假定它们已经被上述某个密钥分配协议所保障通信安全,如图3所示,假设整个ad-hoc节点的总数为|A|+|B|=N。我们还假定,图中没有画出的所有A和B的子部分也都被我们的模板方法所保障通信安全。
现在,在正常的密钥分配中,A组会被分解成子部分而且子部分也会被保证通信安全。但是,正如前面讨论过的,这种分配方式是确定性的并且会导致更好的共谋攻击。为了防止这种情况,我们在A和B组上启动第二轮密钥分配。与原来直接分解A组的做法不同,我们现在随机地从A组选择若干个节点小组,然后与同样随机的从B组选出的相同数量的节点小组进行交换,如图3所示。例如,我们随机的从A中选择3个节点组A1,A2,A3(|A1+A2+A3|=|A|/2=N/4),即随机的从该部分选出一半的节点。类似的,我们随机的从B组选出3个节点组B1,B2,B3。现在,我们将这些选出的节点组在两个部分之间的位置互换,即把A1,A2,A3放到B中,把B1,B2,B3放到A中。接着,我们像之前那样对这两个重新排列过的组进行密钥分配。这个交换的目的在于保证原来A中的节点集合现在共享不同密钥集合,同样的结果也适用于B中的节点集合。由于节点的分配是随机的,那么敌对方选择合适的共谋节点将会变得更加困难。而且,在最顶层的密钥分配之后,我们还会继续对单个组划分成子部分,然后同样的在相邻部分之间进行节点组的交换与密钥的分配,这样递归的进行,直到最低层只包含单个的节点。
[0066] 这个分配方式现在可以保证节点是随机分布的,而且部分节点会共享额外的密钥,与原来的密钥分配相比,这些密钥会增强协议的抗共谋能力。此时节点的存储开销是原来的两倍,因为节点需要存储两轮密钥分配方式的密钥,但是在复杂度上仍然是对数多项式的复杂度。用于设定组密钥的算法除了会同时应用两个密钥分配的密钥外,其他的与之前的相同。
[0067] 综上可见,本发明是高效的,在进行动态Ad-hoc网络的组密钥设定时开销很低。这是因为本发明方法不需要动态组管理者的参与,采用对称密钥分配协议实现。此外,本发明方法可以适用于任意大小的网络规模和任意大小的群组,这是由于我们采用了密钥预分配方式,并且将节点组成一个逻辑层次划分的结果。同时,本发明方法具有良好的抗节点共谋特性,这是由于我们采用了节点划分的随机重组方案,打乱了节点间的密钥共享模式,增加了节点共谋攻击的难度,达到了降低共谋攻击的影响。
[0068] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
QQ群二维码
意见反馈