CN115378615A - 协同签名方法、装置、电子设备及存储介质 - Google Patents
协同签名方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115378615A CN115378615A CN202211124948.9A CN202211124948A CN115378615A CN 115378615 A CN115378615 A CN 115378615A CN 202211124948 A CN202211124948 A CN 202211124948A CN 115378615 A CN115378615 A CN 115378615A
- Authority
- CN
- China
- Prior art keywords
- server
- signature value
- key
- signature
- client
- 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.)
- Pending
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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种协同签名方法、装置、电子设备及存储介质,涉及信息安全技术领域。该方法包括:接收服务端发送的服务端签名值和中间签名值;基于服务端签名值、中间签名值和客户端的第一密钥,确定客户端签名值;其中,第一密钥为基于杂凑值确定的,杂凑值为基于客户端的身份信息标识和服务端的公钥标识确定的;基于服务端签名值和客户端签名值,确定协同签名结果。本申请实施例通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,适用范围更广;在同等网络带宽和存储资源的条件下,数据的传输和处理速度更快,进而提高了协同签名过程中的通信效率。
Description
技术领域
本申请涉及信息安全技术领域,具体而言,本申请涉及一种协同签名方法、装置、电子设备及存储介质。
背景技术
数字签名是公钥密码体系中关键的一部分,能够满足完整性、防篡改、抗抵赖等安全需求,在信息安全技术领域发挥了重要的作用。
SM2算法指的是由国家密码管理局制定的《GM/T 0003-2012 SM2椭圆曲线公钥密码算法》标准中规定的椭圆曲线公钥密码算法,是ECC椭圆曲线密码(Elliptic CurveCryptography,椭圆曲线密码)密码体制的一种具体算法。
现有的基于SM2算法的协同签名方法中密钥无法与身份关联,通常需要借助数字证书来实现用户身份与密钥的绑定,但是数字证书较长,在传输和存储的过程中会占用较多的网络带宽和资源,通信效率较低。
发明内容
本申请实施例提供了一种协同签名方法、装置、电子设备及存储介质,可以解决现有的协同签名方法通信效率较低的问题。
所述技术方案如下:
根据本申请实施例的一个方面,提供了一种协同签名的方法,该方法包括:
接收服务端发送的服务端签名值和中间签名值;
基于所述服务端签名值、所述中间签名值和所述客户端的第一密钥,确定客户端签名值;其中,所述第一密钥为基于杂凑值确定的,所述杂凑值为基于所述客户端的身份信息标识和所述服务端的公钥标识确定的;
基于所述服务端签名值和所述客户端签名值,确定协同签名结果。
可选地,所述方法还包括:
接收所述服务端发送的第一中间参数和第二中间参数;
在所述第一中间参数和所述第二中间参数均不为零的情况下,基于所述第一中间参数和所述第二中间参数,确定所述第一密钥;
其中,所述第一中间参数为基于所述服务端的第二密钥和所述服务端的标识随机数确定的;
所述第二中间参数为基于所述第二密钥、所述杂凑值以及所述服务端的初始随机数确定的。
可选地,所述接收所述服务端发送的第一中间参数和第二中间参数之前,所述方法还包括:
基于第一密钥随机数,生成第一密钥椭圆曲线点;
将所述第一密钥椭圆曲线点和所述客户端的身份信息标识发送至所述服务端,并指示所述服务端:基于所述第一密钥椭圆曲线点,确定所述公钥标识,并基于所述公钥标识和所述身份信息标识,确定所述杂凑值。
可选地,所述基于所述服务端签名值和所述客户端签名值,确定协同签名结果之后,所述方法还包括:
确定协同公钥;
根据所述协同公钥,验证所述协同签名结果;
其中,所述协同公钥为基于所述杂凑值、所述服务端的公钥标识以及初始公钥确定的。
可选地,所述接收服务端发送的服务端签名值和中间签名值之前,所述方法还包括:
基于第一随机数,确定第一椭圆曲线点;
将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和所述第一椭圆曲线点,确定所述服务端签名值和所述中间签名值。
可选地,所述将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和所述第一椭圆曲线点,确定所述服务端签名值和所述中间签名值,包括:
将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和第二椭圆曲线点,确定所述服务端签名值,并基于所述服务端对应的第二密钥和所述服务端签名值,确定所述中间签名值;
其中,所述第二椭圆曲线点为基于所述第一椭圆曲线点、所述第二密钥和所述服务端的第二随机数确定的。
可选地,所述基于第一随机数,确定第一椭圆曲线点之前,所述方法还包括:
对所述待签名消息进行预处理,得到所述消息摘要。
根据本申请实施例的另一个方面,提供了一种协同签名装置,该装置包括:
第一接收模块,用于接收服务端发送的服务端签名值和中间签名值;
第一确定模块,用于基于所述服务端签名值、所述中间签名值和客户端对应的第一密钥,确定客户端签名值;其中,所述第一密钥为基于杂凑值确定的,所述杂凑值为基于所述客户端的身份信息标识和所述服务端的公钥标识确定的;
协同签名模块,用于基于所述服务端签名值和所述客户端签名值,确定协同签名结果。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一种协同签名方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种协同签名方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,由于身份信息标识和/或公钥标识的数据长度远小于数字证书的长度,在传输和存储的过程中对网络带宽和存储资源的要求更低,适用范围更广;在同等网络带宽和存储资源的条件下,数据的传输和处理速度更快,进而提高了协同签名过程中的通信效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种协同签名方法的流程示意图;
图2为本申请实施例提供的一种协同密钥生成方法的流程示意图;
图3为本申请另一实施例提供的一种协同签名方法的流程示意图;
图4为本申请实施例提供的一种协同签名装置的结构示意图
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
数字签名是公钥密码体系中关键的一部分,能够满足完整性、防篡改、抗抵赖等安全需求,在信息安全技术领域发挥了重要的作用。
SM2算法指的是由国家密码管理局制定的《GM/T 0003-2012 SM2椭圆曲线公钥密码算法》标准中规定的椭圆曲线公钥密码算法,是ECC椭圆曲线密码(Elliptic curvecryptography,椭圆曲线密码)密码体制的一种具体算法。
现有的基于SM2算法的协同签名方法中密钥无法与身份关联,通常需要借助数字证书来实现用户身份与密钥的绑定,但是数字证书较长,在传输和存储的过程中会占用较多的网络带宽和资源,通信效率较低。
本申请提供的协同签名方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例提供了一种协同签名方法,本申请实施例提供的协同签名方法应用于客户端,客户端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能手表等,但并不局限于此。客户端与服务端可以通过有线或无线通信方式进行直接或间接地连接,服务端可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,本申请在此不做限制。
图1为本申请实施例提供的协同签名方法的流程示意图,如图1所示,该方法包括:
步骤101,接收服务端发送的服务端签名值和中间签名值;
具体地,协同签名指的是通信双方各自产生部分密钥,即双方均不知道完整的签名密钥,通过交互联合完成整个签名过程。参与协同签名的客户端和服务端共享SM2算法的椭圆曲线参数E(Fq)、G和n;其中,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G为椭圆曲线E上的n阶的基点。
协同签名结果包括参与协同签名的客户端和服务端分别对应的客户端签名值和服务端签名值。服务端可以通过与客户端的交互,计算得到服务端签名值和中间签名值,其中,服务端签名值不为零。若服务端计算得到的服务端签名值为零,则需要对服务端签名值进行重新计算。随即,服务端将服务端签名值和中间签名值发送给客户端,客户端接收服务端发送的服务端签名值和中间签名值,以供后续进一步计算客户端签名值。
步骤102,基于服务端签名值、中间签名值和客户端的第一密钥,确定客户端签名值;其中,第一密钥为基于杂凑值确定的,杂凑值为基于客户端的身份信息标识和服务端的公钥标识确定的;
具体地,本申请实施例中将密钥拆分为两部分,即客户端对应的第一密钥和服务端对应的第二密钥,分别存储在客户端和服务端,即任何一个通信方都不包括完整的密钥,即使任何一个通信方泄露其密钥也不会泄露完整的密钥,进而提高了数据的安全性。
可选地,在进行协同签名之前,客户端和服务端分别计算与其对应的第一密钥和第二密钥,并将计算得到第一密钥和第二密钥存储在本地,以供后续协同签名的时候进行调用。
客户端在接收到服务端发送的服务端签名值、中间签名值之后,可以调用预先计算得到的第一密钥,并基于服务端签名值、中间签名值和第一密钥,计算客户端签名值。
其中,第一密钥可以是基于杂凑值确定得到的,杂凑值可以是基于客户端的身份信息标识和服务端的公钥标识,以及预设的密码杂凑算法确定的。可选地,预设的密码杂凑算法可以为SM3密码算法。
具体可以通过如下公式计算杂凑值h:
公式一:h=HASH(ID||Qx||Qy)
式中,HASH()为SM3密码算法,ID为客户端的身份信息标识,(Qx,Qy)分别为服务端的公钥标识Q的横纵坐标。
本申请实施例中,基于客户端的身份信息标识和服务端的公钥标识确定杂凑值,并基于杂凑是确定第一密钥,通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,由于身份信息标识和/或公钥标识的数据长度远小于数字证书的长度,在传输和存储的过程中对网络带宽和存储资源的要求更低,适用范围更广;在同等网络带宽和存储资源的条件下,数据的传输和处理速度更快,进而提高了协同签名过程中的通信效率。
此外,现有技术中还可以使用SM9算法实现身份与密钥的绑定,但是SM9算法中必须采用双线性配对运算,其计算规模为3072比特,相比于SM2算法的256比特,是SM2算法的12倍。本申请实施例中,在通过身份信息标识实现用户身份与其对应的密钥的绑定的基础上,采用SM2算法进行协同签名,相比于现有技术中的SM9算法,运算规模更小,计算复杂度更低,效率更高。
步骤103,基于服务端签名值和客户端签名值,确定协同签名结果。
具体地,客户端在计算得到客户端签名值之后,可以基于接收到的服务端签名值,将客户端签名值与服务端签名值进行组合,即可得到完整的协同签名结果。例如,若服务端签名值为r,客户端签名值为s,则协同签名结果可以为(r,s)。
需要说明的是,若客户端计算得到的客户端签名值为零,则需要对客户端签名值进行重新计算,直至客户端签名值不为零时为止。
本申请实施例中,通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,由于身份信息标识和/或公钥标识的数据长度远小于数字证书的长度,在传输和存储的过程中对网络带宽和存储资源的要求更低,适用范围更广;在同等网络带宽和存储资源的条件下,数据的传输和处理速度更快,进而提高了协同签名过程中的通信效率。
作为一种可选实施例,本申请实施例提供的协同签名方法还包括:
接收服务端发送的第一中间参数和第二中间参数;
在第一中间参数和第二中间参数均不为零的情况下,基于第一中间参数和第二中间参数,确定第一密钥;
其中,第一中间参数为基于服务端的第二密钥和服务端的标识随机数确定的;第二中间参数为基于第二密钥、杂凑值以及服务端的初始随机数确定的。
具体地,客户端在参与协同签名之前,还可以预先计算第一密钥,具体可以通过以下步骤计算第一密钥:
服务端基于第二密钥和标识随机数,计算第一中间参数;基于第二密钥、初始随机数和杂凑值,计算第二中间参数,并将第一中间参数和第二中间参数发送至客户端。
具体通过以下公式计算第一中间参数x:
公式二:x=[(1+d2)-1*w]mod n
式中,w为标识随机数,mod为取模运算,d2为第二密钥,d2为可以为服务端产生的范围在[1,n-2]之间的随机数。
具体通过以下公式计算第二中间参数y:
公式三:y=[(1+d2)-1*(h*s+1)]mod n
式中,s为范围在[1,n-1]之间初始随机数,h为杂凑值,mod为取模运算,d2为第二密钥,d2为可以为服务端产生的范围在[1,n-2]之间的随机数。
需要说明的是,若服务端计算得到的第一中间参数或第二中间参数为零,则需要对第一中间参数或第二中间参数重新进行计算,直至第一中间参数和第二中间参数均不为零为止。
客户端在接收到服务端发送的第一中间参数和第二中间参数之后,基于第一中间参数和第二中间参数,计算第一密钥。
具体可以通过如下公式计算第一密钥d1:
公式四:d1=(u*x+y-1)mod n
式中,x为第一中间参数,y为第二中间参数,u为客户端产生的范围在[1,n-1]之间的随机数。
本申请实施例中,基于杂凑值确定第二中间参数,并基于第二中间参数确定第一密钥,由于杂凑值是基于客户端的身份信息标识和服务端的公钥标识确定的,通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,扩大了适用范围,提高了协同签名过程中的通信效率。
作为一种可选实施例,所述接收服务端发送的第一中间参数和第二中间参数之前,所述方法还包括:
基于第一密钥随机数,生成第一密钥椭圆曲线点;
将第一密钥椭圆曲线点和客户端的身份信息标识发送至服务端,并指示服务端:基于第一密钥椭圆曲线点,确定公钥标识,并基于公钥标识和身份信息标识,确定杂凑值。
具体地,客户端可以产生第一密钥随机数u∈[1,n-1],基于SM2算法的椭圆曲线参数,计算第一密钥椭圆曲线点v=[u]G,随即,客户端将第一密钥椭圆曲线点v和身份信息标识ID发送至服务端。
服务端产生标识随机数w∈[1,n-1],计算公钥标识Q=w*v,并可以将Q对外公开。在此基础上,服务端基于上述公式一计算杂凑值h。
作为一种可选实施例,步骤103之后,所述方法还包括:
确定协同公钥;
其中,协同公钥为基于杂凑值、服务端的公钥标识以及初始公钥确定的;
具体地,为对得到协同签名结果进行验证,需要获取协同公钥,其中,协同公钥是基于杂凑值、服务端的公钥标识以及初始公钥确定的。
具体可以通过如下公式计算协同公钥P:
公式五:P=Q+h*Ppub
式中,Ppub为服务端的初始公钥,初始公钥Ppub可以是基于服务端根据产生的范围在[1,n-1]之间初始随机数s,以及公式Ppub=[s]G计算得到的。
由于杂凑值、公钥标识和初始公钥可以是对外公开的,在此基础上,协同公钥可以是客户端基于获取的杂凑值、公钥标识和初始公钥,在本地计算得到的;也可以是客户端接收的服务端或第三通信方发送的计算好的协同公钥,本申请实施例在此不做限定。
根据协同公钥,验证协同签名结果。
具体地,在客户端得到协同公钥之后,即可根据协同公钥对协同签名结果进行验证。由于协同公钥是基于客户端的身份信息标识和服务端的公钥标识共同确定的,因此,只有当客户端的身份信息标识和服务端的公钥标识均正确的情况下,才能完成对协同签名结果的验证,即实现了密钥与用户身份的绑定,无需借助数字证书,节省了在传输和存储过程中的网络带宽和资源,提高了通信效率。
作为一种可选实施例,步骤101之前,所述方法还包括:
基于第一随机数,确定第一椭圆曲线点;
将待签名消息的消息摘要和第一椭圆曲线点发送至服务端,指示服务端基于消息摘要和第一椭圆曲线点,确定服务端签名值和中间签名值。
具体地,在执行步骤101之前,客户端可以产生范围在[1,n-1]之间的第一随机数k1,并基于SM2算法的椭圆曲线参数,计算第一椭圆曲线点V1=[k1]G。
可选地,在计算第一椭圆曲线点之前,客户端还可以对待签名消息进行预处理,得到待签名消息的消息摘要。其中,可以通过哈希算法对待签名消息M进行签名预处理,得到消息摘要e。
客户端在得到消息摘要e和第一椭圆曲线点V1之后,将消息摘要e和第一椭圆曲线点V1发送至服务端,服务端可以根据接受到的消息摘要e和第一椭圆曲线点V1进一步计算服务端签名值和中间签名值。
作为一种可选实施例,所述将待签名消息的消息摘要和第一椭圆曲线点发送至服务端,指示服务端基于消息摘要和第一椭圆曲线点,确定服务端签名值和中间签名值,包括:
将待签名消息的消息摘要和第一椭圆曲线点发送至服务端,指示服务端基于消息摘要和第二椭圆曲线点,确定服务端签名值,并基于服务端对应的第二密钥和服务端签名值,确定中间签名值;
其中,第二椭圆曲线点为基于第一椭圆曲线点、第二密钥和服务端的第二随机数确定的。
具体地,服务端在接收到消息摘要e和第一椭圆曲线点V1之后,可以产生范围在[1,n-1]之间的第二随机数k2,基于SM2算法的椭圆曲线参数,计算第二椭圆曲线点V2=(1+d2)*(V1+[k2]G),其中,d2为服务端对应的第二密钥。根据第二椭圆曲线点和消息摘要e,计算服务端签名值,若计算得到的服务端签名值为零,则对服务端签名值重新进行计算,直至服务端签名值不为零为止。
具体通过以下公式计算服务端签名值r:
公式六:r=(x2+e)mod n
式中,x2为第二椭圆曲线点的横坐标。
在得到服务端签名值之后,服务端可以基于服务端签名值、第二随机数和第二密钥,计算中间签名值。
具体通过以下公式计算服务端签名值W2:
公式七:W2=[k2+r*(1+d2)-1]mod n
式中,(1+d2)-1表示(1+d2)在Fq上的模n的逆元。
在此基础上,服务端将计算得到的服务端签名值r和中间签名值W2发送至客户端,客户端基于接收到的服务端签名值r、中间签名值W2、第一随机数和第一密钥,计算客户端签名值。
具体通过如下公式计算客户端签名值s:
公式八:s=[(1+d1)-1*(k1+W2)-r]mod n
式中,(1+d1)-1表示(1+d1)在Fq上的模n的逆元。
作为一种可选实施例,图2为本申请实施例提供的协同密钥生成方法的流程示意图,如图2所示,该方法包括以下步骤:
步骤201,协同签名服务端产生随机数s∈[1,n-1]作为标识密钥的私密值,计算标识主公钥Ppub=[s]G,并将Ppub对外公开。
步骤202,协同签名客户端产生随机数u∈[1,n-1],计算v=[u]G,并将v和用户身份标识ID发给协同签名服务端;
步骤203,协同签名服务端产生随机数w∈[1,n-1],计算用户公钥标识Q=w*v,并将Q对外公开;
步骤204,记Q的坐标(Qx,Qy),结合用户身份标识,计算h=HASH(ID||Qx||Qy),此处HASH()使用SM3密码算法;
步骤205,协同签名服务端产生随机数d2∈[1,n-2],计算x=[(1+d2)-1*w]mod n和y=[(1+d2)-1*(h*s+1)]mod n;
步骤206,若x=0或y=0,则重新进行步骤205,否则将x、y发给协同签名客户端;
步骤207,协同签名客户端计算d1=(u*x+y-1)mod n;
步骤208,若d1=0,则重新进行步骤202,d1和d2分别为协同签名的客户端和协同签名服务端的用户密钥。
作为一种可选实施例,图3为本申请实施例提供的协同签名方法的流程示意图,如图3所示,该方法包括以下步骤:
步骤301,协同签名客户端对待签名消息M进行签名预处理,得到消息摘要e;
步骤302,协同签名客户端产生随机数k1∈[1,n-1],并计算V1=[k1]G,并将e、V1发给协同签名服务端;
步骤303,协同签名服务端产生随机数k2∈[1,n-1],并计算V2=(1+d2)*(V1+[k2]G);
步骤304,记V2的坐标为(x2,y2),根据x2和e计算r=(x2+e)mod n,;
步骤305,若r=0,则重新进行步骤303,否则进行步骤306;
步骤306,协同签名服务端计算W2=[k2+r*(1+d2)-1]mod n,其中(1+d2)-1表示(1+d2)在Fq上的模n的逆元,并将r、W2发给协同签名客户端;
步骤307,协同签名客户端计算s=[(1+d1)-1*(k1+W2)-r]mod n,其中(1+d1)-1表示(1+d1)在Fq上的模n的逆元,
步骤308,若s=0,重新进行步骤302,否则输出签名值r、s作为协同签名结果。
图4为本申请实施例提供的一种协同签名装置的结构示意图,如图4所示,本实施例的装置可以包括:
第一接收模块401,用于接收服务端发送的服务端签名值和中间签名值;
第一确定模块402,用于基于所述服务端签名值、所述中间签名值和客户端对应的第一密钥,确定客户端签名值;其中,所述第一密钥为基于杂凑值确定的,所述杂凑值为基于所述客户端的身份信息标识和所述服务端的公钥标识确定的;
协同签名模块403,用于基于所述服务端签名值和所述客户端签名值,确定协同签名结果。
本申请实施例提供的协同签名装置,通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,由于身份信息标识和/或公钥标识的数据长度远小于数字证书的长度,在传输和存储的过程中对网络带宽和存储资源的要求更低,适用范围更广;在同等网络带宽和存储资源的条件下,数据的传输和处理速度更快,进而提高了协同签名过程中的通信效率。
作为一种可选实施例,该协同签名装置还包括:
第一密钥确定模块,用于接收所述服务端发送的第一中间参数和第二中间参数;
在所述第一中间参数和所述第二中间参数均不为零的情况下,基于所述第一中间参数和所述第二中间参数,确定所述第一密钥;
其中,所述第一中间参数为基于所述服务端的第二密钥和所述服务端的标识随机数确定的;
所述第二中间参数为基于所述第二密钥、所述杂凑值以及所述服务端的初始随机数确定的。
作为一种可选实施例,该协同签名装置还包括:
第一密钥交互模块,用于基于第一密钥随机数,生成第一密钥椭圆曲线点;
将所述第一密钥椭圆曲线点和所述客户端的身份信息标识发送至所述服务端,并指示所述服务端:基于所述第一密钥椭圆曲线点,确定所述公钥标识,并基于所述公钥标识和所述身份信息标识,确定所述杂凑值。
作为一种可选实施例,该协同签名装置还包括:
验证模块,用于确定协同公钥;
根据所述协同公钥,验证所述协同签名结果;
其中,所述协同公钥为基于所述杂凑值、所述服务端的公钥标识以及初始公钥确定的。
作为一种可选实施例,该协同签名装置还包括第一发送模块,第一发送模块包括第一椭圆曲线点确定子模块和第一发送子模块;
第一椭圆曲线点确定子模块,用于基于第一随机数,确定第一椭圆曲线点;
第一发送子模块,用于将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和所述第一椭圆曲线点,确定所述服务端签名值和所述中间签名值。
作为一种可选实施例,该第一发送子模块用于将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和第二椭圆曲线点,确定所述服务端签名值,并基于所述服务端对应的第二密钥和所述服务端签名值,确定所述中间签名值;
其中,所述第二椭圆曲线点为基于所述第一椭圆曲线点、所述第二密钥和所述服务端的第二随机数确定的。
作为一种可选实施例,该协同签名装置还包括:
预处理模块,用于对所述待签名消息进行预处理,得到所述消息摘要。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现上述协同签名方法的步骤,与相关技术相比可实现:通过身份信息标识将密钥与用户身份绑定,无需借助数字证书来实现密钥与用户身份的关联,由于身份信息标识和/或公钥标识的数据长度远小于数字证书的长度,在传输和存储的过程中对网络带宽和存储资源的要求更低,适用范围更广;在同等网络带宽和存储资源的条件下,数据的传输和处理速度更快,进而提高了协同签名过程中的通信效率。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004,收发器5004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
处理器5001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器5003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器5003用于存储执行本申请实施例的计算机程序,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种协同签名方法,应用于客户端,其特征在于,包括:
接收服务端发送的服务端签名值和中间签名值;
基于所述服务端签名值、所述中间签名值和所述客户端的第一密钥,确定客户端签名值;其中,所述第一密钥为基于杂凑值确定的,所述杂凑值为基于所述客户端的身份信息标识和所述服务端的公钥标识确定的;
基于所述服务端签名值和所述客户端签名值,确定协同签名结果。
2.根据权利要求1所述的协同签名方法,其特征在于,所述方法还包括:
接收所述服务端发送的第一中间参数和第二中间参数;
在所述第一中间参数和所述第二中间参数均不为零的情况下,基于所述第一中间参数和所述第二中间参数,确定所述第一密钥;
其中,所述第一中间参数为基于所述服务端的第二密钥和所述服务端的标识随机数确定的;
所述第二中间参数为基于所述第二密钥、所述杂凑值以及所述服务端的初始随机数确定的。
3.根据权利要求2所述的协同签名方法,其特征在于,所述接收所述服务端发送的第一中间参数和第二中间参数之前,所述方法还包括:
基于第一密钥随机数,生成第一密钥椭圆曲线点;
将所述第一密钥椭圆曲线点和所述客户端的身份信息标识发送至所述服务端,并指示所述服务端:基于所述第一密钥椭圆曲线点,确定所述公钥标识,并基于所述公钥标识和所述身份信息标识,确定所述杂凑值。
4.根据权利要求1至3中任一项所述的协同签名方法,其特征在于,所述基于所述服务端签名值和所述客户端签名值,确定协同签名结果之后,所述方法还包括:
确定协同公钥;
根据所述协同公钥,验证所述协同签名结果;
其中,所述协同公钥为基于所述杂凑值、所述服务端的公钥标识以及初始公钥确定的。
5.根据权利要求1至3中任一项所述的协同签名方法,其特征在于,所述接收服务端发送的服务端签名值和中间签名值之前,所述方法还包括:
基于第一随机数,确定第一椭圆曲线点;
将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和所述第一椭圆曲线点,确定所述服务端签名值和所述中间签名值。
6.根据权利要求5所述的协同签名方法,其特征在于,所述将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和所述第一椭圆曲线点,确定所述服务端签名值和所述中间签名值,包括:
将待签名消息的消息摘要和所述第一椭圆曲线点发送至所述服务端,指示所述服务端基于所述消息摘要和第二椭圆曲线点,确定所述服务端签名值,并基于所述服务端对应的第二密钥和所述服务端签名值,确定所述中间签名值;
其中,所述第二椭圆曲线点为基于所述第一椭圆曲线点、所述第二密钥和所述服务端的第二随机数确定的。
7.根据权利要求5所述的协同签名方法,其特征在于,所述基于第一随机数,确定第一椭圆曲线点之前,所述方法还包括:
对所述待签名消息进行预处理,得到所述消息摘要。
8.一种协同签名装置,其特征在于,包括:
第一接收模块,用于接收服务端发送的服务端签名值和中间签名值;
第一确定模块,用于基于所述服务端签名值、所述中间签名值和客户端对应的第一密钥,确定客户端签名值;其中,所述第一密钥为基于杂凑值确定的,所述杂凑值为基于所述客户端的身份信息标识和所述服务端的公钥标识确定的;
协同签名模块,用于基于所述服务端签名值和所述客户端签名值,确定协同签名结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124948.9A CN115378615A (zh) | 2022-09-15 | 2022-09-15 | 协同签名方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124948.9A CN115378615A (zh) | 2022-09-15 | 2022-09-15 | 协同签名方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115378615A true CN115378615A (zh) | 2022-11-22 |
Family
ID=84071785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211124948.9A Pending CN115378615A (zh) | 2022-09-15 | 2022-09-15 | 协同签名方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115378615A (zh) |
-
2022
- 2022-09-15 CN CN202211124948.9A patent/CN115378615A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628868B (zh) | 数字签名生成方法、装置、计算机设备和存储介质 | |
CN110247757B (zh) | 基于国密算法的区块链处理方法、装置及系统 | |
JP4545831B2 (ja) | データカード検証装置 | |
CN111200502A (zh) | 协同数字签名方法和装置 | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 | |
JP4453996B2 (ja) | 通信方法、通信システム、及び、コンピュータ読み取り可能な記録媒体 | |
CN110990484B (zh) | 基于区块链的信息存储方法、系统、计算机设备及存储介质 | |
CN112187469B (zh) | 一种基于密钥因子的sm2多方协同数字签名方法和系统 | |
CN112118111B (zh) | 一种适用于门限计算的sm2数字签名方法 | |
CN109361519B (zh) | 一种改进的包含秘密的数的生成方法及系统 | |
CN108055136A (zh) | 基于椭圆曲线的签名方法、装置、计算机设备及存储介质 | |
CN112632630A (zh) | 一种基于sm2的协同签名计算方法及装置 | |
CN112653554A (zh) | 一种签名方法、系统、设备及可读存储介质 | |
CN111582867A (zh) | 一种协同签名和解密方法、装置、电子设备和存储介质 | |
CN110266478B (zh) | 一种信息处理方法、电子设备 | |
EP3935779B9 (en) | A method for providing a digital signature to a message | |
CN116865970A (zh) | 基于国密算法的多方协同密钥产生和数字签名方法及系统 | |
JP4307589B2 (ja) | 認証プロトコル | |
CN115941205A (zh) | 一种基于sm2的多重签名方法 | |
CN115378615A (zh) | 协同签名方法、装置、电子设备及存储介质 | |
CN112804062A (zh) | 一种基于sm2算法的无证书签名方法、装置、设备及介质 | |
CN114338027B (zh) | 区块链的隐私处理方法、请求终端及存储介质 | |
US11438146B1 (en) | System and method for performing key exchange while overcoming a malicious adversary party | |
CN116318738B (zh) | 签名方法、系统、电子设备及存储介质 | |
JP6881588B2 (ja) | 秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
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 |