CN112653554B - 一种签名方法、系统、设备及可读存储介质 - Google Patents
一种签名方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112653554B CN112653554B CN202011621184.5A CN202011621184A CN112653554B CN 112653554 B CN112653554 B CN 112653554B CN 202011621184 A CN202011621184 A CN 202011621184A CN 112653554 B CN112653554 B CN 112653554B
- Authority
- CN
- China
- Prior art keywords
- signature
- communication party
- public key
- parameter
- private key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种签名方法、系统、设备及可读存储介质。本申请公开的方法应用于第一通信方,包括:基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方,以使第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;基于第一随机数、第一部分私钥和签名参数生成目标消息的签名;公布签名,以使验证端利用验签公钥验证签名。本申请在避免复杂的证书验证的同时,提高了签名安全性,且适用于多端协同签名的应用场景。相应地,本申请提供的一种签名系统、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及密码算法技术领域,特别涉及一种签名方法、系统、设备及可读存储介质。
背景技术
目前,为了避免签名验证过程中复杂的证书验证,可以实现无证书模式的签名算法。利用无证书模式的签名算法生成签名后,验证端无需验证证书,可直接对签名进行验证。其中,在传统的无证书模式的签名算法中,签名私钥由签名者完全掌握,因此一旦签名私钥泄露或者丢失,会导致签名的安全性受到严重威胁。
因此,在避免复杂的证书验证的同时,如何提高签名安全性,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种签名方法、系统、设备及可读存储介质,以在避免复杂的证书验证的同时,提高签名安全性。其具体方案如下:
第一方面,本申请提供了一种签名方法,应用于第一通信方,包括:
基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方,以使第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;
基于第一随机数、第一部分私钥和签名参数生成目标消息的签名;
公布签名,以使验证端利用验签公钥验证签名,验签公钥基于验签参数生成。
优选地,基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,包括:
利用第一公式计算目标参数,第一公式为:Q1=[sA×k1]G;
其中,Q1为目标参数,sA为第一部分私钥,k1为第一随机数,G为SM2签名算法中椭圆曲线上的基点。
优选地,第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,包括:
第二通信方利用第二公式计算签名参数,第二公式包括:[k2×sB]G+[sB]Q1=(rx,ry),h=h(m)+rx,s2=sB -1×h+k2;
其中,k2为第二随机数,sB为第二部分私钥,Q1为目标参数,G为SM2签名算法中椭圆曲线上的基点,m为目标消息,h和s2为签名参数。
优选地,基于第一随机数、第一部分私钥和签名参数生成目标消息的签名,包括:
利用第三公式计算签名,第三公式包括:sA -1×s2+k1-h=sA -1×sB -1×(h+sB×k2+sA×sB×k2)-h,k=sB×k2+sA×sB×k2,sA -1×sB -1=(1+d)-1,v=(1+d)-1(k+h)-h=(1+d)-1(k-h×d);
其中,sA为第一部分私钥,sB为第二部分私钥,k1为第一随机数,k2为第二随机数,h和s2为签名参数,k为随机数,d为基于SM2签名算法的签名私钥,d=sA×sB -1,v为签名。
优选地,验签参数的生成过程包括:
随机选择随机数作为第一通信方私钥,并利用第四公式计算第一通信方公钥,第四公式为:PA=[a]G,PA为第一通信方公钥,a为第一通信方私钥,G为SM2签名算法中椭圆曲线上的基点;
将第一通信方身份信息和第一通信方公钥发送至第二通信方,以使第二通信方利用第五公式计算中间参数,并发送中间参数、第二通信方公钥和第二通信方身份信息至密钥生成中心;
利用第五公式计算中间参数,并发送中间参数、第一通信方公钥和第一通信方身份信息至密钥生成中心;
其中,第五公式为PAB=[ab]G,PAB为中间参数,a为第一通信方私钥,b为第二通信方私钥,G为SM2签名算法中椭圆曲线上的基点;
密钥生成中心随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
其中,第六公式为MPK=[s]G;第七公式包括:Y=R+PAB,X=[k]PB+[k-1×t]PA;
其中,MPK为主公钥,s为主私钥,G为SM2签名算法中椭圆曲线上的基点,Y为第一公钥生成参数,R=[r]G,r为随机数,PAB为中间参数,X为第二公钥生成参数,k为随机数,PB为第二通信方公钥,PA为第一通信方公钥,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间;
其中,验签参数包括:第一公钥生成参数,第二公钥生成参数,签名私钥生成时间,签名私钥有效时间,主公钥,第一通信方身份信息、第一通信方公钥,第二通信方身份信息和第二通信方公钥。
优选地,验签公钥的生成过程包括:
验证端利用验签公钥生成公式计算验签公钥,验签公钥生成公式为:
vk=Y+X+e×MPK-G;
其中,vk为验签公钥,Y为第一公钥生成参数,X为第二公钥生成参数,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,G为SM2签名算法中椭圆曲线上的基点。
优选地,第一部分私钥的生成过程包括:
接收密钥生成中心发送的第一参数集合,利用第一验证公式验证第一参数集合;若第一验证公式成立,则利用第八公式计算第一部分私钥;
相应的,第二部分私钥的生成过程包括:
第二通信方接收密钥生成中心发送的第二参数集合,利用第一验证公式验证第二参数集合;若第一验证公式成立,则利用第九公式计算第二部分私钥;
其中,第一验证公式包括:[dA×dB]G=Y-PAB+[e]MPK,[v1]PB+[v2]PA=U1+U2+[e’]X;第八公式为:sA=dA+a;第九公式为:sB=dB+b=k-1×t+b;
其中,第一参数集合包括:X、Y、T1、T2、dA、[dB]G、v1、v2、U1、U2;第二参数集合包括:X、Y、T1、T2、dB、[dA]G、v1、v2、U1、U2;
其中,Y为第一公钥生成参数,X为第二公钥生成参数,T1为签名私钥生成时间,T2为签名私钥有效时间,dA=k,dB=k-1×t,k为随机数,G为SM2签名算法中椭圆曲线上的基点,v1=u1+e’×k,v2=u2+e’×k-1×t,e’=H(X,U1,U2,e),U1=[u1]PB,U2=[u2]PA,u1和u2为随机数,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,sA为第一部分私钥,a为第一通信方私钥,sB为第二部分私钥,b为第二通信方私钥。
第二方面,本申请提供了一种签名系统,包括:第一通信方、第二通信方和验证端,其中:
第一通信方,用于基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方;
第二通信方,用于基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;
第一通信方,还用于基于第一随机数、第一部分私钥和签名参数生成目标消息的签名,公布签名;
验证端,用于利用验签公钥验证签名,验签公钥基于验签参数生成。
优选地,还包括:密钥生成中心,密钥生成中心,用于随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
其中,第六公式为MPK=[s]G;第七公式包括:Y=R+PAB,X=[k]PB+[k-1×t]PA;
其中,MPK为主公钥,s为主私钥,G为SM2签名算法中椭圆曲线上的基点,Y为第一公钥生成参数,R=[r]G,r为随机数,PAB为中间参数,X为第二公钥生成参数,k为随机数,PB为第二通信方公钥,PA为第一通信方公钥,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间。
第三方面,本申请提供了一种签名设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序,以实现前述公开的签名方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现前述公开的签名方法。
通过以上方案可知,本申请提供了一种签名方法,应用于第一通信方,包括:基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方,以使第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;基于第一随机数、第一部分私钥和签名参数生成目标消息的签名;公布签名,以使验证端利用验签公钥验证签名,验签公钥基于验签参数生成。
可见,在本申请中,第一通信方和第二通信方联合才能对目标消息进行签名;其中,第一通信方和第二通信方分别存储着签名所用到的部分私钥(即第一部分私钥和第二部分私钥),同时第一通信方和第二通信方均无法获取到对方所存储的部分私钥,因此攻击者在入侵其中任何一方的情况下,都不能伪造签名,从而提高了签名安全性。并且,本申请中的验证端可以基于验签公钥直接验证签名,无需验证证书,因此避免了签名验证过程中复杂的证书验证。可见本申请在避免复杂的证书验证的同时,提高了签名安全性,且适用于多端协同签名的应用场景。
相应地,本申请提供的一种签名系统、设备及可读存储介质,也同样具有上述技术效果。
本申请的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是根据一示例性实施例示出的第一种签名方法流程图;
图2是根据一示例性实施例示出的第二种签名方法流程图;
图3是根据一示例性实施例示出的第三种签名方法流程图;
图4是根据一示例性实施例示出的签名相关参数的生成流程图;
图5是根据一示例性实施例示出的一种签名系统示意图;
图6是根据一示例性实施例示出的一种签名设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,无证书模式的签名算法会导致签名的安全性受到严重威胁。为此,本申请提供了一种签名方案,能够在避免复杂的证书验证的同时,提高了签名安全性。
下面对本申请实施例提供的一种签名方法进行介绍,参见图1所示,在一示例性实施例中,本申请实施例公开了第一种签名方法,应用于第一通信方,包括:
S101、基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方,以使第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方。
需要说明的是,基于第一部分私钥和第二部分私钥可计算获得SM2签名算法的签名私钥,即d=sA×sB -1,d为SM2签名算法的签名私钥,sA为第一部分私钥,sB为第二部分私钥。也就是说,第一部分私钥和第二部分私钥分别为签名私钥的部分私钥,由此可见,第一通信方和第二通信方分别保管着签名私钥的一部分,因此第一通信方和第二通信方需要联合才能对消息进行签名。
S102、基于第一随机数、第一部分私钥和签名参数生成目标消息的签名。
在一种实施方式中,在公布签名之前,先对签名进行判断。如:判断签名是否等于0或某一目标值,若等于,则说明签名无效,此时需要重新生成签名;若不等于,则说明签名有效,此时可以公布签名,以供验证端验证。
S103、公布签名,以使验证端利用验签公钥验证签名,验签公钥基于验签参数生成。
其中,验签参数包括:X、Y、T1、T2、MPK、PA、PB、A、B。Y为第一公钥生成参数,X为第二公钥生成参数,T1为签名私钥生成时间,T2为签名私钥有效时间,MPK为主公钥,A为第一通信方身份信息、PA为第一通信方公钥,B为第二通信方身份信息,PB为第二通信方公钥。任意验证端获得验签参数,就可以基于验签参数生成验签公钥,从而用验签公钥验证签名。其具体验证过程可以参照SM2SM2签名算法的签名验证过程。
可见,在本申请实施例中,第一通信方和第二通信方联合才能对目标消息进行签名;其中,第一通信方和第二通信方分别存储着签名所用到的部分私钥(即第一部分私钥和第二部分私钥),同时第一通信方和第二通信方均无法获取到对方所存储的部分私钥,因此攻击者在入侵其中任何一方的情况下,都不能伪造签名,从而提高了签名安全性。并且,本申请中的验证端可以基于验签公钥直接验证签名,无需验证证书,因此避免了签名验证过程中复杂的证书验证。可见本申请在避免复杂的证书验证的同时,提高了签名安全性,且适用于多端协同签名的应用场景。
参见图2所示,在一示例性实施例中,本申请实施例公开了第二种签名方法,应用于第一通信方,包括:
S201、利用第一公式计算目标参数,将目标参数发送至第二通信方,以使第二通信方利用第二公式计算签名参数,将签名参数发送至第一通信方。
在一种实施方式中,基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,包括:利用第一公式计算目标参数,第一公式为:Q1=[sA×k1]G;其中,Q1为目标参数,sA为第一部分私钥,k1为第一随机数,G为SM2签名算法中椭圆曲线上的基点。
在一种实施方式中,第二通信方基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,包括:第二通信方利用第二公式计算签名参数,第二公式包括:[k2×sB]G+[sB]Q1=(rx,ry),h=h(m)+rx,s2=sB -1×h+k2;其中,k2为第二随机数,sB为第二部分私钥,Q1为目标参数,G为SM2签名算法中椭圆曲线上的基点,m为目标消息,h和s2为签名参数。
S202、利用第三公式计算签名。
在一种实施方式中,基于第一随机数、第一部分私钥和签名参数生成目标消息的签名,包括:利用第三公式计算签名,第三公式包括:sA -1×s2+k1-h=sA -1×sB -1×(h+sB×k2+sA×sB×k2)-h,k=sB×k2+sA×sB×k2,sA -1×sB -1=(1+d)-1,v=(1+d)-1(k+h)-h=(1+d)-1(k-h×d);其中,sA为第一部分私钥,sB为第二部分私钥,k1为第一随机数,k2为第二随机数,h和s2为签名参数,k为随机数,d为SM2签名算法的签名私钥,d=sA×sB -1,v为签名。
S203、公布签名,以使验证端利用验签公钥生成公式计算所述验签公钥,并利用验签公钥验证签名。
第一通信方计算目标参数,第二通信方计算签名参数,而后第一通信方计算签名,使得第一通信方和第二通信方联合对目标消息进行签名,保障了签名的安全性。
需要说明的是,本实施例中的其他实现步骤与上述实施例相同或类似,故本实施例在此不再赘述。
由上可见,本实施例中的第一通信方和第二通信方分别存储着签名所用到的部分私钥,因此第一通信方和第二通信方联合才能对目标消息进行签名;同时,验证端可以基于验签公钥直接验证签名,无需验证证书,因此避免了签名验证过程中复杂的证书验证。可见本申请在避免复杂的证书验证的同时,提高了签名安全性,且适用于多端协同签名的应用场景。
参见图3所示,在一示例性实施例中,本申请实施例公开了第三种签名方法,包括:
S301、数据发送端选择随机数k1,计算Q1。
其中,Q1=[sA×k1]G,k1为第一随机数,Q1为目标参数,G为椭圆曲线算法中椭圆曲线上的基点,sA为第一部分私钥。
S302、数据发送端将Q1发送给云端。
S303、云端选择随机数k2,计算h和s2。
其中,[k2×sB]G+[sB]Q1=[k2×sB]G+[sB×sA×k1]G=(rx,ry),h=h(m)+rx,s2=sB -1×h+k2,k2为第二随机数,sB为第二部分私钥,Q1为目标参数,G为椭圆曲线算法中椭圆曲线上的基点,m为目标消息,h和s2为签名参数。对消息m的哈希编码过程h(m)可以SM2算法的相关过程。
S304、云端将h和s2发送给数据发送端。
S305、数据发送端计算v,若v不等于0且不等于n-h,则输出签名值(h,v)。
其中,sA -1×s2+k1-h=sA -1×(sB -1×h+k2)+k1-h=sA -1×sB -1×(h+sB×k2+sA×sB×k2)-h;令k=sB×k2+sA×sB×k2,sA -1×sB -1=(1+d)-1,则签名v=(1+d)-1(k+h)-h=(1+d)-1(k-h×d)。
需要说明的是,若v等于0或等于n-h,则说明v无效,此时需要重新生成签名,即重新对消息进行签名。
数据发送端公布签名后,验证端利用验签公钥验证签名。
在本实施例中,数据发送端为第一通信方,云端为第二通信方。当然,也可以调换云端和数据发送端的位置,使得数据发送端为第二通信方,云端为第一通信方。
需要说明的是,本实施例中的其他实现步骤与上述实施例相同或类似,故本实施例在此不再赘述。
由上可见,本实施例中的云端和数据发送端分别存储着签名所用到的部分私钥,因此云端和数据发送端联合才能对目标消息进行签名;同时,验证端可以基于验签公钥直接验证签名,无需验证证书,因此避免了签名验证过程中复杂的证书验证。可见本申请在避免复杂的证书验证的同时,提高了签名安全性,且适用于多端协同签名的应用场景。
下面对本申请实施例提供的签名方法涉及到的各种参数进行具体介绍,下述各种参数在系统初始化过程中生成。这些参数生成后,在后续的任意消息签名过程中,第一通信方和第二通信方可以重复使用。
基于上述任意实施例,需要说明的是,验签参数的生成过程包括:
随机选择随机数作为第一通信方私钥,并利用第四公式计算第一通信方公钥,第四公式为:PA=[a]G,PA为第一通信方公钥,a为第一通信方私钥,G为SM2签名算法中椭圆曲线上的基点;
将第一通信方身份信息和第一通信方公钥发送至第二通信方,以使第二通信方利用第五公式计算中间参数,并发送中间参数、第二通信方公钥和第二通信方身份信息至密钥生成中心;
利用第五公式计算中间参数,并发送中间参数、第一通信方公钥和第一通信方身份信息至密钥生成中心;
其中,第五公式为PAB=[ab]G,PAB为中间参数,a为第一通信方私钥,b为第二通信方私钥,G为SM2签名算法中椭圆曲线上的基点;
密钥生成中心随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
其中,第六公式为MPK=[s]G;第七公式包括:Y=R+PAB,X=[k]PB+[k-1×t]PA;
其中,MPK为主公钥,s为主私钥,G为SM2签名算法中椭圆曲线上的基点,Y为第一公钥生成参数,R=[r]G,r为随机数,PAB为中间参数,X为第二公钥生成参数,k为随机数,PB为第二通信方公钥,PA为第一通信方公钥,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间;
其中,验签参数包括:第一公钥生成参数,第二公钥生成参数,签名私钥生成时间,签名私钥有效时间,主公钥,第一通信方身份信息、第一通信方公钥,第二通信方身份信息和第二通信方公钥。
验签参数由第一通信方、第二通信方和密钥生成中心联合产生,因此可以抵抗任何一方(甚至任意两方)的合谋攻击,安全性较高。
基于上述任意实施例,需要说明的是,验签公钥的生成过程包括:
验证端利用验签公钥生成公式计算验签公钥,验签公钥生成公式为:
vk=Y+X+e×MPK-G;
其中,vk为验签公钥,Y为第一公钥生成参数,X为第二公钥生成参数,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,G为SM2签名算法中椭圆曲线上的基点。
用于计算验签公钥的MPK、PA、PB、A、B、T1、T2、X、Y、G均公开在系统中,因此系统中的任意端均可对签名进行验证。
基于上述任意实施例,需要说明的是,第一部分私钥的生成过程包括:
接收密钥生成中心发送的第一参数集合,利用第一验证公式验证第一参数集合;若第一验证公式成立,则利用第八公式计算第一部分私钥;
相应的,第二部分私钥的生成过程包括:
第二通信方接收密钥生成中心发送的第二参数集合,利用第一验证公式验证第二参数集合;若第一验证公式成立,则利用第九公式计算第二部分私钥;
其中,第一验证公式包括:[dA×dB]G=Y-PAB+[e]MPK,[v1]PB+[v2]PA=U1+U2+[e’]X;第八公式为:sA=dA+a;第九公式为:sB=dB+b=k-1×t+b;
其中,第一参数集合包括:X、Y、T1、T2、dA、[dB]G、v1、v2、U1、U2;第二参数集合包括:X、Y、T1、T2、dB、[dA]G、v1、v2、U1、U2;
其中,Y为第一公钥生成参数,X为第二公钥生成参数,T1为签名私钥生成时间,T2为签名私钥有效时间,dA=k,dB=k-1×t,k为随机数,G为SM2签名算法中椭圆曲线上的基点,v1=u1+e’×k,v2=u2+e’×k-1×t,e’=H(X,U1,U2,e),U1=[u1]PB,U2=[u2]PA,u1和u2为随机数,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,sA为第一部分私钥,a为第一通信方私钥,sB为第二部分私钥,b为第二通信方私钥。
在一种实施方式中,本申请实施例提供的签名方法涉及到的各种参数的生成过程可以参照下述内容,具体可参见图4。
(1)数据发送端选择随机数a作为数据发送端私钥,生成数据发送端公钥PA=[a]G。G表示椭圆曲线的一个基点,其阶为素数。例如:[s]G表示椭圆曲线上点G的s倍点,是指s个G点的点加。
(2)云端选择随机数b作为云端私钥,生成云端公钥PB=[b]G。
(3)数据发送端将PA和自身身份信息A发送给云端。
(4)云端将PB和自身身份信息B发送给数据发送端。
(5)数据发送端计算PAB=[ab]G,将PA、A、PAB发送给密钥生成中心(Key GenerationCenter,KGC)。
(6)云端计算PAB=[ab]G,将PB、B、PAB发送给KGC。
(7)KGC运行如下:
1)确定z=H(PA,A,PB,B,MPK,T1,T2),其中,T1表示签名私钥生成时间,T2表示签名私钥有效时间;
2)选择随机数r,计算R=[r]G,Y=R+PAB,e=H(Y,z),t=r+e×s;
3)选择随机数k,计算dA=k,dB=k-1×t;
4)计算X=[k]PB+[k-1×t]PA;
5)选择随机数u1、u2,计算U1=[u1]PB,U2=[u2]PA,e’=H(X,U1,U2,e),v1=u1+e’×k,v2=u2+e’×k-1×t;
6)将第一参数集合发给数据发送端,将第二参数集合发给云端。其中,第一参数集合包括:X、Y、T1、T2、dA、[dB]G、v1、v2、U1、U2;第二参数集合包括:X、Y、T1、T2、dB、[dA]G、v1、v2、U1、U2。
(8)数据发送端获得第一参数集合,计算[dA×dB]G=[t]G=Y-PAB+[e]MPK和[v1]PB+[v2]PA=U1+U2+[e’]是否成立;若[dA×dB]G=[t]G=Y-PAB+[e]MPK成立,则用于生成签名私钥的参数正确(即部分私钥正确),Y也正确;若[v1]PB+[v2]PA=U1+U2+[e’]成立,则说明X正确。因此数据发送端计算第一部分私钥sA=dA+a=k+a。
(9)云端获得第二参数集合,计算[dA×dB]G=[t]G=Y-PAB+[e]MPK和[v1]PB+[v2]PA=U1+U2+[e’]是否成立;若[dA×dB]G=[t]G=Y-PAB+[e]MPK成立,则用于生成签名私钥的参数正确(即部分私钥正确),Y也正确;若[v1]PB+[v2]PA=U1+U2+[e’]成立,则说明X正确。因此云端计算第二部分私钥sB=dB+b=k-1×t+b。
基于上述(1)-(9),可确定签名私钥d=sA×sB -1;验签公钥vk=[d]G。
具体的,vk=[sA×sB -1]G
=(t+k×b+k-1×t×a+a×b-1)G
=(r+k×b+k-1×t×a+a×b)G-G+e×s×G
=R+[k]PB+[k-1×t]PA+PAB-G+[e×s]G
=Y+X+e×MPK-G
由此可知:验证端拿到X、Y、T1、T2、MPK、PA、PB、A、B,即可计算获得验签公钥。例如:验证端获得MPK、A、PA、B、PB、T1、T2、G、X、Y,那么可计算z=H(PA,A,PB,B,MPK,T1,T2),e=H(Y,z),从而可确定验签公钥vk=Y+X+e×MPK-G=[sA×sB -1]G。
至此,数据发送端和云端就可以联合对某个消息进行签名,签名发布后,验证端可计算验签公钥,并利用验签公钥验证签名。
其中,系统中的各种公开参数包括:MPK、PA、PB、A、B、T1、T2、X、Y、G和SM2签名算法相关的其他参数。若SM2签名算法为SM2SM2签名算法,则系统中的各种公开参数可参照SM2的相关公开参数。
在本实施例中,签名私钥由KGC、云端和数据发送端协商产生,并由云端和数据发送端分别保管签名私钥的一部分,因此任何一方(甚至任意两方合谋)无法获得其他方的私钥,安全性较高。同时,需要云端和终端协同才能完成签名,单方无法签名;签名私钥的部分私钥以及参数X和Y,可由云端和终端分别验证;验证通过后才各自生成第一部分私钥和第二部分私钥。再者,本实施例不需要证书,任何签名验证方可以根据系统公开参数、云端和数据发送端的公开信息,计算验签公钥,从而对签名进行验证。
可见,本实施例结合了无证书签名和云加端签名的优势,签名操作需要两方协同完成,且签名验证过程不需要验证证书。签名私钥两方分割保存,提升了私钥的安全性。验证签名前可直接计算出验签公钥,不需要验证公钥证书,提升了通信效率。云端和数据发送端的部分签名私钥,需要KGC参与三方协同生产,但是三方中任意两方合谋也无法获得剩余一方的私钥。云端和数据发送端两方可验证KGC生成的部分私钥的正确性。
下面对本申请实施例提供的一种签名系统进行介绍,下文描述的一种签名系统与上文描述的一种签名方法可以相互参照。
参见图5所示,在一示例性实施例中,本申请实施例公开了一种签名系统,包括:第一通信方、第二通信方和验证端,其中:
第一通信方,用于基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将目标参数发送至第二通信方;
第二通信方,用于基于随机选择的第二随机数、第二通信方的第二部分私钥、目标参数以及SM2签名算法生成目标消息的签名参数,将签名参数发送至第一通信方;
第一通信方,还用于基于第一随机数、第一部分私钥和签名参数生成目标消息的签名,公布签名;
验证端,用于利用验签公钥验证签名,验签公钥基于验签参数生成。
在一种实施方式中,该签名系统还包括:密钥生成中心,密钥生成中心,用于随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
其中,第六公式为MPK=[s]G;第七公式包括:Y=R+PAB,X=[k]PB+[k-1×t]PA;
其中,MPK为主公钥,s为主私钥,G为SM2签名算法中椭圆曲线上的基点,Y为第一公钥生成参数,R=[r]G,r为随机数,PAB为中间参数,X为第二公钥生成参数,k为随机数,PB为第二通信方公钥,PA为第一通信方公钥,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间。
在一种实施方式中,第一通信方还用于利用第一公式计算目标参数,第一公式为:Q1=[sA×k1]G;
其中,Q1为目标参数,sA为第一部分私钥,k1为第一随机数,G为SM2签名算法中椭圆曲线上的基点。
在一种实施方式中,第二通信方还用于利用第二公式计算签名参数,第二公式包括:[k2×sB]G+[sB]Q1=(rx,ry),h=h(m)+rx,s2=sB -1×h+k2;
其中,k2为第二随机数,sB为第二部分私钥,Q1为目标参数,G为SM2签名算法中椭圆曲线上的基点,m为目标消息,h和s2为签名参数。
在一种实施方式中,第一通信方还用于利用第三公式计算签名,第三公式包括:sA -1×s2+k1-h=sA -1×sB -1×(h+sB×k2+sA×sB×k2)-h,k=sB×k2+sA×sB×k2,sA -1×sB -1=(1+d)-1,v=(1+d)-1(k+h)-h=(1+d)-1(k-h×d);
其中,sA为第一部分私钥,sB为第二部分私钥,k1为第一随机数,k2为第二随机数,h和s2为签名参数,k为随机数,d为基于SM2签名算法的签名私钥,d=sA×sB -1,v为签名。
在一种实施方式中,第一通信方还用于随机选择随机数作为第一通信方私钥,并利用第四公式计算第一通信方公钥,第四公式为:PA=[a]G,PA为第一通信方公钥,a为第一通信方私钥,G为SM2签名算法中椭圆曲线上的基点;将第一通信方身份信息和第一通信方公钥发送至第二通信方,以使第二通信方利用第五公式计算中间参数,并发送中间参数、第二通信方公钥和第二通信方身份信息至密钥生成中心;利用第五公式计算中间参数,并发送中间参数、第一通信方公钥和第一通信方身份信息至密钥生成中心;其中,第五公式为PAB=[ab]G,PAB为中间参数,a为第一通信方私钥,b为第二通信方私钥,G为SM2签名算法中椭圆曲线上的基点。
在一种实施方式中,验证端利用验签公钥生成公式计算验签公钥,验签公钥生成公式为:vk=Y+X+e×MPK-G;
其中,vk为验签公钥,Y为第一公钥生成参数,X为第二公钥生成参数,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,G为SM2签名算法中椭圆曲线上的基点。
在一种实施方式中,第一通信方还用于接收密钥生成中心发送的第一参数集合,利用第一验证公式验证第一参数集合;若第一验证公式成立,则利用第八公式计算第一部分私钥;
相应的,第二通信方还用于接收密钥生成中心发送的第二参数集合,利用第一验证公式验证第二参数集合;若第一验证公式成立,则利用第九公式计算第二部分私钥;
其中,第一验证公式包括:[dA×dB]G=Y-PAB+[e]MPK,[v1]PB+[v2]PA=U1+U2+[e’]X;第八公式为:sA=dA+a;第九公式为:sB=dB+b=k-1×t+b;
其中,第一参数集合包括:X、Y、T1、T2、dA、[dB]G、v1、v2、U1、U2;第二参数集合包括:X、Y、T1、T2、dB、[dA]G、v1、v2、U1、U2;
其中,Y为第一公钥生成参数,X为第二公钥生成参数,T1为签名私钥生成时间,T2为签名私钥有效时间,dA=k,dB=k-1×t,k为随机数,G为SM2签名算法中椭圆曲线上的基点,v1=u1+e’×k,v2=u2+e’×k-1×t,e’=H(X,U1,U2,e),U1=[u1]PB,U2=[u2]PA,u1和u2为随机数,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,sA为第一部分私钥,a为第一通信方私钥,sB为第二部分私钥,b为第二通信方私钥。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种签名系统,该系统可在避免复杂的证书验证的同时,提高签名安全性,且适用于多端协同签名的应用场景。
下面对本申请实施例提供的一种签名设备进行介绍,下文描述的一种签名设备与上文描述的一种签名方法及系统可以相互参照。
参见图6所示,在一示例性实施例中,本申请实施例公开了一种签名设备,包括:
存储器601,用于保存计算机程序;
处理器602,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种签名方法、系统及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的签名方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。
此外,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
Claims (11)
1.一种签名方法,其特征在于,应用于第一通信方,包括:
基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将所述目标参数发送至第二通信方,以使所述第二通信方基于随机选择的第二随机数、所述第二通信方的第二部分私钥、所述目标参数以及所述SM2签名算法生成目标消息的签名参数,将所述签名参数发送至所述第一通信方;
基于所述第一随机数、所述第一部分私钥和所述签名参数生成所述目标消息的签名;
公布所述签名,以使验证端利用验签公钥验证所述签名,所述验签公钥基于验签参数生成;
所述验签参数的生成过程包括:
随机选择随机数作为第一通信方私钥,并利用SM2签名算法中椭圆曲线上的基点计算第一通信方公钥;
将第一通信方身份信息和所述第一通信方公钥发送至所述第二通信方,以使所述第二通信方计算中间参数,并发送所述中间参数、第二通信方公钥和第二通信方身份信息至密钥生成中心;
所述密钥生成中心随机选择随机数作为主私钥,利用主私钥计算第一公钥生成参数和第二公钥生成参数;
验签公钥的生成过程包括:
所述验证端根据所述第一公钥生成参数、所述第二公钥生成参数、所述第一通信方身份信息、所述第二通信方身份信息、所述第一通信方公钥、所述第二通信方公钥计算生成验签公钥。
2.根据权利要求1所述的签名方法,其特征在于,所述基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,包括:
利用第一公式计算所述目标参数,所述第一公式为:Q1=[sA×k1]G;
其中,Q1为所述目标参数,sA为所述第一部分私钥,k1为所述第一随机数,G为所述SM2签名算法中椭圆曲线上的基点。
3.根据权利要求1所述的签名方法,其特征在于,所述第二通信方基于随机选择的第二随机数、所述第二通信方的第二部分私钥、所述目标参数以及所述SM2签名算法生成目标消息的签名参数,包括:
所述第二通信方利用第二公式计算所述签名参数,所述第二公式包括:[k2×sB]G+[sB]Q1=(rx,ry),h=h(m)+rx,s2=sB -1×h+k2;
其中,k2为所述第二随机数,sB为所述第二部分私钥,Q1为所述目标参数,G为所述SM2签名算法中椭圆曲线上的基点,m为所述目标消息,h和s2为所述签名参数。
4.根据权利要求1所述的签名方法,其特征在于,所述基于所述第一随机数、所述第一部分私钥和所述签名参数生成所述目标消息的签名,包括:
利用第三公式计算所述签名,所述第三公式包括:sA -1×s2+k1-h=sA -1×sB -1×(h+sB×k2+sA×sB×k2)-h,k=sB×k2+sA×sB×k2,sA -1×sB -1=(1+d)-1,v=(1+d)-1(k+h)-h=(1+d)-1(k-h×d);
其中,sA为所述第一部分私钥,sB为所述第二部分私钥,k1为所述第一随机数,k2为所述第二随机数,h和s2为所述签名参数,k为随机数,d为基于所述SM2签名算法的签名私钥,d=sA×sB -1,v为所述签名。
5.根据权利要求1所述的签名方法,其特征在于,所述验签参数的生成过程包括:
随机选择随机数作为第一通信方私钥,并利用第四公式计算第一通信方公钥,所述第四公式为:PA=[a]G,PA为所述第一通信方公钥,a为所述第一通信方私钥,G为所述SM2签名算法中椭圆曲线上的基点;
将第一通信方身份信息和所述第一通信方公钥发送至所述第二通信方,以使所述第二通信方利用第五公式计算中间参数,并发送所述中间参数、第二通信方公钥和第二通信方身份信息至所述密钥生成中心;
利用所述第五公式计算中间参数,并发送所述中间参数、所述第一通信方公钥和所述第一通信方身份信息至所述密钥生成中心;
其中,所述第五公式为PAB=[ab]G,PAB为所述中间参数,a为所述第一通信方私钥,b为第二通信方私钥,G为所述SM2签名算法中椭圆曲线上的基点;
所述密钥生成中心随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
其中,所述第六公式为MPK=[s]G;所述第七公式包括:Y=R+PAB,X=[k]PB+[k-1×t]PA;
其中,MPK为所述主公钥,s为所述主私钥,G为所述SM2签名算法中椭圆曲线上的基点,Y为所述第一公钥生成参数,R=[r]G,r为随机数,PAB为所述中间参数,X为所述第二公钥生成参数,k为随机数,PB为所述第二通信方公钥,PA为所述第一通信方公钥,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为所述第一通信方身份信息,B为所述第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间;
其中,所述验签参数包括:所述第一公钥生成参数,所述第二公钥生成参数,所述签名私钥生成时间,所述签名私钥有效时间,所述主公钥,所述第一通信方身份信息、所述第一通信方公钥,所述第二通信方身份信息和所述第二通信方公钥。
6.根据权利要求5所述的签名方法,其特征在于,所述验签公钥的生成过程包括:
所述验证端利用验签公钥生成公式计算所述验签公钥,所述验签公钥生成公式为:vk=Y+X+e×MPK-G;
其中,vk为所述验签公钥,Y为所述第一公钥生成参数,X为所述第二公钥生成参数,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为所述第一通信方身份信息,B为所述第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间,PB为所述第二通信方公钥,PA为所述第一通信方公钥,MPK为所述主公钥,G为所述SM2签名算法中椭圆曲线上的基点。
7.根据权利要求1所述的签名方法,其特征在于,所述第一部分私钥的生成过程包括:
接收所述密钥生成中心发送的第一参数集合,利用第一验证公式验证所述第一参数集合;若所述第一验证公式成立,则利用第八公式计算所述第一部分私钥;
相应的,所述第二部分私钥的生成过程包括:
所述第二通信方接收所述密钥生成中心发送的第二参数集合,利用第一验证公式验证所述第二参数集合;若所述第一验证公式成立,则利用第九公式计算所述第二部分私钥;
其中,所述第一验证公式包括:[dA×dB]G=Y-PAB+[e]MPK,[v1]PB+[v2]PA=U1+U2+[e’]X;所述第八公式为:sA=dA+a;所述第九公式为:sB=dB+b=k-1×t+b;
其中,所述第一参数集合包括:X、Y、T1、T2、dA、[dB]G、v1、v2、U1、U2;所述第二参数集合包括:X、Y、T1、T2、dB、[dA]G、v1、v2、U1、U2;
其中,Y为第一公钥生成参数,X为第二公钥生成参数,T1为签名私钥生成时间,T2为签名私钥有效时间,dA=k,dB=k-1×t,k为随机数,G为所述SM2签名算法中椭圆曲线上的基点,v1=u1+e’×k,v2=u2+e’×k-1×t,e’=H(X,U1,U2,e),U1=[u1]PB,U2=[u2]PA,u1和u2为随机数,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,PB为第二通信方公钥,PA为第一通信方公钥,MPK为主公钥,sA为所述第一部分私钥,a为第一通信方私钥,sB为所述第二部分私钥,b为第二通信方私钥。
8.一种签名系统,其特征在于,包括:第一通信方、第二通信方和验证端,其中:
所述第一通信方,用于基于随机选择的第一随机数、自身的第一部分私钥以及SM2签名算法生成目标参数,将所述目标参数发送至第二通信方;
所述第二通信方,用于基于随机选择的第二随机数、所述第二通信方的第二部分私钥、所述目标参数以及所述SM2签名算法生成目标消息的签名参数,将所述签名参数发送至所述第一通信方;
所述第一通信方,还用于基于所述第一随机数、所述第一部分私钥和所述签名参数生成所述目标消息的签名,公布所述签名;
所述验证端,用于利用验签公钥验证所述签名,所述验签公钥基于验签参数生成;所述验签参数的生成过程包括:
随机选择随机数作为第一通信方私钥,并利用SM2签名算法中椭圆曲线上的基点计算第一通信方公钥;
将第一通信方身份信息和所述第一通信方公钥发送至所述第二通信方,以使所述第二通信方计算中间参数,并发送所述中间参数、第二通信方公钥和第二通信方身份信息至密钥生成中心;
所述密钥生成中心随机选择随机数作为主私钥,利用主私钥计算第一公钥生成参数和第二公钥生成参数;
验签公钥的生成过程包括:
所述验证端根据所述第一公钥生成参数、所述第二公钥生成参数、所述第一通信方身份信息、所述第二通信方身份信息、所述第一通信方公钥、所述第二通信方公钥计算生成验签公钥。
9.根据权利要求8所述的签名系统,其特征在于,还包括:密钥生成中心,所述密钥生成中心,用于随机选择随机数作为主私钥,并利用第六公式计算主公钥;利用第七公式计算第一公钥生成参数和第二公钥生成参数;
其中,所述第六公式为MPK=[s]G;所述第七公式包括:Y=R+PAB,X=[k]PB+[k-1×t]PA;
其中,MPK为所述主公钥,s为所述主私钥,G为所述SM2签名算法中椭圆曲线上的基点,Y为所述第一公钥生成参数,R=[r]G,r为随机数,PAB为中间参数,X为所述第二公钥生成参数,k为随机数,PB为第二通信方公钥,PA为第一通信方公钥,t=r+e×s,e=H(Y,z),z=H(PA,A,PB,B,MPK,T1,T2),A为第一通信方身份信息,B为第二通信方身份信息,T1为签名私钥生成时间,T2为签名私钥有效时间。
10.一种签名设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的签名方法。
11.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的签名方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621184.5A CN112653554B (zh) | 2020-12-30 | 2020-12-30 | 一种签名方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621184.5A CN112653554B (zh) | 2020-12-30 | 2020-12-30 | 一种签名方法、系统、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112653554A CN112653554A (zh) | 2021-04-13 |
CN112653554B true CN112653554B (zh) | 2023-03-31 |
Family
ID=75367373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011621184.5A Active CN112653554B (zh) | 2020-12-30 | 2020-12-30 | 一种签名方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112653554B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244529A (zh) * | 2021-12-17 | 2022-03-25 | 北京国泰网信科技有限公司 | 使用电子钥匙进行sm2一次一密双向认证开锁的方法 |
CN115442052B (zh) * | 2022-08-30 | 2023-06-23 | 云海链控股股份有限公司 | 一种协同签名方法、系统、设备及计算机可读存储介质 |
CN117978408B (zh) * | 2024-03-28 | 2024-06-25 | 鼎铉商用密码测评技术(深圳)有限公司 | 协同签名算法的检测方法、协同签名设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
CN108494551A (zh) * | 2018-03-16 | 2018-09-04 | 数安时代科技股份有限公司 | 基于协同密钥的处理方法、系统、计算机设备及存储介质 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN109245903A (zh) * | 2018-09-29 | 2019-01-18 | 北京信安世纪科技股份有限公司 | 双方协同生成sm2算法的签名方法、装置及存储介质 |
CN111274613A (zh) * | 2020-01-20 | 2020-06-12 | 广州安研信息科技有限公司 | 迭代式sm2数字签名生成方法、系统、介质和设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787175A (en) * | 1995-10-23 | 1998-07-28 | Novell, Inc. | Method and apparatus for collaborative document control |
US10498537B2 (en) * | 2016-08-01 | 2019-12-03 | Institute For Development And Research In Banking Technology (Drbt) | System and method for providing secure collaborative software as a service (SaaS) attestation service for authentication in cloud computing |
CN107147488A (zh) * | 2017-03-24 | 2017-09-08 | 广东工业大学 | 一种基于sm2加解密算法的签名验签系统和方法 |
US20190074976A1 (en) * | 2017-09-01 | 2019-03-07 | NetProtec LLC | Collaborative Signature System and Method |
CN109274503B (zh) * | 2018-11-05 | 2022-01-04 | 北京仁信证科技有限公司 | 分布式协同签名方法及分布式协同签名装置、软盾系统 |
CN109547199B (zh) * | 2018-11-19 | 2021-07-02 | 武汉大学 | 一种多方联合生成sm2数字签名的方法 |
CN110380862B (zh) * | 2019-06-25 | 2022-10-14 | 晟安信息技术有限公司 | 基于隐式证书的签名验证方法、装置和计算机设备 |
CN110365487A (zh) * | 2019-07-19 | 2019-10-22 | 北京向芯力科技有限公司 | 一种基于sm2算法的协同签名方法与装置 |
CN110971405B (zh) * | 2019-12-06 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 多方协同的sm2签名、解密方法及其系统 |
CN111245847A (zh) * | 2020-01-15 | 2020-06-05 | 北京三未信安科技发展有限公司 | 轻量级无证书认证方法、客户端及系统 |
CN111740843A (zh) * | 2020-06-18 | 2020-10-02 | 成都卫士通信息产业股份有限公司 | 分布式EdDSA签名方法、装置、设备及存储介质 |
-
2020
- 2020-12-30 CN CN202011621184.5A patent/CN112653554B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
CN108494551A (zh) * | 2018-03-16 | 2018-09-04 | 数安时代科技股份有限公司 | 基于协同密钥的处理方法、系统、计算机设备及存储介质 |
CN108667626A (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
CN109245903A (zh) * | 2018-09-29 | 2019-01-18 | 北京信安世纪科技股份有限公司 | 双方协同生成sm2算法的签名方法、装置及存储介质 |
CN111274613A (zh) * | 2020-01-20 | 2020-06-12 | 广州安研信息科技有限公司 | 迭代式sm2数字签名生成方法、系统、介质和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112653554A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112653554B (zh) | 一种签名方法、系统、设备及可读存储介质 | |
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
CN109714167B (zh) | 适用于移动应用签名的身份认证与密钥协商方法及设备 | |
CN107248909B (zh) | 一种基于sm2算法的无证书安全签名方法 | |
US8918648B2 (en) | Digital signature and key agreement schemes | |
US9800418B2 (en) | Signature protocol | |
CN109450640B (zh) | 基于sm2的两方签名方法及系统 | |
CN111934877B (zh) | 一种sm2协同门限签名方法、存储介质及电子装置 | |
CN101145913B (zh) | 一种实现网络安全通信的方法及系统 | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 | |
CN112118111B (zh) | 一种适用于门限计算的sm2数字签名方法 | |
JP2001520483A (ja) | 鍵認証方式 | |
CN113360943A (zh) | 一种区块链隐私数据的保护方法及装置 | |
CN113765662B (zh) | 一种基于sm2算法的签名及解密方法和系统 | |
CN115834056A (zh) | 一种无证书有序聚合签名方法、系统及相关装置 | |
CN114726546A (zh) | 数字身份认证方法、装置、设备和存储介质 | |
US20150006900A1 (en) | Signature protocol | |
CN116346328A (zh) | 一种数字签名方法、系统、设备及计算机可读存储介质 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
JP2019526205A (ja) | デバイス間の共通セッション鍵を取得するシステムおよび方法 | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN114257374B (zh) | 一种用于标识密码体制的可验证安全外包计算方法及系统 | |
CN113890740B (zh) | 一种基于变色龙哈希函数的安全认证方法 | |
CN109102294A (zh) | 信息传输方法和装置 | |
CN109274506B (zh) | 一种基于国密sm2的无证书签名方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |