基于区块链的信息验证方法及装置与流程

文档序号:12182830阅读:500来源:国知局
基于区块链的信息验证方法及装置与流程

本申请实施例涉及身份识别技术领域,尤其涉及基于区块链的信息验证方法及装置。



背景技术:

随着信息化时代的到来,越来越多的信息需要通过互联网进行传播。为了对互联网中传播的大量信息进行验证,数字签名技术便应运而生了。数字签名也称为数字签字、电子签章或电子签名,它是信息安全的核心技术之一,主要用于在网络活动中替代传统生活中的手写签名与传统印章。利用数字签名技术能够较好地实现信息验证功能。但是,由于数字签名很容易被精确复制,因此,当用数字签名替代私密数据的书面签名时,签名副本的肆意传播很容易导致私密数据的泄露,对数据安全造成威胁。而且,数字签名一旦被恶意伪造,则会对签名者带来不可估量的损失。

为了进一步提高数字签名的安全性,现有技术中提出了一种利用区块链来记录信息及其签名的方式。在该种方式中,信息发布者对信息进行数字签名后,将信息及其签名存储到区块链中,从而利用区块链不易篡改、安全性高的优势来提升信息存储的安全性。

但是,发明人在实现本发明的过程中发现,现有技术中的方式至少存在下述问题:由于区块链具有公开化的特点,因此,所有接入区块链的网络节点都能够访问到信息发布者发布的信息及其签名,因此,无法保障私密数据的安全性,例如,一旦公开在区块链中的信息及其签名被恶意伪造,则会给信息发布者带来巨大损失。由此可见,目前亟需一种能够兼顾信息的安全性与私密性的信息验证方式。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种解决上述问题的基于区块链的信息验证方法及装置。

依据本申请实施例的一个方面,提供了一种基于区块链的信息验证方法,包括:根据待验证信息生成对应的有效签名信息,将有效签名信息存储到区块链中;根据待验证信息生成对应的无效签名信息,将无效签名信息存储到区块链中;接收验证节点根据区块链中存储的有效签名信息或无效签名信息生成的验证请求消息;对验证请求消息进行验证,根据验证结果向验证节点返回信息有效消息或信息无效消息。

依据本申请实施例的另一个方面,提供了一种基于区块链的信息验证装置,包括:有效签名模块,用于根据待验证信息生成对应的有效签名信息,将有效签名信息存储到区块链中;无效签名模块,用于根据待验证信息生成对应的无效签名信息,将无效签名信息存储到区块链中;消息接收模块,用于接收验证节点根据区块链中存储的有效签名信息或无效签名信息生成的验证请求消息;消息验证模块,用于对验证请求消息进行验证,根据验证结果向验证节点返回信息有效消息或信息无效消息。

在本申请实施例提供的一种基于区块链的信息验证方法及装置中,能够针对待验证信息分别生成有效签名信息以及无效签名信息,从而将有效签名信息和无效签名信息掺杂存储到区块链中。由此一来,一方面,能够达到迷惑用户的目的,从而有效保护数据的私密性;另一方面,本申请实施例中的待验证信息通过区块链进行存储,能够有效利用区块链不易篡改、安全性高的优势,并且,区块链中的信息需要经过签名者的验证方可辨认真伪,从而进一步提升了信息验证时的安全性。由此可见,本申请实施例中的信息验证方式能够兼顾信息的安全性与私密性。

上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申请实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本申请实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本申请实施例一提供的一种基于区块链的信息验证方法的流程图;

图2是本申请实施例二提供的一种基于区块链的信息验证方法的流程图;

图3是本申请实施例三提供的一种基于区块链的信息验证装置的结构示意图;

图4是本申请实施例四提供的一种基于区块链的信息验证装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

图1是本申请实施例一提供的一种基于区块链的信息验证方法的流程图。如图1所示,该方法包括:

步骤S110:根据待验证信息生成对应的有效签名信息,将有效签名信息存储到区块链中。

其中,根据待验证信息生成有效签名信息的方式可以灵活设定,例如,本领域技术人员可以灵活采用各种数字签名算法对真实的待验证信息进行签名,从而生成与真实的待验证信息对应的有效签名信息。具体地,可以采用不可否认签名算法进行签名。由于不可否认签名算法必须签名者参与方可验证真伪,因此,能够显著提升信息安全性。

另外,将有效签名信息存储到区块链时,也可以灵活采用各种方式存储,例如,可以由区块链中的打包节点负责将有效签名信息打包存储到区块链中;也可以将有效签名信息广播到区块链网络中,通过广播方式进行存储。

步骤S120:根据待验证信息生成对应的无效签名信息,将无效签名信息存储到区块链中。

其中,根据待验证信息生成无效签名信息的方式也可以灵活设定,例如,在一种实现方式中,可以利用随机算法生成一个随机数,并将该随机数作为无效签名信息。又如,在另一种实现方式中,还可以利用各种数字签名算法对伪造的待验证信息进行签名,从而生成与伪造的待验证信息对应的无效签名信息。另外,将无效签名信息存储到区块链时,也可以灵活采用各种方式存储,例如,可以由区块链中的打包节点负责将无效签名信息打包存储到区块链中;也可以将有效签名信息广播到区块链网络中,通过广播方式进行存储。

总之,本实施例中并不限定有效签名信息和无效签名信息的具体生成方式,只要能够实现真假信息掺杂存储,从而迷惑攻击者的目的即可。

步骤S130:接收验证节点根据区块链中存储的有效签名信息或无效签名信息生成的验证请求消息。

其中,验证节点可以是接入到区块链中的任意网络节点,例如,可以是完全节点,也可以是不完全节点,总之,只要是能够获取到区块链中的存储信息的网络节点均可以作为验证节点。

当验证节点获取到区块链中存储的有效签名信息或无效签名信息后,根据有效签名信息或无效签名信息生成验证请求消息,该验证请求消息可以通过各种方式生成,只要能够实现验证信息真伪的目的即可。例如,可以通过预设的算法对有效签名信息或无效签名信息进行运算,将运算结果包含在上述的验证请求消息中。

步骤S140:对验证请求消息进行验证,根据验证结果向验证节点返回信息有效消息或信息无效消息。

具体地,对验证请求消息进行验证的具体实现方式可由本领域技术人员灵活设定,例如,当验证请求消息中包含通过预设的算法对有效签名信息或无效签名信息进行运算后得到的运算结果时,可以对该运算结果进行逆运算,以确定验证请求消息对应的原始签名信息,从而验证原始签名信息为有效签名信息或无效签名信息,进而返回相应的消息。

其中,信息有效消息或信息无效消息中可以直接包含验证结果,以便验证节点能够直接地、快速地根据信息有效消息或信息无效消息确定信息真伪;也可以仅包含利用约定算法产生的反馈结果,以便验证节点通过对该反馈结果进行处理后根据处理结果确认信息真伪,从而进一步提升验证过程的安全性。

由此可见,在本申请实施例提供的一种基于区块链的信息验证方法中,能够针对待验证信息分别生成有效签名信息以及无效签名信息,从而将有效签名信息和无效签名信息掺杂存储到区块链中。由此一来,一方面,能够达到迷惑用户的目的,从而有效保护数据的私密性;另一方面,本申请实施例中的待验证信息通过区块链进行存储,能够有效利用区块链不易篡改、安全性高的优势,并且,区块链中的信息需要经过签名者的验证方可辨认真伪,从而进一步提升了信息验证时的安全性。由此可见,本申请实施例中的信息验证方式能够兼顾信息的安全性与私密性。

实施例二

图2是本申请实施例二提供的一种基于区块链的信息验证方法的流程图。如图2所示,该方法包括:

步骤S210:签名节点根据待验证信息生成对应的有效签名信息,将有效签名信息存储到区块链中。

其中,签名节点是区块链中的一个网络节点,通常为信息发布方。在本实施例中,签名节点根据待验证信息生成有效签名信息时,通过不可否认签名算法对待验证信息进行签名,相应地,有效签名信息中包含待验证信息的信息内容、待验证信息的不可否认签名、以及签名公钥。当然,除单独采用不可否认签名算法外,还可以采用不可否认签名算法与其他签名算法(例如盲签名)相结合的方式实现,从而更好地确保签名信息的安全性。

将有效签名信息存储到区块链时,首先生成区块链中的一笔交易,然后将有效签名信息写入该笔交易中(例如,可以写入该笔交易的OP_RETURN部分),最后将该笔交易广播到区块链中,以便区块链中的各个网络节点均能获取到该笔交易中包含的信息。

步骤S220:签名节点根据待验证信息生成对应的无效签名信息,将无效签名信息存储到区块链中。

为了防止真实信息的泄露,在本实施例中,签名节点进一步根据待验证信息生成对应的无效签名信息,以达到迷惑攻击者的目的。具体实现时,无效签名信息中可以包含待验证信息的信息内容、待验证信息的伪签名、以及签名公钥。其中,无效签名信息中包含的待验证信息的信息内容可以是与真实信息内容对应的相似信息内容,即:信息内容本身并非真实有效的,但是与真实信息内容非常相似。另外,无效签名信息中包含的伪签名可以通过各类方式实现,只要能够区别于真签名即可,例如,可以通过随机签名实现,即:通过随机算法生成一个随机数,将该随机数作为待验证信息的伪签名。

另外,将无效签名信息存储到区块链时,首先生成区块链中的另一笔交易,然后将无效签名信息写入该笔交易中(例如,可以写入该笔交易的OP_RETURN部分),最后将该笔交易广播到区块链中,以便区块链中的各个网络节点均能获取到该笔交易中包含的信息。

步骤S230:验证节点获取区块链中存储的有效签名信息或无效签名信息。

其中,验证节点可以是接入到区块链中的任意网络节点,例如,可以是完全节点,也可以是不完全节点。验证节点可以通过获取区块链中的交易记录的方式获取到有效签名信息或无效签名信息。为了便于描述,下文将有效签名信息和无效签名信息统称为待验证签名信息。

步骤S240:验证节点根据待验证签名信息生成并发送验证请求消息。

具体地,由于验证节点本身无法判断获取到的待验证签名信息是否有效,因此,需要通过与签名节点交互的方式进行确认。在本实施例中,验证请求消息通过下述方式生成:首先,验证节点分析待验证签名信息的信息内容,获取其中包含的待验证信息的信息内容、待验证信息的签名(该签名既可能是真签名也可能是伪签名)、以及签名公钥。然后,通过随机算法生成并保存一个随机数,利用待验证信息的信息内容、待验证信息的签名、签名公钥以及随机数作为参数进行预设计算,将计算结果作为验证信息数据,将验证信息数据包含在验证请求消息中发送给签名节点。

步骤S250:签名节点接收验证节点发送的验证请求消息,根据验证请求消息中包含的验证节点的身份信息判断验证节点是否为合法节点。

可选地,为了防止区块链中的大量无关节点恶意发送验证请求消息,以耗费签名节点的系统资源,并防止签名信息的泄露,在本实施例中,签名节点预先设置并存储了合法节点的身份信息,合法节点可以是与签名节点存在业务往来或其他关联的网络节点。相应地,在上一步骤中,验证节点发送的验证请求消息中进一步包含验证节点的身份信息,在本步骤中,签名节点首先根据身份信息判断发送验证请求消息的网络节点是否为合法节点,若判断结果为否,则执行步骤S260;若判断结果为是,则执行步骤S270。

步骤S260:向验证节点返回验证失败消息。

具体地,当验证节点并非合法节点时,签名节点拒绝为该验证节点验证,从而向其返回验证失败消息,该方法结束。

步骤S270:签名节点对验证请求消息进行验证,并根据验证结果向验证节点返回信息有效消息或信息无效消息。

具体地,签名节点获取上述验证请求消息中包含的验证信息数据,根据该验证信息数据生成相应的验证结果。例如,签名节点首先获取验证信息数据中包含的数据内容(如上文提到的待验证信息的信息内容、待验证信息的签名、签名公钥),然后,将该数据内容以及信息内容、签名和公钥等信息作为参数进行预设的计算后得到验证结果。相应地,返回的信息有效消息或信息无效消息中包含该验证结果,以供验证节点根据该验证结果以及上述步骤S240中保存的随机数判断信息是否有效。因此,也可以将信息有效消息和信息无效消息统称为验证结果消息。具体地,验证节点可以将信息内容、签名以及随机数作为参数,对验证结果进行预设计算后根据计算结果判断待验证信息的真伪。其中,验证节点进行判断时所采用的随机数与步骤S240中保存的随机数相同,若步骤S240中保存的随机数是与信息有效信息对应的随机数,则验证节点进行判断时所采用的随机数也是与信息有效信息对应的随机数;若步骤S240中保存的随机数是与信息无效信息对应的随机数,则验证节点进行判断时所采用的随机数也是与信息无效信息对应的随机数。

为了加深对本实施例的理解,下面给出本实施例中采用的不可否认签名算法的具体签名及验证方式:

1.产生系统参数

设p是一个大素数,并且p=2q+1,其中q也是素数,Zp*中的离散对数是难解的。

随机取Zp*中的阶为q的元素g,由此构造Zp*的q阶乘法子群G(即g为G的生成元),

在{1,2…,q-1}中随机选择作为SK,

令PK=gSKmod p,

将PK与p,g一起作为公钥公开,而SK作为签名用户的秘密密钥。

2.签名过程

信息发布方要对消息m∈G签名,可用其密钥SK计算s=(m)SK mod p,把s作为对m的签名连同m一起发给对方。但这个s事实上是无法被其他人证实的。

3.验证协议:

接收方收到s和m后,选择随机数k1,k2∈Zp*,并计算c=sk1PKk2mod p,把c送给签名者。

签名者在收到c后计算d=c(modq)/SKmodp,并把d送给签名的接收者。

接收方计算t=mk1gk2modp,当且仅当t=d时可确定s是一个对m的合法签名。

综上可知,本发明一方面使用区块链来存储信息,充分利用了区块链的分布式,不易篡改的特性,另一方面通过不可否认签名和掺杂错误数据的方式,使签名的验证者只有和签名者交互才能确定信息是否真实及签名是否合法,否则无法确定信息的真伪,有效地防止了伪造签名的隐患。另外,掺杂错误数据的方式使得在不验证的情况下,其他用户无法知道哪一条信息是正确的,因而隐藏了真实信息。因此,在大量的信息数据集合中,通过掺杂错误数据的方法能够有效干扰他人获知有效信息,使用不可否认签名的方式,签名者在区块链上选择性地为其他用户校验签名,因而保证了无关人员无法获知真实信息及签名是否有效。

实施例三

图3是本申请实施例三提供的一种基于区块链的信息验证装置的结构示意图。如图3所述,该装置包括:有效签名模块310、无效签名模块320、消息接收模块330和消息验证模块340。

有效签名模块310,用于根据待验证信息生成对应的有效签名信息,将有效签名信息存储到区块链中。

其中,有效签名模块310根据待验证信息生成有效签名信息的方式可以灵活设定,例如,本领域技术人员可以灵活采用各种数字签名算法对待验证信息进行签名,从而生成与待验证信息对应的有效签名信息。具体地,可以采用盲签名算法、不可否认签名算法等各类签名算法实现。

另外,有效签名模块310将有效签名信息存储到区块链时,也可以灵活采用各种方式存储,例如,可以由区块链中的打包节点负责将有效签名信息打包存储到区块链中;也可以将有效签名信息广播到区块链网络中,通过广播方式进行存储。

无效签名模块320,用于根据待验证信息生成对应的无效签名信息,将无效签名信息存储到区块链中。

其中,无效签名模块320根据待验证信息生成无效签名信息的方式也可以灵活设定,例如,在一种实现方式中,无效签名模块320可以利用随机算法生成一个随机数,并将该随机数作为无效签名信息。另外,无效签名模块320将无效签名信息存储到区块链时,也可以灵活采用各种方式存储,例如,可以由区块链中的打包节点负责将无效签名信息打包存储到区块链中;也可以将有效签名信息广播到区块链网络中,通过广播方式进行存储。

消息接收模块330,用于接收验证节点根据区块链中存储的有效签名信息或无效签名信息生成的验证请求消息。

其中,验证节点可以是接入到区块链中的任意网络节点,例如,可以是完全节点,也可以是不完全节点,总之,只要是能够获取到区块链中的存储信息的网络节点均可以作为验证节点。

当验证节点获取到区块链中存储的有效签名信息或无效签名信息后,根据有效签名信息或无效签名信息生成验证请求消息,该验证请求消息可以通过各种方式生成,只要能够实现验证信息真伪的目的即可。例如,可以通过预设的算法对有效签名信息或无效签名信息进行运算,将运算结果包含在上述的验证请求消息中。

消息验证模块340,用于对验证请求消息进行验证,根据验证结果向验证节点返回信息有效消息或信息无效消息。

具体地,对验证请求消息进行验证的具体实现方式可由本领域技术人员灵活设定,例如,当验证请求消息中包含通过预设的算法对有效签名信息或无效签名信息进行运算后得到的运算结果时,可以对该运算结果进行逆运算,以确定验证请求消息对应的原始签名信息,从而验证原始签名信息为有效签名信息或无效签名信息,进而返回相应的消息。

其中,信息有效消息或信息无效消息中可以直接包含验证结果,以便验证节点能够直接地、快速地根据信息有效消息或信息无效消息确定信息真伪;也可以仅包含利用约定算法产生的反馈结果,以便验证节点通过对该反馈结果进行处理后根据处理结果确认信息真伪,从而进一步提升验证过程的安全性。

上述各个模块的具体工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。

由此可见,在本申请实施例提供的一种基于区块链的信息验证装置中,能够针对待验证信息分别生成有效签名信息以及无效签名信息,从而将有效签名信息和无效签名信息掺杂存储到区块链中。由此一来,一方面,能够达到迷惑用户的目的,从而有效保护数据的私密性;另一方面,本申请实施例中的待验证信息通过区块链进行存储,能够有效利用区块链不易篡改、安全性高的优势,并且,区块链中的信息需要经过签名者的验证方可辨认真伪,从而进一步提升了信息验证时的安全性。由此可见,本申请实施例中的信息验证装置能够兼顾信息的安全性与私密性。

实施例四

图4是本申请实施例四提供的一种基于区块链的信息验证装置的结构示意图。如图4所示,该装置包括:有效签名模块410、无效签名模块420、消息接收模块430和消息验证模块440。其中,消息验证模块440进一步包括:判断子模块441和验证子模块442。

有效签名模块410,用于根据待验证信息生成对应的有效签名信息,将有效签名信息存储到区块链中。

在本实施例中,有效签名模块410根据待验证信息生成有效签名信息时,通过不可否认签名算法对待验证信息进行签名,相应地,有效签名信息中包含待验证信息的信息内容、待验证信息的不可否认签名、以及签名公钥。当然,除不可否认签名算法外,还可以采用盲签名等其他签名算法实现,从而更好地确保签名信息的安全性。

有效签名模块410将有效签名信息存储到区块链时,首先生成区块链中的一笔交易,然后将有效签名信息写入该笔交易中(例如,可以写入该笔交易的OP_RETURN部分),最后将该笔交易广播到区块链中,以便区块链中的各个网络节点均能获取到该笔交易中包含的信息。

无效签名模块420,用于根据待验证信息生成对应的无效签名信息,将无效签名信息存储到区块链中。

为了防止真实信息的泄露,在本实施例中,无效签名模块420根据待验证信息生成对应的无效签名信息,以达到迷惑攻击者的目的。具体实现时,无效签名信息中可以包含待验证信息的信息内容、待验证信息的伪签名、以及签名公钥。其中,无效签名信息中包含的待验证信息的信息内容可以是与真实信息内容对应的相似信息内容,即:信息内容本身并非真实有效的,但是与真实信息内容非常相似。另外,无效签名信息中包含的伪签名可以通过各类方式实现,只要能够区别于真签名即可,例如,可以通过随机签名实现,即:通过随机算法生成一个随机数,将该随机数作为待验证信息的伪签名。

另外,无效签名模块420将无效签名信息存储到区块链时,首先生成区块链中的另一笔交易,然后将无效签名信息写入该笔交易中(例如,可以写入该笔交易的OP_RETURN部分),最后将该笔交易广播到区块链中,以便区块链中的各个网络节点均能获取到该笔交易中包含的信息。

消息接收模块430,用于接收验证节点根据区块链中存储的有效签名信息或无效签名信息生成的验证请求消息。

其中,验证节点可以是接入到区块链中的任意网络节点,例如,可以是完全节点,也可以是不完全节点。验证节点可以通过获取区块链中的交易记录的方式获取到有效签名信息或无效签名信息。为了便于描述,下文将有效签名信息和无效签名信息统称为待验证签名信息。

由于验证节点本身无法判断获取到的待验证签名信息是否有效,因此,需要通过与签名节点交互的方式进行确认。在本实施例中,验证请求消息通过下述方式生成:首先,验证节点分析待验证签名信息的信息内容,获取其中包含的待验证信息的信息内容、待验证信息的签名(该签名既可能是真签名也可能是伪签名)、以及签名公钥。然后,通过随机算法生成并保存一个随机数,利用待验证信息的信息内容、待验证信息的签名、签名公钥以及随机数作为参数进行预设计算,将计算结果作为验证信息数据,将验证信息数据包含在验证请求消息中发送给签名节点。

消息验证模块440,用于对验证请求消息进行验证,根据验证结果向验证节点返回信息有效消息或信息无效消息。

具体的,当验证节点发送的验证请求消息中进一步包含验证节点的身份信息时,消息验证模块440进一步包括:

判断子模块441,用于根据验证节点的身份信息判断验证节点是否为合法节点。其中,为了防止区块链中的大量无关节点恶意发送验证请求消息,以耗费签名节点的系统资源,并防止签名信息的泄露,在本实施例中,判断子模块441预先设置并存储了合法节点的身份信息,合法节点可以是与签名节点存在业务往来或其他关联的网络节点。判断子模块441可以根据身份信息判断发送验证请求消息的网络节点是否为合法节点。

验证子模块442,用于当判断结果为是时,对验证请求消息进行验证,并根据验证结果向验证节点返回信息有效消息或信息无效消息;当判断结果为否时,向验证节点返回验证失败消息。

具体地,当验证节点并非合法节点时,验证子模块442拒绝为该验证节点验证,从而向其返回验证失败消息,该方法结束。

当验证节点为合法节点时,验证子模块442获取上述验证请求消息中包含的验证信息数据,根据该验证信息数据生成相应的验证结果。例如,验证子模块442首先获取验证信息数据中包含的数据内容(如上文提到的待验证信息的信息内容、待验证信息的签名、签名公钥),然后,将该数据内容以及信息内容、签名和公钥等信息作为参数进行预设的计算后得到验证结果。相应地,返回的信息有效消息或信息无效消息中包含该验证结果,以供验证节点根据该验证结果以及消息接收模块430中保存的随机数判断信息是否有效。因此,也可以将信息有效消息和信息无效消息统称为验证结果消息。具体地,验证节点可以将信息内容、签名以及随机数作为参数,对验证结果进行预设计算后根据计算结果判断待验证信息的真伪。其中,验证节点进行判断时所采用的随机数与消息接收模块430中保存的随机数相同,若消息接收模块430中保存的随机数是与信息有效信息对应的随机数,则验证节点进行判断时所采用的随机数也是与信息有效信息对应的随机数;若消息接收模块430中保存的随机数是与信息无效信息对应的随机数,则验证节点进行判断时所采用的随机数也是与信息无效信息对应的随机数。

上述各个模块的具体工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。

综上可知,本发明一方面使用区块链来存储信息,充分利用了区块链的分布式,不易篡改的特性,另一方面通过不可否认签名和掺杂错误数据的方式,使签名的验证者只有和签名者交互才能确定信息是否真实及签名是否合法,否则无法确定信息的真伪,有效地防止了伪造签名的隐患。另外,掺杂错误数据的方式使得在不验证的情况下,其他用户无法知道哪一条信息是正确的,因而隐藏了真实信息。因此,在大量的信息数据集合中,通过掺杂错误数据的方法能够有效干扰他人获知有效信息,使用不可否认签名的方式,签名者在区块链上选择性地为其他用户校验签名,因而保证了无关人员无法获知真实信息及签名是否有效。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本申请实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的装置中的一些或者全部部件的一些或者全部功能。本申请实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本申请实施例进行说明而不是对本申请实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:A1、一种基于区块链的信息验证方法,其中,包括:

根据待验证信息生成对应的有效签名信息,将所述有效签名信息存储到区块链中;

根据所述待验证信息生成对应的无效签名信息,将所述无效签名信息存储到所述区块链中;

接收验证节点根据所述区块链中存储的有效签名信息或无效签名信息生成的验证请求消息;

对所述验证请求消息进行验证,根据验证结果向所述验证节点返回信息有效消息或信息无效消息。

A2、根据A1所述的方法,其中,所述验证请求消息中包括:所述验证节点的身份信息,则所述对所述验证请求消息进行验证,根据验证结果向所述验证节点返回信息有效消息或信息无效消息的步骤具体包括:

根据所述验证节点的身份信息判断所述验证节点是否为合法节点;

当判断结果为是时,对所述验证请求消息进行验证,并根据验证结果向所述验证节点返回信息有效消息或信息无效消息。

A3、根据A2所述的方法,其中,当判断结果为否时,向所述验证节点返回验证失败消息。

A4、根据A1-A3任一所述的方法,其中,所述有效签名信息包括:所述待验证信息的信息内容、所述待验证信息的真签名、以及签名公钥;

所述无效签名信息包括:所述待验证信息的信息内容、所述待验证信息的伪签名、以及签名公钥。

A5、根据A4所述的方法,其中,所述真签名包括不可否认签名,所述伪签名包括随机签名。

A6、根据A4或A5所述的方法,其中,所述验证请求消息中包含验证信息数据,且所述验证信息数据通过所述有效签名信息与随机数的组合或所述无效签名信息与随机数的组合确定;

则所述对验证请求消息进行验证的步骤具体包括:获取所述验证请求消息中包含的验证信息数据,根据所述验证信息数据以及所述有效签名信息生成相应的验证结果;

并且,所述信息有效消息或信息无效消息中包含所述验证结果,以供所述验证节点根据所述验证结果以及所述随机数判断信息是否有效。

A7、根据A1-A6任一所述的方法,其中,所述将所述有效签名信息存储到区块链中的步骤具体包括:将所述有效签名信息写入第一交易记录,并将所述第一交易记录广播到所述区块链中;

所述将所述无效签名信息存储到区块链中的步骤具体包括:将所述无效签名信息写入第二交易记录,并将所述第二交易记录广播到所述区块链中。

本发明还公开了:B8、一种基于区块链的信息验证装置,其中,包括:

有效签名模块,用于根据待验证信息生成对应的有效签名信息,将所述有效签名信息存储到区块链中;

无效签名模块,用于根据所述待验证信息生成对应的无效签名信息,将所述无效签名信息存储到所述区块链中;

消息接收模块,用于接收验证节点根据所述区块链中存储的有效签名信息或无效签名信息生成的验证请求消息;

消息验证模块,用于对所述验证请求消息进行验证,根据验证结果向所述验证节点返回信息有效消息或信息无效消息。

B9、根据B8所述的装置,其中,所述验证请求消息中包括:所述验证节点的身份信息,则所述消息验证模块具体包括:

判断子模块,用于根据所述验证节点的身份信息判断所述验证节点是否为合法节点;

验证子模块,用于当判断结果为是时,对所述验证请求消息进行验证,并根据验证结果向所述验证节点返回信息有效消息或信息无效消息。

B10、根据B9所述的装置,其中,当所述判断子模块的判断结果为否时,所述验证子模块向所述验证节点返回验证失败消息。

B11、根据B8-B10任一所述的装置,其中,所述有效签名信息包括:所述待验证信息的信息内容、所述待验证信息的真签名、以及签名公钥;

所述无效签名信息包括:所述待验证信息的信息内容、所述待验证信息的伪签名、以及签名公钥。

B12、根据B11所述的装置,其中,所述真签名包括不可否认签名,所述伪签名包括随机签名。

B13、根据B11或B12所述的装置,其中,所述验证请求消息中包含验证信息数据,且所述验证信息数据通过所述有效签名信息与随机数的组合或所述无效签名信息与随机数的组合确定;

则所述消息验证模块具体用于:获取所述验证请求消息中包含的验证信息数据,根据所述验证信息数据以及所述有效签名信息生成相应的验证结果;

并且,所述信息有效消息或信息无效消息中包含所述验证结果,以供所述验证节点根据所述验证结果以及所述随机数判断信息是否有效。

B14、根据B8-B13任一所述的装置,其中,所述有效签名模块具体用于:将所述有效签名信息写入第一交易记录,并将所述第一交易记录广播到所述区块链中;

所述无效签名模块具体用于:将所述无效签名信息写入第二交易记录,并将所述第二交易记录广播到所述区块链中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1