首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于Schnorr签名算法的无证书签名方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:西安电子科技大学

摘要:本发明公开了一种基于Schnorr签名算法的无证书签名方法,主要解决现有技术存在的安全性差及效率低的问题。其实现步骤是:1、签名者生成公钥pkID和秘密信息skID;2、密钥生成中心KGC生成签名者的部分私钥pskID,并通过安全的信道发送给签名者;3、签名者对消息m进行签名,生成签名δ;4、签名验证者检验签名δ的有效性:如果有效,则签名者对消息m的签名是合法的,否则签名者对m的签名不合法。本发明能抵御更强类型的攻击者、提高了运算效率,可广泛应用于分布式网络环境中以实现数据的共享。

主权项:一种基于Schnorr签名算法的无证书签名方法,包括如下步骤:1签名者根据身份ID基于Schnorr签名算法生成公钥pkID和秘密信息skID,并将该公钥pkID公布到系统的公共目录中,将该秘密信息skID安全保存;2密钥生成中心KGC在系统公共目录中找到签名者的公钥pkID后,先将签名者的公钥pkID与签名者的身份ID进行绑定,再根据绑定信息与系统主密钥msk,生成部分私钥pskID,并通过安全的信道发送给签名者;3签名者收到部分私钥pskID后,利用获得的部分私钥pskID、保存的秘密信息skID以及签名者的公钥pkID对消息m进行签名,生成签名δ;4签名验证者收到签名者对消息m的签名消息δ后,验证签名者公钥pkID的合法性:若合法,则执行步骤5;否则,操作终止;5签名验证者根据签名者的身份ID使用签名者的公钥pkID通过无证书签名的验证方法检验对消息m的签名的有效性:5a签名验证者将签名者的身份ID和签名者的公钥pkID输入到定义域为{0,1}*×G13,值域为{0,1}n的哈希函数H2,得到集合T={ti|0in+1,i∈Zp*,ti∈{0,1}},构造下标集合EID={i|ti=1,0in+1,i∈Zp*,ti∈T},计算中间变量其中G1为p阶加法循环群,它由密钥生成中心KGC选取的;n为哈希函数H2输出结果的长度;u',ui分别为p阶加法循环群G1中随机选取两个不同变量,Zp*是不超过大素数p的正整数集合;5b签名验证者计算中间变量当输入是奇数时b=1,否则b=0;5c签名验证者使用定义域为值域为Zp*的哈希函数H1计算中间变量再使用定义域为{0,1}*×G13,值域为Zp*的哈希函数H3计算中间变量5d签名验证者根据签名者的身份ID、签名者的公钥pkID,消息m的签名以及系统公共参数params进行验证:如果等式成立,则所验证的签名δ是有效的,否则是无效的,其中分别为签名δ中的三个分量,分别是签名者的公钥pkID中的第一个分量和第二个分量,g,g2分别为系统公共参数params中的不同元素,e为G1和G2上的双线性变换,即e:G1×G1→G2;它由密钥生成中心KGC选取,g为p阶加法循环群G1的生成元,它由密钥生成中心KGC选取;g2为中间变量g2=H0g,g1,H0:定义域为G1×G1,值域为G1的哈希函数;g1是p阶加法循环群G1中的元素,它由密钥生成中心KGC计算gx得到,其中g1=gx,mb为下标为b的明文消息m。

全文数据:基于Schnorr签名算法的无证书签名方法技术领域[0001]本发明属于网络安全技术领域,涉及一种分布式网络通信领域中实现高效且安全的无证书签名方法,可用于分布式网络中实现数据的安全共享。背景技术[0002]随着计算机和网络通信技术的发展,数字签名技术已得到了广泛的应用。传统的数字签名技术是基于公钥基础设施PKI的。PKI维护并且管理着一个公钥证书库,因此需要巨大的通信、计算和存储代价。为了解决公钥的真实性问题,并且降低系统的通信、计算和存储代价,基于身份的数字签名技术IBS。然而IBS中存在一个固有的缺陷即密钥托管问题。为了解决IBS中的密钥托管问题,无证书签名技术CLS被提出。无证书签名系统由密钥生成中心KGC产生部分私钥,然后将该部分私钥安全的传输到对应的签名者。对应的签名者再根据自己的实际情况选择一个对于密钥生成中心KGC不可见的秘密信息与部分私钥结合构成最后的完整私钥,因此该系统既不使用证书也能很好的解决IBS中的密钥托管问题。[0003]文南犬“ImprovedCertificatelessSignatureSchemeProvablySecureintheStandardModel.IETInformationSecurity,2012,62:102_110”提出了标准模型下的改进无证书签名方法,该方法能够很好的抵御Xia等人〇eyreplacementattackontwocertificatelesssignatureschemeswithoutrandomoracles.KeyEngineeringMaterials,2010,439:1606-1611的攻击并且具有较少的系统参数和较高的计算效率。该方法的主要步骤是:第一,建立并公开系统公共参数,同时安全保存系统主密钥;第二,密钥生成中心KGC生成签名者的部分私钥pskID,并将签名者的部分私钥pskID发送给对应的签名者;第三,生成系统中签名者的公钥,每个签名者在生成公钥的过程中都要保存一个对于密钥生成中心KGC不可见的秘密信息sk;第四,签名者使用其部分私钥pskID与秘密信息81^对待签名信息加密生成签名;第五,签名验证者验证签名者公钥和签名的有效性。在该方法中,签名者的实际私钥是由密钥生成中心KGC产生的部分私钥与签名者秘密选择的秘密信息sk共同组成,因此私钥对于密钥生成中心KGC是不可见的,从而能够很好的解决密钥托管问题。该方法存在以下缺陷:[0004]第一,虽然相对于以前的方法,该方法系统参数更少,计算效率更高,但是它依然使用较多的双线性对,在通信带宽受限的环境下很难实现;[0005]第二,该方法虽然考虑到Xia等人(Keyreplacementattackontwocertificatelesssignatureschemeswithoutrandomoracles.KeyEngineeringMaterials,2010,439:1606-1611的攻击,但是却忽略了公钥替换攻击和不诚信KGC被动攻击,因此易受到这两类攻击;[0006]第三,在该方法中,密钥生成中心KGC的信任等级只能达到M.Girault等人提出的信任等级2,使得密钥生成中心KGC可以伪装成签名者进行非法签名。发明内容[0007]本发明的目的在于这对上述无证书签名方法的不足,提出一种基于Schnorr签名算法的无证书签名方法,以提升密钥生成中心KGC的信任等级和计算效率,有效抵御公钥替换攻击和不诚信KGC的被动攻击,提高无证书签名方法的安全性。[0008]本方法的主要思想是:利用Schnorr签名算法来完成签名者的公钥生成与验证,以使得每次在验证签名有效性时都无需再使用双线性对运算来完成签名者公钥有效性的验证,从而减少双线对的使用个数。同时在签名生成阶段将签名者的部分公钥信息嵌入到签名算法中,即使攻击者替换了签名者的公钥也无法成功构造出合法的签名,使得公钥替换攻击很难实现。除此之外,该发明绑定部分系统公共信息,使得任何人都可以验证该部分信息是密钥生成中心KGC合法生产的还是它刻意构造用以实施不诚信KGC被动攻击,从根源上制止了密钥生成中心KGC的不诚信。最后,通过将签名者的公钥绑定到密钥生成中心KGC产生的部分私钥上,当密钥生成中心KGC伪装成签名者产生合法签名时,能够立即检测出密钥生成中心KGC的非法操作,从而实现密钥生成中心KGC较高的信任等级。[0009]根据以上思路,本发明的具体实现步骤包括如下:[0010]1签名者根据身份ID基于Schnorr签名算法生成公钥pkID和秘密信息Sk1D,并将该公钥Pk1D公布到系统的公共目录中,将该秘密信息Sk1D安全保存;[0011]⑵密钥生成中心KGC在系统公共目录中找到签名者的公钥?1^后,先将签名者的公钥?1^与签名者的身份ID进行绑定,再根据绑定信息与系统主密钥msk,生成部分私钥pskID,并通过安全的信道发送给签名者;[0012]3签名者收到部分私钥口成叩后,利用获得的部分私钥PSk1D、保存的秘密信息Sk1D以及签名者的公钥Pk1D对消息m进行签名,生成签名δ;[0013]4签名验证者收到签名者对消息m的签名消息δ后,验证签名者公钥pkID的合法性:若合法,则执行步骤5;否则,操作终止;[0014]5签名验证者根据签名者的身份ID使用签名者的公钥Pk1D通过无证书签名的验证方法检验对消息m的签名6,化3的有效性:[0015]5a签名验证者将签名者的身份ID和签名者的公钥Pk1^入到定义域为{0,ΐΓXG13,值域为{0,1}η的哈希函数H2,得到集合T=Iti10〈i〈n+l,ieZp'tie{〇,1}},构造下标集合Eid={i|ti=l,0〈i〈n+l,ieZP*,tieT},计算中间变量’其中u’,m,分别为系统公共参数params中的两个不同的元素,Zt;是不超过大素数p的正整数集合;[0016]5b签名验证者计算中间变量=0¾_;当输入么3是奇数时b=1,否则b=0;[0017]5c签名验证者使用定义域为UurxG12,值域为Zt;的哈希函数H1计算中间变量再使用定义域为UurxG13,值域为Zt;的哈希函数H3计算中间变量[0018]5d签名验证者根据签名者的身份ID、签名者的公钥pkID,消息m的签名1以及系统公共参数params进行验证:[0019]如果等式成立,则所验证的签名δ是有效的,否则是无效的,其中,¾分别为签名δ中的三个分量,M,,,分别是签名者的公钥pkiD中的第一个分量和第二个分量,g,g2,mo和mi分别为系统公共参数params1=!11的不同元素。[0020]本发明与现有方案相比具有如下优点:[0021]第一,本发明使用较少的系统参数利于系统的建立与维护,同时基于Schnorr签名算法完成签名者的公钥的生成与验证,减少系统中双线性对的使用次数,进一步提高了计算效率,更加适用于通信、计算和存储能力受限的环境。[0022]第二,本发明将签名者的公钥绑定到部分私钥中,使得一个公钥只对应于一个部分私钥,当系统中出现两个有效的公钥对应于一个身份时,可以推测出密钥生成中心KGC对于一个身份必然生成两个部分私钥,得出密钥生成中心KGC实施了公钥替换攻击,因此本发明对密钥生成中心KGC的诚实度要求更低,系统的信任等级更高。[0023]第三,本发明在系统参数生成过程中使用绑定技术使得系统中的任何用户都可以验证部分系统参数是否合法,削弱密钥生成中心KGC生成具有后门的系统参数的能力;其次,在生成签名的步骤中,本发明不仅使用了签名者的私钥而且还将签名者的公钥嵌入到具体实施中,使得公钥替换者无法构造出同时满足公钥验证式和签名验证式的签名。附图说明[0024]图1是本发明的实现流程图。具体实施方式[0025]下面结合附图对本发明做进一步的描述。[0026]参照图1,本发明的实现步骤如下:[0027]步骤1,密钥生成中心KGC生成系统参数。[0028]Ia根据实际要求设定无证书签名系统的安全参数1;[0029]Ib密钥生成中心KGC根据设置的系统安全参数1,选取一个大素数p,其中pM1,构造一个P阶加法循环群GjPp阶乘法循环群G2,使其满足双线性映射e:G1XG1^G2,即从加法循环群中任意取两个元素作为双线性映射e的输入,则其输出一定是乘法循环群中的一个元素;[0030]Ic密钥生成中心KGC选择一个函数fQ:如果输入Q为奇数则输出1,否则输出0;[0031]Id密钥生成中心KGC从p阶加法循环群G1中选取生成元g,从不超过大素数p的正整数集合Zt^中随机选取变量X,计算中间变量gl=gx,再从p阶加法循环群G1中随机选取变量u'、m〇、mi和ui,U2,…,un,构造向量U=ui,U2,…,un;[0032]Ie密钥生成中心KGC选择四个不同的哈希函数Ho:G1XGpG1,H1:1ΓXG12Hzp*,h2:UurxG13^Uurj3:UurxG13^zp'计算中间变量gfMgw;[0033]If密钥生成中心KGC构造系统公共参数params和系统主密钥msk:[0034]params=Gi,G2,e,p,g,gi,g2,u7,mo,mi,u,Ho,Hi,H2,f[0035]msk=g2x;[0036]Ig密钥生成中心KGC秘密保存系统主密钥msk,同时公开系统公共参数params。[0037]步骤2,签名者根据身份ID生成公钥pkID。[0038]2a签名者从不超过大素数p的正整数集合Zp*中随机选择三个变量S1,S2,S3结合系统公共参数params计算中间变量W1=島'Ws=¾'S=得到签名者的公钥pkID和秘密信息skID:[0039]pkiD=wi,W2,d,y,[0040]skiD=S2,[0041]其中81是系统公共参数params中的元素,H1为定义域为IOjrXG12,值域为Zt^的哈希函数;[0042]2b签名者将公钥pkID放置到一个公共目录中;[0043]步骤3,密钥生成中心KGC生成签名者的部分私钥pskm。[0044]3a密钥生成中心KGC根据签名者的身份ID、签名者的公钥pkID、系统公共参数params,对签名者的身份ID和签名者的公钥pkIK®行绑定,即将签名者的身份ID和签名者的公钥Pk1^入到定义域为{0,1ΓXG13,值域为{0,1}n的哈希函数H2,得到集合T=Iti10〈i〈n+l,tie{0,1},iezp*};[0045]3b密钥生成中心KGC构造下标集合Eid=UIti=I,0〈i〈n+l,tieT,ieZP*},并计算中间变量’其中u’、m,分别为系统公共参数params的元素,Zt^是不超过大素数P的正整数集合;[0046]3c密钥生成中心KGC从不超过大素数p的正整数集合Zt^中随机选取变量r,依次计算部分私钥pskiD的第一分量」和第二分量声^©2.,其中msk是系统主密钥,g是系统公共参数params中的元素;[0047]3d密钥生成中心KGC构造签名者的部分私钥;供‘,,声々~,并将该部分私钥?81^通过安全的信道发送到身份为ID的签名者。[0048]步骤4,签名者通过无证书签名方法对消息m进行签名。[0049]签名者将消息m、身份ID、公钥pkID、签名者的部分私钥=P為0,4為〇2、签名者的秘密信息Sk1^P系统公共参数params作为输入,输出签名者对消息m的签名δ;[0050]4a签名者从不超过大素数ρ的正整数集合Zt^中随机选取两个变量k、n,计算如下三个中间变量:[0054]再依次计算签名δ的第一个分量第二个分量和第三个分量[0055]其中_分别为签名者的部分私钥pskiD中的第一个分量和第二个分量,H1为定义域为.,值域为Z啲哈希函数,H3为定义域为,值域为的哈希函数,m是待签名消息,分别是签名者的公钥pkID中的第一个分量和第二个分量,SkiD为签名者的秘密信息,b=fgk:当输入gk为奇数时b=l,否贝ljb=0,为步骤3计算出的中间变量,u’、m、g、g2、m〇、mi分别为系统公共参数params中不同的元素;[0056]4b签名者构造消息m的签名[0057]步骤5,签名验证者检验签名者对消息m的签名δ。[0058]5a签名验证者根据系统公共参数params和签名者的公钥pkiD=wi,W2,d,y,先利用等式V=是否成立来验证公钥的有效性,如果公式成立,则执行步骤5b,否则签名者的公钥?1^是无效的,抛出异常并且结束签名验证过程,[0059]其中系统公共参数params中的元素,ID是签名者的身份,W1是公钥pkID中的第一个分量,W2是公钥Pk1D中的第二个分量,d是公钥pkID中的第三个分量,y是公钥Pk1D中的第四个分量;[0060]5b签名验证者通过验证等式I检验签名j=Jb3i,Jffl2,4¾是否有效,如果该等式成立,则所验证的签名是有效的,否则是无效的,其中^、4¾、各%分别为签名δ中的三个分量,Ρβι、Mm2分别是签名者的公钥Pk1D中的第一个分量和第二个分量。[0061]以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制。显然,对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结果的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。[0062]名词解释[0063]KGC:密钥生成中心,KeyGenerationCenter,负责生成系统公共参数、主密钥以及每个签名者的部分私钥;[0064]1:系统安全参数,它由密钥生成中心KGC选取;[0065]p:大素数,它由密钥生成中心KGC选取,满足pM1;[0066]G1:p阶加法循环群,它由密钥生成中心KGC选取的;[0067]G2:p阶乘法循环群,它由密钥生成中心KGC选取的;[0068]e:GjPG2上的双线性变换,即e:G1XGpG2;它由密钥生成中心KGC选取[0069]g:p阶加法循环群G1的生成元,它由密钥生成中心KGC选取;[0070]Zp'不超过大素数p的正整数集合;[0071]X:不超过大素数P的正整数集合中的元素,由密钥生成中心KGC选取;[0072]gl:ρ阶加法循环群G冲的元素,它由密钥生成中心KGC计算gx得到;[0073]Ho:定义域为6!XG1,值域为6!的哈希函数;[0074]H1:定义域为{0,1ΓXG12,值域为Zp*的哈希函数;[0075]H2:定义域为{0,1ΓXG13,值域为{0,1}η的哈希函数;[0076]η:哈希函数出输出结果的长度;[0077]H3:定义域为{0,1ΓXG13,值域为Zp*的哈希函数;[0078]fQ:由密钥生成中心KGC选择的一个函数,如果输入Q为奇数则返回1,否则返回〇;[0079]params:系统公共参数;[0080]msk:系统主密钥;[0081]pkID:签名者的公钥;[0082]pskm:签名者的部分私钥;[0083]m:待签名消息,me{〇,1}*;[0084]δ:签名者对消息m的签名。

权利要求:1.一种基于Schnorr签名算法的无证书签名方法,包括如下步骤:1签名者根据身份ID基于Schnorr签名算法生成公钥pkID和秘密信息skID,并将该公钥pkID公布到系统的公共目录中,将该秘密信息skID安全保存;⑵密钥生成中心KGC在系统公共目录中找到签名者的公钥?1^后,先将签名者的公钥?让叩与签名者的身份ID进行绑定,再根据绑定信息与系统主密钥msk,生成部分私钥pskID,并通过安全的信道发送给签名者;3签名者收到部分私钥?81^后,利用获得的部分私钥pskID、保存的秘密信息skID以及签名者的公钥pkID对消息m进行签名,生成签名δ;4签名验证者收到签名者对消息m的签名消息δ后,验证签名者公钥pkID的合法性:若合法,则执行步骤5;否则,操作终止;5签名验证者根据签名者的身份ID使用签名者的公钥pkID通过无证书签名的验证方法检验对消息m的签名1的有效性:5a签名验证者将签名者的身份ID和签名者的公钥?1^输入到定义域为{0,IKXG13,值域为{〇,1}n的哈希函数H2,得到集合,构造下标集合Eid={i|ti=l,0〈i〈n+l,ieZP'tiGT},计算中间变i:’其中Gi为p阶加法循环群,它由密钥生成中心KGC选取的;η为哈希函数H2输出结果的长度;u’,m分别为p阶加法循环群G1中随机选取两个不同变量,Zt;是不超过大素数p的正整数集合;5b签名验证者计算中间变I5当输入%是奇数时b=1,否则b=0;5c签名验证者使用定义域为.!0,1丨值域为Zt^的哈希函数H1计算中间变量Zr=,再使用定义域为,值域为Zt^的哈希函数H3计算中间变量5d签名验证者根据签名者的身份ID、签名者的公钥ρk:D,消息m的签名以及系统公共参数params进行验证:如果等式成立,则所验证的签名S是有效的,否则是无效的,其4分别为签名S中的三个分量._分别是签名者的公钥PkiD中的第一个分量和第二个分量,g,g2分别为系统公共参数params中的不同元素,eSG#PG2上的双线性变换,S卩e:G1XG1^G2;它由密钥生成中心KGC选取,g为p阶加法循环群生成元,它由密钥生成中心KGC选取;g2为中间变量g2=Hog,gl,Ho:定义域SG1XG1,值域为G1的哈希函数;81是?阶加法循环群G1*的元素,它由密钥生成中心KGC计算gx得到,其中gi=gx,mb为下标为b的明文消息m。2.根据权利要求1所述的基于Schnorr签名算法的无证书签名方法,其中步骤(1所述的签名者基于Schnorr签名算法生成公钥pkiD和秘密信息skiD,按如下步骤进行:la签名者依次计算公钥pkID的第一个分量W1=gVs:,第二个分量w2=g广,第三个分量d=S2+S3H1ID,WI,W2以及第四个分量y=.,其中gi是系统公共参数params中的元素,SI、S2、S3是签名者从不超过大素数P的正整数集合Zt^中随机选择的三个变量,ID是签名者的身份,H1是定义域为,值域为Zt;的哈希函数;lb根据步骤la计算的参数,构造签名者的公每lc根据步骤la选择的变量,令签名者的秘密信息skiD=S2。3.根据权利要求1所述的基于Schnorr签名算法的无证书签名方法,其中所述步骤2中密钥生成中心KGC将签名者的公钥?1^与签名者的身份ID进行绑定,是通过将签名者的身份ID与签名者的公钥Pk1^入到定义域为{0,1}1613,值域为{0,1}11的哈希函数!12得到集合T={ti|〇〈i〈n+l,tie{〇,1}}而实现的。4.根据权利要求1所述的基于Schnorr签名算法的无证书签名方法,其中所述步骤2中,密钥生成中心KGC根据绑定信息与系统主密钥msk,密钥生成中心KGC生成部分私钥pskiD,按如下步骤进行:2a密钥生成中心KGC根据签名者的身份ID依次计算部分私钥pskID第一个分量和第二分量其中,msk为系统主密钥,r是由密钥生成中心KGC从不超过大素数p的正整数集合Zt^中随机选取的变量,中间变量,分别为系统公共参数params的三个不同的元#是下标集合,ID是签名者的身份,pkiD是签名者的公钥;2b根据步骤2a计算的参数,构造签名者的部分私钥5.根据权利要求1所述的基于Schnorr签名算法的无证书签名方法,其中步骤3所述的生成签名L按如下步骤进行:3a签名者依次计算签名δ的第一个分量,第二个分量和第三个分i其中,k、ri是签名者从不超过大素数p的正整数集合Zt^中随机选取两个变量,分别为签名者的部分私钥pskiD中的第一个分量和第二个分量是中间变量是中间变量,H1是定义域为值域为Zt^的哈希函数,H3是定义域为{0,1ΓXG13,值域为Zt^的哈希函数,m是待签名消息,ID是签名者的身份分别是签名者的公钥pkID中的第一个分量和第二个分量,SkIDS签名者的秘密信I:当输入gk为奇数时b=l,否贝为步骤3计算出的中间变量,U’、Ui、g、g2分别为系统公共参数params中不同的元素;3b根据步骤3a计算的参数,构造签

百度查询: 西安电子科技大学 基于Schnorr签名算法的无证书签名方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。