1.本发明涉及电子签名技术领域,尤其涉及一种基于变色龙哈希的文档批量签署方法、装置、设备及介质。
背景技术:2.目前,电子合同签署过程中,存在需要批量签署的情况,例如,作为招聘方的工作单位经常需要在短时间内和不同的人签署多份电子合同。
3.当前电子合同签约系统中,能够实现批量签名,即由电子合同签约系统自动对批量的多个合同进行轮流签名,帮助签署方批量生成电子合同。
4.然而该种方式只是将批量文档的签名工作交给计算机处理,从而减少了人的工作量;但是计算机处理的效率仍然可以提升。
技术实现要素:5.本发明提供一种基于变色龙哈希的文档批量签署方法、装置、设备及介质,所要解决的技术问题是:如何在确保数据安全的前提下,减少批量签署合同时的计算量。
6.第一方面,本发明提供了一种基于变色龙哈希的文档批量签署方法,应用于签名服务器,所述方法包括:接收第一签名文件,所述第一签名文件包括第一变色龙消息、第一变色龙随机数、签名信息以及第一终端的证书,所述第一变色龙消息包括多个第二终端的标识以及多个分别与多个第二终端的标识对应的加密信息,所述签名信息由第一终端的私钥对第一变色龙哈希值进行签名后得到;所述第一变色龙哈希值由所述第一变色龙随机数、所述第一变色龙消息的第一哈希值以及签名服务器的公钥计算得到;获取文档模板,将多个所述加密信息分别添加到所述文档模板中,得到多个分别与各第二终端的标识对应的第二变色龙消息;根据所述第二变色龙消息的第二哈希值、所述第一哈希值、签名服务器的私钥以及所述第一变色龙随机数,求解所述第二变色龙消息的第二变色龙随机数;制作各第二终端的第二签名文件,并分别将各第二终端的第二签名文件发送给各第二终端,第二终端的第二签名文件包括所述签名信息、第一终端的证书以及第二终端的标识对应的第二变色龙消息和第二变色龙随机数。
7.第二方面,本发明提供了一种基于变色龙哈希的文档批量签署方法,应用于第一终端,所述方法包括:获取接收端标识集合以及文档信息集合,所述接收端标识集合包括多个第二终端的标识;所述文档信息集合包括多个分别与各第二终端的标识对应的文档信息;分别对所述文档信息集合中的文档信息加密后得到加密信息集合;根据预设的第一变色龙随机数、第一变色龙消息的第一哈希值以及签名服务器的公钥计算所述第一变色龙消息的第一变色龙哈希值,所述第一变色龙消息包括所述加密信
息集合以及所述接收端标识集合;利用第一终端的私钥对所述第一变色龙哈希值进行签名得到签名信息;将所述第一变色龙消息、所述第一变色龙随机数、所述签名信息以及第一终端的证书打包为第一签名文件,并将所述第一签名文件发送给签名服务器,所述第一签名文件用于供签名服务器执行第一方面所述的方法。
8.第三方面,本发明提供了一种基于变色龙哈希的文档批量签署方法,应用于第二终端,所述方法包括:接收第二签名文件,所述第二签名文件由签名服务器根据第一方面所述的方法生成,所述第二签名文件包括第二变色龙消息、第二变色龙随机数、签名信息以及第一终端的证书,所述第二变色龙消息包括文档模板以及加密信息;根据第一终端的证书以及所述第二变色龙随机数对所述签名信息进行验证;若对所述签名信息验证通过,对所述加密信息进行解密,得到文档信息;将所述文档信息添加到所述文档模板得到最终文档。
9.第四方面,本发明还提供了一种基于变色龙哈希的文档批量签署装置,其包括用于执行上述方法的单元。
10.第五方面,本发明还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
11.第六方面,本发明还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现上述方法。
12.本发明提供了一种基于变色龙哈希的文档批量签署方法、装置、设备及介质,至少包括如下技术效果:发送方(第一终端)在批量签署时,只需要计算一次签名。由于使用签名服务器的公钥来计算第一变色龙哈希值,使得签名服务器的私钥成为陷门密钥,由此,签名服务器利用变色龙哈希的特性完成批量签名,仅需要计算变色龙哈希所需的随机数而无需重新签名,因此,本方法极大降低了发送方(第一终端)和签名服务器的签名工作量。同时,通过对文档信息进行加密,有效确保了信息的安全性。由此,本发明能够实现,在确保数据安全的前提下,发送方(第一终端)在批量签署时,只需要计算一次签名,极大减少了批量签署合同时的计算量。
附图说明
13.为了更清楚地说明本发明技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明提供的基于变色龙哈希的文档批量签署方法的应用场景示意图;图2为本发明提供的基于变色龙哈希的文档批量签署方法中第一终端执行部分的流程示意图;图3为本发明提供的基于变色龙哈希的文档批量签署方法中签名服务器执行部分的流程示意图;图4为本发明提供的基于变色龙哈希的文档批量签署方法中第二终端执行部分的流程示意图;
图5为本发明提供的基于变色龙哈希的文档批量签署方法的另一应用场景示意图;图6为本发明提供的基于变色龙哈希的文档批量签署装置的示意性框图;图7为本发明提供的基于变色龙哈希的文档批量签署装置的另一示意性框图;图8为本发明提供的基于变色龙哈希的文档批量签署装置的又一示意性框图;图9为本发明提供的计算机设备的示意性框图。
具体实施方式
15.下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
17.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
18.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
19.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0020]
请参阅图1,图1为本发明提供的基于变色龙哈希的文档批量签署方法的应用场景示意图。由图1可知,签名系统包括第一终端100、签名服务器200以及多个第二终端300。第一终端100作为发送方(即发送签名文件的一方)、多个第二终端300作为接收方(即接收签名文件的一方)。
[0021]
为了便于描述,在本发明的以下描述中,定义第一变色龙消息的哈希值为第一哈希值,定义第二变色龙消息的哈希值为第二哈希值,定义文档模板的哈希值为第三哈希值。
[0022]
请参阅图2-4,本发明提出的基于变色龙哈希的文档批量签署方法中,第一终端用于执行以下步骤s101-s105;签名服务器用于执行以下步骤s201-s204;每个第二终端均用于执行以下步骤s301-s304。
[0023]
s101,第一终端获取接收端标识集合以及文档信息集合,所述接收端标识集合包括多个第二终端的标识;所述文档信息集合包括多个分别与各所述第二终端的标识对应的文档信息。
[0024]
具体实施中,第一终端接收用户输入的文档模板、接收端标识集合以及文档信息集合。
[0025]
文档模板可例如为合同模板,例如,人事合同模板。人事合同模板包含甲方身份及
通信信息、双方权利义务、双方违约责任、合同生效条件以及合同失效条件等信息。
[0026]
接收端标识集合包括多个第二终端的标识,该标识可例如为第二终端的id。可以理解地,各第二终端的标识各不相同。
[0027]
文档信息集合为需要填入文档模板中的文档信息组成的集合。对应于人事合同模板,在一实施例中,文档信息包括多个字段,例如,乙方身份、通信信息、乙方岗位、薪酬以及乙方签约时间等字段。在将文档信息的字段对应填入到人事合同模板相应的位置后,即可得到一份完整的人事合同文件。
[0028]
在实施例中,文档模板、接收端标识集合以及文档信息集合均可由用户向第一终端输入,或者在其它的一些实施例中,可采用其它方式将文档模板、接收端标识集合以及文档信息集合传输给第一终端,对此本发明不做具体限定。
[0029]
第一终端获取所述文档模板的第三哈希值。具体地,第一终端对文档模板进行哈希运算,得到文档模板的第三哈希值。哈希运算所采用的哈希函数为sha256或者sm3,对此本发明不做具体限定。第一终端将第三哈希值发送给签名服务器。相应地,签名服务器可根据第三哈希值获取所述文档模板。
[0030]
s102,第一终端分别对所述文档信息集合中的文档信息加密后得到加密信息集合,所述加密信息集合包括多个加密信息,多个加密信息一一对应地由所述文档信息集合的多个文档信息加密后得到,多个加密信息与各所述第二终端的标识一一对应。
[0031]
具体实施中,第一终端分别对所述文档信息集合中的文档信息进行加密。文档信息加密后得到加密信息。所有文档信息的加密信息即构成加密信息集合。
[0032]
本发明实施例中,第二终端的标识与文档信息以及加密信息之间存在一一对应的关系。即各第二终端的标识均对应有唯一一个文档信息以及唯一一个加密信息。第二终端的标识对应的文档信息加密后得到第二终端的标识对应的加密信息。
[0033]
在一实施例中,以上步骤s102具体包括如下步骤:s1021,第一终端分别获取第一终端与各第二终端之间的对称密钥,得到对称密钥集合,所述对称密钥集合包括多个与各所述第二终端的标识一一对应的对称密钥。
[0034]
具体实施中,第一终端与第二终端均为ecc密码系统,第一终端可计算得到对称密钥kab=ska*pkb,其中,ska为第一终端的私钥,pkb为第二终端的公钥。
[0035]
或者,在另一些实施例中,第一终端获取随机数作为第一终端与第二终端之间的对称密钥kab。
[0036]
s1022,第一终端分别利用各所述第二终端的标识对应的对称密钥对各所述第二终端的标识对应的文档信息进行加密,得到各所述第二终端的标识对应的加密信息。
[0037]
例如,在一实施例中,第二终端的数量为2,分别为第二终端a和第二终端b。第二终端a的标识对应的文档信息为d1,第二终端b的标识对应的文档信息为d2。
[0038]
第一终端计算与第二终端a的对称密钥为k1;第一终端计算与第二终端b的对称密钥为k2;则,k1与第二终端a的标识对应;k2与第二终端b的标识对应。
[0039]
第一终端通过对称密钥k1对文档信息d1进行加密得到加密信息m1。加密信息m1与第二终端a的标识对应。
[0040]
第一终端通过对称密钥k2对文档信息d2进行加密得到加密信息m2。加密信息m2与第二终端b的标识对应。
[0041]
s103,第一终端根据预设的第一变色龙随机数、第一变色龙消息的第一哈希值以及签名服务器的公钥计算所述第一变色龙消息的第一变色龙哈希值。
[0042]
具体实施中,具体实施中,第一终端生成第一变色龙消息,其中,第一变色龙消息包括所述第三哈希值、所述加密信息集合以及所述接收端标识集合。需要说明的是,本实施例中,通过将第三哈希值添加到第一变色龙消息中,由此能够使得第三哈希值能够随着第一变色龙消息发送到签名服务器;或者在其它的一些实施例中,可采用其它方式将第三哈希值发送给签名服务器,对此本发明不做具体限定。
[0043]
进一步地,第一终端对第一变色龙消息进行哈希运算,得到第一变色龙消息的第一哈希值。哈希运算所采用的哈希函数为sha256或者sm3,对此本发明不做具体限定。
[0044]
进一步地,第一终端选取预设的第一变色龙随机数,根据第一变色龙随机数、所述第一哈希值以及签名服务器的公钥计算所述第一变色龙消息的第一变色龙哈希值。由于使用服务器的公钥作为变色龙哈希计算时所采用的公钥,由此,即使得服务器的私钥作为变色龙哈希的陷门密钥。
[0045]
s104,第一终端利用第一终端的私钥对所述第一变色龙哈希值进行签名得到签名信息。
[0046]
具体实施中,当第一终端与第二终端均为ecc密码系统时,签名算法可以为ecdsa、sm2等。
[0047]
s105,第一终端将所述第一变色龙消息、所述第一变色龙随机数、所述签名信息以及第一终端的证书打包为第一签名文件,并将所述第一签名文件发送给签名服务器。
[0048]
由此,第一终端完成第一签名文件的制作。第一签名文件用于供服务器和第二终端执行如下步骤:s201,签名服务器接收所述第一签名文件,所述第一签名文件包括第一变色龙消息、第一变色龙随机数、签名信息以及第一终端的证书,所述第一变色龙消息包括第三哈希值、多个第二终端的标识(多个第二终端的标识即构成上述接收端标识集合)以及多个分别与多个第二终端的标识对应的加密信息(多个加密信息即构成上述加密信息集合),所述签名信息由第一终端的私钥对第一变色龙哈希值进行签名后得到;所述第一变色龙哈希值由所述第一变色龙随机数、所述第一变色龙消息的第一哈希值以及签名服务器的公钥计算得到。
[0049]
具体实施中,签名服务器在接收所述第一签名文件后,通过对所述第一签名文件进行解析,得到所述第一变色龙消息、所述第一变色龙随机数、所述签名信息以及第一终端的证书。
[0050]
进一步地,签名服务器根据第一终端的证书对所述签名信息进行验证。
[0051]
具体实施中,签名服务器从第一终端的证书中提取第一终端的公钥。签名服务器对所述第一变色龙消息进行哈希运算得到第一哈希值。签名服务器根据预设的第一变色龙随机数、所述第一哈希值以及服务器的公钥计算所述第一变色龙消息的第一变色龙哈希值。
[0052]
签名服务器从第一终端的证书中获取所述第一终端的公钥,并根据所述第一终端的公钥以及所述第一变色龙哈希值对所述签名信息进行验证。
[0053]
在一实施例中,验证过程如下:签名服务器通过第一终端的公钥解密所述签名信
息得到第一变色龙哈希值。签名服务器判断自己计算的第一变色龙哈希值是否与解密得到的第一变色龙哈希值相同,若相同,则验证通过;否则,验证不通过。需要说明的是,以上验证方式仅仅是一种示例,本领域技术人员还可以采用其它验证方式,本发明对此不做具体限定。
[0054]
若对所述签名信息验证未通过,判定签名信息是伪造的不可信文件。
[0055]
s202,签名服务器获取文档模板,将多个所述加密信息分别添加到所述文档模板中,得到多个分别与各第二终端的标识对应的第二变色龙消息;其中,多个所述第二变色龙消息一一对应地由所述加密信息集合的多个加密信息分别添加到所述文档模板后生成,多个所述第二变色龙消息与所述接收端标识集合中的多个第二终端的标识一一对应。
[0056]
具体实施中,若对所述签名信息验证通过,表明所述签名信息是由第一终端签名的可信文件。此后,签名服务器对所述第一变色龙消息进行解析得到所述第三哈希值、所述加密信息集合以及所述接收端标识集合。
[0057]
具体实施中,第三哈希值是所述文档模板的标识,签名服务器根据所述第三哈希值从第一终端获取所述文档模板。
[0058]
针对每一个第二终端,签名服务器将第二终端的标识对应的加密信息添加到文档模板中后得到第二终端的标识对应的第二变色龙消息。
[0059]
s203,根据所述第二变色龙消息的第二哈希值、所述第一哈希值、签名服务器的私钥以及所述第一变色龙随机数,求解所所述第二变色龙消息的第二变色龙随机数。
[0060]
具体实施中,针对每个第二变色龙消息,服务器均执行步骤s203。首先,签名服务器通过预设的哈希函数计算第二变色龙消息的第二哈希值。
[0061]
签名服务器基于变色龙哈希算法,根据所述第二哈希值、所述第一哈希值、签名服务器的私钥以及所述第一变色龙随机数,求解所述第二哈希值对应的第二变色龙随机数。
[0062]
s204,签名服务器制作各第二终端的第二签名文件,并分别将各第二终端的第二签名文件发送给各第二终端,其中,第二终端的第二签名文件包括所述签名信息、第一终端的证书以及第二终端的标识对应的第二变色龙消息和第二变色龙随机数。
[0063]
具体实施中,针对每个第二终端,服务器均为其制作第二签名文件,并向其发送第二签名文件。第二终端的第二签名文件包括所述签名信息、第一终端的证书以及第二终端的标识对应的第二变色龙消息和第二变色龙随机数。其中,第二终端的标识对应的第二变色龙随机数是指由第二终端的标识对应的第二变色龙消息根据步骤s203计算得到的第二变色龙随机数。
[0064]
s301,第二终端接收所述第二签名文件,所述第二签名文件包括第二变色龙消息、所述第二变色龙随机数、所述签名信息以及第一终端的证书,所述第二变色龙消息包括文档模板以及加密信息。
[0065]
s302,第二终端根据第一终端的证书以及所述第二变色龙随机数对所述签名信息进行验证。
[0066]
具体实施中,第二终端对所述第二变色龙消息进行哈希运算得到第二哈希值。第二终端根据所述第二哈希值、签名服务器的公钥以及所述第二变色龙随机数计算所述第二变色龙消息的第二变色龙哈希值。
[0067]
第二终端从所述第一终端的证书中提取第一终端的公钥,根据第一终端的公钥以
及所述第二变色龙哈希值对所述签名信息进行验证。
[0068]
在一实施例中,具体验证方式如下:第二终端从所述第一终端的证书中提取所述第一终端的公钥,根据所述第一终端的公钥对所述签名信息进行解密得到第一变色龙哈希值。第二终端根据变色龙哈希算法,判断计算得到的第二变色龙哈希值是否与第一变色龙哈希值对应,若对应,确认所述第二变色龙消息为未经过篡改的可信消息。
[0069]
若对所述签名信息验证未通过,判定签名信息是伪造的不可信文件。
[0070]
s303,若对所述签名信息验证通过,第二终端对所述加密信息进行解密后得到文档信息。
[0071]
在一实施例中,第一终端通过第一终端与第二终端之间的对称密钥对第二终端的标识对应的文档信息进行加密,得到第二终端的标识对应的加密信息。
[0072]
相应地,第二终端通过第一终端与第二终端之间的对称密钥对第二终端的标识对应的加密信息进行解密得到第二终端的标识对应的文档信息。
[0073]
在本发明的一些实施例中,第一终端与第二终端之间的对称密钥由第一终端传输给第二终端。具体包括如下三种方式:方式一参见图5,在一实施例中,所述签名系统还包括密钥服务器400。
[0074]
此时,对称密钥的传输方式为:第一终端将所述对称密钥集合发送给所述密钥服务器,以使所述密钥服务器将各所述第二终端的标识对应的对称密钥发送给各所述第二终端。
[0075]
具体地,第一终端将第一哈希值、对称密钥集合以及接收端标识集合发送到密钥服务器。可以理解地,为了提高安全性,第一终端采用加密传输的方式,即用第一终端与密钥服务器之间的会话密钥将第一哈希值、对称密钥集合以及接收端标识集合加密后传输给密钥服务器,密钥服务器解密后将第一哈希值、对称密钥集合以及接收端标识集合对应储存。
[0076]
相应地,第二终端向第一终端以及签名服务器发送身份认证请求,在认证通过后,第一终端以及签名服务器认可第二终端的身份。
[0077]
认证通过后,第二终端向签名服务器发送第二终端的标识对应的第二变色龙消息。相应地,签名服务器将第一哈希值发送给第二终端。
[0078]
第二终端向密钥服务器发送密钥获取请求,密钥获取请求包括所述第一哈希值以及第二终端的标识。密钥服务器根据第一哈希值查找到对应的对称密钥集合,之后根据第二终端的标识查找相应的对称密钥,并将查找到的对称密钥发送给第二终端。
[0079]
方式二第一终端分别将各所述第二终端的标识对应的对称密钥发送给各所述第二终端。具体地,第一终端采用加密传输的方式分别将各所述第二终端的标识对应的对称密钥发送给各所述第二终端,加密传输所采用的加密密钥为第二终端的公钥或双方建立的tls会话密钥。
[0080]
方式三第一终端将所述对称密钥集合发送给所述签名服务器,以使所述签名服务器将各
所述第二终端的标识对应的对称密钥发送给各所述第二终端。
[0081]
例如,所述签名服务器将第二终端的标识对应的对称密钥添加到第二签名文件中,并且随同第二签名文件一起发送给第二终端。
[0082]
或者,在本发明的一些实施例中,第二终端根据第二终端的私钥以及第一终端的公钥计算得到第二终端与第一终端之间的对称密钥,由此可降低通信成本。
[0083]
s304,第二终端将所述文档信息添加到所述文档模板后得到最终文档。
[0084]
具体实施中,第二终端将所述第二终端的标识对应的文档信息添加到所述文档模板后得到最终文档。由此文档接收完毕。
[0085]
在本发明的一些实施例中,在步骤s304之前,还包括对文档信息进行校验的步骤,具体为如下两种方式:校验方式1第二终端根据预设的校验规则对所述第二终端的标识对应的文档信息进行校验。校验规则可包括:(1)检查文档信息的字段是否合法,即判断文档信息是否存在乱码或者非法值,若是则校验不通过。(2)在字段为合法值时,判断字段的范围是否超出了第二终端设定的范围,若是,则校验不通过。校验规则全部通过后,判定校验通过。
[0086]
若所述第二终端的标识对应的文档信息通过校验,则执行步骤s304。
[0087]
若所述第二终端的标识对应的文档信息未通过校验,判定所述第二签名文件为伪造文件。即,判定该第二签名文件是签名服务器伪造的。此时,对签名服务器进行审计的程序,查出本次伪造的来源,流程结束。
[0088]
校验方式2第二终端向第一终端发送校验信息,所述校验信息包括所述第二终端的标识对应的文档信息。
[0089]
相应地,第一终端接收第二终端发送的校验信息。第一终端判断所述第二终端的标识对应的文档信息是否为签名服务器伪造的。
[0090]
若判定所述第二终端对应的文档信息为签名服务器伪造,第一终端将第一哈希值、第一变色龙随机数、签名服务器的公钥以及第一变色龙哈希值发送给裁决服务器。裁决服务器为裁决机关的服务器。
[0091]
由于第一终端不具备陷门密钥,因此第一终端可以获取第一变色龙随机数并计算第一变色龙哈希值表明第一终端是真正的消息发出方,从而证明第一终端对签名服务器的否定是有权威性的,最后第二终端或第一终端可以凭借变色龙哈希的验证凭证以及裁决机关的介入,进入对签名服务器进行审计的程序,查出本次伪造的来源,流程结束。
[0092]
若判定所述第二终端对应的文档信息不是签名服务器伪造,第一终端向第二终端发送通知消息,通知消息用于告知第二终端解密结果正确。
[0093]
综上所述,校验方式1中,接收方(第二终端)无需跟发送方(第一终端)确认,也可以直接通过解密结果正确性判断得知存在陷门密钥持有者(签名服务器)进行了伪造,相比于校验方式2大大提升了对变色龙签名是否伪造的判断效率,通信成本较低。
[0094]
本发明提供了一种基于变色龙哈希的文档批量签署方法、装置、设备及介质,至少包括如下技术效果:发送方(第一终端)在批量签署时,只需要计算一次签名。由于使用签名服务器的公钥来计算第一变色龙哈希值,使得签名服务器的私钥成为陷门密钥,由此,签名
服务器利用变色龙哈希的特性完成批量签名,仅需要计算变色龙哈希所需的随机数而无需重新签名,因此,本方法极大降低了发送方(第一终端)和签名服务器的签名工作量。同时,通过对文档信息进行加密,有效确保了信息的安全性。由此,本发明能够实现,在确保数据安全的前提下,发送方(第一终端)在批量签署时,只需要计算一次签名,极大减少了批量签署合同时的计算量。
[0095]
参见图6,对应于以上基于变色龙哈希的文档批量签署方法,本发明还提供一种基于变色龙哈希的文档批量签署装置20。该基于变色龙哈希的文档批量签署装置20应用于签名服务器,具体地,该基于变色龙哈希的文档批量签署装置20包括:第一接收单元21,接收第一签名文件,所述第一签名文件包括第一变色龙消息、第一变色龙随机数、签名信息以及第一终端的证书,所述第一变色龙消息包括多个第二终端的标识以及多个分别与多个第二终端的标识对应的加密信息,所述签名信息由第一终端的私钥对第一变色龙哈希值进行签名后得到;所述第一变色龙哈希值由所述第一变色龙随机数、所述第一变色龙消息的第一哈希值以及签名服务器的公钥计算得到;第一获取单元22,用于获取文档模板,将多个所述加密信息分别添加到所述文档模板中,得到多个分别与各第二终端的标识对应的第二变色龙消息;求解单元23,用于根据所述第二变色龙消息的第二哈希值、所述第一哈希值、签名服务器的私钥以及所述第一变色龙随机数,求解所所述第二变色龙消息的第二变色龙随机数;制作单元24,用于制作各第二终端的第二签名文件,并分别将各第二终端的第二签名文件发送给各第二终端,第二终端的第二签名文件包括所述签名信息、第一终端的证书以及第二终端的标识对应的第二变色龙消息和第二变色龙随机数。
[0096]
参见图7,对应于以上基于变色龙哈希的文档批量签署方法,本发明还提供一种基于变色龙哈希的文档批量签署装置20。该基于变色龙哈希的文档批量签署装置20应用于第一终端,具体地,该基于变色龙哈希的文档批量签署装置20包括:第二获取单元31,用于获取接收端标识集合以及文档信息集合,所述接收端标识集合包括多个第二终端的标识;所述文档信息集合包括多个分别与各第二终端的标识对应的文档信息;加密单元32,用于分别对所述文档信息集合中的文档信息加密后得到加密信息集合;计算单元33,用于根据预设的第一变色龙随机数、第一变色龙消息的第一哈希值以及签名服务器的公钥计算所述第一变色龙消息的第一变色龙哈希值,所述第一变色龙消息包括所述加密信息集合以及所述接收端标识集合;签名单元34,用于利用第一终端的私钥对所述第一变色龙哈希值进行签名得到签名信息;发送单元35,用于将所述第一变色龙消息、所述第一变色龙随机数、所述签名信息以及第一终端的证书打包为第一签名文件,并将所述第一签名文件发送给签名服务器。
[0097]
在一实施例中,所述分别对所述文档信息集合中的文档信息加密后得到加密信息集合,包括:分别获取第一终端与各第二终端之间的对称密钥,得到对称密钥集合,所述对称
密钥集合包括多个与各第二终端的标识一一对应的对称密钥;分别利用各第二终端的标识对应的对称密钥对各第二终端的标识对应的文档信息进行加密,得到各第二终端的标识对应的加密信息。
[0098]
在一实施例中,所述发送单元还用于:第一终端将所述对称密钥集合发送给预设的密钥服务器,以使所述密钥服务器将各第二终端的标识对应的对称密钥发送给各第二终端;或者,分别将各第二终端的标识对应的对称密钥发送给各第二终端;或者,将所述对称密钥集合发送给所述签名服务器,以使所述签名服务器将各第二终端的标识对应的对称密钥发送给各第二终端。
[0099]
在一实施例中,所述发送单元还用于:接收文档模板,获取所述文档模板的第三哈希值,并将所述文档模板的第三哈希值发送给签名服务器。
[0100]
参见图8,对应于以上基于变色龙哈希的文档批量签署方法,本发明还提供一种基于变色龙哈希的文档批量签署装置20。该基于变色龙哈希的文档批量签署装置20应用于第二终端,具体地,该基于变色龙哈希的文档批量签署装置20包括:第二接收单元41,用于接收签名服务器发送的第二签名文件,所述第二签名文件包括第二变色龙消息、所述第二变色龙随机数、所述签名信息以及第一终端的证书,所述第二变色龙消息包括文档模板以及加密信息;校验单元42,用于根据第一终端的证书以及所述第二变色龙随机数对所述签名信息进行验证;解密单元43,用于若对所述签名信息验证通过,对所述加密信息进行解密,得到文档信息;添加单元44,用于将所述文档信息添加到所述文档模板后得到最终文档。
[0101]
在一实施例中,所述校验单元还用于:根据预设的校验规则对所述第二终端的标识对应的文档信息进行校验;若所述第二终端的标识对应的文档信息未通过校验,判定所述第二签名文件为伪造文件。
[0102]
需要说明的是,所属领域的技术人员可以清楚地了解到,上述基于变色龙哈希的文档批量签署装置20和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
[0103]
如图9所示,本技术实施例提供提供了一种计算机设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,存储器113,用于存放计算机程序;在本技术一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例中第一终端、或者签名服务器,或者第二终端执行的步骤。
[0104]
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执
行,以实现上述方法的实施例中第一终端、或者签名服务器,或者第二终端执行的步骤。
[0105]
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序。该计算机程序被处理器执行时实现前述任意一个方法实施例中第一终端、或者签名服务器,或者第二终端执行的步骤。
[0106]
所述存储介质为实体的、非瞬时性的存储介质,例如可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。所述计算机可读存储介质可以是非易失性,也可以是易失性。
[0107]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0108]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0109]
本发明方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
[0110]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0111]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
[0112]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,尚且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
[0113]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。