八月瓜首页 > 专利查询 > >正文

安全多对多通信的分布式组密钥管理模式

基本信息

  • 申请号 CN00810280.5 
  • 公开号 CN1363160A 
  • 申请日 2000/07/06 
  • 公开日 2002/08/07 
  • 申请人 松下电器产业株式会社  
  • 优先权日期  
  • 发明人 拉克斯米纳斯·R·东戴提 萨里特·穆克黑吉 阿谢克·塞默尔  
  • 主分类号  
  • 申请人地址 日本大阪府 
  • 分类号  
  • 专利代理机构 中国国际贸易促进委员会专利商标事务所 
  • 当前专利状态 发明专利申请公布 
  • 代理人 李德山 
  • 有效性 发明公开 
  • 法律状态
  •  

摘要

提供一个进行安全多对多通信的分组密钥管理系统(20)和方法。
系统(20)使用一个二进制分配树结构(26)。
二进制树(26)包含一个第一内部节点,第一内部节点具有一个第一分支和一个第二分支,这两个分支从属于上述第一内部节点。
每个分支均包含一个第一成员(22,22a),第一成员被分配到一个对应的叶节点上。
第一成员(22,22a)具有一个唯一二进制ID(24),上述唯一二进制ID与第一成员(22,22a)被分配到的对应叶节点相关。
第一成员(22,22a)的一个第一私有密钥(28)可以加密被发送到其它成员(22,22a)的数据。
第一成员(22,22a)与一个包括其它成员(22,22a)的密钥关联分组(33)相关。
其它成员(22,22a)具有屏蔽密钥(30)。
根据第一成员(22,22a)的第一私有密钥(28)导出的一个屏蔽密钥(30)被发送到密钥关联分组(33)。
其中第一成员(22,22a)使用从密钥关联分组(33)接收的屏蔽密钥(30)和第一私有密钥(28)计算第一内部节点的一个非屏蔽密钥。
非屏蔽密钥被用于加密数据在位于从属于第一内部节点的分支上的成员(22,22a)之间传送的数据。
展开

权利要求书


1.一个在多个成员之间提供安全通信的分布式分组密钥管理系统,其 中包括: 一个定义某个通信结构的二进制分配树,上述通信结构包含一个内 部节点,上述内部节点具有一个第一分支和一个第二分支,上述两个分 支从属于上述内部节点,上述内部节点具有一个屏蔽密钥和一个非屏蔽 密钥,各个上述分支均包含一个第一成员,上述第一成员被分配给一个 对应叶节点,上述第一成员与一个密钥关联分组相关,上述密钥关联分 组包括至少一个其它成员; 上述第一成员包含: 一个与第一成员被分配到的对应叶节点相关的唯一二进制ID; 一个用于产生内部节点屏蔽密钥的第一私有密钥;和 一个根据上述第一私有密钥导出以便和至少一个其它成员的一个屏 蔽密钥进行交换的屏蔽密钥; 其中上述第一成员使用至少一个其它成员的屏蔽密钥和第一成员第 一私有密钥计算第一内部节点的一个非屏蔽密钥,上述非屏蔽密钥被用 于加密在位于从属于第一内部节点的分支上的成员之间传送的数据。

2.如权利要求1所述的分布式分组密钥管理系统,其中上述第一成员 还包含一个产生上述第一成员第一私有密钥的私有密钥发生器。

3.如权利要求1所述的分布式分组密钥管理系统,其中上述第一成员 还包含一个确定与第一成员相关的密钥关联分组的密钥关联分组模块。

4.如权利要求1所述的分布式分组密钥管理系统,其中上述第一成员 还包含一个根据第一成员第一私有密钥产生第一成员屏蔽密钥的屏蔽密 钥模块。

5.如权利要求4所述的分布式分组密钥管理系统,其中屏蔽密钥模块 包含一个产生第一成员屏蔽密钥的单向函数。

6.如权利要求1所述的分布式分组密钥管理系统,其中第一内部节点 是一个根节点。

7.如权利要求1所述的分布式分组密钥管理系统,其中上述第一成员 还包含: 一个确定与第一成员相关的密钥关联分组的密钥关联分组模块; 一个产生第一成员第一私有密钥的私有密钥发生器;和 一个根据第一成员第一私有密钥产生第一成员屏蔽密钥的屏蔽密钥 模块。

8.如权利要求1所述的分布式分组密钥管理系统,其中上述第二分支 包含一个第一成员,上述第一成员是密钥关联分组中与第一分支第一成 员相关的一个成员;并且 第一成员还包含一个非屏蔽密钥模块,上述非屏蔽密钥模块具有一 个根据第一分支第一成员的屏蔽密钥和第二分支第一成员的屏蔽密钥确 定第一内部节点的非屏蔽密钥的混合函数,其中上述第二分支第一成员 是一个与第一分支第一成员相关的密钥关联分组成员。

9.如权利要求1所述的分布式分组密钥管理系统,其中上述第一成员 还包含: 确定与第一成员相关的密钥关联分组的密钥关联分组模块; 一个产生第一成员第一私有密钥的私有密钥发生器;和 一个屏蔽密钥模块,上述屏蔽密钥模块具有一个根据第一成员第一 私有密钥产生第一成员屏蔽密钥的单向函数;和 一个非屏蔽密钥模块,上述非屏蔽密钥模块具有一个确定第一内部 节点的非屏蔽密钥的混合函数。

10.一个在至少两个当前成员之间提供安全通信的方法,其中包括的 步骤有: 提供一个二进制树,上述二进制树具有至少一个内部节点和至少两 个叶节点,一个上述内部节点是根节点,各个上述内部节点均具有两个 从其发出的分支,一个第一分支在一个上述叶节点上结束,另一个分支 在另一个上述叶节点上结束,一个根路径从各个上述叶节点延伸到上述 根节点; 将各个上述当前成员分配到上述叶节点上,其中各个上述当前成员 均具有一个从某个叶节点延伸到上述根节点的根路径; 将一个二进制ID分配给上述内部节点和叶节点; 将一个私有密钥和一个屏蔽密钥与各个上述叶节点关联起来,其中 根据私有密钥导出屏蔽密钥; 确定一个与某个当前成员相关的密钥关联分组以便分割密钥分配任 务,密钥关联分组包含一个分组节点,上述分组节点对应于当前成员的 根路径中的各个内部节点,各个分组节点具有一个关联成员,上述当前 成员被分配到上述根路径内部节点的第一分支中的一个叶节点上,各个 关联成员被分配到上述根路径内部节点的其它分支中的一个叶节点上; 当前成员向密钥关联分组的关联成员发送一个屏蔽密钥,上述屏蔽 密钥与根路径内部节点的第一分支中的分组节点相关; 密钥关联分组的关联成员向第一成员发送一个与根路径内部节点的 其它分支中的分组节点相关联的屏蔽密钥; 根据与其它分支分组节点相关的屏蔽密钥和与第一分支分组节点相 关的屏蔽密钥确定根路径内部节点的一个非屏蔽密钥; 使用根路径内部节点屏蔽密钥加密数据;并且 在位于从属于根路径内部节点的分支上的成员之间传送加密数据。

11.如权利要求10所述的方法,其中关联一个私有密钥的步骤还包括 产生私有密钥。

12.如权利要求10所述的方法,其中关联一个私有密钥的步骤还包括 使用一个单向函数根据私有密钥产生屏蔽密钥。

13.如权利要求10所述的方法,其中发送步骤还包含使用一个安全通 道。

14.如权利要求13所述的方法,其中使用安全通道的步骤还包含使用 一个公开密钥加密当前成员的屏蔽密钥和关联成员的屏蔽密钥。

15.如权利要求10所述的方法,其中确定根路径内部节点非屏蔽密钥 的步骤还包含针对与第二分支节点相关的屏蔽密钥和与第一分支节点相 关的屏蔽密钥使用一个混合函数。

16.如权利要求10所述的方法,还包括从二进制树清除一个离开成员 的步骤。

17.如权利要求16所述的方法,其中清除步骤包含的步骤有: 更新当前成员的二进制ID; 为离开成员的一个相邻成员产生一个新私有密钥,其中相邻成员是 位置与离开成员相邻的当前成员,上述相邻成员具有一个根路径和一个 密钥关联分组,而上述密钥关联分组包含至少一个关联成员; 在相邻成员和相邻成员的密钥关联分组的关联成员之间启动一个屏 蔽密钥交换,其中相邻成员启动密钥交换;并且 确定相邻成员的根路径上的内部节点的非屏蔽密钥。

18.如权利要求10所述的方法,还包括向二进制树加入一个新成员的 步骤。

19.如权利要求18所述的方法,其中加入步骤还包括: 从新成员向上述当前成员中的一个本地成员发送一个加入请求; 批准加入请求; 将本地成员的二进制ID分割成一个第一ID和一个第二ID,其中第一 ID被分配给本地成员而第二ID被分配给新成员; 为本地成员产生一个新私有密钥; 为新成员产生一个第一私有密钥; 根据新私有密钥产生一个本地成员屏蔽密钥; 根据第一私有密钥产生一个新成员屏蔽密钥; 将新成员的屏蔽密钥与本地成员的屏蔽密钥交换; 确定一个与新成员相关的密钥关联分组以便分割密钥分配任务,新 成员密钥关联分组包含一个分组节点,上述分组节点对应于新成员的根 路径中的各个内部节点,上述新成员被分配到上述根路径内部节点的第 一分支中的一个叶节点上,上述分组节点具有一个关联成员,各个关联 成员被分配到新成员的根路径内部节点的其它分支中的一个叶节点上; 新成员向新成员密钥关联分组的关联成员发送一个屏蔽密钥,上述 屏蔽密钥与根路径内部节点的第一分支中的一个第一节点相关; 新成员密钥关联分组关联成员向新成员发送一个屏蔽密钥,上述屏 蔽密钥与根路径内部节点的其它分支中的分组节点相关;并且 根据与新成员其它分支分组节点相关的屏蔽密钥和与新成员第一分 支分组节点相关的屏蔽密钥确定新成员根路径内部节点的一个非屏蔽密 钥。

20.向一个分布式通信系统加入一个新成员以便在多个本地成员之间 进行安全通信的方法,其中包括的步骤有: 提供一个二进制树,上述二进制树具有至少一个内部节点和至少两 个叶节点,一个上述内部节点是根节点,各个上述内部节点均具有两个 从其发出的分支,一个第一分支延伸到至少一个上述叶节点上,一个第 二分支延伸到至少另一个上述叶节点上,一个根路径从各个上述叶节点 延伸到上述根节点;各个上述本地成员具有一个二进制ID并且被分配给 一个叶节点; 从一个新成员向通信系统的一个上述本地成员发送一个加入请求; 确定一个与本地成员相关的密钥关联分组以便分割密钥分配任务, 本地成员密钥关联分组包含一个分组节点,上述分组节点对应于本地成 员的根路径中的各个内部节点,上述本地成员被分配到上述根路径内部 节点的第一分支中的一个叶节点上,上述分组节点具有一个关联成员, 各个关联成员被分配到本地成员的根路径内部节点的其它分支中的一个 叶节点上; 批准加入请求; 将本地成员的二进制ID分割成一个第一ID和一个第二ID,其中第一 ID被分配给本地成员而第二ID被分配给新成员; 产生一个本地成员新私有密钥; 产生一个新成员第一私有密钥; 根据本地成员新私有密钥产生一个本地成员屏蔽密钥; 根据新成员第一私有密钥产生一个新成员屏蔽密钥; 向本地成员发送新成员屏蔽密钥; 向新成员发送本地成员屏蔽密钥; 计算本地成员根路径内部节点的屏蔽密钥和非屏蔽密钥; 向本地成员密钥关联分组关联成员发送本地成员根路径内部节点屏 蔽密钥,上述关联成员对应于分组节点,而上述分组节点对应于本地成 员根路径内部节点; 向本地成员发送对应于本地成员根路径内部节点的分组节点的一个 屏蔽密钥;并且 向新成员传递对应于本地成员根路径内部节点的分组节点屏蔽密 钥。

21.如权利要求20所述的方法,其中发送新成员屏蔽密钥的步骤还包 括向本地成员单点传送新成员的屏蔽密钥。

22.如权利要求20所述的方法,其中发送分组节点屏蔽密钥的步骤还 包括向本地成员单点传送分组节点屏蔽密钥。

23.如权利要求20所述的方法,其中上述内部节点还包含一个屏蔽密 钥,上述方法还包括的步骤有: 维护一个与内部节点屏蔽密钥相关的版本; 接收内部节点的屏蔽密钥; 确定是否已经接收内部节点屏蔽密钥的不止一个版本;并且 使用一个混合函数混合内部节点屏蔽密钥的各个版本。

24.如权利要求20所述的方法,其中各个上述内部节点还包含一个旧 屏蔽密钥,上述方法还包括的步骤有: 接收一个对应于某个内部节点的新屏蔽密钥;并且 对旧屏蔽密钥和新屏蔽密钥使用一个混合函数。

25.如权利要求20所述的方法,其中二进制ID包含一个长度,上述 方法还包括的步骤有: 确定二进制ID具有最短长度的当前成员;其中具有最短长度二进制ID 的当前成员的二进制ID被分割成第一ID和第二ID。

26.将一个第一安全通信系统与一个第二安全通信系统合并的方法, 各个上述通信系统包含具有一个二进制ID的多个成员,各个上述通信系 统具有一个二进制树结构,上述二进制树结构具有一个根节点,上述根 节点具有一个屏蔽密钥,其中包括的步骤有: 发送一个将第一通信系统与第二通信系统合并的请求; 批准合并请求; 使用一个混合函数将第一通信系统根节点的屏蔽密钥与第二通信系 统根节点的屏蔽密钥混合; 向上述第一通信系统多个成员的二进制ID附加一个1;并且 向第二通信系统各个成员的二进制ID附加一个0。

27.一个在多个成员之间提供安全通信的分布式分组密钥管理系统, 其中包括: 至少一个发送方二进制分配树以便构成一个发送方分组; 上述至少一个发送方二进制分配树定义一个通信结构,上述通信结 构具有一个发送方内部节点,上述发送方内部节点具有一个第一分支和 一个第二分支,上述两个分支从属于上述发送方内部节点,各个上述分 支均包含一个第一成员,上述第一成员被分配给一个对应叶节点,上述 第一成员与一个密钥关联分组相关,上述密钥关联分组包括至少一个其 它成员; 上述发送方分组第一成员包含: 一个与发送方分组第一成员被分配到的对应叶节点相关的唯一二进 制ID; 一个第一私有密钥;和 一个根据上述第一私有密钥导出以便和其它发送方分组成员的一个 屏蔽密钥进行交换的屏蔽密钥; 其中上述发送方分组第一成员使用至少一个其它发送方分组成员的 屏蔽密钥和第一私有密钥计算发送方内部节点的一个非屏蔽密钥,上述 非屏蔽密钥被用于加密和解密在位于从属于发送方内部节点的分支上的 发送组成员之间传送的发送分组数据;和 至少一个构成接收方分组的接收方二进制分配树,上述接收方分组 包含至少一个与上述发送方分组通信的发送方; 上述至少一个接收方二进制分配树定义一个通信结构,上述通信结 构具有一个接收方内部节点,上述接收方内部节点具有一个第一分支和 一个第二分支,上述两个分支从属于上述接收方内部节点,各个上述分 支均包含一个第一成员,上述第一成员被分配给一个对应叶节点,上述 第一成员与一个密钥关联分组相关,上述密钥关联分组包括至少一个其 它成员; 上述接收方分组第一成员包含: 一个与接收方分组第一成员被分配到的对应叶节点相关的唯一二进 制ID; 一个可以加密数据的第一私有密钥;和 一个根据上述第一私有密钥导出以便和其它接收方分组成员的一个 屏蔽密钥进行交换的屏蔽密钥; 其中各个上述发送方是一个上述发送方分组第一成员和一个上述接 收方分组第一成员,上述发送方使用其它接收方分组成员的屏蔽密钥和 发送方的第一私有密钥计算接收方内部节点的一个非屏蔽密钥,上述非 屏蔽密钥被用于加密和解密在位于从属于接收方内部节点的分支上的上 述接收方分组成员之间传送的接收方分组数据。

28.如权利要求27所述的分布式分组密钥管理系统,其中接收方分组 数据和发送方分组数据是一个会话密钥,上述会话密钥解密用会话密钥 加密的第二数据。

29.如权利要求27所述的分布式分组密钥管理系统,其中接收方分组 数据和发送方分组数据是在发送方分组成员和接收方分组成员之间传送 的通信数据。
展开

说明书

相交申请的交叉参考 本专利申请对1999年7月6日提交的美国临时专利申请60/142,490号 提出申请日优先权要求。
技术领域 本发明涉及安全通信。
更具体地,本发明涉及在多个发送方和多个 成员之间提供安全通信的系统。
背景技术 诸如互联网的网络上的安全多点传送被用于诸如股票行情发布,私 人会议和分布式交互模拟的应用。
某些这样的应用具有一个单独的发送 方,这个发送方向大量用户发送保密数据,而其它应用具有大量彼此进 行私人通信的用户。
近来已经提出了若干个支持一个发送方和多个成员 之间的分组通信的方案。
一些在多个发送方和多个成员之间进行安全通 信的解决方案受到公共故障的影响;它们使用某种形式的集中式分组控 制。
多点传送是分组通信的一个可伸缩解决方案;多对多安全多点传送 协议也必须是可伸缩的。
分组访问控制,私有密钥分配和动态分组管理 是安全分组通信协议的三个主要部分。
目前大部分一对多安全多点传送 协议均使用一个分组管理器这样的集中实体进行访问控制并分配私有密 钥。
当多点传送组成员关系是动态关系时,分组管理器还必须保证理想 的传递保密性。
这将保证成员不能解密在加入分组之前发送的保密数据 和在离开分组之后发送的保密数据。
分组管理器在一个成员加入或离开 时改变适当的私有密钥并且将私有密钥分配给对应的成员。
重新分配密 钥过程必须是可伸缩的;密钥分配开销应当独立于多点传送组的规模。
虽然产生单独一个攻击和故障点,但使用集中实体进行分组控制对 于一对多安全多点传送而言是自然而然的。
然而在存在多个发送方的情 况下,期望多点传送组仍然可以工作,只要有至少一个发送方正在工作。
换言之,多对多安全多点传送需要对分组进行分散控制。
访问控制,密 钥分配和动态分组管理任务应当被授权给所有的发送方。
期望在分组内 的所有发送方中间平均分配访问控制职责和协议处理开销。
在现有文献中只有少量的安全多对多分组通信协议。
然而文献中的 所有这种协议均使用集中分组控制并且容易变成单攻击点和故障点。
一 个协议向第三方实体公开私有密钥,上述第三方实体协助完成密钥分配 并且还使用一个集中″分组安全控制器″(GSC)进行分组管理。
另一个协 议建议在所有组成员中给予相等的信任度。
先加入的成员产生密钥并且 为后加入的成员分配密钥。
虽然这个协议在原理上是可行的,但在成员 进行合谋的情况下是脆弱的。
可以让非常少的成员控制分组,从而允许 非均匀地分配分组控制和密钥分配开销。
期望通信协议的结构能够防止 组成员之间的合谋。
任何安全分组通信协议均具有分组访问控制,私有密钥分配和动态 分组管理三个主要部分。
发送方负责控制对安全多点传送分组的访问。
在成员可以加入分组之前必须对其进行验证。
为了保护隐私,数据在被 发送到分组之前被加密。
发送方负责以安全和可伸缩的方式向成员分配 数据加密密钥。
最终,发送方负责保证理想的传递保密性。
为了保证理 想的传递保密性,发送方应当在一个主机加入或离开分组时改变私有密 钥。
这个重新分配密钥过程应当是安全和可伸缩的。
安全多对多协议的需求和期望特性如下所述。
安全分组通信方案必 须是可伸缩的。
更具体地说,必须能够在分组内成员(或发送方)数量增 加时调整密钥分配开销。
所有发送方必须得到平等的信任并且在至少有 一个发送方正在工作的情况下分组必须工作。
期望向所有发送方分配访 问控制和动态分组管理任务。
这允许局部处理加入和离开,因而避免控 制通信负载的大范围传送。
分组管理任务的分配还避免性能瓶颈并且消 除多点传送组中的单一攻击点。
最终,协议应当能够有效避免或检测并 且消除任何合谋成员或发送方。
发明内容 本发明提供了一个进行安全多对多通信的分组密钥管理系统和方 法。
系统使用一个二进制分配树结构。
二进制树包含一个第一内部节点, 第一内部节点具有一个第一分支和一个第二分支,这两个分支从属于上 述第一内部节点。
每个分支均包含一个第一成员,第一成员被分配到一 个对应的叶节点上。
第一成员具有一个唯一二进制ID,唯一二进制ID与 第一成员被分配到的对应叶节点相关。
第一成员的第一私有密钥可以对 被发送到其它成员的数据进行加密。
第一成员与一个由其它成员构成的 密钥关联分组相关。
其它成员具有屏蔽密钥。
根据第一成员的第一私有 密钥导出的屏蔽密钥被发送到密钥关联分组。
其中,第一成员使用从密 钥关联分组接收的屏蔽密钥和第一私有密钥计算第一内部节点的非屏蔽 密钥。
非屏蔽密钥被用于加密在成员之间传送的数据,上述成员位于从 属于第一内部节点的分支上。
附图说明 为了更完整地理解本发明,其目标和优点,参照下面的说明书和附 图。
图1是图解一个通信系统的图例,这个通信系统在一个通信分组的成 员中间进行多对多通信; 图2是关于一个密钥分配树的图例,其中根据本发明实施例的原理排 列上述密钥分配树; 图3是关于一个加入通信系统的成员的图例,其中根据本发明实施例 的原理排列上述成员; 图4是关于一个离开通信系统的成员的图例,其中根据本发明实施例 的原理排列上述成员; 图5是示出确定一个密钥关联分组的成员的过程的序列图; 图6是示出一个数据加密过程的序列图; 图7是示出一个加入通信系统过程的序列图; 图8是示出一个离开通信系统过程的序列图;和 图9是图解一个通信系统的图例,这个通信系统在一个通信分组的成 员中间进行少对多通信。
具体实施方式 参照图1,其中图解了一个支持基于本发明原理的多对多通信的可伸 缩安全多点传送协议。
本发明的实施例是一个使用基于分配树的密钥管 理方案(DTKM)进行安全多对多分组通信的通信系统20。
系统20是可 伸缩的并且成员22被平等信任。
系统20向成员平均分配分组控制职责和 密钥分配任务。
每个成员22均被分配一个二进制ID并且这些ID被用来定义每个成员 22的密钥关联。
密钥关联分组22a中的成员相互联系以便报告成员资格改 变并且交换密钥。
成员22得到平等信任并且均可以是发送方。
未来的成 员可以和任何活跃成员联系以便加入分组。
活跃成员验证新成员的证书 并且为其分配一个唯一二进制ID 24。
在不需要查找ID的全局空间的情 况下在本地完成ID分配。
ID分配过程说明了协议的分布式性质。
新成员 启动重新分配密钥过程。
注意,重新分配密钥以保证理想的传递保密性。
以类似于加入的方式处理离开;离开主机的邻居(根据ID确定邻居)需要 注意离开并且启动重新分配密钥过程。
密钥关联有助于在分组的所有成 员中间平均分配密钥分配开销。
用二进制密钥分配树26的叶表示成员。
各个成员22为自身产生一个 唯一私有密钥28并且根据一个关于其两个子节点的私有密钥的函数计算 各个内部节点密钥。
所有私有密钥28均与其屏蔽密钥30相关,其中使 用一个单向函数32计算屏蔽密钥。
各个成员22保存连通到根的节点的所 有非屏蔽密钥和上述节点的兄弟节点的所有屏蔽密钥。
涉及根密钥计算 的唯一私有密钥成分为各个成员22提供对分组的部分控制。
加入/离开只 需要改变加入/离开主机的与根连通的密钥。
因而,各个成员资格改变只 需要O(log n)个消息,其中n是分组中成员的数量。
因而协议是可伸缩 的。
通过一个密钥分配树的叶节点表示多点传送组的成员。
密钥分配树 是严格二进制的,即各个内部节点有且仅有两个子节点。
各个成员产生 一个唯一私有密钥28,这个唯一私有密钥是在产生包含根密钥的内部节 点密钥时由成员产生的成分。
内部节点与私有密钥相关并且根据一个关 于其子节点的密钥的函数计算这些密钥。
以类似方式计算根密钥并且使 用根密钥进行数据加密。
对于各个私有密钥k,存在一个屏蔽密钥k′和 一个非屏蔽密钥密钥。
使用一个针对私有密钥的指定单向函数计算屏蔽 密钥。
在指定一个通过单向函数计算的屏蔽密钥的情况下,不可能计算 出屏蔽密钥的对等非屏蔽密钥。
各个成员22知道与树根连通的节点的所 有密钥和上述节点的兄弟节点的所有屏蔽密钥,但不已知其它的屏蔽密 钥或非屏蔽密钥。
由作为那些密钥的所有者和授权分配者的成员分配屏 蔽密钥。
各个成员22使用其接收的屏蔽密钥及其自身的私有密钥28计算 树中与根连通的内部节点的非屏蔽密钥和自身的根密钥。
一个混合函数 34被用来根据节点的子节点的屏蔽密钥计算内部节点密钥。
各个节点被分配一个二进制ID 24并且负责产生一个私有密钥28。
与节点相关的成员22还计算其密钥28的屏蔽密钥30并且与密钥分配树 26中其直接相邻节点共享屏蔽密钥30。
列表I提供了一个发现相邻节点算 法的伪码,上述算法得到节点A的二进制ID并且返回A的相邻节点的二进 制ID。
                              Table I. 发现相邻节点模块 Find_Neighbor(X=bhbh-1...b1),X是一个二进制ID,其中当1=<i <=h时,bi是一个二进制数字 begin X′=bhbh-1... b1, if(leaf_node(X′)=″true″)       return X′; elso if(internal_node(X′)==″true″)       do            X′=X′0;       while(leaf_node(X′)==″false″);       return X′ end 注意: 1.如果X是密钥分配树的一个叶节点则leaf_node(X)返回true;否 则返回false。
2.如果X是密钥分配树的一个内部节点则internal_node(X)返回 true;否则返回false。
参照图2,在执行发现相邻节点算法之后;H(1110)的相邻节点是I (1111),并且G(110)的相邻节点是H(1110)。
具有相同长度的ID 24 的相邻节点(图1中H和I)被称作直接相邻节点并且它们彼此交换其私有 密钥28的屏蔽密钥30。
如果一对相邻节点具有不同的ID长度(图1中 的G和H),ID长度较小的成员发送其私有密钥28的屏蔽密钥30并且 从ID长度较大的成员接收具有相同ID长度的对应内部节点的屏蔽密钥 30(G从H接收k′111)。
在使用接收的新密钥的情况下,成员22计算其父节 点的私有密钥28。
一个混合函数(通常是一个XOR函数)34被用来计算 内部节点密钥。
例如在图2中,C和D针对屏蔽密钥k′010而k′011使用混合 函数m,34计算内部节点密钥k01
在系统20中一个密钥关联分组22a的成员之间交换屏蔽密钥30。
密 钥关联被用来在所有分组成员22中间平均分配密钥分配任务。
各个成员22 需要与其ID 24的长度一样多的屏蔽密钥30来计算根密钥。
由其密钥关联 分组22a的不同成员提供各个屏蔽密钥30。
对于一个成员的ID中的各个 位,存在一个提供对应屏蔽密钥的成员22。
下面的发现密钥关联模块33 返回其提供的、对应于一个成员ID中一个指定位的成员22 ID 24和私有 密钥28。
                               Table II 发现密钥关联分组模块 Find_Key_Association(X=bhbh-1...b1,i) begin    Xi=bhbh-1...bi+1 bibi-1...b2b1; if(leaf_node(Xi)=″true″) return(Xi,k′i); k i = k b h b h - 1 · · · b i + 1 b - i ]]>else if(internal_node(Xi)=″true″)      do          Xi=Xi0;      while(leaf_node(Xi)=″false″);      return(Xi,k′i); else      do         Xi=right_shift(Xi,1));      while(leaf_node(Xi)=″false″);      return(Xi,k′i); end 注意: 1.如果X是密钥分配树的一个叶节点则leaf_node(X)返回true;否则 返回false。
2.如果X是密钥分配树的一个内部节点则internal_node(X)返回 true;否则返回false。
3.right_shift(X,i)以一个二进制ID X=bhbh-1...b2,b1,和一个数 值,i,作为其输入并且将X右移i次。
输出将是bhbh-1...bi+1
参照图2和5,其中图解了用于H(1110)40的密钥关联模块33。
在 步骤60加载对应于一个节点的二进制ID 24。
接着在步骤62补足位位置。
这里,我们补足对应的位位置1,2,3,4,并且得到I(1111)42,1100, 1010,0110。
在步骤64,如果节点是一个叶节点,则在步骤70获得对 应于密钥关联分组的成员的屏蔽密钥。
否则。
如果节点不是一个叶节点, 则在步骤66确定节点是否一个内部节点。
这里由于不存在具有最后三个 ID的节点,我们在步骤66和68将其右移一个位位置以得到G(110)44,F (101)46,和D(011)48作为H的40密钥关联分组22a中的其余成员。
最 终在步骤70,I 42,G 44,F 46,和D 48分别向H 40提供密钥k′1111,k′110, k′10,k′0
参照图6,其中图解了C(010)50的根密钥计算过程。
在步骤72,C 50产生密钥k010并且向D(011)48发送其屏蔽密钥k′010(在步骤74和 76使用指定单向函数32计算)。
类似地,D 48发送k′011到C 50。
C和D接 着可以通过对k′010和k′011使用指定的混合函数34分别计算k01
接着C 50在步骤78向A(000)52发送k′01并且接收返回的k′00
在密钥交换之 后,A 52和C 50可以计算k0
在这个步骤之后,C 50和G 44彼此交 换k′0和k′1
在步骤80根据关于k′0和k′1的函数计算根密钥。
在类似 的步骤之后,多点传送组的各个成员22获得或计算出k′0和k′1并且接着 计算根密钥。
在传输之前使用接收方的公开密钥加密所有密钥。
注意C 50 只接收与根54连通的节点的兄弟节点的屏蔽密钥。
在使用那些密钥的情 况下,可以计算与根54连通的节点的非屏蔽密钥。
C 50在步骤82使用 已经计算出的根密钥对一个消息进行加密。
C 50在步骤84将加密消息多 点传送到通信系统20的成员22。
集合的邻居的定义 各个成员X,22还维护一个集合Nx的邻居,该集合包括与X相邻的 所有成员。
在我们的例子中,NH包括G 44和I 42。
各个成员22监视 其集合中的相邻成员并且在一个相邻成员离开时启动ID更新和密钥更新 过程。
集合的相邻成员在加入或离开期间可以改变并且加入和离开协议 向成员提供信息以便更新这些集合。
在系统20中,当发生一次加入或离 开之后,所有成员22在重新分配密钥期间识别出分组成员资格改变。
各 个成员22负责使用加入或离开主机的ID 24更新其集合相邻成员。
加入协议过程#1 一个未来成员可以在密钥分配树26的任何节点上加入。
然而为了增 强效率期望控制未来成员加入的节点以便保持密钥树的均衡。
系统20通 过在树中选择位于一个可管理或由时间期限(TTL)限定的范围内的成员22 对树26进行本地平衡。
可管理范围的一个例子包含将一个消息限制到一 个可控制扩充范围上,例如一个5人LAN,一个部门LAN,一个分公司 LAN,一个公司WAN。
TTL限定范围的一个例子包含限制消息可以跨 越的路由器转发段的数量。
未来成员在多点传送组中位于限定范围内具 有最小ID长度的本地成员上加入。
不期望的候选方案需要一或多个实体 保持有密钥分配树26的一个快照。
例如,为了跟踪分组的所有成员22及 其在密钥树26中的位置,或者向整个分组广播成员状态报告消息,或者 向一个跟踪所有加入和离开的集中实体广播成员状态报告消息。
第一候 选产生过多的网络传输,而第二候选具有一个单点故障。
参照图3和7,J 56是一个在步骤86加入到C 50上的新成员。
当验 证J的证书时,C在步骤88分割其ID 010(图3中示出),为自身保留 0100,将0101分配给J 56。
C 50a还改变其私有密钥28并且向J 56发送 其新密钥的屏蔽密钥。
J 56在步骤90,92和94产生一个其自身的私有 密钥28并且向C 50a发送屏蔽密钥。
注意J 56中所有对应于和根54连通 的内部节点的密钥因加入而发生改变。
J 56需要所有在图3中表示成黑色 的节点的非屏蔽密钥和表示成灰色的节点的屏蔽密钥。
注意,C 50a所知 的屏蔽密钥没有发生改变,因而它可以在步骤96当接收到k′1时计算所 有对应于节点010,01和0的新密钥和根密钥。
现在J 56需要对应于011, 00和1的屏蔽密钥。
通过使用较早提供的Find_Key_Association()模块 33,它在步骤98确定具有ID011(D),000(A)和110(G)的节点是其密 钥关联分组的成员。
注意这些节点及其相邻节点也需要J 56知道或可以 计算的屏蔽密钥。
具体地,J 56向D 48发送k′010并且从D 48接收k′011
它接着在步骤100计算k′01,向A 50发送k′01,并且接收返回的k′011
A 50也需要本地多点传送被k00加密的k′01,其中只能由A 50和B 58 来解密。
J 56现在可以在步骤102计算其发送到G 44的k′,接收返回的 k′1并且为自身计算根密钥。
G 44多点传送用k1加密并且只被E 60,F 46, G 44,H 40,和I 42解密的k′0
在进行上述密钥交换之后,所有授权成 员会具有其计算新根密钥所需的密钥。
总之,在一次加入期间会有O(log n)个单点传送消息和O(log n)个子分组多点传送消息。
注意,由于多点 传送消息只须被发送到多点传送组内部的选定子分组上,多点传送消息 会被限制到一个TTL限定范围或可管理范围内。
我们在下面的Join()模 块62中概括加入过程。
其中将新成员和一个现有成员的ID 24当作参数。
在模块中,k′表示M发送到X的密钥。
                            Table III. 加入模块 Join(X,Y=bhbh-1...b1)/*Y是现存在成员*/ begin     Y=bhbh-1...b10;     X=bhbh-1...b10;     kx=generate_new_key();     i=1;     while(i=<length(X))     begin         (M,k′)=Find_Key_Association(X,i);         outgoing_key=k′right_shift(x,i-1)        send_key_from_to(outgoing_key,X,M);         scoped_secure_multicast(outgoing_key,M,k);         send_key_from_to(k′,M,X);         i=i+1;         kright_shift(x,i-1)=m(outgoing_key,k′);     end 注意: 1.generate_new_key()返回一个新私有密钥。
2.right_shift(X,i)以一个二进制ID X=bhbh-1...b2,b1,和一个数 值,i,作为其输入并且将X右移i次。
输出将是bhbh-1...bi+1
3.send_keys_from_to(key,X,Y)指示X向Y发送″key″。
4.scope_secure_multicast(key1,X,key2)指示X用key2加密key1 并且本地多点传送key1。
5.length(X)返回二进制ID X中的位数。
6.m()是混合函数,其中 加入协议过程#2 在另一个加入多点传送组的过程中,一个新成员向其希望加入的多 点传送组的成员发送一个限定范围多点传送消息。
消息由新成员的认证 信息以及其单点传送(例子:IP)地址构成。
参照图3和7,C 50在步 骤86应答J 56的加入请求。
当验证J的证书时,C在步骤88分割其ID 010(图1中示出),为自身保留0100,将0101分配给J 56。
接着,C 50 改变其私有密钥并且将其新密钥的屏蔽密钥以及它知道的所有屏蔽密钥 (图3中表示成灰色)发送到J 56。
由于是J的相邻节点,它也在步骤104向J 56发送其单点传送地址。
J 56在步骤106产生一个其自身的私有密钥并且 向C 50a发送(单点传送)屏蔽密钥。
注意J 56中所有对应于和根54连通 的内部节点(图3中表示成黑色)的密钥因加入而发生改变。
注意C 50a和J 56在步骤108可以通过k010,k01和k0和根密钥计算所有的新密钥。
内部节 点011,00和1的子节点需要屏蔽密钥k′010,k’01,和k′0
C 50a负责发送 它们,C 50a在步骤110分别使用密钥k011’k′00,和k′1对其加密并且通 过多点传送发送加密密钥。
注意: *C,J和D可以解密k′010*A,B,C,J和D可以解密k′01,并且 *A,B,...,和I可以检索k′ 0
所有上述密钥所有权均符合密钥分配规则,即所有成员均知道其与 根54连通的非屏蔽密钥和与根54连通的节点的兄弟节点的屏蔽密钥。
在进行上述密钥交换之后,所有授权成员会具有其计算新根密钥所需的 密钥。
总之,会有一个单独的单点传送消息,该消息包括O(log n)个密 密钥。
总之,会有一个单独的单点传送消息,该消息包括O(log n)个密 钥和O(log n)个多点传送消息,其中每个多点传送消息包括一个密钥。
注意,成员需要知道其集合中相邻的成员的单点传送地址。
使用分组多 点传送地址发送所有其它密钥。
这个性质有利于协议的分布式性质。
并 且,我们的协议不需要成员将所有成员的ID保存到单点传送地址转换表 中。
同步加入 可以通过若干种方式更新内部节点密钥。
最简单的方式是每当其任 意子节点密钥发生改变时便计算一个内部节点密钥。
然而在有多个同 时加入时简单方案不适用。
具体地,树26的不同部分中的成员可以具有 一个内部节点密钥的不同版本,从而使分组无法工作。
所以期望有一个 同步同时加入的方法。
同步同时加入的第一个方法,即一个版本维护方案需要维护所有内 部节点密钥的版本号。
如果一个成员通过多点传送接收相同密钥的两个 版本,它使用混合(XOR)函数34混合两个密钥。
如果接收到相同密钥 的不止两个版本,则多次使用混合函数34以得到新密钥。
由于XOR函 数是联合类型的函数,所有成员会具有计算出的相同密钥。
版本维护方 案的一个缺点是各个密钥会涉及某些开销。
一个同步同时加入的候选方法需要总是使用混合函数34更新内部节 点密钥。
换言之,总是通过对旧密钥和接收或计算的新密钥使用混合函 数34来获得新的内部节点密钥。
第二方法在存储方面更加有效,而第一 方法在计算内部节点密钥需要的处理时间较少。
B.离开协议 当一个成员22离开时,其相邻成员启动重新分配密钥过程。
如果相 邻成员是离开的成员的兄弟成员,则假定其父节点在密钥分配树中的位 置。
否则它通知离开成员的兄弟成员的后代改变其ID。
在两种情况中, 相邻成员改变其私有密钥28并且启动重新分配密钥过程。
它向其密钥关 联分组的成员发送新密钥,而这些成员负责向其子分组中的适当成员传 播新密钥。
在本章节的其它部分中,我们将描述ID更新过程和之后的重 新分配密钥过程。
在步骤112中X是离开节点而Y(=Neighbor(X))是其相邻节点。
如果Y的ID长度与X相同,则Y将其ID右移一个位位置以得到其新 ID。
如果Y的ID长于X的ID,则X的兄弟及其后代按以下方式改变 其ID。
注意,X的兄弟的各个后代Z与X共享一个密钥。
在步骤114, 如果Z=bhbh-1...bi+1bibi-1...b2b1,则离开之后Z的ID将是bhbh-1...bi+1bi- 1...b2b1,其中i是Z的ID和X的ID的长度差值加1。
在两个情况下,Y 在步骤116产生新私有密钥并且启动重新分配密钥。
在图4中,如果E离 开,则F得到ID 10并且产生一个新私有密钥;如果G离开,则H和I 分别得到ID 110,111并且H产生新私有密钥。
在图4中,C 50离开多点传送组。
J 56发现离开,将其ID从0101改 变成010,并且为自身产生一个新私有密钥28。
因此,J到根54的路 径上的内部节点密钥发生改变并且J 56负责启动与其对等方,即本章节 前面定义的011(D),000(A)和110(G)的密钥交换。
J 56向D 48 发送屏蔽密钥k′010
J 56和D 48现在可以计算k01
J56接着向A 52发 送k′01,A 52负责与所有具有k00的成员共享k′01
最终,J 56向G 44 发送k′0,而G 44依次向所有具有k1的成员发送k′0
注意在步骤118 J 56不需要从D 48,A 52,或G 44返回任何密钥;在步骤120它已经具有 计算根密钥所需的屏蔽密钥。
虽然离开成员C 50也知道所有那些屏蔽密 钥,但它不知道任何所需的非屏蔽密钥,因而不能计算或获得根密钥。
一次离开产生O(log n)个多点传送消息,每个消息传送一个加密私有密 钥。
下面,我们概括了成员离开分组之后的重新分配密钥过程。
                          Table IV. 离开模块 Leave(X) begin Y=Find_Neighbor(X); for each Z in{descendants(sibling(X))}U(Y) Z=delete_ith_bit(Z,length(Z)-length(X)+1); ky=generate_new_key(); compute_internal_node_keys(Y); i=1; while(i=<length(Y)) begin    (M,k′)=Find_Key_Association(Y,i);    outgoing_key=k′right_shift(Y,i-1);                  right_shift(y,i-1) send_key_from_to(outgoing_key,Y,M); scoped_secure_multicast(outgoing_key,M,k);/* M already has k*/,    i=i+1;   end end 注意: ·descendants(X)返回多点传送组中是X的后代的成员 ·如果X=bhbh-1...b2b1,则sibling(X)=bhbh-1...b2  y1·delete_ith_bit(X,i)以一个二进制ID和一个整数作为其输入并且返 回删除了位位置i的X。
例如如果X=bhbh-1...bi+1bibi-1...b2b1,则函 数返回bhbh-1...bi+1bi-1...b2b1
·generate_new_key()返回一个新私有密钥。
·compute_internal_node_keys(Y)指示Y本地计算所有内部节点密 钥及其屏蔽密钥。
·right_shift(X,i)以一个二进制ID X=bhbh-1...b2,b1,和一个数值, i,作为其输入并且将X右移i次。
输出将是bhbh-1...bi+1
·send_keys_from_to(key,X,Y)指示X向Y发送″key″。
·scope_secure_multicast(key1,X,key2)指示X用key2加密key1 并且本地多点传送key1。
·length(X)返回二进制ID X中的位数。
·m()是混合函数。
安全数据通信 多点传送组中的所有成员可以用指定密钥计算根密钥。
一个有数据 要发送的成员使用根密钥加密数据并且通过传统多点传送通道(例如: MBONE)发送数据。
其它成员可以在不进行任何其它的密钥交换的情况 下解密数据。
协议还允许进行安全子分组通信。
一个发送方通过加密与 子分组共享的密钥可以向一个成员子分组发送保密数据。
分组合并 可以有效合并根据本发明原理构造的独立通信系统以构成一个单独 的多对多多点传送组。
为了合并两个大小近似相等的分组,我们通过对 现有根密钥使用混合函数34来计算一个新公共分组密钥。
具有ID 1+(例 子:1,11,111等等。
)或ID 0+(例子:0,00,000等等。
)的成员可以充 当一个分组的缺省代表并且启动分组合并。
如果一个分组层次高于其它 分组,则层次较高的分组加入到层次较深的树的最高层次点上。
这种分 组加入类似于一个加入,具有ID 0+(或1+)的成员22改变其私有密钥并且 启动重新分配密钥。
网络分区和分组离开操作 通过一个重复发现过程相邻成员可以注意到网络分区。
例如,当一 个成员相邻成员不发送心跳消息时,对应成员22可以假定相邻成员不可 用,或者成员可以启动一个发现过程以确定子分组中有其它成员可用。
子分组多点传送地址可以用于这个发现过程。
注意,密钥树中每个子树的成员可以使用其共有的内部节点的屏蔽 密钥在其内部进行通信。
因而在有网络的情况下所有连接子分组均可以 在其内部进行通信。
平衡密钥树 为了有效进行私有密钥分配,密钥树应当是平衡的。
使用智能加入 算法防止形成非均衡树。
加入协议需要未来成员在一个具有最小ID长度 的现有发送方上加入。
然而由于加入请求被发送到一个限定范围(本地) 内的发送方,我们可以不具有一个全局平衡的树。
并且一系列的离开可 以产生一个非均衡树。
通过强制执行一个分组离开和分组合并操作可以 重新平衡树。
在使用智能位置选择进行分组合并的情况下我们可以重构 一个平衡树。
少对多安全分组通信 本发明的一个可选实施例提供了安全少对多分组通信。
一类多点传 送应用具有较小的成员集合,其中发送方发送数据和其它内容而接收方 接收数据。
所有发送方也是接收方。
互联网上的面板讨论多点传送,部 门经理讨论策略而其它雇员倾听的在线公司会议是少对多分组通信的例 子。
上述某些应用也需要适用的数据保密性。
在设计一个信任模型时, 由于发送方拥有数据,显然它们必须对多点传递分组拥有控制。
在我们 的范围内,控制包括分组访问控制,私有密钥分配等等。
期望发送方具 有相等控制,得到平等的信任,并且平等分摊协议处理开销。
子分组 参照图9,其中图解了一个基于本发明原理的少对多通信系统122。
发送方属于一个发送方子分组124,上述子分组共享一个公共分组密钥 (Root Key0)并且使用本发明的原理。
加入和离开期间的重新分配密钥 与多对多通信实施例的重新分配密钥相同。
接收方构成n个接收方子分 组126;接收方子分组126的成员在其间共享一个公共分组密钥(Root KeyI,1<I<n)并且使用本发明的原理。
通过使用对应的根密钥,各个 子分组成员22可以与相同子分组的其它成员通信。
各个接收方子分组至少有一个发送方是图9所示的成员22b。
换言 之,某些发送方属于两个子分组,即发送方分组和一个接收方分组。
属 于一个接收方子分组的发送方22b负责对该子分组进行分组控制。
然而 注意,根据本发明的原理,分组管理开销被分布在接收方子分组的所有 成员中间。
少对多分组构成 可以通过若干种不同方式构成少对多分组。
例如,发送方首先构成 发送方子分组124。
某些发送方则可以在开始时接受接收方的成员资格 请求并且构成接收方子分组126。
我们的协议也允许某些接收方限制数 据传输。
当一个接收方希望发送数据时,它与控制其所属的子分组的发 送方联系。
如果发送方批准接收方的数据传输,它向少对多分组122的 所有成员传递许可。
可选地,可以首先构成接收方子分组126并且接着由子分组的领导 构成发送方子分组124以便启动少对多通信。
公司会议是这种少对多分 组的例子。
例如如果ABC公司具有若干个部门M,N,...,Z,则各个 部门首先构成接收方子分组126。
各个分组的经理(领导)接着构成发送方 子分组124并且启动少对多分组通信。
安全通信 各个发送方产生一个会话密钥并且向少对多分组发送经过会话密钥 加密的数据。
它接着向发送方子分组124传递经过Root Key0加密的 会话密钥。
属于一个接收方子分组126的成员的各个发送方22b解密会 话密钥,用接收方子分组密钥加密会话密钥并且传递会话密钥。
在图9 中,S1使用Root Key0解密会话密钥并且使用Root Key1加密会话 密钥。
使用随机产生的会话密钥进行数据传输保证接收方不能发送数据。
可选地,可以使用发送方子分组密钥Root Key0进行数据传输。
在那种情况下,多点传送路由器需要过滤接收方发送的所有数据。
虽然在当前最优实施例中描述了本发明,但可以理解的是,在不偏 离如所附权利要求书提出的本发明的宗旨的前提下能够修改或调整本发 明。
展开

查看更多专利详情信息请先登录或注册会员

相关专利类别推荐

获取手机验证码,即可注册成为会员

专利详情咨询

咨询内容

姓名

手机

验证码

用户登录

手机号

手机验证码

提示

不能再减了!!!

提交成功

八月瓜客服中心已经收到您的信息,正在为您派遣知识产权顾问。知识产权顾问会携带贴心的服务以闪电搬的速度与您联系。

扫一扫关注八月瓜微信 创业一手掌握