一种数据签名认证方法及装置与流程

文档序号:18898486发布日期:2019-10-18 21:36阅读:141来源:国知局
一种数据签名认证方法及装置与流程

本发明涉及信息安全技术领域,尤其涉及一种数据签名认证方法及装置。



背景技术:

随着信息技术的快速发展,网络已经成为人们生活中必不可少的一部分,给社会带来了很大作用和便利。同时,网络也给社会带来许多的违法行为,例如网络侵权、网络犯罪、网络诈骗等,这些违法行为给人们的人身和财产安全带来很大的威胁。

然而,这些网络纠纷、网络犯罪等有一个重要特点是网络数据容易被修改、删除、伪造等,因此如何验证网络数据的完整性成为非常重要的问题。



技术实现要素:

本发明实施例提供了一种数据签名认证方法及装置,可以实现对数据完整性的验证以及对发送数据的用户终端进行验证,提高了数据验证的有效性和准确性。

第一方面,本发明实施例提供了一种数据签名认证方法,包括:

用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、为该验证数据设置的电子戳和终端标识;

所述服务器接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法生成所述验证数据、为该验证数据设置的电子戳和终端标识的验证哈希值;

所述服务器根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值;

所述服务器将所述验证签名哈希值与区块链中各个区块内记录的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果;

所述服务器将验证结果发送给所述用户终端。

进一步地,所述区块链中存储的所述原始签名哈希值是区块链系统节点根据预设私钥对在预设时间范围内获取到的用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的。

进一步地,所述区块链中每个区块包括头部区域和签名哈希值区域,所述头部区域包括随机值和根签名哈希值,所述签名哈希值区域包括多个初始签名哈希值;

所述根签名哈希值是根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值确定得到的,所述初始签名哈希值是根据所述用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的;

如果所述根签名哈希值不满足预设规则,则执行所述根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值计算新的根签名哈希值,直至计算得到的新的根签名哈希值满足所述预设规则时,将所述区块存储至区块链中,并确定所述区块的签名哈希值区域中记录的原始签名哈希值。。

进一步地,所述用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则获取与所述第二触控操作对应的第二数据验证请求,并将所述第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和为该验证数据设置的电子戳;

所述服务器接收所述用户终端发送的第二数据验证请求,并根据预设的哈希算法确定所述验证数据和为该验证数据设置的电子戳的验证根哈希值;

所述服务器将所述验证根哈希值发送给第三方认证中心进行验证,并将所述第三方认证中心返回的验证结果发送给所述用户终端。

进一步地,所述第三方认证中心中存储了至少一个服务器的用户数据的原始根哈希值,所述原始根哈希值是根据预设时间范围内从各服务器中获取到的用户数据的哈希值确定得到的。

第二方面,本发明实施例提供了一种数据签名认证装置,包括:

发送模块,用于用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、为该验证数据设置的电子戳和终端标识;

确定模块,用于所述服务器接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法生成所述验证数据、为该验证数据设置的电子戳和终端标识的验证哈希值;

签名模块,用于所述服务器根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值;

第一验证模块,用于所述服务器将所述验证签名哈希值与区块链中各个区块内记录的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果;所述服务器将验证结果发送给所述用户终端。

进一步地,所述区块链中存储的所述原始签名哈希值是区块链系统节点根据预设私钥对在预设时间范围内获取到的用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的。

进一步地,所述区块链中每个区块包括头部区域和签名哈希值区域,所述头部区域包括随机值和根签名哈希值,所述签名哈希值区域包括多个初始签名哈希值;

所述根签名哈希值是根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值确定得到的,所述初始签名哈希值是根据所述用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的;

如果所述根签名哈希值不满足预设规则,则执行所述根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值计算新的根签名哈希值,直至计算得到的新的根签名哈希值满足所述预设规则时,将所述区块存储至区块链中,并确定所述区块的签名哈希值区域中记录的原始签名哈希值。

进一步地,所述装置还包括:第二验证模块;

所述发送模块,还用于所述用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则获取与所述第二触控操作对应的第二数据验证请求,并将所述第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和为该验证数据设置的电子戳;

所述确定模块,还用于所述服务器接收所述用户终端发送的第二数据验证请求,并根据预设的哈希算法确定所述验证数据和为该验证数据设置的电子戳的验证根哈希值;

所述第二验证模块,用于所述服务器将所述验证根哈希值发送给第三方认证中心进行验证,并将所述第三方认证中心返回的验证结果发送给所述用户终端。

进一步地,所述第三方认证中心中存储了至少一个服务器的用户数据的原始根哈希值,所述原始根哈希值是根据预设时间范围内从各服务器中获取到的用户数据的哈希值确定得到的。

第三方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的方法。

本发明实施例中,用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,将与所述第一触控操作对应的第一数据验证请求发送给服务器,所述服务器可以根据预设的哈希算法,确定所述第一数据验证请求中携带的验证数据、电子戳和终端标识的验证哈希值,并根据预设私钥对所述验证哈希值进行加密,得到验证签名哈希值,以及将所述验证签名哈希值与区块链中各区块的原始签名哈希值进行对比验证,根据验证结果确定是否验证成功。通过这种实施方式,不仅可以实现对数据完整性的验证,还可以实现对发送数据的用户终端的验证,从而提高了数据验证的有效性和准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据签名认证系统的结构示意图;

图2是本发明实施例提供的一种根哈希值的确定方式的示意图;

图3是本发明实施例提供的一种数据签名认证方法的流程图;

图4是本发明实施例提供的另一种数据签名认证方法的流程示意图;

图5是本发明实施例提供的一种数据签名认证装置的结构示意图;

图6是本发明实施例提供的另一种数据签名认证装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

本发明实施例提出了一种数据签名认证方法,所述数据签名认证方法可以应用于数据签名认证装置,所述数据签名认证装置可以设置于数据签名认证系统中。在某些实施例中,所述数据签名认证装置可以设置在智能终端(如手机、平板电脑等)上。

本发明实施例中,用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,可以获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、为该验证数据设置的电子戳和终端标识。所述服务器可以接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法确定所述验证数据、电子戳和终端标识的验证哈希值。所述服务器可以根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值。所述服务器可以将所述验证签名哈希值与区块链中的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则可以确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则可以确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果;并将验证结果发送给所述用户终端。

在一个实施例中,本发明在进行数据验证之前,用户终端可以将用户数据发送给服务器,服务器接收到用户终端发送的用户数据后,可以根据预设的哈希算法计算所述用户数据的哈希值。

在一个实施例中,所述服务器中可以包括一个或多个子服务器,所述服务器可以根据在预设时间范围内各子服务器获取到的用户数据的哈希值,计算出在该预设时间范围内获取到的各用户数据的哈希值的根哈希值,并确定出各用户数据的电子戳。所述服务器可以将所述根哈希值发送给第三方认证中心进行存储,以及将所述各用户数据的电子戳发送给对应的各用户终端,以便各用户终端可以通过所述第三方认证中心对用户数据进行完整性验证。

在一个实施例中,所述服务器在将计算得到的根哈希值发送给第三方认证中心进行存储时,还可以根据预设的哈希算法确定所述用户数据和发送所述用户数据的用户终端的终端标识的哈希值,并根据预设私钥对所述服务器在预设时间范围内获取到的用户数据和终端标识的哈希值进行加密,得到各用户数据的初始签名哈希值,并将各初始签名哈希值存入区块链的区块中的签名哈希值区域中。在某些实施例中,所述区块链中的区块包括头部信息和签名哈希值区域,所述头部信息中包括随机值,所述签名哈希值区域用于存储初始签名哈希值。在某些实施例中,所述区块可以根据所述随机值和所述多个初始签名哈希值计算得到根签名哈希值,如果所述根签名哈希值不满足预设规则,则可以根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值循环计算新的根签名哈希值,直至计算得到的新的根签名哈希值满足所述预设规则时,确定所述区块的签名哈希值区域中当前记录的签名哈希值为原始签名哈希值,并将存储所述原始签名哈希值的区块存储至区块链中。

通过这种实施方式,不仅可以通过第三方认证中心对数据完整性进行验证,还可以通过区块链对数据的完整性进行验证,以及对发送该用户数据的用户终端进行验证,从而提高数据验证的有效性和准确性。

具体可以图1为例,图1是本发明实施例提供的一种数据签名认证系统的结构示意图,如图1所示,用户终端11可以将用户数据发送给服务器12,服务器12接收到用户终端11发送的用户数据后,可以根据预设的哈希算法计算所述用户数据的哈希值。所述服务器12中包括3个子服务器,分别为第一子服务器121、第二子服务器122、第三子服务器123。所述服务器12可以根据在预设时间范围1分钟内各子服务器获取到的用户数据的哈希值,计算出在该1分钟内获取到的各用户数据的哈希值的根哈希值,并确定出电子戳。所述服务器12可以将该根哈希值发送给第三方认证中心13进行存储。所述服务器12可以根据预设私钥对在预设时间范围内获取到的用户数据的哈希值进行加密,得到各用户数据的原始签名哈希值,并将各用户数据的原始签名哈希值存储至区块链14中。

在一个实施例中,所述根哈希值的确定方式具体可以图2为例进行说明,图2是本发明实施例提供的一种根哈希值的确定方式的示意图,如图2所示,以图1中第一子自服务器121在1分钟内获取到的第一用户数据的哈希值为图2所示的第4级的子节点4.1、第二用户数据的哈希值为子节点4.2,以图1中第二子服务器122在1分钟内获取到的第三用户数据的哈希值为图2所示的子节点4.3、第四用户数据的哈希值为图2所示的子节点4.4,以图1中第三子服务器123在1分钟内获取到的第五用户数据的哈希值为图2所示的子节点4.5、第六用户数据的哈希值为图2所示的子节点4.6、第七用户数据的哈希值为图2所示的子节点4.7、第八用户数据的哈希值为图2所示的子节点4.8。服务器可以根据所述第4级的各子节点确定出第3级的子节点3.1、子节点3.2、子节点3.3、子节点3.4,并根据所述第3级的子节点3.1、子节点3.2、子节点3.3、子节点3.4确定出第2级的子节点2.1和子节点2.2,从而根据所述子节点2.1和子节点2.2确定出图2所示的第1级数据的根节点,即所述服务器在1分钟内获取到的各用户数据的根节点。

所述服务器可以根据各节点组成的树结构,确定出各用户数据对应的电子戳,以所述第一用户数据的哈希值对应的子节点4.1为例,所述第一用户数据对应的第一电子戳为子节点4.2、子节点3.2以及子节点2.2。同理可得,所述第二用户数据的哈希值对应的第二电子戳为子节点4.1、子节点3.2以及子节点2.2;同理可得,所述第三用户数据的哈希值对应的第三电子戳为子节点4.4、子节点3.1以及子节点2.2;同理可得,所述第四用户数据的哈希值对应的第四电子戳为子节点4.3、子节点3.1以及子节点2.2;同理可得,所述第五用户数据的哈希值对应的第五电子戳为子节点4.6、子节点3.4以及子节点2.1;同理可得,所述第六用户数据的哈希值对应的第六电子戳为子节点4.5、子节点3.4以及子节点2.1;同理可得,所述第七用户数据的哈希值对应的第七电子戳为子节点4.8、子节点3.3以及子节点2.1;同理可得,所述第八用户数据的哈希值对应的第八电子戳为子节点4.7、子节点3.3以及子节点2.1。所述服务器在确定出各电子戳之后,可以将确定出的各电子戳发送给对应的用户终端,以使用户在进行数据验证的时候可以根据验证数据和各自的电子戳确定出根哈希值。

下面结合附图对本发明实施例提出的数据签名认证方法进行示意性说明。

请参见图3,图3是本发明实施例提供的一种数据签名认证方法的流程图,本发明实施例的所述方法可以由数据签名认证装置来实现,所述数据签名认证装置的解释如前所述。具体的,本发明实施例的所述方法包括以下步骤:

s301:用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、为该验证数据设置的电子戳和终端标识。

本发明实施例中,用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,可以获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、电子戳和终端标识。在某些实施例中,所述第一数据验证请求中携带验证数据、电子戳和终端标识是用于对所述验证数据的完整性以及对存储所述验证数据的用户终端进行验证。

在一个实施例中,所述用户终端的用户界面上包括第一验证需求控件,所述第一验证需求控件可以包括但不限于按钮、按键等,所述第一触控操作包括但不限于滑动操作、按压操作、点击操作等。

通过用户对用户终端的用户界面上第一验证需求控件的第一触控操作,可以触发生成第一数据验证请求,并将该第一数据验证请求发送给服务器,以便所述服务器根据所述第一数据验证请求,对所述验证数据的完整性以及存储所述验证数据的用户终端进行验证。

s302:所述服务器接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法生成所述验证数据、为该验证数据设置的电子戳和终端标识的验证哈希值。

本发明实施例中,所述服务器可以接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法确定所述验证数据、电子戳和终端标识的验证哈希值。在某些实施例中,所述预设的哈希算法可以包括但不限于md5、md4、sha等算法中的任意一种或多种,本发明实施例不做具体限定。

s303:所述服务器根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值。

本发明实施例中,所述服务器在确定出所述验证数据、电子戳和终端标识的验证哈希值之后,可以根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值。可见,通过预设私钥对所述验证哈希值进行加密的实施方式,可以为后续验证发送用户数据的用户终端和验证数据完整性做铺垫。

s304:所述服务器将所述验证签名哈希值与区块链中各个区块内记录的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果,并将验证结果发送给所述用户终端。

本发明实施例中,所述服务器在得到验证签名哈希值后,可以所述服务器将所述验证签名哈希值与区块链中各个区块内记录的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果,并将验证结果发送给所述用户终端。

在一个实施例中,所述区块链中存储的所述原始签名哈希值是区块链系统节点根据预设私钥对在预设时间范围内获取到的用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的。在某些实施例中,区块链中可以包括多个区块,每个区块用于存储服务器发送的用户数据的哈希值的原始签名哈希值,以便于用户终端进行数据验证。

在一个实施例中,所述区块链中每个区块包括头部区域和签名哈希值区域,所述头部区域包括随机值和根签名哈希值,所述签名哈希值区域包括多个初始签名哈希值。所述根签名哈希值是根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值确定得到的,所述初始签名哈希值是根据所述用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的。如果所述根签名哈希值不满足预设规则,则可以执行所述根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值计算新的根签名哈希值,直至计算得到的新的根签名哈希值满足所述预设规则时,将所述区块存储至区块链中,并确定所述区块的签名哈希值区域中当前记录的签名哈希值为所述原始签名哈希值。

在一个实施例中,服务器通过预设私钥对所述验证哈希值进行加密,可以得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值,以便于所述用户终端在获取到的验证结果为验证成功时,不仅可以确定所述验证数据的完整性验证成功,还可以确定存储所述验证数据的用户终端的准确性。通过这种实施方式,可以提高对数据验证的有效性和准确性。

在本发明实施例中,用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,将与所述第一触控操作对应的第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、电子戳和终端标识;所述服务器根据预设的哈希算法确定所述验证数据、电子戳和终端标识的验证哈希值,并根据预设私钥对所述验证哈希值进行加密,得到验证签名哈希值;所述服务器将所述验证签名哈希值与区块链中各区块的原始签名哈希值进行对比验证,并将验证结果发送给所述用户终端。通过这种实施方式,不仅可以确定数据的完整性,还可以确定向服务器发送数据的用户终端的准确性,从而提高数据校验的有效性和准确性。

请参见图4,图4是本发明实施例提供的另一种数据签名认证方法的流程示意图,本发明实施例的所述方法可以由数据签名认证装置来实现,所述数据签名认证装置的解释如前所述。本发明实施例与图3所述实施例的区别在于,本发明实施例是对从第三方认证中心进行数据验证的实施过程进行示意性说明。具体的,本发明实施例的所述方法包括以下步骤:

s401:用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则获取与所述第二触控操作对应的第二数据验证请求,并将所述第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和为该验证数据设置的电子戳。

本发明实施例中,用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则可以获取与所述第二触控操作对应的第二数据验证请求,并将所述第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和为该验证数据设置的电子戳。在某些实施例中,所述第二数据验证请求用于对所述验证数据的完整性进行验证。

s402:所述服务器接收所述用户终端发送的第二数据验证请求,并根据预设的哈希算法确定所述验证数据和为该验证数据设置的电子戳的验证根哈希值。

本发明实施例中,所述服务器在接收到所述用户终端发送的第二数据验证请求之后,可以根据预设的哈希算法确定所述验证数据和为该验证数据设置的电子戳的验证根哈希值。

s403:所述服务器将所述验证根哈希值发送给第三方认证中心进行验证,并将所述第三方认证中心返回的验证结果发送给所述用户终端。

本发明实施例中,所述服务器在获取到验证根哈希值后,可以将所述验证根哈希值发送给第三方认证中心进行验证,并将所述第三方认证中心返回的验证结果发送给所述用户终端。

在一个实施例中,所述第三方认证中心中存储了至少一个服务器的用户数据的原始根哈希值,所述原始根哈希值是根据预设时间范围内从各服务器中获取到的用户数据的哈希值确定得到的。

在一个实施例中,所述第三方认证中心在对所述验证根哈希值进行验证的过程中,可以将获取到的所述验证根哈希值与所述第三方认证中心中存储的根哈希值进行对比,如果所述第三方认证中心中存在与所述验证根哈希值相匹配的根哈希值,则可以确定所述第三方认证中心预先存储了所述验证数据的根哈希值,并可以确定所述第三方认证中心为对所述验证数据的完整性验证成功,如果所述第三方认证中心中不存在与所述验证根哈希值相匹配的根哈希值,则可以确定所述第三方认证中心对所述验证数据的完整性验证失败。

在本发明实施例中,用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则将与所述第二触控操作对应的第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和电子戳;所述服务器可以根据预设的哈希算法确定所述验证数据和所述电子戳的验证根哈希值,并将所述验证根哈希值发送给第三方认证中心进行验证,以及将所述第三方认证中心返回的验证结果发送给所述用户终端。通过这种实施方式可以实现对数据完整性的验证。

请参见图5,图5是本发明实施例提供的一种数据签名认证装置的结构示意图,具体的,本发明实施例的所述数据签名认证装置包括发送模块501、确定模块502、签名模块503以及第一验证模块504。

发送模块501,用于用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、为该验证数据设置的电子戳和终端标识;

确定模块502,用于所述服务器接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法生成所述验证数据、为该验证数据设置的电子戳和终端标识的验证哈希值;

签名模块503,用于所述服务器根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值;

第一验证模块504,用于用于所述服务器将所述验证签名哈希值与区块链中各个区块内记录的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果;所述服务器将验证结果发送给所述用户终端。

进一步地,所述区块链中存储的所述原始签名哈希值是区块链系统节点根据预设私钥对在预设时间范围内获取到的用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的。

进一步地,所述区块链中每个区块包括头部区域和签名哈希值区域,所述头部区域包括随机值和根签名哈希值,所述签名哈希值区域包括多个初始签名哈希值;

所述根签名哈希值是根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值确定得到的,所述初始签名哈希值是根据所述用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的;

如果所述根签名哈希值不满足预设规则,则执行所述根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值计算新的根签名哈希值,直至计算得到的新的根签名哈希值满足所述预设规则时,将所述区块存储至区块链中,并确定所述区块的签名哈希值区域中记录的原始签名哈希值。

进一步地,所述装置还包括:第二验证模块505,

所述发送模块501,还用于所述用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则获取与所述第二触控操作对应的第二数据验证请求,并将所述第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和为该验证数据设置的电子戳;

所述确定模块502,还用于所述服务器接收所述用户终端发送的第二数据验证请求,并根据预设的哈希算法确定所述验证数据和为该验证数据设置的电子戳的验证根哈希值;

所述第二验证模块505,用于所述服务器将所述验证根哈希值发送给第三方认证中心进行验证,并将所述第三方认证中心返回的验证结果发送给所述用户终端。

进一步地,所述第三方认证中心中存储了至少一个服务器的用户数据的原始根哈希值,所述原始根哈希值是根据预设时间范围内从各服务器中获取到的用户数据的哈希值确定得到的。

本发明实施例中,用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,将与所述第一触控操作对应的第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、电子戳和终端标识;所述服务器根据预设的哈希算法确定所述验证数据、电子戳和终端标识的验证哈希值,并根据预设私钥对所述验证哈希值进行加密,得到验证签名哈希值;所述服务器将所述验证签名哈希值与区块链中各区块的原始签名哈希值进行对比验证,并将验证结果发送给所述用户终端。通过这种实施方式,不仅可以确定数据的完整性,还可以确定向服务器发送数据的用户终端的准确性,从而提高数据校验的有效性和准确性。

具体可参见图6,图6是本发明实施例提供的另一种数据签名认证装置的结构示意图。具体的,本发明实施例所述数据签名认证装置可包括:至少一个输入设备601,至少一个处理器603、至少一个存储器604,至少一个输出设备605等组件,其中这些组件通过一条或多条总线602进行通信连接。其中:

输入设备601为输入数据和信息的设备,可以包括屏幕键盘、摄像头、扫描仪、语音输入装置等,用于把原始数据和处理这些数据的程序输入到终端设备中。

总线602以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器603可以是中央处理器(centralprocessingunit,cpu)。

存储器604可为集成电路中具有存储功能的电路,如ram、fifo等,或者具有实物形式的存储设备,如内存条、tf卡等。可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器604还可以包括上述种类的存储器的组合。存储器604根据处理器603指定的位置存入和取出数据,处理器603、输入设备604、输出设备605调用存储器604的程序执行各功能,实现数据的处理。

所述存储器604还用于存储程序指令。所述处理器603可以调用所述程序指令,实现如本申请图3或图4所述实施例中所示的数据签名认证方法。

输出设备605可包括显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。

所述处理器603调用存储器604中的应用程序,用于执行以下步骤:

用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,获取与所述第一触控操作对应的第一数据验证请求,并将所述第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、为该验证数据设置的电子戳和终端标识;

所述服务器接收所述用户终端发送的第一数据验证请求,并根据预设的哈希算法生成所述验证数据、为该验证数据设置的电子戳和终端标识的验证哈希值;

所述服务器根据预设私钥对所述验证哈希值进行加密,得到所述验证数据、为该验证数据设置的电子戳和终端标识的验证签名哈希值;

所述服务器将所述验证签名哈希值与区块链中各个区块内记录的原始签名哈希值进行对比,如果比较确定出与所述验证签名哈希值匹配的一个原始签名哈希值,则确定所述验证数据的完整性验证成功,得到表示验证成功的验证结果,如果比较确定出所述各区块内均不存在与所述验证签名哈希值匹配的原始签名哈希值,则确定所述验证数据的完整性验证失败,得到表示验证失败的验证结果;

所述服务器将验证结果发送给所述用户终端。

进一步地,所述区块链中存储的所述原始签名哈希值是区块链系统节点根据预设私钥对在预设时间范围内获取到的用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的。

进一步地,所述区块链中每个区块包括头部区域和签名哈希值区域,所述头部区域包括随机值和根签名哈希值,所述签名哈希值区域包括多个初始签名哈希值;

所述根签名哈希值是根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值确定得到的,所述初始签名哈希值是根据所述用户数据的哈希值、为该用户数据设置的电子戳以及发送所述用户数据的用户终端的终端标识进行加密得到的;

如果所述根签名哈希值不满足预设规则,则执行所述根据所述签名哈希值区域中的多个初始签名哈希值和所述随机值计算新的根签名哈希值,直至计算得到的新的根签名哈希值满足所述预设规则时,将所述区块存储至区块链中,并确定所述区块的签名哈希值区域中记录的原始签名哈希值。

进一步地,处理器603还用于:

所述用户终端如果检测到用户对所述用户界面上的第二验证需求控件的第二触控操作,则获取与所述第二触控操作对应的第二数据验证请求,并将所述第二数据验证请求发送给服务器,其中,所述第二数据验证请求中携带了验证数据和为该验证数据设置的电子戳;

所述服务器接收所述用户终端发送的第二数据验证请求,并根据预设的哈希算法确定所述验证数据和为该验证数据设置的电子戳的验证根哈希值;

所述服务器将所述验证根哈希值发送给第三方认证中心进行验证,并将所述第三方认证中心返回的验证结果发送给所述用户终端。

进一步地,所述第三方认证中心中存储了至少一个服务器的用户数据的原始根哈希值,所述原始根哈希值是根据预设时间范围内从各服务器中获取到的用户数据的哈希值确定得到的。

在本发明实施例中,用户终端在检测到用户对用户界面上的第一验证需求控件的第一触控操作时,将与所述第一触控操作对应的第一数据验证请求发送给服务器,其中,所述第一数据验证请求中携带了验证数据、电子戳和终端标识;所述服务器根据预设的哈希算法确定所述验证数据、电子戳和终端标识的验证哈希值,并根据预设私钥对所述验证哈希值进行加密,得到验证签名哈希值;所述服务器将所述验证签名哈希值与区块链中的原始签名哈希值进行对比验证,并将验证结果发送给所述用户终端。通过这种实施方式,不仅可以确定数据的完整性,还可以确定向服务器发送数据的用户终端的准确性,从而提高数据校验的有效性和准确性。

在本发明的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例图3或图4中描述的数据签名认证方法方式,也可实现图5或图6所述本发明所对应实施例的数据签名认证装置,在此不再赘述。

所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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