CN109741063A - 基于区块链的数字签名方法和装置 - Google Patents

基于区块链的数字签名方法和装置 Download PDF

Info

Publication number
CN109741063A
CN109741063A CN201910021394.1A CN201910021394A CN109741063A CN 109741063 A CN109741063 A CN 109741063A CN 201910021394 A CN201910021394 A CN 201910021394A CN 109741063 A CN109741063 A CN 109741063A
Authority
CN
China
Prior art keywords
signature
data
summary info
user
digital
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
CN201910021394.1A
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.)
Zhongan Information Technology Service Co Ltd
Original Assignee
Zhongan Information Technology Service 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 Zhongan Information Technology Service Co Ltd filed Critical Zhongan Information Technology Service Co Ltd
Priority to CN201910021394.1A priority Critical patent/CN109741063A/zh
Publication of CN109741063A publication Critical patent/CN109741063A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本公开的实施例提供了一种基于区块链的数字签名方法,包括:从第一用户接收数字签名请求;基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息,该数字证书和签名前数据的摘要信息用于生成数字签名,以与签名前数据组合成签名后数据;获得签名后数据的摘要信息;生成签名日志,签名日志包括签名前数据的摘要信息和签名后数据的摘要信息;以及向区块链的节点发送签名日志,以使得签名日志存储在区块链中。通过电子签章系统对用户的数据进行数字签名,并将签名日志存储在区块链中,能够保证用户对数据进行签名的有效性,提高了该数字签名的安全性和数据的完整性及可靠性,避免了用户的数字证书遗失所带来的风险。

Description

基于区块链的数字签名方法和装置
技术领域
本公开的实施例总体上涉及数字签名的技术领域,并且更具体地,涉及基于区块链的数字签名方法和装置。
背景技术
数字签名是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者确认数据单元的来源和数据单元的完整性,并保护数据,防止被他人(例如接收者)伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。
当前的数字签名技术通常基于PDF格式文档来实现,其基本实现原理为,用户从证书认证中心(Certification Authority,CA)申请数字证书,然后应用数字证书中所包含的私钥对PDF文档进行数字签名。PDF文档接收者利用该数字证书,可以对数字签名进行验证。
区块链(Block Chain)技术是一种基于去中心化的对等(peer-to-peer)网络,其将密码学原理与共识机制相结合,来保障分布式各节点的数据连贯和持续,实现信息的即时验证、可追溯、难篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。
发明内容
目前的数字签名技术存在以下问题:如果用户的数字证书遗失或者私钥被泄露,可能被人非法利用,在未取得数字证书拥有者同意的情况下,签署违反用户真实意图的电子合同或文件,从而引起不必要的法律纠纷,给用户带来严重的财产损失。
本公开的实施例提供了一种基于区块链的数字签名方法和装置。
本公开的第一实施例提出了一种基于区块链的数字签名方法,包括:从第一用户接收数字签名请求;基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息,所述数字证书和所述签名前数据的摘要信息用于生成数字签名,以与所述签名前数据组合成签名后数据;获得所述签名后数据的摘要信息;生成签名日志,所述签名日志包括所述签名前数据的摘要信息和所述签名后数据的摘要信息;以及向所述区块链的节点发送所述签名日志,以使得所述签名日志存储在所述区块链中。
在该实施例中,通过电子签章系统对用户的数据进行数字签名,并将签名日志存储在区块链中,能够保证用户对数据进行签名的有效性,提高了该数字签名的安全性和数据的完整性及可靠性,避免了用户的数字证书遗失所带来的风险。
本公开的第二实施例提出了一种基于区块链的数字签名的验证方法,包括:从第二用户接收数字签名的验证请求;基于所述数字签名的验证请求,获得由所述第二用户接收的签名后数据的摘要信息,其中,所述签名后数据由所述第二用户接收;向所述区块链的节点发送所述摘要信息;以及从所述节点接收指示所述摘要信息是否被保存在所述区块链中的信息,以判断所述第二用户接收到的签名后数据是否由第一用户进行数字签名。
在该实施例中,通过区块链对接收到的签名后数据进行验证,能够提高数据验证的准确性和真实性以及数据来源的可靠性,增加了数据签名方和数据验证方之间的信任度,避免了数据签名方的数字证书遗失所带来的风险。
本公开的第三实施例提出了一种基于区块链的数字签名装置,包括处理器;以及存储器,其用于存储指令,当所述指令被执行时使得所述处理器执行以下操作:从第一用户接收数字签名请求;基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息,所述数字证书和所述签名前数据的摘要信息用于生成数字签名,以与所述签名前数据组合成签名后数据;获得所述签名后数据的摘要信息;生成签名日志,所述签名日志包括所述签名前数据的摘要信息和所述签名后数据的摘要信息;以及向所述区块链的节点发送所述签名日志,以使得所述签名日志存储在所述区块链中。
本公开的第四实施例提出了一种基于区块链的数字签名的验证装置,所述装置包括:处理器;以及存储器,其用于存储指令,当所述指令被执行时使得所述处理器执行以下操作:从第二用户接收数字签名的验证请求;基于所述数字签名的验证请求,获得签名后数据的摘要信息,其中,所述签名后数据由所述第二用户接收;向所述区块链的节点发送所述摘要信息;以及从所述节点接收指示所述摘要信息是否被保存在所述区块链中的信息,以判断所述第二用户接收到的签名后数据是否由第一用户进行数字签名。
本公开的第五实施例提出了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据第一实施例的基于区块链的数字签名方法。
本公开的第六实施例提出了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据第二实施例的基于区块链的数字签名的验证方法。
附图说明
结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其它方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例,在附图中:
图1示出了利用根据本公开的一个实施例的基于区块链的数字签名方法的系统的架构示意图;
图2示出了根据本公开的一个实施例的基于区块链的数字签名方法的流程图;
图3示出了根据本公开的一个实施例的基于区块链的数字签名的验证方法的流程图;以及
图4示出了根据本公开的一个实施例的基于区块链的数字签名装置的方框图。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本公开的各个实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包括”、“包含”及类似术语是开放性的术语,即“包括/包含但不限于”,表示还可以包括其它内容。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”等等。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。
为了便于描述,下面对本公开中出现的一些术语进行说明,应当理解,本公开所使用的术语应解释为具有与其在本公开的说明书的上下文及有关领域中的意义一致的意义。
下面以利用根据本公开的一个实施例的基于区块链的数字签名方法的系统为例进行详细描述。图1示出了利用根据本公开的一个实施例的基于区块链的数字签名方法的系统100的架构示意图。在图1所示出的实施例中,系统100包括经由网络通信连接的服务器10、证书认证中心13、用户设备11和12、以及区块链网络14。网络可以是互联网、局域网、广域网等任何形式的网络,通信连接可以是无线连接、有线连接等任何形式的通信连接方式。在图1的实施例中,仅示出两个用户设备11和12,但是在其它实施例中,系统100可以具有任意数量的用户设备。区块链网络14包括经由网络彼此通信连接的节点140、141和142,它们构成一个基于区块链协议的系统。在图1的实施例中,在区块链网络14中仅示出了3个节点140、141和142,然而这仅仅是示例性的。在其它实施例中,区块链网络14可以包括任意数量的节点。
下面将参照图1描述两个用户经由系统100签署电子合同的过程。在图1的实施例中,需要进行数字签名的数据为待签名的PDF格式的电子合同。在其它实施例中,需要进行数字签名的数据可以是其它数据,例如电子凭证、电子公告文件等等。服务器10上安装有电子签章系统(服务器端软件),其用于向证书认证中心13为用户申请证书、对来自用户设备11和12的数据进行数字签名、以及与区块链网络14进行交互,以将信息存储在区块链中并从区块链中获取信息。在本实施例中,相应地,用户设备11和12上安装有客户端软件,用户通过该客户端软件与电子签章系统进行通信。
如图1中看到的,用户A与用户设备11进行交互,用户B与用户设备12进行交互。用户设备11和12可以是具有与用户A和B进行交互的外设设备(例如,显示设备、鼠标、键盘、麦克风等)的任意设备,例如,个人计算机、移动设备、平板电脑等。用户A在用户设备11上创建PDF格式的电子合同,通过用户设备11上的客户端软件,使用哈希算法对所创建的电子合同的原文进行哈希运算,获得电子合同的摘要信息(即,哈希值)。随后,通过用户设备11上的客户端软件确定需使用的加密算法(例如,RSA,ECC、国密算法等等),并向电子签章系统发送数字签名请求,请求包括数字签名的加密算法、电子合同的摘要信息和用户身份信息,例如手机号、姓名、身份证号码等。在其它实施例中,加密算法也可以是在系统100中预先确定的算法,例如国密算法,在这样的实施例中,客户端软件无需将需使用的加密算法发送给电子签章系统。
电子签章系统在接收到来自客户端软件的信息之后,首先验证用户的身份信息并为用户创建签章账号和区块链账号。电子签章系统向用户手机发送短信验证码进行验证,如果验证通过,则为用户创建用户的签章账号,例如用户识别码(ID)。随后,电子签章系统将用户身份信息分别发送给外部服务器(图1中未示出)进行身份验证。例如,将姓名和身份证号码发送给公安部的身份系统进行实名认证,将姓名和手机号发送给运营商进行实名认证。如果认证通过,外部服务器向电子签章系统返回身份验证通过的消息。当电子签章系统接收到身份验证通过的消息之后,其向区块链网络14中的节点发送区跨链账号创建请求,以为用户创建区块链账号,例如区块链识别码(ID),并对用户身份信息进行哈希运算。应当指出,每个用户的签章账号和区块链账号都是一一对应的关系。接着,电子签章系统将用户身份信息的哈希值连同其区块链账号发送给区块链网络14中的一个节点,通过区块链的共识机制来将用户身份信息的哈希值及其区块链账号存储在区块链中。在本实施例中,区块链网络14的每个节点上都部署智能合约,电子签章系统调用智能合约的写方法,从而将用户身份信息的哈希值以及其区块链账号存储在区块链中。
在电子签章系统为用户创建区块链账号并将用户身份信息存储在区块链上的同时,电子签章系统还向证书认证中心13发送数字证书申请请求,以为用户申请数字证书。证书认证中心13为每个用户颁发的数字证书有两个:一个包含用户身份信息、公钥、加密算法和证书认证中心的数字签名等信息,其用于附加到电子文件原文中,以使得接收到签名后电子文件的用户对该电子文件进行验证;另一个包含用户身份信息、公私钥对、加密算法和证书认证中心的数字签名等信息,其用于对电子文件进行签名。另外,在本实施例中,电子签章系统还为用户创建默认的签章图片,并将其与该用户的数字证书一起按用户ID为索引保存在服务器10的本地存储器中。
以上介绍了用户身份信息认证、账号创建、将用户身份信息保存在区块链中、以及申请数字证书的过程。当用户A后续再需要电子签章系统对数据进行签名时,不需要重复以上步骤,只需要用户A将数据的摘要信息、用户ID和签章图片的位置信息(下文中将具体介绍)发送给电子签章系统即可。
接下来介绍电子合同的签署过程。首先,电子签章系统利用数字证书中的私钥对来自用户设备11的电子合同原文的摘要信息进行加密,以生成密文。电子签章系统随后生成签名日志的一部分,包括电子合同原文的摘要信息(即签名前电子合同的摘要信息)、签名时间、签名用户的区块链账号、签名日志的唯一标识。应当指出,在用户A后续再需要电子签章系统对数据进行签名时,电子签章系统根据用户A通过用户设备11向其发送的用户ID,从本地存储器中查找用户A的数字证书和默认的签章图片。
接着,电子签章系统将密文、包含公钥的数字证书和用户A的默认的签章图片返回给用户设备11的客户端软件。用户A通过用户设备11的客户端软件,经由用户设备11的外设设备(例如,鼠标或触摸屏)将签章图片拖动到电子合同原文的适当位置处,从而将签章图片附加到电子合同原文中。在本实施例中,在用户设备11的客户端处,以页面的左下角为原点计算签章图片的位置信息,例如坐标。在其它实施例中,用户A还可以经由用户设备11的客户端软件输入签章图片所在位置处的关键字(例如,甲方),客户端软件搜索关键字在页面中所在的位置,并将关键字的第一个字符左下角确定为签章图片的坐标。此外,用户A还通过客户端软件将密文、包含公钥的数字证书和签名的覆盖范围等信息也一起附加到PDF格式的电子合同原文中。因而,密文、包含公钥的数字证书、签名的覆盖范围和签章图片共同作为数字签名而附加到电子合同原文中,以形成签名后电子合同。在本实施例中,签名的覆盖范围用字节表示,其代表签名所针对的电子合同原文的范围。
此后,用户设备11的客户端软件利用哈希算法对签名后电子合同进行哈希运算,以获得签名后电子合同的摘要信息(即,哈希值),并将该摘要信息连同签章图片的位置信息发送给电子签章系统。电子签章系统接收到这些信息之后,将签名后电子合同的摘要信息和签章图片的位置信息记录在签名日志中,并将签名日志保存在本地存储器中。
接下来,电子签章系统将签名日志发送给区块链网络14中的一个节点,以将签名日志保存在区块链中。在本实施例中,电子签章系统调用区块链的智能合约的写方法,将签名日志所包括的电子合同原文的摘要信息、签名时间、签名用户的区块链账号、签名日志的唯一标识、签章图片的位置信息、以及签名后电子合同的摘要信息作为区块存储在区块链中。
以上便完成了用户A经由系统100对电子合同进行签名,并使得签名日志保存在区块链中的过程。
此后,用户A通过用户设备11将签名后的电子合同发送给与用户B交互的用户设备12,以使用户B经由系统100完成电子合同的签署。用户设备12接收到由用户A签署过的电子合同后,可以执行该电子合同来源和数字签名的验证。首先,用户B经由系统100判断接收到的电子合同是否由用户A签署。用户B通过用户设备12的客户端软件对接收到的电子合同进行哈希运算,以获得摘要信息,然后将该摘要信息发送给电子签章系统。电子签章系统将该摘要信息发送给区块链网络14中的节点,以查找具有该摘要信息的区块。在本实施例中,电子签章系统调用智能合约的读方法,并将该摘要信息发送给智能合约。如果在区块链中存在具有该摘要信息的区块,则智能合约向电子签章系统返回区块中的签名日志,这表示用户设备12接收到的电子合同的确是由用户A签署过的。如果在区块链中不存在具有该摘要信息的区块,则智能合约向电子签章系统返回表示电子合同的签名日志未存储在区块链中的信息,这表示用户设备12接收到的电子合同并不是由用户A签署过的,存在恶意第三方签署或修改该电子合同的风险。
在确认接收到的电子合同确实是由用户A签署过之后,用户B可以对电子合同中的数字签名进行验证。用户B将接收到的电子合同经由用户设备12发送给电子签章系统,电子签章系统对电子合同的内容进行解析,提取数字签名部分。然后,电子签章系统根据数字签名中包含的签名的覆盖范围,提取签名所针对的电子合同原文,并利用哈希算法对该电子合同原文进行哈希运算,以获得摘要信息。随后,电子签章系统利用数字签名中的数字证书中的公钥对数字签名中的密文进行解密,生成摘要信息。将对电子合同原文进行哈希运算所获得的摘要信息与对密文进行解密所生成的摘要信息进行比较。如果比较结果为相同,则表示数字签名的验证通过,电子合同原文未被修改,否则存在恶意第三方修改该电子合同的风险。
在验证通过后,用户B可以按照与用户A签署电子合同相同的方式,经由系统100对该电子合同进行签署,在此将不再赘述。不同之处在于,电子签章系统生成的签名日志中除了用户B签名前电子合同的摘要信息(即,用户A签名后电子合同的摘要信息)和用户B签名后电子合同的摘要信息以外,还包括原始电子合同的摘要信息,即用户A签名前电子合同的摘要信息。也就是说,在签名日志中包括了每一次签名前后的电子合同的摘要信息。通过这样的方式,能够在双方或多方签署电子合同时,追踪到每一方的签署详情。
以上详细说明了用户A和用户B经由系统100签署电子合同的整个过程。在一些实施例中,也可以由非合同签署方验证电子合同的数字签名的有效性。此外,在一些实施例中,还可以对电子合同进行编号,并且在签名日志中保存合同编号,从而用户可以通过合同编号而查找到相应合同的签署详情。
在以上所描述的实施例中,用户A通过用户设备11上安装的客户端软件对电子合同的原文进行哈希运算,获得摘要信息,随后将摘要信息发送给电子签章系统,由电子签章系统使用数字证书中的私钥对摘要信息进行加密。在一些实施例中,用户A可以通过用户设备11上安装的客户端软件将电子合同的原文发送给电子签章系统,由电子签章系统对电子合同的原文进行哈希运算,获得摘要信息,并使用数字证书中的私钥对摘要信息进行加密。此后,电子签章系统还将密文、包含公钥的数字证书、签章图片和签名的覆盖范围附加到电子合同原文中,即在电子签章系统处完成用户A对电子合同的整个签名过程,并将签名后的电子合同发送给用户设备11的客户端软件供其保存。在这样的实施例中,由于电子签章系统处具有用户A签名后的电子合同,因此也可以由电子签章系统直接将该签名后电子合同发送给用户设备12。对于用户B,在需要验证接收到的电子合同中的数字签名时,可以通过用户设备12上安装的客户端软件将接收到的签名后电子合同发送给电子签章系统,由电子签章系统进行哈希运算等进一步的验证处理。
此外,在其它实施例中,用户设备11和用户设备12上可以不具有客户端软件。用户A和用户B可以通过用户设备11和用户设备12,采用浏览器的方式访问服务器10。在这样的实施例中,用户A可以经由浏览器将待签名的电子合同原文发送给电子签章系统,由电子签章系统对电子合同原文进行哈希运算,获得摘要信息,并利用数字证书中的私钥对摘要信息进行加密。用户A可以经由浏览器拖动签章图片,电子签章系统通过以页面左下角为原点计算签章图片的位置信息或通过关键字定位的方法来获得签章图片的位置信息,并将签章图片与密文、包括公钥的数字证书和签名覆盖范围一起附加到电子合同原文中。
此外,在其它实施例中,也可以不使用签章图片。在这样的实施例中,无需将签章图片附加到电子合同中,也无需获得签章图片的位置信息并将其保存在区块链中。
图2示出了根据本公开的一个实施例的基于区块链的数字签名方法的流程图。该数字签名方法在图1中的服务器10上的电子签章系统处执行。如图2中看到的,该基于区块链的数字签名方法200包括以下步骤:
首先,在步骤201中,从第一用户接收数字签名请求。在一些实施例中,数字签名请求包括第一用户的身份信息、数字签名的加密算法、签名前数据的摘要信息。在另一些实施例中,数字签名请求可以不包括数字签名的加密算法。在另一些实施例中,数字签名请求也可以包括签名前数据,而不包括签名前数据的摘要信息。
接下来,在步骤202中,基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息,数字证书和签名前数据的摘要信息用于生成数字签名,以与签名前数据组合成签名后数据。在一些实施例中,基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息进一步包括:向证书认证中心为第一用户申请数字证书。在一些实施例中,数字签名请求包括签名前数据,并且,基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息进一步包括:对签名前数据进行哈希运算,以获得签名前数据的摘要信息。在另一些实施例中,数字签名请求已包括签名前数据的摘要信息,也就是说,对签名前数据进行哈希运算在用户设备处进行。数字证书和签名前数据的摘要信息用于生成数字签名,所生成的数字签名与签名前数据组合成签名后数据。
随后,方法200进入步骤203。在步骤203中,获得签名后数据的摘要信息。在一些实施例中,电子签章系统接收来自第一用户的签名后数据的摘要信息。在另一些实施例中,电子签章系统对签名后数据进行哈希运算,以生成签名后数据的摘要信息。
方法200转入步骤204,在步骤204中,生成签名日志,该签名日志包括签名前数据的摘要信息和签名后数据的摘要信息。在一些实施例中,签名日志还包括以下各项中的一项或多项:签名时间、签名账号、以及原始数据的摘要信息。
之后,在步骤205中,向区块链的节点发送签名日志,以使得签名日志存储在区块链中。通过将关于第一用户的经数字签名的数据的签名日志存储在区块链中,能够保证用户对数据进行签名的有效性,提高了该数字签名的安全性和数据的完整性和可靠性,避免了用户的数字证书遗失所带来的风险。
在一些实施例中,方法200还包括以下步骤(图2中未示出):利用数字证书中的私钥对签名前数据的摘要信息进行加密,以生成密文;以及接收来自第一用户的签章图片的位置信息,并且其中,数字签名包括密文、数字证书、签章图片的位置信息和签名的覆盖内容。通过电子签章系统统一对用户的签名前数据的摘要信息进行加密形成密文,能够提高数字签名的便利性和安全性。
图3示出了根据本公开的一个实施例的基于区块链的数字签名的验证方法的流程图。该数字签名的验证方法在图1中的服务器10上的电子签章系统处执行。从图3中可以看出,该基于区块链的数字签名的验证方法300包括以下步骤:
首先,在步骤301中,从第二用户接收数字签名的验证请求。在一些实施例中,数字签名的验证请求包括签名后数据的摘要信息。在另一些实施例中,数字签名的验证请求包括签名后数据,而并不包括签名后数据的摘要信息。
接着,在步骤302中,基于数字签名的验证请求,获得签名后数据的摘要信息,其中,签名后数据由第二用户接收。如上面所描述的,在一些实施例中,数字签名的验证请求包括签名后数据的摘要信息。因此,在电子签章系统处,直接接收签名后数据的摘要信息。在另一些实施例中,数字签名的验证请求包括签名后数据,而不包括签名后数据的摘要信息。因此,在电子签章系统处,需要对签名后数据进行哈希运算,以获得摘要信息。
方法300接下来进入步骤303和步骤304。在步骤303中,向区块链的节点发送该摘要信息。在步骤304中,从节点接收指示该摘要信息是否被保存在区块链中的信息,以判断第二用户接收到的签名后数据是否由第一用户进行数字签名。由于第一用户的签名后数据的摘要信息在第一用户的数据被数字签名后已经存储在区块链中,因此,通过将接收到的签名后数据的摘要信息发送给区块链节点,并判断该摘要信息是否被保存在区块链中,可以判断接收到的签名后数据是否确实由第一用户进行数字签名。
在一些实施例中,数字签名的验证请求包括由第二用户接收的签名后数据,签名后数据包括数字签名和签名前数据。方法300进一步包括(图3中未示出):在判断第二用户接收到的签名后数据是由第一用户进行数字签名的情况下,从签名后数据中提取数字签名和签名前数据,其中,数字签名包括数字证书和密文;利用数字证书中的公钥对密文进行解密,以获得第一摘要信息;基于签名前数据生成第二摘要信息;以及将第一摘要信息与第二摘要信息进行比较,以判断两者是否相同。通过将利用数字证书中的公钥对数字签名中的密文进行解密后获得的摘要信息与对签名前数据进行哈希运算所获得的摘要信息进行比较,能够判断第二用户接收到的签名后数据是否被第三方篡改过。如果比较结果为相同,表示该签名后数据未被篡改,是可信的,反之表示有被第三方篡改的风险。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个实施例的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些实施例可以在硬件中实施,而一些实施例可以在可以由控制器、微处理器或其它计算设备执行的固件或软件中实施。当本公开的各实施例被图示或描述为框图、流程图或使用某些其它图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或其某些组合中实施。
图4示出了根据本公开的一个实施例的基于区块链的数字签名装置的方框图。从图4中可以看出,基于区块链的数字签名装置400包括处理器401和与处理器401耦接的存储器402。
存储器402存储有指令。指令在由处理器401执行时使得处理器401执行以下动作:从第一用户接收数字签名请求;基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息,数字证书和签名前数据的摘要信息用于生成数字签名,以与签名前数据组合成签名后数据;获得签名后数据的摘要信息;生成签名日志,签名日志包括签名前数据的摘要信息和签名后数据的摘要信息;以及向区块链的节点发送签名日志,以使得签名日志存储在区块链中。
在一些实施例中,签名日志还包括以下各项中的一项或多项:签名时间、签名账号、以及原始数据的摘要信息。
在一些实施例中,存储器还存储在被执行时使得处理器执行以下操作的指令:利用数字证书中的私钥对签名前数据的摘要信息进行加密,以生成密文;以及接收来自第一用户的签章图片的位置信息,并且其中,数字签名包括密文、数字证书、签章图片的位置信息和签名的覆盖内容。
在一些实施例中,基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息进一步包括:向证书认证中心为第一用户申请数字证书。
在一些实施例中,数字签名请求包括签名前数据,并且,基于数字签名请求,获得第一用户的数字证书和签名前数据的摘要信息进一步包括:对签名前数据进行哈希运算,以获得签名前数据的摘要信息。
在一些实施例中,数字签名请求包括签名前数据的摘要信息。
本公开的实施例还提出了一种基于区块链的数字签名的验证装置,包括:处理器;以及存储器,其用于存储指令,当指令被执行时使得处理器执行以下操作:从第二用户接收数字签名的验证请求;基于数字签名的验证请求,获得签名后数据的摘要信息,其中,签名后数据由第二用户接收;向区块链的节点发送摘要信息;以及从节点接收指示摘要信息是否被保存在区块链中的信息,以判断第二用户接收到的签名后数据是否由第一用户进行数字签名。
在一些实施例中,数字签名的验证请求包括由第二用户接收的签名后数据,签名后数据包括数字签名和签名前数据,存储器还包括在被执行时使得处理器执行以下操作的指令:在判断第二用户接收到的签名后数据是由第一用户进行数字签名的情况下,从签名后数据中提取数字签名和签名前数据,其中,数字签名包括数字证书和密文;利用数字证书中的公钥对密文进行解密,以获得第一摘要信息;基于签名前数据生成第二摘要信息;以及将第一摘要信息与第二摘要信息进行比较,以判断两者是否相同。
虽然上面描述了本公开的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数字签名装置和数字签名的验证装置既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在20世纪90年代,一个技术改进能够很容易地对该改进属于硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是属于软件上的改进(例如对于方法流程的改进)。然而,随着技术的持续发展,如今的很多方法流程的改进几乎都能够通过将改进的方法流程编程到硬件电路中来实现,换句话说,通过对于硬件电路编程不同的程序从而得到相应的硬件电路结构,即实现了硬件电路结构的改变,故这样的方法流程的改进也可以被视为硬件电路结构的直接改进。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device:PLD)(例如现场可编程门阵列(Field Programmable Gate Array:FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片可编程逻辑器件上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompi1er)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware DescriptionLanguage:HDL),而HDL也并非仅有—种,而是有许多种,如ABEL(Advanced BooleanExpression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated CircuitHardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本公开的各个实施例的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其它网络访问存储在云端上的用于执行本公开的一个实施例的计算机可读程序指令,从而实施依据本公开的各个实施例所公开的技术方案。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应当理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (18)

1.一种基于区块链的数字签名方法,包括:
从第一用户接收数字签名请求;
基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息,所述数字证书和所述签名前数据的摘要信息用于生成数字签名,以与所述签名前数据组合成签名后数据;
获得所述签名后数据的摘要信息;
生成签名日志,所述签名日志包括所述签名前数据的摘要信息和所述签名后数据的摘要信息;以及
向所述区块链的节点发送所述签名日志,以使得所述签名日志存储在所述区块链中。
2.根据权利要求1所述的方法,其中,所述签名日志还包括以下各项中的一项或多项:签名时间、签名账号、以及原始数据的摘要信息。
3.根据权利要求1或2所述的方法,还包括:
利用所述数字证书中的私钥对所述签名前数据的摘要信息进行加密,以生成密文;以及
接收来自所述第一用户的签章图片的位置信息,并且其中,
所述数字签名包括所述密文、所述数字证书、所述签章图片的位置信息和签名的覆盖内容。
4.根据权利要求1所述的方法,其中,基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息进一步包括:
向证书认证中心为所述第一用户申请数字证书。
5.根据权利要求4所述的方法,其中,所述数字签名请求包括所述签名前数据,并且,基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息进一步包括:
对所述签名前数据进行哈希运算,以获得所述签名前数据的摘要信息。
6.根据权利要求4所述的方法,其中,所述数字签名请求包括所述签名前数据的摘要信息。
7.一种基于区块链的数字签名的验证方法,包括:
从第二用户接收数字签名的验证请求;
基于所述数字签名的验证请求,获得签名后数据的摘要信息,其中,所述签名后数据由所述第二用户接收;
向所述区块链的节点发送所述摘要信息;以及
从所述节点接收指示所述摘要信息是否被保存在所述区块链中的信息,以判断所述第二用户接收到的签名后数据是否由第一用户进行数字签名。
8.根据权利要求7所述的方法,其中,所述数字签名的验证请求包括由所述第二用户接收的签名后数据,所述签名后数据包括数字签名和签名前数据,所述方法还包括:
在判断所述第二用户接收到的签名后数据是由所述第一用户进行数字签名的情况下,从所述签名后数据中提取所述数字签名和所述签名前数据,其中,所述数字签名包括数字证书和密文;
利用所述数字证书中的公钥对所述密文进行解密,以获得第一摘要信息;
基于所述签名前数据生成第二摘要信息;以及
将所述第一摘要信息与所述第二摘要信息进行比较,以判断两者是否相同。
9.一种基于区块链的数字签名装置,包括:
处理器;以及
存储器,其用于存储指令,当所述指令被执行时使得所述处理器执行以下操作:
从第一用户接收数字签名请求;
基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息,所述数字证书和所述签名前数据的摘要信息用于生成数字签名,以与所述签名前数据组合成签名后数据;
获得所述签名后数据的摘要信息;
生成签名日志,所述签名日志包括所述签名前数据的摘要信息和所述签名后数据的摘要信息;以及
向所述区块链的节点发送所述签名日志,以使得所述签名日志存储在所述区块链中。
10.根据权利要求9所述的装置,其中,所述签名日志还包括以下各项中的一项或多项:签名时间、签名账号、以及原始数据的摘要信息。
11.根据权利要求9或10所述的装置,其中,所述存储器还存储在被执行时使得所述处理器执行以下操作的指令:
利用所述数字证书中的私钥对所述签名前数据的摘要信息进行加密,以生成密文;以及
接收来自所述第一用户的签章图片的位置信息,并且其中,
所述数字签名包括所述密文、所述数字证书、所述签章图片的位置信息和签名的覆盖内容。
12.根据权利要求9所述的装置,其中,基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息进一步包括:
向证书认证中心为所述第一用户申请数字证书。
13.根据权利要求12所述的装置,其中,所述数字签名请求包括所述签名前数据,并且,基于所述数字签名请求,获得所述第一用户的数字证书和签名前数据的摘要信息进一步包括:
对所述签名前数据进行哈希运算,以获得所述签名前数据的摘要信息。
14.根据权利要求12所述的装置,其中,所述数字签名请求包括所述签名前数据的摘要信息。
15.一种基于区块链的数字签名的验证装置,包括:
处理器;以及
存储器,其用于存储指令,当所述指令被执行时使得所述处理器执行以下操作:
从第二用户接收数字签名的验证请求;
基于所述数字签名的验证请求,获得签名后数据的摘要信息,其中,所述签名后数据由所述第二用户接收;
向所述区块链的节点发送所述摘要信息;以及
从所述节点接收指示所述摘要信息是否被保存在所述区块链中的信息,以判断所述第二用户接收到的签名后数据是否由第一用户进行数字签名。
16.根据权利要求15所述的装置,其中,所述数字签名的验证请求包括由所述第二用户接收的签名后数据,所述签名后数据包括数字签名和签名前数据,所述存储器还包括在被执行时使得所述处理器执行以下操作的指令:
在判断所述第二用户接收到的签名后数据是由所述第一用户进行数字签名的情况下,从所述签名后数据中提取所述数字签名和所述签名前数据,其中,所述数字签名包括数字证书和密文;
利用所述数字证书中的公钥对所述密文进行解密,以获得第一摘要信息;
基于所述签名前数据生成第二摘要信息;以及
将所述第一摘要信息与所述第二摘要信息进行比较,以判断两者是否相同。
17.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1-6中任一项所述的基于区块链的数字签名方法。
18.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求7-8中任一项所述的基于区块链的数字签名的验证方法。
CN201910021394.1A 2019-01-10 2019-01-10 基于区块链的数字签名方法和装置 Pending CN109741063A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910021394.1A CN109741063A (zh) 2019-01-10 2019-01-10 基于区块链的数字签名方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910021394.1A CN109741063A (zh) 2019-01-10 2019-01-10 基于区块链的数字签名方法和装置

Publications (1)

Publication Number Publication Date
CN109741063A true CN109741063A (zh) 2019-05-10

Family

ID=66364278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910021394.1A Pending CN109741063A (zh) 2019-01-10 2019-01-10 基于区块链的数字签名方法和装置

Country Status (1)

Country Link
CN (1) CN109741063A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086790A (zh) * 2019-04-17 2019-08-02 江苏全链通信息科技有限公司 基于数据中心的日志存储方法和系统
CN110598460A (zh) * 2019-09-27 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的电子签字方法、装置及存储介质
CN110750492A (zh) * 2019-09-02 2020-02-04 深圳晶泰科技有限公司 基于区块链的药物晶体库及其构建方法
CN110826111A (zh) * 2019-06-26 2020-02-21 腾讯科技(深圳)有限公司 测试监管方法、装置、设备及存储介质
CN111010367A (zh) * 2019-11-07 2020-04-14 深圳市电子商务安全证书管理有限公司 数据存证方法、装置、计算机设备和存储介质
CN111753276A (zh) * 2020-06-08 2020-10-09 江苏任务网络科技有限公司 可溯源的多方电子签约方法、计算机设备及存储介质
CN112132573A (zh) * 2019-06-24 2020-12-25 鄢华中 基于区块链的去CA去Key的电子签名和电子合同系统
CN112242983A (zh) * 2019-07-19 2021-01-19 傲为信息技术(江苏)有限公司 一种数字资产认证处理系统
CN112383407A (zh) * 2020-09-22 2021-02-19 法信公证云(厦门)科技有限公司 一种基于区块链的在线公证全流程日志处理方法及系统
CN112564921A (zh) * 2020-12-10 2021-03-26 广东正脉科技股份有限公司 一种基于区块链的可信电子文档的实现和验证方法及系统
CN112905616A (zh) * 2021-03-19 2021-06-04 广东科学技术职业学院 一种区块链账本的存储系统
CN113132315A (zh) * 2019-12-31 2021-07-16 中国移动通信集团山西有限公司 在线会议鉴权方法、装置、设备、介质及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106355104A (zh) * 2016-08-25 2017-01-25 杭州天谷信息科技有限公司 一种基于沙箱技术实现原文隐私保护的电子签名方法
CN107181765A (zh) * 2017-07-25 2017-09-19 光载无限(北京)科技有限公司 基于区块链技术的网络数字身份认证方法
US20180083786A1 (en) * 2016-09-22 2018-03-22 Google Inc. Methods and systems of performing tamper-evident logging using block lattices
CN107832624A (zh) * 2017-10-25 2018-03-23 济南浪潮高新科技投资发展有限公司 一种基于区块链的可视化签名系统和方法
CN109118223A (zh) * 2018-08-21 2019-01-01 上海点融信息科技有限责任公司 用于在区块链中管理电子数据的方法、装置及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106355104A (zh) * 2016-08-25 2017-01-25 杭州天谷信息科技有限公司 一种基于沙箱技术实现原文隐私保护的电子签名方法
US20180083786A1 (en) * 2016-09-22 2018-03-22 Google Inc. Methods and systems of performing tamper-evident logging using block lattices
CN107181765A (zh) * 2017-07-25 2017-09-19 光载无限(北京)科技有限公司 基于区块链技术的网络数字身份认证方法
CN107832624A (zh) * 2017-10-25 2018-03-23 济南浪潮高新科技投资发展有限公司 一种基于区块链的可视化签名系统和方法
CN109118223A (zh) * 2018-08-21 2019-01-01 上海点融信息科技有限责任公司 用于在区块链中管理电子数据的方法、装置及介质

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086790A (zh) * 2019-04-17 2019-08-02 江苏全链通信息科技有限公司 基于数据中心的日志存储方法和系统
CN112132573B (zh) * 2019-06-24 2024-05-31 鄢华中 基于区块链的去CA去Key的电子签名和电子合同系统
CN112132573A (zh) * 2019-06-24 2020-12-25 鄢华中 基于区块链的去CA去Key的电子签名和电子合同系统
CN110826111B (zh) * 2019-06-26 2021-08-13 腾讯科技(深圳)有限公司 测试监管方法、装置、设备及存储介质
CN110826111A (zh) * 2019-06-26 2020-02-21 腾讯科技(深圳)有限公司 测试监管方法、装置、设备及存储介质
CN112242983A (zh) * 2019-07-19 2021-01-19 傲为信息技术(江苏)有限公司 一种数字资产认证处理系统
WO2021012815A1 (zh) * 2019-07-19 2021-01-28 南京瑞祥信息技术有限公司 一种数字资产认证处理系统
CN110750492A (zh) * 2019-09-02 2020-02-04 深圳晶泰科技有限公司 基于区块链的药物晶体库及其构建方法
CN110598460A (zh) * 2019-09-27 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的电子签字方法、装置及存储介质
CN110598460B (zh) * 2019-09-27 2022-08-05 腾讯科技(深圳)有限公司 基于区块链的电子签字方法、装置及存储介质
CN111010367A (zh) * 2019-11-07 2020-04-14 深圳市电子商务安全证书管理有限公司 数据存证方法、装置、计算机设备和存储介质
CN111010367B (zh) * 2019-11-07 2022-11-29 深圳市电子商务安全证书管理有限公司 数据存证方法、装置、计算机设备和存储介质
CN113132315A (zh) * 2019-12-31 2021-07-16 中国移动通信集团山西有限公司 在线会议鉴权方法、装置、设备、介质及系统
CN113132315B (zh) * 2019-12-31 2023-07-11 中国移动通信集团山西有限公司 在线会议鉴权方法、装置、设备、介质及系统
CN111753276A (zh) * 2020-06-08 2020-10-09 江苏任务网络科技有限公司 可溯源的多方电子签约方法、计算机设备及存储介质
CN112383407A (zh) * 2020-09-22 2021-02-19 法信公证云(厦门)科技有限公司 一种基于区块链的在线公证全流程日志处理方法及系统
CN112383407B (zh) * 2020-09-22 2023-05-12 法信公证云(厦门)科技有限公司 一种基于区块链的在线公证全流程日志处理方法及系统
CN112564921A (zh) * 2020-12-10 2021-03-26 广东正脉科技股份有限公司 一种基于区块链的可信电子文档的实现和验证方法及系统
CN112905616A (zh) * 2021-03-19 2021-06-04 广东科学技术职业学院 一种区块链账本的存储系统

Similar Documents

Publication Publication Date Title
CN109741063A (zh) 基于区块链的数字签名方法和装置
CN107392040B (zh) 一种共识验证的方法及装置
US11323272B2 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
US12051064B2 (en) Transaction messaging
CN109118223A (zh) 用于在区块链中管理电子数据的方法、装置及介质
CN111080295B (zh) 一种基于区块链的电子合同处理方法以及设备
CN109040133A (zh) 在区块链网络中安装智能合约的方法、装置及存储介质
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
CN109255210A (zh) 在区块链网络中提供智能合约的方法、装置及存储介质
CN106341493A (zh) 实体权益数字化电子合同签署方法
CN108848058A (zh) 智能合约处理方法及区块链系统
CN111079152B (zh) 一种模型部署方法、装置及设备
CN109213501A (zh) 在区块链网络中安装智能合约的方法、装置及存储介质
CN109358859A (zh) 在区块链网络中安装智能合约的方法、装置及存储介质
CN110149354A (zh) 一种基于https协议的加密认证方法和装置
CN110366183A (zh) 短信安全防护方法及装置
CN112308236B (zh) 用于处理用户请求的方法、装置、电子设备及存储介质
US20220209950A1 (en) Hybrid key derivation to secure data
CN110460674A (zh) 一种信息推送方法、装置及系统
CN108900472B (zh) 信息的传输方法和装置
CN109711178A (zh) 一种键值对的存储方法、装置、设备及存储介质
CN116204903A (zh) 一种财务数据安全管理方法、装置、电子设备及存储介质
CN115765993A (zh) 检验数据真实性的系统、方法及装置
CN110490003B (zh) 用户可信数据生成方法、获取方法、装置及系统
CN108989032A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190510

WD01 Invention patent application deemed withdrawn after publication