数据验证方法、装置和存储介质



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.根据本公开的另一方面,提供了一种数据验证方法。该方法包括:
37.向第二服务端发送第一数据,第一数据包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集,第一数据为第一服务端欲委托进行交易的数据;
38.接收第二服务端发送的针对第二数据的抽检请求,第二数据包括至少一个第一子集,或者,第二数据包括至少一个第一子集和至少一个第二子集;
39.响应于抽检请求,向第二服务端发送返回信息,返回信息用于第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,第二数据包括的至少一个第一子集的哈希值根据第一数据包括的至少一个第一子集的哈希值确定,在验证通过的情况下,返回信息用于第二服务端根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一服务端的委托。
40.根据本技术实施例,通过将欲委托进行交易的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的抽检需求,对第一子集,或者,第一子集和第二子集进行抽检,实现更详细、更有针对性的委托交易抽检过程。通过使得第一数据包括至少一个第一子集的哈希值,可以实现在简化抽检流程的同时,适应不同数据量的抽检需求,提高抽检的效率。在抽检过程中第二服务端也无法得到第一数据的原始数据。由于是由第二服务端提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据欺骗第二服务端,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据,使得该抽检过程随机化、可信、可管控。
41.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
42.根据本技术实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据
内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的抽检过程。
43.在一种可能的实现方式中,该返回信息包括第三数据,第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
44.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
45.第二服务端根据判断结果对第二数据进行验证。
46.根据本技术实施例,通过判断返回信息包括的第三数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。且上述过程中委托方无法获得第一数据中未被抽检到的数据的原始数据,可以防止第一数据的原始数据被泄露。
47.在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
48.第二服务端根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
49.第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
50.根据本技术实施例,通过根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
51.在一种可能的实现方式中,第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
52.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
53.第二服务端根据判断结果对第二数据进行验证。
54.由此,可以在欲委托进行交易的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
55.在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
56.根据本技术实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中委托方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
57.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
58.根据本技术实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续交易过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数
据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在委托过程中提供虚假数据以应对抽检。
59.在一种可能的实现方式中,第二数据包括至少一个第二子集,返回信息还用于第二服务端根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接受第一服务端的委托。
60.根据本技术实施例,通过第二服务端在第一服务端欲委托进行交易的数据量较小的情况下,对第二子集进行抽检,可以简化在数据量较小时的数据验证流程,提高数据验证的效率。且在此过程中可以第二服务端无法得到第一服务端的原始数据,使得该过程随机化、可信、可管控。
61.根据本公开的一方面,提供了一种数据验证装置。该装置包括:
62.第一接收模块,用于接收第一服务端发送的第一数据,第一数据包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集,第一数据为第一服务端欲委托进行交易的数据;
63.第一发送模块,用于向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,或者,第二数据包括至少一个第一子集和至少一个第二子集;
64.第二接收模块,用于接收第一服务端响应于抽检请求发送的返回信息;
65.验证模块,用于根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证第二数据包括的至少一个第一子集的哈希值根据第一数据包括的至少一个第一子集的哈希值确定。
66.第一确定模块,用于在验证通过的情况下,根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一服务端的委托。
67.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
68.在一种可能的实现方式中,该返回信息包括第三数据,验证模块,用于:
69.在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
70.根据判断结果对第二数据进行验证。
71.在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,验证模块,用于:
72.根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
73.根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
74.在一种可能的实现方式中,根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
75.在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
76.根据判断结果对第二数据进行验证。
77.在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
78.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
79.在一种可能的实现方式中,第二数据包括至少一个第二子集,该装置还包括:
80.第二确定模块,用于根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接受第一服务端的委托。
81.在一种可能的实现方式中,该装置还包括:
82.公布模块,用于将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
83.根据本公开的另一方面,提供了一种数据验证装置。该装置包括:
84.第二发送模块,用于向第二服务端发送第一数据,第一数据包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集,第一数据为第一服务端欲委托进行交易的数据;
85.第三接收模块,用于接收第二服务端发送的针对第二数据的抽检请求,第二数据包括至少一个第一子集,或者,第二数据包括至少一个第一子集和至少一个第二子集;
86.发送模块,用于响应于抽检请求,向第二服务端发送返回信息,返回信息用于第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,第二数据包括的至少一个第一子集的哈希值根据第一数据包括的至少一个第一子集的哈希值确定,在验证通过的情况下,返回信息用于第二服务端根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一服务端的委托。
87.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
88.在一种可能的实现方式中,该返回信息包括第三数据,第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
89.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
90.第二服务端根据判断结果对第二数据进行验证。
91.在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
92.第二服务端根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
93.第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
94.在一种可能的实现方式中,第二服务端根据第四数据和第二数据包括的至少一个
第一子集的哈希值,对第二数据进行验证,包括:
95.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
96.第二服务端根据判断结果对第二数据进行验证。
97.在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
98.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
99.在一种可能的实现方式中,第二数据包括至少一个第二子集,返回信息还用于第二服务端根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接受第一服务端的委托。
100.根据本公开的另一方面,提供了一种数据验证装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
101.根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
102.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
103.根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
104.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
105.图1示出根据本技术一实施例的应用场景的示意图。
106.图2示出根据本技术一实施例的数据验证方法的流程图。
107.图3示出根据本技术一实施例的数据验证方法的流程图。
108.图4示出根据本技术一实施例的数据验证装置的结构图。
109.图5示出根据本技术一实施例的数据验证装置的结构图。
110.图6是根据一示例性实施例示出的一种用于数据验证的装置1900的框图。
具体实施方式
111.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
112.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
113.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
114.当前需要进行数据流通和交易的场景越来越多,而数据的所有者往往没有精力直接进行数据交易,因而需要把数据委托给受托方进行交易,受托方因而代替数据所有者进行交易,并参与收益分配。由于数字商品不同于一般的商品,其具有易复制、交易前不可知等的特殊性,当前的技术手段下,并没有委托方和受托方都信任的委托方式,无法杜绝委托方数据或受托方对数字商品的转售、滥用等行为,因此亟需可信的、可管控的新型技术手段。
115.鉴于此,本技术提供了一种数据验证方法,在该方法中,第一用户(即数据的拥有方)可以将欲委托进行交易的数据分为至少一个第一子集,其中第一子集可包括至少一个第二子集。适应于不同的数据量,数据的信托方(可以称为第二用户)可以对第一数据中的部分数据(即第二数据)进行抽检,通过接收第一用户响应于抽检请求发送的返回信息,可以利用该返回信息,对第二数据进行验证,以防止第一用户隐瞒数据或提供不完整的数据,从而可以确定是否接受第一用户的委托。在此过程中,第一用户无法伪造数据以通过抽检,第二用户也无法获取第一数据中除第二数据以外的其他数据的原始数据,防止了数据被转售、滥用,使得该过程可信、可管控。
116.图1示出根据本技术一实施例的应用场景的示意图。如图1所示,本技术实施例提供的数据验证方法可以用在第一用户欲将其拥有的数据委托第二用户进行数据交易的场景中。第一用户可以理解为拥有欲委托进行交易的数据(第一数据的原始数据)的一方,第二用户可以理解为欲对该欲委托进行交易的数据进行验证以确定是否接受委托的一方,第二用户可以是数据信托平台,也可以是其他第三方机构,本技术对此不作限制。本技术对于欲委托进行交易的数据的具体类型也不作限制,例如可以是标注数据集(即带标注的数据的集合,可用于模型训练等场景)、算法模型代码等。
117.在一种可能的实现方式中,还可以存在不可修改的数据库,该数据库可以设置在由第二用户运营的平台上,该平台也可以是由除第一用户、第二用户外的另一第三方运营的。该数据库可用于公布第一用户或第二用户通过平台上传的相关信息。该信息可以包括委托过程中验证数据时的相关信息以及其他相关过程(例如交易)中的信息,该信息也可以是原信息的哈希值。平台可定时对上述上传的信息进行签名,从而保证其内容一经上传不可篡改,且可溯源。在一种可能的实现方式中,该数据库可以是基于区块链的数据库。
118.第一用户和第二用户还可以拥有自己的公钥和私钥,第一用户、第二用户的公钥和私钥可经过一合法第三方的认证并获得相应的证书,且第一用户、第二用户的认证后的公钥以及相应的证书信息也可被公布在上述数据库中。其中,第一用户和第二用户的公钥可以分别用于对用私钥签名过的文件进行验证,在进行数据委托交易的过程中,第一用户、第二用户也可以利用各自的私钥对相关操作内容进行签名,以防他人篡改,并使得第一用户、第二用户对自身的操作内容不能抵赖。
119.由此,可以保证对欲委托进行交易的数据进行验证的过程、以及进行数据委托交易的过程可信、可溯源。
120.以下,在图1的基础上对本技术实施例的数据验证方法进行详细的介绍,参见图2,
图2示出根据本技术一实施例的数据验证方法的流程图。该方法可用于第二服务端,该第二服务端可应用于上述第二用户,例如第二用户可通过终端设备或服务器实现本实施例的方法。如图2所示,该方法包括:
121.步骤s201,接收第一服务端发送的第一数据。
122.可以由第二用户(即第二服务端)接收第一用户(即第一服务端)发送的第一数据。其中,第一数据可包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集。第一数据可以是第一用户欲委托进行交易的数据。
123.例如,第一用户欲委托进行交易的数据(可称为d)可以被拆分成k项子集(即第一子集),将d拆分后的任一第一子集可以称为doci,i可以表示对应的第一子集的序号,则拆分后d对应的数据集合中可以包括第一子集doc1、doc2、doc3……
dock。本技术对于拆分后的第一子集的数量k不作限定。
124.还可以对这些第一子集进行进一步分层,以便后续委托方(即第二用户)抽检。在一种可能的实现方式中,将各项第一子集拆分后得到的任一第二子集可以称为item
ij
,其中i可表示该第二子集对应的第一子集的序号,j可以表示该第二子集的序号,拆分后doc1例如可以包括第二子集item
11
、item
12
……
item
1n1
,doc2例如可以包括第二子集item
21
、item
22
……
item
2n2
,dock例如可以包括第二子集item
k1
、item
k2
……
item
knk
,其中,n1、n2
……
nk可以表示对应的第一子集中包括的第二子集的数量。在一种可能的实现方式中,每一项第二子集可以表示对应数据d的最小单位,即该第二子集不可再被拆分。
125.可以对欲委托进行交易的数据d中的各第一子集用哈希函数进行压缩,得到各第一子集对应的各哈希值。例如,h(dock)可以表示第一子集dock的哈希值。还可以对完整的欲委托进行交易的数据d利用哈希函数进行压缩得到h(d),第二用户还可以接收第一用户发送的欲委托进行交易的数据的哈希值h(d)。
126.在一种可能的实现方式中,还可以分别对d中的各第一子集和各第二子集进行加密,得到对应的加密后的数据集合。例如,e(dock)可以表示被加密后的第一子集dock,e(item
ij
)可以表示被加密后的第二子集item
ij

127.其中,对数据d中的各子集进行加密的方法可以是由第一用户创建一个主密钥mk,并利用mk分别确定各子集对应的密钥。以下,以对第一子集进行加密为例介绍进行加密的方式:
128.例如,第一用户可以首先确定(可以是随机生成)一个对应第一子集doc1的密钥k(doc1),则k(doc
i+1
)可以是利用主密钥mk对k(doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
129.又例如,第一用户可以先确定各第一子集对应的哈希值h(doci),则第一子集doci对应的密钥k(doci)可以是利用主密钥mk对对应的h(doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
130.上述仅以两个例子对利用mk确定第一子集对应的密钥k(doci)的方式进行说明,本技术对于利用mk确定第一子集对应的密钥的方式不作限制,只要根据mk或其他很少量的密钥即可确定全部第一子集对应的密钥,且他人即使知道任意项数第一子集对应的密钥,也无法推理出其他第一子集对应的密钥即可。对第二子集进行加密的方式同理。
131.由此,可以实现各项子集对应的密钥之间的相对独立性,即第二用户即使后续在
抽检过程中得到了抽检部分的子集的密钥,也无法解密除抽检部分之外其他子集的数据,从而可以有效地防止数据泄露。
132.步骤s202,向第一服务端发送针对第二数据的抽检请求。
133.其中,第二数据包括至少一个第一子集,或者,第二数据可以包括至少一个第一子集和至少一个第二子集。
134.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下(即第一数据的数据量较大时),第二数据可以包括至少一个第一子集和至少一个第二子集,也就是说,可以分别对第一子集和第二子集进行抽检。
135.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,抽检请求还可以包括第一抽检请求和第二抽检请求。其中,第一抽检请求对应的第二数据可包括至少一个第二子集,第二抽检请求对应的第二数据可包括至少一个第一子集。第二用户可先向第一用户发送第一抽检请求,第二用户可根据第一用户的返回信息,确定第二抽检请求对应的第二数据包括的第一子集。例如,可以根据第一用户返回的第二子集的内容,评估第二子集对应的各第一子集的重要程度,并根据各第一子集的重要程度,选择其中预定数量的第一子集作为第二抽检请求中第二数据包括的内容,再向第一用户发送第二抽检请求。由此,可以实现对数据更为详细、更有目的性的抽检。
136.需要说明的是,也可以先向第一用户发送第二抽检请求,根据第一用户的返回信息,确定第一抽检请求,再向第一用户发送第一抽检请求,本技术对此不作限制。
137.在一种可能的实现方式中,第二数据还可以包括仅包括第一子集,即第二用户可仅对至少一个第一子集进行抽检。
138.在第一数据包括的第一子集的数量小于预定阈值的情况下,例如第一数据中仅包括一个第一子集或包括较少的第一子集时,第二数据可以仅包括第二子集,即第二用户可仅对第一子集中的至少一个第二子集进行抽检。
139.第二数据可以包括第一子集中的预定比例子集,或者,包括第一子集中的预定比例的子集和第二子集中的预定比例的子集,在一种可能的实现方式中,第二数据也可以包括第二子集中的预定比例子集。该比例可由第二用户与第一用户预先约定。该抽检请求可以被公布至上述数据库中。
140.需要说明的是,该预定比例越大,第一用户提供的数据的可能性就越小。假定第一用户把数据分为300项子集(例如第一子集和第二子集共计300项,或者第一子集为300项,或者第二子集为300项),其中有30项(10%)为数据,如果第二用户选择10%的数据(即其中30项子集,例如第一子集和第二子集共计30项,或者第一子集30项,或者第二子集30项)进行检查,第一用户提供的数据而不被发现的概率只有大约3%。
141.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置可用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
142.在这种情况下,在步骤s201中,第二用户接收的第一数据中数据对应的第一子集和/或第二子集的排列顺序可以与原始数据中子集的排列顺序一致。
143.对于第一子集,选取的数据位置可以是(a1,a2
……
am),可以分别表示k项第一子集中的m项子集的位置。对于第二子集,选取的数据位置可以是(bi1,bi2
……
bip),可以分
别表示序号为i的第一子集对应的第二子集中的p项子集在该第一子集中的位置(p小于该第二子集中包括的子集的总数)。
144.在一种可能的实现方式中,第二用户在提出抽样请求时还可以将选取的数据位置和该数据位置对应的各子集的哈希值公布在上述数据库中。
145.通过选取数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与步骤s201中第二用户接收的对应位置的哈希值是否一致,从而可以防止第一用户在抽检前后对第一数据中的部分或全部数据进行替换,使得第一用户无法在抽检过程中提供虚假数据以欺骗第二用户。
146.步骤s203,接收第一服务端响应于抽检请求发送的返回信息。
147.可以由第二用户接收第一用户发送的返回信息。该返回信息可以包括第三数据或与第二数据对应的密钥,可参见步骤s204中的详细叙述。
148.步骤s204,根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
149.其中,第二数据包括的至少一个第一子集的哈希值可以根据第一数据包括的至少一个第一子集的哈希值确定。在一种可能的实现方式中,该返回信息可包括第三数据,该步骤s204,可包括:
150.在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;根据判断结果对第二数据进行验证。
151.其中,第三数据可以是指第一用户返回的与抽样请求相对应的数据。该数据可以是原始数据,第二数据的哈希值可以是步骤s201中第二用户接收的第一数据中、与第二数据相对应的各哈希值。从而,第二用户可以根据第三数据计算出该第三数据的哈希值,并判断该第三数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在数据量较大(即第一子集的数量大于预定阈值)的情况下,若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对欲委托进行交易的数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。在此过程中对第一子集进行抽检时可以整体验证第三数据中第一子集的哈希值是否与步骤s201中第二用户接收的哈希值相符。
152.在一种可能的实现方式中,在步骤s201中第一用户发送的第一数据可以包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,该步骤s204,可包括:
153.根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
154.其中,该密钥可包括与第二数据中的第一子集和/或第二子集对应的至少一个密
钥,不同的第一子集和第二子集对应的密钥不同。
155.在第一数据包括的第一子集的数量小于预定阈值的情况下,抽检请求中例如可以包括第二用户选择查看第二子集e(item
ij
)的数据内容,第一用户发送的返回信息可以包括第二子集e(item
ij
)对应的密钥k(item
ij
),第二用户则可以利用密钥打开加密的第二子集,查看第二子集item
ij
里的数据内容,即得到第四数据,从而可以根据第四数据对第二数据进行验证,以确定是否接收第一用户的委托。
156.可选地,根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,还可以包括:
157.在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;根据判断结果对第二数据进行验证。
158.在数据量较大(即第一子集的数量大于预定阈值)的情况下,第二用户若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对第一数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。
159.例如,在第一数据包括的第一子集的数量大于预定阈值的情况下,可以包括第一抽检请求和第二抽检请求,第一抽检请求中例如可以包括第二用户选择查看第二子集e(item
ij
)的数据内容,第一用户发送的返回信息可以包括加密后的第二子集e(item
ij
)对应的密钥k(item
ij
),第二用户则可以利用密钥打开加密的第二子集,查看第二子集item
ij
里的数据内容,可以根据第二子集item
ij
里的数据内容确定第二抽检请求。第二抽检请求中例如可以包括第二用户选择查看第一子集e(doci)的数据内容,第一用户发送的返回信息可以包括加密后的第一子集e(doci)对应的密钥k((doci),第二用户则可以利用密钥打开加密的第一子集,查看第一子集doci里的数据内容,即得到第四数据,从而可以判断第四数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在此过程中对第一子集进行抽检时可以整体验证第四数据中第一子集的哈希值是否与步骤s201中第二用户接收的哈希值相符,在进行抽检时可以进行更为详细更有目的性的检查。
160.步骤s205,在验证通过的情况下,根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一服务端的委托。
161.在第一数据包括的第一子集的数量大于预定阈值的情况下,根据步骤s204,可以对部分第一子集和部分第二子集进行抽检,在验证通过的情况下,可以根据返回信息得到抽检的第一子集和第二子集的内容,根据数据的内容确定是否接受第一用户的委托。可以对部分第一子集进行抽检,在验证通过的情况下,可以根据返回信息得到抽检的第一子集的内容,根据数据的内容确定是否接受第一用户的委托。例如,可以根据返回信息中指示的数据是否合法合规、数据的经济价值大小等,确定是否接收第一用户的委托。
162.根据本技术实施例,通过将欲委托进行交易的数据分为至少一个第一子集,并将
第一子集分为至少一个第二子集,可以适应不同数据量的抽检需求,对第一子集,或者,第一子集和第二子集进行抽检,实现更详细、更有针对性的委托交易抽检过程。通过使得第一数据包括至少一个第一子集的哈希值,可以实现在简化抽检流程的同时,适应不同数据量的抽检需求,提高抽检的效率。在抽检过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一用户无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据欺骗第二用户,由于由第一用户先发送第一数据,再进行抽检,可以防止第一用户在返回信息中故意伪造数据从而掩盖原本的数据,使得该抽检过程随机化、可信、可管控。
163.在一种可能的实现方式中,第二数据还可以包括至少一个第二子集,该方法还包括:
164.根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接述第一用户的委托。
165.其中,在第一数据包括的第一子集的数量小于预定阈值的情况下,根据步骤s204,可以对部分第二子集进行抽检,在验证通过的情况下,可以根据返回信息得到抽检的第二子集的内容,根据数据的内容确定是否接受第一用户的委托。例如,可以根据返回信息中指示的数据是否合法合规、数据的经济价值大小等,确定是否接收第一用户的委托。
166.根据本技术实施例,通过在第一用户欲委托进行交易的数据量较小的情况下,对第二子集进行抽检,可以简化在数据量较小时的数据验证流程,提高数据验证的效率。且在此过程中可以第二用户无法得到第一用户的原始数据,使得该过程随机化、可信、可管控。
167.在一种可能的实现方式中,该方法还包括:
168.步骤s206,将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
169.其中,可以由第二用户将上述内容公布至不可修改的数据库中,也可以由第一用户公布,本技术对此不作限制。该数据库也可以是基于区块链的数据库。
170.除上述内容以外,还可以将委托交易过程中的其他数据公布至数据库中,本技术对此也不作限制。
171.由此,在出现争议时可以利用公布至数据库中的信息对相关过程进行溯源,从而可以实现可溯源的数据验证过程。
172.参见图3,示出根据本技术一实施例的数据验证方法的流程图。该方法可用于第一服务端,该第一服务端可以应用于上述第一用户,例如第一用户可通过终端设备实现该实施例的方法。如图3所示,该方法包括:
173.步骤s301,向第二服务端发送第一数据。
174.其中,第一数据可包括至少一个第一子集的哈希值,第一子集可包括至少一个第二子集。第一数据可以是第一用户欲委托进行交易的数据。
175.例如,第一用户欲委托进行交易的数据(可称为d)可以被拆分成k项子集(即第一子集),将d拆分后的任一第一子集可以称为doci,i可以表示对应的第一子集的序号,则拆分后d对应的数据集合中可以包括第一子集doc1、doc2、doc3……
dock。本技术对于拆分后的第一子集的数量k不作限定。
176.还可以对这些第一子集进行进一步分层,以便后续委托方(即第二用户)抽检。在一种可能的实现方式中,将各项第一子集拆分后得到的任一第二子集可以称为item
ij
,其中i可表示该第二子集对应的第一子集的序号,j可以表示该第二子集的序号,拆分后doc1例如可以包括第二子集item
11
、item
12
……
item
1n1
,doc2例如可以包括第二子集item
21
、item
22
……
item
2n2
,dock例如可以包括第二子集item
k1
、item
k2
……
item
knk
,其中,n1、n2
……
nk可以表示对应的第一子集中包括的第二子集的数量。在一种可能的实现方式中,每一项第二子集可以表示对应数据d的最小单位,即该第二子集不可再被拆分。
177.可以对欲委托进行交易的数据d中的各第一子集用哈希函数进行压缩,得到各第一子集对应的各哈希值。例如,h(dock)可以表示第一子集dock的哈希值。还可以对完整的欲委托进行交易的数据d利用哈希函数进行压缩得到h(d),第二用户还可以接收第一用户发送的欲委托进行交易的数据的哈希值h(d)。
178.在一种可能的实现方式中,还可以分别对d中的各第一子集和各第二子集进行加密,得到对应的加密后的数据集合。例如,e(dock)可以表示被加密后的第一子集dock,e(item
ij
)可以表示被加密后的第二子集item
ij

179.其中,对数据d中的各子集进行加密的方法可以是由第一用户创建一个主密钥mk,并利用mk分别确定各子集对应的密钥。以下,以对第一子集进行加密为例介绍进行加密的方式:
180.例如,第一用户可以首先确定(可以是随机生成)一个对应第一子集doc1的密钥k(doc1),则k(doc
i+1
)可以是利用主密钥mk对k(doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
181.又例如,第一用户可以先确定各第一子集对应的哈希值h(doci),则第一子集doci对应的密钥k(doci)可以是利用主密钥mk对对应的h(doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
182.上述仅以两个例子对利用mk确定第一子集对应的密钥k(doci)的方式进行说明,本技术对于利用mk确定第一子集对应的密钥的方式不作限制,只要根据mk或其他很少量的密钥即可确定全部第一子集对应的密钥,且他人即使知道任意项数第一子集对应的密钥,也无法推理出其他第一子集对应的密钥即可。对第二子集进行加密的方式同理。
183.由此,可以实现各项子集对应的密钥之间的相对独立性,即第二用户即使后续在抽检过程中得到了抽检部分的子集的密钥,也无法解密除抽检部分之外其他子集的数据,从而可以有效地防止数据泄露。
184.步骤s302,接收第二服务端发送的针对第二数据的抽检请求。
185.其中,第二数据可包括至少一个第一子集,或者,第二数据包括至少一个第一子集和至少一个第二子集。
186.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下(即第一数据的数据量较大时),第二数据可以包括至少一个第一子集和至少一个第二子集,也就是说,可以分别对第一子集和第二子集进行抽检。
187.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,抽检请求还可以包括第一抽检请求和第二抽检请求。其中,第一抽检请求对应的第二数据可包括至少一个第二子集,第二抽检请求对应的第二数据可包括至少一个第一子集。
第二用户可先向第一用户发送第一抽检请求,第二用户可根据第一用户的返回信息,确定第二抽检请求对应的第二数据包括的第一子集。例如,可以根据第一用户返回的第二子集的内容,评估第二子集对应的各第一子集的重要程度,并根据各第一子集的重要程度,选择其中预定数量的第一子集作为第二抽检请求中第二数据包括的内容,再向第一用户发送第二抽检请求。由此,可以实现对数据更为详细、更有目的性的抽检。
188.需要说明的是,也可以先向第一用户发送第二抽检请求,根据第一用户的返回信息,确定第一抽检请求,再向第一用户发送第一抽检请求,本技术对此不作限制。
189.在一种可能的实现方式中,第二数据还可以包括仅包括第一子集,即第二用户可仅对至少一个第一子集进行抽检。
190.在第一数据包括的第一子集的数量小于预定阈值的情况下,例如第一数据中仅包括一个第一子集或包括较少的第一子集时,第二数据可以仅包括第二子集,即第二用户可仅对第一子集中的至少一个第二子集进行抽检。
191.第二数据可以包括第一子集中的预定比例子集,或者,包括第一子集中的预定比例的子集和第二子集中的预定比例的子集,在一种可能的实现方式中,第二数据也可以包括第二子集中的预定比例子集。该比例可由第二用户与第一用户预先约定。该抽检请求可以被公布至上述数据库中。
192.需要说明的是,该预定比例越大,第一用户提供的数据的可能性就越小。假定第一用户把数据分为300项子集(例如第一子集和第二子集共计300项,或者第一子集为300项,或者第二子集为300项),其中有30项(10%)为数据,如果第二用户选择10%的数据(即其中30项子集,例如第一子集和第二子集共计30项,或者第一子集30项,或者第二子集30项)进行检查,第一用户提供的数据而不被发现的概率只有大约3%。
193.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置可用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
194.在这种情况下,在步骤s301中,第一用户发送的第一数据中数据对应的第一子集和/或第二子集的排列顺序可以与原始数据中子集的排列顺序一致。
195.对于第一子集,选取的数据位置可以是(a1,a2
……
am),可以分别表示k项第一子集中的m项子集的位置。对于第二子集,选取的数据位置可以是(bi1,bi2
……
bip),可以分别表示序号为i的第一子集对应的第二子集中的p项子集在该第一子集中的位置(p小于该第二子集中包括的子集的总数)。
196.在一种可能的实现方式中,第二用户在提出抽样请求时还可以将选取的数据位置和该数据位置对应的各子集的哈希值公布在上述数据库中。
197.通过选取数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与步骤s301中第一用户发送的对应位置的哈希值是否一致,从而可以防止第一用户在抽检前后对第一数据中的部分或全部数据进行替换,使得第一用户无法在抽检过程中提供虚假数据以欺骗第二用户。
198.步骤s303,响应于抽检请求,向第二服务端发送返回信息。
199.其中,返回信息用于第二服务端根据返回信息和第二数据包括的至少一个第一子
集的哈希值,对第二数据进行验证,第二数据包括的至少一个第一子集的哈希值可以根据第一数据包括的至少一个第一子集的哈希值确定,在验证通过的情况下,返回信息可用于第二服务端根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一用户的委托。在一种可能的实现方式中,该返回信息可包括第三数据,该步骤s303,可包括:
200.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;第二服务端根据判断结果对第二数据进行验证。
201.其中,第三数据可以是指第一用户返回的与抽样请求相对应的数据。该数据可以是原始数据,第二数据的哈希值可以是步骤s301中第一用户发送的第一数据中、与第二数据相对应的各哈希值。从而,第二用户可以根据第三数据计算出该第三数据的哈希值,并判断该第三数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在数据量较大(即第一子集的数量大于预定阈值)的情况下,若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对欲委托进行交易的数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。在此过程中对第一子集进行抽检时可以整体验证第三数据中第一子集的哈希值是否与步骤s301中第一用户发送的哈希值相符。
202.在一种可能的实现方式中,在步骤s301中第一用户发送的第一数据可以包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,该步骤s303,可包括:
203.第二服务端根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
204.其中,该密钥可包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
205.在第一数据包括的第一子集的数量小于预定阈值的情况下,抽检请求中例如可以包括第二用户选择查看第二子集e(item
ij
)的数据内容,第一用户发送的返回信息可以包括第二子集e(item
ij
)对应的密钥k(item
ij
),第二用户则可以利用密钥打开加密的第二子集,查看第二子集item
ij
里的数据内容,即得到第四数据,从而可以根据第四数据对第二数据进行验证,以确定是否接收第一用户的委托。
206.可选地,第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
207.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;第二服务端根据判断结果对第二数据进行验证。
208.在数据量较大(即第一子集的数量大于预定阈值)的情况下,第二用户若仅抽检第
一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对第一数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。
209.例如,在第一数据包括的第一子集的数量大于预定阈值的情况下,可以包括第一抽检请求和第二抽检请求,第一抽检请求中例如可以包括第二用户选择查看第二子集e(item
ij
)的数据内容,第一用户发送的返回信息可以包括加密后的第二子集e(item
ij
)对应的密钥k(item
ij
),第二用户则可以利用密钥打开加密的第二子集,查看第二子集item
ij
里的数据内容,可以根据第二子集item
ij
里的数据内容确定第二抽检请求。第二抽检请求中例如可以包括第二用户选择查看第一子集e(doci)的数据内容,第一用户发送的返回信息可以包括加密后的第一子集e(doci)对应的密钥k((doci),第二用户则可以利用密钥打开加密的第一子集,查看第一子集doci里的数据内容,即得到第四数据,从而可以判断第四数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在此过程中对第一子集进行抽检时可以整体验证第四数据中第一子集的哈希值是否与步骤s301中第一用户发送的哈希值相符,在进行抽检时可以进行更为详细更有目的性的检查。
210.在第一数据包括的第一子集的数量大于预定阈值的情况下,第二用户可以对部分第一子集和部分第二子集进行抽检,在验证通过的情况下,可以根据返回信息得到抽检的第一子集和第二子集的内容,根据数据的内容确定是否接受第一用户的委托。可以对部分第一子集进行抽检,在验证通过的情况下,可以根据返回信息得到抽检的第一子集的内容,根据数据的内容确定是否接受第一用户的委托。例如,可以根据返回信息中指示的数据是否合法合规、数据的经济价值大小等,确定是否接收第一用户的委托。
211.根据本技术实施例,通过将欲委托进行交易的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的抽检需求,对第一子集,或者,第一子集和第二子集进行抽检,实现更详细、更有针对性的委托交易抽检过程。通过使得第一数据包括至少一个第一子集的哈希值,可以实现在简化抽检流程的同时,适应不同数据量的抽检需求,提高抽检的效率。在抽检过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一用户无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据欺骗第二用户,由于由第一用户先发送第一数据,再进行抽检,可以防止第一用户在返回信息中故意伪造数据从而掩盖原本的数据,使得该抽检过程随机化、可信、可管控。
212.在一种可能的实现方式中,第二数据还可以包括至少一个第二子集,返回信息还用于第二服务端根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接受第一用户的委托。
213.其中,在第一数据包括的第一子集的数量小于预定阈值的情况下,第二用户可以对部分第二子集进行抽检,在验证通过的情况下,可以根据返回信息得到抽检的第二子集的内容,根据数据的内容确定是否接受第一用户的委托。例如,可以根据返回信息中指示的数据是否合法合规、数据的经济价值大小等,确定是否接收第一用户的委托。
214.根据本技术实施例,通过第二用户在第一用户欲委托进行交易的数据量较小的情况下,对第二子集进行抽检,可以简化在数据量较小时的数据验证流程,提高数据验证的效率。且在此过程中可以第二用户无法得到第一用户的原始数据,使得该过程随机化、可信、可管控。
215.图4示出根据本技术一实施例的数据验证装置的结构图。该装置可用于第二服务端,该第二服务端可应用于上述第二用户,例如第二用户可通过终端设备或服务器实现本实施例的装置。如图4所示,该装置包括:
216.第一接收模块401,用于接收第一服务端发送的第一数据,第一数据包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集,第一数据为第一服务端欲委托进行交易的数据;
217.第一发送模块402,用于向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,或者,第二数据包括至少一个第一子集和至少一个第二子集;
218.第二接收模块403,用于接收第一服务端响应于抽检请求发送的返回信息;
219.验证模块404,用于根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,第二数据包括的至少一个第一子集的哈希值根据第一数据包括的至少一个第一子集的哈希值确定;
220.第一确定模块405,用于在验证通过的情况下,根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一服务端的委托。
221.根据本技术实施例,通过将欲委托进行交易的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的抽检需求,对第一子集,或者,第一子集和第二子集进行抽检,实现更详细、更有针对性的委托交易抽检过程。通过使得第一数据包括至少一个第一子集的哈希值,可以实现在简化抽检流程的同时,适应不同数据量的抽检需求,提高抽检的效率。在抽检过程中第二服务端也无法得到第一数据的原始数据。由于是由第二服务端提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据欺骗第二服务端,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据,使得该抽检过程随机化、可信、可管控。
222.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
223.根据本技术实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的抽检过程。
224.在一种可能的实现方式中,该返回信息包括第三数据,验证模块404,用于:
225.在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
226.根据判断结果对第二数据进行验证。
227.根据本技术实施例,通过判断返回信息包括的第三数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。且上述过程中委托方无法获得第一数据中未被抽检到的数据的原始数
据,可以防止第一数据的原始数据被泄露。
228.在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,验证模块404,用于:
229.根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
230.根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
231.根据本技术实施例,通过根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
232.在一种可能的实现方式中,根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
233.在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
234.根据判断结果对第二数据进行验证。
235.由此,可以在欲委托进行交易的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
236.在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
237.根据本技术实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中委托方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
238.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
239.根据本技术实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续交易过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在委托过程中提供虚假数据以应对抽检。
240.在一种可能的实现方式中,第二数据包括至少一个第二子集,该装置还包括:
241.第二确定模块,用于根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接受第一服务端的委托。
242.根据本技术实施例,通过第二服务端在第一服务端欲委托进行交易的数据量较小的情况下,对第二子集进行抽检,可以简化在数据量较小时的数据验证流程,提高数据验证的效率。且在此过程中可以第二服务端无法得到第一服务端的原始数据,使得该过程随机化、可信、可管控。
243.在一种可能的实现方式中,该装置还包括:
244.公布模块,用于将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
245.由此,在出现争议时可以利用公布至数据库中的信息对相关过程进行溯源,从而可以实现可溯源的数据验证过程。
246.图5示出根据本技术一实施例的数据验证装置的结构图。该装置可用于第一服务端,该第一服务端应用于上述第一用户,例如第一用户可通过终端设备实现该实施例的装置。如图5所示,该装置包括:
247.第二发送模块501,用于向第二服务端发送第一数据,第一数据包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集,第一数据为第一服务端欲委托进行交易的数据;
248.第三接收模块502,用于接收第二服务端发送的针对第二数据的抽检请求,第二数据包括至少一个第一子集,或者,第二数据包括至少一个第一子集和至少一个第二子集;
249.第三发送模块503,用于响应于抽检请求,向第二服务端发送返回信息,返回信息用于第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,第二数据包括的至少一个第一子集的哈希值根据第一数据包括的至少一个第一子集的哈希值确定,在验证通过的情况下,返回信息用于第二服务端根据返回信息得到第二数据包括的至少一个第一子集的内容,或者第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受第一服务端的委托。
250.根据本技术实施例,通过将欲委托进行交易的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的抽检需求,对第一子集,或者,第一子集和第二子集进行抽检,实现更详细、更有针对性的委托交易抽检过程。通过使得第一数据包括至少一个第一子集的哈希值,可以实现在简化抽检流程的同时,适应不同数据量的抽检需求,提高抽检的效率。在抽检过程中第二服务端也无法得到第一数据的原始数据。由于是由第二服务端提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据欺骗第二服务端,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据,使得该抽检过程随机化、可信、可管控。
251.在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
252.根据本技术实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的抽检过程。
253.在一种可能的实现方式中,该返回信息包括第三数据,第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
254.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
255.第二服务端根据判断结果对第二数据进行验证。
256.根据本技术实施例,通过判断返回信息包括的第三数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端
提供虚假的数据。且上述过程中委托方无法获得第一数据中未被抽检到的数据的原始数据,可以防止第一数据的原始数据被泄露。
257.在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
258.第二服务端根据密钥,对与加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
259.第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证。
260.根据本技术实施例,通过根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
261.在一种可能的实现方式中,第二服务端根据第四数据和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,包括:
262.第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据的哈希值和第二数据包括的至少一个第一子集的哈希值是否一致;
263.第二服务端根据判断结果对第二数据进行验证。
264.由此,可以在欲委托进行交易的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
265.在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
266.根据本技术实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中委托方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
267.在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
268.根据本技术实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续交易过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在委托过程中提供虚假数据以应对抽检。
269.在一种可能的实现方式中,第二数据包括至少一个第二子集,返回信息还用于第二服务端根据返回信息得到第二数据包括的至少一个第二子集的内容,以确定是否接受第一服务端的委托。
270.根据本技术实施例,通过第二服务端在第一服务端欲委托进行交易的数据量较小的情况下,对第二子集进行抽检,可以简化在数据量较小时的数据验证流程,提高数据验证的效率。且在此过程中可以第二服务端无法得到第一服务端的原始数据,使得该过程随机
化、可信、可管控。
271.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
272.本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
273.本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
274.本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
275.图6是根据一示例性实施例示出的一种用于数据验证的装置1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图6,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
276.装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
277.在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
278.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
279.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
280.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外
部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
281.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
282.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
283.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
284.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
285.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
286.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也
不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术特征:


1.一种数据验证方法,其特征在于,所述方法包括:接收第一服务端发送的第一数据,所述第一数据包括至少一个第一子集的哈希值,所述第一子集包括至少一个第二子集,所述第一数据为所述第一服务端欲委托进行交易的数据;向所述第一服务端发送针对第二数据的抽检请求,所述第二数据包括至少一个第一子集,或者,所述第二数据包括至少一个第一子集和至少一个第二子集;接收第一服务端响应于所述抽检请求发送的返回信息;根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,所述第二数据包括的至少一个第一子集的哈希值根据所述第一数据包括的至少一个第一子集的哈希值确定;在验证通过的情况下,根据所述返回信息得到所述第二数据包括的至少一个第一子集的内容,或者所述第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受所述第一服务端的委托。2.根据权利要求1所述的方法,其特征在于,在所述第一数据包括的第一子集的数量大于预定阈值的情况下,所述第二数据包括至少一个第一子集和至少一个第二子集。3.根据权利要求2所述的方法,其特征在于,所述返回信息包括第三数据,所述根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,包括:在所述第一数据包括的第一子集的数量大于预定阈值的情况下,判断所述第三数据的哈希值和所述第二数据包括的至少一个第一子集的哈希值是否一致;根据判断结果对所述第二数据进行验证。4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一数据包括加密后的第一子集和加密后的第二子集,所述返回信息包括与所述第二数据对应的密钥,所述根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,包括:根据所述密钥,对与所述加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;根据所述第四数据和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证。5.根据权利要求4所述的方法,其特征在于,所述根据所述第四数据和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,包括:在所述第一数据包括的第一子集的数量大于预定阈值的情况下,判断所述第四数据的哈希值和所述第二数据包括的至少一个第一子集的哈希值是否一致;根据判断结果对所述第二数据进行验证。6.根据权利要求4或5所述的方法,其特征在于,所述密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。7.根据权利要求1-6任一项所述的方法,其特征在于,所述第二数据包括至少一个第二子集,所述方法还包括:根据所述返回信息得到所述第二数据包括的至少一个第二子集的内容,以确定是否接
受所述第一服务端的委托。8.根据权利要求1-7任一项所述的方法,其特征在于,所述抽检请求包括至少一个数据位置,所述数据位置用于指示所述第二数据包括的第一子集在所述第一数据中的位置,和/或,所述第二数据包括的第二子集在第一子集中的位置。9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:将以下中的一项或多项公布至不可修改的数据库中:所述第一数据包括的第一子集的哈希值、所述第一数据包括的加密后的第一子集、所述第一数据包括的加密后的第二子集、所述抽检请求。10.一种数据验证方法,其特征在于,所述方法包括:向第二服务端发送第一数据,所述第一数据包括至少一个第一子集的哈希值,所述第一子集包括至少一个第二子集,所述第一数据为第一服务端欲委托进行交易的数据;接收所述第二服务端发送的针对第二数据的抽检请求,所述第二数据包括至少一个第一子集,或者,所述第二数据包括至少一个第一子集和至少一个第二子集;响应于所述抽检请求,向所述第二服务端发送返回信息,所述返回信息用于所述第二服务端根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,所述第二数据包括的至少一个第一子集的哈希值根据所述第一数据包括的至少一个第一子集的哈希值确定,在验证通过的情况下,所述返回信息用于所述第二服务端根据所述返回信息得到所述第二数据包括的至少一个第一子集的内容,或者所述第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受所述第一服务端的委托。11.根据权利要求10所述的方法,其特征在于,在所述第一数据包括的第一子集的数量大于预定阈值的情况下,所述第二数据包括至少一个第一子集和至少一个第二子集。12.根据权利要求11所述的方法,其特征在于,所述返回信息包括第三数据,所述第二服务端根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,包括:所述第二服务端在所述第一数据包括的第一子集的数量大于预定阈值的情况下,判断所述第三数据的哈希值和所述第二数据包括的至少一个第一子集的哈希值是否一致;所述第二服务端根据判断结果对所述第二数据进行验证。13.根据权利要求10-12任一项所述的方法,其特征在于,所述第一数据包括加密后的第一子集和加密后的第二子集,所述返回信息包括与所述第二数据对应的密钥,所述第二服务端根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,包括:所述第二服务端根据所述密钥,对与所述加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;所述第二服务端根据所述第四数据和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证。14.根据权利要求13所述的方法,其特征在于,所述第二服务端根据所述第四数据和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,包括:所述第二服务端在所述第一数据包括的第一子集的数量大于预定阈值的情况下,判断
所述第四数据的哈希值和所述第二数据包括的至少一个第一子集的哈希值是否一致;所述第二服务端根据判断结果对所述第二数据进行验证。15.根据权利要求13或14所述的方法,其特征在于,所述密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。16.根据权利要求10-15任一项所述的方法,其特征在于,所述第二数据包括至少一个第二子集,所述返回信息还用于所述第二服务端根据所述返回信息得到所述第二数据包括的至少一个第二子集的内容,以确定是否接受所述第一服务端的委托。17.根据权利要求10-16任一项所述的方法,其特征在于,所述抽检请求包括至少一个数据位置,所述数据位置用于指示所述第二数据包括的第一子集在所述第一数据中的位置,和/或,所述第二数据包括的第二子集在第一子集中的位置。18.一种数据验证装置,其特征在于,所述装置包括:第一接收模块,用于接收第一服务端发送的第一数据,所述第一数据包括至少一个第一子集的哈希值,所述第一子集包括至少一个第二子集,所述第一数据为所述第一服务端欲委托进行交易的数据;第一发送模块,用于向所述第一服务端发送针对第二数据的抽检请求,所述第二数据包括至少一个第一子集,或者,所述第二数据包括至少一个第一子集和至少一个第二子集;第二接收模块,用于接收第一服务端响应于所述抽检请求发送的返回信息;验证模块,用于根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,所述第二数据包括的至少一个第一子集的哈希值根据所述第一数据包括的至少一个第一子集的哈希值确定;第一确定模块,用于在验证通过的情况下,根据所述返回信息得到所述第二数据包括的至少一个第一子集的内容,或者所述第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受所述第一服务端的委托。19.一种数据验证装置,其特征在于,所述装置包括:第二发送模块,用于向第二服务端发送第一数据,所述第一数据包括至少一个第一子集的哈希值,所述第一子集包括至少一个第二子集,所述第一数据为第一服务端欲委托进行交易的数据;第三接收模块,用于接收所述第二服务端发送的针对第二数据的抽检请求,所述第二数据包括至少一个第一子集,或者,所述第二数据包括至少一个第一子集和至少一个第二子集;第三发送模块,用于响应于所述抽检请求,向所述第二服务端发送返回信息,所述返回信息用于所述第二服务端根据所述返回信息和所述第二数据包括的至少一个第一子集的哈希值,对所述第二数据进行验证,所述第二数据包括的至少一个第一子集的哈希值根据所述第一数据包括的至少一个第一子集的哈希值确定,在验证通过的情况下,所述返回信息用于所述第二服务端根据所述返回信息得到所述第二数据包括的至少一个第一子集的内容,或者所述第二数据包括的至少一个第一子集和至少一个第二子集的内容,以确定是否接受所述第一服务端的委托。20.一种数据验证装置,其特征在于,包括:处理器;
用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至9中任意一项所述的方法,或者,实现权利要求10至17中任意一项所述的方法。21.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至9中任意一项所述的方法,或者,实现权利要求10至17中任意一项所述的方法。

技术总结


本公开涉及一种数据验证方法、装置和存储介质。该方法包括:第二服务端接收第一服务端发送的第一数据,第一数据包括至少一个第一子集的哈希值,第一子集包括至少一个第二子集;向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,或者,至少一个第一子集和至少一个第二子集;接收第一服务端响应于抽检请求发送的返回信息;根据返回信息和第二数据包括的至少一个第一子集的哈希值,对第二数据进行验证,在验证通过的情况下,根据返回信息得到第二数据包括的内容,以确定是否接受第一服务端的委托。由此,可以防止第一数据的原始数据被泄露,且使得数据验证过程随机化、可信、可管控。可管控。可管控。


技术研发人员:

汤珂 丁津泰

受保护的技术使用者:

清华大学

技术研发日:

2022.08.10

技术公布日:

2023/2/20

本文发布于:2024-09-22 07:38:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/54871.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:子集   数据   所述   服务端
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议