CN110784318B - 群密钥更新方法、装置、电子设备、存储介质及通信系统 - Google Patents

群密钥更新方法、装置、电子设备、存储介质及通信系统 Download PDF

Info

Publication number
CN110784318B
CN110784318B CN201911051108.2A CN201911051108A CN110784318B CN 110784318 B CN110784318 B CN 110784318B CN 201911051108 A CN201911051108 A CN 201911051108A CN 110784318 B CN110784318 B CN 110784318B
Authority
CN
China
Prior art keywords
key
group
client
updated
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911051108.2A
Other languages
English (en)
Other versions
CN110784318A (zh
Inventor
朱阅岸
林正显
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201911051108.2A priority Critical patent/CN110784318B/zh
Publication of CN110784318A publication Critical patent/CN110784318A/zh
Application granted granted Critical
Publication of CN110784318B publication Critical patent/CN110784318B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种群密钥更新方法、装置、电子设备、存储介质及通信系统,其中,所述方法应用于第一客户端,包括:在更新自身密钥后,利用更新后的自身密钥更新密钥树上各个节点的密钥对;针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给群成员的客户端,以使群成员的客户端根据公钥以及更新路径计算更新后的群私钥。作为群密钥更新的发起者第一客户端,有针对性地发送每个群成员计算群私钥所相关的各个节点更新后的公钥,能够有效减小传输带宽,节约网络传输开销,其他群成员客户端在弱网环境下也能够及时更新群密钥。

Description

群密钥更新方法、装置、电子设备、存储介质及通信系统
技术领域
本申请涉及信息安全技术领域,尤其涉及一种群密钥更新方法、装置、电子设备、存储介质及通信系统。
背景技术
目前,相关现有技术提出在群组通讯中采用二叉树的数据结构作为密钥树,基于该密钥树可以生成群成员之间通讯使用的群密钥,其具体的工作模式如下:假设群G拥有4个群成员{A,B,C,D},当其中一个群成员(例如A)发起生成群密钥,则请求获取其他群成员B、C、D的公钥,A利用自身的私钥与B、C、D的公钥分别进行密钥交换运算,生成与每个其他群成员之间的公私钥对,并基于密钥树自底向上生成群密钥,群密钥是一个密钥对,包括群公钥和群私钥,A在生成群密钥后,将群公钥及密钥树结构发送给其他群成员B、C、D,群成员B、C、D再根据接收到的群公钥以及基于密钥树结构作自底向上的密钥交换运算,获得群私钥,从而获得完整的群密钥。群密钥可以用于对群组消息的加密和解密,例如,群成员A要发送群组消息时,采用群公钥进行加密群组消息,其他群成员接收到加密的群组消息,利用自身保存的群私钥进行解密,从而获得原始的群组消息。
为了保证群组通讯的前向安全性和后向安全性,需要对群密钥进行更新,例如A发起群密钥更新,采用的手段是更新自身的密钥,同样采取生成群密钥的方法,基于密钥树自底向上进行更新,得到更新后的群密钥,则将密钥树上所有节点更新后的密钥对中的公钥发送给其他群成员,其他群成员的客户端根据接收到的所有节点更新后的密钥对中的公钥,基于本地保存的密钥树自底向上进行密钥交换运算,最终得到更新后的群密钥。
然而,采用这种方法需要将所有节点更新后的密钥对的公钥和整个更新路径发送给其他群成员进行群密钥的更新,会占用较大的传输带宽。
发明内容
为克服相关技术中存在的问题,本申请提供了一种群密钥更新方法、装置、电子设备、存储介质及通信系统。
根据本申请实施例的第一方面,提供一种群密钥更新方法,所述方法应用于第一客户端,所述方法包括:
在更新自身密钥后,利用更新后的所述自身密钥更新密钥树上各个节点的密钥对;
针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端,以使所述群成员的客户端根据所述公钥以及更新路径计算更新后的群私钥,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点,所述更新路径为所述密钥树中与所述群成员的客户端计算更新后的群私钥相关的路径。
根据本申请实施例的第二方面,提供一种群密钥更新方法,所述方法应用于第二客户端,所述方法包括:
接收第一客户端发送的目标节点的更新后的密钥对中的公钥,其中,所述目标节点为计算群私钥相关的节点;
根据所述公钥以及更新路径计算更新后的群私钥,所述更新路径为所述密钥树中与所述第二客户端计算更新后的群私钥相关的路径。
根据本申请实施例的第三方面,提供一种通信系统,所述系统包括服务端、至少一个第一客户端及至少一个第二客户端,
所述第一客户端用于在更新自身密钥后,利用更新后的所述自身密钥更新密钥树上各个节点的密钥对;
所述第一客户端还用于针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述服务端,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点;
所述服务端用于接收所述第一客户端发送的其他每个群成员的所述目标节点的更新后的密钥对中的公钥,并转发给相应的群成员的第二客户端;
所述第二客户端用于接收所述服务端转发的所述目标节点的更新后的密钥对中的公钥;
所述第二客户端还用于根据所述公钥以及更新路径计算更新后的群私钥,所述更新路径为所述密钥树中与所述第二客户端计算更新后的群私钥相关的路径。
根据本申请实施例的第四方面,提供一种群密钥更新装置,所述装置包括:
更新模块,用于在更新自身密钥后,利用更新后的所述自身密钥更新密钥树上各个节点的密钥对;
发送模块,用于针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端,以使所述群成员的客户端根据所述公钥以及更新路径计算更新后的群私钥,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点,所述更新路径为所述密钥树中与所述群成员的客户端计算更新后的群私钥相关的路径。
根据本申请实施例的第五方面,提供一种群密钥更新装置,所述装置包括:
接收模块,用于接收第一客户端发送的目标节点的更新后的密钥对中的公钥,其中,所述目标节点为计算群私钥相关的节点;
更新模块,用于根据所述公钥以及更新路径计算更新后的群私钥,所述更新路径为所述密钥树中计算更新后的群私钥相关的路径。
根据本申请实施例的第六方面,提供一种电子设备,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例任意一项所述的群密钥更新方法的步骤。
根据本申请实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请实施例任意一项所述的群密钥更新方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本技术方案中的发起群密钥更新的第一客户端在更新自身密钥后,并利用更新后的自身密钥,基于密钥树更新各个节点的密钥对,从而第一客户端获取到了更新后的群密钥。并且,第一客户端针对每一个群成员,将每一个群成员的客户端计算群私钥相关的各个节点对应的更新后的密钥对中的公钥发送给相应的群成员的客户端,例如,其中一个群成员计算群私钥所相关的节点有两个,则将该两个节点更新后的公钥发给该群成员,另一个群成员计算群私钥所相关的节点有一个,则将该一个节点更新后的公钥发给群成员,每个群成员的客户端接收到自己计算群私钥所需的节点更新后的公钥后,基于密钥树计算出更新后的群私钥,更新后的群公钥包括在接收到的公钥中,从而获取更新后的群密钥。
在本技术方案中,作为群密钥更新的发起者第一客户端,有针对性地向每个群成员的客户端发送计算群私钥所相关的各个节点更新后的公钥,相较于现有的将所有节点更新后的公钥均发给其他群成员的客户端,其他群成员客户端基于密钥树自底向上地更新的相关技术,能够有效减小传输带宽,节约网络传输开销,其他群成员客户端在弱网环境下也能够及时更新群密钥。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一示例性实施例示出的密钥树的结构示意图。
图2为本申请一示例性实施例示出的一种群密钥更新方法的流程图。
图3为本申请一示例性实施例示出的第一客户端发送的更新后的公钥的加密过程流程图。
图4为本申请一示例性实施例示出的第一客户端发送的更新后的公钥的设置验证过程流程图。
图5为本申请一示例性实施例示出的另一种群密钥更新方法的流程图。
图6为本申请一示例性实施例示出的第二客户端接收的更新后的公钥的解密过程流程图。
图7为本申请一示例性实施例示出的第二客户端接收的更新后的公钥的验证过程流程图。
图8为本申请一示例性实施例示出的一种通信系统的交互流程图。
图9为本申请一示例性实施例示出的一种群密钥更新装置的结构框图。
图10为本申请一示例性实施例示出的另一种群密钥更新装置的结构框图。
图11为本申请一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合附图,对本申请的群密钥更新方法、系统、装置、电子设备及存储介质进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
本申请的群密钥更新方法、装置、电子设备、存储介质及通信系统,可以应用于即时聊天应用程序、协同办公应用程序等应用场景中。例如,在即时聊天应用程序的应用场景中,多个用户可以组建群组进行聊天,该群组中的每个群成员可以发送群组消息,也可以接收群组消息。为了提高群组通讯的保密性和安全性,利用密钥树生成一个群密钥,群密钥是一个密钥对,包括群公钥和群私钥,一个群成员通过客户端在发送群组消息时,采用群公钥对群组消息进行加密再发送给其他群成员,其他群成员通过客户端接收该加密后群组消息时,采用对应的群私钥进行解密,获得原始的群组消息,则能够获得群组消息的内容。同理,在协同办公应用程序中,某个公司、部门或者工作小组可以组建一个群组进行办公,如在该群组中下发工作、汇报工作、文件传递等,在发送消息、通知、文件等时,可以采用群公钥对消息、通知、文件进行加密,群组内的成员接收到后采用群私钥进行解密。上述的即时聊天应用程序、协同办公程序等可以装载在智能手机、平板电脑、台式计算机、便携式计算机、PDA(Personal Digital Assistant,个人数字助理)等终端设备,也可以是线上网站的一个具体的应用程序,用户通过打开终端设备或者访问线上网站使用该应用程序,本申请不作具体的限定。
在对本申请的群密钥更新方法进行详细说明之前,先对密钥树的结构进行说明。一个群组在创建时,需要构建一棵密钥树,并基于这棵密钥树来生成群密钥。密钥树通常包括叶子节点、中间节点和根节点,其中,叶子节点代表用户节点的密钥,中间节点代表辅助密钥,根节点代表群密钥。密钥树中的每个用户节点拥有从对应的叶子节点到根节点路径上的所有密钥。每个群成员自身拥有的密钥包括身份密钥和临时密钥,身份密钥是一个包括身份公钥和身份私钥的密钥对,临时密钥是一个包括临时公钥和临时私钥的密钥对。
图1所示为本申请一示例性实施例示出的密钥树的结构示意图,在本实施例中,以一个4人群组为例,该群组包括群成员A、B、C、D,在创建群组时,根据二叉树的数据结构构建了一棵密钥树,基于该密钥树生成群密钥。每个群成员都可以发起生成群密钥的请求。以群成员A发起生成群密钥的请求为例,如图1所示,密钥树10包括叶子节点111、112、113及114,中间节点121、122,以及根节点131。其中,叶子节点111为A的私钥KA,叶子节点112为A利用自身的身份私钥和临时私钥与B的身份公钥和临时公钥进行密钥交换运算得到的密钥对KAB,叶子节点113为A利用自身的身份私钥和临时私钥与C的身份公钥和临时公钥进行密钥交换运算得到的密钥对KAC,叶子节点114为A利用自身的身份私钥和临时私钥与D的身份公钥和临时公钥进行密钥交换运算得到的密钥对KAD;中间节点121为叶子节点111对应的A的私钥KA和叶子节点112对应的密钥对KAB的公钥进行密钥交换运算得到的密钥对DH1,中间节点122为叶子节点113对应的密钥对KAC的私钥和叶子节点114对应的密钥对KAD的公钥进行密钥交换运算得到的密钥对DH2,或者是密钥对KAC的公钥和密钥对KAD的私钥进行密钥交换运算得到相同的密钥对DH2;根节点131是中间节点121对应的密钥对DH1的私钥和中间节点122对应的密钥对DH2的公钥进行密钥交换运算得到的密钥对DH3,或者是密钥对DH1的公钥和密钥对DH2的私钥进行密钥交换运算得到相同的密钥对DH3,DH3即为生成的群密钥。
在A生成群密钥后,会将密钥树10的数据结构、群密钥的生成路径以及上述各个节点的密钥对的公钥发送给其他群成员B、C、D,群成员B、C、D接收到后,会将密钥树10的数据结构存储于本地,并根据接收到的群密钥的生成路径和密钥树各个节点对应的公钥,基于密钥树10自底向上地进行密钥交换运算,获得上述各个节点的密钥对,从而获取生成的群密钥。也就是说,A通过运算生成的包括群公钥和群私钥的群密钥不会直接全部发送给其他群成员,其他群成员并不是直接获取群密钥的,其中,群私钥是需要其他群成员的客户端逐步进行密钥交换运算得到,从而得到完整的包括群公钥和群私钥的群密钥。
需要说明的是,本申请并不对群组群成员的数量进行限制。当群组的群成员小于或者大于4时,也是根据上述的二叉树的数据结构去构建密钥树,基于密钥树生成群密钥,对应的密钥树与图1所示的密钥树相似,本文不再进行列举。
为了保证群组通讯的前向安全性和后向安全性,群组可以定期或者不定期进行群密钥更新。现有的相关技术中,当其中一个群成员发起群密钥更新时,先更新自己的密钥,基于密钥树自底向上地进行更新,即从密钥树的叶子节点到根节点的方向对各个节点的密钥对进行更新,直至更新到根节点的群密钥,完成群密钥的更新,包括对群公钥和群私钥的更新。
在图1所示的示例性实施例中,若由A发起群密钥更新的请求,可以通过更新自身的身份密钥或者临时密钥,基于密钥树10自底向上进行更新,即叶子节点111、112、113、114对应的密钥对KAB、KAC、KAD也进行密钥交换运算更新,中间节点121、122对应的密钥对DH1和DH2也进行密钥交换运算更新,根节点131对应的密钥对DH3也进行密钥交换运算更新,从而得到更新后的群密钥。与生成密钥的方法相似,发起群密钥更新的A将整条更新路径以及更新路径上各个节点更新后的密钥对的的公钥以及发送给其他群成员B、C、D,群成员B、C、D的客户端根据接收到的整条更新路径以及各个节点的公钥,基于密钥树10自底向上地进行密钥交换运算,更新各个节点的密钥对,从而获取更新后的群密钥。但是,A在发送更新路径和公钥时占用的传输带宽较大。
为了解决占用传输带宽大的问题,根据本申请的第一方面,提供了一种群密钥更新方法,图2所示为本申请一示例性实施例示出的一种群密钥更新方法的流程图。该群密钥更新方法应用于第一客户端,该群密钥更新方法包括以下步骤201至202:
步骤201,在更新自身密钥后,利用更新后的所述自身密钥更新密钥树上各个节点的密钥对。
在步骤201中,第一客户端发起群密钥更新的动作,通过更新自身密钥来实现群密钥的更新。在更新自身密钥后,基于该群组的密钥树自底向上地进行密钥交换运算,即从密钥树的叶子节点向根节点的路径更新各个节点的密钥对,可以获取到更新后的群密钥。应该理解的是,本实施例中的密钥树与图1所示的密钥树结构的相关技术相同,在此不再赘述。
在本申请一种可能的实施方式中,自身密钥包括身份密钥和临时密钥,身份密钥包括身份公钥和身份私钥,临时密钥包括临时公钥和临时私钥。第一客户端可以是更新身份密钥,也可以是更新临时密钥,也可以是更新身份密钥和临时密钥。
在本申请一种可能的实施方式中,第一客户端利用迪菲-赫尔曼算法(Diffie-Hellman,DH算法)更新密钥树上各个节点的密钥对。
步骤202,针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端,以使所述群成员的客户端根据所述公钥以及更新路径计算更新后的群私钥,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点,所述更新路径为所述密钥树中与所述群成员的客户端计算更新后的群私钥相关的路径。
将针对与其中一个群成员计算群私钥所相关的各个节点更新后的公钥发送给相应的群成员的客户端,以使所述群成员的客户端根据所述相关的各个节点更新后的公钥计算更新后的群私钥,获取更新后的群密钥。
在步骤202中,第一客户端确定每个群成员进行群密钥所需的目标节点,将目标节点更新后的密钥对中的公钥发送给相应的群成员的客户端。目标节点是指第一客户端针对群组中的其他每个群成员所要发送的密钥树上的节点,且这些目标节点是每个群成员的客户端计算更新后的群私钥相关的节点,目标节点可以是第一客户端的群成员与群成员在密钥树上的全部公共节点,目标节点可以是一个或者多个。第一客户端在进行群密钥更新时,基于密钥树自底向上地进行密钥交换运算,密钥树上的每个节点对应的密钥对都进行了更新。
以目标节点为第一客户端与群成员在密钥树上的公共节点为例,其他群成员的客户端在接收到第一客户端发送的公共节点对应的更新后的密钥对中的公钥后,可以根据所获取的公共节点更新后的公钥中获取公共节点信息,根据公共节点与本地存储有的密钥树,确定更新路径,根据更新路径以及更新路径上公共节点更新后的公钥,采用更新前的密钥对中的私钥与更新后的密钥对中的公钥进行密钥交换运算,得到更新后的私钥,其中包括更新后的群私钥,从而获得各个公共节点对应的更新后的密钥对。应该理解的是,其他群成员获得的更新后的密钥对与第一客户端获得的更新后的密钥对一致,更新后的密钥对包括更新后的群密钥。
在本申请一种可能的实施方式中,第一客户端向其他群成员的客户端发送各个公共节点更新后的公钥时,可以设置每个公钥携带一个标识,该标识可以是用于识别公共节点,也可以是用于描述公共节点的唯一性,这样,当其他群成员的客户端接收到公钥时,能够识别每个公钥对应的公共节点,确定更新路径。
在本申请一种可能的实施方式中,如果第一客户端对应的群成员与其他群成员之间的公共节点可以只有一个,这种情况下可以不设置公钥携带标识。
上述的更新路径可以是由公共节点组成,更新路径是一条从第一客户端的群成员与其他群成员在密钥树上深度最大的公共节点(又称最近公共节点)到根节点的路径。根节点也是第一客户端的群成员与其他群成员在密钥树上的公共节点。其他群成员的客户端根据从最近公共节点到根节点的方向更新,从而得到更新后的群密钥。当第一客户端的群成员与其他群成员的公共节点只有根节点的情况,即根节点也是他们之间的最近公共节点,更新路径由根节点组成,其他群成员的客户端只需更新根节点的密钥对,即可得到更新后的群密钥。
例如,在图1所示的例子中,群成员A与B的公共节点是中间节点121和根节点131,群成员A与C的公共节点是根节点131,群成员A与D的公共节点是根节点131,群成员B与C的公共节点是根节点131,群成员C与D的公共节点是中间节点122和根节点131。群成员A作为更新群密钥的发起者,通过第一客户端分别将与群成员B、C、D的公共节点对应的更新后的密钥对中的公钥发送给群成员B、C、D的客户端,群成员B、C、D可以根据公共节点确定更新路径,按照更新路径对各个公共节点进行更新,利用公共节点对应的密钥对中原来的私钥与更新后的公钥进行密钥交换运算,得到各个公共节点更新后的私钥,从而得到各个公共节点更新后的密钥对。如群成员B的客户端接收到中间节点121和根节点131更新后的密钥对中的公钥后,确定更新路径是中间节点121至根节点131,将中间节点121更新后的密钥对中的公钥与原来的密钥对中的私钥进行密钥交换运算,得到中间节点121更新后的私钥,再将根节点131更新后的群密钥中的群公钥与原来的群密钥中的群私钥进行密钥交换运算,得到更新后的群私钥,从而得到更新后的群密钥。群成员C、D的客户端在接收到与群成员A的公共节点之后,采用与群成员B的客户端相同的处理方法,获得更新后的群密钥,在此不再赘述。
在本申请一种可能的实施方式中,第一客户端在发送其他每个群成员对应的目标节点更新后的密钥对中的公钥时,还可以发送对应的更新路径。也就是说,第一客户端还确定了每个群成员进行群密钥更新的更新路径。第一客户端在更新了密钥树上各个节点后,可以得到自身的更新路径,第一客户端还可以获取与其他每个群成员之间在密钥树上的公共节点,将公共节点与自身的更新路径取交集,获取其他每个群成员的更新路径,这样,其他群成员的客户端在接收到目标节点更新后的公钥以及更新路径,无需再通过获取的目标节点信息来确定更新路径,可以直接按照接收到的更新路径进行更新,提高了其他群成员的客户端的更新速度。
在本申请另一种可能的实施方式中,其他群成员的更新路径是其他群成员的客户端基于接收到的目标节点确定。在本申请一种可能的实施方式中,其他群成员的客户端利用迪菲-赫尔曼算法(Diffie-Hellman,DH算法)更新密钥树上各个目标节点的密钥对,获得更新后的群密钥。
本实施例提供的上述方法,发起群密钥更新的第一客户端在更新自身密钥后,并利用更新后的自身密钥,基于密钥树更新各个节点的密钥对,从而第一客户端获取到了更新后的群密钥。并且,第一客户端针对每一个群成员,将每一个群成员计算群私钥相关的各个节点对应的更新后的密钥对中的公钥发送给相应的群成员的客户端,例如,其中一个群成员计算群私钥相关的节点有两个,则将该两个节点更新后的公钥发给该群成员,另一个群成员计算群私钥相关的节点有一个,则将该一个节点更新后的公钥发给群成员,每个群成员的客户端接收到自己计算群私钥所需的节点更新后的公钥后,基于密钥树计算出更新后的群私钥,更新后的群公钥包括在接收到的公钥中,从而获取更新后的群密钥。上述方法中,作为群密钥更新的发起者第一客户端,有针对性地向每个群成员的客户端发送计算群私钥所相关的各个节点更新后的公钥,相较于现有的将所有节点更新后的公钥均发给其他群成员的客户端,其他群成员客户端基于密钥树自底向上地更新的相关技术,能够有效减小传输带宽,节约网络传输开销,其他群成员客户端在弱网环境下也能够及时更新群密钥。
在本申请的一示例性实施例中为了进一步减小传输带宽,第一客户端将与其他每个群成员之间的最近公共节点更新后的密钥对中的公钥发送给对应的群成员的客户端。最近公共节点是第一客户端的群成员与其他群成员在密钥树上深度最大的公共节点,或者说,从密钥树的叶子节点到根节点的路径上,两个群成员之间对应的叶子节点之间的第一个公共节点。例如,在图1所示的例子中,群成员A与B的最近公共节点是中间节点121,群成员A与C的最近公共节点是根节点131,群成员A与D的最近公共节点是根节点131,群成员B与C的最近公共节点是根节点131,群成员C与D的最近公共节点是中间节点122。
在本实施例中,第一客户端将与群成员之间的最近公共节点对应的更新后的公钥发送给相应的群成员的客户端,其他群成员的客户端在接收到与第一客户端的最近公共节点对应的更新后的公钥后,可以根据更新路径和密钥交换算法,利用最近公共节点的更新后的公钥和原来的私钥,计算得到更新后的私钥,从而更新最近公共节点的密钥对,再根据密钥交换算法,利用最近公共节点更新后的私钥和最近公共节点对应进行密钥交换的节点的原来的公钥,得到上一层节点更新后的密钥对,依次类推,从而得到更新后的群密钥。
例如,在图1所示的例子中,群成员A的客户端将与群成员B的最近公共节点121对应的更新后的公钥发送给群成员B的客户端,群成员B的客户端将接收到的最近公共节点121的更新后的公钥和原来的私钥进行密钥交换运算,得到更新后的私钥,从而得到最近公共节点121更新后的密钥对DH′1。再利用中间节点121更新后的密钥对DH′1中的私钥与和中间节点122的密钥对DH2中的公钥进行密钥交换运算得到根节点131更新后的密钥对DH′3;或者是利用中间节点121更新后的密钥对DH′1中的公钥与和中间节点122的密钥对DH2中的私钥进行密钥交换运算得到根节点131更新后的密钥对DH′3,即得到更新后的群密钥DH′3。而群成员C和D,由于群成员A与C、D的最近公共节点是根节点131,因此,群成员A的客户端将最近公共节点131对应的更新后的公钥发送给群成员C、D的客户端,群成员C、D的客户端将接收到的最近公共节点131的更新后的公钥和原来的私钥进行密钥交换运算,得到更新后的私钥,从而得到最近公共节点131更新后的密钥对DH′3,即得到更新后的群密钥DH′3
在本实施例中,发起群密钥更新的第一客户端在更新自身密钥后,并利用更新后的自身密钥,基于密钥树更新各个节点的密钥对,从而第一客户端获取到了更新后的群密钥。并且,第一客户端针对其他每个群成员,将与每一个群成员之间的最近公共节点对应的更新后的公钥发送给相应的群成员的客户端,由其他群成员的客户端根据接收到的最近公共节点更新后的公钥进行密钥交换运算,从而得到更新后的群密钥。第一客户端针对其他群成员只需发送一个公钥,能够进一步减小传输带宽,进一步节约网络传输开销。
在本申请的一示例性实施例中,为了提高保密性及数据传输的安全性,在将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端之前,还可以包括:利用当前的群公钥,对所述公钥进行加密。图3所示为一示例性实施例示出的第一客户端对发送的公钥进行加密的过程流程图,如图3所示,所述加密步骤具体包括以下步骤301至302:
步骤301,利用当前的群公钥,对发送给所述群成员的客户端的所述目标节点的更新后的密钥对中的公钥进行加密,生成加密消息包。
在步骤301中,当前的群公钥是指第一客户端发起本次群密钥更新时,现有的群密钥中的群公钥,即更新前的原来的群公钥。如果本次群密钥更新是第一次更新,那么原来的群公钥则为组建群组时生成的群密钥中的群公钥。如果本次群密钥更新非第一次更新,那么原来的群公钥则为上一次更新的群密钥中的群公钥。第一客户端在将目标节点的更新后的公钥发送给其他每个群成员的客户端之前,利用原来的群公钥对所要发送的更新后的公钥进行加密,并生成加密消息包。应该理解的是,针对群组中其他每个群成员,对应生成一个加密消息包。
步骤302,将所述加密消息包发送给相应的群成员的客户端。
在步骤302中,第一客户端将加密消息包发送给相应的群成员的客户端,其他群成员的客户端接收到加密消息包后,采用原来的群私钥进行解密,可以得到计算群私钥所相关的各个节点更新后的公钥,并根据更新路径进行密钥交换运算,计算得到更新后的群私钥,从而得到更新后的群密钥。
本实施例中,第一客户端将所要发送的更新后的公钥采用原来的群公钥进行加密再发送给其他群成员的客户端,这样,能够提高保密性及数据传输的安全性。
在本申请的一示例性实施例中,为了其他群成员客户端能够对第一客户端发送的更新后的公钥进行验证,在将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端之前,还可以包括:利用设定的验证策略,对所要发送的目标节点的更新后的公钥设置验证标识。图4所示为一示例性实施例示出的第一客户端对发送的公钥设置验证的过程流程图。如图4所示,在发送所述目标节点的更新后的密钥对中的公钥之前,还包括设置验证步骤,所述设置验证步骤具体包括以下步骤401至402:
步骤401,利用设定的验证策略,对所要发送的所述目标节点的更新后的密钥对中的公钥设置验证标识。
步骤402,将所述目标节点的更新后的密钥对中的公钥和所述验证标识发送给相应的群成员的客户端。
在本实施例中,设定的验证策略可以是该群组中群成员之间协商好设定的验证策略,也可以是默认设定的验证策略,可以是应用程序的运营商在上架应用程序时设定好的验证策略,也可以是应用程序开发人员开发应用程序时设定好的验证策略。第一客户端根据设定的验证策略,对所要发送的更新后的公钥设置验证标识。第一客户端将所要发送的更新后的公钥和验证标识发给其他群成员客户端,其他群成员客户端可以根据接收到的验证标识验证接收到的更新后的公钥,确保是否存在问题。
在本申请一种可能的实施方式中,为了验证数据的完整性,设定的验证策略可以是消息摘要算法。消息摘要算法利用散列函数或者哈希函数,对所要发送的消息产生散列值,该散列值又称为消息摘要。第一客户端利用散列函数,对所要发送的包括一个群成员计算群私钥所相关的各个节点更新后的公钥的消息计算生成对应的消息摘要,将该消息以及对应的消息摘要发送给相应的群成员的客户端,其他群成员的客户端在接收到消息和消息摘要后,在本地利用相同的消息摘要算法对接收到的消息进行计算生成消息摘要,对比本地计算生成的消息摘要与接收到的消息摘要是否一致,如果一致,则验证接收到的消息完整,未被经过篡改。应该理解的是,发送给每个群成员客户端的消息分别计算生成对应的消息摘要。上述的消息摘要算法包括但不限于MD5算法、SHA算法。
在本申请一种可能的实施方式中,为了验证数据的真实性,设定的验证策略可以是消息认证算法。消息认证算法将所要发送的包括一个群成员计算群私钥所相关的各个节点更新后的公钥的消息使用原来的群公钥计算生成消息认证码(Message AuthenticationCode,MAC),并将消息和对应的消息认证码发送给相应的群成员的客户端,其他群成员的客户端在接收到消息和消息认证码后,在本地使用原来的群公钥也计算出一个消息认证码,对比本地计算生成的消息认证码与接收到的消息认证码是否一致,如果一致,则验证接收到的消息真实,确认消息来自第一客户端,再读取消息。消息认证算法除了可以验证高数据的真实性,也可以验证数据的完整性。需要说明的是,第一客户端也可以使用原来的群私钥计算生成消息认证码,其他群成员的客户端在本地也是使用原来的群私钥进行计算生成消息认证码,再对比本地计算生成的消息认证码和接收到的消息认证码是否一致。
上述提供的能够提高传输安全性以及验证数据完整性、真实性的实施方式之间可以进行任意组合,只要特征之间的组合不存在冲突或者矛盾,但是限于篇幅,未进行一一描述。以下以几个组合实施例进行示例说明。
例如,第一客户端利用消息摘要算法生成消息摘要,使用原来的群公钥对包括一个群成员计算群私钥所相关的各个节点更新后的公钥的消息进行加密,生成加密消息包,将加密消息包和消息摘要发送给相应的群成员的客户端,其他群成员的客户端接收到后,在本地利用相同的消息摘要算法计算生成一个消息摘要,对比本地的消息摘要和接收到的消息摘要是否一致,如果一致,使用原来的群私钥对加密消息包进行解密,得到更新后的公钥,再计算获取更新后的群私钥,从而得到更新后的群密钥。
又如,第一客户端利用消息认证算法生成消息认证码,使用原来的群公钥对包括一个群成员计算群私钥所相关的各个节点更新后的公钥的消息并进行加密,生成加密消息包,将加密消息包和消息认证码发送给相应的群成员的客户端,其他群成员的客户端接收到后,使用原来的群私钥对加密消息包进行解密,在本地使用原来的群公钥也计算出一个消息认证码,对比本地计算生成的消息认证码与接收到的消息认证码是否一致,如果一致,则验证接收到的消息真实,确认消息来自第一客户端,使用原来的群私钥对加密消息包进行解密,得到更新后的公钥,再计算获取更新后的群私钥,从而得到更新后的群密钥。
上述各实施例是以在群组中发起群密钥更新的客户端的角度提供的群密钥更新方法。
根据本申请的第二方面,还提供了另一种群密钥更新方法,该群密钥更新方法应用于第二客户端,第二客户端是接收发起群密钥更新的第一客户端所发送的更新后的公钥,通过进行计算获取更新后的群密钥的客户端。图5所示为本申请一示例性实施例示出的另一种群密钥更新方法的流程图。如图5所示,该群密钥更新方法包括以下步骤501至502:
步骤501,接收第一客户端发送的目标节点的更新后的密钥对中的公钥,其中,所述目标节点为计算群私钥相关的节点。
步骤502,根据所述公钥以及更新路径计算更新后的群私钥,所述更新路径为所述密钥树中与所述第二客户端计算更新后的群私钥相关的路径。
例如,在图1所示的例子中,群成员A作为第一客户端,是群密钥更新的发起者,群成员B、C、D作为第二客户端,接收第一客户端发送的目标节点更新后的公钥后,分别根据更新后的公钥以及更新路径进行密钥交换运算,从而计算获取更新后的群私钥,获取更新后的群密钥。
在本申请一种可能的实施方式中,所述目标节点为所述第二客户端的群成员与所述第一客户端的群成员在所述密钥树上的全部公共节点。
本实施例中的更新路径可以是由公共节点组成,更新路径是一条从第二客户端的群成员与第一客户端的群成员在密钥树上最近公共节点到根节点的路径。第二客户端根据从最近公共节点到根节点的方向更新,从而得到更新后的群密钥。当第二客户端的群成员与第一客户端的群成员之间的公共节点只有根节点的情况,即根节点也是他们之间的最近公共节点,更新路径由根节点组成,第二客户端只需更新根节点的密钥对,即可得到更新后的群密钥。
在本申请一种可能的实施方式中,所述更新路径从所述第一客户端获取得到,即第一客户端在发送目标节点更新后的密钥对中的公钥时,还发送了对应的更新路径。第二客户端在接收到目标节点更新后的公钥以及更新路径,无需再通过获取的目标节点信息来确定更新路径,可以直接按照接收到的更新路径进行更新,提高了第二客户端的更新速度。
在本申请另一种可能的实施方式中,所述更新路径基于所述目标节点确定。
在本申请一种可能的实施方式中,第二客户端可以是根据接收到的目标节点更新后的公钥,利用迪菲-赫尔曼DH算法计算更新后的群私钥,获取更新后的群密钥。
在本申请的一示例性实施例中,为了提高保密性及数据传输的安全性,第一客户端利用原来的群公钥,对发送的目标节点更新后的公钥进行加密,第二客户端接收到的是加密消息包,需要对加密消息包进行解密。如6所示为一示例性实施例示出的第二客户端对接收的公钥进行解密的过程流程图,如图6所示,所述解密步骤具体包括以下步骤601至602:
步骤601,接收第一客户端发送的加密消息包,所述加密消息包包括所述目标节点的更新后的密钥对中的公钥。
步骤602,利用当前的群私钥,对所述加密消息包进行解密,获取所述目标节点的更新后的密钥对中的公钥。
在本实施例中,第二客户端接收到第一客户端的消息是经过加密的消息,在加密消息包中,包括了目标节点的更新后的密钥对中的公钥。第二客户端可以采用当前的群私钥对加密消息包进行解密。当前的群私钥是指与本次群密钥更新时,现有的群密钥中的群私钥,即更新前的原来的群私钥。如果本次群密钥更新是第一次更新,那么原来的群私钥则为组建群组时生成的群密钥中的群私钥。如果本次群密钥更新非第一次更新,那么原来的群私钥则为上一次更新的群密钥中的群私钥。第二客户端利用原来的群私钥对加密消息包进行解密,能够得到原始的所述目标节点的更新后的密钥对中的公钥,再进行群密钥的更新。
在本申请的一示例性实施例中,为了能够验证接收到的所述目标节点的更新后的密钥对中的公钥,如图7所示,在接收到所述目标节点的更新后的密钥对中的公钥之后,还包括验证步骤,所述验证步骤具体包括以下步骤701至702:
步骤701,接收第一客户端发送的所述目标节点的更新后的密钥对中的公钥和验证标识,其中,所述验证标识是根据设定的验证策略设置的。
步骤702,根据所述验证策略验证所述目标节点的更新后的密钥对中的公钥是否存在安全问题,如果不存在,则执行步骤703。
步骤703,根据所述相关的各个节点更新后的公钥计算更新后的群私钥,获取更新后的群密钥。
上述各实施例中的第二客户端所涉及的相关的技术已在第一客户端涉及的各实施例中进行说明,在此不再赘述。
需要理解的是,上述的应用于第一客户端的群密钥更新方法与应用于第二客户端的群密钥更新方法可以同时应用于同一个客户端。也就是说,在一个群组中,所有群成员均可以通过自己的客户端发起群密钥更新,一个客户端既可以是第一客户端,发起群密钥更新,将计算群私钥所需要的更新后的公钥发送给其他群成员进行更新;也可以是第二客户端,接收发起群密钥更新的群成员的客户端发送的更新后的公钥,利用同样的算法对群密钥进行同步更新。
当然,也可以是在一个群组中,至少一个的客户端可以作为第一客户端。例如,第一客户端是群组的管理员,群组管理员具有发起群密钥更新的权限,第二客户端是普通的群成员,不具有发起群密钥更新的权限。当群组只有一个管理员时,上述的应用于第一客户端的群密钥更新方法应用于该管理员的客户端,上述的应用于第二客户端的群密钥更新方法应用于除了管理员之外的其他群成员的客户端。当群组不止有一个管理员时,上述的应用于第一客户端的群密钥更新方法与应用于第二客户端的群密钥更新方法可以同时应用于管理员的客户端,其中一个管理员作为第一客户端发起群密钥更新时,除了该管理员以外的其他管理员以及除了管理员以外的其他群成员适用上述的应用于第二客户端的群密钥更新方法。
根据本申请的第三方面,还提供了一种通信系统,图8所示为本申请一示例性实施例示出的一种通信系统的交互流程图。如图8所示,该通信系统80包括服务端830、至少一个第一客户端810及至少一个第二客户端820。
其中:
所述第一客户端810用于在更新自身密钥后,利用更新后的所述自身密钥更新密钥树上各个节点的密钥对;
所述第一客户端810还用于针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述服务端,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点;
所述服务端830用于接收所述第一客户端发送的其他每个群成员的所述目标节点的更新后的密钥对中的公钥,并转发给相应的群成员的第二客户端;
所述第二客户端820用于接收所述服务端转发的所述目标节点的更新后的密钥对中的公钥;
所述第二客户端820还用于根据所述公钥以及更新路径计算更新后的群私钥,所述更新路径为所述密钥树中与所述第二客户端计算更新后的群私钥相关的路径。
在本实施例中,第一客户端与第二客户端在一个群组中,其中,第一客户端发起群密钥更新,通过更新自身密钥,基于密钥树自底向上更新密钥树上各个节点的密钥对,得到更新后的群密钥,并且,第一客户端还针对与其他群成员的第二客户端计算群私钥相关各个节点对应的更新后的公钥发送给服务端,服务端接收到第一客户端需要发送给第二客户端的消息,将消息转发给相应的其他群成员的第二客户端,第二客户端接收到服务器转发的消息,消息中包括第二客户端计算群私钥相关的各个节点的更新后的公钥,第二客户端基于密钥树,并根据更新路径,将各个节点更新后的公钥和原来的私钥进行密钥交换运算,得到各个节点更新后的私钥,其中包括更新后的群私钥,从而得到更新后的群密钥。
应该理解的是,在该群组有一个第二客户端的情况下,服务端直接将第一客户端发送的消息转发给第二客户端;在该群组有多个第二客户端的情况下,第一客户端发送给服务端的消息,消息中可以包括多个子消息,一个子消息对应发送给一个第二客户端,子消息中可以包括识别各个第二客户端的标识,服务端根据标识将子消息发送给对应的第二客户端。
与前述方法的实施例相对应,本申请还提供了装置及其所应用的电子设备的实施例。
根据本申请的第四方面,还提供了一种群密钥更新装置,如图9所示,所述群密钥更新装置90包括:
更新模块910,用于在更新自身密钥后,利用更新后的所述自身密钥更新密钥树上各个节点的密钥对;
发送模块920,用于针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端,以使所述群成员的客户端根据所述公钥以及更新路径计算更新后的群私钥,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点,所述更新路径为所述密钥树中与所述群成员的客户端计算更新后的群私钥相关的路径。
在本申请的一示例性实施例中,所述发送模块还用于将所述更新路径发送给所述群成员的客户端。
在本申请的一示例性实施例中,所述目标节点为所述第一客户端的群成员与所述群成员在所述密钥树上的全部公共节点。
在本申请的一示例性实施例中,所述目标节点为最近公共节点,所述最近公共节点为第一客户端的群成员与其他群成员在所述密钥树上深度最大的公共节点。
在本申请的一示例性实施例中,所述更新模块还用于利用迪菲-赫尔曼DH算法更新所述密钥树上各个节点的密钥对。
在本申请的一示例性实施例中,所述装置还包括:
加密模块,用于利用当前的群公钥,对所述公钥进行加密。
根据本申请的第五方面,还提供了另一种群密钥更新装置,如图10所示,所述群密钥更新装置100包括:
接收模块1010,用于接收第一客户端发送的目标节点的更新后的密钥对中的公钥,其中,所述目标节点为计算群私钥相关的节点;
更新模块1020,用于根据所述公钥以及更新路径计算更新后的群私钥,所述更新路径为所述密钥树中计算更新后的群私钥相关的路径。
在本申请的一示例性实施例中,所述装置还包括:
确定模块,用于基于所述目标节点确定所述更新路径。
在本申请的一示例性实施例中,所述目标节点为所述第二客户端的群成员与所述第一客户端的群成员在所述密钥树上的全部公共节点。
在本申请的一示例性实施例中,所述目标节点为最近公共节点,所述最近公共节点为第二客户端的群成员与所述第一客户端的群成员在所述密钥树上深度最大的公共节点。
在本申请的一示例性实施例中,所述更新模块还用于根据接收到的目标节点相关的各个节点更新后的公钥,利用迪菲-赫尔曼DH算法计算更新后的群私钥,获取更新后的群密钥。上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
根据本申请的第六方面,还提供了一种电子设备,如图11所示,该电子设备110包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面和/或第二方面提供的任意实施例中所述的应用于第一客户端的群密钥更新方法的步骤。
本申请的群密钥更新装置的实施例可以应用在电子设备上,例如可以是智能手机、平板电脑、台式计算机、便携式计算机、PDA(Personal Digital Assistant,个人数字助理)等终端设备,电子设备上装载有即时聊天应用程序、协同办公程序等,或者是电子设备上装载有可以访问互联网的浏览器,用户可以通过浏览器访问线上网站的即时聊天应用程序、协同办公程序等。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图11所示,为本申请实施例的群密钥更新装置所在电子设备的一种硬件结构图,除了图11所示的处理器、内存、网络接口、以及非易失性存储器之外,通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
应该理解的是,电子设备110可以是一个只执行第一客户端的群密钥更新方法的步骤的电子设备,也可以是一个执行第二客户端的群密钥更新方法的步骤的电子设备,还可以是一个执行第一客户端和第二客户端的群密钥更新方法的步骤的电子设备。
例如,在一个群组中,每个群成员都能够发起群密钥更新,即每个群成员的客户端既能作为第一客户端,也能作为第二客户端,群成员的电子设备则可以执行第一客户端和第二客户端的群密钥更新方法的步骤。又如,在一个群组中,设置一个特定的群成员具有发起群密钥更新的权限,其他群成员不具有发起群密钥更新的权限,则该特定的群成员的电子设备只执行第一客户端的群密钥更新方法的步骤,其他群成员只执行第二客户端的群密钥更新方法的步骤。又如,在一个群组中,特定的群成员不止一个,那么,特定的群成员的电子设备可以执行第一客户端和第二客户端的群密钥更新方法的步骤,其他群成员只执行第二客户端的群密钥更新方法的步骤。
根据本申请的第七方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请实施例中提供的任意一项所述的群密钥更新方法的步骤。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种群密钥更新方法,其特征在于,所述方法应用于第一客户端,所述方法包括:
在更新自身密钥后,利用更新后的所述自身密钥基于密钥树自底向上地进行密钥交换运算,以更新密钥树上各个节点的密钥对;
针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给对应的群成员的客户端,以使所述群成员的客户端根据所述公钥以及更新路径,采用更新前的密钥对中的私钥与更新后的密钥对中的公钥进行密钥交换运算,以计算更新后的群私钥,其中,所述目标节点为与所述群成员的客户端计算更新后的群私钥相关的节点,所述更新路径为所述密钥树中与所述群成员的客户端计算更新后的群私钥相关的路径。
2.根据权利要求1所述的群密钥更新方法,其特征在于,所述更新路径由所述第一客户端确定并发送给所述群成员的客户端,或者由所述群成员的客户端基于所述目标节点确定。
3.根据权利要求1所述的群密钥更新方法,其特征在于,所述目标节点为所述第一客户端的群成员与所述群成员在所述密钥树上的全部公共节点。
4.根据权利要求1所述的群密钥更新方法,其特征在于,所述目标节点为最近公共节点,所述最近公共节点为第一客户端的群成员与其他群成员在所述密钥树上深度最大的公共节点。
5.根据权利要求1所述的群密钥更新方法,其特征在于,所述第一客户端利用迪菲-赫尔曼DH算法更新所述密钥树上各个节点的密钥对。
6.根据权利要求1所述的群密钥更新方法,其特征在于,在将目标节点的更新后的密钥对中的公钥发送给所述群成员的客户端之前,还包括:
利用当前的群公钥,对所述公钥进行加密。
7.一种群密钥更新方法,其特征在于,所述方法应用于第二客户端,所述方法包括:
接收第一客户端发送的目标节点的更新后的密钥对中的公钥,其中,所述目标节点为计算群私钥相关的节点;所述公钥基于第一客户端在更新自身密钥后,基于密钥树自底向上地进行密钥交换运算以更新密钥树上各个节点的密钥对,再针对每一个群成员,将每一个群成员计算群私钥相关的各个节点对应的更新后的密钥对中的公钥发送给相应的群成员的客户端后得到;
根据所述公钥以及更新路径,采用更新前的密钥对中的私钥与更新后的密钥对中的公钥进行密钥交换运算,以计算更新后的群私钥,所述更新路径为所述密钥树中与所述第二客户端计算更新后的群私钥相关的路径。
8.一种通信系统,其特征在于,所述系统包括服务端、至少一个第一客户端及至少一个第二客户端,
所述第一客户端用于在更新自身密钥后,利用更新后的所述自身密钥基于密钥树自底向上地进行密钥交换运算,以更新密钥树上各个节点的密钥对;
所述第一客户端还用于针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给所述服务端,其中,所述目标节点为与对应的群成员的客户端计算更新后的群私钥相关的节点;
所述服务端用于接收所述第一客户端发送的其他每个群成员的所述目标节点的更新后的密钥对中的公钥,并转发给相应的群成员的第二客户端;
所述第二客户端用于接收所述服务端转发的所述目标节点的更新后的密钥对中的公钥;
所述第二客户端还用于根据所述公钥以及更新路径,采用更新前的密钥对中的私钥与更新后的密钥对中的公钥进行密钥交换运算,以计算更新后的群私钥,所述更新路径为所述密钥树中与所述第二客户端计算更新后的群私钥相关的路径。
9.一种群密钥更新装置,其特征在于,所述装置包括:
更新模块,用于在更新自身密钥后,利用更新后的所述自身密钥基于密钥树自底向上地进行密钥交换运算,以更新密钥树上各个节点的密钥对;
发送模块,用于针对其他每个群成员,将目标节点的更新后的密钥对中的公钥发送给对应的群成员的客户端,以使所述群成员的客户端根据所述公钥以及更新路径,采用更新前的密钥对中的私钥与更新后的密钥对中的公钥进行密钥交换运算,以计算更新后的群私钥,其中,所述目标节点为与对应的群成员的客户端计算更新后的群私钥相关的节点,所述更新路径为所述密钥树中与所述群成员的客户端计算更新后的群私钥相关的路径。
10.一种群密钥更新装置,其特征在于,所述装置包括:
接收模块,用于接收第一客户端发送的目标节点的更新后的密钥对中的公钥,其中,所述目标节点为计算群私钥相关的节点;所述公钥基于第一客户端在更新自身密钥后,基于密钥树自底向上地进行密钥交换运算以更新密钥树上各个节点的密钥对,再针对每一个群成员,将每一个群成员计算群私钥相关的各个节点对应的更新后的密钥对中的公钥发送给相应的群成员的客户端后得到;
更新模块,用于根据所述公钥以及更新路径,采用更新前的密钥对中的私钥与更新后的密钥对中的公钥进行密钥交换运算,以计算更新后的群私钥,所述更新路径为所述密钥树中计算更新后的群私钥相关的路径。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项中所述的群密钥更新方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7任一项中所述的群密钥更新方法的步骤。
CN201911051108.2A 2019-10-31 2019-10-31 群密钥更新方法、装置、电子设备、存储介质及通信系统 Active CN110784318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911051108.2A CN110784318B (zh) 2019-10-31 2019-10-31 群密钥更新方法、装置、电子设备、存储介质及通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911051108.2A CN110784318B (zh) 2019-10-31 2019-10-31 群密钥更新方法、装置、电子设备、存储介质及通信系统

Publications (2)

Publication Number Publication Date
CN110784318A CN110784318A (zh) 2020-02-11
CN110784318B true CN110784318B (zh) 2020-12-04

Family

ID=69387903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911051108.2A Active CN110784318B (zh) 2019-10-31 2019-10-31 群密钥更新方法、装置、电子设备、存储介质及通信系统

Country Status (1)

Country Link
CN (1) CN110784318B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645032B (zh) * 2021-08-16 2023-06-09 北卡科技有限公司 一种群密钥的动态更新方法及装置
US11888824B2 (en) * 2021-12-31 2024-01-30 Huawei Technologies Co., Ltd. Methods, apparatuses, and computer-readable storage media for secure end-to-end group messaging among devices using dynamic grouping

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023653A (zh) * 2012-12-07 2013-04-03 哈尔滨工业大学深圳研究生院 低功耗的物联网安全组通信方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100840823B1 (ko) * 2000-06-15 2008-06-23 소니 가부시끼 가이샤 암호 키 블록을 이용한 정보 처리 시스템 및 방법
JP4569464B2 (ja) * 2005-12-20 2010-10-27 沖電気工業株式会社 マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法
CN1801696B (zh) * 2006-01-13 2011-02-09 南京邮电大学 一种网格计算机环境下虚拟组织的密钥管理方法
US8086850B2 (en) * 2006-06-23 2011-12-27 Honeywell International Inc. Secure group communication among wireless devices with distributed trust
CN101150395B (zh) * 2006-09-22 2010-05-12 中国科学院声学研究所 一种加密授权管理系统的双重分组的四层加密方法
CN100596063C (zh) * 2007-02-01 2010-03-24 华为技术有限公司 组密钥控制报文的分发系统、方法和装置
CN100586062C (zh) * 2008-03-28 2010-01-27 清华大学 一种基于avl树的分布式密钥更新方法
CN101692637B (zh) * 2009-09-23 2011-06-29 东南大学 一种组播密钥管理方法
CN103873895B (zh) * 2012-12-14 2017-07-25 中国传媒大学 一种dvb/iptv双模互动业务保护系统
CN108200172B (zh) * 2018-01-03 2020-12-08 西安电子科技大学 一种支持安全数据去重与删除的云存储系统及方法
CN108989028A (zh) * 2018-07-16 2018-12-11 哈尔滨工业大学(深圳) 群密钥分发管理方法、装置、电子设备及存储介质
CN108964904B (zh) * 2018-07-16 2020-12-22 哈尔滨工业大学(深圳) 群密钥安全管理方法、装置、电子设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023653A (zh) * 2012-12-07 2013-04-03 哈尔滨工业大学深圳研究生院 低功耗的物联网安全组通信方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Acommunication-computation efficient group key algorithm for large and dynamic groups";Shanyu Zheng;《Computer Networks》;20071231;全文 *

Also Published As

Publication number Publication date
CN110784318A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
Bera et al. Designing blockchain-based access control protocol in IoT-enabled smart-grid system
US10790976B1 (en) System and method of blockchain wallet recovery
US10785019B2 (en) Data transmission method and apparatus
CN111066285B (zh) 基于sm2签名恢复公钥的方法
CN111639361A (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
CN111431713B (zh) 一种私钥存储方法、装置和相关设备
CN114730420A (zh) 用于生成签名的系统和方法
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN111066046A (zh) 抗重放攻击认证协议
CN111404950B (zh) 一种基于区块链网络的信息共享方法、装置和相关设备
KR20170057549A (ko) 해시함수 기반의 대규모 동시 전자서명 서비스 시스템 및 그 방법
CN106941404B (zh) 密钥保护方法及装置
JP2022501971A (ja) 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品
Pathak et al. Byzantine fault tolerant public key authentication in peer-to-peer systems
KR20180101870A (ko) 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템
CN110380859B (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
CN111786812A (zh) 节点管理方法、装置、计算机设备和存储介质
CN110417547B (zh) 基于无证书密码学的保密通信的密钥更新方法和系统
WO2019110399A1 (en) Two-party signature device and method
US20210241270A1 (en) System and method of blockchain transaction verification
KR20210139344A (ko) 데이터 기반 활동을 수행하는 방법 및 장치
CN110690969B (zh) 一种多方协同完成双向ssl/tls认证的方法和系统
CN110557248A (zh) 基于无证书密码学的抗量子计算签密的密钥更新方法和系统
Li et al. Privacy-aware secure anonymous communication protocol in CPSS cloud computing
CN110737915A (zh) 基于联盟链和隐式证书的抗量子计算匿名身份识别方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200211

Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Contract record no.: X2021980000151

Denomination of invention: Group key updating method, device, electronic device, storage medium and communication system

Granted publication date: 20201204

License type: Common License

Record date: 20210107