一种面向安全跨域通信的无证书群密钥协商方法转让专利
申请号 : CN201911227192.9
文献号 : CN110971404B
文献日 : 2021-06-22
发明人 : 罗铭 , 黄海凤 , 胡星彤 , 易宁
申请人 : 南昌大学
摘要 :
权利要求 :
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。
说明书 :
一种面向安全跨域通信的无证书群密钥协商方法
技术领域
背景技术
协议主要是基于三种密码体制,分别是基于传统的公钥基础设施(PKI,Public Key
Infrastructure)、基于身份的密码体制(IBC,Identity‑Based Cryptosystem)以及无证书
密码体制(CLC,Certificateless Cryptosystem)。PKI需要证书来验证用户的身份,因此其
涉及大量的证书管理问题。IBC不需要使用证书,通常选取用户的身份作为公钥,私钥由可
信的第三方私钥生成中心生成。IBC由于私钥生成中心掌握了用户的私钥,密钥托管就成为
了其中一个安全隐患问题。CLC解决了上述两个密码体制的缺陷,CLC不需要使用证书。CLC
使用了密钥生成中心(KGC,Key Generate Center)作为可信的第三方,KGC利用自己的主密
钥和用户的身份信息计算出一个部分私钥发送给用户,用户自己产生另外一部分私钥,即
KGC不能掌握用户的所有私钥。
域环境。2018年,Yang等人在提出了一种面向安全跨域通信的无证书群密钥协商方法(以下
称为现有技术1),但该方法来自不同域的用户使用相同的密码系统参数。另一方面,该方法
不能抵御已知临时密钥攻击,同时KGC需要一个安全通信信道来传输用户的部分私钥。在执
行效率方面,该方法需要两轮通信来执行群密钥协议。这些问题都极大的限制了该方法的
适用范围。
不同的密码系统参数。在执行效率方面,只需要一轮通信来执行群密钥协商协议,大大降低
了通信成本。
发明内容
群密钥协商协议需要一个安全通信信道来传输用户的部分私钥。本发明提供一种面向安全
跨域通信的无证书群密钥协商方法以解决上述问题。
与群用户交互生成一个群会话密钥。本方法主要包含以下几个部分:
生成密码参数算法、秘密值生成算法、部分私钥生成算法、设置完整私钥算法和设置完整公
钥算法。
KGC选择5个单向哈希函数:H1: H2: H3: H4:G →{0,
*
1}和H5: 根KGC公开{q,G,H1,H2,H3,H4,H5}。
KGCk域,不同群用户可以属于不同域并使用不同的密码系统参数。
sk0=(x0+r0s0h0)modq,其中(x0,r0,s0,h0)采用上述算法产生(xi,ri,sk,hi)同样的计算方式
产生。
‑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
为当前时间戳。
接受的时间差,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>返回给每一个群用
户。
求。否则,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。
的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>给每一个群
用户。
||Li||Fni||Tni)。最后,GC返回<Tni,Li,Fni,Mni>给每一个群用户ui。当群用户ui收到消息<
Tni,Li,Fni,Mni>时,他像密钥协商执行阶段中的S3一样计算群会话密钥TKn。最后,我们证明
验证过程的有效性。
来自不同域的每个群用户使用相同的密码系统参数,这并不适合实际的跨域环境。
私钥传输安全性,而且能够抵御伪装攻击、重放攻击和已知临时密钥攻击。但是,现有技术1
中KGC传输用户部分私钥时需要一个安全信道,即无法满足部分私钥传输安全性,而且现有
技术1无法抵御已知临时密钥攻击。
要两轮通信来执行群密钥协商。与现有技术1相比,我们提出的方法中GC和用户的计算时间
更少,并且群用户的通信开销也减少了(|G|>|q|+|d|+|t|)。具体性能对比结果如下表所
示。
表用户身份的大小。
附图说明
具体实施方式
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
用户生成部分私钥,群控制器通过与群用户交互生成一个群会话密钥。本方法主要包含以
下几个部分:
生成密码参数算法、秘密值生成算法、部分私钥生成算法、设置完整私钥算法和设置完整公
钥算法。
KGC选择5个单向哈希函数:H1: H2: H3: H4:G →{0,
*
1}和H5: 根KGC公开{q,G,H1,H2,H3,H4,H5}。
KGCk域,不同群用户可以属于不同域并使用不同的密码系统参数。
sk0=(x0+r0s0h0)modq,其中(x0,r0,s0,h0)采用上述算法产生(xi,ri,sk,hi)同样的计算方式
产生。
‑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
为当前时间戳。
接受的时间差,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>返回给每一个群用
户。
求。否则,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。
的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>给每一个群
用户。
Li||Fni||Tni)。最后,GC返回<Tni,Li,Fni,Mni>给每一个群用户ui。当群用户ui收到消息<
Tni,Li,Fni,Mni>时,他像密钥协商执行阶段中的S3一样计算群会话密钥TKn。
值,计算一个部分公钥,随后把该公钥和身份信息发送给他的域KGC。KGC为用户计算一个部
分公钥和部分私钥。最后用户产生自己的全私钥和全公钥。
该会话密钥为后续的群通信提供安全性保护。
和变型,本发明的范围由所附权利要求及其等同物限定。