一种群密钥的动态更新方法及装置与流程

文档序号:27381079发布日期:2021-11-15 20:03阅读:322来源:国知局
一种群密钥的动态更新方法及装置与流程

1.本发明涉及数据处理技术领域,具体而言,涉及一种群密钥的动态更新方法及装置。


背景技术:

2.在实现即时通信的各种应用中,为方便多人沟通,往往是通过创建群组的方式进行实现多人之间的沟通交流,比如微信群、qq群和钉钉群等。
3.本发明的发明人在研究中发现,在即时通信领域,网络通信数据的安全性和私密性越来越受到人们的重视,如何对群消息进行处理,使得最终实现将群信息安全的呈现在群成员客户端是亟待解决的关键技术问题。


技术实现要素:

4.有鉴于此,本发明提供一种群密钥的动态更新方法及装置,以提高即时通信中在通过群组进行通信过程中的数据的安全性。
5.具体地,本发明是通过如下技术方案实现的:
6.第一方面,本发明实施例提供了一种群密钥动态更新方法,所述方法应用于服务器,包括:
7.监测目标群的群成员是否发生变化;
8.若是,则根据所述目标群的标识和变化后的所述目标群所包含的全部群成员的id信息重新生成群公钥;
9.向密钥中心发送重新生成所述目标群的群加密私钥的请求,所述请求中携带有所述目标群的群公钥,以使所述密钥中心根据所述群公钥重新生成所述目标群的群加密私钥;
10.接收所述密钥中心发送的所述群加密私钥,将所述群加密私钥和所述群公钥发送至所有群成员客户端。
11.第二方面,本发明实施例提供了一种群密钥动态更新装置,所述装置应用于服务器,所述装置包括:
12.监测模块,用于监测目标群的群成员是否发生变化;
13.第一生成模块,用于若目标群的群成员发生变化,则根据所述目标群的标识和变化后的所述目标群所包含的全部群成员的id信息生成群公钥;
14.发送模块,用于向密钥中心发送重新生成所述目标群的群加密私钥的请求,所述请求中携带有所述目标群的群公钥,以使所述密钥中心根据所述群公钥生成所述目标群的群加密私钥;
15.第一接收模块,用于接收所述密钥中心发送所述群加密私钥,将所述群加密私钥和所述群公钥发送至所有群成员客户端。
16.第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程
序,所述程序被处理器执行时实现如第一方面所述方法的步骤。
17.第四方面,本本发明实施例还提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
18.存储器,用于存放计算机程序;
19.处理器,用于执行存储器上所存放的程序时,实现如第一方面所述的方法步骤。
20.本发明实施例中提供的一种群密钥动态更新方法及装置,服务器实时监测目标群的群成员是否发生变化;若是,则根据该目标群的标识和变化后的该目标群所包含的全部群成员的id信息生成群公钥;服务器向密钥中心发送生成目标群的消息加密私钥请求,该请求中携带有目标群的群公钥,以使密钥中心根据群公钥生成目标群的群加密私钥;服务器接收密钥中心发送的群加密私钥,将群加密私钥和群公钥发送至所有群成员客户端。本发明实施例中,根据群成员的变化动态生成群公钥和群加密私钥,并提出一种群密钥更新时离线消息缓存机制,进而使得退出群的成员即使获取到群消息,因未获取到最新群密钥也无法正确解密,离线群成员上线时即使密钥已更新也能正确解密离线消息,并且保证了群聊的安全性和私密性。
附图说明
21.图1是本发明一示例性实施例示出的一种群密钥动态更新方法的应用场景示意图;
22.图2是本发明一示例性实施例示出的一种群密钥动态更新方法的流程示意图;
23.图3是本发明一示例性实施例示出的离线消息缓存表示意图;
24.图4是本发明一示例性实施例示出的一种群密钥动态更新装置的结构示意图;
25.图5是本发明一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
26.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
27.在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
28.应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
29.在即时通信领域,使用群聊的方式,比如微信群、qq群和钉钉群等,网络信息的安全性和私密性越来越受到人们的重视;基于此,本发明实施例提供了一种群密钥的动态更
新方法及装置。
30.图1是本发明一示例性实施例示出的一种群密钥的动态更新方法的场景示意图;参照图1所示,服务器10响应于一客户端30的建群请求建立目标群,生成该目标群的群公钥,并与密钥中心20生成该目标群的群加密私钥。
31.图2是本技术一示例性实施例所提供的一种数据同步方法的流程示意图;参照图2所示,该方法包括如下步骤:
32.s10、监测目标群的群成员是否发生变化。
33.s20、若是,则根据所述目标群的标识和变化后的所述目标群所包含的全部群成员的id信息重新生成群公钥。
34.s30、向密钥中心发送重新生成所述目标群的群加密私钥的请求,所述请求中携带有所述目标群的群公钥,以使所述密钥中心根据所述群公钥重新生成所述目标群的群加密私钥。
35.s40、接收所述密钥中心发送的所述群加密私钥,将所述群加密私钥和所述群公钥发送至所有群成员客户端。
36.可选地,在所述监测目标群的群成员是否发生变化之前,所述方法还包括如下步骤a10

a20:
37.a10、接收所述目标群的创建申请,生成该目标群的标识。
38.a20、获取所述目标群的标识和所述目标群所包含的群成员的id信息,根据所述目标群的标识和所述目标群所包含的群成员的id信息生成群公钥。
39.在一具体实施例中,上述群密钥动态更新的方法,包括以下步骤:
40.步骤1、服务器接收到建群消息后,根据群及群成员的id信息联合生成群公钥p
pub

41.tk=kdf(id1||id2||

||id
i
||

||id
n
,klen)
42.p
pub
=id||tk
43.其中,klen∈[1,32]为临时密钥字节长度,tk为临时密钥,id
i
表示第i个群成员的id,i∈[1,n],n为群成员总数,kdf函数为密钥派生函数,id为群的标识,字符“||”表示字符串拼接。
[0044]
步骤2、服务器利用群公钥向密钥中心申请群加密私钥,密钥中心由sm9 算法根据群公钥生成群加密私钥s;
[0045]
步骤3、密钥中心将群密钥(p
pub
,s)分发给服务器和所有群成员客户端;
[0046]
步骤4、当群成员变动时,服务器会根据新的群成员id信息采用上述步骤1 的方法生成新的群公钥p

pub

[0047]
步骤4、重复上述步骤2、3使服务器和所有群成员客户端获取新的群密钥 (p

pub
,s

)。
[0048]
本技术另一实施例中,上述方法,还包括如下步骤b10

b20:
[0049]
b10、接收任一群成员客户端发送的加密消息和由该客户端所生成的并使用所述目标群公钥所进行加密的加密密钥。
[0050]
b20、将所述加密消息及所述加密的加密密钥转发至其他群成员客户端,以使所述其他群成员客户端使用目标群所述加密私钥对所述加密的加密密钥解密,并使用解密后的所述加密密钥解密所述加密消息得到群聊消息。
[0051]
本技术一具体实施例中,群成员向群发送群聊消息的过程如下:
[0052]
1、群成员客户端生成随机数key作为加密密钥;
[0053]
2、使用加密密钥对群聊消息m进行加密,得到密文消息key(m);
[0054]
3、使用群公钥加密加密密钥p
pub
(key);
[0055]
4、群成员客户端将key(m)和p
pub
(key)发送给服务器;
[0056]
5、服务器将消息转发给其他群成员客户端;
[0057]
6、群成员客户端接收消息后,使用群加密私钥s解密p
pub
(key),得到加密密钥key,再使用key解密key(m)即可得到群聊消息。
[0058]
可选地,所述方法,还包括同步离线消息,如下步骤c10

c40:
[0059]
c10、使用群公钥对群加密私钥进行加密后作为初始时刻的离线消息缓存在列表中,并标记当前消息为密钥;其中,每条加密的离线消息都有标记信息,指明当前消息是群消息还是密钥,每条离线消息在其密钥之后排列;
[0060]
c20、当群密钥发生变动时,离线消息列表中的密钥需要用历史群加密私钥解密,再用最新群公钥进行加密,缓存位置和标记信息不变;同时,使用最新群公钥对最新群加密私钥加密作为密钥更新后的第一则消息缓存在消息列表中,并标记当前消息为密钥,其对应的每条离线消息排列在其后;
[0061]
c30、销毁服务器和群成员客户端的历史群密钥,即历史群公钥和历史群加密私钥;
[0062]
c40、上述离线消息同步时,按照离线消息缓存列表中的顺序进行同步,如果当前待同步的消息为密钥,则用群加密私钥进行解密,得到的密钥为其后群消息的加密密钥的解密密钥;如果当前待同步消息为群消息,则用其对应的加密密钥的解密密钥解密加密的加密密钥得到加密密钥,再用加密密钥解密加密消息即可得到群聊消息,直至离线消息同步完毕。
[0063]
本技术一具体实施例中,群成员离线消息的同步过程如下步骤:
[0064]
步骤1)、使用群公钥对群加密私钥进行加密后作为初始时刻的离线消息缓存在列表中,并标记当前消息为密钥;
[0065]
步骤2)、每条加密的离线消息都有标记信息,指明当前消息是群消息还是密钥;
[0066]
步骤3)、每条离线消息在其密钥之后排列;
[0067]
步骤4)、当群密钥变动时,离线消息列表中的密钥需要用历史群加密私钥解密,再用最新群公钥进行加密,缓存位置和标记信息不变;同时,使用最新群公钥对最新群加密私钥加密作为密钥更新后的第一则消息缓存在消息列表中,并标记当前消息为密钥,其对应的每条离线消息排列在其后;
[0068]
步骤5)、销毁服务器和群成员客户端的历史群密钥,即历史群公钥和历史群加密私钥;
[0069]
步骤6)、离线消息同步时,严格按照离线消息缓存列表中的顺序进行同步,如果当前待同步的消息为密钥,则用群加密私钥进行解密,得到的密钥为其后群消息的加密密钥的解密密钥;如果当前待同步消息为群消息,则用其对应的加密密钥的解密密钥解密p
pub
(key)得到加密密钥key,再用key解密 key(m)即可得到群聊消息;
[0070]
示例性的,比如参照图3所示,使用群公钥对群加密私钥进行加密得到k0, k0作为
初始时刻的离线消息缓存在列表中,并标记当前消息为密钥;每条加密的离线消息都有标记信息,指明当前消息是群消息还是密钥;每条离线消息在其密钥之后排列;k0为其后群消息的加密密钥的解密密钥的密文;当群密钥变动时,离线消息列表中的密钥需要用历史群加密私钥解密k0,再用最新群公钥进行加密,缓存位置和标记信息不变;销毁服务器和群成员客户端的历史群密钥;同时,使用最新群公钥对最新群加密私钥加密得到k1,作为密钥更新后的第一则消息缓存在消息列表中,并标记当前消息为密钥,其对应的每条离线消息排列在其后;当密钥再次变动后,用历史群加密私钥解密k0、k1,再用最新群公钥进行加密,缓存位置和标记信息不变。
[0071]
步骤7)、依照上述步骤6)的操作,直至离线消息同步完毕。
[0072]
本技术中,群公钥是由群标识及所有群成员id信息联合生成,会随着群成员的变动而动态变化;用群公钥加密群加密私钥后,将其存放在消息缓存列表中,并标记为密钥;当群密钥更新时,用历史群加密私钥解密消息列表中的密钥,并用最新群公钥加密,之后销毁历史群密钥,以确保离线成员上线时能够正确读取群聊离线消息;而退出群的成员即使获取到群聊加密新消息,因未获取到最新群密钥也无法正确解密。该方法解决了在群密钥更新时,群离线成员上线时无法解密离线消息及已退出群的成员获取到群聊加密消息后仍能解密的问题。提高里群聊的信息私密性与保密性。
[0073]
图4是本发明一示例性实施例示出的一种群密钥动态更新装置的结构示意图;参照图4所示,所述装置应用于服务器,所述装置300包括:
[0074]
监测模块301,用于监测目标群的群成员是否发生变化;
[0075]
第一生成模块302,用于若是,则根据所述目标群的标识和变化后的所述目标群所包含的全部群成员的id信息生成群公钥;
[0076]
发送模块303,用于向密钥中心发送重新生成所述目标群的群加密私钥的请求,所述请求中携带有所述目标群的群公钥,以使所述密钥中心根据所述群公钥生成所述目标群的群加密私钥;
[0077]
第一接收模块304,用于接收所述密钥中心发送所述群加密私钥,将所述群加密私钥和所述群公钥发送至所有群成员客户端。
[0078]
可选地,上述装置300,还包括:
[0079]
第二接收模块,用于接收目标群的创建请求,生成该目标群的标识;
[0080]
第二生成模块,用于根据所述目标群的标识和所述目标群所包含的群成员的 id信息生成群公钥。
[0081]
可选地,上述装置300,,还包括:
[0082]
第三接收模块,用于接收群成员客户端发送的加密消息和使用所述目标群公钥所进行加密的加密密钥;
[0083]
转发模块,用于将所述加密消息及所述加密的加密密钥转发至其他群成员客户端,以使所述客户端使用目标群所述加密私钥对所述加密的加密密钥解密,并使用解密后的所述加密密钥解密所述加密消息得到群聊消息。
[0084]
可选地,上述装置300,还包括:
[0085]
缓存模块,用于使用群公钥对群加密私钥进行加密后作为初始时刻的离线消息缓存在离线消息列表中,并标记当前消息为密钥;其中,每条加密的离线消息都有标记信息,
指明当前消息是群消息还是密钥,每条离线消息在其密钥之后排列;
[0086]
加密模块,用于当群密钥发生变动时,离线消息列表中的密钥需要用历史群加密私钥解密,再用最新群公钥进行加密,缓存位置和标记信息不变;同时,使用最新群公钥对最新群加密私钥加密作为密钥更新后的第一则消息缓存在消息列表中,并标记当前消息为密钥,其对应的每条离线消息排列在其后;
[0087]
销毁模块,用于销毁服务器和群成员客户端的历史群密钥;
[0088]
同步模块,用于实现上述离线消息同步时,按照离线消息缓存列表中的顺序进行同步,如果当前待同步的消息为密钥,则用群加密私钥进行解密,得到的密钥为其后群消息的加密密钥的解密密钥;如果当前待同步消息为群消息,则用其对应的加密密钥的解密密钥解密加密的加密密钥得到加密密钥,再用加密密钥解密加密消息即可得到群聊消息,直至离线消息同步完毕。
[0089]
图5是本发明一示例性实施例示出的一种计算机设备的结构示意图;本发明实施例中提供的一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;
[0090]
存储器503,用于存放计算机程序;
[0091]
处理器501,用于执行存储器503上所存放的程序时,实现上述任一实施例中所述的一种群密钥动态更新方法的步骤;服务器实时监测目标群的群成员是否发生变化;若是,则根据该目标群的标识和变化后的该目标群所包含的全部群成员的id信息生成群公钥;服务器向密钥中心发送生成目标群的消息加密私钥请求,该请求中携带有目标群的群公钥,以使密钥中心根据群公钥生成目标群的群加密私钥;服务器接收密钥中心发送的群加密私钥,将群加密私钥和群公钥发送至所有群成员客户端。本发明实施例中,根据群成员的变化动态生成群公钥和群加密私钥,并提出一种群密钥更新时离线消息缓存机制,进而使得退出群的成员即使获取到群消息,因未获取到最新群密钥而无法正确解密,离线群成员上线时即使密钥已更新也能正确解密离线消息,并且保证了群聊的安全性和私密性。
[0092]
上述终端提到的通信总线可以是外设部件互连标准(peripheral componentinterconnect,简称pci)总线或扩展工业标准结构(extended industry standardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0093]
通信接口用于上述终端与其他设备之间的通信。
[0094]
存储器可以包括随机存取存储器(randomaccess memory,简称ram),也可以包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0095]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specificintegrated circuit,简称asic)、现场可编程门阵列(field-programmable gatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0096]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0097]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0098]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、 eeprom和闪存设备)、磁盘(例如内部磁盘或可移动盘)、磁光盘以及cd rom 和dvd

rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
[0099]
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
[0100]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
[0101]
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
[0102]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1