一种中心化的高效群组会话密钥管理方法转让专利
申请号 : CN202011292434.5
文献号 : CN112422282B
文献日 : 2022-03-18
发明人 : 张李军 , 吉庆兵 , 于飞 , 谈程 , 陈曼
申请人 : 中国电子科技集团公司第三十研究所
摘要 :
权利要求 :
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的数值即可。
说明书 :
一种中心化的高效群组会话密钥管理方法
技术领域
背景技术
用群组会话密钥进行加密保护,只有授权的群组成员才能正确解密出数据明文。实际中进
行群组通信时群组成员会发生动态变化,即有成员加入和退出。为了保证群组成员变化后
的通信安全,我们还要求数据加密具有前向安全性(即成员在退出群组之后不能获取到新
的群组会话密钥)、后向安全性(即成员在加入群组之前不能获取到群组会话密钥)以及密
钥独立性(即更新后的密钥对非群组成员具有不可预测性)。此外,更高的安全需求还包括
能够抗共谋攻击,即非群组成员,包括从群组中退出的人员,即使合作使用他们自己之前掌
握的密钥信息也不能构造出当前群组通信的会话密钥。为了达到这些安全需求,群组会话
密钥管理协议负责在群组建立时生成和分发会话密钥、在群组通信时使用会话密钥以及在
群组成员动态变化时更新会话密钥。
类群组会话密钥管理协议比较适合大多数互联网通信场景,即由密钥中心服务器管理会话
密钥,众多客户端作为成员组成群组进行消息通信。
存储量以及密钥发送时的通信量。相对计算和存储来说,实际中更关心密钥发送时通信量,
尤其是在群组成员较多和通信资源较为珍贵的情况下。因此研究者们主要研究如何减少群
组会话密钥管理中的通信开销,核心是设计通信开销更小的密钥分发和更新协议。
群组成员。若有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协议会受到暴力攻击和合谋攻击,群组会话密钥可以被暴力破解,
退出的群成员也可以合谋获取后续的会话密钥。
发明内容
密钥生成和分发协议,群组成员加入或退出时的密钥更新协议,以及一消息一密钥的密钥
生成机制。
组会话密钥Gk,往下的节点密钥为中间层逻辑密钥,叶子节点密钥为群组成员与密钥中心
服务器的单播加密密钥。所述安全计算编码方法包括:采用十六进制字节编码形式,子节点
编码是在父节点的编码基础上增加L个字节的随机字节串;成员与密钥中心服务器的单播
加密密钥不进行编码,以减少编码长度。进一步的,为了防止编码猜测攻击,L值至少为16,
即每一层编码增加128比特。
节点是指密钥树中单播密钥节点的上一层;
钥值,并进行存储。
用单播密钥加密发送给新成员;新成员收到密文后解密并解析出Gk’和对应位置的编码,计
算出对应的逻辑密钥值。
钥更新Gk’=H(Gk),并利用新的Gk’计算更新自己存储的所有逻辑节点密钥KMidNode=H(Gk’
||MidNode),其中MidNode表示对应逻辑密钥节点编码,符号||表示Gk’和MidNode的级联。
节点编码的密钥采用不受离开成员影响的顶端密钥;利用顶端密钥加密时,将新的群组会
话密钥和更新后的节点编码发送给相应群成员,即消息明文为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完成密文的解密。
附图说明
具体实施方式
即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施
例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本
发明保护的范围。
的密钥生成机制,具体如下。
Gk,往下的节点密钥称为中间层逻辑密钥(如k14、k58、k12、k34等),叶子节点密钥k1,
k2,…,k7依次为群组成员U1,U2,…,U7与密钥中心服务器的单播加密密钥。其中,安全计算
编码的设计如下:
码增加128比特。图1中每一个大写字母的编码表示L个字节的随机字节串(如A0,B0都表示长
度为L的字节串)。成员与密钥中心服务器的单播加密密钥不需要进行编码,从而减少编码
长度。
节点是指密钥树中单播密钥节点的上一层。如发送给成员U1的密文为E(k1,Gk||A0A1),符号
||表示字节串Gk和A0A1的级联。
编码为A0。每个成员根据解析出的节点编码计算出对应的逻辑密钥值,并进行存储。如U1节
点计算出k12=H(Gk||A0A1),k14=H(Gk||A0),其中H是一个密码学哈希函数。
心服务器将Gk’和对应位置的编码B0B2利用单播密钥k8加密发送给U8。
群组密钥更新Gk’=H(Gk),并利用新的Gk’计算更新自己存储的所有逻辑节点密钥KMidNode
=H(Gk’||MidNode),其中MidNode表示对应逻辑密钥节点编码。
节点编码的密钥采用不受离开成员影响的顶端密钥。利用顶端密钥加密时,将新的群组会
话密钥和更新后的节点编码发送给相应群成员,即消息明文为Gk’||顶端密钥节点的父节
点编码。
和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’)。
在群组会话时能够使用不同的群组会话密钥进行加密,则消息的安全程度进一步提高。基
于群组会话密钥,本发明设计了如下的密钥迭代方法:
中ID表示消息发送者的标识,N表示消息发送者第N次发送消息。利用计算得到的当前消息
会话密钥key对消息Message进行加密得到密文E(key,Message),然后将E(key,Message)||
ID||N发送给群内成员。群内成员收到E(key,Message)||ID||N后,利用ID||N和Gk同样计算
出该消息的解密密钥key完成密文的解密。
成员想要通过猜测节点编码而获取自己未知的其他逻辑密钥值是不可行的,因为这相当于
猜测128比特的密钥值。在合理的设置群组会话密钥的有效期条件下,本发明可以抵抗编码
猜测攻击,退出的成员无法获得新的群组会话密钥,因此协议具有前向安全性。
经失效。即使成员合谋也无法获取到更新后的密钥树逻辑密钥节点编码和密钥值,因此本
发明能够抵抗共谋攻击。
的LHK协议和OFT协议进行了比较,可以看出本发明在密钥更新时的执行效率更高,密钥存
储量更小,特别是将新成员加入时的通信开销控制到了常数级。此外,在群组构建时采用计
算而无需发送中间层逻辑密钥,因此群组成员获取逻辑密钥时更加高效。
文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进
行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。