签名密钥生成方法及相关方法、计算机设备和存储介质技术

技术编号:36191539 阅读:14 留言:0更新日期:2022-12-31 21:08
本发明专利技术提供一种签名密钥生成方法,还提供相应的签名密钥验证方法、数字签名生成方法、数字签名验证方法、计算机设备和计算机可读存储介质,所述签名密钥生成方法包括步骤:A、设定系统参数;B、第一通信方和第二通信方合作生成签名私钥,得到所述第一通信方的子私钥D1和所述第二通信方的子私钥D2,并生成完整公钥P

【技术实现步骤摘要】
签名密钥生成方法及相关方法、计算机设备和存储介质


[0001]本专利技术属于信息安全
,特别涉及一种签名密钥生成方法及相应的签名密钥验证方法、数字签名生成方法、数字签名验证方法、计算机设备和计算机可读存储介质

技术介绍

[0002]SM2密码算法是国家密码管理局发布的一种公钥密码算法。传统的基于证书的公钥基础设施(Public Key Infrastructure,PKI)体系,是使用数字证书,并由可信第三方将签名人的公钥、用户身份信息和可辨别标识进行关联的系统。
[0003]现有技术中,曾提出以一种基于无证书的系统将签名人的公钥、身份信息和可辨别标识进行关联的方案(即第一技术方案)。在该方案中,SM2私钥由密钥生成中心和用户交互,并根据密钥生成中心私钥、用户的可辨别标识生成。SM2私钥在用户的密码设备或密码模块中生成。SM2公钥由声明公钥,密钥生成中心公钥计算。该方案中,SM2私钥是由用户独自掌控,因而在云计算、移动互联网等环境下,不方便对SM2私钥进行存储和使用。
[0004]此外,曾有技术人员提出一种两个通信方分别存储部分SM2私钥、两方联合进行密钥生成的签名和解密方法(即第二技术方案)。该方法中,用户的SM2私钥和公钥由两个通信方联合计算,并由两个通信方分别存储部分SM2私钥。但该方法的密钥生成方法不适应于所述第一技术方案中的密钥生成方法。无法解决在无证书系统下SM2私钥不能够在云计算、移动互联网等环境下的安全存储和使用管理的问题。

技术实现思路

[0005]为了解决上述技术问题,本专利技术提出一种签名密钥生成方法。
[0006]本专利技术提供的签名密钥生成方法,包括步骤:
[0007]A、设定系统参数;
[0008]B、第一通信方和第二通信方合作生成签名私钥,得到所述第一通信方的子私钥D1和所述第二通信方的子私钥D2,并生成完整公钥P
A

[0009]其中,
[0010]所述第一通信方、第二通信方和密钥生成中心共享SM2算法的椭圆曲线参数E(Fq)、G和n,E(Fq)为定义在有限域Fq上的椭圆曲线,G表示E上阶为n的基点,n为素数。
[0011]进一步,
[0012]所述步骤B包括下列步骤:
[0013]所述第一通信方向所述第二通信方发起私钥申请请求;
[0014]所述第二通信方产生一个位于[1,n

1]之间的随机数d
s
,并计算U
s
=[d
s

G,所述第二通信方将U
s
发送给所述第一通信方,所述签名密钥生成方法的各计算式中,方括号[]的含义代表椭圆曲线上的倍点运算;
[0015]所述第一通信方产生一个位于[1,n

1]之间的随机数r
A
,并计算U
A
=[r
A
‑1]×
U
s

G;
[0016]所述第一通信方将U
A
和标识ID
A
提交所述密钥生成中心;
[0017]B5、所述密钥生成中心计算t
A
和声明公钥W
A
,并将t
A
和声明公钥W
A
发送给所述第一通信方;
[0018]所述第一通信方计算t
s
≡(r
A
×
t
A
)mod n,并将t
s
发送给所述第二通信方,所述第一通信方设置自身的子私钥D1=r
A
,x mod y代表x对y的求余运算;
[0019]所述第二通信方计算自身的子私钥D2=(t
s
+d
s
)
‑1mod n;
[0020]B8、所述第一通信方保存所述声明公钥W
A
,并选择根据所述声明公钥W
A
、标识ID
A
、系统主公钥P
Pub
生成所述完整公钥P
A

[0021]进一步,
[0022]在所述步骤B5中,
[0023]所述密钥生成中心计算t
A
和所述声明公钥W
A
的过程包括如下步骤:
[0024]B51、所述密钥生成中心计算H
A
=H
256
(ENTL
A
‖ID
A
‖x
Pub
‖y
Pub
),其中ENTL
A
为2个字节表示的所述标识ID
A
的字节长度,||表示将数据的字节串合并,x
Pub
,y
Pub
为所述密钥生成中心的系统主公钥P
Pub
的坐标,H
256
为输出为256比特的杂凑函数;
[0025]B52、所述密钥生成中心产生随机数w∈[1,n

1];
[0026]B53、所述密钥生成中心计算所述声明公钥W
A
=[w]×
G+U
A

[0027]B54、所述密钥生成中心将所述声明公钥W
A
的坐标x
W
、y
W
的数据类型转换为比特串,计算λ=H
256
(x
W
‖y
W
‖H
A
)mod n,将λ的数据类型转换为整数;
[0028]B55、所述密钥生成中心计算t
A
=(w+λ
×
ms)mod n。
[0029]进一步,
[0030]在所述步骤B8中,包括下列步骤:
[0031]按照所述步骤B51

B54计算得到λ;
[0032]计算P
A
=W
A
+[λ]×
P
Pub

[0033]进一步,
[0034]所述第一通信方的完整私钥为d
A
=(t
A
+d
S
×
r
A
‑1‑
1)mod n;
[0035]所述完整公钥P
A
=W
A
+[λ]×
P
Pub
=[t
A
+d
S
×
r
A
‑1‑
1]×
G;
[0036]所述第一通信方和第二通信方的子私钥D1和D2满足关系:
[0037]D1
×
D2=r
A
×
(t
s
+d
s
)
‑本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.签名密钥生成方法,其特征在于,包括步骤:A、设定系统参数;B、第一通信方和第二通信方合作生成签名私钥,得到所述第一通信方的子私钥D1和所述第二通信方的子私钥D2,并生成完整公钥P
A
,其中,所述第一通信方、第二通信方和密钥生成中心共享SM2算法的椭圆曲线参数E(Fq)、G和n,E(Fq)为定义在有限域Fq上的椭圆曲线,G表示E上阶为n的基点,n为素数。2.如权利要求1所述的签名密钥生成方法,其特征在于,所述步骤B包括下列步骤:所述第一通信方向所述第二通信方发起私钥申请请求;所述第二通信方产生一个位于[1,n

1]之间的随机数d
s
,并计算U
s
=[d
s
]
×
G,所述第二通信方将U
s
发送给所述第一通信方,所述签名密钥生成方法的各计算式中,方括号[]的含义代表椭圆曲线上的倍点运算;所述第一通信方产生一个位于[1,n

1]之间的随机数r
A
,并计算U
A
=[r
A
‑1]
×
U
s

G;所述第一通信方将U
A
和标识ID
A
提交所述密钥生成中心;B5、所述密钥生成中心计算t
A
和声明公钥W
A
,并将t
A
和声明公钥W
A
发送给所述第一通信方;所述第一通信方计算t
s
≡(r
A
×
t
A
)mod n,并将t
s
发送给所述第二通信方,所述第一通信方设置自身的子私钥D1=r
A
,x mod y代表x对y的求余运算;所述第二通信方计算自身的子私钥D2=(t
s
+d
s
)
‑1mod n;B8、所述第一通信方保存所述声明公钥W
A
,并选择根据所述声明公钥W
A
、标识ID
A
、系统主公钥P
Pub
生成所述完整公钥P
A
。3.如权利要求2所述的签名密钥生成方法,其特征在于,在所述步骤B5中,所述密钥生成中心计算t
A
和所述声明公钥W
A
的过程包括如下步骤:B51、所述密钥生成中心计算H
A
=H
256
(ENTL
A
‖ID
A
‖x
Pub
‖y
Pub
),其中ENTL
A
为2个字节表示的所述标识ID
A
的字节长度,||表示将数据的字节串合并,x
Pub
,y
Pub
为所述密钥生成中心的系统主公钥P
Pub
的坐标,H
256
为输出为256比特的杂凑函数;B52、所述密钥生成中心产生随机数w∈[1,n

1];B53、所述密钥生成中心计算所述声明公钥W
A
=[w]
×
G+U
A
;B54、所述密钥生成中心将所述声明公钥W
A
的坐标x
W
、y
W
的数据类型转换为比特串,计算λ=H
256
(x
W
‖y
W
‖H
A
)mod n,将λ的数据类型转换为整数;B55、所述密钥生成中心计算t
A
=(w+λ
×
ms)mod n。4.如权利要求3所述的签名密钥生成方法,其特征在于,在所述步骤B8中,包括下列步骤:按照所述步骤B51

B54计算得到λ;计算P
A
=W
A
+[λ]
×
P
Pub
。5.如权利要求4所述的签名密钥生成方法,其特征在于,所述第一通信方的完整私钥为d
A
=(...

【专利技术属性】
技术研发人员:封维端袁峰张立圆
申请(专利权)人:北京无字天书科技有限公司
类型:发明
国别省市:

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

1