一种基于单播会话密钥的组播密钥分发方法及其更新方法
发明领域
本发明涉及一种基于单播会话密钥的组播密钥分发方法及其更新方法。
背景技术
网络安全问题已得到业界和学术界的广泛关注。相对而言,无线网络的安全问题远比有线以太网严重。美国IEEE(电气及电子工程师学会)制定了802.11和802.16系列标准来增强无线局域网和无线城域网的安全性,提供移动终端MT到基站BS的安全接入,中国也在2003年5月份颁布了无线局域网国家标准GB15629.11,通常称为WAPI(无线局域网鉴别与保密基础架构)协议。宽带无线多媒体(BWM)网络融合了数据通信和广播通信,是一种新的无线网络体系结构,同样需要解决安全接入和保密通信问题。
不管是那种无线网络,一般都包含两种通信模式:点对点的单播通信和点对多点组播(或称为组内广播)方式。不仅仅是单播通信需要保证通信双方实体的真实性以及通信内容的保密性,安全组播同样需要保证组播实体的合法性和组播消息的保密性,同时,对接收组播的终端也需要一定的权限限制,保证只有获得授权的终端可以正确地读出所组播的消息,这要求我们必须首先有效解决组播密钥安全分发问题。如何有效管理组播密钥是解决安全组播的关键问题之一。
IEEE802.11标准使用了WEP(有线等效保密)协议实现WLAN的安全性,它的密钥管理非常简单,即手工在移动终端和接入点之间设置共享密钥。此时,IEEE802.11还没有涉及组播密钥管理问题,没有提供关于组播安全的解决方案。
因为WEP加密协议存在严重的安全漏洞。IEEE提出了IEEE802.11i标准来解决WEP的安全问题。中国也提出了无线局域网中国国家标准GB15629.11,即WAPI,同样克服了WEP存在的一些弊病。IEEE802.11i和WAPI尽管认证机制不同,但在组播密钥管理方面却是十分相似:组播会话密钥GSK的分发是由事先建立的单播会话密钥USK加密分发的。也就是说,基站会选取一个组播会话密钥,然后,分别用自己与每一个终端共享的单播会话密钥进行加密,并逐个发送给相应的终端。每个终端接收到加密的组播会话密钥消息后,可以用自己与基站共享的单播会话密钥解密得到组播会话密钥。当每个终端都接收到同样的组播会话密钥后,基站就可以进行安全组播。如果要更新组播会话密钥,则需要重复上述过程。
该方法的缺点是效率低,特别是当进行组播会话密钥更新时,基站需要重复上述组播会话密钥分发过程:基站选取一个组播会话密钥,分别用自己与每一个终端共享的单播会话密钥进行加密,并逐个发送给相应的终端。
在美国IEEE提出的无线城域网标准即IEEE802.16标准中,其组播密钥管理借鉴了IEEE802.11i。但在IEEE提出的IEEE802.16e标准中,关于安全组播密钥管理问题,提出了新的设计理念,引入了组播密钥加密密钥GKEK,建立起了组播密钥加密密钥GKEK和组播会话密钥GSK两级的管理方法。其思想为:首先,基站利用与每个终端建立的单播会话密钥逐个加密GKEK并发送给相应终端;终端收到该消息后,利用单播会话密钥解密得到GKEK;然后,基站利用GKEK作为密钥加密GSK,并对所有终端进行广播;拥有GKEK的每一个终端可以得到相同的GSK。这时,组播会话密钥过程完成。在进行组播会话密钥更新时,采用同样的过程:即基站利用GKEK作为密钥加密GSK,并对所有终端进行广播。
而IEEE802.116e的组播密钥管理方法还存在如下缺点:采用时间同步方式,状态管理复杂;新密钥的启用、禁用都依赖时间判断,在一个分布式系统中维护同步时钟比较复杂。
针对这种情况,中国在无线城域网和宽带无线多媒体领域,提出了具有类似思想的组播会话密钥管理方法。
但这种方法具有以下缺点:
1、尽管采用了GKEK和GSK两级的管理方法,但对所有终端来说,它们的GKEK和GSK是相同的,不具备密钥分级管理的优势和特点;
2、因为GKEK对所有终端来说是相同的,这会使得终端更容易将GKEK泄漏给其他终端,安全性不高;
3、没有涉及GKEK的更新方法。因为GKEK作为基础密钥对所有终端来说是相同的,安全性不高,因此,需要经常更换GKEK;
4、没有提供有效的GKEK更新方法,只能和组播密钥加密密钥分发方法相同,由基站逐个加密、逐个发送给终端;
5、在上述情况4中,这种更新可能需要较长时间,该时间长短由终端数目决定。这可能会导致在密钥更新时,出现组播中断现象。
尽管IEEE802.16e和上述中国在无线城域网和宽带无线多媒体领域所提方案能够在一定程度上改进了组播密钥管理的效率问题,避免了提高了组播会话密钥分发和更新的效率,但该方案并没有从根本上解决上述IEEE802.11i和WAPI以及IEEE802.16存在的问题,也就是说,至少对于组播密钥加密密钥GKEK的分发,同样需要基站分别用自己与每一个终端共享的单播会话密钥进行加密,并逐个发送给相应的终端。同时,对于组播密钥加密密钥GKEK更新问题也未作处理,只能简单地重复初次分发过程来实现。
发明内容
本发明为解决现有技术中基于单播会话密钥的组播密钥分发效率低下问题,而提供一种基于单播会话密钥的组播密钥分发方法。
本发明的技术解决方案是:本发明为一种基于单播会话密钥的组播密钥分发方法,其特殊之处在于:该方法包括以下步骤:
1)基站构造组播密钥分发分组;
2)由基站向所有的终端进行广播组播密钥分发分组;
3)由终端通过计算获取组播会话密钥。
上述步骤1)之前还包括由基站建立系统参数的步骤。
上述系统参数包括:设(G1,+)和(G2,·)为两个阶均为p的循环群,p为素数,且满足G1中Diffie-Hellman计算问题为困难问题;令P为G1的生成元;令e为G1和G2上的双线性变换,即e:G1×G1→G2;令h(·)是一个单向hash函数。
上述步骤1)之前,终端和基站进行认证及单播密钥协商;建立一个共享的单播会话密钥。
上述终端和基站进行认证及单播密钥协商的方法是基于WAPI或者标准802.11i的方法,以及其它任何方法,甚至包括手工设置共享密钥方法。
上述广播组播密钥分发分组包括以下内容:
其中:
BS字段:基站的身份信息;
SN字段:一个序列号,唯一标识本次组播密钥分发过程;
Data字段:基站计算的组播密钥数据;
MIC字段:表示对该字段之前的所有字段求MIC值,这里完整性校验密钥是组播会话完整性校验密钥GSKI,它由基站选取的组播会话密钥GSK导出。
上述广播组播密钥分发分组中,Data字段的计算过程如下:
1.1)基站在Zq *中随机选择n-1(n大于等于2)个不同的元素v0,v1,..., 以及元素Q1,Q2∈G1,同时,随机构造n-1次秘密多项式f(x)∈Zp[x];接着,计算如下信息:QK=f(0)P∈G1和Vi=f(vi)P(i=0,1,...,n-2);
1.2)对于每一个已通过接入认证的终端MTi(假设终端数目为m),基站先记录其设备识别信息IDi,并利用其单播会话密钥USKi计算秘密信息Yi=h(USKi)(i=1,2,...,m),然后,计算Wi=f(Yi)(Q1+Q2),接着,销毁Yi;令
Data1=(QK,Q1,Q2,v0,...,vn-2,V0,...,Vn-2,(ID1,W1),...,(IDm,Wm));
1.3)假设基站选取了组播会话密钥为GSK∈G2;这时,基站再随机选择整数 并计算:
1.4)最后,令Data=(Data1,Data2)。
上述步骤3)由终端通过计算获取组播会话密钥的具体步骤如下:
3.1)首先,终端利用自己的单播会话密钥USKx计算秘密数据Yx=h(USKx);
3.2)接着,终端利用分组信息和计算的Yx构造集合:
Γ={e0,e1,...en-1}={v0,...,vn-2,Yx}
3.3)然后,终端对每个ei∈Γ算出秘密信息
3.4)接着,计算消息组播会话密钥GSK如下:
3.5)由组播会话密钥GSK,导出的组播会话完整性校验密钥GSKI和组播会话加密密钥GSKE,利用GSKI重新计算MIC,判断分组是否有效,否则直接丢弃;是则根据SN字段判断是否基站发送的重复消息,如果是则直接丢弃,否则,终端正确地获取了组播会话密钥。
上述步骤3)之后还包括步骤4)终端和基站之间进行双向的单播通信,或由基站向所有终端进行广播通信。
一种基于单播会话密钥的组播密钥更新方法,其特殊之处在于:该方法包括以下步骤:
1)基站构造组播密钥更新分组;
2)由基站向所有的终端进行广播组播密钥更新分组;
3)由终端通过计算获取组播会话密钥。
上述广播组播密钥更新分组包括以下内容:
其中:
BS字段:基站的身份信息;
SN字段:一个序列号,唯一标识本次组播密钥更新过程;
Data字段:基站计算的组播密钥数据;
MIC字段:表示对该字段之前的所有字段求MIC值,这里完整性校验密钥是组播会话完整性校验密钥GSKI,它由基站选取的组播会话密钥GSK导出;
上述广播组播密钥更新分组中,Data字段的计算过程如下:
1.1)假设基站选取的新的组播会话密钥为GSK∈G2;这时,基站再随机选择整数 并计算:
1.2)最后,令Data=(Data1,Data2);
上述由终端通过计算获取组播会话密钥的具体步骤如下:
3.1)首先,终端利用自己的单播会话密钥USKx计算秘密数据Yx=h(USKx);
3.2)接着,终端利用分组信息和计算的Yx构造集合:
Γ={e0,e1,...en-1}={v0,...,vn-2,Yx}
3.3)然后,终端对每个ei∈Γ算出秘密信息
3.4)接着,计算消息组播会话密钥GSK如下:
3.5)由组播会话密钥GSK,导出的组播会话完整性校验密钥GSKI和组播会话加密密钥GSKE,利用GSKI重新计算MIC,判断分组是否有效,否则直接丢弃;是则根据SN字段判断是否基站发送的重复消息,如果是则直接丢弃,否则,终端正确地获取了组播会话密钥。
上述步骤3)之后还包括步骤4)终端和基站之间进行双向的单播通信,或由基站向所有终端进行广播通信。
本发明具有以下优点:
1、组播会话密钥的分发或更新只需要一次广播即可;
2、组播会话密钥的分发基于单播会话密钥,能够与单播会话密钥协商协议实现无缝融合;
3、充分地利用了广播信道,提高了系统通信效率。
附图说明
图1是基于单播会话密钥的组播密钥分发方法示意图;
图2是基于单播会话密钥的组播密钥更新方法示意图。
具体实施方式
参见图1,本发明基于单播会话密钥的组播密钥分发方法具体包括以下步骤:
1)建立系统参数,系统参数为:设(G1,+)和(G2,·)为两个阶均为p的循环群,p为素数,且满足G1中Diffie-Hellman计算问题为困难问题;令P为G1的生成元;令e为G1和G2上的双线性变换,即e:G1×G1→G2;令h(·)是一个单向hash函数;
该步骤只是在首次应用时来建立系统参数,建立好后,在以后的重复应用中则无须该步骤;
2)基站与每一个终端进行安全认证和单播会话密钥USK协商,每一个终端i和基站共享一个单播会话密钥USKi,由该密钥可以导出单播会话完整性校验密钥和单播会话加密密钥,所采用的认证及单播密钥协商方法,可以是WAPI或者802.11i等任何方法,也可以通过手工设置预共享密钥方法实现;
系统中的基站与每一个终端行未进行安全认证和单播会话密钥USK协商时需要该步骤,若系统中的基站与每一个终端行已经进行了安全认证和单播会话密钥USK的协商则无需该步骤;
3)基站构造组播密钥分发分组,
该分组包括以下内容:
其中:
BS字段:基站的身份信息;
SN字段:一个序列号,唯一标识本次组播密钥分发过程;
Data字段:基站计算的组播密钥数据;
MIC字段:表示对该字段之前的所有字段求MIC值,这里完整性校验密钥是组播会话完整性校验密钥GSKI,它由基站选取的组播会话密钥GSK导出;
这里,Data字段的计算过程如下:
3.1)基站在Zq *中随机选择n-1(n大于等于2)个不同的元素v0,v1,..., 以及元素Q1,Q2∈G1,同时,随机构造n-1次秘密多项式f(x)∈Zp[x]。接着,计算如下信息:QK=f(0)P∈G1和Vi=f(vi)P(i=0,1,...,n-2);
3.2)对于每一个已通过接入认证的终端MTi(假设终端数目为m),基站先记录其设备识别信息IDi,并利用其单播会话密钥USKi计算秘密信息Yi=h(USKi)(i=1,2,...,m),然后,计算Wi=f(Yi)(Q1+Q2),接着,销毁Yi;令Data1=(QK,Q1,Q2,v0,...,vn-2,V0,...,Vn-2,(ID1,W1),...,(IDm,Wm));
3.3)假设基站选取了组播会话密钥为GSK∈G2;这时,基站再随机选择整数 并计算:
3.4)最后,令Data=(Data1,Data2);
4)由基站向所有的终端进行广播组播密钥分发分组;
5)由终端通过计算获取组播会话密钥;
当任意终端MTx接收到组播密钥分发分组后,如下方法解密出GSK:
5.1)首先,终端利用自己的单播会话密钥USKx计算秘密数据Yx=h(USKx);
5.2)接着,终端利用分组信息和计算的Yx构造集合:
Γ={e0,e1,...en-1}={v0,...,vn-2,Yx}
5.3)然后,终端对每个ei∈Γ算出秘密信息
5.4)接着,计算消息组播会话密钥GSK如下:
5.5)由组播会话密钥GSK,导出的组播会话完整性校验密钥GSKI和组播会话加密密钥GSKE,利用GSKI重新计算MIC,判断分组是否有效,否则直接丢弃;是则根据SN字段判断是否基站发送的重复消息,如果是则直接丢弃,否则,终端正确地获取了组播会话密钥。
6)单播通信或组播通信:当完成了上述步骤后,终端和基站之间可以进行双向的单播通信,或者,由基站向所有终端进行广播通信。单播通信的安全性由USKx导出的单播会话完整性校验密钥和单播会话加密密钥保障;组播通信的安全性由GSK导出的组播会话完整性校验密钥和组播会话加密密钥保障。
值得说明的是:该方案也支持组播会话密钥更新,方法与组播会话密钥分发相同。但为了提高计算效率,在进行Data字段计算时,密钥更新过程仅需要计算第3和第4步,第1和第2两步可以省略。另外,当有新的终端和基站通过认证,且此刻组播会话密钥无需更新时,基站在为新加入终端分发组播会话密钥时,在计算Data字段的第2步只需对新加入终端进行计算,以提高计算效率。
参见图2,本发明基于单播会话密钥的组播密钥更新方法具体包括以下步骤:
1)基站构造组播密钥更新分组,
该分组包括以下内容:
其中:
BS字段:基站的身份信息;
SN字段:一个序列号,唯一标识本次组播密钥更新过程;
Data字段:基站计算的组播密钥数据;
MIC字段:表示对该字段之前的所有字段求MIC值,这里完整性校验密钥是组播会话完整性校验密钥GSKI,它由基站选取的组播会话密钥GSK导出;
这里,Data字段的计算过程如下:
1.1)假设基站选取的新的组播会话密钥为GSK∈G2;这时,基站再随机选择整数 并计算:
1.2)最后,令Data=(Data1,Data2);
2)由基站向所有的终端进行广播组播密钥更新分组;
3)由终端通过计算获取组播会话密钥;
当任意终端MTx接收到组播密钥更新分组后,按如下方法解密出GSK:
3.1)首先,终端利用自己的单播会话密钥USKx计算秘密数据Yx=h(USKx);
3.2)接着,终端利用分组信息和计算的Yx构造集合:
Γ={e0,e1,...en-1}={v0,...,vn-2,Yx}
3.3)然后,终端对每个ei∈Γ算出秘密信息
3.4)接着,计算消息组播会话密钥GSK如下:
3.5)由组播会话密钥GSK,导出的组播会话完整性校验密钥GSKI和组播会话加密密钥GSKE,利用GSKI重新计算MIC,判断分组是否有效,否则直接丢弃;是则根据SN字段判断是否基站发送的重复消息,如果是则直接丢弃,否则,终端正确地获取了组播会话密钥。
4)单播通信或组播通信:当完成了上述步骤后,终端和基站之间可以进行双向的单播通信,或者,由基站向所有终端进行广播通信。单播通信的安全性由USKx导出的单播会话完整性校验密钥和单播会话加密密钥保障;组播通信的安全性由GSK导出的组播会话完整性校验密钥和组播会话加密密钥保障。
本发明基于单播会话密钥的对新增加终端的组播密钥分发方法具体包括以下步骤:
1)基站与该终端MTi进行安全认证和单播会话密钥USK协商,协商一个单播会话密钥USKi,由该密钥可以导出单播会话完整性校验密钥和单播会话加密密钥,所采用的认证及单播密钥协商方法,可以是WAPI或者802.11i等任何方法,也可以通过手工设置预共享密钥方法实现;
如果基站与终端MTi未进行安全认证和单播会话密钥USK协商时需要该步骤,若系统中的基站与每一个终端行已经进行了安全认证和单播会话密钥USK的协商则无需该步骤;
2)基站构造组播密钥分发分组,
该分组包括以下内容:
其中:
BS字段:基站的身份信息;
SN字段:一个序列号,唯一标识本次组播密钥分发过程,该字段与基站当前进行组播密钥分发时选取的SN字段相同;
Data字段:基站计算的组播密钥数据;
MIC字段:表示对该字段之前的所有字段求MIC值,这里完整性校验密钥是组播会话完整性校验密钥GSKI,它由基站选取的组播会话密钥GSK导出;
这里,Data字段的计算过程如下:
2.1)对于终端MTi,基站先记录其设备识别信息IDi,并利用其单播会话密钥USKi计算秘密信息Yi=h(USKi)(i=1,2,...,m),然后,计算Wi=f(Yi)(Q1+Q2),接着,销毁Yi;令Data1=(QK,Q1,Q2,v0,...,vn-2,V0,...,Vn-2,(IDi,Wi));
2.2)利用基站当前已计算的数据Data2,计算Data=(Data1,Data2);
3)由基站向该终端MTi进行广播组播密钥分发分组;
4)由终端MTi通过计算获取组播会话密钥;
4.1)首先,终端利用自己的单播会话密钥USKi计算秘密数据Yi=h(USKi);
4.2)接着,终端利用分组信息和计算的Yi构造集合:
Γ={e0,e1,...en-1}={v0,...,vn-2,Yi}
4.3)然后,终端对每个ei∈Γ算出秘密信息
4.4)接着,计算消息组播会话密钥GSK如下:
4.5)由组播会话密钥GSK,导出的组播会话完整性校验密钥GSKI和组播会话加密密钥GSKE,利用GSKI重新计算MIC,判断分组是否有效,否则直接丢弃;是则根据SN字段判断是否基站发送的重复消息,如果是则直接丢弃,否则,终端正确地获取了组播会话密钥。
5)单播通信或组播通信:当完成了上述步骤后,终端和基站之间可以进行双向的单播通信,或者,由基站向所有终端进行广播通信。单播通信的安全性由USKi导出的单播会话完整性校验密钥和单播会话加密密钥保障;组播通信的安全性由GSK导出的组播会话完整性校验密钥和组播会话加密密钥保障。
名词解释:
BS:基站;
MTx:终端x;
USKx:终端x的单播会话密钥;
USKIx和USKEx:由USKx导出的单播会话完整性校验密钥和单播会话加密密钥;
Nonce:一次性随机数;
GSK:组播会话密钥;
GSKI和GSKE:由GSK导出的组播会话完整性校验密钥和组播会话加密密钥。