【技术实现步骤摘要】
签名制作数据安全受控的SM9数字签名生成方法及系统
[0001]本专利技术属于信息安全
,特别是签名制作数据安全受控的SM9数字签名生成方法及系统。
技术介绍
[0002]SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法,其中的双线性映射(配对运算)为:
[0003]e:G1×
G2→
G
T
,其中G1、G2是加法循环群,G
T
是一个乘法循环群,G1、G2、G
T
的阶是素数n(注:在SM9规范中,G1、G2、G
T
的阶用的是大写字母N,本专利申请采用小写字母n),即若P、Q、R分别为G1、G2中的元,则e(P,Q)为G
T
中的元,且:
[0004]e(P+R,Q)=e(P,Q)e(R,Q),
[0005]e(P,Q+R)=e(P,Q)e(P,R),
[0006]e(aP,bQ)=e(P,Q)
ab
。
[0007]基于SM9密码算法能实现基于标识的数字签名、密钥交换及数据加密。在SM9密码算法中,使用用户的SM9私钥d
A
针对消息M生成数字签名的过程如下:
[0008]计算得到w=g^r,这里符号^表示幂运算(g的r次幂),r是在[1,n
‑
1]区间内随机选择的整数,n是SM9密码算法的群G1、G2、G
T
的阶,g=e(P1,P
pub
),P1为G ...
【技术保护点】
【技术特征摘要】
1.一种签名制作数据安全受控的SM9数字签名生成方法,其特征是:签名装置有非秘密P
A
=[c
‑1]d
A
,有秘密c
A
=E(c),其中d
A
为用户的SM9签名私钥,c为[1,n
‑
1]内的签名装置未保存的秘密,c
‑1为c的模n乘法逆,n为SM9双线性映射群G1、G2、G
T
的阶,n为素数,E(
·
)是采用同态加密算法的加密运算;签名装置有非秘密g
c
=g^(c
‑1),其中,^表示幂运算,g=e(P1,P
pub
),P1为G1中的生成元,P
pub
为主公钥;所述签名装置是签名者即SM9签名私钥d
A
的拥有者的计算装置;所述同态加密算法为加法同态加密算法或全同态加密算法;签名辅助系统有与同态加密算法的加密运算E(
·
)所采用的公钥对应的解密运算的私钥,或者与同态加密算法的加密运算E(
·
)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,其中签名辅助系统的密钥包括对称密钥或公钥;所述签名辅助系统是辅助、协助签名装置完成数字签名生成的计算装置或系统;若与同态加密算法的加密运算E(
·
)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,则签名装置还有被加密的与同态加密算法的加密运算E(
·
)所采用的公钥对应的解密运算的私钥的密文d
E
;当需要使用用户的SM9签名私钥d
A
针对消息M进行数字签名时,签名装置和签名辅助系统按如下方式生成数字签名:签名装置在[1,n
‑
1]区间内随机选择一个整数r1;签名辅助系统在[1,n
‑
1]区间内随机选择一个整数r2;签名装置和签名辅助系统在不暴露各自秘密r1、r2的情况下完成如下计算:签名装置在确保签名辅助系统不重新选择r2的情况下,利用g、g
c
,通过与签名辅助系统交互计算得到w=g^(b1r1+b2r2),其中b1=1或c
‑1,b2=1或c
‑1,而b2=1仅在E(
·
)对应的同态加密算法是全同态加密算法时适用,b1、b2用于选择w的计算式;签名辅助系统在确保签名装置不重新选择r1的情况下,利用g、g
c
,通过与签名装置交互计算得到w
f
=g^(b1r1+b2r2);签名装置、签名辅助系统分别检查w、w
f
是否为单位元,若w和/或w
f
为单位元,则签名装置、签名辅助系统重新选择r1、r2,重新计算w、w
f
,直到w和w
f
为非单位元;或者,签名装置和签名辅助系统在不暴露各自秘密r1、r2的情况下完成如下计算:签名装置在确保签名辅助系统不重新选择r2的情况下,利用g、g
c
,通过与签名辅助系统交互计算得到w=g^(br1r2),其中b=1或c
‑1,b用于选择w的计算式;签名辅助系统在确保签名装置不重新选择r1的情况下,利用g、g
c
,通过与签名装置交互计算得到w
f
=g^(br1r2);若b=1,则按w=g^(br1r2)、w
f
=g^(br1r2)方式计算w、w
f
仅在E(
·
)对应的同态加密算法是全同态加密算法时适用;签名装置利用消息M计算得到h=H2(M||w,n),其中H2为SM9中规定的杂凑函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、G
T
的阶;签名装置检查w与g^h是否相等,若w=g^h,则签名装置和签名辅助系统重新选择r1、r2,重新计算w、w
f
,直到w≠g^h;签名装置按如下方式之一计算s1:
s1计算方式一:w按计算式w=g^(b1r1+b2r2)计算得到且b2=c
‑1;签名装置利用h、c
A
、r1通过同态加密算法计算得到s1=E(r1b1c
‑
hc(mod n));s1计算方式二:w按计算式w=g^(b1r1+b2r2)计算得到,且b2=1时E(
·
)对应的同态加密算法是全同态加密算法;签名辅助系统计算c2=E(r2),将c2发送给签名装置;签名装置利用h、c
A
、r1、c2通过同态加密算法计算得到s1=E(r1b1c+r2b2c
‑
hc(mod n));s1计算方式三:w按计算式w=g^(br1r2)计算得到,且b=1时E(
·
)对应的同态加密算法是全同态加密算法;签名辅助系统计算c2=E(r2),将c2发送给签名装置;签名装置利用r、c
A
、r1、c2通过同态加密算法计算得到s1=E(r1r2bc
‑
hc(mod n));签名装置将h、P
A
、s1、ID
A
或h
ID
发送给签名辅助系统,其中,ID
A
是用户的标识,h
ID
=H1(ID
A
||hid,n);若与同态加密算法的加密运算E(
·
)所采用的公钥对应的解密运算的私钥被签名辅助系统的密钥加密,则签名装置还将d
E
发送给签名辅助系统,而签名辅助系统解密d
E
得到与同态加密算法的加密运算E(
·
)所采用的公钥对应的解密运算的私钥;对于s1计算方式一,签名装置和签名辅助系统按如下方式计算s:签名辅助系统解密得到s1的明文s
12
,计算s2=(s
12
+r2)mod n,S=[s2]P
A
,然后签名辅助系统利用w
f
验证S是否是使用r1、r2、h、以及ID
A
或h
ID
对应的私钥d
A
按SM9数字签名的计算方式计算得到,若验证失败,则转入出错处理,若验证通过,则签名辅助系统将S返回给签名装置;对于s1计算方式二、方式三,签名装置和签名辅助系统按如下方式计算s:签名辅助系统解密得到s1的明文s
12
,计算s2=s
12 mod n,S=[s2]P
A
,然后签名辅助系统利用w
f
验证S是否是使用r1、r2、h、以及ID
A
或h
ID
对应的私钥d
A
按SM9数字签名的计算方式计算得到,若验证失败,则转入出错处理,若验证通过,则签名辅助系统将S返回给签名装置;签名装置利用w验证S是否是使用r1、r2、h、以及ID
A
或h
ID
对应的私钥d
A
按SM9数字签名的计算方式计算得到,若验证通过,则(h,S)为消息M的数字签名,否则,转入出错处理;在以上计算式中,a(mod n),其中a为一个整数,表示与a模n同余的数;所述签名辅助系统在辅助、协助签名装置完成数字签名的生成之前,先鉴别确认使用签名装置的用户即签名者是否是ID
A
或h
ID
的拥有者;所述签名装置即签名者拥有的计算装置是具有计算能力、包含软硬件的装置;所述签名装置通过其内实施的密码模块、密码程序实施以上所述数字签名计算步骤,实施SM9数字签名功能。2.根据权利要求1所述的签名制作数据安全受控的SM9数字签名生成方法,其特征是:对于以上所述签名制作数据安全受控的SM9数字签名生成方法,签名装置和签名辅助系统在不暴露自己的秘密r1、r2和确保对方不重新选择r1、r2的情况下,通过交互计算得到w=g^(b1r1+b2r2),w
f
=g^(b1r1+b2r2)的一种方法如下:
F(
·
)定义为:F(1)=g,F(c
‑1)=g
c
;签名装置计算g1=F(b1)^r1,其中b1=1...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。