一种基于SM2的无证书协同签名方法技术

技术编号:36810788 阅读:13 留言:0更新日期:2023-03-09 00:43
本发明专利技术公开了一种基于SM2的无证书协同签名方法,包括1:所述无证密钥生成中心生成系统主私钥s和系统主公钥P

【技术实现步骤摘要】
一种基于SM2的无证书协同签名方法


[0001]本专利技术涉及信息安全
,具体地说,涉及一种基于SM2的无证书协同签名方法。

技术介绍

[0002]目前公钥密码体系主要分为三种:基于证书的公钥密码体系/基于身份的公钥密码体系/无证书的公钥密码体系。
[0003]在基于证书的公钥密码体系中,采用证书机制实现用户的身份和用户的密钥之间的安全对应,然而该体系需要复杂的证书管理机制。
[0004]在基于身份的公钥密码体系中,用户的标识能够直接作为用户的公钥,极大地简化了密钥系统管理的复杂性。然而该体系具有天然的密码委托功能,密钥生成中心拥有系统所有用户的标识私钥,包括签名私钥,这与电子签名法中要求的签名私钥由签名用户唯一拥有相悖。
[0005]在无证书的公钥密码体系中用户私钥由两个秘密因素决定:一个是从密钥生成中心中提取的与用户身份相关的密钥,另一个是由用户自己生成的密钥,从一个秘密元素不能计算另一个。因此,无证书公钥密码体系解决了基于身份的公钥密码体系的密钥托管问题,并且具有基于身份的公钥密码体系极大地简化了密钥系统管理的复杂性的优点。
[0006]现有的无证书公钥密码体系通常仅由签名用户持有完整的签名私钥,然而不具备硬件加密锁的终端本身的安全防护能力较差,无法对密钥进行有效的防护。因此,在私钥的安全性方面,仅由签名用户持有完整的签名私钥在一定程度上影响了网络业务的安全性。

技术实现思路

[0007]针对现有技术的不足,本专利技术旨在提供一种基于SM2的无证书协同签名方法,以解决现有技术中私钥安全性不高的问题,具体的技术方案如下:
[0008]一种基于SM2的无证书协同签名方法,其特征在于:包括签名方A、验签端B、无证书密钥生成中心和协作服务端,具体包括以下步骤:
[0009]S1:所述无证书密钥生成中心生成系统主私钥s和系统主公钥P
KGG
,并公开系统主公钥P
KGC

[0010]S2:签名方生成并存储自身的第一部分私钥d
A1
并生成第一部分公钥P
A1
,无证书密钥生成中心根据接收的签名方的第一部分公钥P
A1
和用户标识ID
A
生成第二部分私钥d
A2
和签名方的公钥P
A
,由协作服务端存储第二部分私钥d
A2

[0011]S3:签名方A使用第一部分私钥d
A1
与协作服务端的第二部分私钥d
A2
进行协同签名操作;
[0012]S4:验签端B使用签名方A的公钥P
A
与系统主公钥P
KGC
进行验签操作。
[0013]进一步地:所述签名方A、验签端B、无证书密钥生成中心和协作服务端共享SM2算法的椭圆曲线参数E(F
p
),G,q,其中,椭圆曲线E为定义在有限域F
p
上的椭圆曲线,q为满足安
全要求生成元的阶,G为椭圆曲线E上q阶的基点。
[0014]进一步地:所述无证书密钥生成中心生成系统主私钥s的方法包括:无证书密钥生成中心产生一个位于[1,q

1]之间的随机数,将产生的随机数作为主私钥s。
[0015]进一步地:无证书密钥生成中心生成系统主公钥P
KGC
=[s]G。
[0016]进一步地:签名方A生成第一部分私钥d
A1
的方法包括:签名方A产生一个位于[1,q

1]之间的随机数,将产生的随机数作为d
A1

[0017]进一步地:签名方A生成第一部分公钥P
A1
的方法包括:计算P
A1
=[d
A1
]G,并将用户标识ID
A
和P
A1
发送给所述无证书密钥生成中心。
[0018]进一步地:无证书密钥生成中心根据P
A1
和用户标识ID
A
生成第二部分私钥d
A2
和签名方A的公钥P
A
的方法包括:依据随机算法产生随机数r
A
,根据P
A1
生成用户公钥P
A
=P
A1
+[r
A
]G,根据用户公钥P
A
,系统主私钥s生成第二部分私钥d
A2
=r
A
+s*H(ID
A
,P
A
),并将第二部分私钥d
A2
和用户标识ID
A
发送给协作服务端。
[0019]进一步地:所述签名方A使用第一部分私钥d
A1
与协作服务端的第二部分私钥d
A2
进行协同签名操作的方法包括:
[0020]签名方A发送用户标识ID
A
请求所述协作服务端进行协同签名;
[0021]协作服务端生成第二随机数t2,并生成第二椭圆曲线点T2=[t2]G,发送所述第二椭圆曲线点T2至签名方A;
[0022]签名方A生成第一随机数t1,并生成第一椭圆曲线点T1=[t1]G,依据所述第二椭圆曲线点T2生成椭圆曲线点T=T1+T2;
[0023]签名方A依据签名消息m,用户公钥P
A
和椭圆曲线点T生成哈希值v=H(m,T,P
A
),发送所述哈希值v至协作服务端;
[0024]协作服务端依据接收的所述哈希值v,第二部分私钥d
A2
和第二随机数t2生成第二部分数字签名u2=t2+d
A2
*v,发送所述部分数字签名u2至签名方A;
[0025]所述签名方A依据所述第一随机数t1,第一部分私钥d
A1
和所述哈希值v生成一部分数字签名u1=t1+d
A1
*v;
[0026]所述签名方A依据接收的所述第一部分数字签名u1和所述第二部分数字签名u2以及所述哈希值v,生成完整签名u=u1+u2,并将数字签名(u,v)发送至验签端B。
[0027]进一步地:所述验签端B使用签名方A的公钥P
A
与系统主公钥P
KGC
进行验签操作的方法包括:
[0028]所述验签端B依据用户公钥P
A
,用户标识ID
A
生成哈希值h=H(ID
A
,P
A
);
[0029]所述验签端B依据接受的数字签名(u,v),所述哈希值h,用户公钥P
A
和系统主公钥P
KGC
生成椭圆曲线点T

=[u]G

[v]P
A

[h*v]P
KGC...

【技术保护点】

【技术特征摘要】
1.一种基于SM2的无证书协同签名方法,其特征在于:包括签名方A、验签端B、无证书密钥生成中心和协作服务端,具体包括以下步骤:S1:所述无证书密钥生成中心生成系统主私钥s和系统主公钥P
KGC
,并公开系统主公钥P
KGC
;S2:签名方生成并存储自身的第一部分私钥d
A1
并生成第一部分公钥P
A1
,无证书密钥生成中心根据接收的签名方A的第一部分公钥P
A1
和用户标识ID
A
生成第二部分私钥d
A2
和签名方的公钥P
A
,由协作服务端存储第二部分私钥d
A2
;S3:签名方A使用第一部分私钥d
A1
与协作服务端的第二部分私钥d
A2
进行协同签名操作;S4:验签端B使用签名方A的公钥P
A
与系统主公钥P
KGC
进行验签操作。2.如权利要求1所述的基于SM2的无证书协同签名方法,其特征在于:所述签名方A、验签端B、无证书密钥生成中心和协作服务端共享SM2算法的椭圆曲线参数E(F
p
),G,q,其中,椭圆曲线E为定义在有限域F
p
上的椭圆曲线,q为满足安全要求生成元的阶,G为椭圆曲线E上q阶的基点。3.如权利要求2所述的基于SM2的无证书协同签名方法,其特征在于:所述无证书密钥生成中心生成系统主私钥s的方法包括:无证书密钥生成中心产生一个位于[1,q

1]之间的随机数,将产生的随机数作为主私钥s。4.如权利要求2所述的基于SM2的无证书协同签名方法,其特征在于:无证书密钥生成中心生成系统主公钥P
KGC
=[s]G。5.如权利要求2所述的基于SM2的无证书协同签名方法,其特征在于:签名方A生成第一部分私钥d
A1
的方法包括:签名方A产生一个位于[1,q

1]之间的随机数,将产生的随机数作为d
A1
。6.如权利要求5所述的基于SM2的无证书协同签名方法,其特征在于:签名方A生成第一部分公钥P
A1
的方法包括:计算P
A1
=[d
A1
]G,并将用户标识ID
A
和P
A1
发送给所述无证书密钥生成中心。7.如权利要求6所述的基于SM2的无证书协同签名方法,其特征在于:无证书密钥生成中心根据P
A1
和用户标识ID
A
生成第二部分私钥d
A2
和签名方A的公钥P
A
的方法包括:依据随机算法产生随机数r
A
,根据P
A1
生成用户公钥P
A...

【专利技术属性】
技术研发人员:王凯张云兵赵朝晖
申请(专利权)人:商密广州信息科技有限公司
类型:发明
国别省市:

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

1