一种中心化的高效群组会话密钥管理方法转让专利

申请号 : CN202011292434.5

文献号 : CN112422282B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张李军吉庆兵于飞谈程陈曼

申请人 : 中国电子科技集团公司第三十研究所

摘要 :

本发明公开了一种中心化的高效群组会话密钥管理方法,主要包括群组构建时的密钥生成和分发协议,群组成员加入或退出时的密钥更新协议,以及一消息一密钥的密钥生成机制。会话密钥管理方法基于对密钥树各个节点的安全计算编码方法,该安全计算编码方法包括:采用十六进制字节编码形式,子节点编码是在父节点的编码基础上增加L个字节的随机字节串;成员与密钥中心服务器的单播加密密钥不进行编码,以减少编码长度。本发明在群组构建时的会话密钥和逻辑密钥的生成和分发更加高效,并且降低了密钥中心服务器和群组成员的密钥存储量,提高了通信群组的构建效率。

权利要求 :

1.一种中心化的高效群组会话密钥管理方法,其特征在于,主要包括群组构建时的密钥生成和分发协议,群组成员加入或退出时的密钥更新协议,以及一消息一密钥的密钥生成机制;会话密钥管理方法基于对密钥树各个节点的安全计算编码方法,其中密钥树是一个层次化的结构,处于密钥树顶端即根节点的密钥为群组会话密钥Gk,往下的节点密钥为中间层逻辑密钥,叶子节点密钥为群组成员与密钥中心服务器的单播加密密钥;

所述安全计算编码方法包括:采用十六进制字节编码形式,子节点编码是在父节点的编码基础上增加L个字节的随机字节串;成员与密钥中心服务器的单播加密密钥不进行编码,以减少编码长度;

所述群组构建时的密钥生成和分发协议包括:密钥中心服务器选定进群的成员,生成群组会话密钥Gk,利用与成员的单播密钥ki和加密算法E将Gk和密钥树底层节点编码BaseCode加密发送给每个群组成员,其中底层节点是指密钥树中单播密钥节点的上一层;

每个成员解密得到群组密钥Gk和底层节点编码BaseCode,按照长度L依次解析出到根节点路径上的所有逻辑密钥节点编码,并根据解析出的节点编码计算出对应的逻辑密钥值,并进行存储;

所述群组成员加入时的密钥更新协议包括:成员加入时,密钥中心服务器利用哈希函数H生成一个新的群组会话密钥Gk’=H(Gk),并在密钥树中为新成员确定所处的位置;密钥中心服务器将Gk’和对应位置的编码利用单播密钥加密发送给新成员;新成员收到密文后解密并解析出Gk’和对应位置的编码,计算出对应的逻辑密钥值;

所述群组成员退出时的密钥更新协议包括:有群成员退出时,密钥中心服务器随机生成一个新的群会话密钥Gk’,对离开的成员,需要更新该成员所知道的所有逻辑节点编码,从而替换相应的逻辑密钥;加密这些新的节点编码的密钥采用不受离开成员影响的顶端密钥;利用顶端密钥加密时,将新的群组会话密钥和更新后的节点编码发送给相应群成员,即消息明文为Gk’||顶端密钥节点的父节点编码;

所述一消息一密钥的密钥生成机制包括:基于群组会话密钥进行密钥迭代:每个群组成员在利用群组会话密钥Gk进行消息加密时,对会话密钥首先利用群组事先选定的哈希函数F对群组会话密钥Gk计算出当前消息的加密密钥key=F(Gk||ID||N),其中ID表示消息发送者的标识,N表示消息发送者第N次发送消息;利用计算得到的当前消息会话密钥key对消息Message进行加密得到密文E(key,Message),然后将E(key,Message)||ID||N发送给群内成员;群内成员收到E(key,Message)||ID||N后,利用ID||N和Gk同样计算出该消息的解密密钥key完成密文的解密。

2.根据权利要求1所述的一种中心化的高效群组会话密钥管理方法,其特征在于,为了防止编码猜测攻击,L值至少为16,即每一层编码增加128比特。

3.根据权利要求1或2所述的一种中心化的高效群组会话密钥管理方法,其特征在于,密钥中心服务器利用群组会话密钥Gk加密并广播发送有新成员加入的消息M;群内原有成员接收并解密密钥中心服务器发送的有新成员加入的消息M,在本地进行群组密钥更新Gk’=H(Gk),并利用新的Gk’计算更新自己存储的所有逻辑节点密钥KMidNode=H(Gk’||MidNode),其中MidNode表示对应逻辑密钥节点编码,符号||表示Gk’和MidNode的级联。

4.根据权利要求1或所述的一种中心化的高效群组会话密钥管理方法,其特征在于,进行群组会话密钥迭代后,群内每个成员发送的每个消息的加密密钥都是不同的,每个成员只需要在发送消息时递增N的数值即可。

说明书 :

一种中心化的高效群组会话密钥管理方法

技术领域

[0001] 本发明涉及通信安全技术领域,尤其涉及一种中心化的高效群组会话密钥管理方法。

背景技术

[0002] 随着无线宽带网络的发展,群组通信被广泛用于电视广播、视频会议、即时通信、在线教育以及军事通信等领域。由于无线网络信号的公开可接收性,群组通信数据需要使
用群组会话密钥进行加密保护,只有授权的群组成员才能正确解密出数据明文。实际中进
行群组通信时群组成员会发生动态变化,即有成员加入和退出。为了保证群组成员变化后
的通信安全,我们还要求数据加密具有前向安全性(即成员在退出群组之后不能获取到新
的群组会话密钥)、后向安全性(即成员在加入群组之前不能获取到群组会话密钥)以及密
钥独立性(即更新后的密钥对非群组成员具有不可预测性)。此外,更高的安全需求还包括
能够抗共谋攻击,即非群组成员,包括从群组中退出的人员,即使合作使用他们自己之前掌
握的密钥信息也不能构造出当前群组通信的会话密钥。为了达到这些安全需求,群组会话
密钥管理协议负责在群组建立时生成和分发会话密钥、在群组通信时使用会话密钥以及在
群组成员动态变化时更新会话密钥。
[0003] 群组会话密钥管理协议从网络通信方式上可分为中心化的和分布式的,其中中心化方式是将会话密钥进行集中管理,由一个密钥管理中心负责密钥的生成、分发和更新。这
类群组会话密钥管理协议比较适合大多数互联网通信场景,即由密钥中心服务器管理会话
密钥,众多客户端作为成员组成群组进行消息通信。
[0004] 在设计群组会话密钥管理协议时,除了要实现密钥的安全需求外,还要着重考虑密钥生成和发送时的资源消耗问题。这些资源消耗包括密钥生成和更新时的计算量、密钥
存储量以及密钥发送时的通信量。相对计算和存储来说,实际中更关心密钥发送时通信量,
尤其是在群组成员较多和通信资源较为珍贵的情况下。因此研究者们主要研究如何减少群
组会话密钥管理中的通信开销,核心是设计通信开销更小的密钥分发和更新协议。
[0005] Harney和Wallne等人早在1999年就在互联网标准草案RFC2093和RFC2627中设计了最初的群组会话密钥管理架构,密钥管理中心采用一对一的方式将会话密钥发送给每个
群组成员。若有n个成员,则密钥分发和更新时需要发送O(n)个消息,消息通信量很大。2002
年Hao‑Hua Chu等人提出了以消息为驱动的群组通信,一个群组成员每发送一个消息时同
时把会话密钥发送给密钥管理服务器,服务器再把密文消息和会话密钥发送个每个群组成
员。理论上每个消息的会话密钥可以不同,但每个消息都需要O(n)的密钥分发通信量。Wong
等人设计了基于逻辑层次化的群组会话密钥更新协议(Logical Hierarchical Key 
Protocol,简称LHK协议),核心思想是采用二叉树的层次化结构进行密钥的存储和分发。群
组成员存储密钥二叉树上从成员自身所在的叶子节点到根节点的所有逻辑密钥。在进行密
钥更新时,密钥中心服务器利用这些中间层的逻辑密钥加密相关的密钥信息再进行多播。
群组成员节点收到这些密钥信息,利用相应的逻辑密钥解密并计算出更新后的群组会话密
钥。相比密钥信息在密钥中心服务器和成员之间的只进行两两通信的方式,该协议将密钥
更新时的通信量从O(n)降到了O(logn),其中logn表示n的对数运算。Balenson等人在LHK协
议的基础上设计了基于单向函数树的层次化密钥管理协议(One‑way Function Tree 
Protocol,简称OFT协议)。协议中成员节点的逻辑密钥不全由密钥中心服务器生成下发,而
是由左右子节点的盲化密钥计算生成,这样密钥中心服务器在分发密钥信息时,只需要加
密下发成员兄弟节点的盲化密钥。相比LHK协议,密钥更新时可以节约一半的通信量。2010
年,Hajyvahabzadeh等人基于OFT协议中密钥计算的思想引入了密钥计算编码(Code for 
Key Calculation,简称CKC协议),所有的中间层逻辑密钥通过群组会话密钥Gk和密钥节点
编码Code进行计算。当群组会话密钥更新后,中间层的逻辑密钥更新不需密钥中心服务器
生成和分发,而是由成员自己直接计算得到。因此,CKC协议在密钥更新时通信效率更高。但
2016年Sun等人指出CKC协议会受到暴力攻击和合谋攻击,群组会话密钥可以被暴力破解,
退出的群成员也可以合谋获取后续的会话密钥。
[0006] 综合看来,当前中心化的群组会话密钥管理协议虽然利用密钥层次化思想降低了群组成员变化时的密钥更新通信量,但还存在以下主要问题:
[0007] (1)现有协议在群组建立时的会话密钥生成和密钥分发仍然需要发送所有中间层逻辑密钥以及采用一对一的方式发送群组会话密钥,通信开销较大。
[0008] (2)现有基于密钥计算编码的密钥管理协议存在严重的安全缺陷,无法实现安全的群组通信需求。
[0009] (3)群组会话密钥更新时的消息通信量较大,成员加入和退出时目前都至少需要广播O(logn)条消息。
[0010] (4)群组会话密钥在密钥更新之前都是保持不变,且所有的群组成员都使用相同的会话密钥进行消息加密,无法体现各个成员加密时的差异性。

发明内容

[0011] 为了解决上述问题,本发明提出一种中心化的高效群组会话密钥管理方法,可用于中心化的各种群组通信场景,提供安全的群组通信保障,本发明主要包括群组构建时的
密钥生成和分发协议,群组成员加入或退出时的密钥更新协议,以及一消息一密钥的密钥
生成机制。
[0012] 本发明的一种中心化的高效群组会话密钥管理方法基于对密钥树各个节点的安全计算编码方法,其中密钥树是一个层次化的结构,处于密钥树顶端即根节点的密钥为群
组会话密钥Gk,往下的节点密钥为中间层逻辑密钥,叶子节点密钥为群组成员与密钥中心
服务器的单播加密密钥。所述安全计算编码方法包括:采用十六进制字节编码形式,子节点
编码是在父节点的编码基础上增加L个字节的随机字节串;成员与密钥中心服务器的单播
加密密钥不进行编码,以减少编码长度。进一步的,为了防止编码猜测攻击,L值至少为16,
即每一层编码增加128比特。
[0013] 进一步的,群组构建时的密钥生成和分发协议包括:
[0014] 密钥中心服务器选定进群的成员,生成群组会话密钥Gk,利用与成员的单播密钥ki和加密算法E将Gk和密钥树底层节点编码BaseCode加密发送给每个群组成员,其中底层
节点是指密钥树中单播密钥节点的上一层;
[0015] 每个成员解密得到群组密钥Gk和底层节点编码BaseCode,按照长度L依次解析出到根节点路径上的所有逻辑密钥节点编码,并根据解析出的节点编码计算出对应的逻辑密
钥值,并进行存储。
[0016] 进一步的,群组成员加入时的密钥更新协议包括:
[0017] 成员加入时,密钥中心服务器利用哈希函数H生成一个新的群组会话密钥Gk’=H(Gk),并在密钥树中为新成员确定所处的位置;密钥中心服务器将Gk’和对应位置的编码利
用单播密钥加密发送给新成员;新成员收到密文后解密并解析出Gk’和对应位置的编码,计
算出对应的逻辑密钥值。
[0018] 密钥中心服务器利用群组会话密钥Gk加密并广播发送有新成员加入的消息M;群内原有成员接收并解密密钥中心服务器发送的有新成员加入的消息M,在本地进行群组密
钥更新Gk’=H(Gk),并利用新的Gk’计算更新自己存储的所有逻辑节点密钥KMidNode=H(Gk’
||MidNode),其中MidNode表示对应逻辑密钥节点编码,符号||表示Gk’和MidNode的级联。
[0019] 进一步的,群组成员退出时的密钥更新协议包括:
[0020] 有群成员退出时,密钥中心服务器随机生成一个新的群会话密钥Gk’,对离开的成员,需要更新该成员所知道的所有逻辑节点编码,从而替换相应的逻辑密钥;加密这些新的
节点编码的密钥采用不受离开成员影响的顶端密钥;利用顶端密钥加密时,将新的群组会
话密钥和更新后的节点编码发送给相应群成员,即消息明文为Gk’||顶端密钥节点的父节
点编码。
[0021] 进一步的,一消息一密钥的密钥生成机制包括:
[0022] 基于群组会话密钥进行密钥迭代:每个群组成员在利用群组会话密钥Gk进行消息加密时,对会话密钥首先利用群组事先选定的哈希函数F对群组会话密钥Gk计算出当前消
息的加密密钥key=F(Gk||ID||N),其中ID表示消息发送者的标识,N表示消息发送者第N次
发送消息;利用计算得到的当前消息会话密钥key对消息Message进行加密得到密文E(key,
Message),然后将E(key,Message)||ID||N发送给群内成员;群内成员收到E(key,Message)
||ID||N后,利用ID||N和Gk同样计算出该消息的解密密钥key完成密文的解密。
[0023] 进一步的,进行群组会话密钥迭代后,群内每个成员发送的每个消息的加密密钥都是不同的,每个成员只需要在发送消息时递增N的数值即可。
[0024] 基于上述技术方案,本发明可解决如下技术问题:
[0025] (1)在群组建立时的会话密钥生成和分发阶段,省去了密钥树中间层所有逻辑密钥的分发,从而显著降低了密钥信息分发时的通信开销。
[0026] (2)提出了安全计算编码的设计方法,解决了现有基于密钥计算编码的密钥管理协议存在的安全缺陷问题。
[0027] (3)减少了群组成员加入和退出时的密钥更新通信开销,特别是将群组成员加入时的密钥更新通信开销降到了常数级。
[0028] (4)设计了一消息一密钥的密钥生成机制,每个群组成员可以使用不同的群组会话密钥进行消息加密,解决了会话密钥相同的问题,进一步提高了群组通信的安全性。
[0029] 本发明的有益效果在于:
[0030] (1)群组构建时的会话密钥和逻辑密钥的生成和分发更加高效,并且降低了密钥中心服务器和群组成员的密钥存储量,提高了通信群组的构建效率。
[0031] (2)群组成员动态变化时的会话密钥更新的通信开销显著降低,本发明尤其适用于通信资源受限条件下的群组通信场景。
[0032] (3)设计的一消息一密钥的机制能够使每个成员发送每条消息时的会话密钥不同,进一步提高了群组通信的消息安全强度。

附图说明

[0033] 图1是本发明实施例的密钥树安全计算编码的示意图;
[0034] 图2是本发明实施例的新成员U8加入群组的示意图;
[0035] 图3是本发明实施例的成员U1退出群组的示意图。

具体实施方式

[0036] 为了对本发明的技术特征、目的和效果有更加清楚的理解,现说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,
即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施
例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本
发明保护的范围。
[0037] 本发明提供了一种中心化的高效群组会话密钥管理方法,主要包括群组构建时的密钥生成和分发协议,群组成员变化(加入或退出)时的密钥更新协议,以及一消息一密钥
的密钥生成机制,具体如下。
[0038] (1)密钥树的安全计算编码设计
[0039] 本发明的会话密钥管理方法基于对密钥树各个节点的安全计算编码,其中密钥树是一个层次化的结构,如图1所示,处于密钥树顶端(称为根节点)的密钥即为群组会话密钥
Gk,往下的节点密钥称为中间层逻辑密钥(如k14、k58、k12、k34等),叶子节点密钥k1,
k2,…,k7依次为群组成员U1,U2,…,U7与密钥中心服务器的单播加密密钥。其中,安全计算
编码的设计如下:
[0040] 本发明采用十六进制字节编码形式,子节点编码是在父节点的编码基础上增加L个字节(称为安全长度)的随机字节串,为了防止编码猜测攻击,L值至少为16,即每一层编
码增加128比特。图1中每一个大写字母的编码表示L个字节的随机字节串(如A0,B0都表示长
度为L的字节串)。成员与密钥中心服务器的单播加密密钥不需要进行编码,从而减少编码
长度。
[0041] (2)群组构建时密钥生成和分发协议
[0042] 密钥中心服务器选定进群的成员,生成群组会话密钥Gk,利用与成员的单播密钥ki和加密算法E将Gk和密钥树底层节点编码BaseCode加密发送给每个群组成员,其中底层
节点是指密钥树中单播密钥节点的上一层。如发送给成员U1的密文为E(k1,Gk||A0A1),符号
||表示字节串Gk和A0A1的级联。
[0043] 每个成员解密得到群组密钥Gk和底层编码BaseCode,按照长度L依次解析出到根节点路径上的所有逻辑密钥节点编码。如成员U1解析出父节点k12的编码为A0A1,节点k14的
编码为A0。每个成员根据解析出的节点编码计算出对应的逻辑密钥值,并进行存储。如U1节
点计算出k12=H(Gk||A0A1),k14=H(Gk||A0),其中H是一个密码学哈希函数。
[0044] (3)群组成员加入时密钥更新协议
[0045] 成员加入时,密钥中心服务器利用哈希函数H生成一个新的群组会话密钥Gk’=H(Gk),并在密钥树中为新成员确定所处的位置。如图2所示,假设加入的新成员为U8,密钥中
心服务器将Gk’和对应位置的编码B0B2利用单播密钥k8加密发送给U8。
[0046] U8收到密文E(k8,Gk’||B0B2)后解密并解析出Gk’和编码B0B2,计算出密钥k78=H(Gk’||B0B2)和k58=H(Gk||B0)。
[0047] 密钥中心服务器利用群组会话密钥Gk加密并广播发送有新成员U8加入的消息M。群内原有成员接收并解密密钥中心服务器发送的有新成员U8加入的消息M,则在本地进行
群组密钥更新Gk’=H(Gk),并利用新的Gk’计算更新自己存储的所有逻辑节点密钥KMidNode
=H(Gk’||MidNode),其中MidNode表示对应逻辑密钥节点编码。
[0048] (4)群组成员退出时密钥更新协议
[0049] 有群成员退出时,密钥中心服务器随机生成一个新的群会话密钥Gk’,对离开的成员,需要更新该成员所知道的所有逻辑节点编码,从而替换相应的逻辑密钥。加密这些新的
节点编码的密钥采用不受离开成员影响的顶端密钥。利用顶端密钥加密时,将新的群组会
话密钥和更新后的节点编码发送给相应群成员,即消息明文为Gk’||顶端密钥节点的父节
点编码。
[0050] 如图3所示,以成员U1离开为例,k14和k12的编码和密钥值都需要进行更新,不受影响的顶端密钥为k2,k34和k58,即此时密钥树分成了三个分支。密钥中心服务器生成k14
和k12的新编码为C0和C0 C1,利用k2加密Gk’||C0 C1单播发送给成员U2,密文为E(k2,Gk’||
C0C1);利用k34加密Gk’||C0多播发送给成员U3和U4,密文为E(k34,Gk’||C0);利用k58加密
Gk’多播发送给成员U5到U8,密文为E(k58,Gk’)。
[0051] 成员U2解密密文得到Gk’和C0C1,更新k12和k14的编码分别为C0C1和C0,并计算更新的逻辑密钥值为k12=H(Gk||C0 C1),k14=H(Gk||C0)。
[0052] 成员U3和U4解密密文得到Gk’和C0,更新k34和k14的编码分别为C0A2和C0,并计算更新的逻辑密钥值为k34=H(Gk||C0A2),k14=H(Gk||C0)。
[0053] 成员U5,U6,U7,U8解密密文得到Gk’。U5和U6计算更新的逻辑密钥值k56=H(Gk||B0B1),k58=H(Gk||B0)。U7和U8计算更新的密钥值k78=H(Gk||B0B2),k58=H(Gk||B0)。
[0054] (5)一消息一密钥的密钥生成机制设计
[0055] 已有的群组密钥管理协议中,群组成员在进行群组加密通信时都采用的是相同的群组会话密钥进行加密,并且在规定的密钥有效期内,群组会话密钥保持不变。若群组成员
在群组会话时能够使用不同的群组会话密钥进行加密,则消息的安全程度进一步提高。基
于群组会话密钥,本发明设计了如下的密钥迭代方法:
[0056] 每个群组成员在利用群组会话密钥Gk进行消息加密时,对会话密钥首先利用群组事先选定的哈希函数F对群组会话密钥计算出当前消息的加密密钥key=F(Gk||ID||N),其
中ID表示消息发送者的标识,N表示消息发送者第N次发送消息。利用计算得到的当前消息
会话密钥key对消息Message进行加密得到密文E(key,Message),然后将E(key,Message)||
ID||N发送给群内成员。群内成员收到E(key,Message)||ID||N后,利用ID||N和Gk同样计算
出该消息的解密密钥key完成密文的解密。
[0057] 进行群组会话密钥迭代后,群内每个成员发送的每个消息的加密密钥都是不同的,每个成员只需要在发送消息时递增N的数值即可,实现了一消息一密钥的安全强度。
[0058] 基于本发明提供的上述中心化的高效群组会话密钥管理方法,现提供相应的安全性分析、通信开销和存储分析,具体如下。
[0059] 本发明的安全性分析:
[0060] (1)前向安全性:退出群组的成员,密钥中心服务器会对退出成员知晓的所有逻辑密钥节点编码和密钥值进行更新。由于每层增加的编码长度至少是随机的16字节,退出的
成员想要通过猜测节点编码而获取自己未知的其他逻辑密钥值是不可行的,因为这相当于
猜测128比特的密钥值。在合理的设置群组会话密钥的有效期条件下,本发明可以抵抗编码
猜测攻击,退出的成员无法获得新的群组会话密钥,因此协议具有前向安全性。
[0061] (2)后向安全性:新加入的成员没有群组通信原有会话密钥和密钥节点编码,不能得到相应的逻辑密钥信息,因此本发明具有后向安全性。
[0062] (3)密钥独立性:有群组成员退出后,新生成的群组会话密钥是随机生成的,与原来的会话密钥没有相关性,因此密钥具有独立性。
[0063] (4)抗共谋攻击:退出的成员即使把自己知道的密钥节点编码告诉其他群组成员,由于退出成员的所有知晓的密钥节点编码都会进行更换,所以这些泄露的密钥节点编码已
经失效。即使成员合谋也无法获取到更新后的密钥树逻辑密钥节点编码和密钥值,因此本
发明能够抵抗共谋攻击。
[0064] 本发明的通信开销和存储分析:
[0065] 密钥管理协议的通信开销直接体现了协议的执行效率,成员密钥更新过程中的通信开销应该尽量少,表1中把本发明的中心化的高效群组会话密钥管理方法与现有最高效
的LHK协议和OFT协议进行了比较,可以看出本发明在密钥更新时的执行效率更高,密钥存
储量更小,特别是将新成员加入时的通信开销控制到了常数级。此外,在群组构建时采用计
算而无需发送中间层逻辑密钥,因此群组成员获取逻辑密钥时更加高效。
[0066] 表1群组会话密钥管理协议通信开销对比
[0067]
[0068] 表1中n表示群组成员个数,d表示密钥树深度d=logn,K表示群组密钥和逻辑密钥长度,C表示SKCC协议中的密钥树底层节点编码长度。
[0069] 以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本
文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进
行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。