签名验签方法和装置
技术领域
本发明涉及电子签名技术领域,尤其涉及一种签名验签方法和装置。
背景技术
用户在向银行、政府机构等对安全要求较高的企业和部门提交数字文件时,为了防止数字文件被伪造和篡改,往往需要对数字文件进行电子签名,从而保证文件的真实性、有效性和完整性。根据《联合国国际贸易法委员会电子商务示范法》的规定,电子签名是包含、附加在某一数据电文内,或逻辑上与某一数据电文相联系的电子形式的数据,它能被用来证实与此数据电文有关的签名人的身份,并表明该签名人认可该数据电文所载信息。电子签名的一种最为普遍和成熟的实现方式是数字签名技术。数字签名技术是依靠密钥加密技术来实现的。在密钥加密技术里,每一个使用者都有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则需秘密保存。然而在实际使用的过程中,私钥被窃取的情况时有发生。
U盾很好地解决了私钥被窃取的问题。U盾内置有微型智能芯片,采用1024位非对称密钥算法对信息进行加密、解密和数字签名。U盾的密钥存储于内部的智能芯片中,用户无法从外部直接读取,对密钥文件的读写和修改都必须由U盾内置的智能芯片上的CPU调用相应的程序文件执行,因此从U盾接口的外面,没有任何一条指令能对智能芯片内密钥文件的内容进行读取、修改、更新和删除,这样可以保证黑客无法利用非法程序修改密钥。目前U盾作为身份认证和数字签名工具已广泛用于银行和政府部门。U盾中的密钥信息由证书授权中心(CA)统一进行发放和管理,其中CA用于提供用户注册、审核,密钥产生、分发,证书签发、制证及发布等功能。
由于U盾是一个物理存在,其必然存在发放、使用以及保管方面的问题。另外,U盾在一个时间点只能物理存在于一个地方,这就无法实现处于异地的多个人同时对该U盾的使用。
发明内容
鉴于上述技术问题,本公开内容提出了一种能够在没有U盾的情况下实现电子签名的签名验签方法和装置。
依据本发明的一个方面,提供了一种签名验签方法,该签名验签方法可以包括接收签名请求,所述签名请求包含文件的摘要信息和发送方标识;生成随机数;根据签名生成算法基于所述随机数、所述摘要信息和所述发送方标识生成所述文件的签名;以及将所述签名存储在区块链中并将所述随机数返回给发送所述签名请求的发送方。
在一些实施方式中,该签名验签方法还可以包括接收签名验证请求,所述签名验证请求包含预验证的签名;验证所述预验证的签名是否存在于所述区块链中;以及在所述预验证的签名存在于所述区块链中的情况下,向发送所述签名验证请求的发送方返回验证成功。
在一些实施方式中,所述签名生成算法可以包括对由所述随机数、所述摘要信息和所述发送方标识组成的字符串求哈希。
在一些实施方式中,所述预验证的签名可以是根据所述签名生成算法生成的。
在一些实施方式中,所述将所述签名存储在区块链中可以进一步包括调用部署在所述区块链上的签名存储智能合约,所述签名存储智能合约用于将所述签名存储在所述区块链的数据库中。
在一些实施方式中,所述验证所述预验证的签名是否存在于所述区块链中可以进一步包括调用部署在所述区块链上的签名查询智能合约,所述签名查询智能合约用于确定所述预验证的签名是否存在于所述区块链中。
依据本发明的另一方面,提供了一种签名验签装置,该签名验签装置可以包括处理器和存储器,其中所述存储器上存储有计算机程序指令,所述计算机程序指令在由所述处理器执行时可以实现以下步骤:接收签名请求,所述签名请求包含文件的摘要信息和发送方标识;生成随机数;根据签名生成算法基于所述随机数、所述摘要信息和所述发送方标识生成所述文件的签名;以及将所述签名存储在区块链中并将所述随机数返回给发送所述签名请求的发送方。
在一些实施方式中,所述计算机程序指令在由所述处理器执行时还可以实现以下步骤:接收签名验证请求,所述签名验证请求包含预验证的签名;验证所述预验证的签名是否存在于所述区块链中;以及在所述预验证的签名存在于所述区块链中的情况下,向发送所述签名验证请求的发送方返回验证成功。
在一些实施方式中,所述签名生成算法可以包括对由所述随机数、所述摘要信息和所述发送方标识组成的字符串求哈希。
在一些实施方式中,所述预验证的签名可以是根据所述签名生成算法生成的。
在一些实施方式中,所述将所述签名存储在区块链中可以进一步包括调用部署在所述区块链上的签名存储智能合约,所述签名存储智能合约用于将所述签名存储在所述区块链的数据库中。
在一些实施方式中,所述验证所述预验证的签名是否存在于所述区块链中可以进一步包括调用部署在所述区块链上的签名查询智能合约,所述签名查询智能合约用于确定所述预验证的签名是否存在于所述区块链中。
依据本发明的又一方面,提供了一种计算机可读存储介质,在该计算机可读存储介质上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现上文所述的签名验签方法,所述签名验签方法可以包括接收签名请求,所述签名请求包含文件的摘要信息和发送方标识;生成随机数;根据签名生成算法基于所述随机数、所述摘要信息和所述发送方标识生成所述文件的签名;以及将所述签名存储在区块链中并将所述随机数返回给发送所述签名请求的发送方。
与现有技术相比,本公开内容的有益效果为:
首先,依据本公开内容的技术方案是根据签名生成算法基于随机数、摘要信息和发送方标识生成文件的签名,并且将所述签名存储在区块链中。这其中并未涉及任何公钥私钥以及物理存在的U盾,也就是说,要进行电子签名的一方无需秘密保存或存放任何需要进行电子签名所需的信息,即可以在无公钥私钥以及U盾的情况下实现电子签名,从而减少了U盾采购的经济投入。
其次,利用本公开内容的技术方案,要进行电子签名和/或验证的一方只需要连接到区块链即可进行电子签名和/或验证,从而可以使得处于不同地方的多个人能够同时进行电子签名和/或验证。
再者,众所周知区块链具有成本低、防篡改和不可伪造等特点,因此利用本公开内容的技术方案能够实现高安全性。
附图说明
在所附权利要求书中具体阐述了本发明的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解。附图仅用于示出实施方式的目的,而并不应当认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的元素,在附图中:
图1示出了依据本发明示例性实施方式的签名验签方法的流程图;
图2示出了依据本发明示例性实施方式的签名验签装置的示意图;以及
图3示出了依据本公开内容一个示例所涉及的企业、工商登记机关和签名验签装置之间的交互示意图。
具体实施方式
下面将参照附图更详细地描述本公开内容的示例性实施方式。虽然附图中显示了本公开内容的示例性实施方式,然而应当理解,可以以各种形式实现本公开内容而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开内容,并且能够将本公开内容的范围完整地传达给本领域技术人员。在以下详细描述中没有任何内容旨在表明任何特定组件、特征或步骤对于本发明是必不可少的。本领域技术人员将会理解,各种特征或步骤可以彼此替代或结合。
数字签名是电子签名的一种实现方式。在数字签名中广泛使用哈希(Hash)算法。Hash算法还用于验证信息来源和完整性,它可将任意长度的数据压缩成固定长度的信息摘要。Hash算法的原理是将数据按照固定长度分组,通过组合分组数据迭代调用压缩函数最终得到固定长度的信息摘要。Hash算法主要分为MD系列和SHA系列两大类。MD系列包括MD4、MD5、HAVAL、RIPEMD等,其中MD5是MD4的改进版本,HAVAL是MD5的改进版本,而RIPEMD是MD4的变形。王小云等人于2004年公布了MD5破解的高效方法,破解时间可以缩少到几十秒。SHA系列包括SHA-1、SHA-256、SHA-512等,该系列由美国国家标准与技术协会发布,已经被许多政府和行业安全标准所采用。根据日前谷歌公司公布的数据,针对SHA-1的破解的突破性进展有单GPU破解需要110年的时间,而通过多核和集群技术破解时间将会大为缩短。因此很多安全部门建议将原有的SHA-1算法升级到SHA-256。SHA-256也是比特币中所选择的Hash算法。
图1示出了依据本发明示例性实施方式的签名验签方法的流程图。如图1所示,依据本发明示例性实施方式的签名验签方法可以包括:
步骤S101:接收签名请求,所述签名请求包含文件的摘要信息和发送方标识;
步骤S102:生成随机数;
步骤S103:根据签名生成算法基于所述随机数、所述摘要信息和所述发送方标识生成所述文件的签名;以及
步骤S104:将所述签名存储在区块链中并将所述随机数返回给发送所述签名请求的发送方。
由上述可知,依据本公开内容的签名验签方法在接收签名请求和生成随机数之后,根据签名生成算法基于随机数和签名请求中所包含的文件的摘要信息和发送方标识生成该文件的签名,然后将生成的签名存储在区块链中并将随机数返回给发送签名请求的发送方,从而实现了发送方对文件的签名。在此过程中并未涉及任何公钥私钥以及物理存在的U盾,也就是说,要进行电子签名的一方无需秘密保存或存放任何需要进行电子签名所需的信息,即可以在无公钥私钥以及U盾的情况下实现电子签名,从而减少了U盾采购的经济投入。
另外,众所周知区块链是将数据以区块的方式按时间顺序相连形成的一种链式数据结构,并且是以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链通过智能合约技术实现数据存储和查询,从而实现复杂业务逻辑。区块链用加密和共识算法建立了信任机制,让抵赖、篡改和欺诈行为的成本巨大,保证了数据的不可篡改和不可伪造。因此利用本公开内容的技术方案能够实现高安全性。
再如图1所示,依据发明示例性实施方式的签名验签方法还可以包括:
步骤S105:接收签名验证请求,所述签名验证请求包含预验证的签名;
步骤S106:验证所述预验证的签名是否存在于所述区块链中;以及
步骤S107:在所述预验证的签名存在于所述区块链中的情况下,向发送所述签名验证请求的发送方返回验证成功。
由上述可知,依据本公开内容的技术方案,在接收到验证请求后,验证该验证请求中所包含的预验证的签名是否存在于区块链中,在预验证的签名存在于所述区块链中的情况下,向发送所述签名验证请求的发送方返回验证成功。也就是说,如果预验证的签名存在于区块链中,则表明预验证的签名是真实的,否则表明预验证的签名不是真实的。
在企业进行工商登记以及日常事务办理时,往往需要企业法定代表人签名。而在网上办理事务时,常常需要利用法定代表人的U盾来对要提交文件进行电子签名。例如一个企业的财务人员需要网上报税,而该企业的行政人员需要通过网络进行工商登记,如果采用现有技术U盾的方式,该企业的这两位员工就不可能同时进行操作,这是因为U盾是一个物理存在,其不可能同时存在于两个地方。然而如果利用本公开内容的签名验签方法的技术方案,该企业的这两位员工就可以同时连接到区块链,即可以实现同时对各自需要提交的文件进行电子签名。因此,利用本公开内容的签名验签方法,要进行电子签名和/或验证的一方只需要连接到区块链即可进行电子签名和/或验证,从而可以使得处于不同地方的多个人能够同时进行电子签名和/或验证。
本领域技术人员应当理解,本公开内容中所记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在一个示例性实施方式中,签名生成算法可以包括对由所述随机数、所述摘要信息和所述发送方标识组成的字符串求哈希。在一个示例性实施方式中,预验证的签名是根据所述签名生成算法生成的。应当理解,签名生成算法可以采用本领域已知的任何算法,本发明在此方面并不进行限制。
在一个示例性实施方式中,将所述签名存储在区块链中可以进一步包括调用部署在所述区块链上的签名存储智能合约,所述签名存储智能合约用于将所述签名存储在所述区块链的数据库中。对于签名存储智能合约,其具体实现为接收签名,然后将该签名作为键(key)并将当前时间戳作为值(value)来在区块链的数据库中存储一条记录,即以key-value对的形式来存储。当然,签名存储智能合约还可以采用本领域技术人员已知的其他方式来实现,本发明并不限于此。
在一个示例性实施方式中,验证所述预验证的签名是否存在于所述区块链中可以进一步包括调用部署在所述区块链上的签名查询智能合约,所述签名查询智能合约用于确定所述预验证的签名是否存在于所述区块链中。对于签名查询智能合约,其具体实现为接收预验证的签名,继而在区块链的数据库中查找是否存在key与所接收的预验证的签名相同的记录,如果存在则返回真,即验证成功,这表明该预验证的签名是真实的;否则返回假,即验证失败,这表明该预验证的签名不真实。在另一示例性实施例中,签名查询智能合约在区块链的数据库中查找到存在key与所接收的预验证的签名相同的记录后,返回时间戳,即返回与该key相对应的value;否则返回nil(表示为空)。本领域技术人员应当意识到,签名查询智能合约可以采用本领域已知的其他方式来实现,本发明并不限于此。
下面以示例一为例来描述依据本发明示例性实施方式的签名验签方法的技术方案。在示例一中,用户A欲向用户B发送文件M,文件M=“区块链联盟”,当然文件M也可以是二进制文件等各种文件类型。Hash算法使用的是Sha-256,用户A和用户B都采用本公开内容的签名验签方法的技术方案来进行电子签名和/或验证。依据本签名验签方法,首先接收到用户A发送的签名请求,该签名请求包含文件M的摘要信息和用户A的标识Id,其中文件M的摘要信息为:H(M)=44ef79a8b9f550e2ed204041af87816d963dd142a231da4c3ac41d7ae9dd71ff,用户A的标识Id为“oxchains”。接着可以由Rand()函数生成随机数,本示例中生成的随机数为1286976。下面根据签名生成算法基于H(M)、Id和随机数生成文件M的签名Sig,也就是说对H(M)、Id和随机数求哈希,即Sig=H(H(M),Id,1286976)=9ecbb85d7543898817612cd97910a1d6342d249098e64e1efe10201300e97a38。Sig生成后调用部署在区块链上的签名存储智能合约SaveSig(Sig),该SaveSig(Sig)以Sig作为key,以当前时间戳timestamp作为value进行存储,在本示例中,timestamp=1496283652。因此在区块链的数据库中储存了这样一条记录:{9ecbb85d7543898817612cd97910a1d6342d249098e64e1efe10201300e97a38:1496283652}。在将Sig存储于区块链上之后,将随机数1286976返回给用户A,此时表明用户A已经对文件M进行了电子签名。此时用户A可以将文件M、Id以及随机数1286976发送给用户B,即将数据(“区块链联盟”,“oxchains”,1286976)发送给用户B。用户B根据签名生成算法H(H(M),Id,r)生成预验证的签名Sig’,Sig’=9ecbb85d7543898817612cd97910a1d6342d249098e64e1efe10201300e97a38,其中r表示随机数。依据本签名验签方法,接收到用户B发送的包含Sig’的签名验证请求后,验证Sig’是否存在于区块链中,在本示例中通过调用签名查询智能合约querySig(Sig’)来进行验证。querySig(Sig’)在区块链的数据库中查找是否存在key与Sig’相同的记录,在本示例中找到了这样的key,并将与该key对应的时间戳数据1496283652返回给用户B,即验证成功,这表明Sig’是真实的。
此外,对于随机数,可以采用真随机数方式或者伪随机数方式,这取决于实时并发量,本领域技术人员应当意识到,本发明在此方面并不进行限制。
图2示出了依据本发明示例性实施例的签名验签装置的示意图。如图2所示,签名验签装置200包括处理器201和存储器202,其中存储器202上存储有计算机程序指令2020,计算机程序指令2020在由处理器201执行时可以实现以下步骤:
接收签名请求,所述签名请求包含文件的摘要信息和发送方标识;
生成随机数;
根据签名生成算法基于所述随机数、所述摘要信息和所述发送方标识生成所述文件的签名;以及
将所述签名存储在区块链中并将所述随机数返回给发送所述签名请求的发送方。
由上述可知,依据本公开内容的签名验签装置在接收签名请求和生成随机数之后,根据签名生成算法基于随机数和签名请求中所包含的文件的摘要信息和发送方标识生成所述文件的签名,然后将生成的签名存储在区块链中并将随机数返回给发送签名请求的发送方,从而实现了发送方对文件的签名。在此过程中并未涉及任何公钥私钥以及物理存在的U盾,也就是说,要进行电子签名的一方无需秘密保存或存放任何需要进行电子签名所需的信息,即可以在无公钥私钥以及U盾的情况下实现电子签名,从而减少了U盾采购的经济投入。
另外,众所周知区块链是将数据以区块的方式按时间顺序相连形成的一种链式数据结构,并且是以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链通过智能合约技术实现数据存储和查询,从而实现复杂业务逻辑。区块链用加密和共识算法建立了信任机制,让抵赖、篡改和欺诈行为的成本巨大,保证了数据的不可篡改和不可伪造。因此利用本公开内容的技术方案能够实现高安全性。
再如图2所示,图2中的计算机程序指令2020在由处理器201执行时还可以实现以下步骤:
接收签名验证请求,所述签名验证请求包含预验证的签名;
验证所述预验证的签名是否存在于所述区块链中;以及
在所述预验证的签名存在于所述区块链中的情况下,向发送所述签名验证请求的发送方返回验证成功。
由上述可知,本公开内容的签名验签装置在接收到验证请求后,验证该验证请求中所包含的预验证的签名是否存在于区块链中,在预验证的签名存在于所述区块链中的情况下,向发送所述签名验证请求的发送方返回验证成功。也就是说如果预验证的签名存在于区块链中,则表明预验证的签名是真实的,否则表明预验证的签名不是真实的。
在企业进行工商登记以及日常事务办理时,往往需要企业法定代表人签名。而在网上办理事务时,常常需要利用法定代表人的U盾来对要提交文件进行电子签名。例如一个企业的财务人员需要网上报税,而该企业的行政人员需要通过网络进行工商登记,如果采用现有技术U盾的方式,该企业的这两位员工就不可能同时进行操作,这是因为U盾是一个物理存在,其不可能同时存在于两个地方。然而如果利用本公开内容的签名验签装置,该企业的这两位员工可以同时连接到本签名验签装置,即连接到区块链,从而可以实现同时对各自需要提交的文件进行电子签名,并且还可以使得处于不同地方的多个人能够同时进行电子签名和/或验证。
本领域技术人员应当理解,本公开内容中所记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在一个示例性实施方式中,签名生成算法可以包括对由所述随机数、所述摘要信息和所述发送方标识组成的字符串求哈希。在一个示例性实施方式中,预验证的签名是根据所述签名生成算法生成的。应当理解,签名生成算法可以采用本领域已知的任何算法,本发明在此方面并不进行限制。
在一个示例性实施方式中,将所述签名存储在区块链中可以进一步包括调用部署在所述区块链上的签名存储智能合约,所述签名存储智能合约用于将所述签名存储在所述区块链的数据库中。对于签名存储智能合约,其具体实现为接收签名,然后将该签名作为键(key)并将当前时间戳作为值(value)来在区块链中存储一条记录,即以key-value对的形式来存储。当然,签名存储智能合约还可以采用本领域技术人员已知的其他方式来实现,本发明并不限于此。
在一个示例性实施方式中,验证所述预验证的签名是否存在于所述区块链中可以进一步包括调用部署在所述区块链上的签名查询智能合约,所述签名查询智能合约用于确定所述预验证的签名是否存在于所述区块链中。对于签名查询智能合约,其具体实现为接收预验证的签名,继而在区块链的数据库中查找是否存在key与所接收的预验证的签名相同的记录,如果存在则返回真,即验证成功,这表明该预验证的签名是真实的;否则返回假,即验证失败,这表明该预验证的签名不真实。在另一示例性实施例中,签名查询智能合约在区块链的数据库中查找到存在key与所接收的预验证的签名相同的记录后,返回时间戳,即返回与该key相对应的value;否则返回nil(表示为空)。本领域技术人员应当意识到,签名查询智能合约可以采用本领域已知的其他方式来实现,本发明并不限于此。
下面以示例二为例来描述依据本发明示例性实施方式的签名验签装置200的技术方案。
示例二的业务场景为进行商事登记,即一个企业要向工商登记机关提交文件file.pdf,该企业的标识也即纳税人识别号cid为91230103XX1977TH85。该企业通过SHA-256算法(函数H())生成文件file.pdf的摘要信息digest:b8fc1e8d9e43f578aa4ad2ae22840932663bea9119e3b18d2234c810066ab5c4。继而该企业向签名验证装置200发送签名请求,该签名请求包含cid和digest,即:{cid:“91230103XX1977TH85”;digest:b8fc1e8d9e43f578aa4ad2ae22840932663bea9119e3b18d2234c810066ab5c4}。签名验签装置200接收到企业发送的签名请求后,调用随机数生成算法Rand(),产生随机数r=2397985。然后根据签名生成算法基于随机数、摘要信息和cid生成文件file.pdf的签名。在本例中调用SHA-256算法(函数H()),即向函数H()输入cid、digest和r拼接后的字符串参数:91230103XX1977TH85_b8fc1e8d9e43f578aa4ad2ae22840932663bea9119e3b18d2234c810066ab5c4_2397985,求解得到签名Sig=0aab2ecde1f5ab50399f058e49dd94c3eda0de92aa1023eb4a3878cdd079215e。签名Sig生成后,调用部署在区块链上的签名存储智能合约saveSig(Sig),该saveSig(Sig)以Sig作为key,以当前时间戳timestamp作为value来存储,在本例中timestamp=1496485662,因此在区块链的数据库中存储了这样的一条记录:{0aab2ecde1f5ab50399f058e49dd94c3eda0de92aa1023eb4a3878cdd079215e:1496485662}。在将签名Sig存储在区块链上之后,签名验签装置200将随机数r(2397985)返回给该企业。该企业收到随机数r(2397985)之后,将文件file.pdf,cid=91230103XX1977TH85以及r=2397985上传给工商登记机关。工商登记机关接收到file.pdf、cid和r之后,通过调用SHA-256算法,即函数H(file.pdf)生成该文件file.pdf的摘要信息:b8fc1e8d9e43f578aa4ad2ae22840932663bea9119e3b18d2234c810066ab5c4。然后将cid、该摘要信息和r拼接成字符串:91230103XX1977TH85_b8fc1e8d9e43f578aa4ad2ae22840932663bea9119e3b18d2234c810066ab5c4_2397985,再调用SHA-256算法,即函数H()生成预验证的签名Sig’=0aab2ecde1f5ab50399f058e49dd94c3eda0de92aa1023eb4a3878cdd079215e。继而工商登记机关向签名验签装置200发送签名验证请求,该签名验证请求中包含预验证的签名Sig’。签名验签装置200接收到签名验证请求后,调用部署在区块链上的签名查询智能合约query(Sig’)。query(Sig’)如果返回timestamp,则表明预验证的签名存在于区块链中;如果返回nil,则表明预验证的签名不在区块链中。在本例中,返回了1496485662(timestamp),即验证成功,这表明预验证的签名存在于区块链中,该预验证的签名Sig’是真实的。工商登记机关得到该Sig’是真实的之后,可以将该企业提交的文件file.pdf存储起来,并可以将处理结果返回给该企业,例如返回提交成功等信息。
图3示出了依据本公开内容一个示例所涉及的企业、工商登记机关和签名验签装置200之间的交互示意图。从图3可以看出,企业首先生成其预提交文件file.pdf的摘要信息H(file.pdf),然后向签名验签装置200发送包含H(file.pdf)和cid(企业的标识)的签名请求。签名验签装置200接收到签名请求后,生成随机数r,再生成签名Sig=H(H(file.pdf),cid,r),继而进行存证Sig,也即将Sig存放在区块链中,并且将随机数r返回给企业。企业接收到随机数之后,将文件file.pdf、cid和随机数r发送给工商登记机关。工商登记机关要验证该企业以及文件file.pdf的真实性,首先根据企业发送过来的信息,计算预验证的签名Sig’=H(H(file.pdf),cid,r),继而向签名验签装置200发送包含Sig’的签名验证请求以验证Sig’是否存在于区块链中。签名验签装置200对Sig’进行查证,并将时间戳或者nil返回给工商登记机关以表明Sig’是否存在于区块链中。工商登记机关根据对Sig’的验证结果,可以将提交成功/失败的信息返回给企业。从而企业实现了向工商登记机关进行商事登记事务的办理。
应当理解,进行商事登记仅仅是本发明的一个应用场景,本发明可以应用于各种需要进行电子签名的应用场景。
在本发明的一个方面,提供了一种计算机可读存储介质,在该计算机可读存储介质上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现上文所述的签名验签方法。对于签名验签方法,在上文已经进行了详细描述,在此不再赘述。在一些实施方式中,计算机可读存储介质是数字处理设备的有形组件。在另一些实施方式中,计算机可读存储介质可选地是可从数字处理设备移除的。在一些实施方式中,举非限制性示例而言,计算机可读存储介质可以包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、闪速存储器、可编程存储器(PROM)、可擦除可编程存储器(EPROM)、固态存储器、磁碟、光盘、云计算系统或服务等。
在本文所提供的说明书中,说明了大量具体细节。然而,应当理解,本公开内容的实施方式可以在没有这些具体细节的情况下实践。在一些实施方式中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然本文已经示出和描述了本发明的优选实施方式,但对于本领域技术人员显而易见的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,在实践本发明的过程中可以采用对本文所描述的本发明实施方式的各种替代方案。以下权利要求旨在限定本发明的范围,并因此覆盖这些权利要求范围内的方法和结构及其等同项。