CN113381856A - 数字签名及验签方法、系统、装置及存储介质 - Google Patents

数字签名及验签方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN113381856A
CN113381856A CN202110770598.2A CN202110770598A CN113381856A CN 113381856 A CN113381856 A CN 113381856A CN 202110770598 A CN202110770598 A CN 202110770598A CN 113381856 A CN113381856 A CN 113381856A
Authority
CN
China
Prior art keywords
signature
user
root
data
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.)
Pending
Application number
CN202110770598.2A
Other languages
English (en)
Inventor
孙亚东
王志海
喻波
魏力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wondersoft Technology Co Ltd
Original Assignee
Beijing Wondersoft Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wondersoft Technology Co Ltd filed Critical Beijing Wondersoft Technology Co Ltd
Priority to CN202110770598.2A priority Critical patent/CN113381856A/zh
Publication of CN113381856A publication Critical patent/CN113381856A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数字签名及验签方法、系统、装置及存储介质。其中,该系统包括:密钥生成处理模块,用于为多个用户端生成用户签名根私钥和用户验签根公钥;数字签名模块,用于根据多个用户端发送的多个签名私钥片断恢复得到用户签名根私钥,并采用用户签名根私钥对待签名数据进行签名处理,得到待验签数据;数字验签模块,用于根据多个用户端发送的多个验签公钥片断恢复得到用户验签根公钥,并采用用户验签根公钥对待验签数据进行验签处理,确定待验签数据是否验签通过。本发明解决了传统数字签名系统中多重签名的验签过程效率低下,甚至导致无法验签的单点故障的技术问题。

Description

数字签名及验签方法、系统、装置及存储介质
技术领域
本发明涉及数字签名领域,具体而言,涉及一种数字签名及验签方法、系统、装置及存储介质。
背景技术
现有技术中,如图1所示,在传统数字签名系统中,用户需要拥有完整的签名公钥、签名私钥,如果部分用户签名私钥丢失则会造成无法验签的单点故障问题。
另外,如图2所示,若需要多名用户签名,则需要按照一定顺序进行签名;并且需要按相同顺序进行验签,如图3所示,在多重签名情况下,需要根据用户数量,执行多次椭圆曲线的密码SM2算法,执行速度相对较慢,导致验签效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数字签名及验签方法、系统、装置及存储介质,以至少解决传统数字签名系统中多重签名的验签过程效率低下,甚至导致无法验签的单点故障的技术问题。
根据本发明实施例的一个方面,提供了一种数字签名及验签系统,包括:密钥生成处理模块,用于为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,并将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,其中,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;数字签名模块,用于根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;数字验签模块,用于根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
可选地,上述密钥生成处理模块,还用于预先设置签名及验签阈值,其中,上述签名及验签阈值基于待签名及验签的人员数量确定;上述密钥生成处理模块,还用于并采用椭圆曲线公钥密钥算法和用户识别码信息生成上述用户签名根私钥,并采用密钥拆分多项式,根据上述签名及验签阈值将上述用户签名根私钥拆分成多个签名私钥片断,其中,上述用户识别码信息包括:企业编号和部门编号。
可选地,上述密钥生成处理模块,还用于采用拉格朗日插值法构造密钥拆分多项式,并根据上述构造密钥拆分多项式将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断。
可选地,上述数字签名模块,还用于在接收到上述待签名数据后,采用SM3杂凑算法生成上述待签名数据的第一摘要值;采用密钥恢复算法,根据多个用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥;以及采用SM2算法和上述用户签名根私钥对上述第一摘要值进行加密处理,生成第一数字签名;将上述第一数字签名和上述待签名数据的数据正文进行结合,得到上述待验签数据。
可选地,上述数字验签模块,还用于在接收到上述待验签数据后,解析上述待验签数据得到上述数据正文和上述第一数字签名,并采用SM3杂凑算法生成上述数据正文的第二摘要值。
可选地,上述数字验签模块,还用于根据多个用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用SM2算法和上述用户验签根公钥对上述第二摘要值进行加密处理,生成第二数字签名,比对上述第一数字签名和上述第二数字签名是否相等,若上述第一数字签名和上述第二数字签名相等,则确定上述待验签数据验签通过,若上述第一数字签名和上述第二数字签名不等,则确定上述待验签数据验签不通过。
根据本发明实施例的另一方面,还提供了一种数字签名及验签方法,包括:在数字签名及验签系统中实现,上述数字签名及验签系统包括:密钥生成处理模块、数字签名模块和数字验签模块,上述方法包括:采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,其中,上述密钥生成处理模块还用于将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
可选地,采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,包括:采用上述密钥生成处理模块预先设置签名及验签阈值,其中,上述签名及验签阈值基于待签名及验签的人员数量确定;采用上述密钥生成处理模块基于椭圆曲线公钥密钥算法和用户识别码信息生成上述用户签名根私钥;采用上述密钥生成处理模块采用拉格朗日插值法构造密钥拆分多项式,并依据上述密钥拆分多项式和上述签名及验签阈值将上述用户签名根私钥拆分成多个签名私钥片断,其中,上述用户识别码信息包括:企业编号和部门编号。
可选地,采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据,包括:采用上述数字签名模块在接收到上述待签名数据后,采用SM3杂凑算法生成上述待签名数据的第一摘要值;采用上述数字签名模块基于密钥恢复算法,根据多个用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥;采用上述数字签名模块基于SM2算法和上述用户签名根私钥对上述第一摘要值进行加密处理,生成第一数字签名;采用上述数字签名模块将上述第一数字签名和上述待签名数据的数据正文进行结合,得到上述待验签数据。
可选地,采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过,包括:采用上述数字验签模块在接收到上述待验签数据后,解析上述待验签数据得到上述数据正文和上述第一数字签名,并采用SM3杂凑算法生成上述数据正文的第二摘要值;采用上述数字验签模块根据多个用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥;采用上述数字验签模块基于SM2算法和上述用户验签根公钥对上述第二摘要值进行加密处理,生成第二数字签名;采用上述数字验签模块比对上述第一数字签名和上述第二数字签名是否相等,若上述第一数字签名和上述第二数字签名相等,则确定上述待验签数据验签通过,若上述第一数字签名和上述第二数字签名不等,则确定上述待验签数据验签不通过。
根据本发明实施例的另一方面,还提供了一种数字签名及验签装置,包括:第一处理模块,用于采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,其中,上述密钥生成处理模块还用于将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;第二处理模块,用于采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;第三处理模块,用于采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,上述非易失性存储介质存储有多条指令,上述指令适于由处理器加载并执行任意一项上述的数字签名及验签方法。
根据本发明实施例的另一方面,还提供了一种处理器,上述处理器用于运行程序,其中,上述程序被设置为运行时执行任意一项上述数字签名及验签方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的数字签名及验签方法。
在本发明实施例中,提供一种数字签名及验签方案,以该数字签名及验签系统为例,该数字签名及验签系统,包括:密钥生成处理模块,用于为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,并将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,其中,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;数字签名模块,用于根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;数字验签模块,用于根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
容易注意到的是,本申请实施例中,通过采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,其中,上述密钥生成处理模块还用于将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
由此,本申请实施例达到了化解单点故障问题,提升多重签名验签效率的目的,基于秘密共享方法实现了多重验签过程中只需执行一次椭圆曲线公钥密钥算法,从而可以实现大幅提高验签效率,且即使一个用户丢失秘钥也不会影响签名验签工作的技术效果,进而解决了传统数字签名系统中多重签名的验签过程效率低下,甚至导致无法验签的单点故障的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种传统数字签名流程的示意图;
图2是根据现有技术的一种多重签名过程的示意图;
图3是根据现有技术的一种多重验签过程的示意图;
图4是根据本发明实施例的一种数字签名及验签系统的示意图;
图5是根据本发明实施例的一种可选的秘钥生成过程的示意图;
图6是根据本发明实施例的一种可选的秘钥分发过程的示意图;
图7是根据本发明实施例的一种可选的汇聚签名私钥过程的示意图;
图8是根据本发明实施例的一种可选的汇聚验签公钥过程的示意图;
图9是根据本发明实施例的一种可选的数据签名过程的示意图;
图10是根据本发明实施例的一种可选的数据验签过程的示意图;
图11是根据本发明实施例的一种可选的秘钥片段分发过程的示意图;
图12是根据本发明实施例的一种可选的秘钥片段汇聚过程的示意图;
图13是根据本发明实施例的一种可选的秘钥恢复算法公式的示意图;
图14是根据本发明实施例的一种数字签名及验签方法的流程图;
图15是根据本发明实施例的一种可选的系统框架结构的示意图;
图16是根据本发明实施例的一种数字签名及验签装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种数字签名及验签的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图4是根据本发明实施例的一种数字签名及验签系统的示意图,如图4所示,该系统包括:密钥生成处理模块40、数字签名模块42和数字验签模块44,其中:
密钥生成处理模块40,用于为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,并将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,其中,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;数字签名模块42,用于根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;数字验签模块44,用于根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
容易注意到的是,本申请实施例中,如图5所示,通过密钥生成处理模块生成用户签名根私钥和用户验签根公钥,并将上述用户验签根公钥拆分成多个验签公钥片断,并将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,分发过程如图6所示,图中PKI是指公开密钥基础设施Public Key Infrastructue,支持公钥管理体系的基础设施,提供鉴别、加密、完整性和不可否认性认证服务。
多个上述用户端接收到多个上述验签公钥片断和签名私钥片断后,如图7所示,采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥;并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;采用此方案进行验签时,若一个用户密钥丢失,根据拉格朗日插值算法,依然可以恢复出根密钥,不影响签名验签工作;并且此验签过程,只需执行一次SM2算法,故能大幅提高签名效率,验签时,用户首先将验签公钥片断发给至数字验签模块,由数字验签模块恢复上述验签根公钥,如图8所示,然后执行验签工作,在此验签过程中,采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过,整个过程只需执行一次SM2算法,故能大幅提高验签效率;数据签名过程如图9所示,数据验签过程如图10所示。
可选的,上述密钥生成处理模块,还用于预先设置签名及验签阈值,其中,上述签名及验签阈值基于待签名及验签的人员数量确定;上述密钥生成处理模块,还用于并采用椭圆曲线公钥密钥算法和用户识别码信息生成上述用户签名根私钥,并采用密钥拆分多项式,根据上述签名及验签阈值将上述用户签名根私钥拆分成多个签名私钥片断,其中,上述用户识别码信息包括:企业编号和部门编号。
需要说明的是,在一个系统中,有N个用户可以进行数据签名、数据验签操作,系统根据多用户签名的需要,首先为多个用户采用椭圆曲线公钥密钥SM2算法产生共同的签名根私钥root_pri、验签根公钥root_pri;然后采用Shamir秘密分享方法,使用拉格朗日插值法将用户签名根私钥与用户验签根公钥,拆分成用户签名私钥片断N个、用户验签公钥片断N个,发送N个用户,每个用户发送1个用户验签公钥片断、1个用户签名私钥片断。
需要说明的是,Shamir秘密共享方案是将秘密信息S分成n份子秘密信息{S1、S2、S3、Sn},将子秘密信息存储,Sn发给参与者只有授权集合中的参与者子集可以利用其所拥有的子秘密恢复S。
可选的,上述密钥生成处理模块,还用于采用拉格朗日插值法构造密钥拆分多项式,并根据上述构造密钥拆分多项式将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断。
在本申请实施例中,根据拉格朗日插值算法,以签名根私钥为例进行说明,构造密钥拆分多项式为:F(x)=(root_pri+A1X1+A2X2+A3X3+AnXn)mod(p),其中,签名根私钥root_pri是需要保护数据;A是多项式参数,在构建函数时由系统产生;X是待生成的用户签名私钥片断;P是素数,且P要大于签名根私钥root_pri;N是用户数,将密钥拆分成N份;mod为求余函数。根据密钥拆分多项式,产生用户密钥片断,系统产生N个随机数,作为参数X的值,经过多项式运行后,产生N个F(x)值,即:(X1,F(X1),X2,F(X2),X3,F(X3),Xn,F(Xn));如图11所示,用户与系统间,采用Diffie_Hellman密钥交换协议,安全地将用户密钥片断发送至用户,其中,Diffie-Hellman是一种密钥交换协议,利用有限域质数分解数学难题实现在公开网络生成共享密钥。
可选的,上述数字签名模块,还用于在接收到上述待签名数据后,采用SM3杂凑算法生成上述待签名数据的第一摘要值;采用密钥恢复算法,根据多个用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥;以及采用SM2算法和上述用户签名根私钥对上述第一摘要值进行加密处理,生成第一数字签名;将上述第一数字签名和上述待签名数据的数据正文进行结合,得到上述待验签数据。
需要说明的是,用户与系统间,采用Diffie_Hellman密钥交换协议,安全地将用户密钥片断发送至系统,发送过程如图12所示;根据拉格朗日插值法,构造密钥恢复算法如图13所示,其中,yi是密钥拆分多项式中F(xi);t是用户个数,t小于n;i、j是遍历数,且i,j<t;假如选择10个用户的公钥片断,恢复根公钥。那么i和j的取值范围是从1遍历到10,并且i不等j,即i=1时,j不能取1,依次类推;此公式中的素数p与密钥拆分多项中的p值相等;F(x)是待计算生成的根密钥。
在本申请实施例中,数据发送者采用SM3杂凑算法,生成上述待签名数据的第一摘要值;用户将上述用户签名私钥片断,采用安全通道发送至数据发送者;数据发送者汇聚签名私钥后,采用拉格朗日插值法密钥恢复算法,计算生成上述用户签名根私钥;数据发送者采用SM2算法和上述用户签名根私钥,对数据摘要值加密,生成数字签名A即第一数字签名;数据发送者将数据正文与数字签名A结合,构造成上述待验签数据,并发送至数据接收者,如图9所示;用户将密钥片段发送到系统后,系统运行密钥恢复算法,其中x、yi、p均是已知值,F(x)是待计算生成的结果,即根密钥。
可选的,上述数字验签模块,还用于在接收到上述待验签数据后,解析上述待验签数据得到上述数据正文和上述第一数字签名,并采用SM3杂凑算法生成上述数据正文的第二摘要值。
可选的,上述数字验签模块,还用于根据多个用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用SM2算法和上述用户验签根公钥对上述第二摘要值进行加密处理,生成第二数字签名,比对上述第一数字签名和上述第二数字签名是否相等,若上述第一数字签名和上述第二数字签名相等,则确定上述待验签数据验签通过,若上述第一数字签名和上述第二数字签名不等,则确定上述待验签数据验签不通过。
在本申请实施例中,如图10所示,数据接收者接收到外部系统发来的数据,根据约定,解析出数字签名A与数据正文;并采用SM3杂凑算法,生成数据正文的摘要值;数据接收者汇聚用户发来的多个上述验签公钥片断,采用密钥恢复算法,生成上述用户验签根公钥;再采用SM2算法和上述用户验签根公钥对上述第二摘要值进行加密处理,生成数字签名B即第二数字签名;对比数字签名B与数字签名A是否相等,相等则验签通过,不相等则验签不通过。
实施例2
根据本发明实施例,还提供了一种用于实施上述数字签名及验签方法的方法实施例,图14是根据本发明实施例的一种数字签名及验签方法的流程图,如图14所示,该方法包括如下步骤:
步骤S102,采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,其中,上述密钥生成处理模块还用于将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;
步骤S104,采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;
步骤S106,采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
在本申请实施例中,通过密钥生成处理模块生成用户签名根私钥和用户验签根公钥,并将上述用户验签根公钥拆分成多个验签公钥片断,并将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,多个上述用户端接收到多个上述验签公钥片断和签名私钥片断后,采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;采用此方案进行验签时,若一个用户密钥丢失,根据拉格朗日插值算法,依然可以恢复出根密钥,不影响签名验签工作;并且此验签过程,只需执行一次SM2算法,故能大幅提高签名验签效率。
可选的,采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,包括:
步骤S202,采用上述密钥生成处理模块预先设置签名及验签阈值,其中,上述签名及验签阈值基于待签名及验签的人员数量确定;
步骤S204,采用上述密钥生成处理模块基于椭圆曲线公钥密钥算法和用户识别码信息生成上述用户签名根私钥;
步骤S206,采用上述密钥生成处理模块采用拉格朗日插值法构造密钥拆分多项式,并依据上述密钥拆分多项式和上述签名及验签阈值将上述用户签名根私钥拆分成多个签名私钥片断,其中,上述用户识别码信息包括:企业编号和部门编号。
在本申请实施例中,一个系统中有N个用户可以进行数据签名、数据验签操作,系统根据多用户签名的需要,首先为多个用户采用椭圆曲线公钥密钥SM2算法产生共同的签名根私钥root_pri、验签根公钥root_pri;然后采用Shamir秘密分享方法,使用拉格朗日插值法将用户签名根私钥与用户验签根公钥,拆分成用户签名私钥片断N个、用户验签公钥片断N个,发送N个用户,每个用户发送1个用户验签公钥片断、1个用户签名私钥片断。
需要说明的是,Shamir秘密共享方案是将秘密信息S分成n份子秘密信息{S1、S2、S3、Sn},将子秘密信息存储,Sn发给参与者只有授权集合中的参与者子集可以利用其所拥有的子秘密恢复S。
根据拉格朗日插值算法,以签名根私钥为例进行说明,构造密钥拆分多项式为:F(x)=(root_pri+A1X1+A2X2+A3X3+AnXn)mod(p),其中,签名根私钥root_pri是需要保护数据;A是多项式参数,在构建函数时由系统产生;X是待生成的用户签名私钥片断;P是素数,且P要大于签名根私钥root_pri;N是用户数,将密钥拆分成N份;mod为求余函数。根据密钥拆分多项式,产生用户密钥片断,系统产生N个随机数,作为参数X的值,经过多项式运行后,产生N个F(x)值,即:(X1,F(X1),X2,F(X2),X3,F(X3),Xn,F(Xn));用户与系统间,采用Diffie_Hellman密钥交换协议,安全地将用户密钥片断发送至用户,如图11所示,其中,Diffie-Hellman是一种密钥交换协议,利用有限域质数分解数学难题实现在公开网络生成共享密钥。
可选的,采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据,包括:
步骤S302,采用上述数字签名模块在接收到上述待签名数据后,采用SM3杂凑算法生成上述待签名数据的第一摘要值;
步骤S304,采用上述数字签名模块基于密钥恢复算法,根据多个用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥;
步骤S306,采用上述数字签名模块基于SM2算法和上述用户签名根私钥对上述第一摘要值进行加密处理,生成第一数字签名;
步骤S308,采用上述数字签名模块将上述第一数字签名和上述待签名数据的数据正文进行结合,得到上述待验签数据。
需要说明的是,用户与系统间,采用Diffie_Hellman密钥交换协议,安全地将用户密钥片断发送至系统,发送过程如图12所示;根据拉格朗日插值法,构造密钥恢复算法如图13所示,其中,yi是密钥拆分多项式中F(xi);t是用户个数,t小于n;i、j是遍历数,且i,j<t;假如选择10个用户的公钥片断,恢复根公钥。那么i和j的取值范围是从1遍历到10,并且i不等j,即i=1时,j不能取1,依次类推;此公式中的素数p与密钥拆分多项中的p值相等;F(x)是待计算生成的根密钥。
在本申请实施例中,数据发送者采用SM3杂凑算法,生成上述待签名数据的第一摘要值;用户将上述用户签名私钥片断,采用安全通道发送至数据发送者;数据发送者汇聚签名私钥后,采用拉格朗日插值法密钥恢复算法,计算生成上述用户签名根私钥;数据发送者采用SM2算法和上述用户签名根私钥,对数据摘要值加密,生成数字签名A即第一数字签名;数据发送者将数据正文与数字签名A结合,构造成上述待验签数据,并发送至数据接收者,如图9所示;用户将密钥片段发送到系统后,系统运行密钥恢复算法,其中x、yi、p均是已知值,F(x)是待计算生成的结果,即根密钥。
可选的,采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过,包括:
步骤S302,采用上述数字验签模块在接收到上述待验签数据后,解析上述待验签数据得到上述数据正文和上述第一数字签名,并采用SM3杂凑算法生成上述数据正文的第二摘要值;
步骤S304,采用上述数字验签模块根据多个用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥;
步骤S306,采用上述数字验签模块基于SM2算法和上述用户验签根公钥对上述第二摘要值进行加密处理,生成第二数字签名;
步骤S308,采用上述数字验签模块比对上述第一数字签名和上述第二数字签名是否相等,若上述第一数字签名和上述第二数字签名相等,则确定上述待验签数据验签通过,若上述第一数字签名和上述第二数字签名不等,则确定上述待验签数据验签不通过。
在本申请实施例中,数据接收者接收到外部系统发来的数据,根据约定,解析出数字签名A与数据正文;并采用SM3杂凑算法,生成数据正文的摘要值;数据接收者汇聚用户发来的多个上述验签公钥片断,采用密钥恢复算法,生成上述用户验签根公钥;再采用SM2算法和上述用户验签根公钥对上述第二摘要值进行加密处理,生成数字签名B即第二数字签名;对比数字签名B与数字签名A是否相等,相等则验签通过,不相等则验签不通过。
在一种可选的实施例中,某大型制造业公司需要与产业链上下游企业开展大量的协同工作,这个过程中,涉及原料部、辅料部、仓储管理库、生产制造部、工艺质量部、营销部、采购部、财务部等部门。
为生产某牌号产品,原料部与辅料部根据产品清单,提出原料与辅料需求,仓储管理部结合仓储库存情况,提出原料与辅助供应计算,对于库存不足的原料与辅助,提出采购订单,由采购部选择供应商,执行采购任务。生产制造部门根据营销部门提供的销售计划、结合库存情况,制定生产计划单,安排工作,工艺质量部门根据生产任务和公司质量管理要求,对在制品、成品执行质量检验工作,财务部门根据库存的变化、在制品变化、成品库存变化进行财务核算。
这个过程中,涉及大量合同、计划、订单等上下游协同材料,若后期发生采购错误、生产计划执行错误等问题,将影响整个协同链条,为保证上下游协同畅通,监督每个环节执行可靠性,在发生问题时,追溯问题产生部门,需要每个环节在驱动下游产生动作时,采用数字签名,确定是相应部门生成的驱动文件,也可以避免协同文件被非法篡改,若出现问题后,以便于确认协同文件由本部门发生并负责。
由于产业链协同过程,涉及多个部门,每个部门内多名员工对此协同环节负责,因此需要为每个部门分别产生多个用户签名根私钥和用户验签根公钥,只要满足签名验签规则即可完成签名验签工作,既保护每个环节的可靠性,又能满足工作协同的效率。
在此项目中,系统架构如图15所示,其中基础服务模块,负责生成用户签名根私钥和用户验签根公钥,并负责将将用户签名根私钥和用户验签根公钥拆分成用户签名根私钥片段和用户验签根公钥片段并发送至用户;数据签名模块负责根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;数据验签模块负责根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
在一种可选的实施例中,基础服务由根密钥生成、密钥拆分、密钥分发、用户密钥管理、用户管理、加密算法、签名验签阈值、文件签名验签对应关系表组成,其中:密钥生成处理模块采用SM2算法,基于企业编号和部门编号,生成部门根密钥;在系统定义用户的部门与部门内的人员信息;定义部门内需要为哪些人员生成签名与验密钥,签名与验签密钥成对出现,签名验签人员数量必须大于2;根密钥生成后,采用密钥拆分多项式,根据签名验签阈值设置,将密钥拆分成所需要数量;密钥拆分后,将用户密钥与用户关联;用户密钥与用户关联后,用户可以查询其签名和验签过的文件。
在一种可选的实施例中,当业务系统生成本部门的协同文件后,将文件发送至数据签名验签系统的数据签名子系统,由签名子系统开展签名工作,其中:数据签名由数据接收、数据摘要、汇聚签名私钥、数字签名、数据整合、数据返回模块构成;当业务系统产业协同文件需要签名后,将数据发送至数据签名模块,数据签名模块接收数据,发送签名请求;系统收到待签名数据后,采用SM3杂凑算法,生成数据摘要值;汇聚签名私钥,查询数据签名请求部门对应的用户密钥,取得用户签名密钥;基于用户签名密钥,使用密钥恢复算法,计算部门签名根私钥;使用SM2算法、部门签名根私钥,加密数据正文,得到数字签名;将数据正文与数字签名转换成PDF,并整合成一个文件;将整合后数据返回值业务系统。
在一种可选的实施例中,当业务系统收到工作流协同上游部门发送到文件后,将文件发送至数据签名验签系统的数据验签子系统,由验签子系统开展验签工作,其中:数据验签由数据接收、数据拆分、产生数据摘要、汇聚验签公钥、产生数字签名、验签模块构成;数据验签子系统接收业务系统发送的待验数据;将业务系统发来的整合文件,拆分成数据正文和数字签名A两部分;并采用SM3杂凑算法,生成数据摘要值;查询数据签名部门对应的用户密钥,取得用户验签密钥,基于用户签名密钥,使用密钥恢复算法,计算部门验签根公钥;采用SM2算法、部门验签根公钥、数据摘要值,生成数字签名B;比较数字签名A与数字签名B,是否相等,若相等,则验签通过;若不相等,则验签不通过;当验签不通过时,告知业务系统,数字签名不一致。
通过本申请实施例,达到了化解单点故障问题,提升多重签名验签效率的目的,从而基于秘密共享方法实现了多重验签过程中只需执行一次椭圆曲线公钥密钥算法,从而大幅提高验签效率,且即使一个用户丢失秘钥也不会影响签名验签工作的技术效果,进而解决了传统数字签名系统中多重签名的验签过程效率低下,甚至导致无法验签的单点故障的技术问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例上述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述数字签名及验签方法的装置实施例,图16是根据本发明实施例的一种数字签名及验签装置的结构示意图,如图16所示,上述数字签名及验签装置,包括:第一处理模块50、第二处理模块52和第三处理模块54,其中:
第一处理模块50,用于采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,其中,上述密钥生成处理模块还用于将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;第二处理模块52,用于采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;第三处理模块54,用于采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述数字签名及验签装置对应于实施例2中的步骤S102至步骤S106,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例2中的相关描述,此处不再赘述。
上述的数字签名及验签装置还可以包括处理器和存储器,上述数字签名及验签装置等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本申请实施例,还提供了一种非易失性存储介质的实施例。可选地,在本实施例中,上述非易失性存储介质包括存储的程序,其中,在上述程序运行时控制上述非易失性存储介质所在设备执行上述任意一种数字签名及验签方法。
可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述非易失性存储介质包括存储的程序。
可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:密钥生成处理模块,用于为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,并将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,其中,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;数字签名模块,用于根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;数字验签模块,用于根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将上述用户签名根私钥拆分成多个签名私钥片断,以及将上述用户验签根公钥拆分成多个验签公钥片断,其中,上述密钥生成处理模块还用于将多个上述签名私钥片断和多个上述验签公钥片断发送至多个上述用户端,对每个上述用户端分别发送一个上述验签公钥片断和一个签名私钥片断;采用数字签名模块根据多个上述用户端发送的多个上述签名私钥片断恢复得到上述用户签名根私钥,并采用上述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;采用数字验签模块根据多个上述用户端发送的多个上述验签公钥片断恢复得到上述用户验签根公钥,并采用上述用户验签根公钥对上述待验签数据进行验签处理,确定上述待验签数据是否验签通过。
根据本申请实施例,还提供了一种处理器的实施例。可选地,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种数字签名及验签方法。
根据本申请实施例,还提供了一种电子设备的实施例,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行上述任意一种的数字签名及验签方法。
根据本申请实施例,还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有上述任意一种的数字签名及验签方法步骤的程序。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种数字签名及验签系统,其特征在于,包括:
密钥生成处理模块,用于为多个用户端生成用户签名根私钥和用户验签根公钥;将所述用户签名根私钥拆分成多个签名私钥片断,以及将所述用户验签根公钥拆分成多个验签公钥片断,并将多个所述签名私钥片断和多个所述验签公钥片断发送至多个所述用户端,其中,对每个所述用户端分别发送一个所述验签公钥片断和一个签名私钥片断;
数字签名模块,用于根据多个所述用户端发送的多个所述签名私钥片断恢复得到所述用户签名根私钥,并采用所述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;
数字验签模块,用于根据多个所述用户端发送的多个所述验签公钥片断恢复得到所述用户验签根公钥,并采用所述用户验签根公钥对所述待验签数据进行验签处理,确定所述待验签数据是否验签通过。
2.根据权利要求1所述的系统,其特征在于,
所述密钥生成处理模块,还用于预先设置签名及验签阈值,其中,所述签名及验签阈值基于待签名及验签的人员数量确定;
所述密钥生成处理模块,还用于并采用椭圆曲线公钥密钥算法和用户识别码信息生成所述用户签名根私钥,并采用密钥拆分多项式,根据所述签名及验签阈值将所述用户签名根私钥拆分成多个签名私钥片断,其中,所述用户识别码信息包括:企业编号和部门编号。
3.根据权利要求2所述的系统,其特征在于,所述密钥生成处理模块,还用于采用拉格朗日插值法构造密钥拆分多项式,并根据所述构造密钥拆分多项式将所述用户签名根私钥拆分成多个签名私钥片断,以及将所述用户验签根公钥拆分成多个验签公钥片断。
4.根据权利要求1所述的系统,其特征在于,
所述数字签名模块,还用于在接收到所述待签名数据后,采用SM3杂凑算法生成所述待签名数据的第一摘要值;采用密钥恢复算法,根据多个用户端发送的多个所述签名私钥片断恢复得到所述用户签名根私钥;以及采用SM2算法和所述用户签名根私钥对所述第一摘要值进行加密处理,生成第一数字签名;将所述第一数字签名和所述待签名数据的数据正文进行结合,得到所述待验签数据。
5.根据权利要求4所述的系统,其特征在于,
所述数字验签模块,还用于在接收到所述待验签数据后,解析所述待验签数据得到所述数据正文和所述第一数字签名,并采用SM3杂凑算法生成所述数据正文的第二摘要值。
6.根据权利要求5所述的系统,其特征在于,
所述数字验签模块,还用于根据多个用户端发送的多个所述验签公钥片断恢复得到所述用户验签根公钥,并采用SM2算法和所述用户验签根公钥对所述第二摘要值进行加密处理,生成第二数字签名,比对所述第一数字签名和所述第二数字签名是否相等,若所述第一数字签名和所述第二数字签名相等,则确定所述待验签数据验签通过,若所述第一数字签名和所述第二数字签名不等,则确定所述待验签数据验签不通过。
7.一种数字签名及验签方法,其特征在于,在数字签名及验签系统中实现,所述数字签名及验签系统包括:密钥生成处理模块、数字签名模块和数字验签模块,所述方法包括:
采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将所述用户签名根私钥拆分成多个签名私钥片断,以及将所述用户验签根公钥拆分成多个验签公钥片断,其中,所述密钥生成处理模块还用于将多个所述签名私钥片断和多个所述验签公钥片断发送至多个所述用户端,对每个所述用户端分别发送一个所述验签公钥片断和一个签名私钥片断;
采用数字签名模块根据多个所述用户端发送的多个所述签名私钥片断恢复得到所述用户签名根私钥,并采用所述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;
采用数字验签模块根据多个所述用户端发送的多个所述验签公钥片断恢复得到所述用户验签根公钥,并采用所述用户验签根公钥对所述待验签数据进行验签处理,确定所述待验签数据是否验签通过。
8.根据权利要求7所述的方法,其特征在于,采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将所述用户签名根私钥拆分成多个签名私钥片断,以及将所述用户验签根公钥拆分成多个验签公钥片断,包括:
采用所述密钥生成处理模块预先设置签名及验签阈值,其中,所述签名及验签阈值基于待签名及验签的人员数量确定;
采用所述密钥生成处理模块基于椭圆曲线公钥密钥算法和用户识别码信息生成所述用户签名根私钥;
采用所述密钥生成处理模块采用拉格朗日插值法构造密钥拆分多项式,并依据所述密钥拆分多项式和所述签名及验签阈值将所述用户签名根私钥拆分成多个签名私钥片断,其中,所述用户识别码信息包括:企业编号和部门编号。
9.根据权利要求7所述的方法,其特征在于,采用数字签名模块根据多个所述用户端发送的多个所述签名私钥片断恢复得到所述用户签名根私钥,并采用所述用户签名根私钥对待签名数据进行签名处理,得到待验签数据,包括:
采用所述数字签名模块在接收到所述待签名数据后,采用SM3杂凑算法生成所述待签名数据的第一摘要值;
采用所述数字签名模块基于密钥恢复算法,根据多个用户端发送的多个所述签名私钥片断恢复得到所述用户签名根私钥;
采用所述数字签名模块基于SM2算法和所述用户签名根私钥对所述第一摘要值进行加密处理,生成第一数字签名;
采用所述数字签名模块将所述第一数字签名和所述待签名数据的数据正文进行结合,得到所述待验签数据。
10.根据权利要求9所述的方法,其特征在于,采用数字验签模块根据多个所述用户端发送的多个所述验签公钥片断恢复得到所述用户验签根公钥,并采用所述用户验签根公钥对所述待验签数据进行验签处理,确定所述待验签数据是否验签通过,包括:
采用所述数字验签模块在接收到所述待验签数据后,解析所述待验签数据得到所述数据正文和所述第一数字签名,并采用SM3杂凑算法生成所述数据正文的第二摘要值;
采用所述数字验签模块根据多个用户端发送的多个所述验签公钥片断恢复得到所述用户验签根公钥;
采用所述数字验签模块基于SM2算法和所述用户验签根公钥对所述第二摘要值进行加密处理,生成第二数字签名;
采用所述数字验签模块比对所述第一数字签名和所述第二数字签名是否相等,若所述第一数字签名和所述第二数字签名相等,则确定所述待验签数据验签通过,若所述第一数字签名和所述第二数字签名不等,则确定所述待验签数据验签不通过。
11.一种数字签名及验签装置,其特征在于,包括:
第一处理模块,用于采用密钥生成处理模块为多个用户端生成用户签名根私钥和用户验签根公钥;将所述用户签名根私钥拆分成多个签名私钥片断,以及将所述用户验签根公钥拆分成多个验签公钥片断,其中,所述密钥生成处理模块还用于将多个所述签名私钥片断和多个所述验签公钥片断发送至多个所述用户端,对每个所述用户端分别发送一个所述验签公钥片断和一个签名私钥片断;
第二处理模块,用于采用数字签名模块根据多个所述用户端发送的多个所述签名私钥片断恢复得到所述用户签名根私钥,并采用所述用户签名根私钥对待签名数据进行签名处理,得到待验签数据;
第三处理模块,用于采用数字验签模块根据多个所述用户端发送的多个所述验签公钥片断恢复得到所述用户验签根公钥,并采用所述用户验签根公钥对所述待验签数据进行验签处理,确定所述待验签数据是否验签通过。
12.一种非易失性存储介质,其特征在于,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行权利要求7至10中任意一项所述的数字签名及验签方法。
13.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求7至10中任意一项所述的数字签名及验签方法。
CN202110770598.2A 2021-07-07 2021-07-07 数字签名及验签方法、系统、装置及存储介质 Pending CN113381856A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110770598.2A CN113381856A (zh) 2021-07-07 2021-07-07 数字签名及验签方法、系统、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110770598.2A CN113381856A (zh) 2021-07-07 2021-07-07 数字签名及验签方法、系统、装置及存储介质

Publications (1)

Publication Number Publication Date
CN113381856A true CN113381856A (zh) 2021-09-10

Family

ID=77581422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110770598.2A Pending CN113381856A (zh) 2021-07-07 2021-07-07 数字签名及验签方法、系统、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113381856A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114510734A (zh) * 2022-02-22 2022-05-17 光大科技有限公司 数据访问控制方法、装置及计算机可读存储介质
CN114760072A (zh) * 2022-06-13 2022-07-15 南京易科腾信息技术有限公司 签名及验签方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
CN110351096A (zh) * 2019-07-24 2019-10-18 深圳壹账通智能科技有限公司 多重签名方法、签名中心、介质及电子设备
US20200228349A1 (en) * 2019-01-15 2020-07-16 0Chain, LLC Systems and methods of aggregate signing of digital signatures on multiple messages simultaneously using key splitting
CN112507360A (zh) * 2020-12-10 2021-03-16 浙商银行股份有限公司 基于门限签名和预言机的区块链数据上链方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
US20200228349A1 (en) * 2019-01-15 2020-07-16 0Chain, LLC Systems and methods of aggregate signing of digital signatures on multiple messages simultaneously using key splitting
CN110351096A (zh) * 2019-07-24 2019-10-18 深圳壹账通智能科技有限公司 多重签名方法、签名中心、介质及电子设备
CN112507360A (zh) * 2020-12-10 2021-03-16 浙商银行股份有限公司 基于门限签名和预言机的区块链数据上链方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114510734A (zh) * 2022-02-22 2022-05-17 光大科技有限公司 数据访问控制方法、装置及计算机可读存储介质
CN114510734B (zh) * 2022-02-22 2023-10-20 光大科技有限公司 数据访问控制方法、装置及计算机可读存储介质
CN114760072A (zh) * 2022-06-13 2022-07-15 南京易科腾信息技术有限公司 签名及验签方法、装置及存储介质
CN114760072B (zh) * 2022-06-13 2022-09-02 南京易科腾信息技术有限公司 签名及验签方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US11100095B2 (en) Service processing system and method based on blockchain
US20230245121A1 (en) Blockchain-based data verification system and method, computing device and storage medium
CN103152182B (zh) 一种电子数据认证验证方法
Garg et al. RITS-MHT: Relative indexed and time stamped Merkle hash tree based data auditing protocol for cloud computing
CN109377229B (zh) 一种交易共识方法、节点及区块链系统
CN111314069B (zh) 基于区块链的摇号系统、方法、电子设备及存储介质
CN111464315B (zh) 数字签名处理方法、装置、计算机设备以及存储介质
CN101419686A (zh) 一种基于互联网的网上合同签订系统
CN110598456B (zh) 一种数据存储方法、装置、电子设备以及存储介质
CN109547218B (zh) 一种改进bip协议的联盟链节点秘钥分配及备份系统
CN111292041A (zh) 一种电子合同生成方法、装置、设备及存储介质
CN110601856A (zh) 一种基于区块链网络的数据交互方法及装置
CN113381856A (zh) 数字签名及验签方法、系统、装置及存储介质
CN110532734B (zh) 一种基于安全多方计算的隐私时间戳的数字版权方法及系统
CN111767582B (zh) 基于区块链的电子投标方法、装置、设备及存储介质
CN111242453A (zh) 基于区块链的财务评估方法及评估系统
CN113821810B (zh) 数据处理方法及系统、存储介质及电子设备
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN111798254A (zh) 追溯码生成方法、装置、设备及可读存储介质
CN111291122B (zh) 基于区块链的竞标方法及装置
CN103326856A (zh) 基于双向数字签名的云存储数据责任认定结构及方法
CN111241596B (zh) 一种区块链资产账户恢复的方法及装置
CN114039767A (zh) 一种基于隐私计算的税电联合分析方法
CN112529573A (zh) 一种组合式区块链门限签名方法及系统
CN109818965B (zh) 个人身份验证装置及方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210910

RJ01 Rejection of invention patent application after publication