掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的签名验证方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


基于区块链的签名验证方法、装置、电子设备及存储介质

技术领域

本申请涉及区块链领域,尤其涉及一种基于区块链的签名验证方法、装置、电子设备及存储介质。

背景技术

数字签名是密码学里的一个重要的研究方向,在网络通信、电子支付等领域有着广泛的应用。数字签名可以防止用户的签名被伪造,确保消息的完整性。

目前在对用户的数字签名进行验证时,可能会出现签名方对自己的签名进行否认,或者签名出现伪造等情况,大大影响数字消息的安全性。如何提高签名验证时的安全性和正确性,成为亟待解决的问题。

发明内容

本申请提供一种基于区块链的签名验证方法、装置、电子设备及存储介质,用以提高数字签名的验证的安全性。

第一方面,本申请提供一种基于区块链的签名验证方法,该方法应用于签名方,包括:

向预设区块发送签名申请;其中,所述签名申请用于表示签名方申请对待签名的消息进行签名;所述预设区块用于在接收到签名申请后确定验证方,向所述验证方发送验证签名的通知信息,若接收到所述验证方发送的同意验证的反馈信息,则向所述签名方和验证方发送签名密钥;所述验证签名的通知信息用于通知验证方对签名方的签名进行验证;所述签名密钥用于对待签名的消息进行签名和验证;

根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的量子态序列;其中,所述量子态序列用于表示所述签名方对所述待签名的消息的签名;

将所述量子态序列发送至所述验证方进行验证;其中,所述验证方用于根据所述签名密钥,基于预设的量子解码方式,对所述量子态序列进行验证,得到验证结果,并将所述验证结果发送至所述预设区块。

第二方面,本申请提供一种基于区块链的签名验证方法,该方法应用于验证方,包括:

接收所述预设区块发送的验证签名的通知信息;其中,所述验证签名的通知信息用于表示所述预设区块通知验证方对签名方的签名进行验证;所述验证签名的通知信息中包括签名方的身份信息;所述签名方用于向预设区块发送签名申请,所述签名申请用于表示签名方申请对待签名的消息进行签名;所述预设区块用于在接收到签名申请后确定验证方,向所述验证方发送验证签名的通知信息;

若确定所述验证签名的通知信息中的签名方的身份信息为预设的签名方信息,则向所述预设区块发送同意验证的反馈信息;其中,所述预设区块用于若接收到所述验证方发送的同意验证的反馈信息,则向所述签名方和验证方发送签名密钥;所述签名方用于根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的量子态序列,将所述量子态序列发送至所述验证方进行验证;所述量子态序列用于表示所述签名方对所述待签名的消息的签名;

接收所述量子态序列,根据所述签名密钥,基于预设的量子解码方式,对所述量子态序列进行验证,得到验证结果,并将所述验证结果发送至所述预设区块。

第三方面,本申请提供一种基于区块链的签名验证装置,该装置应用于签名方,包括:

申请模块,用于向预设区块发送签名申请;其中,所述签名申请用于表示签名方申请对待签名的消息进行签名;所述预设区块用于在接收到签名申请后确定验证方,向所述验证方发送验证签名的通知信息,若接收到所述验证方发送的同意验证的反馈信息,则向所述签名方和验证方发送签名密钥;所述验证签名的通知信息用于通知验证方对签名方的签名进行验证;所述签名密钥用于对待签名的消息进行签名和验证;

编码模块,用于根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的量子态序列;其中,所述量子态序列用于表示所述签名方对所述待签名的消息的签名;

验证模块,用于将所述量子态序列发送至所述验证方进行验证;其中,所述验证方用于根据所述签名密钥,基于预设的量子解码方式,对所述量子态序列进行验证,得到验证结果,并将所述验证结果发送至所述预设区块。

第四方面,本申请提供一种基于区块链的签名验证装置,该装置应用于验证方,包括:

通知接收模块,用于接收所述预设区块发送的验证签名的通知信息;其中,所述验证签名的通知信息用于表示所述预设区块通知验证方对签名方的签名进行验证;所述验证签名的通知信息中包括签名方的身份信息;所述签名方用于向预设区块发送签名申请,所述签名申请用于表示签名方申请对待签名的消息进行签名;所述预设区块用于在接收到签名申请后确定验证方,向所述验证方发送验证签名的通知信息;

反馈模块,用于若确定所述验证签名的通知信息中的签名方的身份信息为预设的签名方信息,则向所述预设区块发送同意验证的反馈信息;其中,所述预设区块用于若接收到所述验证方发送的同意验证的反馈信息,则向所述签名方和验证方发送签名密钥;所述签名方用于根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的量子态序列,将所述量子态序列发送至所述验证方进行验证;所述量子态序列用于表示所述签名方对所述待签名的消息的签名;

解码模块,用于接收所述量子态序列,根据所述签名密钥,基于预设的量子解码方式,对所述量子态序列进行验证,得到验证结果,并将所述验证结果发送至所述预设区块。

第五方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现如本申请第一方面和第二方面所述的方法。

第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本申请第一方面和第二方面所述的方法。

第七方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请第一方面和第二方面所述的方法。

本申请提供的一种基于区块链的签名验证方法、装置、电子设备及存储介质,通过向预设区块发送签名申请,使预设区块可以代替现有技术中的仲裁员等三方参与者,向签名方和验证方发送签名密钥。签名方根据签名密钥,对待签名的消息进行编码,得到待签名的消息对应的量子态序列。将量子态序列发送给验证方,由验证方对量子态序列进行验证,得到验证结果,并将验证结果发送给预设区块。通过使用量子资源进行计算,有效提高签名验证的安全性。通过引入了区块链技术来代替仲裁员等三方参与者完成签名过程,实现去中心化,避免了来自仲裁员等第三方参与者发起的伪造攻击,有效防止签名方否认签名的行为,从而提高数字签名的验证过程的安全性和正确性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种基于区块链的签名验证方法的流程示意图;

图2为本申请实施例提供的一种基于区块链的签名验证方法的流程示意图;

图3为本申请实施例提供的一种基于区块链的签名验证装置的结构框图;

图4为本申请实施例提供的一种基于区块链的签名验证装置的结构框图;

图5为本申请实施例提供的一种电子设备的结构框图;

图6为本申请实施例提供的一种电子设备的结构框图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

需要说明的是,本申请的一种基于区块链的签名验证方法、装置、电子设备及存储介质可用于区块链领域,也可用于除区块链之外的任意领域,本申请的一种基于区块链的签名验证方法、装置、电子设备及存储介质的应用领域不作限定。

随着网络技术的快速发展,人们衣食住行的日常生活也越来越依赖网络。在网络技术为人们提供便利的同时,信息安全也成为不可忽视的问题。密码学是保护信息安全的有力工具,随着现代技术的发展不断成熟。现有的经典密码学的安全性建立在困难数学的计算复杂度上,仅实现了计算安全,在对手算力有限的情况下保证安全。

数字签名是密码学里的一个重要的研究方向。在网络通信、电子支付等领域有着广泛的应用。数字签名可以提供对数字消息的签名和认证,防止用户的签名被伪造,以及防止用户否认自己的签名,确保消息的完整性。一个有效的数字签名协议需满足其可转移性、不可否认以及不可伪造性,才能发挥真正的作用。随着量子密码的出现,量子签名技术也随之诞生,它使得数字签名的实现提升了一个高度。在许多量子应用上,如量子支付、量子投票等理论都是以量子签名技术为基础。

目前有许多量子签名协议不断的被提出,但该领域的发展还不成熟,依旧存在一些需要改进的地方。许多量子签名协议过多的依赖了仲裁员等三方参与者来保证协议的安全性和正确性,但是无法抵御第三方参与者发起的攻击,无法防止签名者否认签名等行为,并且仅在特殊的限制下才可以满足可转移性、不可否认以及不可伪造性。例如,仲裁员等第三方需要是完全诚实的,这是十分严格的假设,在实际应用场景中是难实现的,这使得量子签名协议的安全性和正确性大大降低。一些量子签名协议的操作过程,纠缠量子态制备太过复杂,在实际场景中较难实施。

本申请提供的一种基于区块链的签名验证方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图1是根据本申请实施例提供的一种基于区块链的签名验证方法的流程示意图,该方法可以应用于签名方,由一种基于区块链的签名验证装置执行。如图1所示,该方法包括以下步骤:

S101、向预设区块发送签名申请;其中,签名申请用于表示签名方申请对待签名的消息进行签名;预设区块用于在接收到签名申请后确定验证方,向验证方发送验证签名的通知信息,若接收到验证方发送的同意验证的反馈信息,则向签名方和验证方发送签名密钥;验证签名的通知信息用于通知验证方对签名方的签名进行验证;签名密钥用于对待签名的消息进行签名和验证。

示例性地,签名方可以通过终端设备向预设的区块发送签名申请,预设的区块即为区块链中的一个区块。签名方为需要对待签名的消息进行签名的一方,签名申请可以用于表示签名方申请要对待签名的消息进行签名,例如,签名方在进行交易时,需要针对自己的交易信息进行签名,则交易信息为待签名的消息。可以向预设区块发出签名申请,来对交易信息进行签名。签名申请中可以包括签名方的身份信息、待签名的消息和验证方的身份信息,验证方是指需要对签名方的签名进行验证的一方。本实施例中,验证方可以是一个或多个。身份信息可以是区块链的账号信息,用于表示签名方或验证方的身份,签名方和验证方都预先完成了区块链的用户注册,他们的身份信息都登记在区块链的索引库中。

预设区块可以在接收到签名申请后确定验证方,例如,可以从签名申请中获取验证方的身份信息,从区块链的索引库中查找该验证方的身份信息。若可以查找到,则根据该验证方的身份信息确定验证方;若查找不到,则说明签名方所指定的验证方没有进行注册,预设区块可以向签名方发出提示信息,提示签名方更换验证方。签名申请中也可以不包括验证方的签名信息,若签名申请中不包括验证方的签名信息,则预设区块在收到签名申请后,可以从索引库中随机或按照预设顺序,确定出一个或多个验证方。

预设区块在确定出验证方后,可以向验证方发送验证签名的通知信息,验证签名的通知信息用于通知验证方需要对签名方的签名进行验证。验证方在收到验证签名的通知信息后,可以决定是否要对签名方的签名进行验证,并向预设区块进行反馈,即可以向预设区块发送同意验证的反馈信息或不同意验证的反馈信息。若接收到验证方发送的同意验证的反馈信息,则预设区块可以向签名方和验证方分别发送签名密钥;若接收到验证方发送的不同意验证的反馈信息,则预设区块可以将该反馈信息转发给签名方,签名过程中止,签名方可以重新选择验证方。签名密钥可以是预设区块通过预设的密钥确定算法进行确定,用于对待签名的消息进行签名和验证。

本实施例中,向预设区块发送签名申请,包括:根据签名方的身份信息、待签名的消息、以及验证方的身份信息,生成签名申请;将签名申请发送至预设区块。

具体的,签名方在发出签名申请之前,需要预先确定自己的身份信息、待签名的消息和验证方的身份信息。对于涉及多个验证方的场景,签名方需要知道各个验证方的身份信息。将签名方的身份信息、待签名的消息和验证方的身份信息进行打包,生成签名申请,将签名申请发送给预设区块。

若签名方没有预先确定验证方,则可以将签名方的身份信息和待签名的消息进行打包,生成签名申请,发送给预设区块。

这样设置的有益效果在于,签名方向区块链发出签名申请,并发送签名方的身份信息、需要签名的消息以及验证方的身份信息,便于预设区块确定验证方,提高签名验证的效率。

本实施例中,预设区块用于从签名申请中获取验证方的身份信息,根据验证方的身份信息确定验证方;向验证方发送验证签名的通知信息,若接收到验证方发送的同意验证的反馈信息,则对签名方的身份信息、待签名的消息、以及验证方的身份信息进行登记,并通过预设的密钥生成算法,向签名方和验证方发送签名密钥。

具体的,预设区块可以分别与签名方和验证方进行信息交互,在收到签名申请后,从签名申请中获取到验证方的身份信息,从而确定验证方。向验证方发送验证签名的通知信息,并接收验证方的反馈信息。若接收到验证方发送的同意验证的反馈信息,则对签名方的身份信息、待签名的消息、以及验证方的身份信息进行登记,存储在预设区块中。并通过预设的密钥生成算法,向签名方和验证方发送签名密钥。例如,预设的密钥确定算法可以是QKD(Quantum Key Distribution,量子密钥分发)算法,预设区块在收到同意验证的反馈信息后,可以运行QKD算法,生成密钥K,将密钥K分别发送给签名方和验证方。本实施例中,对密钥确定算法不做具体限定。

这样设置的有益效果在于,基于区块链技术,可以向验证方发送验证签名的通知信息,如果验证方同意协助验证签名,则签名过程继续,并可以将签名过程所涉及到的信息进行存储,避免信息被篡改,提高签名过程的安全性。

S102、根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的量子态序列;其中,量子态序列用于表示签名方对待签名的消息的签名。

示例性地,验证方在收到签名密钥后,可以使用签名密钥对待签名的消息进行编码。本实施例由于采用量子签名协议,可以预设量子编码方式,使得编码后得到的序列为量子态序列,即,量子态序列可以表示为签名方对待签名的消息进行签名后的数据。验证方需要对签名方的签名进行验证,也就是对量子态序列进行验证。本实施例中,对预设的量子编码方式不做具体限定。

本实施例中,根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的量子态序列,包括:根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的初始序列;将预设的检测粒子,插入至初始序列中,得到量子态序列;其中,预设的检测粒子为预设参数。

具体的,验证方使用密钥K,采用预设的量子编码方式,对消息M进行编码,将生成的结果确定为初始序列。例如,密钥K为{k

其中:

预先设置一个或多个检测粒子,检测粒子是进行量子计算时的预设参数,该参数为安全系数。将检测粒子插入到初始序列中,例如,可以将检测粒子随机进行插入。插入后初始序列发生了改变,将改变后的序列确定为量子态序列。本实施例中,对所插入的检测粒子的数量和插入的位置不做具体限定。

这样设置的有益效果在于,对待签名的消息进行量子计算,利用量子计算中坍缩的原理生成量子态序列,有效提高签名验证的安全性。

本实施例中,将预设的检测粒子,插入至初始序列中,得到量子态序列,包括:根据预设的检测粒子集合,随机确定至少一个检测粒子;将至少一个检测粒子,随机插入到初始序列中,得到量子态序列。

具体的,预先设置检测粒子集合,检测粒子集合中可以包括多种检测粒子。例如,检测粒子集合为{|0>,|1>,|+>,|->},即,检测粒子集合中包括四种检测粒子。从检测粒子集合中确定一个或多个检测粒子,例如,可以随机确定多个检测粒子。确定出的检测粒子的数量可以比检测粒子集合中检测粒子的种类多,即,确定出的检测粒子可以存在重复。例如,可以从{|0>,|1>,|+>,|->}中,随机确定出两个|0>,三个|1>,一个|+>和一个|->,作为检测粒子。将确定出的多个检测粒子,随机插入到初始序列中,得到量子态序列。

这样设置的有益效果在于,通过插入检测粒子,进一步提高签名验证的安全性,且本实施例使用的量子态为单粒子态,没有使用纠缠资源,签名过程操作简单,提高了可实施性。

S103、将量子态序列发送至验证方进行验证;其中,验证方用于根据签名密钥,基于预设的量子解码方式,对量子态序列进行验证,得到验证结果,并将验证结果发送至预设区块。

示例性地,签名方在得到量子态序列后,将量子态序列发送给验证方,由验证方对量子态序列进行验证,即,进行签名验证。验证方可以根据签名密钥,基于预设的量子解码方式,对量子态序列进行计算,得到验证结果。可以根据量子编码方式来预设量子解码方式。验证方在得到验证结果后,将验证结果发送至预设区块,由预设区块对验证结果进行存储。若验证结果为验证通过,则说明签名者的签名有效,可以继续进行交易;若验证结果为验证不通过,则说明签名者的签名无效,停止进行交易。

本申请实施例提供的一种基于区块链的签名验证方法,通过向预设区块发送签名申请,使预设区块可以代替现有技术中的仲裁员等三方参与者,向签名方和验证方发送签名密钥。签名方根据签名密钥,对待签名的消息进行编码,得到待签名的消息对应的量子态序列。将量子态序列发送给验证方,由验证方对量子态序列进行验证,得到验证结果,并将验证结果发送给预设区块。通过使用量子资源进行计算,有效提高签名验证的安全性。通过引入了区块链技术来代替仲裁员等三方参与者完成签名过程,实现去中心化,避免了来自仲裁员等第三方参与者发起的伪造攻击,有效防止签名方否认签名的行为,从而提高数字签名的验证过程的安全性和正确性。

图2为根据本申请实施例提供的一种基于区块链的签名验证方法的流程示意图,该方法可以应用于验证方,由一种基于区块链的签名验证装置执行。如图2所示,该方法包括以下步骤:

S201、接收预设区块发送的验证签名的通知信息;其中,验证签名的通知信息用于表示预设区块通知验证方对签名方的签名进行验证;验证签名的通知信息中包括签名方的身份信息;签名方用于向预设区块发送签名申请,签名申请用于表示签名方申请对待签名的消息进行签名;预设区块用于在接收到签名申请后确定验证方,向验证方发送验证签名的通知信息。

示例性地,签名方向预设区块发送签名申请,签名申请表示签名方想要对待签名的消息进行签名。预设区块根据签名申请确定验证方,例如,签名申请中可以包括验证方的身份信息。预设区块向验证方发送验证签名的通知信息,若确定出多个验证方,则向确定出的每一个验证方都发送验证签名的通知信息。验证方接收预设区块发送的验证签名的通知信息,验证签名的通知信息中可以包括签名方的身份信息,即,验证方可以确定申请验证签名的签名方。

S202、若确定验证签名的通知信息中的签名方的身份信息为预设的签名方信息,则向预设区块发送同意验证的反馈信息;其中,预设区块用于若接收到验证方发送的同意验证的反馈信息,则向签名方和验证方发送签名密钥;签名方用于根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的量子态序列,将量子态序列发送至验证方进行验证;量子态序列用于表示签名方对待签名的消息的签名。

示例性地,验证方接收到验证签名的通知信息后,从验证签名的通知信息中获取签名方的身份信息。验证方与签名方可以预先达成一致,存储彼此的身份信息,约定彼此之间进行签名验证。即,验证方可以预先存储已经约定好的签名方的身份信息,作为预设的签名方信息。在验证方得到通知信息中的签名方的身份信息后,判断该签名方的身份信息是否为预设的签名方信息。若是,则确定可以为签名方进行验证;若否,则确定不能为签名方进行验证。

若确定可以为签名方进行验证,则向预设区块发送同意验证的反馈信息;若确定不可以为签名方进行验证,则向预设区块发送不同意验证的反馈信息。若预设区块接收到不同意验证的反馈信息,则确定此次的签名验证过程结束,预设区块可以向签名方发送提示信息,提示签名方更换验证方;若预设区块接收到同意验证的反馈信息,则可以向签名方和验证方发送签名密钥,例如,可以基于预设的QKD算法生成签名密钥,签名方和验证方所接收到的签名密钥相同。

签名方可以根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的量子态序列,量子态序列可以用于表示签名方对待签名的消息的签名。签名方将量子态序列发送至验证方。

本实施例中,签名方可以根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的初始序列;将预设的检测粒子,插入至初始序列中,得到量子态序列;其中,预设的检测粒子为预设参数。在将预设的检测粒子,插入至初始序列中,得到量子态序列时,可以根据预设的检测粒子集合,随机确定至少一个检测粒子;将至少一个检测粒子,随机插入到初始序列中,得到量子态序列。预设的检测粒子集合可以是{|0>,|1>,|+>,|->}。

S203、接收量子态序列,根据签名密钥,基于预设的量子解码方式,对量子态序列进行验证,得到验证结果,并将验证结果发送至预设区块。

示例性地,验证方接收签名方发送的量子态序列,根据签名密钥,对量子态序列进行签名验证。例如,可以根据签名方预设的量子编码方式,预设一个量子解码方式,根据量子解码方式,对量子态序列进行解码。验证方在对量子态序列进行解码后,可以得到验证结果,验证结果可以是验证通过或验证不通过,验证通过表示签名有效,验证不通过表示签名无效。预设区块接收验证结果进行存储,并可以将验证结果反馈给签名方。

本实施例中,根据签名密钥,基于预设的量子解码方式,对量子态序列进行验证,得到验证结果,包括:确定量子态序列中的检测粒子;其中,检测粒子用于表示签名方根据签名密钥,基于预设的量子编码方式,对待签名的消息进行编码,得到待签名的消息对应的初始序列,将预设的检测粒子,插入至初始序列中,得到量子态序列;预设的检测粒子为预设参数;从量子态序列中去掉检测粒子,得到待验证序列;根据签名密钥,基于预设的量子解码方式,对待验证序列进行验证,得到验证结果。

具体的,签名方在生成量子态序列时,将检测粒子插入在了初始序列中。验证方在收到量子态序列后,需要从量子态序列中去掉签名方加入的检测粒子。签名方在向验证方发送量子态序列时,可以向验证方发送位置信息,位置信息用于表示检测粒子在量子态序列中的插入位置。验证方接收到位置信息,确定检测粒子在量子态序列中的插入位置,从量子态序列中确定检测粒子。

将确定出的检测粒子从量子态序列中去除,将去掉检测粒子后的序列,确定为待验证序列。验证方再根据密钥K,基于预设的量子解码方式,对待验证序列进行解码,从而得到验证结果。

这样设置的有益效果在于,验证方接收到量子态序列后,对检测粒子进行测量,验证方去掉所有检测粒子。在去掉检测粒子时,由于量子的坍缩原理,序列数据会发生变化,因此,还需要进一步的解密,提高了签名验证的安全性。

本实施例中,根据签名密钥,基于预设的量子解码方式,对待验证序列进行验证,得到验证结果,包括:根据签名密钥,基于预设的量子解码方式,对待验证序列进行解码,得到待验证序列的目标序列;获取签名者发送的待签名的消息,若目标序列与待签名的消息一致,则确定验证结果为验证通过。

具体的,预设的量子解码方式可以是U(酉)操作,验证方可以根据密钥K,对待验证序列进行U操作,实现对待验证序列的解码。将U操作后得到的数据确定为目标序列。签名方在向验证方发送量子态序列时,也可以向验证方发送原始的待签名的消息。验证方接收签名者发送的待签名的消息。验证方在得到目标序列后,可以将目标序列与待签名消息进行对比,若二者一致,则确定验证结果为验证通过;若二者不一致,则确定验证结果为验证不通过。

也可以确定目标序列与待签名的消息之间的相似度,若相似度等于或大于预设的相似度阈值,则确定验证结果为验证通过;若相似度小于预设的相似度阈值,则确定验证结果为验证不通过。

这样设置的有益效果在于,通过对待验证序列进行解码,可以反推出签名者的待签名的消息,将推导出的消息与实际被签名的待签名的消息进行对比,得到验证结果,实现对签名的验证。且验证过程中没有使用纠缠量子资源,减少了消耗的量子资源,提高了效率,验证过程操作简单,提高了可实施性。

本实施例中,根据签名密钥,基于预设的量子解码方式,对待验证序列进行解码,得到待验证序列的目标序列,包括:根据签名密钥,基于预设的量子解码方式,对待验证序列进行解码,得到待验证序列的中间序列;根据预设的验证粒子集合,对中间序列进行测量,得到目标序列;其中,预设的验证粒子集合为{|0>,|1>}。

具体的,验证方根据密钥K,基于预设的量子解码方式,对待验证序列进行解码。例如,可以进行U操作的计算,将计算结果确定为中间序列。中间序列可以表示为

这样设置的有益效果在于,通过先进行U操作,再进行测量,可以将待验证序列还原为待签名的消息,提高签名验证的精度和安全性。

本实施例中,在确定量子态序列中的检测粒子之后,还包括:获取签名方发送的插入至初始序列中的检测粒子,为真实检测粒子;将验证方确定的量子态序列中的检测粒子,确定为实际检测粒子;若实际检测粒子与真实检测粒子之间的匹配率大于预设的概率阈值,则从量子态序列中去掉检测粒子,得到待验证序列。

具体的,签名方在向验证方发送量子态序列时,不仅可以发送检测粒子的位置信息,还可以发送各插入位置所对应的检测粒子。将签名方发送的插入至初始序列中的检测粒子,确定为真实检测粒子。验证方获取签名方发送的真实检测粒子,并从量子态序列中获取检测粒子,将验证方获取到的检测粒子确定为实际检测粒子。

判断实际检测粒子与真实检测粒子是否一致,若是,则确定量子态序列没有被破坏,可以继续进行后续的步骤;若否,则说明量子态序列遭到破坏,验证过程中止,验证方可以提示预设区块重新分发新的签名密钥。预设区块将新的签名密钥再次分发给签名方和验证方,签名方再次生成量子态序列给验证方。也可以确定实际检测粒子与真实检测粒子之间的匹配率,即确定插入位置的实际检测粒子是否为真实检测粒子,若各个插入位置的实际检测粒子均为对应的真实检测粒子,则匹配率为100%。若实际检测粒子与真实检测粒子之间的匹配率大于预设的概率阈值,则确定量子态序列没有被破坏,可以继续从量子态序列中去掉检测粒子,得到待验证序列;若实际检测粒子与真实检测粒子之间的匹配率等与或小于预设的概率阈值,则确定量子态序列遭到破坏,验证过程中止。

这样设置的有益效果在于,通过确定实际检测粒子与真实检测粒子之间的匹配率,可以初步判断量子态序列是否被破坏,避免在量子态序列被破坏的情况下还对后续步骤进行执行,有效提高签名验证效率。

本申请实施例提供的一种基于区块链的签名验证方法,通过向预设区块发送签名申请,使预设区块可以代替现有技术中的仲裁员等三方参与者,向签名方和验证方发送签名密钥。签名方根据签名密钥,对待签名的消息进行编码,得到待签名的消息对应的量子态序列。将量子态序列发送给验证方,由验证方基于预设的量子解码方式对量子态序列进行验证,得到验证结果,并将验证结果发送给预设区块。通过使用量子资源进行计算,有效提高签名验证的安全性。通过引入了区块链技术来代替仲裁员等三方参与者完成签名过程,实现去中心化,避免了来自仲裁员等第三方参与者发起的伪造攻击,有效防止签名方否认签名的行为,从而提高数字签名的验证过程的安全性和正确性。

图3为本申请实施例提供的一种基于区块链的签名验证装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。该装置应用于签名方,参照图3,该装置包括:申请模块301、编码模块302和验证模块303。

申请模块301,用于向预设区块发送签名申请;其中,所述签名申请用于表示签名方申请对待签名的消息进行签名;所述预设区块用于在接收到签名申请后确定验证方,向所述验证方发送验证签名的通知信息,若接收到所述验证方发送的同意验证的反馈信息,则向所述签名方和验证方发送签名密钥;所述验证签名的通知信息用于通知验证方对签名方的签名进行验证;所述签名密钥用于对待签名的消息进行签名和验证;

编码模块302,用于根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的量子态序列;其中,所述量子态序列用于表示所述签名方对所述待签名的消息的签名;

验证模块303,用于将所述量子态序列发送至所述验证方进行验证;其中,所述验证方用于根据所述签名密钥,基于预设的量子解码方式,对所述量子态序列进行验证,得到验证结果,并将所述验证结果发送至所述预设区块。

一个示例中,编码模块302,包括:

第一获得单元,用于根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的初始序列;

第二获得单元,用于将预设的检测粒子,插入至所述初始序列中,得到所述量子态序列;其中,所述预设的检测粒子为预设参数。

一个示例中,第二获得单元,具体用于:

根据预设的检测粒子集合,随机确定至少一个检测粒子;

将所述至少一个检测粒子,随机插入到所述初始序列中,得到所述量子态序列。

一个示例中,预设的检测粒子集合为{|0>,|1>,|+>,|->}。

一个示例中,申请模块301,具体用于:

根据所述签名方的身份信息、待签名的消息、以及所述验证方的身份信息,生成所述签名申请;

将所述签名申请发送至所述预设区块。

一个示例中,预设区块用于从所述签名申请中获取验证方的身份信息,根据验证方的身份信息确定验证方;

向所述验证方发送验证签名的通知信息,若接收到所述验证方发送的同意验证的反馈信息,则对所述签名方的身份信息、待签名的消息、以及所述验证方的身份信息进行登记,并通过预设的密钥生成算法,向所述签名方和验证方发送签名密钥。

图4为本申请实施例提供的一种基于区块链的签名验证装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。该装置应用于验证方,参照图4,该装置包括:通知接收模块401、反馈模块402和解码模块403。

通知接收模块401,用于接收所述预设区块发送的验证签名的通知信息;其中,所述验证签名的通知信息用于表示所述预设区块通知验证方对签名方的签名进行验证;所述验证签名的通知信息中包括签名方的身份信息;所述签名方用于向预设区块发送签名申请,所述签名申请用于表示签名方申请对待签名的消息进行签名;所述预设区块用于在接收到签名申请后确定验证方,向所述验证方发送验证签名的通知信息;

反馈模块402,用于若确定所述验证签名的通知信息中的签名方的身份信息为预设的签名方信息,则向所述预设区块发送同意验证的反馈信息;其中,所述预设区块用于若接收到所述验证方发送的同意验证的反馈信息,则向所述签名方和验证方发送签名密钥;所述签名方用于根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的量子态序列,将所述量子态序列发送至所述验证方进行验证;所述量子态序列用于表示所述签名方对所述待签名的消息的签名;

解码模块403,用于接收所述量子态序列,根据所述签名密钥,基于预设的量子解码方式,对所述量子态序列进行验证,得到验证结果,并将所述验证结果发送至所述预设区块。

一个示例中,解码模块403,包括:

粒子确定单元,用于确定所述量子态序列中的检测粒子;其中,所述检测粒子用于表示所述签名方根据所述签名密钥,基于预设的量子编码方式,对所述待签名的消息进行编码,得到所述待签名的消息对应的初始序列,将预设的检测粒子,插入至所述初始序列中,得到所述量子态序列;所述预设的检测粒子为预设参数;

粒子去除单元,用于从所述量子态序列中去掉所述检测粒子,得到待验证序列;

结果确定单元,用于根据所述签名密钥,基于预设的量子解码方式,对所述待验证序列进行验证,得到所述验证结果。

一个示例中,结果确定单元,包括:

第一确定子单元,用于根据所述签名密钥,基于预设的量子解码方式,对所述待验证序列进行解码,得到所述待验证序列的目标序列;

第二确定子单元,用于获取签名者发送的所述待签名的消息,若所述目标序列与所述待签名的消息一致,则确定验证结果为验证通过。

一个示例中,第一确定子单元,具体用于:

根据所述签名密钥,基于预设的量子解码方式,对所述待验证序列进行解码,得到所述待验证序列的中间序列;

根据预设的验证粒子集合,对所述中间序列进行测量,得到所述目标序列;其中,所述预设的验证粒子集合为{|0>,|1>}。

一个示例中,该装置还包括:

粒子比对模块,用于在确定所述量子态序列中的检测粒子之后,获取所述签名方发送的插入至所述初始序列中的检测粒子,为真实检测粒子;

将所述验证方确定的所述量子态序列中的检测粒子,确定为实际检测粒子;

若所述实际检测粒子与所述真实检测粒子之间的匹配率大于预设的概率阈值,则从所述量子态序列中去掉所述检测粒子,得到待验证序列。

图5为本申请实施例提供的一种电子设备的结构框图,如图5所示,电子设备包括:存储器51,处理器52;存储器51,用于存储处理器52可执行指令的存储器。

其中,处理器52被配置为执行如上述实施例提供的方法。

电子设备还包括接收器53和发送器54。接收器53用于接收其他设备发送的指令和数据,发送器54用于向外部设备发送指令和数据。

图6是根据一示例性实施例示出的一种电子设备的框图,该设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)接口612,传感器组件614,以及通信组件616。

处理组件602通常控制设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。

存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件606为设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为设备600生成、管理和分配电力相关联的组件。

多媒体组件608包括在所述设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。

I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件614包括一个或多个传感器,用于为设备600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为设备600的显示器和小键盘,传感器组件614还可以检测设备600或设备600一个组件的位置改变,用户与设备600接触的存在或不存在,设备600方位或加速/减速和设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件616被配置为便于设备600和其他设备之间有线或无线方式的通信。设备600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由设备600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当该存储介质中的指令由终端设备的处理器执行时,使得终端设备能够执行上述终端设备的基于区块链的签名验证方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 基于区块链的交易验证方法、装置、存储介质及电子设备
  • 基于区块链的贷款审批方法、装置、存储介质及电子设备
  • 一种区块链ID生成及使用方法、装置、电子设备以及存储介质
  • 基于区块链的城市实景管理方法、电子设备及存储介质
  • 基于区块链的收藏品管理方法、装置、介质及电子设备
  • 基于区块链的签名验证方法、装置、设备和存储介质
  • 基于区块链的签名验证方法、装置、设备和存储介质
技术分类

06120116496957