一种面向安全跨域通信的无证书群密钥协商方法转让专利

申请号 : CN201911227192.9

文献号 : CN110971404B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗铭黄海凤胡星彤易宁

申请人 : 南昌大学

摘要 :

本发明涉及一种面向安全跨域通信的无证书群密钥协商方法。目前大部分无证书的群密钥协商协议没有考虑跨域通信,即群中的每一个用户都在同一域内。或者方案中群用户处在不同域,但使用相同的密码参数,这并不适合实际的跨域环境。本发明涉及一种面向安全跨域通信的无证书群密钥协商方法,包含三种类型的通信实体:KGC、群用户和群控制器。KGC负责为群用户生成部分私钥,群控制器通过与群用户交互生成一个群会话密钥。本装置的优点在于:具有较强的安全性,高效性。

权利要求 :

1.一种面向安全跨域通信的无证书群密钥协商方法,其特征在于,包括三种类型的通信实体:KGC、群用户和GC;KGC负责为群用户生成部分私钥,GC通过与群用户交互生成一个群会话密钥;本方法包含以下几个部分:

一、密钥协商初始阶段

该阶段包括KGC生成密码参数算法、秘密值生成算法、部分私钥生成算法、设置完整私钥算法和设置完整公钥算法:

1.KGC生成密码参数算法:该算法输入安全参数k,KGC生成密码系统参数及其主私钥;

1)有一个根KGC,它生成一个二元组{q,G},其中G为加法循环群,q为群G的阶;根KGC选2

择5个单向哈希函数: H4:G →{0,*

1}和 根KGC公开{q,G,H1,H2,H3,H4,H5};

2)每个KGCk生成一个二元组{sk,Pk},其中Pk是群G的生成元, 是KGCk的主私钥;不同的KGCk生成不同的二元组{sk,Pk};

3)每个KGCk计算它的主公钥KCk=skPk并秘密保存其主私钥sk;

4)各KGCk公开各自的密码系统参数{q,G,Pk,KCk,H1,H2,H3,H4,H5};

2.秘密值生成算法:一个身份为IDi的群用户ui,其中1≤i≤m,m是群用户的数量,ui选择 计算pki=xi·Pk并设置xi为他的秘密值,群用户ui属于密码系统参数含有Pk的KGCk域,不同群用户属于不同域并使用不同的密码系统参数;

3.部分私钥生成算法:该算法使用KGCk生成的密码系统参数、主私钥、群用户ui的身份IDi和ui的部分公钥pki作为输入,返回群用户的部分私钥;具体步骤如下:

1)KGCk随机选择 并计算Ri=riKCk,hi=H1(IDi,Ri,pki);

2)KGCk计算uski=ri·sk·hi+H1(IDi,Ri,sk·pki)并将{uski,Ri}通过公开信道返回给群用户ui;

4.设置完整私钥算法:群用户ui计算ski=uski‑H1(IDi,Ri,xi·KCK)并验证等式skiPk=hiRi是否成立,若等式成立,则群用户设置其完整私钥为{xi,ski};GC设置其完整私钥为sk0=(x0+r0s0h0)modq,其中(x0,r0,s0,h0)采用上述算法产生(xi,ri,sk,hi)同样的计算方式产生;

5.设置完整公钥算法:群用户ui设置其完整公钥为{pki,Ri};GC设置其完整公钥为pk0=sk0P0,其中P0是群G的一个生成元;

二、密钥协商执行阶段

该阶段包括如下步骤:

S1:当一群群用户想要协商一个共同的群会话密钥,每一个群用户ui都要执行以下操作,其中1≤i≤m,m是群用户的数量:随机选择 然后计算Ui=(ai·xi)P0,Ti=(ai·‑1

xi)pk0,yi=H2(Ui||Ti||pk0),Qi=(ai+yi)Pk,Vi=(yi·ski) (ai+xi+yi),Ci=H3(Qi||yi||Vi||pki), 最后将消息<Ui,MIDi>发送给GC,其中Tmi为当前时间戳;

S2:当GC在时间Tci时收到来自群用户ui的消息<Ui,MIDi>,他将执行以下操作:首先,GC计算T′i=sk0Ui以及 如果(Tci‑Tmi)>ΔT,ΔT为可接受的时间差,GC向ui回复重发请求,否则,GC计算y′i=H2(Ui||T′i||pk0),Q′i=y′ihiViRi‑pki以及Ci′=H3(Qi′||yi'||Vi||pki),其中pk0和{pki,Ri}为公开的公钥,hi=H1(IDi,Ri,pki);如果C′i≠Ci,GC向ui回复重发请求;否则,在验证数据<Ui,MIDi>有效性后,GC随机选择其中0≤i≤m;计算Li=tiPk以及Wi=tiQ′i,其中1≤i≤m;其中Wi为椭圆曲线上一点,其坐标为(Wix,Wiy);设置Wxi=Wixmodq,如果Wxi=0,GC随机选择另一个ti去执行上述步骤,否则,计算群会话密钥为 Zi=TK‑Q′i,Fi=Wxi·Zi以及Mi=H5(ID0||Q′i||Li||Fi||Tni),其中Tni为当前时间戳;最后,GC将消息<Tni,Li,Fi,Mi>返回给每一个群用户;

S3:当群用户ui接收到来自GC的<Tni,Li,Fi,Mi>时,他首先验证Tni的有效性,然后执行下列操作:计算M′i=H5(ID0||Qi||Li||Fi||Tni),若M′i≠Mi,群用户ui向GC回复重发请求;否则,ui计算Wi'=(ai+yi)Li,其中Wi'为椭圆曲线上一点,其坐标为(W′ix,W′iy);最后群用户ui计算W′xi=W′ixmodq, 以及群会话密钥TK=Z′i+Qi;

S4:每一个群用户ui可以通过一轮发送和接收密钥协商过程来生成相同的群会话密钥TK;

三、加入群操作

一个新群用户um+1加入群用户{u1,u2,...um},他首先产生他自己的公钥{pkm+1,Rm+1}及私钥{xm+1,skm+1};之后,他通过以下操作加入这个群:

1.群用户um+1选择 并像密钥协商执行阶段中的S1一样计算{Um+1,Tm+1,ym+1,Qm+1,Vm+1,Cm+1,MIDm+1},然后他发送消息<Um+1,MIDm+1>给GC;

2.当接收到消息<Um+1,MIDm+1>后,GC计算Q′m+1并像密钥协商执行阶段中的S2那样验证数据的有效性;若有效,GC重新选择 其中0≤i≤m+1;像密钥协商执行阶段中的S2一样得出{Li,Wi,Wxi},其中1≤i≤m+1;然后计算TKn=TK+Q′m+1+t0P0,Zni=TKn‑Q′i,Fni=Wxi·Zni和Mni=H5(ID0||Q′i||Li||Fni||Tni);最后,GC返回<Tni,Li,Fni,Mni>给每一个群用户;

3.当群用户ui收到信息<Tni,Li,Fni,Mni>后,他像密钥协商执行阶段中的S3一样验证Tni并计算M′ni来验证数据的有效性,最后计算出群会话密钥TKn;

四、离开群操作

离开群操作有两种情况:一个是GC离开群,另一个是群用户uω离开群,其中1≤ω≤m;

1.如果GC离开群,协议将选择一个新的GC并从头执行我们的群密钥协商方法;

2.如果成员uω离开群,GC重新选择 其中0≤i≤m‑1;以产生{Li,Wi,Wxi},其中1≤i≤m‑1,然后计算TKn=TK‑Q′ω+t0P0,Zni=TKn‑Q′i,Fni=Wxi·Zni以及Mni=H5(ID0||Q′i||Li||Fni||Tni);最后,GC返回<Tni,Li,Fni,Mni>给每一个群用户ui;当群用户ui收到消息<Tni,Li,Fni,Mni>时,他像密钥协商执行阶段中的S3一样计算群会话密钥TKn。

说明书 :

一种面向安全跨域通信的无证书群密钥协商方法

技术领域

[0001] 本发明涉及无证书的密码体制,具体涉及一种面向安全跨域通信的无证书群密钥协商方法。

背景技术

[0002] 随着群通信应用越来越多,群通信安全问题急需解决。群密钥协商方法使得一群用户能够协商出一个相同的会话密钥,为后续的群通信保证安全。目前大多数群密钥协商
协议主要是基于三种密码体制,分别是基于传统的公钥基础设施(PKI,Public Key 
Infrastructure)、基于身份的密码体制(IBC,Identity‑Based Cryptosystem)以及无证书
密码体制(CLC,Certificateless Cryptosystem)。PKI需要证书来验证用户的身份,因此其
涉及大量的证书管理问题。IBC不需要使用证书,通常选取用户的身份作为公钥,私钥由可
信的第三方私钥生成中心生成。IBC由于私钥生成中心掌握了用户的私钥,密钥托管就成为
了其中一个安全隐患问题。CLC解决了上述两个密码体制的缺陷,CLC不需要使用证书。CLC
使用了密钥生成中心(KGC,Key Generate Center)作为可信的第三方,KGC利用自己的主密
钥和用户的身份信息计算出一个部分私钥发送给用户,用户自己产生另外一部分私钥,即
KGC不能掌握用户的所有私钥。
[0003] 目前大部分无证书的群密钥协商协议没有考虑跨域通信,即群中的每一个用户都在同一域内。或者方法中群用户处在不同域,但使用相同的密码参数,这并不适合实际的跨
域环境。2018年,Yang等人在提出了一种面向安全跨域通信的无证书群密钥协商方法(以下
称为现有技术1),但该方法来自不同域的用户使用相同的密码系统参数。另一方面,该方法
不能抵御已知临时密钥攻击,同时KGC需要一个安全通信信道来传输用户的部分私钥。在执
行效率方面,该方法需要两轮通信来执行群密钥协议。这些问题都极大的限制了该方法的
适用范围。
[0004] 本发明设计了一种面向安全跨域通信的无证书群密钥协商方法。采用了无证书密码技术,不存在PKI的证书管理问题和IBC的密钥托管问题。允许来自不同域的群用户使用
不同的密码系统参数。在执行效率方面,只需要一轮通信来执行群密钥协商协议,大大降低
了通信成本。

发明内容

[0005] 目前大部分无证书的群密钥协商协议没有考虑跨域通信,或者方法中群用户处在不同域,但使用相同的密码参数,这并不适合实际的跨域环境。另一方面,大部分无证书的
群密钥协商协议需要一个安全通信信道来传输用户的部分私钥。本发明提供一种面向安全
跨域通信的无证书群密钥协商方法以解决上述问题。
[0006] 面向安全跨域通信的无证书群密钥协商方法中包含三种类型的通信实体:KGC、群用户和群控制器(GC,Group Controller)。KGC负责为群用户生成部分私钥,群控制器通过
与群用户交互生成一个群会话密钥。本方法主要包含以下几个部分:
[0007] 一、密钥协商初始阶段
[0008] 在我们提出的面向安全跨域通信的无证书群密钥协商方法中,GC在一个网络域中并且群用户{u1,u2,...um}(m是群用户的数量)不需要来自于相同的网络域。该阶段包括KGC
生成密码参数算法、秘密值生成算法、部分私钥生成算法、设置完整私钥算法和设置完整公
钥算法。
[0009] KGC生成密码参数算法:该算法输入安全参数k,KGC生成密码系统参数及其主私钥。
[0010] 1.有一个根KGC,它生成一个二元组{q,G},其中G为加法循环群,q为群G的阶;根2
KGC选择5个单向哈希函数:H1: H2: H3: H4:G →{0,
*
1}和H5: 根KGC公开{q,G,H1,H2,H3,H4,H5}。
[0011] 2.每个KGCk生成一个二元组{sk,Pk},其中Pk是群G的生成元, 是KGCk的主私钥。不同的KGCk可以生成不同的二元组{sk,Pk}。
[0012] 3.每个KGCk计算它的主公钥KCk=skPk并秘密保存其主私钥sk;
[0013] 4.各KGCk公开各自的密码系统参数{q,G,Pk,KCk,H1,H2,H3,H4,H5};
[0014] 秘密值生成算法:一个身份为IDi的群用户ui,其中1≤i≤m(m是群用户的数量),ui选择 计算pki=xi·Pk并设置xi为他的秘密值,群用户ui属于密码系统参数含有Pk的
KGCk域,不同群用户可以属于不同域并使用不同的密码系统参数。
[0015] 部分私钥生成算法:该算法使用KGCk生成的密码系统参数、主私钥、群用户ui的身份IDi和ui的部分公钥pki作为输入,返回群用户的部分私钥。具体步骤如下:
[0016] 1.KGCk随机选择 并计算Ri=riKCk,hi=H1(IDi,Ri,pki)。
[0017] 2.KGCk计算uski=ri·sk·hi+H1(IDi,Ri,sk·pki)并将{uski,Ri}通过公开信道返回给群用户ui。
[0018] 设置完整私钥算法:群用户ui计算ski=uski‑H1(IDi,Ri,xi·KCK)并验证等式skiPk=hiRi是否成立,若等式成立,则群用户设置其完整私钥为{xi,ski}。GC设置其完整私钥为
sk0=(x0+r0s0h0)modq,其中(x0,r0,s0,h0)采用上述算法产生(xi,ri,sk,hi)同样的计算方式
产生。
[0019] 设置完整公钥算法:群用户ui设置其完整公钥为{pki,Ri}。GC设置其完整公钥为pk0=sk0P0,其中P0是群G的一个生成元。
[0020] 二、密钥协商执行阶段
[0021] S1:当一群群用户想要协商一个共同的群会话密钥,每一个群用户ui都要执行以下操作,其中1≤i≤m(m是群用户的数量):随机选择 然后计算Ui=(ai·xi)P0,Ti=
‑1
(ai·xi)pk0,yi=H2(Ui||Ti||pk0),Qi=(ai+yi)Pk,Vi=(yi·ski) (ai+xi+yi),Ci=H3(Qi||yi
||Vi||pki), 最后将消息<Ui,MIDi>发送给GC,其中Tmi
为当前时间戳。
[0022] S2:当GC在时间Tci时收到来自群用户ui的消息<Ui,MIDi>,他将执行以下操作:首先,GC计算Ti'=sk0Ui以及 如果(Tci‑Tmi)>ΔT,ΔT为可
接受的时间差,GC向ui回复重发请求,否则,GC计算y’i=H2(Ui||Ti'||pk0),Q’i=y’ihiViRi‑
pki以及Ci'=H3(Qi'||yi'||Vi||pki),其中pk0和{pki,Ri}为公开的公钥,hi=H1(IDi,Ri,
pki)。如果C’i≠Ci,GC向ui回复重发请求。否则,在验证数据<Ui,MIDi>有效性后,GC随机选
择 其中0≤i≤m;计算Li=tiPk以及Wi=tiQ’i,其中1≤i≤m。其中Wi为椭圆曲线上一
点,其坐标为(Wix,Wiy)。设置Wxi=Wixmodq,如果Wxi=0,GC随机选择另一个ti去执行上述步
骤,否则,计算群会话密钥为 Zi=TK‑Q’i,Fi=Wxi·Zi以及Mi=H5(ID0||Q’i
||Li||Fi||Tni),其中Tni为当前时间戳。最后,GC将消息<Tni,Li,Fi,Mi>返回给每一个群用
户。
[0023] S3:当群用户ui接收到来自GC的<Tni,Li,Fi,Mi>时,他首先验证Tni的有效性,然后执行下列操作:计算M’i=H5(ID0||Qi||Li||Fi||Tni),若M’i≠Mi,群用户ui向GC回复重发请
求。否则,ui计算W’i=(ai+yi)Li,其中W’i为椭圆曲线上一点,其坐标为(W’ix,W’iy)。最后群
‑1
用户ui计算W’xi=W’ixmodq,Z’i=W’xi ·Fi以及群会话密钥TK=Zi'+Qi。
[0024] S4,每一个群用户ui可以通过一轮发送和接收密钥协商过程来生成相同的群会话密钥TK。
[0025] 三、加入群操作
[0026] 一个新群用户um+1要加入群用户{u1,u2,...um},他首先产生他自己的公钥{pkm+1,Rm+1}及私钥{xm+1,skm+1}。之后,他通过以下操作加入这个群。
[0027] 1)群用户um+1选择 并像密钥协商执行阶段中的S1一样计算{Um+1,Tm+1,ym+1,Qm+1,Vm+1,Cm+1,MIDm+1},然后他发送消息<Um+1,MIDm+1>给GC。
[0028] 2)当接收到消息<Um+1,MIDm+1>后,GC计算Q'm+1并像密钥协商执行阶段中的S2那样验证数据的有效性。若有效,GC重新选择 其中0≤i≤m+1;像密钥协商执行阶段中
的S2一样得出{Li,Wi,Wxi},其中1≤i≤m+1;然后计算TKn=TK+Q'm+1+t0P0,Zni=TKn‑Q’i,Fni
=Wxi·Zni和Mni=H5(ID0||Q’i||Li||Fni||Tni);最后,GC返回<Tni,Li,Fni,Mni>给每一个群
用户。
[0029] 3)当群用户ui收到信息<Tni,Li,Fni,Mni>后,他像密钥协商执行阶段中的S3一样验证Tni并计算M'ni来验证数据的有效性,最后计算出群会话密钥TKn。
[0030] 四、离开群操作
[0031] 离开群操作有两种情况。一个是GC离开群,另一个是群用户uω离开群,其中1≤ω≤m。
[0032] 1)如果GC离开群,协议将选择一个新的GC并从头执行我们的群密钥协商方法。
[0033] 2)如果成员uω离开群,GC重新选择 其中0≤i≤m‑1;以产生{Li,Wi,Wxi},其中1≤i≤m‑1,然后计算TKn=TK‑Q'ω+t0P0,Zni=TKn‑Q’i,Fni=Wxi·Zni以及Mni=H5(ID0||Q’i
||Li||Fni||Tni)。最后,GC返回<Tni,Li,Fni,Mni>给每一个群用户ui。当群用户ui收到消息<
Tni,Li,Fni,Mni>时,他像密钥协商执行阶段中的S3一样计算群会话密钥TKn。最后,我们证明
验证过程的有效性。
[0034] 1)当一个群用户发送消息<Ui,MIDi>给GC时,GC需要验证数据是有效的。
[0035] 证明:Ti'=sk0Ui
[0036] =sk0aixiP0
[0037] =(ai·xi)pk0
[0038] 因此y’i=H2(Ui||Ti'||pk0)=yi
[0039] 并且Q’i=y’ihiViRi‑pki
[0040] =y’ihi(yi·ski)‑1(ai+xi+yi)Ri‑xiPk
[0041] =y’ihi(yiriskhi)‑1(ai+xi+yi)riskPk‑xiPk
[0042] =(ai+xi+yi)Pk‑xiPk=(ai+yi)Pk=Qi
[0043] 因此Ci'=H3(Qi'||yi'||Vi||pki)=Ci
[0044] 2)当群用户ui从GC接收数据<Tni,Li,Fi,Mi>时,他需要验证数据是有效的,并计算群会话密钥。
[0045] 证明:Mi=H5(ID0||Q’i||Li||Fi||Tni)且Q’i=Qi
[0046] 因此Mi'=H5(ID0||Qi||Li||Fi||Tni)=Mi
[0047] Wi'=(ai+yi)Li=ti(ai+yi)Pk=tiQi=Wi
[0048] 因此W’ix=Wix以及Z’i=Zi
[0049] 最终每个群用户可以计算出相同的群会话密钥TK=Zi+Qi。
[0050] 本方法具有跨域特性。在我们的面向安全跨域通信的无证书群密钥协商方法中,允许GC和每个群用户来自于具有不同密码系统参数的网络域。然而,在现有技术1中,GC和
来自不同域的每个群用户使用相同的密码系统参数,这并不适合实际的跨域环境。
[0051] 本方法具有较强的安全性。所提出的面向安全跨域通信的无证书群密钥协商方法不仅不仅能够提供认证密钥协商安全性、双向认证、完美前向安全性、用户匿名性以及部分
私钥传输安全性,而且能够抵御伪装攻击、重放攻击和已知临时密钥攻击。但是,现有技术1
中KGC传输用户部分私钥时需要一个安全信道,即无法满足部分私钥传输安全性,而且现有
技术1无法抵御已知临时密钥攻击。
[0052] 本方法具有高效的性能。所提出的面向安全跨域通信的无证书群密钥协商方法只需要一轮通信即可完成GC和群用户之间的群密钥协商,通信成本较低。然而,现有技术1需
要两轮通信来执行群密钥协商。与现有技术1相比,我们提出的方法中GC和用户的计算时间
更少,并且群用户的通信开销也减少了(|G|>|q|+|d|+|t|)。具体性能对比结果如下表所
示。
[0053] 表1:性能比较
[0054]
[0055] 其中:m代表群用户的数量,Ts、Ta分别代表群G中点乘的计算时间以及群G中加法的计算时间。|G|代表群中元素的大小,|q|代表 中值的长度,|t|代表时间戳的大小,|d|代
表用户身份的大小。

附图说明

[0056] 图1为面向安全跨域通信的无证书群密钥协商方法的网络模型。
[0057] 图2为本发明的密钥协商执行阶段主要过程流程图。

具体实施方式

[0058] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方法进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0059] 实施例1、请参阅图1,如图1所示,面向安全跨域通信的无证书群密钥协商方法中包含三种类型的通信实体:KGC、群用户和群控制器(GC,Group Controller)。KGC负责为群
用户生成部分私钥,群控制器通过与群用户交互生成一个群会话密钥。本方法主要包含以
下几个部分:
[0060] 一、密钥协商初始阶段
[0061] 在我们提出的面向安全跨域通信的无证书群密钥协商方法中,GC在一个网络域中并且群用户{u1,u2,...um}(m是群用户的数量)不需要来自于相同的网络域。该阶段包括KGC
生成密码参数算法、秘密值生成算法、部分私钥生成算法、设置完整私钥算法和设置完整公
钥算法。
[0062] KGC生成密码参数算法:该算法输入安全参数k,KGC生成密码系统参数及其主私钥。
[0063] 1.有一个根KGC,它生成一个二元组{q,G},其中G为加法循环群,q为群G的阶;根2
KGC选择5个单向哈希函数:H1: H2: H3: H4:G →{0,
*
1}和H5: 根KGC公开{q,G,H1,H2,H3,H4,H5}。
[0064] 2.每个KGCk生成一个二元组{sk,Pk},其中Pk是群G的生成元, 是KGCk的主私钥。不同的KGCk可以生成不同的二元组{sk,Pk}。
[0065] 3.每个KGCk计算它的主公钥KCk=skPk并秘密保存其主私钥sk;
[0066] 4.各KGCk公开各自的密码系统参数{q,G,Pk,KCk,H1,H2,H3,H4,H5};
[0067] 秘密值生成算法:一个身份为IDi的群用户ui,其中1≤i≤m(m是群用户的数量),ui选择 计算pki=xi·Pk并设置xi为他的秘密值,群用户ui属于密码系统参数含有Pk的
KGCk域,不同群用户可以属于不同域并使用不同的密码系统参数。
[0068] 部分私钥生成算法:该算法使用KGCk生成的密码系统参数、主私钥、群用户ui的身份IDi和ui的部分公钥pki作为输入,返回群用户的部分私钥。具体步骤如下:
[0069] 1.KGCk随机选择 并计算Ri=riKCk,hi=H1(IDi,Ri,pki)。
[0070] 2.KGCk计算uski=ri·sk·hi+H1(IDi,Ri,sk·pki)并将{uski,Ri}通过公开信道返回给群用户ui。
[0071] 设置完整私钥算法:群用户ui计算ski=uski‑H1(IDi,Ri,xi·KCK)并验证等式skiPk=hiRi是否成立,若等式成立,则群用户设置其完整私钥为{xi,ski}。GC设置其完整私钥为
sk0=(x0+r0s0h0)modq,其中(x0,r0,s0,h0)采用上述算法产生(xi,ri,sk,hi)同样的计算方式
产生。
[0072] 设置完整公钥算法:群用户ui设置其完整公钥为{pki,Ri}。GC设置其完整公钥为pk0=sk0P0,其中P0是群G的一个生成元。
[0073] 二、密钥协商执行阶段
[0074] S1:当一群群用户想要协商一个共同的群会话密钥,每一个群用户ui都要执行以下操作,其中1≤i≤m(m是群用户的数量):随机选择 然后计算Ui=(ai·xi)P0,Ti=
‑1
(ai·xi)pk0,yi=H2(Ui||Ti||pk0),Qi=(ai+yi)Pk,Vi=(yi·ski) (ai+xi+yi),Ci=H3(Qi||yi
||Vi||pki), 最后将消息<Ui,MIDi>发送给GC,其中Tmi
为当前时间戳。
[0075] S2:当GC在时间Tci时收到来自群用户ui的消息<Ui,MIDi>,他将执行以下操作:首先,GC计算Ti'=sk0Ui以及 如果(Tci‑Tmi)>ΔT,ΔT为可
接受的时间差,GC向ui回复重发请求,否则,GC计算y’i=H2(Ui||Ti’||pk0),Q’i=y’ihiViRi‑
pki以及Ci'=H3(Qi'||yi'||Vi||pki),其中pk0和{pki,Ri}为公开的公钥,hi=H1(IDi,Ri,
pki)。如果C’i≠Ci,GC向ui回复重发请求。否则,在验证数据<Ui,MIDi>有效性后,GC随机选
择 其中0≤i≤m;计算Li=tiPk以及Wi=tiQ’i,其中1≤i≤m。其中Wi为椭圆曲线上一
点,其坐标为(Wix,Wiy)。设置Wxi=Wixmodq,如果Wxi=0,GC随机选择另一个ti去执行上述步
骤,否则,计算群会话密钥为 Zi=TK‑Q’i,Fi=Wxi·Zi以及Mi=H5(ID0||Q’i
||Li||Fi||Tni),其中Tni为当前时间戳。最后,GC将消息<Tni,Li,Fi,Mi>返回给每一个群用
户。
[0076] S3:当群用户ui接收到来自GC的<Tni,Li,Fi,Mi>时,他首先验证Tni的有效性,然后执行下列操作:计算M’i=H5(ID0||Qi||Li||Fi||Tni),若M’i≠Mi,群用户ui向GC回复重发请
求。否则,ui计算Wi'=(ai+yi)Li,其中Wi'为椭圆曲线上一点,其坐标为(W’ix,W’iy)。最后群
‑1
用户ui计算W’xi=W’ixmodq,Z’i=W’xi ·Fi以及群会话密钥TK=Z’i+Qi。
[0077] S4,每一个群用户ui可以通过一轮发送和接收密钥协商过程来生成相同的群会话密钥TK。
[0078] 三、加入群操作
[0079] 一个新群用户um+1要加入群用户{u1,u2,...um},他首先产生他自己的公钥{pkm+1,Rm+1}及私钥{xm+1,skm+1}。之后,他通过以下操作加入这个群。
[0080] 1)群用户um+1选择 并像密钥协商执行阶段中的S1一样计算{Um+1,Tm+1,ym+1,Qm+1,Vm+1,Cm+1,MIDm+1},然后他发送消息<Um+1,MIDm+1>给GC。
[0081] 2)当接收到消息<Um+1,MIDm+1>后,GC计算Q'm+1并像密钥协商执行阶段中的S2那样验证数据的有效性。若有效,GC重新选择 其中0≤i≤m+1;像密钥协商执行阶段中
的S2一样得出{Li,Wi,Wxi},其中1≤i≤m+1;然后计算TKn=TK+Q'm+1+t0P0,Zni=TKn‑Qi',Fni
=Wxi·Zni和Mni=H5(ID0||Q’i||Li||Fni||Tni);最后,GC返回<Tni,Li,Fni,Mni>给每一个群
用户。
[0082] 3)当群用户ui收到信息<Tni,Li,Fni,Mni>后,他像密钥协商执行阶段中的S3一样验证Tni并计算M'ni来验证数据的有效性,最后计算出群会话密钥TKn。
[0083] 四、离开群操作
[0084] 离开群操作有两种情况。一个是GC离开群,另一个是群用户uω离开群,其中1≤ω≤m。
[0085] 1)如果GC离开群,协议将选择一个新的GC并从头执行我们的群密钥协商方法。
[0086] 2)如果成员uω离开群,GC重新选择 其中0≤i≤m‑1;以产生{Li,Wi,Wxi},其中1≤i≤m‑1,然后计算TKn=TK‑Q'ω+t0P0,Zni=TKn‑Q’i,Fni=Wxi·Zni以及Mni=H5(ID0||Q’i||
Li||Fni||Tni)。最后,GC返回<Tni,Li,Fni,Mni>给每一个群用户ui。当群用户ui收到消息<
Tni,Li,Fni,Mni>时,他像密钥协商执行阶段中的S3一样计算群会话密钥TKn。
[0087] 图2展示了面向安全跨域通信的无证书群密钥协商方法的执行阶段主要过程。除了执行阶段,该方法还包括初始阶段,加入以及离开群操作。
[0088] 在初始阶段,每个属于不同域的KGC产生不同的公共系统参数,主公钥和主私钥。这些公共系统参数和主公钥都是公开的。用户(包括群用户和群控制器GC)选择一个秘密
值,计算一个部分公钥,随后把该公钥和身份信息发送给他的域KGC。KGC为用户计算一个部
分公钥和部分私钥。最后用户产生自己的全私钥和全公钥。
[0089] 在执行阶段,GC使用图2中的面向安全跨域通信的无证书群密钥协商执行阶段来为群用户产生一个共同的会话密钥,群用户可以属于不同域并使用不同的密码系统参数。
该会话密钥为后续的群通信提供安全性保护。
[0090] 当一个用户加入或离开群,GC通过使用加入或离开群操作来为群用户产生一个新的群会话密钥。
[0091] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换
和变型,本发明的范围由所附权利要求及其等同物限定。