一种集群系统组密钥管理方法

文档序号:7956619阅读:290来源:国知局
专利名称:一种集群系统组密钥管理方法
技术领域
本发明涉及集群系统的安全管理技术,特别是指一种集群系统组密钥的管理方法。
背景技术
集群无线通信系统,以下简称集群系统,是一种较经济、较灵活的指挥调度通信系统,广泛应用在政府机关、能源交通、机场码头、工矿企业、消防警察、水利和军事等单位,以满足各单位内部通信联络的需要。
集群系统提供最基本的业务为语音组呼业务(VGCS)。VGCS允许用户建立到属于某一给定服务区和组标识(GID)的一组用户的呼叫,业务的提供采用半双工模式,呼叫期间任何成员都可以成为讲者,但任一时刻只允许一个讲者,其他成员为听者。服务区可由若干属于同一移动交换中心(MSC)或不同MSC的小区组成,呼叫时每个相关小区有一个组呼信道,其中上行链路仅供当前讲话者使用,可称为组发射模式,所有听者守候在下行链路上,可称为组接收模式,组呼信道配置的通知消息在通知信道(NCH)通知信道上广播。由于同一小区用户共享一条下行信道,因而大大节省了无线资源。
公安、军事等高机密性单位对于通信保密性的要求较高,要求对组呼业务进行端到端加密。由于组呼是一种多对多的通信,所以必须要求同一群组的每个成员之间共享组密钥(KG),用于生成每次组呼时使用的端到端加密密钥和完整性保护密钥。并且KG和对应的GID保存在每个用户的用户标识模块(SIM)卡中,网络侧也需要保存GID对应的KG。
当调度中心进行动态建组时,需要为每个组成员分发新组的密钥;另外基于安全的考虑,每个密钥有一定的使用周期,所以调度中心也可能发起周期性的组密钥更新。此外某些用户退出群组时,如调度中心因某部终端被盗而取消了其组权限,也必须更新其它组成员的组密钥以保证被取消权限的用户不能继续参与群组组呼。
现有集群系统中组密钥的管理方法包括以下几种技术方案。
第一种密钥管理中心为每个群组分配多个固定的组密钥,每个组密钥通过组密钥标识来唯一确定。这些固定的组密钥序列通过专用SIM卡读写设备写入每一组成员的SIM卡中。在进行组呼或者组播业务时,即需要使用加密功能时,可以由业务发起者或者网络选择组密钥系统中的组密钥标识,并将所选择的组密钥作为加、解密密钥,并将该密钥所对应的标识通知群组中每位参与集群业务的用户。
在集群系统中,每个群组成员并不是固定不变的。当群组增加新成员时,如果只是简单的将原来的组密钥写入新成员的SIM卡,则该新增加的成员可以使用组密钥解密出以前的群组通信信息。而且,群组中某成员可能已退出该群组,按照规定该成员不能继续参与该群组业务,但如果组密钥没有及时得到更新,那么已退出的成员仍然可以解密出群组的保密通信。可见,对组密钥进行安全、及时的更新对于保障群组通信安全十分必要。而采用第一种技术方案更新密钥时,需要专用的SIM卡读写设备,所以很难保证组密钥及时得到更新,因此无法保证集群系统安全通信。
第二种,由组成员协商产生组密钥。这种技术方案的出发点是将用于两方密钥协商的Diffie-Hellman密钥交换协议扩展到群组通信。
群组Diffie-Hellman密钥交换协议描述如下群组中有n个成员,分别记为M1、M2...Mn,公开一个大素数q以及其本原元α,协议中的运算都在有限域GF(q)上进行。密钥协商分为上行(n-1)轮和下行(n-1)轮两个阶段,最终每个成员都能计算出组密钥αN1N2...Nn,其中Ni是成员Mi独立产生并保密的随机数。
在上行阶段,成员Mi计算其接收到的集合的最后一个元素的Ni次幂,然后连同接收到的数值一起发给Mi+1,而在下行阶段,用户Mi计算其接收到的集合的最后元素的Ni次幂作为组密钥,然后计算集合中其它元素的Ni次幂,并发送给Mi-1。如表1所示,在上行交互阶段第i轮,i=1,...,n-1,Mi向Mi+1发送{αΠ(Nk|k∈[1,i])|j∈[1,i]};]]>在下行交互阶段,第n-1+i轮,i=1,...,n-1Mn-i向Mn-i+1发送{αΠ(Nk|k∉[i,j])|j∈[1,i]}.]]> 表1以n=5为例,在上行交互阶段,用户M4将接收到集合{αN1,αN1N2,αN1N2N3},他利用αN1N2N3和自己生成的随机数N4计算出αN1N2N3N4,并发送{αN1,αN1N2,αN1N2N3,αN1N2N3N4}给M5。M5利用αN1N2N3N4计算出最终组密钥αN1N2N3N4N5并保存,此后为下行交互阶段,M5计算中间值集合发送给M4,用户M4接收到集合{αN4N5,αN1N4N5,αN1N2N4N5},利用αN1N2N3N5也可以计算出最终密钥,然后计算中间值集合{αN5,αN1N5,αN1N2N5,αN1N2N3N5}发送给M3。
在这种方案中,组密钥由n个组成员协商产生,总共需要经过2(n-1)次组成员之间的交互。对于无线系统而言,每次组成员之间的交互都需要申请信道资源建立连接,这样必然产生庞大的系统资源消耗;而且,在产生组密钥的过程中,每个组成员都要进行多次大数模幂运算,而目前移动终端的计算能力有限,数值太大有时将超出移动终端的计算范围。

发明内容
有鉴于此,本发明的目的是提供一种集群系统中组密钥的管理方法,使其适应集群系统组成员的动态变化,使集群系统通信安全。
本发明提供的一种集群系统中组密钥的管理方法包括
A.网络侧将要设置组密钥的集群终端所对应的CK作为密钥,将要设置的组密钥加密得到SKGi,同时按照一定的算法,根据所述要设置的组密钥计算出第一摘要;然后将携带有SKGi、第一摘要的组密钥设置命令发送至所述集群终端;B.所述集群终端利用自身的CK对收到的SKGi解密得到组密钥,并按照步骤A中相同的算法,根据自己解密得到的组密钥计算出第二摘要,比较第二摘要与第一摘要是否一致,如果一致,则执行步骤C,否则,组密钥设置失败,跳出本流程;C.所述集群终端利用步骤B中解密出的组密钥进行设置。
步骤A中所述第一摘要是网络侧根据所述要设置的组密钥和网络侧保存的所述集群终端组密钥更新序列号计算;步骤A中所述组密钥设置命令还包括集群终端组密钥更新序列号;则步骤B中所述第二摘要是所述集群终端根据自己解密得到的组密钥和网络侧发送的所述集群终端组密钥更新序列号计算。
在执行步骤C之前,该方法可以进一步包括C1、所述集群终端判断网络侧保存的所述集群终端组密钥更新序列号是否大于自身保存的组密钥更新序列号,如果大于,则执行步骤C,否则,组密钥设置失败,跳出本流程。
步骤A中所述第一摘要是网络侧根据所述要设置的组密钥和当前时间计算;步骤A中所述组密钥设置命令还包括网络侧将计算第一摘要的当前时间;步骤B中所述第二摘要是所述集群终端根据要设置的组密钥和当前时间计算。
在执行步骤C之前,该方法可以进一步包括C2、所述集群终端判断计算第二摘要的时间是否大于所述计算第一摘要的时间、并且两者之差是否在预先设定的范围之内,如果是,则执行步骤C,否则,组密钥设置失败,跳出本流程。
步骤C可以包括集群终端判断自身是否有组标识记录,如果有,则利用自身解密出的组密钥更新所述组标识记录所对应的组密钥,如果没有,则增加组标识记录表项,再将自身解密出的组密钥保存在组标识记录表项中。
在步骤C之后,该方法可以进一步包括所述集群终端通知网络侧组密钥设置成功,并且网络侧根据该结果更新自身保存的管理记录。
步骤A中所述要设置的组密钥是网络侧产生的随机序列。
在组密钥设置失败后,该方法可以进一步包括所述集群终端通知网络侧组密钥设置失败。
该方法可以进一步包括预先设置处于激活状态的集群组成员列表,在执行步骤A之前进一步A1、根据所述集群组成员列表,判断是否还有没有完成本次组密钥设置的集群终端,如果还有,选择其中一个作为要进行组密钥设置的集群终端,执行步骤A,否则,跳出本流程;并且在执行步骤C之后,执行步骤A1。
步骤C中所述设置为更新组密钥,或首次设置组密钥。
步骤A中所述组密钥设置命令还可以包括组标识;则在步骤B之前,进一步包括所述集群终端根据组标识判断自身是否需要设置组密钥,如果需要,则执行步骤B,否则,不进行处理,跳出本流程。
本发明由网络侧确定要设置的组密钥,并用集群组中每个组成员和网络共享的保密信息CK作为密钥将要设置的组密钥加密后,通过信令通知每个组成员了,计算简单、方便;而且由于使用摘要信息,从而保障了密钥更新信令的完整性,也可以鉴别发起者的真实身份;该方法还使用SQN或时戳来抵御重放组密钥更改信令攻击,所以安全性高。


图1为实现本发明方法的流程示意图;图2为实现本发明方法的具体实施例一流程示意图;图3为实现本发明方法的具体实施例二流程示意图。
具体实施例方式
对于无线系统而言,网络侧设备可以作为可信的密钥管理中心,直接掌握集群系统的组密钥。因此,为了简化组密钥的产生过程和集群系统的安全,本发明的方法是由网络侧来确定要设置的组密钥,并用集群组中每个组成员和网络共享的保密信息CK作为密钥,将要设置的组密钥加密,然后再通过信令通知每个组成员;每个组成员利用自身的CK对要设置的组密钥进行解密,得到要设置的组密钥。
参加图1所示,实现本发明方法的具体过程如下步骤101网络侧将要设置组密钥的集群终端所对应的CK作为密钥,将要设置的组密钥加密得到SKGi,同时根据一定的算法,根据所述要设置的组密钥计算出第一摘要;然后将携带有SKGi、第一摘要的组密钥设置命令发送至所述集群终端;步骤102所述集群终端利用自身的CK对SKGi解密得到组密钥,并按照步骤101中同样的算法,根据自己解密得到的组密钥计算出第二摘要,比较第二摘要与第一摘要是否一致,如果一致,则执行步骤103,否则,组密钥设置失败,跳出本流程;步骤103该集群终端利用自身解密出的组密钥设置组密钥。这里的设置包括两种情况,自身已保存有组密钥,此时为更新组密钥;另一种是首次设置组密钥。
当然,步骤101中所述组密钥设置命令如果还包括组标识,则在步骤102之前,集群终端根据接收到的组标识判断自身是否需要设置组密钥,如果需要,则执行步骤102,否则,不进行处理,跳出本流程。
下面结合附图和具体实施例详细说明本发明的技术方案。
在集群系统中,每个集群终端,即每个组成员,分别和网络侧共享一个秘密数据CK,用于加密网络和用户间通信。本实施例在进行组密钥管理的过程中使用了CK,加密算法fE,解密算法fD,摘要算法H。
参见图2所示,本实施例管理组密钥的具体过程如下步骤201当网络侧决定发起组密钥更新和组密钥分发流程时,生成一个随机序列作为新KG,即要设置的组密钥,并生成处于激活状态的组成员列表,按照步骤202~209逐个通知用户更新组密钥。
步骤202网络侧取得组成员I所对应的CK和SQN,其中,SQN表示用户组密钥更新情况的序列号;然后用组成员I所对应的CK作为密钥,用加密算法fE加密KG得到SKGi,即SKGi=fE(CKi,KG)。
步骤203网络侧利用摘要算法H、SQNi和KG,计算第一摘要DIGTi=H(SQNi,KG)。
步骤204网络侧向组成员I发送携带有GID、SKGi、SQNi和DIGTi的组密钥更新指令。
步骤205组成员I收到携带有GID、SKGi、SQNi和DIGTi的组密钥更新指令后,用自己的CK解密SKGi,得到rec_KG,即rec_KG=fD(CKi,SKGi)。
步骤206组成员I根据SQNi和rec_KG计算第二摘要,即rec_DIGT=H(SQNi,rec_KG),并比较自身计算出的第二摘要rec_DIGT与网络侧计算的第一摘要DIGTi是否一致,如果一致,则执行步骤207,否则,组密钥设置失败,并通知网络侧,跳出本流程。
步骤207组成员I判断SQNi是否大于自身保存的组密钥更新序列号SQN,如果大于,则认为是组密钥更新指令合法,执行步骤208,否则,回送密钥更新失败信令,跳出本流程。
步骤208组成员I利用自身解密得出的rec_KG设置组密钥。组成员I更新组密钥成功后,发送组密钥更新成功信令到网络侧,并将SIM卡中SQN更新为SQNi。
这里,如果组成员I自身SIM卡中组ID列表中有GID,则所该GID所对应的组密钥更新为rec_KG,否则增加一条组ID为GID,组密钥为rec_KG的记录。
步骤209网络侧接收到组成员I的组密钥更新确认信令后,将组成员I对应SQN更新为SQNi+1,标记组成员I的组密钥已经更新。
上述过程只描述了对一个集群终端的组密钥进行设置,当前处于激活太的列表中,可能包括多个组成员,网络侧要重复执行步骤202~209来完成。当然,对于当前未处于激活状态的组成员,可以在其进行位置登记时,使用同样的过程设置其组密钥。
下面举具体实施例二详细说明本发明的技术方案。
参见图3所示,本实施例进行组密钥管理的具体过程如下步骤301当网络侧决定发起组密钥更新和组密钥分发流程时,生成一个随机序列作为新KG,并生成处于激活状态的组成员列表,按照步骤302~309逐个通知用户更新组密钥。
步骤302网络侧根据自身保存的组成员I所对应的CK,并且将该CK作为密钥,用加密算法fE加密KG,得到SKGi,即SKGi=fE(CKi,KG)。
步骤303网络侧利用摘要函数H、KG和当前时间TS,计算出第一摘要DIGTi,DIGTi=H(TS,KG);步骤304网络侧向组成员I发送携带有GID、SKGi、TS和DIGTi的组密钥更新指令。
步骤305组成员I收到携带有GID、SKGi、SQNi和DIGTi的组密钥更新指令后,用自己的CK解密SKGi,得到rec_KG,即rec_KG=fD(CKi,SKGi)。
步骤306组成员I根据当前时间和自身解密得到rec_KG,计算第二摘要rec_DIGT,即rec_DIGT=H(TS,rec_KG),并且将第二摘要rec_DIGT与第一摘要DIGT进行比较,如果一致,则认为本次组密钥设置合法,否则,密钥设置失败。
步骤307组成员I比较TS与当前时间TS`,如果TS`大于TS且两者之差在预先设定的时间范围内,则认为组密钥更新指令合法,利用自身解密出的组密钥进行设置,然后执行步骤308,否则,向网络侧发送密钥更新失败信令。
这里,如果组成员I的SIM卡中组ID列表中已存在GID,组成员I则利用rec_KG更新GID所对应的组密钥,否则,在自身的SIM卡中增加一条组ID为GID、组密钥为rec_KG的记录。并且,所述时间范围主要根据信令的传输时间来设定。
步骤308组成员I更新组密钥成功后,通知网络侧组密钥更新成功信令。网络侧接收到组成员I的组密钥更新成功信令后,标记组成员I的组密钥已经更新。
与图2所示实施例不同的是,本实施例在采用全网同步时钟的网络中,利用时戳信息代替SQN抵御重发攻击,比如cdma系统。利用这种方法不需要在网络侧和终端保存SQN信息,能够节省存储空间。
权利要求
1.一种集群系统组密钥的管理方法,其特征在于,该方法包括以下步骤A.网络侧将要设置组密钥的集群终端所对应的CK作为密钥,将要设置的组密钥加密得到SKGi,同时按照一定的算法,根据所述要设置的组密钥计算出第一摘要;然后将携带有SKGi、第一摘要的组密钥设置命令发送至所述集群终端;B.所述集群终端利用自身的CK对收到的SKGi解密得到组密钥,并按照步骤A中相同的算法,根据自己解密得到的组密钥计算出第二摘要,比较第二摘要与第一摘要是否一致,如果一致,则执行步骤C,否则,组密钥设置失败,跳出本流程;C.所述集群终端利用步骤B中解密出的组密钥进行设置。
2.根据权利要求1所述的方法,其特征在于,步骤A中所述第一摘要是网络侧根据所述要设置的组密钥和网络侧保存的所述集群终端组密钥更新序列号计算;步骤A中所述组密钥设置命令还包括集群终端组密钥更新序列号;则步骤B中所述第二摘要是所述集群终端根据自己解密得到的组密钥和网络侧发送的所述集群终端组密钥更新序列号计算。
3.根据权利要求2所述的方法,其特征在于,在执行步骤C之前,该方法进一步包括C1、所述集群终端判断网络侧保存的所述集群终端组密钥更新序列号是否大于自身保存的组密钥更新序列号,如果大于,则执行步骤C,否则,组密钥设置失败,跳出本流程。
4.根据权利要求1所述的方法,其特征在于,步骤A中所述第一摘要是网络侧根据所述要设置的组密钥和当前时间计算;步骤A中所述组密钥设置命令还包括网络侧将计算第一摘要的当前时间;步骤B中所述第二摘要是所述集群终端根据要设置的组密钥和当前时间计算。
5.根据权利要求4所述的方法,其特征在于,在执行步骤C之前,该方法进一步包括C2、所述集群终端判断计算第二摘要的时间是否大于所述计算第一摘要的时间、并且两者之差是否在预先设定的范围之内,如果是,则执行步骤C,否则,组密钥设置失败,跳出本流程。
6.根据权利要求1所述的方法,其特征在于,步骤C包括集群终端判断自身是否有组标识记录,如果有,则利用自身解密出的组密钥更新所述组标识记录所对应的组密钥,如果没有,则增加组标识记录表项,再将自身解密出的组密钥保存在组标识记录表项中。
7.根据权利要求1所述的方法,其特征在于,在步骤C之后,该方法进一步包括所述集群终端通知网络侧组密钥设置成功,并且网络侧根据该结果更新自身保存的管理记录。
8.根据权利要求1所述的方法,其特征在于,步骤A中所述要设置的组密钥是网络侧产生的随机序列。
9.根据权利要求1所述的方法,其特征在于,在组密钥设置失败后,该方法进一步包括所述集群终端通知网络侧组密钥设置失败。
10.根据权利要求1所述的方法,其特征在于,该方法进一步包括预先设置处于激活状态的集群组成员列表,在执行步骤A之前进一步A1、根据所述集群组成员列表,判断是否还有没有完成本次组密钥设置的集群终端,如果还有,选择其中一个作为要进行组密钥设置的集群终端,执行步骤A,否则,跳出本流程;并且在执行步骤C之后,执行步骤A1。
11.根据权利要求1所述的方法,其特征在于,步骤C中所述设置为更新组密钥,或首次设置组密钥。
12.根据权利要求1所述的方法,其特征在于,步骤A中所述组密钥设置命令还包括组标识;在步骤B之前,进一步包括所述集群终端根据组标识判断自身是否需要设置组密钥,如果需要,则执行步骤B,否则,不进行处理,跳出本流程。
全文摘要
本发明公开了一种集群系统组密钥的管理方法,该方法包括A.网络侧将要设置组密钥的集群终端所对应的CK作为密钥,将要设置的组密钥加密得到SKG
文档编号H04L9/00GK1599484SQ0315743
公开日2005年3月23日 申请日期2003年9月19日 优先权日2003年9月19日
发明者冯凯锋, 郑志彬, 周国安, 陈德 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1