动态群组密钥生成方法、装置、计算机设备及存储介质与流程

文档序号:22477560发布日期:2020-10-09 22:20阅读:91来源:国知局
动态群组密钥生成方法、装置、计算机设备及存储介质与流程

本发明涉及网络安全领域,尤其涉及一种动态群组密钥生成方法、装置、计算机设备及存储介质。



背景技术:

电子邮件是互联网中使用最广的交流工具和服务,已经成为最重要的职场沟通方式,企事业单位、政府机关等各类组织内部日常工作交流非常依赖电子邮件。据统计,80%的职场人每天上班要做的第一件事,就是打开电子邮箱收发邮件;70%的职场人,下班前的最后一件事是查看邮箱,确认没有尚未处理的紧急邮件;30%的职场人,即使下班或周末在家休息,也会登录工作邮箱,查有没有漏掉紧要的任务。

在组织内部,因信息安全保密需求,通常会将人员划分为不同的群组,在群组内部共享信息,防止群组外部人员非法获取信息,有利于保障信息的安全性。例如,按照级别、部门划分,每个级别一组或每个部门划为一组,或者按照参与的工作项目划分,每个项目划为一组。每一个人员可能属于多个群组。通过对组内收发的电子邮件进行加密可以有效地保护群组电子邮件的机密性。许多情况下会出现两个或多个群组之间需要共享信息的场景。前述技术方案均未考虑此类应用场景,此时最佳的解决方法只能是新建一个大群组,将参与共享信息的群组所有成员加入新群组中,但这进一步带来群组动态新增以及群组密钥管理更趋复杂的问题。如何在群组人员动态变化时有效管理群组密钥成为亟待解决的问题。



技术实现要素:

本发明实施例提供一种动态群组密钥生成方法、装置、计算机设备及存储介质,以解决在群组人员动态变化时有效管理群组密钥的问题。

一种动态群组密钥生成方法,应用于客户端,包括:

接收更新群组id,将更新群组id作为当前群组id;

向服务器发送更新群组密钥请求,更新群组密钥请求包括当前群组id;

接收服务器发送的基于更新群组密钥请求形成的更新群组密钥,将更新群组密钥作为当前群组id对应的当前群组密钥。

一种动态群组密钥生成装置,应用于客户端,其特征在于,包括:

接收更新id模块,用于接收更新群组id,将更新群组id作为当前群组id;

发送更新请求模块,用于向服务器发送更新群组密钥请求,更新群组密钥请求包括当前群组id;

接收更新密钥模块,用于接收服务器发送的基于更新群组密钥请求形成的更新群组密钥,将更新群组密钥作为当前群组id对应的当前群组密钥。

一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述动态群组密钥生成方法。

一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述动态群组密钥生成方法。

一种动态群组密钥生成方法,应用于服务器,包括:

接收至少一个客户端发送的更新群组密钥请求,更新群组密钥请求包括当前群组id;

基于当前群组id,获取对应的当前群组信息;

将当前群组信息和服务器密钥输入群组密钥生成算法,获取更新群组密钥;

将更新群组密钥发送给当前群组id对应的每一客户端,作为当前群组id对应的当前群组密钥。

一种动态群组密钥生成装置,应用于服务器,包括:

接收更新请求模块,用于接收至少一个客户端发送的更新群组密钥请求,更新群组密钥请求包括当前群组id;

获取当前信息模块,用于基于当前群组id,获取对应的当前群组信息;

获取更新密钥模块,用于将当前群组信息和服务器密钥输入群组密钥生成算法,获取更新群组密钥;

发送更新密钥模块,用于将更新群组密钥发送给当前群组id对应的每一客户端,作为当前群组id对应的当前群组密钥。

一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述动态群组密钥生成方法。

一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述动态群组密钥生成方法。

上述动态群组密钥生成方法、装置、计算机设备及存储介质,通过客戶端接收更新群组id,可作为当前群组id,并向服务器获取当前群组密钥;同时,服务器可接受客户端发送的更新群组密钥请求给客户端分配更新群组密钥,以使客户端所属群组的当前群组密钥得到及时更新,且无需客户端逐一进行申请,服务器生产当前群组密钥后可及时发送给属于该群组的每一客户端,保障群组客户端直接可及时进行密文传输,保障数据传输的可靠性;避免因群组id改变后,新的群组无法及时传输密文的问题。

附图说明

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

图1是本发明一实施例中动态群组密钥生成方法的应用环境示意图;

图2是本发明一实施例中动态群组密钥生成方法的流程图;

图3是本发明一实施例中动态群组密钥生成方法的另一流程图;

图4是本发明一实施例中动态群组密钥生成方法的另一流程图;

图5是本发明一实施例中动态群组密钥生成方法的另一流程图;

图6是本发明一实施例中动态群组密钥生成装置的示意图;

图7是本发明一实施例中计算机设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的动态群组密钥生成方法,可应用在如图1的应用环境中,该动态群组密钥生成方法应用在动态群组密钥生成系统中,该动态群组密钥生成系统包括客户端和服务器,其中,客户端通过网络与服务器进行通信。客户端又称为用户端,是指与服务器相对应,为客户端提供本地服务的程序。该客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等计算机设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

一种动态群组密钥生成方法,应用于客户端,包括:

接收更新群组id,将更新群组id作为当前群组id;

向服务器发送更新群组密钥请求,更新群组密钥请求包括当前群组id;

接收服务器发送的基于更新群组密钥请求形成的更新群组密钥,将更新群组密钥作为当前群组id对应的当前群组密钥。

一种动态群组密钥生成方法,应用于服务器,包括:

接收至少一个客户端发送的更新群组密钥请求,更新群组密钥请求包括当前群组id;

基于当前群组id,获取对应的当前群组信息;

将当前群组信息和服务器密钥输入群组密钥生成算法,获取更新群组密钥;

将更新群组密钥发送给当前群组id对应的每一客户端,作为当前群组id对应的当前群组密钥。

在一实施例中,如图2所示,提供一种动态群组密钥生成方法,以该方法应用在图1中的客户端和服务器为例进行说明,具体包括如下步骤:

s11.客户端接收更新群组id,将更新群组id作为当前群组id。

其中,更新群组id是客户端被分配的新的取代现有群组id的标识。

具体地,客户端可接受任意其它客户端或者服务器的设定,获得更新群组id作为当前群组id。

s12.客户端向服务器发送更新群组密钥请求,更新群组密钥请求包括当前群组id。

其中,更新群组密钥请求是客户端向服务器发送的,请求服务器重新给当前群组id生成对应的更新群组密钥,以利于同群组内的各个客户端之间发送密文并解密。

s21.服务器接收至少一个客户端发送的更新群组密钥请求,更新群组密钥请求包括当前群组id。

其中,服务器所执行的操作包括:①设置全局参数,其中包括一个服务器秘密值;②为用户生成初始的密钥;③当群组发生变化时为相关用户更新密钥。客户端执行的操作包括:①向服务器申请自己的密钥;②当与自己相关的群组信息发生变化时,接收服务器的更新密钥;③加密数据;④解密数据。

具体地,更新密钥:当群组信息发生变化(新增群组、删除群组时),服务器为相关群组成员生成新的密钥。

s22.服务器基于当前群组id,获取对应的当前群组信息。

其中,当前群组信息包括当前群组对应的当前群组id,和当前群组内包括的每个客户端也即每个成员。

s23.服务器将当前群组信息和服务器密钥输入群组密钥生成算法,获取更新群组密钥。

具体地,服务器生成更新群组密钥的实现过程如下:

-初始化:由服务器执行,初始化的输出结果是全局参数gp和服务器秘密值ss;

-生成及返回用户密钥:客户端向服务器申请密钥,并将自己所属的群组或群组集合(一个用户可以属于1个或多个群组)告知服务器,服务器运行密钥生成算法,该算法输入为ss和用户所属群组或群组集合信息,输出为一个更新群组密钥。

s24.服务器将更新群组密钥发送给当前群组id对应的每一客户端,作为当前群组id对应的当前群组密钥。

s13.客户端接收服务器发送的基于更新群组密钥请求形成的更新群组密钥,将更新群组密钥作为当前群组id对应的当前群组密钥。

本实施例提供的动态群组密钥生成方法中,通过客戶端接收更新群组id,可作为当前群组id,并向服务器获取当前群组密钥;同时,服务器可接受客户端发送的更新群组密钥请求给客户端分配更新群组密钥,以使客户端所属群组的当前群组密钥得到及时更新,且无需客户端逐一进行申请,服务器生产当前群组密钥后可及时发送给属于该群组的每一客户端,保障群组客户端直接可及时进行密文传输,保障数据传输的可靠性;避免因群组id改变后,新的群组无法及时传输密文的问题;服务器采用一种简单高效的动态群组邮件加密方法,每个客户端仅需保存自己的一个当前群组密钥,就能够解密自己所参与的所有群组的消息,同时允许群组状态经常发生变化,即不断有新的群组生成,并支持任意个群组之间共享消息;本实施例极大简化了动态群组场景中,群组邮件加密的实现,有效提升群组邮件加密实现效率,进而达到提升组织信息安全级别的目的。本实施例解决了群组动态变化时密钥管理的问题,尤其是多个群组之间共享信息的密钥管理问题。本实施例能够有效地帮助大型组织构建群组加密邮件体系,高效管理用户密钥,进而提升组织的信息安全水平。

在一实施例中,如图3所示,在步骤s13之后,即在将更新群组密钥作为当前群组id对应的当前群组密钥之后,该动态群组密钥生成方法还具体包括如下步骤:

s131.获取信息加密请求,信息加密请求包括待加密明文信息以及目标群组。

其中,信息加密请求是将明文进行加密的请求。目标群组是将加密后的明文发送到的目标的群组。

s132.基于目标群组生成群组访问策略,将待加密明文信息和群组访问策略输入信息加密算法,获取待加密明文信息对应的明文加密信息。

其中,群组访问策略是满足访问目标群组的策略,只有多方都满足群组访问策略,各个多方之间才能进行数据加解密。

具体地,信息解密实现的过程如下:仅有符合访问策略ap(即,属于加密时制定的解密群组)的用户可以解密所收到的加密信息。收到加密的邮件之后,用户运行解密算法,输入为密文c、自己的密钥、全局参数gp,输出为解密后的明文消息m.

s133.将明文加密信息以广播邮件形式发送给当前群组id对应的每一客户端。

具体地,明文加密信息以广播形式发送给每一客户端,只有握有群组访问策略的目标群组才能对明文加密信息进行解密。

优选地,在步骤s133之后,即在将明文加密信息以广播邮件形式发送给当前群组id对应的每一客户端之后,动态群组密钥生成方法还具体包括如下步骤:

s1331.若接收到以广播邮件形式发送的明文加密信息,则将更新群组密钥和明文加密信息输入信息解密算法对明文加密信息进行解密,获取解密结果。

在一实施例中,如图4所示,在步骤s1331中,即获取解密结果,具体包括如下步骤:

s311.获取客户端对应的当前群组id和明文加密信息对应的群组访问策略。

s312.若当前群组id符合群组访问策略,则解密结果为解密成功。

s313.若当前群组id不符合群组访问策略,则解密结果为解密失败。

在一实施例中,如图5所示,在步骤s21之前,即在接收至少一个客户端发送的更新群组密钥请求之前,动态群组密钥生成方法还具体包括如下步骤:

s211.获取更新群组请求,更新群组请求包括更新群组id和更新群组id对应的更新群组信息。

s212.将更新群组信息和每一历史群组信息进行对比,获取对比相似度。

其中,对比相似度是更新群组信息和历史群组信息的相似百分比。可以理解地,因群组直接的成员一般为小部门调整,也即历史群组信息应和更新群组信息存在较高的相似度。

s213.将对比相似度最大的历史群组信息作为当前群组信息。

s214.将更新群组id作为当前群组id对应的当前群组id。

本实施例提供的动态群组密钥生成方法中,通过客戶端接收更新群组id,可作为当前群组id,并向服务器获取当前群组密钥;同时,服务器可接受客户端发送的更新群组密钥请求给客户端分配更新群组密钥,以使客户端所属群组的当前群组密钥得到及时更新,且无需客户端逐一进行申请,服务器生产当前群组密钥后可及时发送给属于该群组的每一客户端,保障群组客户端直接可及时进行密文传输,保障数据传输的可靠性;避免因群组id改变后,新的群组无法及时传输密文的问题;服务器采用一种简单高效的动态群组邮件加密方法,每个客户端仅需保存自己的一个当前群组密钥,就能够解密自己所参与的所有群组的消息,同时允许群组状态经常发生变化,即不断有新的群组生成,并支持任意个群组之间共享消息;本实施例极大简化了动态群组场景中,群组邮件加密的实现,有效提升群组邮件加密实现效率,进而达到提升组织信息安全级别的目的。本实施例解决了群组动态变化时密钥管理的问题,尤其是多个群组之间共享信息的密钥管理问题。本实施例能够有效地帮助大型组织构建群组加密邮件体系,高效管理用户密钥,进而提升组织的信息安全水平。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种动态群组密钥生成装置,该动态群组密钥生成装置与上述实施例中动态群组密钥生成方法一一对应。如图6所示,该动态群组密钥生成装置包括客户端10和服务器20,客户端包括接收更新id模块11、发送更新请求模块12和接收更新密钥模块13。各功能模块详细说明如下:

接收更新id模块11,用于接收更新群组id,将更新群组id作为当前群组id。

发送更新请求模块12,用于向服务器发送更新群组密钥请求,更新群组密钥请求包括当前群组id。

接收更新密钥模块13,用于接收服务器发送的基于更新群组密钥请求形成的更新群组密钥,将更新群组密钥作为当前群组id对应的当前群组密钥。

优选地,该动态群组密钥生成装置还包括获取加密请求模块、输入加密算法模块和发送广播邮件模块。

获取加密请求模块,用于获取信息加密请求,信息加密请求包括待加密明文信息以及目标群组。

输入加密算法模块,用于基于目标群组生成群组访问策略,将待加密明文信息和群组访问策略输入信息加密算法,获取待加密明文信息对应的明文加密信息。

发送广播邮件模块,用于将明文加密信息以广播邮件形式发送给当前群组id对应的每一客户端。

优选地,该动态群组密钥生成装置还包括接收明文信息模块。

接收明文信息模块,用于若接收到以广播邮件形式发送的明文加密信息,则将更新群组密钥和明文加密信息输入信息解密算法对明文加密信息进行解密,获取解密结果。

优选地,接收明文信息模块包括获取访问策略单元、解密成功单元和解密失败单元。

获取访问策略单元,用于获取客户端对应的当前群组id和明文加密信息对应的群组访问策略。

解密成功单元,用于若当前群组id符合群组访问策略,则解密结果为解密成功。

解密失败单元,用于若当前群组id不符合群组访问策略,则解密结果为解密失败。

在一实施例中,提供一种动态群组密钥生成装置,该动态群组密钥生成装置与上述实施例中动态群组密钥生成方法一一对应。如图6所示,该动态群组密钥生成装置包括服务器,服务器包括接收更新请求模块21、获取当前信息模块22、获取更新密钥模块23和发送更新密钥模块24。各功能模块详细说明如下:

接收更新请求模块21,用于接收至少一个客户端发送的更新群组密钥请求,更新群组密钥请求包括当前群组id。

获取当前信息模块22,用于基于当前群组id,获取对应的当前群组信息。

获取更新密钥模块23,用于将当前群组信息和服务器密钥输入群组密钥生成算法,获取更新群组密钥。

发送更新密钥模块24,用于将更新群组密钥发送给当前群组id对应的每一客户端,作为当前群组id对应的当前群组密钥。

优选地,该动态群组密钥生成装置还包括获取更新请求模块、获取对比相似度模块、作为当前信息模块和作为当前id模块。

获取更新请求模块,用于获取更新群组请求,更新群组请求包括更新群组id和更新群组id对应的更新群组信息。

获取对比相似度模块,用于将更新群组信息和每一历史群组信息进行对比,获取对比相似度。

作为当前信息模块,用于将对比相似度最大的历史群组信息作为当前群组信息。

作为当前id模块,用于将更新群组id作为当前群组id对应的当前群组id。

关于动态群组密钥生成装置的具体限定可以参见上文中对于动态群组密钥生成方法的限定,在此不再赘述。上述动态群组密钥生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于动态群组密钥生成方法相关的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种动态群组密钥生成方法。

在一实施例中,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例动态群组密钥生成方法,例如图2所示s11至步骤s13。或者,处理器执行计算机程序时实现上述实施例中动态群组密钥生成装置的各模块/单元的功能,例如图6所示模块10至模块20的功能。为避免重复,此处不再赘述。

在一实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例动态群组密钥生成方法,例如图2所示s11至步骤s13。或者,该计算机程序被处理器执行时实现上述装置实施例中动态群组密钥生成装置中各模块/单元的功能,例如图6所示模块10至模块20的功能。为避免重复,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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