一种数据验证的方法和系统与流程

文档序号:26588541发布日期:2021-09-10 20:07阅读:336来源:国知局
一种数据验证的方法和系统与流程

1.本发明涉及计算机技术领域,尤其涉及一种数据验证的方法和系统。


背景技术:

2.在互联网技术广泛应用的今天,对互联网数据的准确性、安全性、一致性的要求越来越高,因此数据完整性的验证也越来越重要。
3.目前在数据完整性验证的方案中,通常使用针对动态数据的验证方案,但是互联网数据的数据类型除了动态数据还有其他类型的数据(例如静态数据),各个数据类型的数据均需要进行验证,因此,使用单一地针对动态数据的验证方案验证静态数据,存在由于验证过度而造成的计算资源消耗较高、内存占用较大的问题。


技术实现要素:

4.有鉴于此,本发明实施例提供一种数据验证的方法和系统,能够根据接收数据验证请求,基于第一验证模型为静态数据进行数据完整性验证,生成静态验证证明;基于第二验证模型为动态数据进行数据完整性验证,生成动态验证证明;并利用验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果;针对数据类型采用对应的验证模型进行数据完整性验证,提高了验证数据的效率,克服了使用单一验证方案造成的计算资源消耗较高、内存占用较大的问题。
5.为实现上述目的,根据本发明实施例的一个方面,提供了一种数据验证的方法,应用于服务端,其特征在于,包括:接收数据验证请求,所述数据验证请求指示待验证数据的数据类型;针对所述数据类型为静态数据,利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明,并将所述静态验证证明发送给验证服务器;针对所述数据类型为动态数据,利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明,并将所述动态验证证明发送给验证服务器;所述验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果。
6.可选地,所述数据验证的方法,其特征在于,所述数据验证请求进一步指示所述待验证数据包括的一个或多个加密数据块的信息;所述方法进一步包括:根据一个或多个所述加密数据块的信息,查找一个或多个所述加密数据块,将一个或多个所述加密数据块作为所述待验证数据。
7.可选地,所述数据验证的方法,其特征在于,利用第一验证模型对所述待验证数据数据完整性验证,生成静态验证证明,包括:将一个或多个所述加密数据块、所述加密数据块对应的公钥、所述数据验证请求指示的验证标识以及客户端生成的签名标签集合输入所述第一验证模型;获取所述第一验证模型输出的静态验证证明。
8.可选地,所述数据验证的方法,其特征在于,利用第二验证模型对所述待验证数据数据完整性验证,生成动态验证证明,包括:将一个或多个所述加密数据块、所述加密数据块对应的公钥、所述数据验证请求指示的验证标识以及客户端生成的签名标签集合输入所
述第二验证模型;获取所述第二验证模型输出的动态验证证明。
9.可选地,所述数据验证的方法,其特征在于,进一步包括:
10.针对所述待验证数据的数据类型为所述动态数据的情况,进一步接收针对所述待验证数据的更新请求;将所述待验证数据、所述更新请求指示的更新信息、所述待验证数据的辅助信息以及公钥输入预设的验证更新模型,并获取所述验证更新模型输出的版本信息以及更新证明,并将所述更新证明发送给所述验证服务器;所述验证服务器根据接收到的针对所述待验证数据的更新证明以及公钥,验证所述更新证明的有效性;如果验证结果指示所述更新证明有效,针对更新后的待验证数据执行利用第二验证模型对所述待验证数据数据完整性验证的步骤。
11.可选地,所述数据验证的方法,其特征在于,
12.所述第一验证模型为基于bls签名算法的数据完整性证明模型。
13.可选地,所述数据验证的方法,其特征在于,
14.所述第二验证模型为基于多分支树结构的数据完整性证明模型。
15.为实现上述目的,根据本发明实施例的第二方面,提供了一种数据验证的方法,应用于客户端,其特征在于,包括:确定待验证数据以及所述待验证数据的数据类型,其中,所述数据类型为静态数据或者动态数据;为所述待验证数据生成用于指示数据类型的标识信息;发送包括所述标识信息的数据验证请求给服务端,以使所述服务端基于所述标识信息,对所述待验证数据进行数据完整性验证。
16.可选地,所述数据验证的方法,其特征在于,进一步包括:
17.将所述待验证数据划分为一个或多个数据块;对所述一个或多个数据块执行加密操作;将加密的数据块的信息添加到所述数据验证请求。
18.可选地,所述数据验证的方法,其特征在于,进一步包括:
19.对所述一个或多个数据块进行签名,并生成签名标签集合,将所述签名标签集合发送给所述服务端,以使所述服务端基于所述签名标签集合为所述数据块进行数据完整性验证。
20.为实现上述目的,根据本发明实施例的第三方面,提供了一种数据验证的系统,其特征在于,包括:验证服务器和存储服务器;其中,利用所述存储服务器接收数据验证请求,所述数据验证请求指示待验证数据的数据类型;针对所述数据类型为静态数据,所述存储服务器利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明,并将所述静态验证证明发送给所述验证服务器;针对所述数据类型为动态数据,所述存储服务器利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明,并将所述动态验证证明发送给所述验证服务器;所述验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果。
21.可选地,所述数据验证的系统,还包括:一个或多个客户端;其中,利用所述客户端确定待验证数据以及所述待验证数据的数据类型,其中,所述数据类型为静态数据或者动态数据;为所述待验证数据生成用于指示数据类型的标识信息;利用所述客户端发送包括所述标识信息的数据验证请求,以使所述存储服务器和所述验证服务器基于所述标识信息,对所述待验证数据进行数据完整性验证。
22.为实现上述目的,根据本发明实施例的第四方面,提供了一种数据验证的电子设
备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述数据验证的方法中任一所述的方法。
23.为实现上述目的,根据本发明实施例的第五方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述数据验证的方法中任一所述的方法。
24.上述发明中的一个实施例具有如下优点或有益效果:能够根据接收数据验证请求,基于第一验证模型为静态数据进行数据完整性验证,生成静态验证证明;基于第二验证模型为动态数据进行数据完整性验证,生成动态验证证明;并利用验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果;针对数据类型采用对应的验证模型进行数据完整性验证,提高了验证数据的效率;克服了现有的使用单一的动态验证方案(动态验证方案例如为基于二叉树的数据完整性证明模型的验证方案)对各种数据类型进行验证的资源消耗问题;具体地,克服了在利用动态验证方案对静态数据进行验证的情况下,为静态数据建立二叉树结构所造成的非必要的计算资源消耗和内存占用的问题;并克服了在利用动态验证方案对动态数据进行验证的情况下,由于二叉树结构复杂度较高造成的计算资源消耗和内存占用的问题。
25.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
26.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
27.图1是本发明一个实施例提供的一种应用于服务端的数据验证的方法的流程示意图;
28.图2是本发明一个实施例提供的一种应用于客户端的数据验证的流程示意图;
29.图3是本发明一个实施例提供的一种用于数据验证的流程示意图;
30.图4是本发明一个实施例提供的一种数据验证系统的流程示意图;
31.图5是本发明一个实施例提供的一种多分支树结构示意图;
32.图6是本发明实施例可以应用于其中的示例性系统架构图;
33.图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
34.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
35.如图1所示,本发明实施例提供了一种数据验证的方法,该方法可以包括以下步骤:
36.步骤s101:接收数据验证请求,所述数据验证请求指示待验证数据的数据类型。
37.本发明将存储服务器作为接收数据验证请求的服务器为例说明,具体地,存储服务器为存储服务提供方,用于管理一个或多个客户端或服务端所上传的数据,其中包括待验证数据;待验证数据可以存储于存储服务器的存储介质中,可以理解的是,通过存储的地址(例如:磁盘分区标识、目录标识、文件标识)可以定位到待验证的数据;待验证的数据可以是一个或多个数据库文件、或一个或多个其他类型的文件,本发明对待验证数据具体的数据类型和内容不做限定。
38.进一步地,存储服务器接收数据验证请求,以基于数据验证请求执行所存储的待验证数据的数据完整性验证,其中发送数据验证请求的一方可以为验证服务器:验证服务器接收客户端发送的数据验证请求后转发请求给存储服务器,以触发存储服务器执行所存储的待验证数据的数据完整性验证;或者,验证服务器根据客户端所设定的数据验证策略(例如:按照设定时间定时发送)发送数据验证请求给存储服务器以触发存储服务器执行对所存储的待验证数据进行数据完整性验证;发送数据验证请求的一方还可以为客户端:客户端发送数据验证请求给存储服务器,以触发存储服务器执行所存储的待验证数据的数据完整性验证,可以理解的是,客户端同时发送数据验证请求给验证服务器,以使验证服务器对存储服务器针对该数据验证请求执行的数据完整性验证证明加以验证。
39.进一步地,数据验证请求指示待验证数据的数据类型;其中数据类型为动态数据或静态数据,其中,动态数据或静态数据由客户端确定,服务器可以从数据验证请求获取待验证数据的数据类型为静态数据和动态数据;其中,在存储服务器中,可以利用数据标志区分数据为静态数据或动态数据,也可以将静态数据存储于指定的静态数据存储地址,类似地,将动态数据存储于指令的动态数据存储地址,以使存储服务器根据数据验证请求指示待验证数据的数据类型,利用对应于数据类型的验证模型(第一验证模型或第二验证模型)进行数据完整性验证。
40.步骤s102:针对所述数据类型为静态数据,利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明,并将所述静态验证证明发送给验证服务器;针对所述数据类型为动态数据,利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明,并将所述动态验证证明发送给验证服务器。
41.本发明将存储服务器作为执行数据完整性验证、生成对应的验证证明的服务器为例说明,具体地,第一验证模型为基于bls签名算法的数据完整性证明模型。其中,bls为boneh

lynn

shacham签名算法,本发明以数据持有性证明pdp(provable data possession,pdp)为例说明数据完整性证明,本发明将bls

pdp作为基于bls的静态数据持有性证明算法,bls

pdp即为基于bls签名算法的数据完整性证明模型,也即第一验证模型。
42.进一步地,对于静态数据,由于不存在数据动态变更,因此使用第一验证模型(bls

pdp)可以减少系统的计算资源消耗与通信资源消耗,提高数据完整性验证的性能。其中,bls签名算法与rsa签名算法相比,具有签名位数较少的优点,例如bls签名算法的签名位数为160bits,而rsa签名算法的签名位数为1024bits,由此可见bls签名算法与rsa签名算法相比,在很大程度上减少了计算资源的消耗。又根据bls签名算法具有同态的特性,能够将多个签名聚合为一个。因此第一验证模型(bls

pdp)可以使验证过程计算资源消耗相对较少,由此减少了计算资源的消耗。优选地,bls签名算法还可以有效地抵御索引演算攻击。
43.进一步地,针对静态数据,利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明,并将所述静态验证证明发送给验证服务器。由此可见,克服了现有的使用单一的动态验证方案(动态验证方案例如为基于二叉树的数据完整性证明模型的验证方案)对多种数据类型进行验证的资源消耗问题;具体地,克服了在利用动态验证方案对静态数据进行验证的情况下,为静态数据建立二叉树结构所造成的非必要的计算资源消耗和内存占用的问题。
44.第二验证模型为基于多分支树结构的数据完整性证明模型。其中,多分支树结构可以为lbt(large branching tree,lbt);本发明用动态数据持有性证明dpdp(dynamic provable data possession,dpdp)为例说明数据完整性证明,本发明将lbt

dpdp作为基于多分支树结构的数据完整性证明模型,也即第二验证模型。
45.进一步地,针对动态数据,为了提高数据完整性验证的效率,本发明将基于多分支树结构的数据完整性证明模型(lbt

dpdp)作为第二验证模型;目前最常见的dpdp方案通常是基于默克尔树(例如:二叉树)来实现的,通过树形结构重新组织待验证数据,进而进一步实现数据的操作,但是,默克尔树(例如:二叉树)结构在数据规模较大的情况下会导致构建的树结构的深度过大,造成在验证数据完整性时需要遍历数据的认证路径所需的辅助信息过多。因此,本发明用lbt替代默克尔树,通过降低了树结构的深度,提高了动态数据的数据验证性能,因此提高了数据验证的效率。
46.lbt多分支树结构是为了解决默克尔树存在的效率问题而提出的新型树形结构。lbt可以根据实际的场景需求构建树结构对应的分支数量。通过增加分支的数量减少树的深度,使数据验证所需的辅助信息减少,从而在很大程度上降低整个数据验证过程所需的计算资源消耗与通信资源消耗。示例性地,利用一个lbt可以处理n个数据块(例如:插入数据块),相比于默克尔树(例如:二叉树)每次处理2个数据块更加高效,因此相比于默克尔树,利用lbt在处理大规模数据(例如:插入数据)时具有更高的效率。由此可见,通过利用第二验证模型(lbt

dpdp),降低了动态数据完整性验证过程中的通信资源消耗与计算资源消耗。
47.具体地,基于树结构处理数据,例如:插入数据或者删除数据,所消耗的时间复杂度(表示为o(h))都是和树结构的高度成正比的。其中,h是指根节点到叶子节点的最长路径(边数)。lbt与默克尔树相比,除了根节点之外每个节点具有多个兄弟节点,因此,在为相同数量的数据块构建树形结构的情况下,lbt的深度是远小于默克尔树。图5示出了基于lbt的树结构示例,如图5所示,当基于树结构处理数据时,一个数据块对应一个节点,在动态数据完整性验证过程中,需要基于树结构由下向上计算每个数据块的哈希值形成哈希链,在lbt结构中从下到上每个数据块计算出的哈希值h(b)都存储在叶子节点中,通过从下到上计算关联节点的哈希值以得到父节点的哈希值。假设每个层级父节点关联的子节点数量为n,深度为2(如图5中的示意图所示),则对应的节点数为n2,既可以存储n2个数据块的哈希值;如图5所示的示例,根节点用x0表示,根节点关联的子节点x1的值表示为:h(h(b1)||h(b2)||

||h(b
k
));由此可见,在相同的树深度的情况下,lbt能够处理更多的数据块,从而减少了数据验证路径的长度,使辅助信息较大程度地减少,提高了数据完整性验证的效率。
48.即,针对动态数据,所述存储服务器利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明。
49.关于生成静态验证证明的具体描述与步骤s302的描述一致,在此不再赘述;关于生成动态验证证明的具体描述与步骤s307的描述一致,在此不再赘述。
50.步骤s103:所述验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果。
51.具体地,验证服务器可以由第三方提供的用于验证数据完整性的服务器,利用验证服务器可以判断存储服务器所发送的针对静态数据进行数据完整性验证生成的静态验证证明、或针对动态数据进行数据完整性验证生成的动态验证证明是否正确,即利用验证服务器生成完整性验证结果;例如:完整性验证结果可以为1,表示通过完整性验证,说明数据保持完整性;完整性验证结果为0,表示未通过完整性验证,说明数据未保持完整性,即存在数据异常的情况。本发明对完整性验证结果的具体格式和内容不做限定;进一步地,可以将完整性验证结果发送给客户端。
52.如图2所示,本发明实施例提供了一种数据验证的方法,应用于客户端,该方法可以包括以下步骤:
53.步骤s201:确定待验证数据以及所述待验证数据的数据类型,其中,所述数据类型为静态数据或者动态数据;为所述待验证数据生成用于指示数据类型的标识信息。
54.具体地,客户端可以归属于发起验证请求的业务方,业务方利用客户端确定需要进行数据完整性验证的待验证数据,并确定待验证数据是静态数据或动态数据,通过为所述待验证数据生成用于指示数据类型的标识信息,以使服务端(例如存储服务器)通过标识信息区分从客户端接收的待验证数据为静态数据或动态数据。
55.步骤s202:发送包括所述标识信息的数据验证请求,以使所述服务端基于所述标识信息,对所述待验证数据进行数据完整性验证。
56.具体地,客户端在确定待验证数据的内容、待验证数据的数据类型为静态数据或动态数据后,发送包含指示数据类型的标识信息的数据验证请求,在发送数据验证请求给验证服务器的情况下,验证服务器根据客户端的预设策略,将数据验证请求发送给服务端(例如存储服务器)以使服务端(存储服务器、验证服务器)对所述待验证数据进行数据完整性验证;可选地,在发送数据验证请求给存储服务器的情况下,发送包括所述标识信息的数据验证请求以使存储服务器对所述待验证数据进行数据完整性验证。
57.关于利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明;所述利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明的描述、以及验证服务器基于静态验证证明或动态验证证明进行数据完整性验证的描述与步骤s102

步骤s103的描述一致,在此不再赘述。
58.进一步地,客户端对待验证数据进行预处理,例如:将所述待验证数据划分为一个或多个数据块;对所述一个或多个数据块执行加密操作;将加密的数据块的信息添加到所述数据验证请求。
59.具体地,客户端可以利用keygen(1
k
)

(pk,sk)算法为一个或多个数据块执行加密操作,其中,1
k
为安全参数,输出结果一对私钥sk和公钥pk。
60.进一步地,客户端对待验证数据进行预处理,例如:对所述一个或多个数据块进行签名,并生成签名标签集合,将所述签名标签集合发送给服务端(例如存储服务器),以使所述服务端(例如存储服务器、验证服务器)基于所述签名标签集合为所述数据块进行数据完
整性验证。
61.具体地,客户端可以利用tagblock(sk,f)

{t}算法对所述一个或多个数据块进行签名,并生成签名标签集合,其中,tagblock算法由客户端运行以生成对应于待验证数据的元数据t,即同态签名标签集。该算法输入包括私钥sk和数据f,输出结果为元数据t(即签名标签集合),输出结果可以使所述存储服务器基于所述签名标签集合为所述数据块进行数据完整性验证。
62.如图3所示,本发明实施例提供了一种数据验证的流程,该流程可以包括以下步骤;
63.步骤s301:接收数据验证请求,所述数据验证请求指示待验证数据的数据类型。
64.具体地,在数据类型为静态数据的情况下,执行步骤s302

步骤s303对静态数据进行数据完整性验证的流程;在数据类型为动态数据的情况下,执行步骤s304

步骤s308的对动态数据进行数据完整性验证的流程。关于接收数据验证请求,所述数据验证请求指示待验证数据的数据类型的描述与步骤s101的描述一致,在此不再赘述。
65.步骤s302:将一个或多个所述加密数据块、所述加密数据块对应的公钥、所述数据验证请求指示的验证标识以及客户端生成的签名标签集合输入所述第一验证模型;获取所述第一验证模型输出的静态验证证明。
66.具体地,可以通过存储服务器利用第一验证模型(bls

pdp)对应的算法genproof(pk,f',t,chal)

p生成静态验证证明,可以理解的是,genproof包含了第一验证模型(bls

pdp)的具体模型信息,其中,该算法的输入为pk,f',t,chal,f'代表一个或多个所述加密数据块、pk代表加密数据块对应的公钥,chal代表数据验证请求指示的验证标识(例如验证请求)以及客户端生成的签名标签集合t,输出的结果为静态验证证明p;其中,chal可以是验证服务器利用challenge(
·
)

{chal}算法启动的并发送给存储服务器的验证标识;即,将一个或多个所述加密数据块、所述加密数据块对应的公钥、所述数据验证请求指示的验证标识以及客户端生成的签名标签集合输入所述第一验证模型;获取所述第一验证模型输出的静态验证证明。
67.步骤s303:所述验证服务器根据所述静态验证证明,生成完整性验证结果。
68.具体地,存储服务器在生成静态验证证明(例如:表示为p)以后,发送静态验证证明给验证服务器,进一步地验证服务器根据静态验证证明生成完整性验证结果;例如:验证服务器可以利用checkproof(pk,chal,p)

(1,0)算法对存储服务器返回的静态验证证明p进行验证。其中,输入参数为加密数据块对应的公钥pk,数据验证请求指示的验证标识chal(例如验证请求)及静态验证证明p;算法的输出为完整性验证结果"1"或"0","1"表明数据完整,"0"表示数据被破坏。关于完整性验证结果的具体描述与步骤s103的描述一致,在此不再赘述。
69.步骤s304:判断针对动态数据的验证是否为首次验证,如果是,则执行步骤s307;否则执行步骤s305。
70.具体地,针对动态数据的数据验证,判断针对动态数据的验证是否为首次验证,如果是首次执行,则不验证数据更新对应的更新证明的有效性,直接执行步骤s307;否则验证所述更新证明的有效性,执行步骤s305。
71.步骤s305:进一步接收针对所述待验证数据的更新请求;将所述待验证数据、所述
更新请求指示的更新信息、所述待验证数据的辅助信息以及公钥输入预设的验证更新模型,并获取所述验证更新模型输出的版本信息以及更新证明,并将所述更新证明发送给所述验证服务器;所述验证服务器根据接收到的针对所述待验证数据的更新证明以及公钥,验证所述更新证明的有效性。
72.具体地,本发明将存储服务器作为验证更新数据的服务器说明,在待验证数据具有数据更新的情况下,存储服务器将所述待验证数据、所述更新请求指示的更新信息、所述待验证数据的辅助信息以及公钥输入预设的验证更新模型,并获取所述验证更新模型输出的版本信息以及更新证明,例如:存储服务器可以利用update(f,info,ω,pk)

{f',p}作为预设的验证更新模型,以处理接收的待验证数据的更新请求。其中输入参数为:待验证数据f、更新请求指示的更新信息info、待验证数据的辅助信息ω(辅助信息包括在多分支树结构中,各个数据对应的分支节点信息、关联节点的信息等)以及公钥pk,即,将各个信息输入预设的验证更新模型,并获取所述验证更新模型输出的版本信息f'(例如:更新后的最新版本)以及更新证明p,进一步地,利用存储服务器将所述更新证明发送给所述验证服务器。
73.进一步地,验证服务器可以利用verifyupdate(p,pk)

{1,0}算法验证更新证明的有效性,其中,验证服务器根据接收到的针对所述待验证数据的更新证明p以及公钥pk,验证所述更新证明的有效性,并输出验证结果,例如:1代表有效,0代表无效。本发明对更新证明的具体内容和具体格式不做限定。
74.步骤s306:如果验证结果指示所述更新证明有效,针对更新后的待验证数据执行利用第二验证模型对所述待验证数据数据完整性验证的步骤(步骤s307)。
75.步骤s307:将一个或多个所述加密数据块、所述加密数据块对应的公钥、所述数据验证请求指示的验证标识以及客户端生成的签名标签集合输入所述第二验证模型;获取所述第二验证模型输出的动态验证证明。
76.具体地,在验证结果指示所述更新证明有效的情况下,进一步进行数据完整性验证,通过存储服务器利用所述第二验证模型(lbt

dpdp)对应的算法genproof(pk,f',t,chal)

p生成动态验证证明;其中,genproof包含了第二验证模型(lbt

dpdp)的具体模型信息;其中,genproof算法的输入参数包括一个或多个加密数据块f'、加密数据块对应的公钥pk,数据验证请求指示的验证标识chal(例如验证请求)以及客户端生成的签名标签集合t,输出的结果为动态验证证明p;其中,chal可以是验证服务器利用challenge(
·
)

{chal}算法启动的验证请求并发送给存储服务器;即,将一个或多个所述加密数据块、所述加密数据块对应的公钥、所述数据验证请求指示的验证标识以及客户端生成的签名标签集合输入所述第二验证模型;获取所述第二验证模型输出的动态验证证明。
77.步骤s308:所述验证服务器根据所述动态验证证明,生成完整性验证结果。
78.具体地,存储服务器在获取动态验证证明p以后,发送动态验证证明p给验证服务器,验证服务器根据动态验证证明,生成完整性验证结果;例如:验证服务器可以利用checkproof(pk,chal,p)

(1,0)算法对存储服务器返回的动态验证证明p进行验证;输入参数为加密数据块对应的公钥pk,数据验证请求指示的验证标识chal(例如验证请求)及证明p。返回完整性验证结果例如为"1"或"0","1"表明数据完整,"0"表示数据被破坏。关于完整性验证结果的具体描述与步骤s103的描述一致,在此不再赘述。
79.如图4所示,本发明实施例提供了一种数据验证的系统,包括:存储服务器401和验
证服务器402;其中,
80.利用所述存储服务器401接收数据验证请求,所述数据验证请求指示待验证数据的数据类型;
81.针对所述数据类型为静态数据,所述存储服务器401利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明,并将所述静态验证证明发送给所述验证服务器402;
82.针对所述数据类型为动态数据,所述存储服务器401利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明,并将所述动态验证证明发送给所述验证服务器402;
83.所述验证服务器402根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果。
84.可选地,所述数据验证的系统,还包括:一个或多个客户端403;其中,利用所述客户端403确定待验证数据以及所述待验证数据的数据类型,其中,所述数据类型为静态数据或者动态数据;为所述待验证数据生成用于指示数据类型的标识信息;利用所述客户端403发送包括所述标识信息的数据验证请求,以使所述存储服务器401和所述验证服务器402基于所述标识信息,对所述待验证数据进行数据完整性验证。
85.其中,图4所示的示例为客户端发送数据验证请求给验证服务器,验证服务器发送所述数据验证请求给存储服务器以触发数据验证的流程,可以理解的是,也可以由验证服务器触发数据验证流程,关于发送数据验证请求的具体描述与步骤s101的描述一致,在此不再赘述。
86.本发明实施例还提供了一种数据验证的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
87.本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
88.图6示出了可以应用本发明实施例的数据验证的方法或数据验证的装置的示例性系统架构600。
89.如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
90.用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种客户端应用,例如电子商城客户端应用、网页浏览器应用、搜索类应用等。
91.终端设备601、602、603可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
92.服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所使用的客户端提供支持的后台管理服务器(存储服务器、验证服务器)。后台管理服务器可以对接收到的数据验证请求进行处理,并将数据完整性验证结果反馈给终端设备。
93.需要说明的是,本发明实施例所提供的应用于客户端的数据验证的方法一般由终
端设备601、602、603执行,本发明实施例所提供的应用于服务端的数据验证的方法一般由服务器605执行,相应地,数据验证的客户端一般设置于终端设备601、602、603中;数据验证的存储服务器、验证服务器一般设置于多个服务器605中。
94.应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
95.下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
96.如图7所示,计算机系统700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram 703中,还存储有系统700操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
97.以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
98.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本发明的系统中限定的上述功能。
99.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述
的任意合适的组合。
100.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
101.描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中。
102.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收数据验证请求,所述数据验证请求指示待验证数据的数据类型;针对所述数据类型为静态数据,利用第一验证模型对所述待验证数据进行数据完整性验证,生成静态验证证明,并将所述静态验证证明发送给验证服务器;针对所述数据类型为动态数据,利用第二验证模型对所述待验证数据进行数据完整性验证,生成动态验证证明,并将所述动态验证证明发送给验证服务器;所述验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果。
103.本发明的实施例,能够根据接收数据验证请求,基于第一验证模型为静态数据进行数据完整性验证,生成静态验证证明;基于第二验证模型为动态数据进行数据完整性验证,生成动态验证证明;并利用验证服务器根据所述静态验证证明或者所述动态验证证明,生成完整性验证结果;针对数据类型采用对应的验证模型进行数据完整性验证,提高了验证数据的效率;克服了现有的使用单一的动态验证方案(动态验证方案例如为基于二叉树的数据完整性证明模型进行验证)对各种数据类型进行验证的资源消耗问题;具体地,克服了在利用动态验证方案对静态数据进行验证的情况下,为静态数据建立二叉树结构所造成的非必要的计算资源消耗和内存占用的问题;并克服了在利用动态验证方案对动态数据进行验证的情况下,由于二叉树结构复杂度较高造成的计算资源消耗和内存占用的问题。
104.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1