一种基于身份的可认证动态群组密钥协商方法

文档序号:10597153阅读:444来源:国知局
一种基于身份的可认证动态群组密钥协商方法
【专利摘要】本发明涉及一种基于身份的可认证动态群组密钥协商方法,属于网络通讯安全技术领域;包括以下步骤:一、系统初始化:PKG生成并公开系统参数;二、密钥提取生成:每个用户将公钥发送给PKG,PKG返回每个用户的私钥;三、进行两轮密钥协商:为认证群组用户左右邻居的合法性并传递自身的临时密钥进行第一轮协商;在左右邻居通过认证后进行第二轮协商以公布用于生成群组会话密钥的相关信息;四、利用上一步的消息计算会话密钥,然后用其对群间通信进行加解密。对比现有技术,本发明在实现密钥协商的同时,还支持用户动态事件,使网络具有良好的动态性和扩展性,同时能够检测出内部攻击者,在保证安全性的前提下具有较少的加密项,减少了计算量和通信量。
【专利说明】
一种基于身份的可认证动态群组密钥协商方法
技术领域
[0001] 本发明涉及一种群组通讯网络中的密钥协商方法,属于网络通讯安全技术领域。
【背景技术】
[0002] 群组密钥协商协议的基本概念是:所有的组内成员都将在一个公开的不可信网络 环境中传递消息,进而共同协商出一个相同的通信会话密钥,用于之后的安全会话通信。会 话密钥可以是某个组内成员生成,但更多的情况下会话密钥是由所有组内成员的贡献来生 成的。经过协商计算出的会话密钥可以用于消息加密和消息摘要的生成,以实现后继的安 全目标。
[0003] 如今已有越来越多的互联网应用采用了群组通信的技术,如网络视频会议、群组 即时聊天及网络游戏等。建立一个安全高效的分布式网络通讯群组需要满足以下需求:信 息保密性、信息完整性、可认证性、不可抵赖性和可扩展性。信息保密性是指保证用户的私 密信息不可被任何未被认证或授权的的用户获知;信息完整性是保证用户提供的消息在通 信过程中不被恶意用户篡改和伪造;信息可认证性是确保该信息的确是由此人授权同意 的;信息不可抵赖性顾名思义是指可以防止用户否认抵赖自己授意的信息的行为;而可扩 展性是指群组密钥协商方案应适用于群组成员用户数量频繁变动或大量用户量同时通信 的情况。
[0004] 目前,主要的密钥管理策略有两大类:一类是基于公钥密码体制(PKI)的采用证书 的密钥管理方案,另一类是基于身份的公钥加密方法(ID-PKC)。在传统的PKI体制中,存在 单个或者分布式的证书管理中心(CA)来为每个节点分发证书,每个节点的证书都被嵌入了 他们对应的公钥。为保证通信的安全性和真实性,节点之间的通信需要验证各自的身份。在 PKI体制中,这种保证是通过各个节点的证书校验来完成的,这会引起很大的计算量。除此 之外,采用证书的密钥管理体制也会带来其他的证书相关的问题,譬如证书产生、证书存储 和证书分发等等,这些对资源受限的节点来说都是巨大的挑战。因此,PKI不是一个很有效 的适用于群组网络的密钥管理方案。而利用ID-PKC的密钥管理方案很好的解决了上述PKI 方案中的证书引入的问题,ID-PKC方案采用了基于身份的认证体制,私钥生成中心 (private key generation,PKG)利用每个节点唯一的身份标识ID来产生密钥对。需要通信 的节点直接可以从对方的身份标识ID中获取对方的公钥,这样就避免了 PKI方案中的证书 校验以及证书存储相关的问题。
[0005] 然而基于ID-PKC的方案也并非都十分完美。1994年Burmester和Desmedt提出了基 于Di f f i e-He 1 lman两方协商的群组密钥交换协议,该协议在利用组内成员广播在两轮内协 商出了群组密钥,属于经典的协议但缺乏认证功能。Choi等人(Choi K Y,Hwang J Y,Lee D H.Efficient ID-based group key agreement with bilinear maps[M]//Public Key Cryptography-PKC 2004.Springer Berlin Heidelberg,2004:130-144.)和Du等人(Du X J,Wang Y,Ge J H,et al.ID-based authenticated two round multiparty key agreement[J].Iacr Cryptology Eprint Archive,2003.)在上述的方法中加入了双线性 对,改进了方法使其具有可认证性。但这两种协议无法抵御假冒攻击,只要两个恶意用户便 可假冒目标用户进行密钥协商。Zheng等人(Zheng S,Wang S,Zhang G.Adynamic,secure, and efficient group key agreement protocol[J]?Frontiers of Electrical& Electronic Engineering in China,2007,2(2):182_185.)提出了两轮可认证的群组密钥 协商协议,该协议可以基于Elgamal签名算法,可以防止重放攻击且满足前向安全性,但广 播时发送的消息量过大,可能造成较高的网络负载。综上所述,现有基于ID-PKC的方案要么 通信效率低,要么安全性不足,要么无法同时保证前向后向安全性等问题而无法满足实际 应用要求。

【发明内容】

[0006] 本发明的目的是针对上述现有技术的缺点,提供一种基于身份的可认证的动态群 组密钥协商方法,保证密钥协商的高效性和安全性。
[0007] 本发明的思想是基于双线性群理论,提出了一种可认证的动态安全的高效群组密 钥协商方法。本发明的目的是通过以下技术方法实现的:
[0008] 一种基于身份的可认证动态群组密钥协商方法,包括以下步骤:
[0009] 一.进行系统网络的初始化
[0010] 私钥生成器PKG生成并公开系统参数{q,Gi,G2,P,e,Ppub,Ho,m,Ek,Dk},即公共参 数,s为PKG的私钥需秘密保存,Ppub是PKG公钥,其中&和62是(1阶加法循环群和q阶乘法循环 群,P是6:的生成元,双线性映射e:Gi XGi-G2,散列函数Ho: {0,1Gi将任意长度的字符串 映射到群6:的元素上,散列函数出:⑴^广-⑴"丨^将任意长度的字符串映射到长度为沾勺 字符串上,Ek和Dk是对称加密和解密函数;
[0011]二.密钥提取生成
[0012] ⑴在进入网络后,用户Ul将自己的身份信息IDl公开,其中表示用户数;
[0013] ⑵用户获取PKG的公共参数并保存,使用散列函数Ho计算其公钥Qi = Ho(IDi);
[0014] (3)用户将公钥&发送给PKG,PKG使用其私钥计算出该用户的私钥SiisQi,并通过 安全信道发送给用户m;
[0015] ⑷用户Ul收到私钥后可通过计算等式6(51,?)= 6(〇1,?1^)是否成立来验证该私 钥的有效性;
[0016] 三.第一轮协商
[0017] 每个用户Ul首先选取两个随机数其中 <表示q阶整数循环集合,计算临 时密钥Pi = aiP,获取当前的时间戳T1;为了将Pi秘密地发送给用户m的左右两个邻居Ui-dP m+1,需要进行如下步骤的操作,对于左邻居uh :
[0018] 1)获取用户m-1 的公钥Qi-1,计算w = e(riSi,Qi-1);
[0019] 2)计算得到对称密钥K =压(w | Ti),其中T代表连接操作;
[0020] 3)计算得到 Ui-i = riQi;
[0021] 4)计算得到 Wi-i^ri+HKUi-i))Si;
[0022] 5)计算得到消息摘要n/ =a(Pi |Ui-i | IDi);
[0023] 6)使用对称密钥K加密消息和消息摘要Vi-i = Ek(Pi | n/ );
[0024] 根据上述6步得到Ui-i、Vi-jPWi-i,同理对于右邻居计算出Ui+1、Vi +dPWi+1,最后广播 Di = (Ui-i, Vi-i, ffi-i, Ui+i, Vi+i, ffi+i, Ti);
[0025]四.第二轮协商
[0026]当用户Uj收到广播消息Dj-1和Dj+1时,其中K j<n,n表示用户数;分别对其计算A TiTc-Ti,其中Tc为当前时间,若A T超过规定的延迟时间,那么就中止后续的操作并对该超 时用户发送超时报文,以防止受到重放攻击,直到收到新的广播报文;否者的话,则对左右 两个邻居和u j+1进行认证和解密操作,对于左邻居uh操作如下:
[0027] 1)通过验证等式e (P, Wj) = e (Ppub,Uj+Hi (Uj )Qj)是否成立来认证Uj-1的身份;
[0028] 2)使用自身私钥Sj计算出wzeO^Sj);
[0029] 3)计算得到对称密钥K = m(w | Td ;
[0030] 4)使用对称解密算法对消息Vj解密DK(Vj),得到Pj-dPm' ;
[0031] 5)通过验证等式n/ =Hi(Pj-i I Uj I IDj-1)是否成立来对Uj-1进行消息认证;
[0032]这样用户化就可获得到uh正确的临时密钥IVi,用于之后的密钥生成计算;对于 uJ+1同理;然后1^通过以下过程计算包含左右邻居和自身临时密钥的秘密数并对其进行签 名:
[0033] 1)计算秘密数Xj = e (Pj+1_Pj-i,Pj);
[0034] 2)选取一个随机数6£2¥_,_计算¥」=1^9」;
[0035] 3)计算消息摘要匕=出(& | Yj | T21 IDj),T2为当前的时间戳;
[0036] 4)计算z」=(tj+hj) ? Sj;
[0037]最后用户Uj广播消息Gj = (Xj,Yj,Zj,T2);
[0038]五.密钥计算并执行加解密操作
[0039]当用户m收到所有的第二轮广播消息Gk(l<k<n,k辛i)后,首先对每个消息计算 A T = TC-T2,其中Tc为当前时间;若A T超过规定的延迟时间,那么就中止后续的操作并对该 超时用户发送超时报文,直到收到新的广播报文;否者的话,则通过下式进行批量身份验 证:
[0041]其中 hi^HKXklYklTjlDk);
[0042] 如果上面的等式成立,即表示验证成功,接下来用户m可通过下式计算出k:
[0043] k = e^nE)X^X^-r;lX-2-X^-
[0044] 最后得到一个共同的会话密钥Ks = m(k | Gi | G21…| Gi |…| Gn),此处Gi = Xi | Yi | Zi | T2 (l<i<n),之后的群组通讯便使用该对称会话密钥进行加解密操作。
[0045] 作为优选,当步骤五所述用户进行批量身份验证失败次数或使用会话密钥1解密 失败次数超过预设阈值N时,通过以下过程进行内部攻击者检测:
[0046] (1)使用PKG充当可信裁决机构,群组用户发送裁决请求给PKG,然后进行下一次的 协商;
[0047] (2)PKG在接收到裁决请求后则开始记录下一次协商的所有广播信息;若此次协商 依然失效,那么PKG将要求所有用户按照以下签名方式传递它们的ai|ri|ti给PKG,其中ai和 n是用户m第一轮协商的随机数是用户m第二轮协商的随机数,接着进行如下操作:
[0048] 1)用户Ui使用自己的随机数和公钥Qi计算消息摘要hi = Hi(ai |ri I ti I Qi);
[0049] 2)使用私钥对消息摘要加密得到密文
[0050] 3)最后将ai I ri I ti和Ci发送给PKG;
[0051] 4)PKG利用其私钥s,根据所有用户的公钥Qi计算出其私钥S1;然后PKG通过 $ 1 C;得到摘要,接下来使用出来验证ai | n |乜和摘要lu;
[0052] 5)PKG使用用户的anrnt、私钥Si重新计算用户的广播消息,若收到的用户广播 消息与PKG计算得到的消息不一致,则说明该用户为内部攻击者,可以将之驱逐出群组。 [0053]作为优选,当群组已经使用协商好的会话密钥Ks加密通信后,又有新用户加入群 组时,通过以下过程更新会话密钥K s:
[0054]只有叫需要和它的左右邻居按照所述步骤三进行第一轮协商;并且叫的邻居uh和 叫+1在执行步骤三时无需重新选取用于生成临时密钥的随机数a,只需要使用之前的临时密 钥即可;
[0055]在所述步骤四中也只需Uj-i,Uj和Uj+i进行认证和解密操作,这样Uj将获得Uj-1和Uj+i 的临时密钥Pj-1和Pj+l,而Uj-4Puj+1也将更新其Uj的临时密钥Pj;在此之后全体成员开始执行 所述步骤四中的计算包含左右邻居和自身临时密钥的秘密数并签名操作,然后广播相关信 息;
[0056]最后所有群组成员执行步骤五所述流程对全体群组成员进行认证并生成群组会 话密钥。
[0057]作为优选,当群组用户叫离开群组时,通过以下过程更新会话密钥Ks:
[0058]只有叫的左右邻居uh和叫+1按照所述步骤三进行第一轮协商;并且叫的邻居和 叫+1在执行步骤三时无需重新选取用于生成临时密钥的随机数a,只需要使用之前的临时密 钥即可;
[0059] 然后uh和uj+1按照步骤四所述进行认证和解密操作,这样uh和uj+1就获得了对方 的的临时密钥匕-:和匕+^在此之后全体成员开始执行所述步骤四中的计算包含左右邻居和 自身临时密钥的秘密数并签名操作,然后广播相关信息;
[0060] 最后所有群组成员执行步骤五所述流程对全体群组成员进行认证并生成群组会 话密钥。
[0061 ]有益效果
[0062]本发明提出了一种基于身份的可认证动态群组密钥协商方法,该方法优势如下: [0063] 1.采用了 ID-PKC方案中的身份标识机制,这样能有效的解决PKI方案中的证书问 题,且不必进行证书校验,避免了复杂的计算;
[0064] 2.本发明使用组播方式进行协商,且通信量小,具有很好的扩展性;
[0065] 3.在两轮协商过程中均使用了认证机制和时间戳参数,能有效抵御假冒攻击和重 放攻击;
[0066] 4.本发明采用一种检测内部攻击者的机制,使用了较小的网络开销便可找出内部 攻击者,更好的增强了本协议的安全性;
[0067] 5.本发明在保证网络安全的前提下,支持用户动态事件,使网络具有良好的动态 性和扩展性,通过基于身份的认证机制本方法还保证了协议的安全性。
[0068]对本发明的正确性和安全性分析如下:
[0069] 1.正确性
[0070] 如果所有参与协商的用户都是诚实的,那么它们可以计算出相同的会话
[0071] 密钥。
[0072] 证明:因为1^ = 1^(^,51 = 8(^,所以¥ = 6(1]」,5」)=6(;1^8(^,(^)=6(1^1,(^)。计算得 到的W与加密时使用的w-致,因此可以通过K = Hi(w I T)得到正确的对称加密密钥,进而通 过DkW)得到HH和m'。所以在第二轮的计算后每个用户m都可以正确地获得左右邻居的Ph 和 Pi+i〇
[0073]在密钥计算阶段:
[0074] k = e(Pi_],nPi)xrlX;:r^-2 = e(R_vP:f
[0075] - e(p py叫-i)(叫,"卜押)+…切卜2?,-厂",-#-2 _e^p pyia2+a2ai+'"+ai ai
[0076] 所有的用户都将获得相同的k,同时它们获得的61|62|…仏|…|Gn也是相同的,因 此最后得到会话密钥K s =出(k | Gi | G21…| Gi |…| Gn)也是相同的。
[0077] 2.安全性
[0078]本发明中的方法能有效的解决PKI中的证书相关问题,减少开销,同时在基于ID-PKC的基础上加入了认证机制,具备较高的安全性。此外还能够识别出网络中的内部攻击 者,进一步提尚了网络安全性。
[0079] (1)本群组密钥协商方法可以在不可信的环境中保证安全性。
[0080]证明:假设敌手A可以攻破本协议的认证机制,既伪造用户m的身份向叫发送信息, 那么敌手A必须计算出合理的I来使得dPDzdPp-Ui+HKUOQO公式成立。由于只有信 息1^来源于敌手六,那么就需要计算出6(?_,1^+111(1^)(^)=6(?,81^+111(1^)8(^)。
[0081 ] 也就是给定1^,〇1£61,8未知,敌手八可以在多项式时间内计算出81^和抑 1,即敌手八 可以在多项式时间内解出椭圆曲线离散对数问题BCDLP问题,这与BCDLP问题的难解性相 悖。
[0082]在最后的密钥计算阶段使用了批量认证机制,其正确性如下:
[0083] e f X ^= e f i; (r, + A,) = e f X [tkQt+KQk), 5^1 = e:f (^ + htQt ),Pptib K k:l J \ k^i J \ ^*-1 / V A-J /
[0084]假设敌手A可以攻破本协议的认证机制,既伪造用户m的身份发送信息,那么敌手 A必须计算出合理的Z/和Y/来满足公式e(Z/,P) = e(Y/+hiQi,Ppub),其中hiQi由每个用户 自己计算,不可伪造。因此那么就需要计算出Z/和"满足e(Z/ ,P) =e(S(Y/ +1!^),)。也 就是给定QiGGu未知,敌手A可以在多项式时间内计算出W+hiQi),即敌手A可以在多项 式时间内解出椭圆曲线离散对数问题BCDLP问题,这与BCDLP问题的难解性相悖。
[0085] (2)本群组密钥协商方法可以有效抵抗假冒攻击和重放攻击。
[0086]证明:由于在第一轮和第二轮协商中都加入了时间戳参数T,敌手重放口:和仏时,A T = Tc;-T可以使得超过阈值的消息无效,即便修改了参数T,在后续的计算中K = Hl(w|T)和hj = Hi(Xj | Yj | T21 ID)也无法得到正确的值,进而不能通过消息认证。
[0087] 在我们的方法中,首先我们加入了时间戳参数,防止了重放攻击;其次我们在两轮 的协商中都加入了认证的功能,同时BCDLP问题的难解性,敌手无法假冒任何用户的身份来 进行假冒攻击。
[0088] (3)本群组密钥协商方法可以保证前向保密性和后向保密性。
[0089]证明:虽然在用户加入事件和离开事件中,第一轮仅有相关的结点进行认证交换 Pi,其他用户并没有重新选取临时密钥&1,但是在最后的会话密钥计算阶段我们使用了 Ks = HKk | Gi | G21…| Gi |…| Gn),也就是我们加入了第二轮的所有用户广播信息Gi | G21…| Gi |… Gn,其中Gi = (Xi,Yi,Zi,T2),为了通过密钥计算阶段的验证,(Xi,Yi,Zi,T2)必须是正确的,也 就是说Gi无法被伪造或篡改。同时由于第二轮中选择了新的随机数和时间错juTs也将 发生变化,基于散列函数的单向性,每一次协商出的密钥相互独立,没有联系。因此外部恶 意用户无法通过之前协商的的会话密钥和广播信息计算出新的会话密钥,这保证了密钥的 前向保密性和后向保密性。
[0090]经过以上的分析,该方法是正确的,有较好的安全性,可以很好的应用于群组网络 中。
【附图说明】
[0091 ]图1为基于身份的群组网络组织图;
[0092]图2为本发明方法的流程示意图;
[0093]图3为本发明实施例中节点通信过程的示意图;
[0094]图4为群组计算能量消耗对比图;
[0095]图5为群组通信能量消耗对比图。
【具体实施方式】
[0096]下面结合附图,具体说明本发明的优选实施方式。
[0097]在描述实施方式前,为有助于对本发明实质的理解,首先介绍相关背景知识。由于 本发明的方法是基于双线性群理论,因此先对双线性群进行简要介绍:
[0098] Gi是一个椭圆曲线上点组成的循环加法群,G2是一个椭圆曲线上点组成的循环乘 法群,群Gi和群G2具有相同的素数阶q。一个双线性映射是指公式eiGiXGi-Gs满足以下条 件:
[0099]双线性:满足以下条件
[0100] e(aP,bQ)=e(P,Q)ab,W,0e<^ ,
[0101] 对于VAC)." eGpe需要满足下列等式:
[0102] e(P+Q,R)=e(P,R) ? e(Q,R)
[0103] e(P,Q+R)=e(P,Q) ? e(P,R).
[0104] 非退化性:如果元素 P是循环加法群6:的生成元,那么e(P,P)便是62的生成元,且e (P,P)^l〇
[0105] 可计算性:VdkG),存在一个有效的算法能够计算出e(P,Q)。
[0106] 下面有关双线性映射群的问题组成了本发明的安全基础。
[0107] 1.双线性离散对数问题(BDLP):存在椭圆曲线G,给定其上的两个点P和Q,找到一 个整数使得Q=nP成立。
[0108] 2.计算01打16_]^111]1&11问题(〇01〇:&,1)€2^给定?,&?,匕?£61,计算&匕?。
[0109] 3.双线性Diffie-Hellman问题(BDH):任意a,b,C疙&给定卩,&?,匕?,〇卩£61,计算 e(P,P)气 [0110] 实施例1
[0111] 本实施例中,系统是由一个PKG和多个群组用户节点组成,如图1所示。每个用户都 能确定所在的群组并知晓自己左右邻居,PKG负责必要参数的产生和分发。
[0112] 本实施例按照图2所示的步骤实现密钥协商,具体流程如图3所示。
[0113] 首先需要使用一台服务器作为私钥生成器PKG,并使用有线或无线的形式部署网 络内的主机,使其相互之间能进行网络通信。在每个用户主机上部署本协议对应的软件,以 完成后续的操作。
[0114] -.进行系统网络的初始化:
[0115] 私钥生成器PKG生成并公开系统参数{q,Gi,G2,P,e,Ppub,Ho,出,Ek,Dk},即公共参 数,s为PKG的私钥需秘密保存,P pub是PKG公钥,其中&和62是(1阶加法循环群和q阶乘法循环 群,P是6:的生成元,双线性映射e:Gi XGi-G2,散列函数Ho: {0,1Gi将任意长度的字符串 映射到群6:的元素上,散列函数出:⑴^广-⑴"丨^将任意长度的字符串映射到长度为沾勺 字符串上,Ek和Dk是对称加密和解密函数。
[0116] 二.群组用户公开其身份并从PKG获取其私钥
[0117] (1)在进入网络后,用户m将自己的身份信息为ID:公开,其中l$i彡n,n表示用户 数;
[0118] (2)用户获取PKG的公共参数并保存,使用散列函数Ho计算其公钥Qi = Ho(IDi);
[0119] (3)用户将公钥&发送给PKG,PKG使用其私钥计算出该用户的私钥SiisQi,并通过 安全信道发送给用户m;
[0120] (4)用户m收到私钥后可通过计算等式6(51,?)= 6(01少1^)是否成立来验证该私 钥的有效性。
[0121]三.为认证群组用户左右邻居的合法性并传递自身的临时密钥进行第一轮协商
[0122] 在所有用户加入网络后便形成一个群组,PKG向每个用户发送其编号i以及左右邻 居的公钥。以下所有最终广播的信息都需附带编号信息。
[0123] 如图3所示,每个用户m需要先选取两个随机数,计算临时密钥Pi = aiP,获 取当前的时间戳!^。为了将?:秘密地发送给用户m的左右两个邻居m-dPu1+1,需要进行如下 步骤的操作,对于左邻居m-1:
[0124] 1)获取用户m-1 的公钥Qi-1,计算w = e(riSi,Qi-1);
[0125] 2)计算得到对称密钥KzHKwlTd;
[0126] 3)计算得到 Ui-i = riQi;
[0127] 4)计算得到 Wi-i = (ri+ft (Ui-i)) Si;
[0128] 5)计算得到消息摘要n/ =a(Pi |Ui-i | IDi);
[0129] 6)使用对称密钥K加密消息和消息摘要Vh = Ek(Pi | n/ )。
[0130] 根据上述6步得到Ui-i、Vi-jPWi-i,同理对于右邻居计算出Ui+1、Vi+dPW i+1,最后广播 Di = (Ui-i, Vi-i, ffi-i, Ui+i, Vi+i, ffi+i, Ti);
[0131] 四.进行第二轮协商以公布用于生成群组会话密钥的相关信息
[0132] 如图3所示,当用户Uj收到广播消息Dj-挪口川时,分别对其计算ATzTd,其中Tc 为当前时间。若A T超过规定的延迟时间,那么就中止后续的操作并对该超时用户发送超时 报文,直到收到新的广播报文;否者的话,则对左右两个邻居和u j+1进行认证和解密操 作,对于左邻居叫^操作如下:
[0133] 1)通过验证等式6(?,胃」)=6(?-11」+111(1]」)9」)是否成立来认证11」-1的身份;
[0134] 2)使用自身私钥Sj计算出wzeO^Sj);
[0135] 3)计算得到对称密钥K = m(w | Ti);
[0136] 4)使用对称解密算法对消息Vj解密DK(Vj),得到Pj-dPm' ;
[0137] 5)通过验证等式n/ =Hi(Pj-i | Uj | IDj-i)是否成立来对Uj-i进行消息认证。
[0138]这样用户化就可获得到正确的临时密钥,用于之后的密钥生成计算。对于uJ+1 同理。然后通过以下过程计算包含左右邻居和自身临时密钥的秘密数并签名:
[0139] 1)计算秘密数Xj = e (Pj+1-Pj-i,Pj);
[0140] 2)选取一个随机数/^4,计算丫」=1^;
[0141] 3)计算消息摘要hjiHKXj | Yj | T21 IDj),T2为当前的时间戳;
[0142] 4)计算签名Zj=(tj+hj) ? Sj;
[0143]最后用户Uj广播消息
[0144]五.计算群组会话密钥并使用该密钥进行加解密操作
[0145]如图3所示,当用户m,如节点C,收到所有的第二轮广播消息G后,首先对每个消息 计算A T = TC-T2,其中Tc为当前时间。若A T超过规定的延迟时间,那么就中止后续的操作并 对该超时用户发送超时报文,直到收到新的广播报文;否者的话,则进行批量身份验证:
[0147] 其中 hi^HKXklYklT^IDk);
[0148] 如果上面的等式成立,即表示验证成功,用户m可通过下式计算出k:
[0149] k ?
[0150] 最后得到一个共同的会话密钥Ks = a (k I Gi IG21…I Gi I…I Gn),此处Gi = Xi I Yi I Zi I T2 (l<i<n),之后的群组通讯便使用该对称会话密钥进行加解密操作。
[0151] 六.内部攻击者检测机制
[0152] 所有用户可以约定使用协商好的Ks对同一内容进行加密,然后广播加密数据最后 分别解密,如果与约定内容不吻合,则说明密钥协商失败;当多次出现协商失败时,很有可 能是出现了内部攻击者,如果一个通过了访问控制的群组用户是恶意攻击者,那么只要它 在协商过程中发送了错误的消息,最后所有成员协商出的会话密钥将不一致;而每次协商 失败时的策略通常都是再次进行协商,若无法找出恶意攻击者,那么群组将始终处瘫痪的 状态;这儿我们给出内部攻击者检测机制:
[0153] (1)使用PKG充当可信裁决机构,当群组中经过多次协商都无法得到相同的密钥 时,群组用户发送裁决请求给PKG,然后进行下一次的协商;
[0154] (2)PKG在接收到裁决请求后则开始记录下一次协商的所有广播信息;若本次协商 依然失效,那么PKG将要求所有用户按照以下签名方式传递它们的ai|ri|ti给PKG,其中ai和 n是第一轮协商的随机数,^是第二轮协商的随机数,接着进行如下操作:
[0155] 1)用户m使用自己的随机数和公钥Qi计算消息摘要hi = Hi(ai | ri | ti | Qi);
[0156] 2)使用私钥对消息摘要加密得到密文
[0157] 3)最后将ai | ri | ti和Ci发送给PKG;
[0158] 4)PKG利用其私钥s,根据所有用户的公钥弘计算出其私钥S1;然后PKG通过 Ci得到摘要,接下来使用Hi来验证ai |ri | ti和摘要hi;
[0159] 5)PKG使用用户的anrnt、私钥Si重新计算用户的广播消息,若收到的用户广播 消息与PKG计算得到的消息不一致,则说明该用户为内部攻击者,可以将之驱逐出群组。
[0160] 由于采用了上述的签名机制,所有用户提供的用于生成临时密钥的随机数都是真 实的、不可否认的;这时PKG将使用anrnh、私钥Si重新计算第一轮和第二轮所有的广播消 息,每一轮的计算结果都是可以正确算出的,如果存在内部攻击者,计算出的结果必然和其 原消息不一致,进而将其加入黑名单,然后执行驱逐操作。
[0161] 实施例2
[0162] 为了保证动态群密钥协商的前向和后向保密性,协议必须保证每次发生成员变动 后都要更新会话密钥,新加入的成员不能破解其加入前的群组通信内容,离开的成员同样 不能推算出其离开之后的群组通信内容,也就是说密钥的独立性是保证协议具备动态性的 前提。
[0163] 当有新用户加入已有用户群时,通过以下过程加入:
[0164] 当一个新用户Uj希望加入到当前的网络中时,首先它需要向PKG确认它的合法性 并提交加入请求,在通过访问控制后PKG按照步骤二对其分配相应的私钥。其次由PKG广播 用户叫的身份信息以及用户叫的加入请求。最后开始群组密钥更新流程,具体如下:
[0165] 只有叫需要和它的左右邻居按照实施例1中所述步骤三进行第一轮协商。并且叫的 邻居uh和uj+1在执行步骤三时无需重新选取用于生成临时密钥的随机数a,只需要使用之 前的临时密钥即可,以减少计算量,提高效率。
[0166] 在步骤四中也只需Un,Uj和Uj+1进行认证和解密操作,具体步骤和初始化阶段时 的一致,即只有u^, Uj和uj+1执行实施例1中所述步骤四的第二轮协商操作。这样将获得 Uj-时密钥Pj-4PPj+1,而Uj-4Puj+1也将更新其Uj的临时密钥Pj。在此之后全体成员 开始执行如实施例1中所述的计算包含左右邻居和自身临时密钥的秘密数并签名,然后广 播相关信息。
[0167] 最后所有群组成员执行如实施例1中步骤五所述流程对全体群组成员进行认证并 生成群组会话密钥。
[0168] 由以上过程可见,本发明仅通过一轮广播即可完成新用户加入后的群组会话密钥 更新操作。
[0169] 实施例3
[0170] 当有用户离开群时,通过以下过程离开:
[0171] 当一个用户Uj想要离开当前的网络中,首先它需要向PKG确认它的身份并提交离 开请求,然后由PKG广播用户叫的身份信息以及用户叫的离开请求,当u油于某些原因被PKG 驱逐时,PKG将直接发送上述消息。接着开始群组密钥更新流程,具体如下:
[0172] 只有化的左右邻居和Uj+1需要按照实施例1中所述步骤三进行操作,且它们无 需重新选取用于生成临时密钥的随机数a以减少计算量,提高效率。
[0173] 然后UrdPuj+1按照步骤四进行认证和解密操作,具体步骤和初始化阶段时的一 致,即只有uh和u j+1执行实施例1中所述步骤四的第二轮协商操作。这样uh和叫+1就获得了 对方的fVdPPw。之后的步骤同实施例2,全体成员开始执行如实施例1中所述的计算包含 左右邻居和自身临时密钥的秘密数并签名,然后广播相关信息。
[0174] 最后所有群组成员执行如实施例1中步骤五所述流程对全体群组成员进行认证并 生成群组会话密钥。
[0175] 同实施例2-样,本发明亦仅通过一轮广播即完成了用户退出后的群组会话密钥 更新操作。
[0176] 本发明着重点在于说明一种基于身份的可认证动态群组密钥协商方法,因此,对 于群组的建立、群组用户的加入/离开没有过多着墨,毕竟有关群维护的内容不在本发明讨 论之列,因此,上述实施例中只简单的将PKG作为群组维护者,由其对群进行管理,本领域技 术人员不难由此想到,在应用本发明方法时也可以创建任何其它一个群维护者角色和可信 裁决机构。
[0177] 试验结果
[0178] 在网络群组通讯中,会话密钥协商过程中主要的计算开销包括如下几种,分别是: 椭圆曲线下的哈希函数运算、对运算以及标量乘法等。同时在群组通信中的通信消耗也不 可忽视,网络中的消息数量越多越可能带来不稳定性。表1给出了本方案与Yao等人(Yao G, Wang H,Jiang Q.An Authenticated 3-Round Identity-Based Group Key Agreement Protocol[C]//Availabi1ity,Reliabi1ity and Security,2008.ARES 08.Third International Conference on. IEEE,2008:538-543.)提出的三轮协商方案以及2013年 Zhang等人(Zhang Q,ffang R,Tan Y. Identity-Based Authenticated Asymmetric Group Key Agreement[J] .Journal of Computer Research&Development,2014.)提出的一轮协 商方案的计算量和通信量的相比结果,这两种方案具有可认证性和动态性,并且是可证明 安全的。
[0179] 表1每个用户的计算量及收发消息长度
[0181]其中n代表节点总数,Lq表示大素数q的长度,通常为160位,T表示时间戳长度,占 64位。
[0182] 从表中可以看出,虽然Yao等人的方案所发送消息的长度最短,但使用了过多的对 运算来进行认证操作,消耗较大。Zhang等人的方案仅用了一轮协商,但是它发送的消息数 量大,单次广播消息长度长,不仅能耗较大而且易引起网络阻塞,同时它也使用了较多的对 运算。与这两种方案相比,本发明引入了哈希运算进行认证操作,使用了少量的对运算来提 供方案的可认证安全性。
[0183] 从协议的能量消耗上分析,根据Makr和Konstant inou (Elef ther ia Makr i, Elisavet Konstantinou.Constant round group key agreement protocols :A comparative study[J] ? computers and security,2011,30 :643-678 ?)提供的一个在 133MHZ的ARM微处理器上执行各种运算的能量消耗数据,执行一个标量乘法运算和对运算 分别消耗8.8和47.0毫焦(mj),而发送和接收1比特的信息分别需要消耗0.66和0.31微焦(y J)〇
[0184] 从图4中我们可以看到在三种方案下,不同结点数量的群组的总体计算能量消耗 对比,可以看出其他两个方案使用了较多的双线性对计算,导致计算消耗能量最大。本方案 每个用户的双线性对计算是常量级的,相比其他方案有着显著的优势,计算能耗也是最低 的。
[0185] 从图5中我们可以看到在三种方案下,不同结点数量的群组的总体通信能量消耗 对比。Zhang等人的方案虽然只使用了一轮通信,但是每次发送的消息量与群组成员数量成 正比,整个群组的通信开销较大,并不适合于大规模的群组密钥协商环境。本方案的通信开 销略低于Yao等人的方案,且这两个方案中每个用户的发送和接收消息长度是常量级的,更 适合于大规模的群组密钥协商。
[0186] 为了说明本发明的内容及实施方法,给出了上述具体实施例。在实施例中引入细 节的目的不是限制权利要求书的范围,而是帮助理解本发明所述方法。本领域的技术人员 应理解:在不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修 改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。
【主权项】
1. 一种基于身份的可认证动态群组密钥协商方法,其特征在于:包括以下步骤: 一. 进行系统网络的初始化: 私钥生成器PKG生成并公开系统参数{q,Gi,G2,P,e,Ppub,Ho,Hi,Ek,Dk},即公共参数,s为 PKG的私钥需秘密保存,Ppub是PKG公钥,其中61和62是(1阶加法循环群和q阶乘法循环群,P是 G!的生成元,双线性映射e: Gi X Gi-fo,散列函数Ho: {0,1 将任意长度的字符串映射到 群&的元素上,散列函数!11:{0,1}%{0,1产,将任意长度的字符串映射到长度为1^的字符串 上,Ek和Dk是对称加密和解密函数; 二. 密钥提取生成 (1)在进入网络后,用户m将自己的身份信息瓜公开,其中l<i<n,n表示用户数; ⑵用户获取PKG的公共参数并保存,使用散列函数Ho计算其公钥QpHoaDO; (3) 用户将公钥弘发送给PKG,PKG使用其私钥计算出该用户的私钥SiisQi,并通过安全 信道发送给用户m; (4) 用户m收到私钥后可通过计算等式以31,?)=6(〇1,?[^)是否成立来验证该私钥的 有效性; 三. 第一轮协商 每个用户m首先选取两个随机数ai,n eg,其中表示q阶整数循环集合,计算临时密 钥卩1 = &1?,获取当前的时间戳T1;为了将Pi秘密地发送给用户m的左右两个邻居m-dPm +1, 需要进行如下步骤的操作,对于左邻居m-1: (1) 获取用户m-1的公钥Qi-1,计算w = e(riSi,Qi-1); (2) 计算得到对称密钥1(=出(《 I T〇,其中" I"代表连接操作; (3) 计算得到1^-1 = 1^(^; ⑷计算得到 Wi-1= (ri+Hi(Ui-i))Si; (5) 计算得到消息摘要π/ =出奶I Ui-i I IDi); (6) 使用对称密钥K加密消息和消息摘要ν^ = Εκ(Ρ? |n/ ); 根据上述6步得到Ui-!、Vi-dPWi-!,同理对于右邻居计算出Ui+1、Vi+^W i+1,最后广播Di = (Ui-i, Vi-i, ffi-i, Ui+i, Vi+i, ffi+i, Ti); 四. 第二轮协商 当用户Uj收到广播消息Dj-4PDj+^,分别对其计算ATzTc-Ti,其中Tc为当前时间,若Δ Τ超过规定的延迟时间,那么就中止后续的操作并对该超时用户发送超时报文,以防止受到 重放攻击,直到收到新的广播报文;否者的话,则对左右两个邻居和u j+1进行认证和解密 操作,对于左邻居叫^操作如下: 1) 通过验证等式e (P,Wj) = e (Ppub,Uj+Hi (Uj) Qj)是否成立来认证u j-1的身份; 2) 使用自身私钥&计算出《 = 6(山义); 3) 计算得到对称密钥1(=出(《 | T〇 ; 4) 使用对称解密算法对消息Vj解密DK(Vj),得到Pj-dPm' ; 5) 通过验证等式π/ =Hi(Pj-i |Uj | IDj-i)是否成立来对Uj-i进行消息认证; 这样用户W就可获得到uh正确的临时密钥Pn,用于之后的密钥生成计算;对于uj+1同 理;然后叫通过以下过程计算包含左右邻居和自身临时密钥的秘密数并对其进行签名: 1) 计算秘密数Xj = e(Pj+1-Pj-i,Pj); 2) 选取一个随机数^/??%,_计算¥」=1^〇」; 3) 计算消息摘要匕=出〇」| Yj | T21 IDj),T2为当前的时间戳; 4) 计算Zj = (tj+hj) · Sj; 最后用户Uj广播消息Gj = (Xj,Yj,Zj,T2); 五.密钥计算并执行加解密操作 当用户m收到所有的第二轮广播消息Gk(Kk<n,k辛i)后,首先对每个消息计算Δ T = IVT2,其中Tc为当前时间;若ΔΤ超过规定的延迟时间,那么就中止后续的操作并对该超时 用户发送超时报文,直到收到新的广播报文;否者的话,则通过下式进行批量身份验证:其中 hi^HiUklYklhllDk); 如果上面的等式成立,即表示验证成功,接下来用户m可通过下式计算出k:最后得到一个共同的会话密钥Ks = Hi (k | G! | G21…| Gi |…| Gn),此处Gi = Xi | Yi | Zi | T2 (1彡 i$n),之后的群组通讯便使用该对称会话密钥进行加解密操作。2. 根据权利要求1所述的一种基于身份的可认证动态群组密钥协商方法,其特征在于: 当步骤五所述用户进行批量身份验证失败次数或使用会话密钥1解密失败次数超过预设 阈值N时,通过以下过程进行内部攻击者检测: (1) 使用PKG充当可信裁决机构,当群组中经过多次协商都无法得到相同的密钥时,群 组用户发送裁决请求给PKG,然后进行下一次的协商; (2) PKG在接收到裁决请求后则开始记录下一次协商的所有广播信息;若本次协商依然 失效,那么PKG将要求所有用户按照以下签名方式传递它们的ai | ri | ti给PKG,其中ai和ri是 用户Ul第一轮协商的随机数,tl是用户Ul第二轮协商的随机数: 1) 用户m使用自己的随机数和公钥Qi计算消息摘要hi = Hi(ai | ri | ti | Qi); 2) 使用私钥对消息摘要加密得到密文 3) 最后将ai | η | ti和Ci发送给PKG; 4. PKG利用其私钥s,根据所有用户的公钥Qi计算出其私钥S1;然后PKG通过得 到摘要,接下来使用Hi来验证ai |ri | ti和摘要hi; 5. PKG使用用户的&1、Γι、^、私钥Si重新计算用户的广播消息,若收到的用户广播消息与 PKG计算得到的消息不一致,则说明该用户为内部攻击者,可以将之驱逐出群组。3. 根据权利要求1所述的一种基于身份的可认证动态群组密钥协商方法,其特征在于: 当群组已经使用协商好的会话密钥Ks加密通信后,又有新用户叫加入群组时,通过以下过程 更新会话密钥K s: 只有W需要和它的左右邻居按照所述步骤三进行第一轮协商;并且w的邻居和uJ+1 在执行步骤三时无需重新选取用于生成临时密钥的随机数a,只需要使用之前的临时密钥 即可; 在所述步骤四中也只需Uj-1,Uj和Uj+l进行认证和解密操作,这样Uj将获得Uj-1和Uj+l的临 时密钥Ph和IV,而UH和U川也将更新其叫的临时密钥在此之后全体成员开始执行所述 步骤四中的计算包含左右邻居和自身临时密钥的秘密数并签名操作,然后广播相关信息; 最后所有群组成员执行步骤五所述流程对全体群组成员进行认证并生成群组会话密 钥。4.根据权利要求1-3任一所述的一种基于身份的可认证动态群组密钥协商方法,其特 征在于:当群组用户叫离开群组时,通过以下过程更新会话密钥Ks: 只有W的左右邻居uh和uj+1按照所述步骤三进行第一轮协商;并且的邻居和uJ+1 在执行步骤三时无需重新选取用于生成临时密钥的随机数a,只需要使用之前的临时密钥 即可; 然后uh和uj+1按照步骤四所述进行认证和解密操作,这样uh和uj+1就获得了对方的的 临时密钥fVdPPw;在此之后全体成员开始执行所述步骤四中的计算包含左右邻居和自身 临时密钥的秘密数并签名操作,然后广播相关信息; 最后所有群组成员执行步骤五所述流程对全体群组成员进行认证并生成群组会话密 钥。
【文档编号】H04L29/06GK105959269SQ201610262224
【公开日】2016年9月21日
【申请日】2016年4月25日
【发明人】郑军, 杨诚, 陈志福
【申请人】北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1