CN113411188B - 电子合同签署方法、装置、存储介质及计算机设备 - Google Patents
电子合同签署方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN113411188B CN113411188B CN202110543059.5A CN202110543059A CN113411188B CN 113411188 B CN113411188 B CN 113411188B CN 202110543059 A CN202110543059 A CN 202110543059A CN 113411188 B CN113411188 B CN 113411188B
- Authority
- CN
- China
- Prior art keywords
- contract
- signature
- character string
- initiator
- signers
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services; Handling legal documents
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
本发明涉及区块链技术领域,提供了一种电子合同签署方法、装置、存储介质及计算机设备。所述电子合同签署方法包括:接收合同发起人设置的合同签名规则;获取合同内容,根据合同内容通过哈希算法生成哈希字符串;接收合同发起人的第一私钥,对第一私钥进行校验,校验通过后,根据预设的签名算法对哈希字符串进行加密签名,得到签名字符串,并将签名后的签名字符串发送给剩余签署人;接收剩余签署人的第二私钥,对第二私钥进行校验,校验通过后,根据签名算法对签名字符串进行加密签名;计算签名次数,当确定签名次数达到合同签名规则中规定的目标签名次数时,将合同上链,从而实现让合同双方或多方签署人共同参与合同上链,提高合同数据的安全性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种电子合同签署方法、装置、存储介质及计算机设备。
背景技术
随着电子技术的发展,传统合同正逐渐被电子合同所取代,电子合同是双方或者多方当事人之间通过电子信息网络以电子的形式达成的设立、变更、终止财产性民事权利义务关系的协议。电子合同具有使用方便,传输效率高,不受时间地点的限制等优点。
传统的合同上链是单签名的方式上链,只能由合同的某一方(发起人)发起上链操作,合同的其他签署人无法参与、也无法感知,且这种方式的安全性较低、容易被篡改。
发明内容
本发明提供一种电子合同签署方法、装置、存储介质及计算机设备,以让合同双方或多方签署人共同参与合同上链,防止合同上链前被篡改的可能性,提高合同数据的安全性。
为解决上述问题,本发明采用如下技术方案:
本发明提供一种电子合同签署方法,包括如下步骤:
接收合同发起人设置的合同签名规则;其中,所述合同签名规则包括所述合同上链所需的目标签名次数;
获取合同发起人对合同更改后的合同内容,根据所述合同内容通过哈希算法生成哈希字符串;
接收合同发起人根据预先下发给所述合同发起人的第一私钥,对所述第一私钥进行校验,校验通过后,根据预设的签名算法对所述哈希字符串进行加密签名,得到签名字符串,并将签名后的所述签名字符串发送给剩余签署人;
接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,校验通过后,根据所述签名算法对所述签名字符串进行加密签名;
计算签名次数,判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数;
当确定所述签名次数达到合同签名规则中规定的目标签名次数时,将所述合同上链。
进一步地,所述合同签名规则包括目标签名顺序,所述将所述合同上链的步骤之前,还包括:
获取所述合同发起人及剩余签署人对所述合同签署时的签名顺序;
判断所述签名顺序是否与所述合同签名规则中规定的目标签名顺序相匹配;
若是,执行将所述合同上链的步骤。
进一步地,所述合同签名规则包括签署人姓名,所述将所述合同上链的步骤之前,还包括:
获取剩余签署人对合同签署时的签署人姓名;
根据所述签署人姓名判断所述合同签名规则规定的签署人是否都完成签署;
若是,执行将所述合同上链的步骤。
进一步地,所述确定所述签名次数达到合同签名规则中规定的目标签名次数的步骤之后,还包括:
从数据库中获取公钥,对所述公钥进行校验,校验通过后,利用预设的签名算法对所述合同进行验签;
当确定验签成功后,执行将所述合同上链的步骤。
进一步地,所述接收合同发起人设置的合同签名规则的步骤之前,还包括:
响应于密钥对申请请求,利用密钥控件生成第一私钥、第二私钥及公钥;
将所述第一私钥发送给所述合同发起人,将所述第二私钥发送给所述剩余签署人,并将所述公钥保存至数据库中。
进一步地,所述判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数的步骤之后,还包括:
当确定所述签名次数未达到合同签名规则中规定的目标签名次数时,向所述合同发起人发送合同上链失败的提示消息。
进一步地,所述合同签名规则包括签名等级,所述将所述合同上链的步骤之前,还包括:
获取预先为已完成合同签署的所述合同发起人及剩余签署人对应设置的签名等级;
将所述合同发起人及剩余签署人对应的签名等级进行累加后,得到总签名等级;
判断所述总签名等级是否大于目标签名等级;
若是,执行将所述合同上链的步骤。
本发明提供的一种电子合同签署装置,包括:
接收模块,用于接收合同发起人设置的合同签名规则;其中,所述合同签名规则包括所述合同上链所需的目标签名次数;
生成模块,用于获取合同发起人对合同更改后的合同内容,根据所述合同内容通过哈希算法生成哈希字符串;
第一校验模块,用于接收合同发起人根据预先下发给所述合同发起人的第一私钥,对所述第一私钥进行校验,校验通过后,根据预设的签名算法对所述哈希字符串进行加密签名,得到签名字符串,并将签名后的所述签名字符串发送给剩余签署人;
第二校验模块,用于接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,校验通过后,根据所述签名算法对所述签名字符串进行加密签名;
判断模块,用于计算签名次数,判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数;
上链模块,用于当确定所述签名次数达到合同签名规则中规定的目标签名次数时,将所述合同上链。
本发明提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上任一项所述的电子合同签署方法的步骤。
本发明提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的电子合同签署方法。
相对于现有技术,本发明的技术方案至少具备如下优点:
本发明提供的电子合同签署方法、装置、存储介质及计算机设备,通过接收合同发起人设置的合同签名规则,并获取合同发起人对合同更改后的合同内容,根据合同内容通过哈希算法生成哈希字符串;然后接收合同发起人根据预先下发给合同发起人的第一私钥,对第一私钥进行校验,校验通过后,根据预设的签名算法对哈希字符串进行加密签名,得到签名字符串,并将签名后的签名字符串发送给剩余签署人,以避免非法用户篡改合同,提高合同数据的安全性;接收剩余签署人根据预先下发给各个剩余签署人的第二私钥,对第二私钥进行校验,校验通过后,根据签名算法对签名字符串进行加密签名;计算签名次数,判断签名次数是否达到合同签名规则中规定的目标签名次数;当确定签名次数达到合同签名规则中规定的目标签名次数时,将合同上链,从而实现让合同双方或多方签署人共同参与合同上链,只要有一方不签名,合同都无法完成上链,以防止合同上链前被篡改的可能性,并让合同双方或者多发都有参与感,能真正的感知到合同的上链过程。
附图说明
图1为本发明电子合同签署方法一种实施例流程框图;
图2为本发明电子合同签署装置一种实施例模块框图;
图3为本发明一个实施例中计算机设备的内部结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S11、S12等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域普通技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本领域普通技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明所提供的一种电子合同签署方法,以计算机设备为执行主体,用于解决传统的合同上链方式,只能由合同的某一方(发起人)发起上链操作,合同的其他签署人无法参与、也无法感知,且这种方式的安全性较低、容易被篡改的问题。在一种实施方式中,该电子合同签署方法包括如下步骤:
S11、接收合同发起人设置的合同签名规则;其中,所述合同签名规则包括所述合同上链所需的目标签名次数;
S12、获取合同发起人对合同更改后的合同内容,根据所述合同内容通过哈希算法生成哈希字符串;
S13、接收合同发起人根据预先下发给所述合同发起人的第一私钥,对所述第一私钥进行校验,校验通过后,根据预设的签名算法对所述哈希字符串进行加密签名,得到签名字符串,并将签名后的所述签名字符串发送给剩余签署人;
S14、接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,校验通过后,根据所述签名算法对所述签名字符串进行加密签名;
S15、计算签名次数,判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数;
S16、当确定所述签名次数达到合同签名规则中规定的目标签名次数时,将所述合同上链。
如上述步骤S11所述,当需要签署合同时,合同发起人可通过客户端发起合同签署请求,计算机设备从合同签署请求中提取合同发起人设置的合同签名规则。其中,该合同签名规则可由合同发起人自定义设置,具体可包括合同签署的参与人员、合同上链所需的目标签名次数、签名顺序等等。
如上述步骤S12所述,本步骤获取合同发起人对合同更改后的合同内容,依据该合同内容通过哈希算法生成哈希字符串。其中,哈希算法可将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。具体的,哈希算法是一种密码散列函数,主要适用于数字签名标准里面定义的数字签名算法。对于合同中任意长度的明文,哈希算法首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。
其中,对于每个明文分组的摘要生成过程如下:
将512位的明文分组划分为16个子明文分组,每个子明文分组为32位;
申请5个32位的链接变量,记为A、B、C、D、E;
16份子明文分组扩展为80份;
80份子明文分组进行4轮运算;
链接变量与初始链接变量进行求和运算;
链接变量作为下一个明文分组的输入重复进行以上操作;
最后,5个链接变量里面的数据就是摘要。
其中,哈希字符串是哈希值的一种形式,是根据合同的合同内容通过逻辑运算得到的数值,不同的合同内容得到的哈希字符串是不同的,所以哈希字符串就成了合同内容的身份证。
如上述步骤S13所述,数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性有着重要应用,是现代密码学的重要分支。签名隶属于公钥密码学。签名过程:合同发起人根据预先下发给所述合同发起人的第一私钥对哈希字符串进行加密运算,得到一个签名字符串,并将签名后的所述签名字符串发送给剩余签署人,由剩余签署人基于该签名字符串对合同进行签名。其中,剩余签署人为除合同发起人之外的合同签署参与人员,该签名字符串就是签名。
优选地,本申请的签名算法可采用椭圆曲线数字签名算法,主要用于对数据创建数字签名,以保障信息在传递和使用过程中的完整性、真实性和不可抵赖性。椭圆曲线数字签名算法的工作原理为:椭圆曲线数字签名算法会同时生成一对秘钥,一个私钥(非公开,自己持有),一个公钥(公开,所有人都能看到),在数学上这对秘钥是相会关联的,同时根据公钥是无法推测出私钥的任何信息;然后椭圆曲线数字签名算法的签名函数接收两个输入:信息M和私钥,生成一个数字签名字符串;椭圆曲线数字签名算法的验证函数接收信息M、公钥和签名字符串,返回结果是yes或者no,这一步的目的是为了验证信息M的签名是由私钥签发的,用于确认信息M与签名是否相符,从而完成哈希字符串的加密签名。
如上述步骤S14所述,计算机设备接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,在校验通过后,根据签名算法对所述签名字符串进行加密签名,实现合同双方或多方签署人共同参与合同上链。
如上述步骤S15所述,当合同发起人及剩余签署人每完成一次签名后,计算机设备则累加一次签名次数,并判断签名次数是否达到所述合同签名规则中规定的目标签名次数,若否,则提醒剩余签署人继续签名。
如上述步骤S16所述,本步骤在确定签名次数达到合同签名规则中规定的目标签名次数时,则将合同上链。其中,合同上链即是通过共识机制将合同数据打包在一个区块成为一个新的区块,链接到前面的区块,并且进行广播,成为链上不可篡改的数据。例如,可穷举随机数算法,把上个区块的哈希值加上预设时间内的全部交易打包,再加上一个随机数,算出一个256位的字符串哈希值,输入的随机数使哈希值满足一定条件就获得这个区块的交易记账权。新产生的区块需要快速广播出去,以便其他节点对其进行验证,以防造假。每个区块存储着上一个区块的哈希值,可以一直追溯到源头,只有经过验证后才最终获得区块的交易记账权。
为了更好地理解本申请,下面通过一个具体实施例进行说明:
合同上链前合同发起人设置好合同的签名规则,如:哪些签署人签名(标记为N),至少需要多少个签署人签名(标记为M)才能上链。合同发起人根据合同内容通过哈希算法生成哈希字符串,哈希字符串的特点是唯一性,一旦合同发生微小的改变,合同的哈希字符串也会随之改变,所以这个哈希字符串就相当于合同的DNA或者身份证。合同发起人先用自己的私钥根据签名算法对哈希字符串进行加密签名,再把签名字符串发送到其他签署人,其他签署人再用自己的私钥进行签名,并计算签名次数,当签名次数达到合同签名规则中的M个则把合同数据上链。
需要说明的是,多重签名就是多个用户对同一个消息进行数字签名,而多重签名的表现形式是m/n,也就是说一共n个用户可以给一个消息签名,而当m个用户签名时,就可以发起消息上链。因此,m一定是小于或等于n的。例如:多重签名2/3,表示3个人拥有签名权,而2个人签名就可以把消息上链。其中:m/n是多重签名的表现形式,也就是说一共n个用户可以给一个消息签名,而当m个用户签名时,就可以发起消息上链。
本发明提供的电子合同签署方法,通过接收合同发起人设置的合同签名规则,并获取合同发起人对合同更改后的合同内容,根据合同内容通过哈希算法生成哈希字符串;然后接收合同发起人根据预先下发给合同发起人的第一私钥,对第一私钥进行校验,校验通过后,根据预设的签名算法对哈希字符串进行加密签名,得到签名字符串,并将签名后的签名字符串发送给剩余签署人,以避免非法用户篡改合同,提高合同数据的安全性;接收剩余签署人根据预先下发给各个剩余签署人的第二私钥,对第二私钥进行校验,校验通过后,根据签名算法对签名字符串进行加密签名;计算签名次数,判断签名次数是否达到合同签名规则中规定的目标签名次数;当确定签名次数达到合同签名规则中规定的目标签名次数时,将合同上链,从而实现让合同双方或多方签署人共同参与合同上链,只要有一方不签名,合同都无法完成上链,以防止合同上链前被篡改的可能性,并让合同双方或者多发都有参与感,能真正的感知到合同的上链过程。
在一实施例中,当确定所述签名次数未达到合同签名规则中规定的目标签名次数时,则向所述合同发起人发送合同上链失败的提示消息,提醒签署人员继续签名,以提高合同数据的安全性。
在一实施例中,所述合同签名规则包括目标签名顺序,在步骤S16中,所述将所述合同上链的步骤之前,还可包括:
获取所述合同发起人及剩余签署人对所述合同签署时的签名顺序;
判断所述签名顺序是否与所述合同签名规则中规定的目标签名顺序相匹配;
若是,执行将所述合同上链的步骤。
在本实施例中,当确定所述签名次数达到合同签名规则中规定的目标签名次数时,还可进一步对签名顺序进行验证,即获取合同发起人及剩余签署人对所述合同签署时的签名顺序,判断签名顺序是否与合同签名规则中规定的目标签名顺序相匹配,若是,则将所述合同上链。例如,假设合同签署人员包括A、B、C,目标签名顺序为A>B>C,即当合同发起人A签署完毕后,由合同签署人员B签署,并在合同签署人员B签署完毕后,由合同签署人员C签署,从而完成合同的多人签署。当实际签名顺序与该目标签名顺序不匹配时,则合同上链失败,以提高合同数据的安全性,避免被篡改。
在一实施例中,所述合同签名规则包括签署人姓名,在步骤S16中,所述将所述合同上链的步骤之前,还可包括:
获取剩余签署人对合同签署时的签署人姓名;
根据所述签署人姓名判断所述合同签名规则规定的签署人是否都完成签署;
若是,执行将所述合同上链的步骤。
在本实施例中,当确定所述签名次数达到合同签名规则中规定的目标签名次数时,还可进一步对签署人姓名进行验证,即获取剩余签署人对合同签署时的签署人姓名,根据签署人姓名判断所述合同签名规则规定的签署人是否都完成签署,若是,则将所述合同上链。例如,假设合同签名规则规定的签署人包括A、B、C时,若当前合同签署人为A和B时,则表示合同签名规则规定的签署人还未完成签署,合同上链失败,以提高合同数据的安全性,避免被篡改。
在一实施例中,所述合同签名规则包括签名等级,在步骤S16中,所述将所述合同上链的步骤之前,还可包括:
获取预先为已完成合同签署的所述合同发起人及剩余签署人对应设置的签名等级;
将所述合同发起人及剩余签署人对应的签名等级进行累加后,得到总签名等级;
判断所述总签名等级是否大于目标签名等级;
若是,执行将所述合同上链的步骤。
在本实施例中,当确定所述签名次数达到合同签名规则中规定的目标签名次数时,还可进一步对签名等级进行验证。具体的,可预先为合同发起人及剩余签署人设置对应的签名等级,然后获取预先为已完成合同签署的所述合同发起人及剩余签署人对应设置的签名等级,将合同发起人及剩余签署人对应的签名等级进行累加后,得到总签名等级,并判断总签名等级是否大于目标签名等级,若是,则将所述合同上链。其中,签名等级可与签署人员的职务级别成正比。
例如,假设目标签名等级为10时,而合同发起人A的签名等级为5,两个剩余签署人的签名等级都为3时,则总签名等级为11,因此总签名等级大于目标签名等级,满足将合同上链的条件,从而加强合同上链的安全性。
在一实施例中,所述接收合同发起人设置的合同签名规则的步骤之前,还包括:
响应于密钥对申请请求,利用密钥控件生成第一私钥、第二私钥及公钥;
将所述第一私钥发送给所述合同发起人,将所述第二私钥发送给所述剩余签署人,并将所述公钥保存至数据库中。
在本实施例中,用户向计算机设备发起密钥对申请请求,计算机设备响应于密钥对申请请求,利用密钥控件生成第一私钥、第二私钥及公钥,并将第一私钥发送给合同发起人,第一私钥中含有合同发起人的身份信息,与合同发起人唯一匹配,且只能由合同发起人使用。
然后将第二私钥发送给所述剩余签署人,将公钥保存至数据库中。其中,第二私钥中含有剩余签署人的身份信息,与剩余签署人唯一匹配,且只能由剩余签署人使用;公钥向所有人公开,用于对签名验签。
在一实施例中,在步骤S16中,所述确定所述签名次数达到合同签名规则中规定的目标签名次数的步骤之后,还可包括:
从数据库中获取公钥,对所述公钥进行校验,校验通过后,利用预设的签名算法对所述合同进行验签;
当确定验签成功后,执行将所述合同上链的步骤。
本实施例根据签署人员的公钥用签名算法验签,验签通过则保存数据,将合同上链,否则就上链失败,以进一步防止合同上链前被篡改的可能性。
请参考图2,本发明的实施例还提供一种电子合同签署装置,一种本实施例中,包括接收模块11、生成模块12、第一校验模块13、第二校验模块14、判断模块15及上链模块16。其中,
接收模块11,用于接收合同发起人设置的合同签名规则;其中,所述合同签名规则包括所述合同上链所需的目标签名次数;
生成模块12,用于获取合同发起人对合同更改后的合同内容,根据所述合同内容通过哈希算法生成哈希字符串;
第一校验模块13,用于接收合同发起人根据预先下发给所述合同发起人的第一私钥,对所述第一私钥进行校验,校验通过后,根据预设的签名算法对所述哈希字符串进行加密签名,得到签名字符串,并将签名后的所述签名字符串发送给剩余签署人;
第二校验模块14,用于接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,校验通过后,根据所述签名算法对所述签名字符串进行加密签名;
判断模块15,用于计算签名次数,判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数;
上链模块16,用于当确定所述签名次数达到合同签名规则中规定的目标签名次数时,将所述合同上链。
当需要签署合同时,合同发起人可通过客户端发起合同签署请求,计算机设备从合同签署请求中提取合同发起人设置的合同签名规则。其中,该合同签名规则可由合同发起人自定义设置,具体可包括合同签署的参与人员、合同上链所需的目标签名次数、签名顺序等等。
进一步地,获取合同发起人对合同更改后的合同内容,依据该合同内容通过哈希算法生成哈希字符串。其中,哈希算法可将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。具体的,哈希算法是一种密码散列函数,主要适用于数字签名标准里面定义的数字签名算法。对于合同中任意长度的明文,哈希算法首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。
其中,对于每个明文分组的摘要生成过程如下:
将512位的明文分组划分为16个子明文分组,每个子明文分组为32位;
申请5个32位的链接变量,记为A、B、C、D、E;
16份子明文分组扩展为80份;
80份子明文分组进行4轮运算;
链接变量与初始链接变量进行求和运算;
链接变量作为下一个明文分组的输入重复进行以上操作;
最后,5个链接变量里面的数据就是摘要。
其中,哈希字符串是哈希值的一种形式,是根据合同的合同内容通过逻辑运算得到的数值,不同的合同内容得到的哈希字符串是不同的,所以哈希字符串就成了合同内容的身份证。
数字签名在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性有着重要应用,是现代密码学的重要分支。签名隶属于公钥密码学。签名过程:合同发起人根据预先下发给所述合同发起人的第一私钥对哈希字符串进行加密运算,得到一个签名字符串,并将签名后的所述签名字符串发送给剩余签署人,由剩余签署人基于该签名字符串对合同进行签名。其中,剩余签署人为除合同发起人之外的合同签署参与人员,该签名字符串就是签名。
优选地,本申请的签名算法可采用椭圆曲线数字签名算法,主要用于对数据创建数字签名,以保障信息在传递和使用过程中的完整性、真实性和不可抵赖性。椭圆曲线数字签名算法的工作原理为:椭圆曲线数字签名算法会同时生成一对秘钥,一个私钥(非公开,自己持有),一个公钥(公开,所有人都能看到),在数学上这对秘钥是相会关联的,同时根据公钥是无法推测出私钥的任何信息;然后椭圆曲线数字签名算法的签名函数接收两个输入:信息M和私钥,生成一个数字签名字符串;椭圆曲线数字签名算法的验证函数接收信息M、公钥和签名字符串,返回结果是yes或者no,这一步的目的是为了验证信息M的签名是由私钥签发的,用于确认信息M与签名是否相符,从而完成哈希字符串的加密签名。
计算机设备接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,在校验通过后,根据签名算法对所述签名字符串进行加密签名,实现合同双方或多方签署人共同参与合同上链。
当合同发起人及剩余签署人每完成一次签名后,计算机设备则累加一次签名次数,并判断签名次数是否达到所述合同签名规则中规定的目标签名次数,若否,则提醒剩余签署人继续签名。
在确定签名次数达到合同签名规则中规定的目标签名次数时,则将合同上链。其中,合同上链即是通过共识机制将合同数据打包在一个区块成为一个新的区块,链接到前面的区块,并且进行广播,成为链上不可篡改的数据。例如,可穷举随机数算法,把上个区块的哈希值加上预设时间内的全部交易打包,再加上一个随机数,算出一个256位的字符串哈希值,输入的随机数使哈希值满足一定条件就获得这个区块的交易记账权。新产生的区块需要快速广播出去,以便其他节点对其进行验证,以防造假。每个区块存储着上一个区块的哈希值,可以一直追溯到源头,只有经过验证后才最终获得区块的交易记账权。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明提供的一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上任一项所述的电子合同签署方法的步骤。
在一实施例中,如图3所示。本实施例所述的计算机设备可以是服务器、个人计算机以及网络设备等设备。所述计算机设备包括处理器402、存储器403、输入单元404以及显示单元405等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。例如,在大多数情况下,计算机设备无需配备显示单元405。存储器403可用于存储计算机程序401以及各功能模块,处理器402运行存储在存储器403的计算机程序401,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元404用于接收信号的输入,以及接收用户输入的关键字。输入单元404可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元405可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元405可采用液晶显示器、有机发光二极管等形式。处理器402是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
作为一个实施例,所述计算机设备包括:一个或多个处理器402,存储器403,一个或多个计算机程序401,其中所述一个或多个计算机程序401被存储在存储器403中并被配置为由所述一个或多个处理器402执行,所述一个或多个计算机程序401配置用于执行以上实施例所述的电子合同签署方法。
在一个实施例中,本发明还提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述电子合同签署方法。例如,所述存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
综合上述实施例可知,本发明最大的有益效果在于:
本发明提供的电子合同签署方法、装置、存储介质及计算机设备,通过接收合同发起人设置的合同签名规则,并获取合同发起人对合同更改后的合同内容,根据合同内容通过哈希算法生成哈希字符串;然后接收合同发起人根据预先下发给合同发起人的第一私钥,对第一私钥进行校验,校验通过后,根据预设的签名算法对哈希字符串进行加密签名,得到签名字符串,并将签名后的签名字符串发送给剩余签署人,以避免非法用户篡改合同,提高合同数据的安全性;接收剩余签署人根据预先下发给各个剩余签署人的第二私钥,对第二私钥进行校验,校验通过后,根据签名算法对签名字符串进行加密签名;计算签名次数,判断签名次数是否达到合同签名规则中规定的目标签名次数;当确定签名次数达到合同签名规则中规定的目标签名次数时,将合同上链,从而实现让合同双方或多方签署人共同参与合同上链,只要有一方不签名,合同都无法完成上链,以防止合同上链前被篡改的可能性,并让合同双方或者多发都有参与感,能真正的感知到合同的上链过程。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种电子合同签署方法,其特征在于,包括:
接收合同发起人设置的合同签名规则;其中,所述合同签名规则包括所述合同上链所需的目标签名次数;
获取合同发起人对合同更改后的合同内容,根据所述合同内容通过哈希算法生成哈希字符串;
接收合同发起人根据预先下发给所述合同发起人的第一私钥,对所述第一私钥进行校验,校验通过后,根据预设的签名算法对所述哈希字符串进行加密签名,得到签名字符串,并将签名后的所述签名字符串发送给剩余签署人;
接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,校验通过后,根据所述签名算法对所述签名字符串进行加密签名;
计算签名次数,判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数;
当确定所述签名次数达到合同签名规则中规定的目标签名次数时,将所述合同上链。
2.根据权利要求1所述的电子合同签署方法,其特征在于,所述合同签名规则包括目标签名顺序,所述将所述合同上链的步骤之前,还包括:
获取所述合同发起人及剩余签署人对所述合同签署时的签名顺序;
判断所述签名顺序是否与所述合同签名规则中规定的目标签名顺序相匹配;
若是,执行将所述合同上链的步骤。
3.根据权利要求1所述的电子合同签署方法,其特征在于,所述合同签名规则包括签署人姓名,所述将所述合同上链的步骤之前,还包括:
获取剩余签署人对合同签署时的签署人姓名;
根据所述签署人姓名判断所述合同签名规则规定的签署人是否都完成签署;
若是,执行将所述合同上链的步骤。
4.根据权利要求1所述的电子合同签署方法,其特征在于,所述确定所述签名次数达到合同签名规则中规定的目标签名次数的步骤之后,还包括:
从数据库中获取公钥,对所述公钥进行校验,校验通过后,利用预设的签名算法对所述合同进行验签;
当确定验签成功后,执行将所述合同上链的步骤。
5.根据权利要求1所述的电子合同签署方法,其特征在于,所述接收合同发起人设置的合同签名规则的步骤之前,还包括:
响应于密钥对申请请求,利用密钥控件生成第一私钥、第二私钥及公钥;
将所述第一私钥发送给所述合同发起人,将所述第二私钥发送给所述剩余签署人,并将所述公钥保存至数据库中。
6.根据权利要求1所述的电子合同签署方法,其特征在于,所述判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数的步骤之后,还包括:
当确定所述签名次数未达到合同签名规则中规定的目标签名次数时,向所述合同发起人发送合同上链失败的提示消息。
7.根据权利要求1所述的电子合同签署方法,其特征在于,所述合同签名规则包括签名等级,所述将所述合同上链的步骤之前,还包括:
获取预先为已完成合同签署的所述合同发起人及剩余签署人对应设置的签名等级;
将所述合同发起人及剩余签署人对应的签名等级进行累加后,得到总签名等级;
判断所述总签名等级是否大于目标签名等级;
若是,执行将所述合同上链的步骤。
8.一种电子合同签署装置,其特征在于,包括:
接收模块,用于接收合同发起人设置的合同签名规则;其中,所述合同签名规则包括所述合同上链所需的目标签名次数;
生成模块,用于获取合同发起人对合同更改后的合同内容,根据所述合同内容通过哈希算法生成哈希字符串;
第一校验模块,用于接收合同发起人根据预先下发给所述合同发起人的第一私钥,对所述第一私钥进行校验,校验通过后,根据预设的签名算法对所述哈希字符串进行加密签名,得到签名字符串,并将签名后的所述签名字符串发送给剩余签署人;
第二校验模块,用于接收剩余签署人根据预先下发给各个所述剩余签署人的第二私钥,对所述第二私钥进行校验,校验通过后,根据所述签名算法对所述签名字符串进行加密签名;
判断模块,用于计算签名次数,判断所述签名次数是否达到所述合同签名规则中规定的目标签名次数;
上链模块,用于当确定所述签名次数达到合同签名规则中规定的目标签名次数时,将所述合同上链。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的电子合同签署方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的电子合同签署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110543059.5A CN113411188B (zh) | 2021-05-19 | 2021-05-19 | 电子合同签署方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110543059.5A CN113411188B (zh) | 2021-05-19 | 2021-05-19 | 电子合同签署方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113411188A CN113411188A (zh) | 2021-09-17 |
CN113411188B true CN113411188B (zh) | 2022-08-02 |
Family
ID=77678886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110543059.5A Active CN113411188B (zh) | 2021-05-19 | 2021-05-19 | 电子合同签署方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113411188B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679281B (zh) * | 2022-03-15 | 2023-12-01 | 北京宏思电子技术有限责任公司 | 一种基于rsa的联合签名生成方法及装置 |
CN114792270B (zh) * | 2022-06-27 | 2022-09-23 | 浙江数秦科技有限公司 | 基于区块链的贷款合同在线签署系统 |
CN115423477A (zh) * | 2022-10-13 | 2022-12-02 | 安徽高山科技有限公司 | 一种基于区块链技术的电子印章发行方法及系统 |
CN117113384B (zh) * | 2023-10-25 | 2024-01-09 | 杭州易靓云科技有限公司 | 一种合同签约管理方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10327147A (ja) * | 1997-05-21 | 1998-12-08 | Hitachi Ltd | 電子認証公証方法およびシステム |
WO2012049592A2 (en) * | 2010-10-10 | 2012-04-19 | Vpsign, Ltd. | Electronic signature apparatus and method |
CN106301782B (zh) * | 2016-07-26 | 2020-02-11 | 杭州文签网络技术有限公司 | 一种电子合同的签署方法及系统 |
CN108833115B (zh) * | 2018-06-15 | 2021-01-26 | 中山大学 | 一种基于区块链的多方公平pdf合同签署方法 |
CN111539683A (zh) * | 2020-04-20 | 2020-08-14 | 深圳乐信软件技术有限公司 | 一种合同签署方法、装置、设备及介质 |
CN112347452B (zh) * | 2020-11-10 | 2023-08-04 | 上海祺鲲信息科技有限公司 | 电子合同签署的方法、电子设备及存储介质 |
-
2021
- 2021-05-19 CN CN202110543059.5A patent/CN113411188B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113411188A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113411188B (zh) | 电子合同签署方法、装置、存储介质及计算机设备 | |
CN110473105B (zh) | 一种区块链交易结算方法、系统及相关设备 | |
CN109075964B (zh) | 支持用于区块验证的多个单向函数的区块链 | |
JP5497677B2 (ja) | 公開鍵を検証可能に生成する方法及び装置 | |
EP3563553A1 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
US10887104B1 (en) | Methods and systems for cryptographically secured decentralized testing | |
JP2020500458A (ja) | 情報保護用のシステム及び方法 | |
CN101631022A (zh) | 一种签名方法和系统 | |
CN111723387A (zh) | 一种基于区块链的数据解密的方法及装置 | |
CN113875186A (zh) | 知识证明 | |
CN110505067B (zh) | 区块链的处理方法、装置、设备及可读存储介质 | |
CN113875188A (zh) | 哈希函数攻击 | |
EP3977673B1 (en) | Blockchain transaction comprising runnable code for hash-based verification | |
US20220263664A1 (en) | Blockchain transaction comprising runnable code for hash-based verification | |
CN111222879A (zh) | 一种适用于联盟链的无证书认证方法及系统 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
CN113924748A (zh) | 知识证明 | |
JP2016524431A (ja) | 電子署名システム | |
CN116566626B (zh) | 环签名方法和设备 | |
CN115885497A (zh) | 数字签名 | |
CN111353780A (zh) | 授权验证方法、装置及存储介质 | |
CN112837064B (zh) | 联盟链的签名方法、签名验证方法及装置 | |
CN115118433A (zh) | 客户授权方法及装置、隐私保护集合交集计算方法及装置 | |
CN104333450B (zh) | 一种可信自助服务系统的建立方法 | |
Longo | Formal Proofs of Security for Privacy-Preserving Blockchains and other Cryptographic Protocols |
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 |