时间域验证方法及装置与流程

文档序号:29711140发布日期:2022-04-16 17:26阅读:115来源:国知局
时间域验证方法及装置与流程

1.本说明书实施例涉及信息技术领域,特别涉及一种时间域验证方法及装置。


背景技术:

2.在中心化的数据库服务方以区块链式的账本对外提供服务时,账本中记录了相关用户所需要保存的相关数据记录。如何快速验证某个或某段账本中的可信时间交易本身,在区块链数据库应用场景里需求广泛。目前还没有相近似的在区块链数据库账本上进行可信时间域快速存储与验证的实现方案。


技术实现要素:

3.有鉴于此,本说明书施例提供了一种时间域验证方法。本说明书一个或者多个实施例同时涉及一种时间域验证装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种时间域验证方法,包括:
5.在预设路径库确定目标路径,其中,所述目标路径中携带时间戳数据集;
6.从所述时间戳数据集中,根据待验证时间域确定待验证的可信时间域;
7.对所述待验证的可信时间域进行验证;
8.在所述待验证的可信时间域验证成功的情况下对所述目标路径进行验证;
9.在所述目标路径验证成功的情况下确定所述待验证时间域验证成功。
10.根据本说明书实施例的第二方面,提供了一种时间域验证方法,包括:
11.根据需求确定目标哈希值;
12.根据所述目标哈希值确定时间戳数据集;
13.从所述时间戳数据集,根据待验证时间域确定待验证的可信时间域;
14.对所述待验证的可信时间域进行验证;
15.在所述待验证的可信时间域验证成功的情况下确定所述目标哈希值验证成功;
16.在所述目标哈希值验证成功的情况下确定所述待验证时间域验证成功。
17.根据本说明书实施例的第三方面,提供了一种时间域验证装置,包括:
18.路径确定模块,被配置为在预设路径库确定目标路径,其中,所述目标路径中携带时间戳数据集;
19.可信时间域确定模块,被配置为从所述时间戳数据集中,根据待验证时间域确定待验证的可信时间域;
20.可信时间域验证模块,被配置为对所述待验证的可信时间域进行验证;
21.路径验证模块,被配置为在所述待验证的可信时间域验证成功的情况下对所述目标路径进行验证;
22.验证结果确定模块,被配置为在所述目标路径验证成功的情况下确定所述待验证时间域验证成功。
23.根据本说明书实施例的第四方面,提供了一种时间域验证装置,包括:
24.需求确定模块,被配置为根据需求确定目标哈希值;
25.数据集确定模块,被配置为根据所述目标哈希值确定时间戳数据集;
26.可信时间域确定模块,被配置为从时间戳数据集中,根据待验证时间域确定待验证的可信时间域;
27.可信时间域验证模块,被配置为对所述待验证的可信时间域进行验证;
28.目标哈希值验证模块,被配置为在所述待验证的可信时间域验证成功的情况下确定所述目标哈希值验证成功;
29.验证结果确定模块,被配置为在所述目标哈希值验证成功的情况下确定所述待验证时间域验证成功。
30.根据本说明书实施例的第五方面,提供了一种计算设备,包括:
31.存储器和处理器;
32.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,
33.根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述时间域验证方法的步骤。
34.根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求所述时间域验证方法的步骤。
35.本说明书实施例提供的时间域验证方法,包括在预设路径库确定目标路径,其中,目标路径中携带时间戳数据集,从时间戳数据集中,根据待验证时间域确定待验证的可信时间域,对待验证的可信时间域进行验证,在待验证的可信时间域验证成功的情况下对目标路径进行验证,在目标路径验证成功的情况下确定待验证时间域验证成功。根据待验证时间域确定对应的可信时间域,对可信时间域进行验证,在可信时间域验证成功时确定待验证时间域验证成功,可以实现对任意需求的待验证时间域进行验证的方案,并且验证的速度较快,提高了效率。
附图说明
36.图1是本说明书一个实施例提供的一种时间域验证方法的流程图;
37.图2是本说明书一个实施例提供的一种时间域验证方法的架构图;
38.图3是本说明书一个实施例提供的一种时间域验证方法的另一流程图;
39.图4是本说明书一个实施例提供的一种时间域验证装置的示意图;
40.图5是本说明书一个实施例提供的另一种时间域验证方法的流程图;
41.图6是本说明书一个实施例提供的另一种时间域验证装置的示意图;
42.图7是本说明书一个实施例提供的一种计算设备的框图。
具体实施方式
43.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
44.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
45.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
46.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
47.可信账本数据库(ledgerdb)是在中心化基础上,提供自然时间上强审计功能(不可抵赖、不可篡改)的、密码学快速可验证的账本数据库服务。
48.时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。
49.默克尔树是一种树结构,能够是二叉树,也能够是多叉树。默克尔树叶子节点的值是数据项的内容或者是数据项的哈希值,非叶子节点的值根据其孩子节点的信息。
50.默克尔压缩前缀树(merkle patricia tree),结合了字典树和默克尔树的优点,在压缩字典树中根节点是空的,而默克尔压缩前缀树可以在根节点保存整棵树的哈希校验和,而校验和的生成则是采用了和默克尔树生成一致的方式。
51.哈希值,即hash值,是通过对文件内容进行加密运算得到的一组二进制值,主要用途是用于文件校验或签名。
52.md5信息摘要算法(md5 message-digest algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
53.在本说明书中,提供了一种时间域验证方法,本说明书同时涉及一种时间域验证装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
54.图1示出了根据本说明书一个实施例提供的一种时间域验证方法的流程图,具体包括以下步骤。
55.步骤102:在预设路径库确定目标路径,其中,所述目标路径中携带时间戳数据集。
56.其中,预设路径库可以为预先建立好的路径数据库,路径数据库包括多个种类的数据的路径,可以通过这些路径找到对应的数据,路径数据库的形式可以为哈希树结构,目标路径可以为需要查找的目标数据的路径,在查找目标数据时,先获得目标数据的目标路径,根据目标路径再查找,时间戳数据集可以为包含有时间戳的数据集合,该数据集合的形式可以为哈希树结构。
57.在实际应用中,可信账本数据库中可以包括交易发生的时间戳、交易的类型、交易者的识别码等类型的数据,每一种类型的数据可以通过路径库进行关联,当需要查找某一
种类型的数据时,首先要得到该类型的数据的在路径库中的路径。
58.例如,我们需要对一个购物网站的交易时间进行验证,就需要得到关于交易时间的数据,即,需要得到时间戳数据集,获得时间戳数据集的路径的标识,再根据标识在路径库中查找到时间戳数据集的路径。
59.在一种可实现实施例中,在查找目标路径时,是根据标识字符串确定的,具体实现方式如下所述:
60.所述在预设路径库确定目标路径,包括:
61.根据需求属性确定标识字符串;
62.根据所述标识字符串中的字符的顺序在所述路径库中逐级确定路径节点,形成所述目标路径。
63.其中,需求属性可以为要进行查找的数据的类型,标识字符串可以为将时间戳数据集的名称通过加密算法生成的字符串,字符串中的字符可以为每一级路径的标识。
64.在实际应用中,参见图2,图2是本说明书一个实施例提供的一种时间域验证方法的架构图,图2中的树1为默克尔压缩前缀树,树1是路径库对应的数据结构,图2中的树2为默克尔树,树2为时间戳数据集对应的数据结构。其中,根节点(root)是指树1的根节点,节点1—节点7(node1—node7)是指树1的7个子节点。根据标识字符串中的字符在默克尔压缩前缀树中确定路径节点。
65.例如,时间戳数据集的路径的名称为“tsa_timestamp”,使用md5信息摘要算法对“tsa_timestamp”进行计算得到字符串:3359fd16,通过字符串其中的“3”、“3”、“5”、“9fd16”逐级向下查找即可得到时间戳数据集。
66.需要说明的是,在对时间戳数据集的名称进行计算得到标识字符串时,不仅可以使用md5信息摘要算法,还可以使用sha256算法,本说明书实施例不进行限定,能达到对时间戳数据集的名称进行计算得到标识字符串即可。
67.本说明书实施例使用预先建立的路径库,根据标识字符串中的字符在路径库中查找目标路径,可以快速找到时间戳数据集,使得查找效率提升。
68.步骤104:从所述时间戳数据集中,根据待验证时间域确定待验证的可信时间域。
69.其中,待验证时间域可以为需要验证的交易时间区间,待验证可信时间域可以为在可信账本数据库中根据待验证时间域确定的多个可信时间戳。
70.在实际应用中,对需求中的任意一段时间段中的交易进行验证,首先要根据需求中的时间段找到对应的包含该时间段的可信时间域,可信时间域是可以被验证的,可信时间域可以根据两个可信时间戳确定,所以首先要找到确定可信时间域的两个时间戳。
71.例如,时间戳数据集的数据结构为默克尔树,时间戳数据集中的可信时间戳可以为顺序排列,在时间戳数据集的默克尔树中查找待验证时间域对应的可信时间戳,将对应的可信时间戳组成可信时间域。
72.在一种可实现实施例中,可以通过待验证时间域的两个端点确定可信时间域的两端的可信时间戳,具体实现方式如下所述:
73.所述从所述时间戳数据集中,根据待验证时间域确定待验证的可信时间域,包括:
74.从所述时间戳数据集中,根据所述待验证时间域确定起始可信时间戳和终止可信时间戳;
75.基于所述起始可信时间戳和所述终止可信时间戳确定所述待验证可信时间域。
76.其中,起始可信时间戳可以为可信时间域的开始的可信时间戳,终止可信时间戳可以为可信时间域的截止的可信时间戳。
77.沿用上例,待验证的时间域为ta—tb,在默克尔树中根据ta可以查找到起始可信时间戳ta1,根据tb查找到终止可信时间戳tb1,从起始可信时间戳开始至终止可信时间戳为可信时间域,即,可信时间域为:ta1—tb1。
78.另一种实现实施例中,查找起始可信时间戳和终止可信时间戳是根据待验证时间戳的两个锚点确定的,具体实现方式如下所述:
79.根据所述待验证时间域确定起始可信时间戳和终止可信时间戳,包括:
80.获取所述待验证时间域的起始锚点和终止锚点;
81.从所述时间戳数据集中查找到在所述起始锚点的时间之前的一个可信时间戳确定为所述起始可信时间戳;
82.从所述时间戳数据集中查找到在所述终止锚点的时间之后的一个可信时间戳确定为所述终止可信时间戳。
83.其中,起始锚点可以是待验证时间域的开始时间,终止锚点可以是待验证时间域的截止时间。
84.沿用上例,在查找起始可信时间戳ta1时,在时间戳数据集中找到在ta之前的可信时间戳ta1,在查找可信时间戳tb1时,在时间戳数据集中找到在tb之前的可信时间戳tb1,例如,在ta为2:00、tb为3:00的情况下,时间戳数据集中在2:00之前最近的可信时间戳为1:55,则将1:55确定为ta1,时间戳数据集中在3:00之后最近的可信时间戳为3:25,则将3:25确定为tb1。
85.本说明书实施例将可信时间戳顺序排列,可以在短时间内基于待验证时间域查找到可信时间域的两个可信时间戳,提高了可信时间域的查找速度。
86.步骤106:对所述待验证的可信时间域进行验证。
87.在实际应用中,对可信时间域进行验证就是要验证可信时间域没有被篡改过,验证可信时间域没有被篡改过也就是验证可信时间域中的可信时间戳未被篡改过。
88.在一种可实现实施例中,对待验证的可信时间域进行验证可以使用数据结构的验证能力,具体实现方式如下所述:
89.所述对所述待验证的可信时间域进行验证,包括:
90.根据哈希树,对所述待验证的可信时间域中的可信时间戳进行验证。
91.例如,哈希树为默克尔树,在可信时间域中包括8个可信时间戳,使用默克尔树的验证能力对这8个可信时间戳分别进行验证,在8个可信时间戳验证成功时,待验证的可信时间域也就确定为验证成功。
92.进一步地,在一种可实现实施例中,在哈希树中根据可信时间戳的哈希值进行验证,具体实现方式如下所述:
93.所述根据哈希树,对所述待验证的可信时间域中的可信时间戳进行验证,包括:
94.基于所述哈希树的验证规则,根据所述待验证的可信时间域中的可信时间戳的哈希值进行验证;
95.其中,所述哈希树中的叶子节点包括所述可信时间戳的记录哈希值。
96.沿用上例,默克尔树的8个叶子节点映射了待验证的可信时间域中的8个可信时间戳的哈希值,计算可信时间戳的哈希值并根据默克尔树的结构向上计算直至默克尔树的根节点,在根节点的哈希运算的计算值与默克尔树中的根节点的记录哈希值相同的情况下,确定可信时间域验证成功。
97.另一种可实现实施例中,根据默克尔树的验证能力进行对可信时间戳进行验证,具体实现方式如下所述:
98.所述基于所述哈希树的验证规则,根据所述待验证的可信时间域中的可信时间戳的哈希值进行验证,包括:
99.对所述可信时间戳进行哈希运算得到第一验证哈希值;
100.所述第一验证哈希值与所述叶子节点的记录哈希值相同的情况下,对所述第一验证哈希值和所述叶子节点的兄弟节点的记录哈希值进行哈希运算生成第二验证哈希值;
101.所述第二验证哈希值与第一父节点的记录哈希值相同的情况下,基于所述第二验证哈希值和所述第一父节点的兄弟节点的记录哈希值,继续执行哈希运算直至得到根验证哈希值,其中,所述第一父节点为所述叶子节点的父节点;
102.在所述哈希树的根节点的记录哈希值与所述根验证哈希值相同的情况下确定所述可信时间戳验证成功。
103.沿用上例,仍以图2中的树2中的8个可信时间戳中的一个可信时间戳为例,对可信时间戳进行哈希运算得到该可信时间戳的哈希值hash1,将哈希值hash1与叶子节点1中的记录哈希值hasha进行对比,当hash1和hasha相同的情况下,获取叶子节点1的兄弟节点2的记录哈希值hashb,将hasha和hashb一同进行哈希运算得到hash2,当hash2和节点21中的验证哈希值hashc相同的情况下,获取节点22的验证哈希值hashd,将hashc和hashd一同进行哈希运算得到验证哈希值hash3,获取节点32的记录哈希值hashe,将hash3与hashe进行哈希运算得到根验证哈希值hash4,将hash4与根节点41的记录哈希值hashf进行比较,在hash4与根节点41的记录哈希值hashf相同的情况下,确定该可信时间戳验证成功。
104.本说明书实施例使用默克尔树的数据结构对可信时间域中的可信时间戳进行验证,利用默克尔树的验证能力提高了验证的速度,提高了验证的效率。
105.步骤108:在所述待验证的可信时间域验证成功的情况下对所述目标路径进行验证。
106.在实际应用中,在可信时间域验证成功的情况下,还需要保证该可信时间域对应的目标路径是未被篡改过的,在可信时间域验证成功以及目标路径验证成功的情况下,可以确定待验证时间域没有被修改过。
107.在一种可实现实施例中,对目标路径进行验证可以使用数据结构的验证能力,具体实现方式如下所述:
108.所述对所述目标路径进行验证,包括:
109.根据索引树和所述哈希树,对所述目标路径进行验证。
110.其中,索引树可以为路径库映射的树结构。
111.具体的,根据索引树和所述哈希树,对所述目标路径进行验证,可以理解为,首先对哈希树进行验证,在哈希树验证成功(如计算值和记录值相同)的情况下,通过哈希树的根节点对索引树进行验证,由于索引树是路径库映射,那么对索引树进行验证即是对目标
路径进行验证。因此,通过哈希树和索引树可以实现对目标路径的准确验证。
112.具体实施时,根据索引树和哈希树,对目标路径进行验证的具体实现方式如下所述:
113.所述根据索引树和所述哈希树,对所述目标路径进行验证,包括:
114.基于所述索引树的验证规则,根据所述哈希树的根节点的记录哈希值对所述目标路径进行验证;
115.其中,所述索引树的分支节点包括所述根节点与所述当前路径标识的共同哈希值。
116.具体地,分支节点为索引树包含哈希树的信息的节点,且分支节点没有子节点,当前路径标识为哈希树的根节点对应的路径节点的标识字符串。
117.例如,参见图2,索引树为默克尔压缩前缀树,索引树的节点6(node6)可以存储的是键值对(key-value),其中,“9fd16”为键(key),哈希树的根节点为值(value),根据键值对的哈希值对目标路径进行验证,直至根节点(node1)被成功验证。
118.实际应用中,基于索引树的验证规则,根据哈希树的根节点的记录哈希值对目标路径进行验证,具体实现方式如下所述:
119.所述基于所述索引树的验证规则,根据所述哈希树的根节点的哈希值进行验证包括:
120.对所述根节点的记录哈希值和所述当前路径标识进行哈希运算得到第三验证哈希值;
121.所述第三验证哈希值与所述共同记录哈希值相同的情况下,根据所述第三验证哈希值和所述分支节点的兄弟节点的哈希值进行哈希运算生成第四验证哈希值;
122.所述第四验证哈希值与第二父节点的哈希值相同的情况下,基于所述第四验证哈希值和所述第二父节点的兄弟节点的哈希值继续执行哈希运算直至得到根验证哈希值,其中,所述第二父节点为所述分支节点的父节点;
123.在所述哈希树的根节点的哈希值与所述根验证哈希值相同的情况下确定所述可信时间戳验证成功。
124.上述实施例中的默克尔压缩前缀树的验证方法与默克尔树的验证方法的原理相同,此处不再赘述。
125.本说明书实施例使用默克尔树的数据结构对可信时间域中的可信时间戳进行验证,以保证可信时间戳没有被更改,在可信时间域验证成功后,又使用默克尔压缩前缀树进行验证,以保证目标路径没有被更改,利用默克尔树的验证能力提高了验证的速度,同时,使用两层验证保证了数据的可靠性。
126.步骤110:在所述目标路径验证成功的情况下确定所述待验证时间域验证成功。
127.在实际应用中,首先根据待验证时间域确定待验证的可信时间域,在可信时间域验证成功的情况下,还需要保证该可信时间域对应的目标路径是未被篡改过的,也就是对目标路径进行验证,在目标路径验证成功的情况下,可以确定可信时间域和可信时间域所在的路径均没有被修改过,又因为可信时间域涵盖了待验证时间域,所以待验证时间域也就验证成功。
128.下述结合附图3,以本说明书提供的时间域验证方法在购物网站的应用为例,对所
述时间域验证方法进行进一步说明。其中,图3是本说明书一个实施例提供的一种时间域验证方法的另一流程图,具体包括以下步骤。
129.步骤302:根据需求属性确定标识字符串。
130.实际应用中,需求可以为:需要对一个购物网站的一段交易时间进行验证,对一个购物网站的一段交易时间进行验证,该购物网站通过可信账本数据库存储交易时间,需要得到关于交易时间的数据,即,需要得到时间戳数据集,首先获得时间戳数据集的路径的标识字符串,再根据标识字符串在路径库中查找到时间戳数据集的路径,那么需求属性可以为:时间戳。
131.例如,需要对购物网站的一段交易时间进行验证,则从数据库中获取该交易网站的时间戳数据集的路径的名称:“tsa_timestamp”。
132.本说明书实施例可以直接获得预设的标识字符串,使得查找效率提升。
133.步骤304:根据所述标识字符串中的字符的顺序在所述路径库中逐级确定路径节点,形成所述目标路径,其中,所述目标路径中携带时间戳数据集。
134.实际应用中,路径库在进行存储时,是以默克尔压缩前缀树的数据结构进行存储的,时间戳数据集在进行存储时,是以默克尔树的数据结构进行存储的。在查找目标路径时,根据标识字符在默克尔压缩前缀树中逐级确定节点。
135.具体地,可信账本数据库中包括多个种类的数据,将每个种类的数据的路径分配一个名称,时间戳数据集的路径的名称为“tsa_timestamp”,使用md5信息摘要算法对“tsa_timestamp”进行计算得到字符串:3359fd16,该字符串与时间戳数据集的路径已经预先被建立关联,通过字符串其中的“3”、“3”、“5”、“9fd16”在默克尔压缩前缀树中逐级向下查找即可得到一对键值,其中,值也就是时间戳数据集所对应的默克尔树的根节点的哈希值。
136.本说明书实施例使用预先建立的路径库,根据标识字符串中的字符在路径库中查找目标路径,可以快速找到时间戳数据集,使得查找效率提升。
137.步骤306:从所述时间戳数据集中,根据所述待验证时间域确定起始可信时间戳和终止可信时间戳。
138.步骤308:基于所述起始可信时间戳和所述终止可信时间戳确定所述待验证可信时间域。
139.在实际应用中,对购物网站中的任意一段时间段中的交易进行验证,首先要根据交易的的时间段在时间戳数据集中找到包含该时间段的可信时间域,其中,可信时间域是可以进行可信性验证的。并且,可信时间域是可以根据两个可信时间戳确定,那么通过两个可信时间戳对可信时间域进行确定的前提为:要找到确定可信时间域的两个时间戳。
140.具体地,购物网站的待验证的时间域为ta—tb,在默克尔树中根据ta可以查找到起始可信时间戳ta1,根据tb查找到终止可信时间戳tb1,从起始可信时间戳开始至终止可信时间戳为可信时间域,即可信时间域为:ta1—tb1,在查找起始可信时间戳ta1时,在时间戳数据集中找到在ta之前的可信时间戳ta1,在查找可信时间戳tb1时,在时间戳数据集中找到在tb之前的可信时间戳tb1,例如,在ta为2:00、tb为3:00的情况下,时间戳数据集中在2:00之前最近的可信时间戳为1:55,则将1:55确定为ta1,时间戳数据集中在3:00之后最近的可信时间戳为3:25,则将3:25确定为tb1。
141.本说明书实施例将可信时间戳顺序排列,可以在短时间内基于待验证时间域查找
到可信时间域的两个可信时间戳,提高了可信时间域的查找速度。
142.步骤310:基于所述哈希树的验证规则,根据所述待验证的可信时间域中的可信时间戳的哈希值进行验证。
143.在实际应用中,对可信时间域进行验证就是要验证可信时间域没有被篡改过,验证可信时间域没有被篡改过也就是验证可信时间域中的可信时间戳未被篡改过。
144.具体地,哈希树也就是时间戳数据集对应的默克尔树,在可信时间域ta1—tb1中包括4个可信时间戳,使用默克尔树的验证能力对这4个可信时间戳中的两端的可信时间戳进行验证,在两端的可信时间戳个可信时间戳验证成功时,待验证的可信时间域也就确定为验证成功,以4个可信时间戳中的一个可信时间戳为例,参见图2,对可信时间戳进行哈希运算得到该可信时间戳的哈希值hash1,将哈希值hash1与叶子节点1中的记录哈希值hasha进行对比,当hash1和hasha相同的情况下,获取叶子节点1的兄弟节点2的记录哈希值hashb,将hasha和hashb一同进行哈希运算得到hash2,当hash2和节点21中的验证哈希值hashc相同的情况下,获取节点22的验证哈希值hashd,将hashc和hashd一同进行哈希运算得到验证哈希值hash3,获取节点32的记录哈希值hashe,将hash3与hashe进行哈希运算得到根验证哈希值hash4,将hash4与根节点41的记录哈希值hashf进行比较,在hash4与根节点41的记录哈希值hashf相同的情况下,确定该可信时间戳验证成功。以上述方法可以仅对叶子节点1和叶子节点4进行哈希值计算以减少计算量,提高计算效率,因为叶子节点2为叶子节点1的兄弟节点,在叶子节点1进行验证时需要用到叶子节点2的哈希值;叶子节点3为叶子节点4的兄弟节点,在叶子节点4进行验证时需要用到叶子节点3的哈希值,当叶子节点1以及叶子节点4验证成功时,也就证明叶子节点2和叶子节点3是可信的,即,2个可信时间戳均验证成功时也就确定可信时间域ta1—tb1验证成功,即,可信时间域ta1—tb1没有被篡改过。
145.本说明书实施例使用默克尔树的数据结构对可信时间域中的可信时间戳进行验证,利用默克尔树的验证能力提高了验证的速度,提高了验证的效率。
146.步骤312:基于所述索引树的验证规则,根据所述哈希树的根节点的记录哈希值对所述目标路径进行验证。
147.步骤314:在所述目标路径验证成功的情况下确定所述待验证时间域验证成功。
148.在实际应用中,在可信时间域验证成功的情况下,还需要保证该可信时间域对应的目标路径是未被篡改过的,在可信时间域验证成功以及目标路径验证成功的情况下,可以确定待验证时间域没有被修改过。
149.具体地,参见图2,索引树也就是路径库对应的默克尔压缩前缀树,索引树的node6节点存储的键值对为:“9fd16”和哈希树的根节点,根据键值对的哈希值对目标路径进行验证,直至根节点node1被成功验证,默克尔压缩前缀树的验证方法与默克尔树的验证方法的原理相同,此处不再赘述。当可信时间域和可信时间域所对应的目标路径均被验证成功的情况下,证明待验证的时间域没有篡改,也就是说,购物网站在待验证的时间域这段时间内发生的交易是可信的。
150.本说明书实施例使用默克尔树的数据结构对可信时间域中的可信时间戳进行验证,以保证可信时间戳没有被更改,在可信时间域验证成功后,又使用默克尔压缩前缀树进行验证,以保证目标路径没有被更改,利用默克尔树的验证能力提高了验证的速度,同时,
使用两层验证保证了数据的可靠性。
151.需要说明的是,时间戳数据集中的数据不仅可以是可信时间戳,还可以是包括可信时间戳的数组,数组的形式可以为[时间戳,时间日志序号],其中,时间日志序号为可信账本数据库中记录可信时间戳的日志记录的标号,在实际应用中,使用本说明书实施例的时间域验证方法对待验证时间域验证成功后,还可以通过ta1和tb1对应的时间日志序号找到可信账本数据库中的时间日志,并通过第三方时间戳系统对时间日志验证真实时间戳和可信时间戳签名是真实有效的,进一步保证了待验证时间域没有被修改。
[0152]
本说明书实施例使用默克尔树的数据结构对可信时间域中的可信时间戳进行验证,以保证可信时间戳没有被更改,在可信时间域验证成功后,又使用默克尔压缩前缀树进行验证,以保证目标路径没有被更改,利用默克尔树的验证能力提高了验证的速度,同时,使用两层验证保证了数据的可靠性。
[0153]
与上述方法实施例相对应,本说明书还提供了时间域验证装置实施例,图4示出了本说明书一个实施例提供的一种时间域验证装置的示意图。如图4所示,该装置包括:
[0154]
路径确定模块402,被配置为在预设路径库确定目标路径,其中,所述目标路径中携带时间戳数据集;
[0155]
可信时间域确定模块404,被配置为从所述时间戳数据集中,根据待验证时间域确定待验证的可信时间域;
[0156]
可信时间域验证模块406,被配置为对所述待验证的可信时间域进行验证;
[0157]
路径验证模块408,被配置为在所述待验证的可信时间域验证成功的情况下对所述目标路径进行验证;
[0158]
验证结果确定模块410,被配置为在所述目标路径验证成功的情况下确定所述待验证时间域验证成功。
[0159]
可选地,所述路径确定模块402,还被配置为:
[0160]
根据需求属性确定标识字符串;
[0161]
根据所述标识字符串中的字符的顺序在所述路径库中逐级确定路径节点,形成所述目标路径。
[0162]
可选地,所述可信时间域确定模块404,还被配置为:
[0163]
从所述时间戳数据集中,根据所述待验证时间域确定起始可信时间戳和终止可信时间戳;
[0164]
基于所述起始可信时间戳和所述终止可信时间戳确定所述待验证可信时间域。
[0165]
可选地,所述可信时间域确定模块404,还被配置为:
[0166]
获取所述待验证时间域的起始锚点和终止锚点;
[0167]
从所述时间戳数据集中查找到在所述起始锚点的时间之前的一个可信时间戳确定为所述起始可信时间戳;
[0168]
从所述时间戳数据集中查找到在所述终止锚点的时间之后的一个可信时间戳确定为所述终止可信时间戳。
[0169]
可选地,可信时间域验证模块406,被配置为:
[0170]
根据哈希树,对所述待验证的可信时间域中的可信时间戳进行验证。
[0171]
可选地,可信时间域验证模块406,被配置为:
[0172]
基于所述哈希树的验证规则,根据所述待验证的可信时间域中的可信时间戳的哈希值进行验证;
[0173]
其中,所述哈希树中的叶子节点包括所述可信时间戳的记录哈希值。
[0174]
可选地,可信时间域验证模块406,被配置为:
[0175]
对所述可信时间戳进行哈希运算得到第一验证哈希值;
[0176]
所述第一验证哈希值与所述叶子节点的记录哈希值相同的情况下,对所述第一验证哈希值和所述叶子节点的兄弟节点的记录哈希值进行哈希运算生成第二验证哈希值;
[0177]
所述第二验证哈希值与第一父节点的记录哈希值相同的情况下,基于所述第二验证哈希值和所述第一父节点的兄弟节点的记录哈希值,继续执行哈希运算直至得到根验证哈希值,其中,所述第一父节点为所述叶子节点的父节点;
[0178]
在所述哈希树的根节点的记录哈希值与所述根验证哈希值相同的情况下确定所述可信时间戳验证成功。
[0179]
可选地,路径验证模块408,被配置为:
[0180]
根据索引树和所述哈希树,对所述目标路径进行验证。
[0181]
可选地,路径验证模块408,被配置为:
[0182]
基于所述索引树的验证规则,根据所述哈希树的根节点的记录哈希值对所述目标路径进行验证;
[0183]
其中,所述索引树的分支节点包括所述根节点与所述当前路径标识的共同哈希值。
[0184]
可选地,路径验证模块408,被配置为:
[0185]
对所述根节点的记录哈希值和所述当前路径标识进行哈希运算得到第三验证哈希值;
[0186]
所述第三验证哈希值与所述共同记录哈希值相同的情况下,根据所述第三验证哈希值和所述分支节点的兄弟节点的哈希值进行哈希运算生成第四验证哈希值;
[0187]
所述第四验证哈希值与第二父节点的哈希值相同的情况下,基于所述第四验证哈希值和所述第二父节点的兄弟节点的哈希值继续执行哈希运算直至得到根验证哈希值,其中,所述第二父节点为所述分支节点的父节点;
[0188]
在所述哈希树的根节点的哈希值与所述根验证哈希值相同的情况下确定所述可信时间戳验证成功。
[0189]
本说明书实施例提供的时间域验证装置,包括路径确定模块,被配置为在预设路径库确定目标路径,其中,目标路径中携带时间戳数据集,可信时间域确定模块,被配置为从时间戳数据集中,根据待验证时间域确定待验证的可信时间域,可信时间域验证模块,被配置为对待验证的可信时间域进行验证,路径验证模块,被配置为在待验证的可信时间域验证成功的情况下对目标路径进行验证,验证结果确定模块,被配置为在目标路径验证成功的情况下确定待验证时间域验证成功。根据待验证时间域确定对应的可信时间域,对可信时间域进行验证,在可信时间域验证成功时确定待验证时间域验证成功,可以实现对任意需求的待验证时间域进行验证的方案,并且验证的速度较快,提高了效率。
[0190]
参见图5,图5是本说明书一个实施例提供的另一种时间域验证方法的流程图,本说明书还提供了另一种时间域验证方法,包括:
[0191]
步骤502,根据需求确定目标哈希值;
[0192]
步骤504,根据所述目标哈希值确定时间戳数据集;
[0193]
步骤506,从所述时间戳数据集,根据待验证时间域确定待验证的可信时间域;
[0194]
步骤508,对所述待验证的可信时间域进行验证;
[0195]
步骤510,在所述待验证的可信时间域验证成功的情况下确定所述目标哈希值验证成功;
[0196]
步骤512,在所述目标哈希值验证成功的情况下确定所述待验证时间域验证成功。
[0197]
本说明书实施例还可以针对没有路径库的数据进行验证,仅使用默克尔树的数据结构对待验证时间域进行验证,利用默克尔树的验证能力提高了验证的速度,提高了验证的效率。
[0198]
参见图6,图6是本说明书一个实施例提供的另一种时间域验证装置的示意图,该时间域验证装置,包括:
[0199]
需求确定模块602,根据需求确定目标哈希值;
[0200]
数据集确定模块604,根据所述目标哈希值确定时间戳数据集;
[0201]
可信时间域确定模块606,被配置为从时间戳数据集中,根据待验证时间域确定待验证的可信时间域;
[0202]
可信时间域验证模块608,被配置为对所述待验证的可信时间域进行验证;
[0203]
目标哈希值验证模块610,被配置为在所述待验证的可信时间域验证成功的情况下确定所述目标哈希值验证成功;
[0204]
验证结果确定模块612,被配置为在所述目标哈希值验证成功的情况下确定所述待验证时间域验证成功。
[0205]
图7示出了根据本说明书一个实施例提供的一种计算设备700的框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
[0206]
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0207]
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0208]
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
[0209]
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述时间域验证方法的步骤。
[0210]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的时间域验证方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述时间域验证方法的技术方案的描述。
[0211]
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,,该计算机可执行指令被处理器执行时实现上述时间域验证方法的步骤。
[0212]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的时间域验证方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述时间域验证方法的技术方案的描述。
[0213]
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述时间域验证方法的步骤。
[0214]
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的时间域验证方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述时间域验证方法的技术方案的描述。
[0215]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0216]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0217]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为根据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
[0218]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0219]
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1