一种签名方法、系统、设备及可读存储介质技术方案

技术编号:28059460 阅读:17 留言:0更新日期:2021-04-14 13:34
本申请公开了一种签名方法、系统、设备及可读存储介质。本申请公开的方法应用于第一通信方,包括:基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方,以使第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;基于第一随机数、第一部分私钥和签名参数生成目标消息的签名;公布签名,以使验证端利用验签公钥验证签名。本申请在避免复杂的证书验证的同时,提高了签名安全性,且适用于多端协同签名的应用场景。相应地,本申请提供的一种签名系统、设备及可读存储介质,也同样具有上述技术效果。上述技术效果。上述技术效果。

【技术实现步骤摘要】
一种签名方法、系统、设备及可读存储介质


[0001]本申请涉及密码算法
,特别涉及一种签名方法、系统、设备及可读存储介质。

技术介绍

[0002]目前,为了避免签名验证过程中复杂的证书验证,可以实现无证书模式的签名算法。利用无证书模式的签名算法生成签名后,验证端无需验证证书,可直接对签名进行验证。其中,在传统的无证书模式的签名算法中,签名私钥由签名者完全掌握,因此一旦签名私钥泄露或者丢失,会导致签名的安全性受到严重威胁。
[0003]因此,在避免复杂的证书验证的同时,如何提高签名安全性,是本领域技术人员需要解决的问题。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种签名方法、系统、设备及可读存储介质,以在避免复杂的证书验证的同时,提高签名安全性。其具体方案如下:
[0005]第一方面,本申请提供了一种签名方法,应用于第一通信方,包括:
[0006]基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方,以使第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;
[0007]基于第一随机数、第一部分私钥和签名参数生成目标消息的签名;
[0008]公布签名,以使验证端利用验签公钥验证签名,验签公钥基于验签参数生成。
[0009]优选地,基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,包括:
[0010]利用第一公式计算目标参数,第一公式为:Q1=[s
A
×
k1]G;
[0011]其中,Q1为目标参数,s
A
为第一部分私钥,k1为第一随机数,G为SM2签名算法中椭圆曲线上的基点。
[0012]优选地,第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,包括:
[0013]第二通信方利用第二公式计算签名参数,第二公式包括:[k2×
s
B
]G+[s
B
]Q1=(r
x
,r
y
),h=h(m)+r
x
,s2=s
B
‑1×
h+k2;
[0014]其中,k2为第二随机数,s
B
为第二部分私钥,Q1为目标参数,G为SM2签名算法中椭圆曲线上的基点,m为目标消息,h和s2为签名参数。
[0015]优选地,基于第一随机数、第一部分私钥和签名参数生成目标消息的签名,包括:
[0016]利用第三公式计算签名,第三公式包括:s
A
‑1×
s2+k1‑
h=s
A
‑1×
s
B
‑1×
(h+s
B
×
k2+s
A
×
s
B
×
k2)

h,k=s
B
×
k2+s
A
×
s
B
×
k2,s
A
‑1×
s
B
‑1=(1+d)
‑1,v=(1+d)
‑1(k+h)

h=(1+d)
‑1(k

h
×
d);
[0017]其中,s
A
为第一部分私钥,s
B
为第二部分私钥,k1为第一随机数,k2为第二随机数,h和s2为签名参数,k为随机数,d为基于SM2签名算法的签名私钥,d=s
A
×
s
B
‑1,v为签名。
[0018]优选地,验签参数的生成过程包括:
[0019]随机选择随机数作为第一通信方私钥,并利用第四公式计算第一通信方公钥,第四公式为:P
A
=[a]G,P
A
为第一通信方公钥,a为第一通信方私钥,G为SM2签名算法中椭圆曲线上的基点;
[0020]将第一通信方身份信息和第一通信方公钥发送至第二通信方,以使第二通信方利用第五公式计算中间参数,并发送中间参数、第二通信方公钥和第二通信方身份信息至密钥生成中心;
[0021]利用第五公式计算中间参数,并发送中间参数、第一通信方公钥和第一通信方身份信息至密钥生成中心;
[0022]其中,第五公式为P
AB
=[ab]G,P
AB
为中间参数,a为第一通信方私钥,b为第二通信方私钥,G为SM2签名算法中椭圆曲线上的基点;
[0023]密钥生成中心随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
[0024]其中,第六公式为MPK=[s]G;第七公式包括:Y=R+P
AB
,X=[k]P
B
+[k
‑1×
t]P
A

[0025]其中,MPK为主公钥,s为主私钥,G为SM2签名算法中椭圆曲线上的基点,Y为第一公钥生成参数,R=[r]G,r为随机数,P
AB
为中间参数,X为第二公钥生成参数,k为随机数,P
B
为第二通信方公钥,P
A
为第一通信方公钥,t=r+e
×
s,e=H(Y,z),z=H(P
A
,A,P
B
,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间;
[0026]其中,验签参数包括:第一公钥生成参数,第二公钥生成参数,签名私钥生成时间,签名私钥有效时间,主公钥,第一通信方身份信息、第一通信方公钥,第二通信方身份信息和第二通信方公钥。
[0027]优选地,验签公钥的生成过程包括:
[0028]验证端利用验签公钥生成公式计算验签公钥,验签公钥生成公式为:
[0029]vk=Y+X+e
×
MPK

G;
[0030]其中,vk为验签公钥,Y为第一公钥生成参数,X为第二公钥生成参数,e=H(Y,z),z=H(P
A
,A,P
B
,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间,P
B
为第二通信方公钥,P
A
为第一通信方公钥,MPK为主公钥,G为SM2签名算法中椭圆曲线上的基点。
[0031]优选地,第一部分私钥的生成过程包括:
[0032]接收密钥生成中心发送的第一参数集合本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种签名方法,其特征在于,应用于第一通信方,包括:基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将所述目标参数发送至第二通信方,以使所述第二通信方基于随机选择的第二随机数、所述第二通信方的第二部分私钥、所述目标参数以及所述SM2签名算法生成目标消息的签名参数,将所述签名参数发送至所述第一通信方;基于所述第一随机数、所述第一部分私钥和所述签名参数生成所述目标消息的签名;公布所述签名,以使验证端利用验签公钥验证所述签名,所述验签公钥基于验签参数生成。2.根据权利要求1所述的签名方法,其特征在于,所述基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,包括:利用第一公式计算所述目标参数,所述第一公式为:Q1=[s
A
×
k1]G;其中,Q1为所述目标参数,s
A
为所述第一部分私钥,k1为所述第一随机数,G为所述SM2签名算法中椭圆曲线上的基点。3.根据权利要求1所述的签名方法,其特征在于,所述第二通信方基于随机选择的第二随机数、所述第二通信方的第二部分私钥、所述目标参数以及所述SM2签名算法生成目标消息的签名参数,包括:所述第二通信方利用第二公式计算所述签名参数,所述第二公式包括:[k2×
s
B
]G+[s
B
]Q1=(r
x
,r
y
),h=h(m)+r
x
,s2=s
B
‑1×
h+k2;其中,k2为所述第二随机数,s
B
为所述第二部分私钥,Q1为所述目标参数,G为所述SM2签名算法中椭圆曲线上的基点,m为所述目标消息,h和s2为所述签名参数。4.根据权利要求1所述的签名方法,其特征在于,所述基于所述第一随机数、所述第一部分私钥和所述签名参数生成所述目标消息的签名,包括:利用第三公式计算所述签名,所述第三公式包括:s
A
‑1×
s2+k1‑
h=s
A
‑1×
s
B
‑1×
(h+s
B
×
k2+s
A
×
s
B
×
k2)

h,k=s
B
×
k2+s
A
×
s
B
×
k2,s
A
‑1×
s
B
‑1=(1+d)
‑1,v=(1+d)
‑1(k+h)

h=(1+d)
‑1(k

h
×
d);其中,s
A
为所述第一部分私钥,s
B
为所述第二部分私钥,k1为所述第一随机数,k2为所述第二随机数,h和s2为所述签名参数,k为随机数,d为基于所述SM2签名算法的签名私钥,d=s
A
×
s
B
‑1,v为所述签名。5.根据权利要求1所述的签名方法,其特征在于,所述验签参数的生成过程包括:随机选择随机数作为第一通信方私钥,并利用第四公式计算第一通信方公钥,所述第四公式为:P
A
=[a]G,P
A
为所述第一通信方公钥,a为所述第一通信方私钥,G为所述SM2签名算法中椭圆曲线上的基点;将第一通信方身份信息和所述第一通信方公钥发送至所述第二通信方,以使所述第二通信方利用第五公式计算中间参数,并发送所述中间参数、第二通信方公钥和第二通信方身份信息至所述密钥生成中心;利用所述第五公式计算中间参数,并发送所述中间参数、所述第一通信方公钥和所述第一通信方身份信息至所述密钥生成中心;其中,所述第五公式为P
AB
=[ab]G,P
AB
为所述中间参数,a为所述第一通信方私钥,b为第二通信方私钥,G为所述SM2签名算法中椭圆曲线上的基点;
所述密钥生成中心随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;其中,所述第六公式为MPK=[s]G;所述第七公式包括:Y=R+P
AB
,X=[k]P
B
+[k
‑1×
t]P
A
;其中,MPK为所述主公钥,s为所述主私钥,G为所述SM2签名算法中椭圆曲线上的基点,Y为所述第一公钥生成参数,R=[r]G,r为随机数,P
AB
为所述中间参数,X为所述第二公钥生成参数,k为随机数,P
B
为所述第二通信方公钥,P
A
为所述第一通信方公钥,t=r+e
×
s,e=H(Y,z),z=H(P
A
,A,P
B
,B,MPK,T1,T2),A为所述第一通信方身份信息,B为所述第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间;其中,所述验签参数包括:所述第一公钥生成参数,所述第二公钥生成参数,所述签名私钥生成时间,所述签名私钥有效时间,所述主公钥,所述第一通信方身份信息、所述第一通信方公钥,所述第二通信方身...

【专利技术属性】
技术研发人员:王现方涂彬彬张立廷
申请(专利权)人:成都卫士通信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1