【技术实现步骤摘要】
增强安全的SM9数字签名协同生成方法及系统
本专利技术属于信息安全
,特别是增强安全的SM9数字签名协同生成方法及系统。
技术介绍
SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法,其中的双线性映射(配对运算)为:e:G1×G2→GT时,其中G1、G2是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(注:在SM9规范中,G1、G2、GT的阶用的是大写字母N,本专利申请采用小写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(aP,bQ)=e(P,Q)ab。基于SM9密码算法能实现基于标识的数字签名、密钥交换及数据加密。在SM9密码算法中,使用用户的SM9私钥dA针对消息M生成数字签名的过程如下:计算得到w=g^r,这里符号^表示幂运算(g的r次幂),r是在[1,n-1]区间内随机选择的整数,n是SM9密码算法的群G1、G2、GT的阶,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);然后,计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶(参见SM9规范);若r≠h,计算S=[r-h]dA,则(h,S)为生成的数字签名;若r=h,则重新选择r,重新计算w、h,直到r≠h。针对一些特殊的需求,比如,为了保证非硬件环境下用户私钥使用 ...
【技术保护点】
1.一种增强安全的SM9数字签名协同生成方法,其特征是:所述方法涉及两个分别标号为第1号和第2号的装置;用户的身份标识IDA所对应的SM9标识私钥dA被分成了两份,分别是dA1、dA2,且满足关系dA1+dA2=dA;第1号装置保存有秘密dA1,第2号装置保存有[1,n‑1]区间内的整数秘密c,其中n为SM9密码算法中群G1、G2、GT的阶;两个装置都不保存有dA;在初始化阶段计算有:PB=[b]dA,其中b是[1,n‑1]中的第1号、第2号装置都没有保存的整数秘密;PA2=[c
【技术特征摘要】
1.一种增强安全的SM9数字签名协同生成方法,其特征是:所述方法涉及两个分别标号为第1号和第2号的装置;用户的身份标识IDA所对应的SM9标识私钥dA被分成了两份,分别是dA1、dA2,且满足关系dA1+dA2=dA;第1号装置保存有秘密dA1,第2号装置保存有[1,n-1]区间内的整数秘密c,其中n为SM9密码算法中群G1、G2、GT的阶;两个装置都不保存有dA;在初始化阶段计算有:PB=[b]dA,其中b是[1,n-1]中的第1号、第2号装置都没有保存的整数秘密;PA2=[c-1]dA2,其中c-1是c的模n乘法逆;gB=g^b,其中,符号^表示针对符号^前面的元素进行幂运算,符号^后面的元素是幂运算的次数,g=e(P1,Ppub),其中P1为G1中的生成元,Ppub为主公钥;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按如下方式进行数字签名的生成:首先,两个装置通过交互计算得到w=gB^(r1r2),其中r1是第1号装置在[1,n-1]区间内随机选择的整数,r2是第2号装置在[1,n-1]区间内随机选择的整数;然后,计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并,n为G1、G2、GT的阶;检查w与g^h是否相等,若w=g^h,则两个装置重新进行w的计算,直到w≠g^h;第1号装置计算S1=[(r1)-1]PA2或S1=[(r1)-1h]PA2,将S1发送给第2号装置;第2号装置接收到S1后,按如下方式计算S2:若S1的计算式是S1=[(r1)-1]PA2,则S2=[r2]PB+[-hc]S1;若S1的计算式是S1=[(r1)-1h]PA2,则S2=[r2]PB+[-c]S1;第2号装置将S2发送给第1号装置;接收到S2后,第1号装置检查S2是否为零元,若S2为零元,则第1号装置报错,中止计算或两个装置重新开始计算,否则,第1号装置计算S=[r1]S2+[-h]dA1;则(h,S)为生成的针对消息M的数字签名。2.根据权利要求1所述的增强安全的SM9数字签名协同生成方法,其特征是:将用户的身份标识IDA所对应的SM9标识私钥dA分成dA1、dA2的方法包括:知道dA的装置在[1,n-1]中随机选择两个整数c1、c2且(c1+c2)modn≠0,然后计算dA1=[c1(c1+c2)-1]dA,dA2=[c2(c1+c2)-1]dA,其中(c1+c2)-1是(c1+c2)的模n乘法逆,则dA1、dA2为所求;或者,知道dA的装置在[2,n-1]中随机选择一个整数t,然后计算dA1=[t]dA,dA2=dA-dA1,则dA1、dA2为所求;或者,知道dA的装置在[1,n-1]中随机选择一个整数t,然后计算dA1=[t]P1,dA2=dA-dA1,其中P1是SM9双线性映射中的群G1的生成元;若dA2不是零元,则dA1、dA2为所求,若dA2是零元,则重新选择t,重新计算dA1、dA2,直到dA2不是零元;所述知道dA的装置是第1号装置、第2号装置中的一个装置,或者两个装置之外的一个装置。3.根据权利要求1所述的增强安全的SM9数字签名协同生成方法,其特征是:两个装置按如下方式计算得到w=gB^(r1r2):第2号装置计算g2=gB^r2,将g2发送第1号装置;第1号装置计算w=g2^r1;或者,第1号装置计算g1=gB^r1,将g1发送第2号装置;第2号装置计算w=g1^r2,之后将w发送第1号装置。4.根据权利要求1所述的增强安全的SM9数字签名协同生成方法,其特征是:若在计算得到S之前,未检查w与g^h是否相等,则在计算得到S后,若检查发现S为零元,则两个装置重新进行数字签名的生成。5.一种基于权利要求1-4中任一项所述的增强安全的SM9数字签名协同生成方法的SM9数字签名协同生成系统,其特征是:所述系统包括两个分别标号为第1号、第2号的装置;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,两个装置按所述SM9数字...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。