【技术实现步骤摘要】
一种SM9签名私钥生成和数字签名方法及系统和装置
本专利技术属于密码
,特别是一种基于双线映射的具有抗抵赖能力的SM9签名私钥生成方法和数字签名方法及系统和装置。
技术介绍
基于标识的密码(IdentityBasedCryptography,IBC)与采用数字证书技术的PKI(PublicKeyInfrastructure)相比,由于省去了获取私钥拥有者的公钥数字证书这一麻烦环节,技术实现简单,目前日益受到人们的重视,具有广阔的应用前景。基于标识的密码,既可以用于数据加密(称为IdentityBasedEncryption,IBE),也可以用于数字签名(称为IdentityBasedSignature,IBS)。目前基于标识的密码算法大多是采用基于双线性映射(bilinearmapping,也称配对运算,Pairing)的算法,其中的双线性映射(配对运算)为:e:G1×G2→GT时,其中G1、G2(配对或双线性映射的群)是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(SM9规范中使用G1、G2、GT的阶是大写字母N),即若P、Q、R分别为G1、G2中的元,则e(P,Q)为GT中的元,且:e(P+R,Q)=e(P,Q)e(R,Q),e(P,Q+R)=e(P,Q)e(P,R),e([a]P,[b]Q)=e(P,Q)ab。这里a、b是[0,n-1]中的一个整数,[a]P、[b]Q表示点的P、Q的倍加或数乘。SM9是国家密码管理局颁布的一种基于双 ...
【技术保护点】
1.一种SM9签名私钥生成方法,其特征是:/n所述SM9签名私钥生成方法涉及双线性映射e:G
【技术特征摘要】
1.一种SM9签名私钥生成方法,其特征是:
所述SM9签名私钥生成方法涉及双线性映射e:G1×G2→GT;群G1的生成元为P1,群G2的生成元为P2;群G1、G2、GT的阶为素数n;
所述SM9签名私钥生成方法涉及服务端的标识私钥生成服务器和用户端的标识私钥生成客户端;
所述标识私钥生成服务器有[1,n-1]内的系统主密钥sm;sm有对应的系统主公钥Ppub=[sm]P2,有对应的系统辅助公钥PFpub=[sm]P1;
所述标识私钥生成客户端有[1,n-1]内的用户主密钥sU,有群G1中的元PU1=[sU]P1,有群G2中的元PU2f=[(sU)-1]P2,其中(sU)-1是sU的模n乘法逆;
所述用户端的标识私钥生成客户端和服务端的标识私钥生成服务器在不暴露各自主密钥的情况下以s=(sm+sU)modn为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,通过交互协同生成群G2中的元PU2=[(sm+sU)-1]Ppub,其中(sm+sU)-1为sm+sU的模n乘法逆;
在标识私钥dA的生成过程中服务端的系统无法得到最终的dA。
2.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA后,标识私钥生成客户端和标识私钥生成服务器通过数字签名或配对运算检查确定dA是否是用户标识所对应的用于签名的SM9标识私钥,若不是,则报错,若是,则完成标识私钥dA的协同生成。
3.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
所述用户标识包括:不包含任何限定信息的用户原始标识,或者包含限定信息的受限定的用户标识。
4.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2的过程中因出现(sm+sU)modn=0或(hID+sm+sU)modn=0的情况而导致系统主密钥sm暴露的一种方法如下,其中hID=H1(IDA||hid,n),IDA为用户标识:
在协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(sm+sU0+sU1)modn为主密钥,在不暴露各自秘密的情况下,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元:
PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,
其中sm、sU0为标识私钥生成服务器的秘密,sU1为标识私钥生成客户端的秘密,(sm+sU0+sU1)-1为sm+sU0+sU1的模n乘法逆,(sU0+sU1)-1为sU0+sU1的模n乘法逆;
在协同生成dA、PU1、PU2f和PU2的过程中若检查发现dA为零元或(sm+sU0+sU1)modn=0或(hID+sm+sU0+sU1)modn=0或(sU0+sU1)modn=0,则标识私钥生成服务器重新在[1,n-1]内随机选择一个整数sU0,标识私钥生成客户端重新在[1,n-1]内随机选择一个整数sU1,标识私钥生成客户端和标识私钥生成服务器重新以s=(sm+sU0+sU1)modn为主密钥,通过交互协同生成用户标识所对应的用于签名的SM9标识私钥dA,重新协同生成群G1中的元PU1=[(sU0+sU1)]P1以及群G2中的元PU2f=[(sU0+sU1)-1]P2、PU2=[(sm+sU0+sU1)-1]Ppub,直到dA不为零元且(sm+sU0+sU1)modn不为0且(hID+sm+sU0+sU1)modn不为0且(sU0+sU1)modn不为0;
协同生成dA、PU1、PU2f和PU2后,(sU0+sU1)modn对应前述用户主密钥sU。
5.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
避免协同生成用户标识所对应的用于签名的SM9标识私钥dA和PU2的过程中因出现(sm+sU)modn=0或(hID+sm+sU)modn=0的情况而导致系统主密钥sm暴露的一种方法如下,其中hID=H1(IDA||hid,n),IDA为用户标识:
在协同生成用户标识所对应的标识私钥dA和PU2时,服务端的标识私钥生成服务器在[1,n-1]内随机选择一个整数sU0,用户端的标识私钥生成客户端在[1,n-1]内随机选择一个整数sU1;
所述标识私钥生成客户端和标识私钥生成服务器以s=(...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。