群密钥分发管理方法、装置、电子设备及存储介质与流程

文档序号:16244906发布日期:2018-12-11 23:28阅读:191来源:国知局
群密钥分发管理方法、装置、电子设备及存储介质与流程

本发明涉及网络安全技术领域,具体涉及一种群密钥分发管理方法、装置、电子设备及存储介质。

背景技术

现有的群密钥分发管理方法大多是基于密钥分发中心的密钥分发管理方法或者基于层级树的密钥分发管理方法。基于密钥分发中心的密钥分发管理方法是通过一个密钥分发中心对群密钥进行管理与分发,其缺点是当群的规模较大时,群密钥分发计算量和通讯量都会大量增加,而基于物联网本身的特性,在子群的第二密钥分发中心数量过于庞大的时候无法满足实际需求。基于层级树的密钥分发管理方法是密钥分发中心先将群划分为几棵子树,子树共享一个密钥,全体用户设备共享一个群密钥。虽然基于层级树的密钥分发管理方法在一定程度上能减少群密钥分发的计算量和通讯量,但当只有一棵子树时,便失去了本身的优势,其次在群规模庞大时,所带来的计算量和通讯量同样也很高,很难满足实际的需求。



技术实现要素:

鉴于以上内容,有必要提出一种群密钥分发管理方法、装置、电子设备及存储介质,能够在群规模庞大时,尤其是在有用户设备离开或者加入时,只需对相应的子群中的用户设备进行密钥的重新分发与管理,而不需对所有用户设备进行密钥的重新分发与管理,从而在很大程度上减少群密钥分发的计算量和通讯量。

本发明的第一方面提供一种群密钥分发管理方法,所述方法包括:

将主群下的所有用户设备划分为多个子群,每个子群包括至少一个用户设备;

将为主群生成的主群密钥分发给所述主群中的所有子群;

将为每一个子群生成的子群密钥分发给对应子群中的所有用户设备;

当侦测到子群中的用户设备的状态发生变化时,对状态发生变化的子群中的所有用户设备重新分发子群密钥。

优选地,在所述将为主群生成的主群密钥分发给所述主群中的所有子群之后,所述方法还包括:判断所述主群密钥是否成功的分发给了所有子群。

优选地,所述子群中的用户设备的状态发生变化包括:子群中的用户设备的数量增加或者减少,所述子群中的用户设备的数量增加表示有新的用户设备加入子群中,所述子群中的用户设备的数量减少表示有用户设备退出了子群。

优选地,当侦测到子群中的用户设备的状态发生变化为所述有用户设备退出子群时,在对状态发生变化的子群中的所有用户设备重新分发子群密钥之后,所示方法还包括:判断所述子群密钥是否成功的分发给了子群中的所有用户设备。

优选地,当侦测到子群中的用户设备的状态发生变化为所述有新的用户设备加入子群时,在对状态发生变化的子群中的所有用户设备重新分发子群密钥之后,所示方法还包括:判断所述子群密钥是否成功的分发给了子群中的所有用户设备。

优选地,根据预设规则将所述主群中的所有用户设备划分为多个子群,包括:

根据预设子群的数量,对所述主群中的所有用户设备进行均分,每个子群包括相同数量的用户设备;或

根据用户设备的标识对所述主群进行化分为多个子群,每个子群包括的用户设备具有相同的标识。

优选地,当不同子群的用户设备之间需跨群通讯时,所述方法还包括:

获取需进行跨群通讯的用户设备对应的两个子群;

对所述两个子群进行双方通讯认证;

当确定所述两个子群双方通讯认证成功时,对所述需进行跨群通讯的用户设备进行跨群通讯连接。

本发明的第二方面提供一种群密钥分发管理装置,运行于电子设备中,所述装置包括:

划分模块,用于将主群下的所有用户设备划分为多个子群,每个子群包括至少一个用户设备;

第一分发模块,用于将为主群生成的主群密钥分发给所述主群中的所有子群;

第二分发模块,用于将为每一个子群生成的子群密钥分发给对应子群中的所有用户设备;

重分发模块,用于当侦测到子群中的用户设备的状态发生变化时,对状态发生变化的子群中的所有用户设备重新分发子群密钥。

本发明的第三方面提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述群密钥分发管理方法。

本发明的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述群密钥分发管理方法。

本发明通过对主群进行划分为多个子群,每个子群都有一个密钥分发中心对子群密钥进行分发与管理,所有的子群共享一个主群密钥,而同一个子群中的用户设备共享一个子群密钥,即主群管理多个子群,每一个子群管理本子群中的所有用户设备,两层级的密钥分发管理方式,能够使得当群规模庞大时,有用户设备加入或者离开时,只需要在对应的子群中进行密钥的重新分发与管理,而不需要对所有用户设备进行密钥的重新分发与管理,从而很大程度上减少了通讯量和计算量的消耗。而在子群中进行密钥的分发与管理也会考虑子群本身的拓扑结构,所以在子群中的密钥分发与管理的计算量和通讯量消耗也会很小。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例一提供的群密钥分发管理方法的流程图。

图2是本发明实施例中的判断主群密钥是否成功的分发给了所有子群的信令交互示意图。

图3是本发明实施例判断所述子群密钥是否成功的分发给了子群中的所有用户设备的信令交互示意图。

图4是本发明实施例二提供的群密钥分发管理装置的结构图。

图5是本发明实施例三提供的电子设备的示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

优选地,本发明的群密钥分发管理方法应用在一个或者多个电子设备中。所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、嵌入式设备等。

所述电子设备可以是桌上型计算机或云端服务器等计算设备。所述电子设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述群密钥分发管理方法也可以应用于由电子设备和通过网络与所述电子设备进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的群密钥分发管理方法可以由服务器来执行,也可以由电子设备来执行,还可以是由服务器和电子设备共同执行。

例如,对于需要进行群密钥分发管理的电子设备,可以直接在电子设备上集成本发明的方法所提供的群密钥分发管理功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在服务器等设备上,以sdk的形式提供群密钥分发管理功能的接口,电子设备或其他设备通过提供的接口即可实现对群密钥的分发与管理。

实施例一

图1是本发明实施例一提供的群密钥分发管理方法的流程图。所述群密钥分发管理方法应用于电子设备。根据不同的需求,图1所示流程图中的执行顺序可以改变,某些步骤可以省略。

如图1所示,所述群密钥分发管理方法具体包括以下步骤:

s11、将主群下的所有用户设备划分为多个子群,每个子群包括至少一个用户设备。

本实施例中,所述电子设备可以获取群中的所有用户设备,将群中的所有用户设备划分为多个子群。为便于后续描述,对所有用户设备进行划分之前的所有用户设备所在的群称之为主群或总群,对所有用户设备划分之后的用户设备所在的群称之为子群或分群。

本实施例中,所述电子设备可以根据预设规则将所述主群中的所有用户设备划分为多个子群。

本实施例中,所述预设规则可以包括以下一种或者多种的组合:

1)根据预设子群的数量,对主群中的所有用户设备进行均分,每个子群包括相同数量的用户设备。

所述预设子群的数量为预先设置的划分为子群的数量,例如,预先设置划分为n个子群,主群中有m个用户设备,则划分为n个子群后的每个子群包括m/n个用户设备。将用户设备进行均分,每个子群中的用户设备的数量相同,可保证子群之间具有相等的通讯量,避免造成某些子群中的用户设备数量较少而其他子群中的用户设备数量太多导致的通讯量较大的问题发生。

2)根据用户设备的标识对主群进行化分为多个子群,每个子群包括的用户设备具有相同的标识。

所述用户设备的标识可以包括设备的生产商等。可以将由同一个生产商生产的用户设备划分为同一个子群,将由不同的生产商生成的用户设备划分为不同的子群。根据用户设备的标识对主群进行划分,同一个子群管理相同标识的用户设备,从而使得子群的管理更为便捷且有区别性。

s12、将为主群生成的主群密钥分发给所述主群中的所有子群。

本实施例中,所述电子设备可以预先为所述主群设置一个第一密钥分发中心。在物联网环境下,可以为主群设置一个受信任的实体作为第一密钥分发中心进行主群密钥的分发与管理。所述电子设备通过第一密钥分发中心将主群密钥分发给每一个子群,所有子群之间共享同一个主群密钥,所述主群密钥用于保证子群与子群之间的跨群通讯的安全性。

s13、将为每一个子群生成的子群密钥分发给对应子群中的所有用户设备。

本实施例中,所述电子设备可以预先为所述每一个子群设置一个第二密钥分发中心。在物联网环境下,可以为每一个子群设置一个受信任的实体作为第二密钥分发中心进行子群密钥的分发与管理。每一个子群的第二密钥分发中心接收第一密钥分发中心分发的主群密钥,同时第二密钥分发中心将所述电子设备为每一个子群生成的一个子群密钥分发给本群中的所有用户设备。同一个子群中的所有用户设备之间共享同一个子群密钥,所述子群密钥用于保证对应子群中的用户设备与用户设备之间的通讯的安全性。

例如,电子设备为第一子群生成第一子群密钥,为第二子群生成第二子群密钥,为第三子群生成第三子群密钥。通过第一子群密钥分发中心将第一子群密钥分发给第一子群中的所有用户设备,通过第二子群密钥分发中心将第二子群密钥分发给第二子群中的所有用户设备,通过第三子群密钥分发中心将第三子群密钥分发给第三子群中的所有用户设备。第一子群中的所有用户设备共享第一子群密钥,第一子群中的用户设备与用户设备进行通讯时,可以基于第一子群密钥实现通讯的安全保障。第二子群中的所有用户设备共享第二子群密钥,第二子群中的用户设备与用户设备进行通讯时,可以基于第二子群密钥实现通讯的安全保障。

应当理解的是,由于不同子群之间的用户设备共享不同的子群密钥,要实现不同子群的用户设备之间的跨群通讯时,所述方法还可以包括:获取需进行跨群通讯的用户设备对应的两个子群;对所述两个子群进行双方通讯认证;当确定所述两个子群双方通讯认证成功时,对所述需进行跨群通讯的用户设备进行跨群通讯连接。

例如,第一子群中的用户设备需要与第二子群中的用户设备进行跨群通讯时,第一子群向第二子群发送第一通讯请求,第二子群对第一通讯请求进行认证并在认证成功后向第一子群发送第二通讯请求,第一子群对第二通讯请求进行认证并在认证成功后,对第一子群中的用户设备与与第二子群中的用户设备进行通讯连接。

s14、当侦测到子群中的用户设备的状态发生变化时,对状态发生变化的子群中的所有用户设备重新分发子群密钥。

本实施例中,所述子群中的用户设备的状态发生变化可以包括子群中的用户设备的数量发生变化,还可以包括子群中的用户设备的标识发生变化。本发明对此不做具体限定,发生任何变化都可以认为子群中的用户设备的状态发生了变化。

本实施例中,所述子群中的用户设备的数量发生变化包括:子群中的用户设备的数量增加或者减少。所述子群中的用户设备的数量增加表示有新的用户设备加入子群中。所述子群中的用户设备的数量减少表示有用户设备退出了子群。当有新的用户设备加入子群或者有用户设备退出子群时,为子群生成新的子群密钥,由该子群的第二密钥分发中心将所述新的子群密钥分发给所述子群中的所有用户设备。子群中的用户设备的状态发生变化时,由第一密钥分发中心进行主群密钥的分发与管理,接着由状态发生变化的子群的第二密钥分发中心进行该子群中的用户设备的子群密钥的分发与管理,保证了群通讯的安全性和可靠性。

优选地,在将为主群生成的主群密钥分发给所述主群中的所有子群之后,所述方法还可以包括:判断所述主群密钥是否成功的分发给了所有子群。

请一并参阅图2所示,为本发明实施例中的判断所述主群密钥是否成功的分发给了所有子群的信令交互示意图。

所述判断所述主群密钥是否成功的分发给了所有子群的具体过程包括:

11)第一密钥分发中心s获取主群中的所有子群的第二密钥分发中心的名单列表,作为初始群成员名单列表u={u1,u2,u3,...,un-1};

12)为每个群成员分配私钥si和公钥对pi,群成员通过安全通道获取私钥和公钥信息,并保存主群中的所有其他群成员的公钥信息;

13)第一密钥分发中心s计算ki-1,i=sipi-1,椭圆曲线点ki-1,i=(xi-1,i,yi-1,i),计算bi-1=h(ui-1||ui||ti-1,i),然后,计算ki,i+1=sipi+1,和bi=h(ui||ui+1||ti,i+1),再计算最终,计算出x1到xn-1,并且x=x1,x2,x3,...xn-1},第一密钥分发中心发送信息m1={x}给群中的所有子群的第二密钥分发中心。

14)子群的第二密钥分发中心ui接收到信息m,解析其中包含的xi,按照1)步骤计算bi-1,然后通过xi计算bi,根据x,解析出所有的{x1,x2,...xn-1},然后,根据bi-1与bi依次计算{b1,b2,...,bn-1},通过{b1,b2,...,bn-1}计算出群密钥最后,计算并发送信息m2={ack}给第一密钥分发中心s;

15)第一密钥分发中心s接收到所有的信息m2之后验证ack是否等于如果验证ack等于则表明验证通过,主群密钥分发成功;否则,如果验证ack不等于则表明验证失败,终止协议。

优选地,当侦测到子群中的用户设备的状态发生变化为有用户设备退出子群时,在对状态发生变化的子群中的所有用户设备重新分发子群密钥之后,所示方法还可以包括:判断所述子群密钥是否成功的分发给了子群中的所有用户设备。

请一并参阅图3所示,为本发明实施例判断所述子群密钥是否成功的分发给了子群中的所有用户设备的信令交互示意图。

所述判断所述子群密钥是否成功的分发给了子群中的所有用户设备的具体过程为:

21)第一密钥分发中心s更新状态发生变化的子群的第二密钥分发中心的名单列表,作为子群成员名单列表u={u1,...ui-1,ui+1,...,un-1},同时,发生更新信息至其余状态没有发生变化的子群的第二密钥分发中心;

22)产生随机数r,并且更新所有的子群的第二密钥分发中心私钥,通过计算s′i=r+si,公钥更新为p′i=(r+si)g,如同所示步骤11)-12)一样计算{b1,b2,...,bn-1},然后再计算x={x1,x2,...,xn-2},最后第一密钥分发中心s通过广播的方式发送信息m3={r,x}给全部子群的第二密钥分发中心。

23)子群的第二密钥分发中心在接收到信息m3={r,x}之后,解析出r与x,首先更新密钥s′i=r+si与公钥pi′=(r+si)g,并更新其他成员的公钥通过计算p′k=p′k+rg。成员ui按照所示步骤13)一样,计算出所有{b1,b2,...,bn-1},然后,计算出群密钥计算并发送信息m4={ack}给第一密钥分发中心s。

24)第一密钥分发中心s接收到所有的信息m4之后验证ack是否等于如果验证ack等于则表明验证通过,子群密钥分发成功;否则,如果验证ack不等于则表明验证失败,终止协议。

优选地,当侦测到子群中的用户设备的状态发生变化为有新的用户设备加入子群时,在对状态发生变化的子群中的所有用户设备重新分发子群密钥之后,所示方法还可以包括:判断所述子群密钥是否成功的分发给了子群中的所有用户设备。

所述判断所述子群密钥是否成功的分发给了子群中的所有用户设备的具体过程为:

31)认证通过的子群的第二密钥分发中心可以加入群通讯中,在新成员正式加入群组之前,子群的第二密钥分发中心此时通过单向哈心函数更新群密钥,sk′=h(sk),并且更新此时群组成员名单u={u1,u1,...,un-1,un}。s在于新成员认证的过程中,建立了共享私钥sn,s通过sn加密sk′,m5=esn(sk),并发送m5给新加入的子群的第二密钥分发中心。

32)新成员在接收到m5之后,通过私钥机密信息获取主群密钥。

在上述步骤11)-15)、步骤21)-24)及步骤31)-32)中,各符号代表含义为:n为网络中用户设备的数量;s为第一密钥分发中心;ni为网络中的一般节点;si为成员ni的私钥;pi为成员ni的公钥;ui为用户成员ni的身份信息;u为子群的第二密钥分发中心身份信息列表;q为大质数;p为椭圆曲线的阶;g为椭圆曲线的基点;||连接操作;为异或操作。

综上所述,所述的群密钥分发管理方法,将主群下的所有用户设备划分为多个子群,每个子群包括至少一个用户设备;将为主群生成的主群密钥分发给所述主群中的所有子群;将为每一个子群生成的子群密钥分发给对应子群中的所有用户设备;当侦测到子群中的用户设备的状态发生变化时,对状态发生变化的子群中的所有用户设备重新分发子群密钥。

本发明通过对主群进行划分为多个子群,每个子群都有一个密钥分发中心对子群密钥进行分发与管理,所有的子群共享一个主群密钥,而同一个子群中的用户设备共享一个子群密钥,即主群管理多个子群,每一个子群管理本子群中的所有用户设备,两层级的密钥分发管理方式,能够使得当群规模庞大时,有用户设备加入或者离开时,只需要在对应的子群中进行密钥的重新分发与管理,而不需要对所有用户设备进行密钥的重新分发与管理,从而很大程度上减少了通讯量和计算量的消耗。而在子群中进行密钥的分发与管理也会考虑子群本身的拓扑结构,所以在子群中的密钥分发与管理的计算量和通讯量消耗也会很小。另外,保护了其他子群的隐私信息,并且由于其通讯的高效性,能够保证对于物联网环境更好的适应性,实现了资源与安全性的最大化。

上述图1-3详细介绍了本发明的群密钥分发管理方法,下面结合第4~5图,分别对实现所述群密钥分发管理方法的软件系统的功能模块以及实现所述群密钥分发管理方法的硬件系统架构进行介绍。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

实施例二

图4是本发明实施例二提供的群密钥分发管理装置的功能模块图。

群密钥分发管理装置40运行于电子设备中。所述群密钥分发管理装置40可以包括多个由程序代码段所组成的功能模块。所述群密钥分发管理装置40中的各个程序段的程序代码可以存储于所述电子设备的存储器中,并由所述电子设备的至少一个处理器所执行,以执行对群密钥的分发与管理。

本实施例中,所述群密钥分发管理装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:划分模块401、第一分发模块402、第二分发模块403、跨群通讯模块404、重分发模块405、第一判断模块406、第二判断模块407及第三判断模块408。上述各个模块之间通过至少一条通讯总线通讯。发明所称的模块是指一种能够被处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

划分模块401,用于将主群下的所有用户设备划分为多个子群,每个子群包括至少一个用户设备。

本实施例中,所述划分模块401可以获取群中的所有用户设备,将群中的所有用户设备划分为多个子群。为便于后续描述,对所有用户设备进行划分之前的所有用户设备所在的群称之为主群或总群,对所有用户设备划分之后的用户设备所在的群称之为子群或分群。

本实施例中,所述划分模块401可以根据预设规则将所述主群中的所有用户设备划分为多个子群。

本实施例中,所述预设规则可以包括以下一种或者多种的组合:

1)根据预设子群的数量,对主群中的所有用户设备进行均分,每个子群包括相同数量的用户设备。

所述预设子群的数量为预先设置的划分为子群的数量,例如,预先设置划分为n个子群,主群中有m个用户设备,则划分为n个子群后的每个子群包括m/n个用户设备。将用户设备进行均分,每个子群中的用户设备的数量相同,可保证子群之间具有相等的通讯量,避免造成某些子群中的用户设备数量较少而其他子群中的用户设备数量太多导致的通讯量较大的问题发生。

2)根据用户设备的标识对主群进行化分为多个子群,每个子群包括的用户设备具有相同的标识。

所述用户设备的标识可以包括设备的生产商等。可以将由同一个生产商生产的用户设备划分为同一个子群,将由不同的生产商生成的用户设备划分为不同的子群。根据用户设备的标识对主群进行划分,同一个子群管理相同标识的用户设备,从而使得子群的管理更为便捷且有区别性。

第一分发模块402,用于将为主群生成的主群密钥分发给所述主群中的所有子群。

本实施例中,所述第一分发模块402可以预先为所述主群设置一个第一密钥分发中心。在物联网环境下,可以为主群设置一个受信任的实体作为第一密钥分发中心进行主群密钥的分发与管理。所述第一分发模块402通过第一密钥分发中心将主群密钥分发给每一个子群,所有子群之间共享同一个主群密钥,所述主群密钥用于保证子群与子群之间的跨群通讯的安全性。

第二分发模块403,用于将为每一个子群生成的子群密钥分发给对应子群中的所有用户设备。

本实施例中,所述第二分发模块403可以预先为所述每一个子群设置一个第二密钥分发中心。在物联网环境下,可以为每一个子群设置一个受信任的实体作为第二密钥分发中心进行子群密钥的分发与管理。每一个子群的第二密钥分发中心接收第一密钥分发中心分发的主群密钥,同时第二密钥分发中心将为每一个子群生成的一个子群密钥分发给本群中的所有用户设备。同一个子群中的所有用户设备之间共享同一个子群密钥,所述子群密钥用于保证对应子群中的用户设备与用户设备之间的通讯的安全性。

例如,第二分发模块403为第一子群生成第一子群密钥,为第二子群生成第二子群密钥,为第三子群生成第三子群密钥。第二分发模块403通过第一子群密钥分发中心将第一子群密钥分发给第一子群中的所有用户设备,通过第二子群密钥分发中心将第二子群密钥分发给第二子群中的所有用户设备,通过第三子群密钥分发中心将第三子群密钥分发给第三子群中的所有用户设备。第一子群中的所有用户设备共享第一子群密钥,第一子群中的用户设备与用户设备进行通讯时,可以基于第一子群密钥实现通讯的安全保障。第二子群中的所有用户设备共享第二子群密钥,第二子群中的用户设备与用户设备进行通讯时,可以基于第二子群密钥实现通讯的安全保障。

应当理解的是,由于不同子群之间的用户设备共享不同的子群密钥,要实现不同子群的用户设备之间的跨群通讯时,所述群密钥分发管理装置40还可以包括跨群通讯模块404,用于获取需进行跨群通讯的用户设备对应的两个子群;对所述两个子群进行双方通讯认证;当确定所述两个子群双方通讯认证成功时,对所述需进行跨群通讯的用户设备进行跨群通讯连接。

例如,第一子群中的用户设备需要与第二子群中的用户设备进行跨群通讯时,第一子群向第二子群发送第一通讯请求,第二子群对第一通讯请求进行认证并在认证成功后向第一子群发送第二通讯请求,第一子群对第二通讯请求进行认证并在认证成功后,对第一子群中的用户设备与与第二子群中的用户设备进行通讯连接。

重分发模块405,用于当侦测到子群中的用户设备的状态发生变化时,对状态发生变化的子群中的所有用户设备重新分发子群密钥。

本实施例中,所述子群中的用户设备的状态发生变化可以包括子群中的用户设备的数量发生变化,还可以包括子群中的用户设备的标识发生变化。本发明对此不做具体限定,发生任何变化都可以认为子群中的用户设备的状态发生了变化。

本实施例中,所述子群中的用户设备的数量发生变化包括:子群中的用户设备的数量增加或者减少。所述子群中的用户设备的数量增加表示有新的用户设备加入子群中。所述子群中的用户设备的数量减少表示有用户设备退出了子群。当有新的用户设备加入子群或者有用户设备退出子群时,为子群生成新的子群密钥,由该子群的第二密钥分发中心将所述新的子群密钥分发给所述子群中的所有用户设备。子群中的用户设备的状态发生变化时,由第一密钥分发中心进行主群密钥的分发与管理,接着由状态发生变化的子群的第二密钥分发中心进行该子群中的用户设备的子群密钥的分发与管理,保证了群通讯的安全性和可靠性。

优选地,所述群密钥分发管理装置40还可以包括第一判断模块406,用于在将为主群生成的主群密钥分发给所述主群中的所有子群之后,判断所述主群密钥是否成功的分发给了所有子群。

请一并参阅图2所示,为本发明实施例中的判断所述主群密钥是否成功的分发给了所有子群的信令交互示意图。

所述第一判断模块406判断所述主群密钥是否成功的分发给了所有子群的具体过程包括:

11)第一密钥分发中心s获取主群中的所有子群的第二密钥分发中心的名单列表,作为初始群成员名单列表u={u1,u2,u3,...,un-1};

12)为每个群成员分配私钥si和公钥对pi,群成员通过安全通道获取私钥和公钥信息,并保存主群中的所有其他群成员的公钥信息;

13)第一密钥分发中心s计算ki-1,i=sipi-1,椭圆曲线点ki-1,i=(xi-1,i,yi-1,i),计算bi-1=h(ui-1||ui||ti-1,i),然后,计算ki,i+1=sipi+1,和bi=h(ui||ui+1||ti,i+1),再计算最终,计算出x1到xn-1,并且x={x1,x2,x3,...xn-1},第一密钥分发中心发送信息m1={x}给群中的所有子群的第二密钥分发中心。

14)子群的第二密钥分发中心ui接收到信息m,解析其中包含的xi,按照1)步骤计算bi-1,然后通过xi计算bi,根据x,解析出所有的{x1,x2,...xn-1},然后,根据bi-1与bi依次计算{b1,b2,...,bn-1},通过{b1,b2,...,bn-1}计算出群密钥最后,计算并发送信息m2={ack}给第一密钥分发中心s;

15)第一密钥分发中心s接收到所有的信息m2之后验证ack是否等于如果验证ack等于则表明验证通过,主群密钥分发成功;否则,如果验证ack不等于则表明验证失败,终止协议。

优选地,所示群密钥分发管理装置40还可以包括第二判断模块407,用于当侦测到子群中的用户设备的状态发生变化为有用户设备退出子群时,在对状态发生变化的子群中的所有用户设备重新分发子群密钥之后,判断所述子群密钥是否成功的分发给了子群中的所有用户设备。

请一并参阅图3所示,为本发明实施例判断所述子群密钥是否成功的分发给了子群中的所有用户设备的信令交互示意图。

所述第二判断模块407判断所述子群密钥是否成功的分发给了子群中的所有用户设备的具体过程为:

21)第一密钥分发中心s更新状态发生变化的子群的第二密钥分发中心的名单列表,作为子群成员名单列表u={u1,...ui-1,ui+1,...,un-1},同时,发生更新信息至其余状态没有发生变化的子群的第二密钥分发中心;

22)产生随机数r,并且更新所有的子群的第二密钥分发中心私钥,通过计算s′i=r+si,公钥更新为p′i=(r+si)g,如同所示步骤11)-12)一样计算{b1,b2,...,bn-1},然后再计算x={x1,x2,...,xn-2},最后第一密钥分发中心s通过广播的方式发送信息m3={r,x}给全部子群的第二密钥分发中心。

23)子群的第二密钥分发中心在接收到信息m3={r,x}之后,解析出r与x,首先更新密钥s′i=r+si与公钥p′i=(r+si)g,并更新其他成员的公钥通过计算p′k=p′k+rg。成员ui按照所示步骤13)一样,计算出所有{b1,b2,...,bn-1},然后,计算出群密钥计算并发送信息m4={ack}给第一密钥分发中心s。

24)第一密钥分发中心s接收到所有的信息m4之后验证ack是否等于如果验证ack等于则表明验证通过,子群密钥分发成功;否则,如果验证ack不等于则表明验证失败,终止协议。

优选地,所示群密钥分发管理装置40还可以包括第三判断模块408,用于当侦测到子群中的用户设备的状态发生变化为有新的用户设备加入子群时,在对状态发生变化的子群中的所有用户设备重新分发子群密钥之后,判断所述子群密钥是否成功的分发给了子群中的所有用户设备。

所述第三判断模块408判断所述子群密钥是否成功的分发给了子群中的所有用户设备的具体过程为:

31)认证通过的子群的第二密钥分发中心可以加入群通讯中,在新成员正式加入群组之前,子群的第二密钥分发中心此时通过单向哈心函数更新群密钥,sk′=h(sk),并且更新此时群组成员名单u={u1,u1,...,un-1,un}。s在于新成员认证的过程中,建立了共享私钥sn,s通过sn加密sk′,m5=esn(sk),并发送m5给新加入的子群的第二密钥分发中心。

32)新成员在接收到m5之后,通过私钥机密信息获取主群密钥。

在上述步骤11)-15)、步骤21)-24)及步骤31)-32)中,各符号代表含义为:n为网络中用户设备的数量;s为第一密钥分发中心;ni为网络中的一般节点;si为成员ni的私钥;pi为成员ni的公钥;ui为用户成员ni的身份信息;u为子群的第二密钥分发中心身份信息列表;q为大质数;p为椭圆曲线的阶;g为椭圆曲线的基点;||连接操作;为异或操作。

综上所述,所述的群密钥分发管理装置,将主群下的所有用户设备划分为多个子群,每个子群包括至少一个用户设备;将为主群生成的主群密钥分发给所述主群中的所有子群;将为每一个子群生成的子群密钥分发给对应子群中的所有用户设备;当侦测到子群中的用户设备的状态发生变化时,对状态发生变化的子群中的所有用户设备重新分发子群密钥。

本发明通过对主群进行划分为多个子群,每个子群都有一个密钥分发中心对子群密钥进行分发与管理,所有的子群共享一个主群密钥,而同一个子群中的用户设备共享一个子群密钥,即主群管理多个子群,每一个子群管理本子群中的所有用户设备,两层级的密钥分发管理方式,能够使得当群规模庞大时,有用户设备加入或者离开时,只需要在对应的子群中进行密钥的重新分发与管理,而不需要对所有用户设备进行密钥的重新分发与管理,从而很大程度上减少了通讯量和计算量的消耗。而在子群中进行密钥的分发与管理也会考虑子群本身的拓扑结构,所以在子群中的密钥分发与管理的计算量和通讯量消耗也会很小。另外,保护了其他子群的隐私信息,并且由于其通讯的高效性,能够保证对于物联网环境更好的适应性,实现了资源与安全性的最大化。

实施例三

图5为本发明实施例三提供的电子设备5的示意图。所述电子设备5包括存储器20、处理器30、存储在所述存储器20中并可在所述处理器30上运行的计算机程序40及至少一条通讯总线60。所述处理器30执行所述计算机程序40时实现上述群密钥分发管理方法。或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能。

示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述电子设备5中的执行过程。

所述电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备5还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元,还可以是其他通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述电子设备5的控制中心,利用各种接口和线路连接整个电子设备5的各个部分。

所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述电子设备5的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备5的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述电子设备5集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在本发明所提供的几个实施例中,应该理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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