CN115906109A - 数据审计方法、装置和存储介质 - Google Patents

数据审计方法、装置和存储介质 Download PDF

Info

Publication number
CN115906109A
CN115906109A CN202210959268.2A CN202210959268A CN115906109A CN 115906109 A CN115906109 A CN 115906109A CN 202210959268 A CN202210959268 A CN 202210959268A CN 115906109 A CN115906109 A CN 115906109A
Authority
CN
China
Prior art keywords
data
subset
hash value
server
subsets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210959268.2A
Other languages
English (en)
Inventor
丁津泰
汤珂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to PCT/CN2022/112486 priority Critical patent/WO2023020429A1/zh
Publication of CN115906109A publication Critical patent/CN115906109A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种数据审计方法、装置和存储介质。该方法包括:第二服务端接收第一服务端发送的待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;接收第一服务端响应于抽检请求发送的返回信息;根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值,确定第二数据的哈希值;根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计。根据本申请实施例,可以防止第一数据的原始数据被泄露,且使得数据审计过程、可信、可管控。

Description

数据审计方法、装置和存储介质
技术领域
本公开涉及数据处理领域,尤其涉及一种数据审计方法、装置和存储介质。
背景技术
当前需要进行数据流通和交易的场景越来越多,而对于数据的评估和监管也变得必不可少。监管方希望流通和交易的数据为合法合规的,也希望在对数据进行审计的同时对其进行保护以防止其对国家安全、经济发展、公共利益带来的风险。
由于数字商品不同于一般的商品,其具有易复制、交易前不可知等的特殊性,当前的审计方法难免出现数据被第三方复制而泄露、转售的风险,即使对数据进行抽样审计,也无法防止数据的拥有者故意伪造数据从而掩盖原本的数据以通过审计,因此亟需可信的、可管控的新型技术手段。
发明内容
有鉴于此,本公开提出了一种数据审计方法、装置和存储介质。
根据本公开的一方面,提供了一种数据审计方法,该方法包括:
接收第一服务端发送的待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;
向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;
接收第一服务端响应于抽检请求发送的返回信息;
根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值,确定第二数据的哈希值;
根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计。
根据本申请实施例,通过将待审计的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的审计需求,对第一子集和/或第二子集进行抽检,特别是数据量较大的情况下,可以实现在审计过程中针对第一子集、第二子集分两步对数据进行审计,能够防止第一服务端隐瞒数据内容或提供不完整的数据时漏检、误检,实现更详细、更有针对性的审计。在审计过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据以通过审计,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据以通过审计,使得该过程随机化、可信、可管控。
在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
根据本申请实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的审计。
在一种可能的实现方式中,该返回信息包括第三数据,根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
判断第三数据的哈希值和第二数据的哈希值是否一致;
根据判断结果对第二数据进行验证。
根据本申请实施例,通过判断返回信息包括的第三数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。且上述过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,可以防止第一数据的原始数据被泄露。
在一种可能的实现方式中,根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,该返回信息包括与第二数据对应的密钥,根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
判断第四数据的哈希值和第二数据的哈希值是否一致;
根据判断结果对第二数据进行验证。
根据本申请实施例,通过根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
在一种可能的实现方式中,根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
根据本申请实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
在一种可能的实现方式中,该抽检请求包括至少一个数据位置,该数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
根据本申请实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在审计过程中提供虚假数据以通过审计。
在一种可能的实现方式中,该方法还包括:
将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的第二子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
由此,在出现争议时可以利用公布至数据库中的信息对相关过程进行溯源,从而可以实现可溯源的数据审计过程。
根据本公开的另一方面,提供了一种数据审计方法,该方法包括:
向第二服务端发送待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;
接收第二服务端发送的针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;
响应于抽检请求,向第二服务端发送返回信息,返回信息用于第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计,第二数据的哈希值根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值确定。
根据本申请实施例,通过将待审计的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的审计需求,对第一子集和/或第二子集进行抽检,特别是数据量较大的情况下,可以实现在审计过程中针对第一子集、第二子集分两步对数据进行审计,能够防止第一服务端隐瞒数据内容或提供不完整的数据时漏检、误检,实现更详细、更有针对性的审计。在审计过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据以通过审计,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据以通过审计,使得该过程随机化、可信、可管控。
在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
根据本申请实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的审计。
在一种可能的实现方式中,返回信息包括第三数据,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
第二服务端判断第三数据的哈希值和第二数据的哈希值是否一致;
第二服务端根据判断结果对第二数据进行验证。
根据本申请实施例,通过判断返回信息包括的第三数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。且上述过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,可以防止第一数据的原始数据被泄露。
在一种可能的实现方式中,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
第二服务端根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
第二服务端根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
第二服务端判断第四数据的哈希值和第二数据的哈希值是否一致;
第二服务端根据判断结果对第二数据进行验证。
根据本申请实施例,通过第二服务端根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
在一种可能的实现方式中,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
第二服务端根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
根据本申请实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
在一种可能的实现方式中,抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
根据本申请实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在审计过程中提供虚假数据以通过审计。
根据本公开的另一方面,提供了一种数据审计装置,该装置包括:
第一接收模块,用于接收第一服务端发送的待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;
第一发送模块,用于向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;
第二接收模块,用于接收第一服务端响应于抽检请求发送的返回信息;
确定模块,用于根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值,确定第二数据的哈希值;
验证模块,用于根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计。
在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
在一种可能的实现方式中,该返回信息包括第三数据,验证模块,用于:
判断第三数据的哈希值和第二数据的哈希值是否一致;
根据判断结果对第二数据进行验证。
在一种可能的实现方式中,验证模块,还用于:
在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
根据判断结果对第二数据进行验证。
在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,该返回信息包括与第二数据对应的密钥,验证模块,用于:
根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
判断第四数据的哈希值和第二数据的哈希值是否一致;
根据判断结果对第二数据进行验证。
在一种可能的实现方式中,验证模块,还用于:
在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
根据判断结果对第二数据进行验证。
在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
在一种可能的实现方式中,该抽检请求包括至少一个数据位置,该数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
在一种可能的实现方式中,该装置还包括:
公布模块,用于将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的第二子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
根据本公开的另一方面,提供了一种数据审计装置,该装置包括:
第二发送模块,用于向第二服务端发送待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;
第三接收模块,用于接收第二服务端发送的针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;
第三发送模块,用于响应于抽检请求,向第二服务端发送返回信息,返回信息用于第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计,第二数据的哈希值根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值确定。
在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
在一种可能的实现方式中,返回信息包括第三数据,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
第二服务端判断第三数据的哈希值和第二数据的哈希值是否一致;
第二服务端根据判断结果对第二数据进行验证。
在一种可能的实现方式中,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
第二服务端根据判断结果对第二数据进行验证。
在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
第二服务端根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
第二服务端判断第四数据的哈希值和第二数据的哈希值是否一致;
第二服务端根据判断结果对第二数据进行验证。
在一种可能的实现方式中,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
第二服务端根据判断结果对第二数据进行验证。
在一种可能的实现方式中,密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
在一种可能的实现方式中,抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
根据本公开的另一方面,提供了一种数据审计装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本申请一实施例的应用场景的示意图。
图2示出根据本申请一实施例的数据审计方法的流程图。
图3示出根据本申请一实施例的数据审计方法的流程图。
图4示出根据本申请一实施例的数据审计装置的结构图。
图5示出根据本申请一实施例的数据审计装置的结构图。
图6示出根据一示例性实施例示出的一种用于数据审计的装置1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
随着数据流通和交易的兴起,对于数据的评估和监管也变得必不可少。由于数字商品不同于一般的商品,其具有易复制、交易前不可知等的特殊性,当前的审计方法难免出现数据被第三方复制而泄露、转售的风险,即使对数据进行抽样审计,也无法防止数据的拥有者故意伪造数据从而掩盖原本的数据以通过审计,因此亟需可信的、可管控的新型技术手段对数据进行审计。
鉴于此,本申请提供了一种数据审计方法,在该方法中,由于在审计过程中涉及到的数据量通常较大,第一用户(即数据的拥有方)可以将待审计的数据分为至少一个第一子集,其中第一子集可包括至少一个第二子集,数据的审计方(可以称为第二用户)可以对第一数据中的部分数据(即第二数据)进行抽检,通过接收第一用户响应于抽检请求发送的返回信息,可以利用该返回信息,对第二数据进行验证,以防止第一用户隐瞒数据或提供不完整的数据,从而可以对第一数据进行审计。在此过程中,第一用户无法伪造数据以通过审计,第二用户也无法获取第一数据中除第二数据以外的其他数据的原始数据,防止了数据被转售、滥用,使得该过程可信、可管控。
图1示出根据本申请一实施例的应用场景的示意图。如图1所示,本申请实施例提供的数据审计方法可以用在第二用户对第一用户拥有的数据进行审计的场景中。第一用户可以理解为拥有待审计的数据(第一数据的原始数据)的一方,第二用户可以理解为欲对该待审计的数据(或第一数据的原始数据的一部分)进行审计的一方,第二用户可以是监管机构,也可以是其他第三方机构,本申请对此不作限制。本申请对于被审计的数据的具体类型也不作限制,例如可以是标注数据集(即带标注的数据的集合,可用于模型训练等场景)、算法模型代码等。
在一种可能的实现方式中,还可以存在不可修改的数据库,该数据库可以设置在由第二用户运营的平台上,该平台也可以是由除第一用户、第二用户外的另一第三方运营的。该数据库可用于公布第一用户或第二用户通过平台上传的相关信息。该信息可以包括审计数据时的相关信息以及其他相关过程(例如交易)中的信息,该信息也可以是原信息的哈希值。平台可定时对上述上传的信息进行签名,从而保证其内容一经上传不可篡改,且可溯源。在一种可能的实现方式中,该数据库可以是基于区块链的数据库。
第一用户和第二用户还可以拥有自己的公钥和私钥,第一用户、第二用户的公钥和私钥可经过一合法第三方的认证并获得相应的证书,且第一用户、第二用户的认证后的公钥以及相应的证书信息也可被公布在上述数据库中。其中,第一用户和第二用户的公钥可以分别用于对用私钥签名过的文件进行验证,在进行数据审计的过程中,第一用户、第二用户也可以利用各自的私钥对相关操作内容进行签名,以防他人篡改,并使得第一用户、第二用户对自身的操作内容不能抵赖。
由此,可以保证对待审计的数据进行审计的过程可信、可溯源。
以下,在图1的基础上对本申请实施例的数据审计方法进行详细的介绍,参见图2,图2示出根据本申请一实施例的数据审计方法的流程图。该方法可用于第二服务端,该第二服务端可应用于上述第二用户,例如第二用户可通过终端设备或服务器实现该实施例的方法。如图2所示,该方法包括:
步骤S201,接收第一服务端发送的待审计的第一数据。
可以由第二用户(即第二服务端)接收第一用户(即第一服务端)发送的第一数据。其中,第一数据可包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集可包括至少一个第二子集。
例如,第一用户待审计的数据(第一数据的原始数据,可称为D)可以被拆分成k项子集(即第一子集),将D拆分后的任一第一子集可以称为Doci,i可以表示对应的第一子集的序号,则拆分后D对应的数据集合中可以包括第一子集Doc1、Doc2、Doc3……Dock。本申请对于拆分后的第一子集的数量k不作限定。
由于被审计的数据量通常较大,还可以对这些数据进行进一步分层,以便后续抽检。在一种可能的实现方式中,将各项第一子集拆分后得到的任一第二子集可以称为Itemij,其中i可表示该第二子集对应的第一子集的序号,j可以表示该第二子集的序号,拆分后Doc1例如可以包括第二子集Item11、Item12……Item1n1,Doc2例如可以包括第二子集Item21、Item22……Item2n2,Dock例如可以包括第二子集Itemk1、Itemk2……Itemknk,其中,n1、n2……nk可以表示对应的第一子集中包括的第二子集的数量。在一种可能的实现方式中,每一项第二子集可以表示对应数据D的最小单位,即该第二子集不可再被拆分。
可以分别对待审计的数据D中各第一子集和第二子集用哈希函数进行压缩,得到各第一子集对应的各哈希值和各第二子集对应的各哈希值。例如,H(Dock)可以表示第一子集Dock的哈希值,H(Itemij)可以表示第二子集Itemij的哈希值。还可以对完整的待审计的数据D利用哈希函数进行压缩得到H(D),第二用户还可以接收第一用户发送的待审计的数据的哈希值H(D)。
在一种可能的实现方式中,还可以分别对D中的各第一子集和各第二子集进行加密,得到对应的加密后的数据集合。例如,E(Dock)可以表示被加密后的第一子集Dock,E(Itemij)可以表示被加密后的第二子集Itemij
其中,对数据D中的各子集进行加密的方法可以是由第一用户创建一个主密钥MK,并利用MK分别确定各子集对应的密钥。以下,以对第一子集进行加密为例介绍进行加密的方式:
例如,可以首先确定(可以是随机生成)一个对应第一子集Doc1的密钥K(Doc1),则K(Doci+1)可以是利用主密钥MK对K(Doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
又例如,可以先确定各第一子集对应的哈希值H(Doci),则第一子集Doci对应的密钥K(Doci)可以是利用主密钥MK对对应的H(Doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
上述仅以两个例子对利用MK确定第一子集对应的密钥K(Doci)的方式进行说明,本申请对于利用MK确定第一子集对应的密钥的方式不作限制,只要根据MK或其他很少量的密钥即可确定全部第一子集对应的密钥,且他人即使知道任意项数第一子集对应的密钥,也无法推理出其他第一子集对应的密钥即可。对第二子集进行加密的方式同理。
由此,可以实现各项子集对应的密钥之间的相对独立性,即第二用户即使后续在审计过程中得到了抽检部分的子集的密钥,也无法解密除抽检部分之外其他子集的数据,从而可以有效地防止数据泄露。
步骤S202,向第一服务端发送针对第二数据的抽检请求。
其中,该第二数据可包括至少一个第一子集,和/或,至少一个第二子集。也就是说,第二数据可以包括第一子集,或者第二子集,或者既包括第一子集,也包括第二子集。在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下(即第一数据的数据量较大),可以分别对第一子集和第二子集进行抽检,即第二数据可包括至少一个第一子集和至少一个第二子集,也可以仅对第一子集进行抽检,即第二数据可包括至少一个第一子集。也可以仅对第二子集进行抽检,即第二数据可包括至少一个第二子集。
可选地,在第一数据包括的第一子集的数量大于预定阈值的情况下,抽检请求还可以包括第一抽检请求和第二抽检请求。其中,第一抽检请求对应的第二数据可包括至少一个第二子集,第二抽检请求对应的第二数据可包括至少一个第一子集。第二用户可先向第一用户发送第一抽检请求,第二用户可根据第一用户的返回信息,确定第二抽检请求对应的第二数据包括的第一子集。例如,可以根据第一用户返回的第二子集的内容,评估第二子集对应的各第一子集的重要程度,并根据各第一子集的重要程度,选择其中预定数量的第一子集作为第二抽检请求中第二数据包括的内容,再向第一用户发送第二抽检请求。由此,可以实现对数据更为详细、更有目的性的抽检。
需要说明的是,也可以先向第一用户发送第二抽检请求,根据第一用户的返回信息,确定第一抽检请求,再向第一用户发送第一抽检请求,本申请对此不作限制。
在第一数据包括的第一子集的数量小于预定阈值的情况下,例如第一数据中仅包括一个第一子集或包括较少的第一子集时,第二数据可以仅包括第二子集,即仅对第一子集中的至少一个第二子集进行抽检。
第二数据可以是第一子集,和/或,第二子集中的预定比例的子集,该比例可由第二用户与第一用户预先约定。该抽检请求可以被公布至上述数据库中。
需要说明的是,该预定比例越大,第一用户提供的数据造假的可能性就越小。假定第一用户把数据分为300项子集(例如第一子集和第二子集共计300项,或者第一子集为300项,或者第二子集为300项),其中有30项(10%)为造假数据,如果第二用户选择10%的数据(即其中30项子集,例如第一子集和第二子集共计30项,或者第一子集30项,或者第二子集30项)进行检查,第一用户提供的数据造假而不被发现的概率只有大约3%。
在一种可能的实现方式中,该抽检请求包括至少一个数据位置,数据位置可用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
在这种情况下,在步骤S201中,第一用户发送的第一数据中数据对应的第一子集和/或第二子集的排列顺序可以与原始数据中子集的排列顺序一致。
对于第一子集,选取的数据位置可以是(a1,a2……am),可以分别表示k项第一子集中的m项子集的位置。对于第二子集,选取的数据位置可以是(bi1,bi2……bip),可以分别表示序号为i的第一子集对应的第二子集中的p项子集在该第一子集中的位置(p小于该第二子集中包括的子集的总数)。
在一种可能的实现方式中,第二用户在提出抽样请求时还可以将选取的数据位置和该数据位置对应的各子集的哈希值公布在上述数据库中。
通过选取数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与步骤S201中接收到的对应位置的哈希值是否一致,从而可以防止第一用户在抽检前后对第一数据中的部分或全部数据进行替换,使得第一用户无法在审计过程中提供虚假数据以通过审计。
步骤S203,接收第一服务端响应于抽检请求发送的返回信息。
可以由第二用户接收第一用户发送的返回信息。该返回信息可以包括第三数据或与第二数据对应的密钥,可参见步骤S204中的详细叙述。
步骤S204,根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值,确定第二数据的哈希值。
由于第二数据包括第一数据包括的至少一个第一子集和/或至少一个第二子集,可以根据第一用户发送的第一数据中对应于第二数据的部分,确定第二数据的哈希值。
例如,可以根据第一数据中对应于第二数据包括的第一子集的部分,确定第二数据中第一子集的哈希值;可以根据第一数据中对应于第二数据包括的第二子集的部分,确定第二数据中第二子集的哈希值。若在步骤S201中,第二数据包括至少一个第一子集和至少一个第二子集,在步骤S204中,可以根据第一数据包括的至少一个第一子集的哈希值,确定第二数据中第一子集的哈希值,并根据第一数据包括的至少一个第二子集的哈希值,确定第二数据中第二子集的哈希值;若在步骤S201中,第二数据包括至少一个第一子集和,在步骤S204中,可以根据第一数据包括的至少一个第一子集的哈希值,确定第二数据中第一子集的哈希值;若在步骤S201中,第二数据包括至少一个第二子集,在步骤S204中,可以根据第一数据包括的至少一个第二子集的哈希值,确定第二数据中第二子集的哈希值。
步骤S205,根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计。
其中,可以根据返回信息,确定该返回信息中指示的数据是否与第二数据一致,从而确定第一用户是否提供了抽检请求中指定的数据,如果一致,则可以对该抽样的数据(即返回信息中指示的数据)进行审计,例如,审计的内容可以包括检查抽样的数据是否合法合规,以确定是否会对国家安全、经济发展、公共利益等带来风险。
根据本申请实施例,通过将待审计的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的审计需求,对第一子集和/或第二子集进行抽检,特别是数据量较大的情况下,可以实现在审计过程中针对第一子集、第二子集分两步对数据进行审计,能够防止第一用户隐瞒数据内容或提供不完整的数据时漏检、误检,实现更详细、更有针对性的审计。在审计过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一用户无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据以通过审计,由于由第一用户先发送第一数据,再进行抽检,可以防止第一用户在返回信息中故意伪造数据从而掩盖原本的数据以通过审计,使得该过程随机化、可信、可管控。
在一种可能的实现方式中,该返回信息可包括第三数据,该步骤S205,包括:判断第三数据的哈希值和第二数据的哈希值是否一致;根据判断结果对第二数据进行验证。
其中,第三数据可以是指第一用户返回的与抽样请求相对应的数据。该数据可以是原始数据,第二数据的哈希值可以是步骤S201中第一用户发送的第一数据中、与第二数据相对应的各哈希值。从而,第二用户可以根据第三数据计算出该第三数据的哈希值,并判断该第三数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在数据量较大(即第一子集的数量大于预定阈值)的情况下,若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对待审计的数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。在此过程中对第一子集进行抽检时可以整体验证第三数据中第一子集的哈希值是否与步骤S201中第一用户发送的哈希值相符,根据第一子集和第二子集,还可以进行更为详细更有目的性的检查,可参见下文叙述。在一种可能的实现方式中,还可以仅对部分第一子集进行抽检。
在一种可能的实现方式中,该步骤S205,还包括:在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相应位置一致;根据判断结果对第二数据进行验证。
例如,若得到的第三数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下(其中第二用户也可以先响应于第一抽检请求接收第二子集,再响应于第二抽检请求接收第一子集),可以确定第三数据中Item12、Item14的相对位置与第二子集的Doc1中序号为2、4的Item的相应位置是否一致,以及确定第三数据中Item33、Item34的相对位置与第二子集的Doc3中序号为3、4的Item的第相应位置是否一致,还可以确定第三数据中Doc1、Doc3的相对位置与第二子集中序号为1、3的Doc的相应位置是否一致。
其中,根据判断结果对所述第二数据进行验证,可以包括在第三数据中数据的相对位置与第二数据中相应的第二子集和相应的第一子集的相应位置一致的情况下,确定第一用户提供了抽检请求中指定的数据,从而可以进一步根据上述方式对抽样的数据进行审计;否则,可以确定第一用户未提供抽检请求中指定的数据,在一种可能的实现方式中,可以要求第一用户重新提供返回信息、或认定第二数据抽检不通过等。
在抽样请求中包括了数据位置的情况下,还可以判断第三数据中数据的相对位置与抽样请求中对应的数据位置是否一致。例如,若抽样请求中包括数据位置(b12,b14)和(b33,b34),以及第一子集的数据位置(b1,b3)(其中第二用户也可以先发送包括第二子集的数据位置的第一抽检请求,再发送包括第一子集的数据位置的第二抽检请求),得到的第三数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下,可以确定第三数据中包括的Item12、Item14是否分别在Doc1中对应(b12,b14)的位置,以及确定Item33、Item34是否分别在Doc3中对应(b33,b34)的位置。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,在步骤S201中第一用户发送的第一数据可以包括加密后的第一子集和加密后的第二子集,该返回信息可以包括与第二数据对应的密钥,该步骤S205,包括:根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;判断第四数据的哈希值和第二数据的哈希值是否一致;根据判断结果对第二数据进行验证。
其中,该密钥可包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
例如,在抽检请求中第二用户选择查看第二子集E(ItemIJ)的数据内容的情况下,第一用户发送的返回信息可以包括第二子集E(ItemIJ)对应的密钥K(ItemIJ),第二用户则可以利用密钥打开加密的第二子集,查看第二子集ItemIJ里的数据内容,即得到第四数据,从而可以判断第四数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在数据量较大(即第一子集的数量大于预定阈值)的情况下,若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对第一数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。在此过程中对第一子集进行抽检时可以整体验证第四数据中第一子集的哈希值是否与步骤S201中第一用户发送的哈希值相符,对第二子集进行抽检时可以进行更为详细更有目的性的检查,可参见下文叙述。在一种可能的实现方式中,还可以仅对部分第一子集进行抽检。
在一种可能的实现方式中,该步骤S205,还包括:在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;根据判断结果对第二数据进行验证。
例如,若得到的第四数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下(其中第二用户也可以先响应于第一抽检请求接收第二子集,再响应于第二抽检请求接收第一子集),可以确定第四数据中Item12、Item14的相对位置与第二子集的Doc1中序号为2、4的Item的相应位置是否一致,以及确定第三数据中Item33、Item34的相对位置与第二子集的Doc3中序号为3、4的Item的相应位置是否一致,还可以确定第四数据中Doc1、Doc3的相对位置与第二子集中序号为1、3的Doc的相应位置是否一致。
其中,根据判断结果对所述第二数据进行验证,可以包括在第四数据中数据的相对位置与第二数据中相应的第二子集和相应的第一子集的相应位置一致的情况下,确定第一用户提供了抽检请求中指定的数据,从而可以进一步根据上述方式对抽样的数据进行审计;否则,可以确定第一用户未提供抽检请求中指定的数据,在一种可能的实现方式中,可以要求第一用户重新提供返回信息、或认定第二数据抽检不通过等。
在抽样请求中包括了数据位置的情况下,还可以判断第四数据中数据的相对位置与抽样请求中对应的数据位置是否一致。例如,若抽样请求中包括第二子集的数据位置(b12,b14)和(b33,b34),以及第一子集的数据位置(b1,b3)(其中第二用户也可以先发送包括第二子集的数据位置的第一抽检请求,再发送包括第一子集的数据位置的第二抽检请求),得到的第四数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下,可以确定第四数据中包括的Item12、Item14是否分别在Doc1中对应(b12,b14)的位置,以及确定Item33、Item34是否分别在Doc3中对应(b33,b34)的位置。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,该方法还包括:
步骤S206,将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的第二子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
其中,可以由第二用户将上述内容公布至不可修改的数据库中,也可以由第一用户公布,本申请对此不作限制。该数据库也可以是基于区块链的数据库。
除上述内容以外,还可以将审计过程中的其他数据公布至数据库中,本申请对此也不作限制。
由此,在出现争议时可以利用公布至数据库中的信息对相关过程进行溯源,从而可以实现可溯源的数据审计过程。
参见图3,示出根据本申请一实施例的数据处理方法的流程图。该方法可用于第一服务端,该第一服务端可应用于上述第一用户,例如第一用户可通过终端设备实现该实施例的方法。如图3所示,该方法包括:
步骤S301,向第二服务端发送待审计的第一数据。
其中,第一数据可包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集。
例如,第一用户待审计的数据(第一数据的原始数据,可称为D)可以被拆分成k项子集(即第一子集),将D拆分后的任一第一子集可以称为Doci,i可以表示对应的第一子集的序号,则拆分后D对应的数据集合中可以包括第一子集Doc1、Doc2、Doc3……Dock。本申请对于拆分后的第一子集的数量k不作限定。
由于被审计的数据量通常较大,还可以对这些数据进行进一步分层,以便后续抽检。在一种可能的实现方式中,将各项第一子集拆分后得到的任一第二子集可以称为Itemij,其中i可表示该第二子集对应的第一子集的序号,j可以表示该第二子集的序号,拆分后Doc1例如可以包括第二子集Item11、Item12……Item1n1,Doc2例如可以包括第二子集Item21、Item22……Item2n2,Dock例如可以包括第二子集Itemk1、Itemk2……Itemknk,其中,n1、n2……nk可以表示对应的第一子集中包括的第二子集的数量。在一种可能的实现方式中,每一项第二子集可以表示对应数据D的最小单位,即该第二子集不可再被拆分。
可以分别对待审计的数据D中各第一子集和第二子集用哈希函数进行压缩,得到各第一子集对应的各哈希值和各第二子集对应的各哈希值。例如,H(Dock)可以表示第一子集Dock的哈希值,H(Itemij)可以表示第二子集Itemij的哈希值。还可以对完整的待审计的数据D利用哈希函数进行压缩得到H(D),第二用户还可以接收第一用户发送的待审计的数据的哈希值H(D)。
在一种可能的实现方式中,还可以分别对D中的各第一子集和各第二子集进行加密,得到对应的加密后的数据集合。例如,E(Dock)可以表示被加密后的第一子集Dock,E(Itemij)可以表示被加密后的第二子集Itemij
其中,对数据D中的各子集进行加密的方法可以是由第一用户创建一个主密钥MK,并利用MK分别确定各子集对应的密钥。以下,以对第一子集进行加密为例介绍进行加密的方式:
例如,可以首先确定(可以是随机生成)一个对应第一子集Doc1的密钥K(Doc1),则K(Doci+1)可以是利用主密钥MK对K(Doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
又例如,可以先确定各第一子集对应的哈希值H(Doci),则第一子集Doci对应的密钥K(Doci)可以是利用主密钥MK对对应的H(Doci)进行加密后确定的,由此可以确定全部第一子集对应的密钥。
上述仅以两个例子对利用MK确定第一子集对应的密钥K(Doci)的方式进行说明,本申请对于利用MK确定第一子集对应的密钥的方式不作限制,只要根据MK或其他很少量的密钥即可确定全部第一子集对应的密钥,且他人即使知道任意项数第一子集对应的密钥,也无法推理出其他第一子集对应的密钥即可。对第二子集进行加密的方式同理。
由此,可以实现各项子集对应的密钥之间的相对独立性,即第二用户即使后续在审计过程中得到了抽检部分的子集的密钥,也无法解密除抽检部分之外其他子集的数据,从而可以有效地防止数据泄露。
步骤S302,接收第二服务端发送的针对第二数据的抽检请求。
其中,第二数据包括至少一个第一子集,和/或,至少一个第二子集。
也就是说,第二数据可以包括第一子集,或者第二子集,或者既包括第一子集,也包括第二子集。在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下(即第一数据的数据量较大),可以分别对第一子集和第二子集进行抽检,即第二数据可包括至少一个第一子集和至少一个第二子集,也可以仅对第一子集进行抽检,即第二数据可以包括至少一个第一子集。也可以仅对第二子集进行抽检,即第二数据可包括至少一个第二子集。
可选地,在第一数据包括的第一子集的数量大于预定阈值的情况下,抽检请求还可以包括第一抽检请求和第二抽检请求。其中,第一抽检请求对应的第二数据可包括至少一个第二子集,第二抽检请求对应的第二数据可包括至少一个第一子集。第一用户可先接收第二用户发送第一抽检请求,并向第二用户发送返回信息,第二用户可根据第一用户的返回信息,确定第二抽检请求对应的第二数据包括的第一子集。例如,可以根据第一用户返回的第二子集的内容,评估第二子集对应的各第一子集的重要程度,并根据各第一子集的重要程度,选择其中预定数量的第一子集作为第二抽检请求中第二数据包括的内容,第一用户可接收第二用户发送的第二抽检请求。由此,可以实现对数据更为详细、更有目的性的抽检。
需要说明的是,也可以是第一用户先接收第二用户发送的第二抽检请求,第二用户根据第一用户的返回信息,确定第一抽检请求,第一用户再接收第二用户发送的第一抽检请求,本申请对此不作限制。
在第一数据包括的第一子集的数量小于预定阈值的情况下,例如第一数据中仅包括一个第一子集或包括较少的第一子集时,第二数据可以仅包括第一子集,即仅对第一数据中至少一个第一子集进行抽检。
第二数据可以是第一子集,和/或,第二子集中的预定比例的子集,该比例可由第二用户与第一用户预先约定。该抽检请求可以被公布至上述数据库中。
需要说明的是,该预定比例越大,第一用户提供的数据造假的可能性就越小。假定第一用户把数据分为300项子集(例如第一子集和第二子集共计300项,或者第一子集为300项,或者第二子集为300项),其中有30项(10%)为造假数据,如果第二用户选择10%的数据(即其中30项子集,例如第一子集和第二子集共计30项,或者第一子集30项,或者第二子集30项)进行检查,第一用户提供的数据造假而不被发现的概率只有大约3%。
可选地,该抽检请求包括至少一个数据位置,数据位置可用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
在这种情况下,在步骤S301中,第一用户发送的第一数据中数据对应的第一子集和/或第二子集的排列顺序可以与原始数据中子集的排列顺序一致。
对于第一子集,选取的数据位置可以是(a1,a2……am),可以分别表示k项第一子集中的m项子集的位置。对于第二子集,选取的数据位置可以是(bi1,bi2……bip),可以分别表示序号为i的第一子集对应的第二子集中的p项子集在该第一子集中的位置(p小于该第二子集中包括的子集的总数)。
在一种可能的实现方式中,第二用户在提出抽样请求时还可以将选取的数据位置和该数据位置对应的各子集的哈希值公布在上述数据库中。
通过选取数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与步骤S301中第一用户发送的对应位置的哈希值是否一致,从而可以防止第一用户在抽检前后对第一数据中的部分或全部数据进行替换,使得第一用户无法在审计过程中提供虚假数据以通过审计。
步骤S303,响应于抽检请求,向第二服务端发送返回信息。
其中,返回信息用于第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计,第二数据的哈希值根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值确定。
由于第二数据包括第一数据包括的至少一个第一子集和/或至少一个第二子集,第二用户可以根据第一用户发送的第一数据中对应于第二数据的部分,确定第二数据的哈希值。
例如,第二用户可以根据第一数据中对应于第二数据包括的第一子集的部分,确定第二数据中第一子集的哈希值;第二用户还可以根据第一数据中对应于第二数据包括的第二子集的部分,确定第二数据中第二子集的哈希值。若在步骤S301中,第二数据包括至少一个第一子集和至少一个第二子集,可以根据第一数据包括的至少一个第一子集的哈希值,确定第二数据中第一子集的哈希值,并根据第一数据包括的至少一个第二子集的哈希值,确定第二数据中第二子集的哈希值;若在步骤S301中,第二数据包括至少一个第一子集和,可以根据第一数据包括的至少一个第一子集的哈希值,确定第二数据中第一子集的哈希值;若在步骤S301中,第二数据包括至少一个第二子集,可以根据第一数据包括的至少一个第二子集的哈希值,确定第二数据中第二子集的哈希值。
其中,第二用户可以根据返回信息,确定该返回信息中指示的数据是否与第二数据一致,从而确定第一用户是否提供了抽检请求中指定的数据,如果一致,则可以对该抽样的数据(即返回信息中指示的数据)进行审计,例如确定抽样的数据是否符合规范,从而可以实现对第一数据进行审计。
根据本申请实施例,通过将待审计的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的审计需求,对第一子集和/或第二子集进行抽检,特别是数据量较大的情况下,可以实现在审计过程中针对第一子集、第二子集分两步对数据进行审计,能够防止第一用户隐瞒数据内容或提供不完整的数据时漏检、误检,实现更详细、更有针对性的审计。在审计过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一用户无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据以通过审计,由于由第一用户先发送第一数据,再进行抽检,可以防止第一用户在返回信息中故意伪造数据从而掩盖原本的数据以通过审计,使得该过程随机化、可信、可管控。
可选地,该返回信息可包括第三数据,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,可包括:第二服务端判断第三数据的哈希值和第二数据的哈希值是否一致;第二服务端根据判断结果对第二数据进行验证。
其中,第三数据可以是指第一用户返回的与抽样请求相对应的数据。该数据可以是原始数据,第二数据的哈希值可以是步骤S301中第一用户发送的第一数据中、与第二数据相对应的各哈希值。从而,第二用户可以根据第三数据计算出该第三数据的哈希值,并判断该第三数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在数据量较大(即第一子集的数量大于预定阈值)的情况下,若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对待审计的数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。在此过程中对第一子集进行抽检时可以整体验证第三数据中第一子集的哈希值是否与步骤S301中第一用户发送的哈希值相符,根据第一子集和第二子集,还可以进行更为详细更有目的性的检查,可参见下文叙述。在一种可能的实现方式中,还可以仅对部分第一子集进行抽检。
可选地,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还可包括:第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;第二服务端根据判断结果对所述第二数据进行验证。
例如,若服务器得到的第三数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下(其中第二用户也可以先响应于第一抽检请求接收第二子集,再响应于第二抽检请求接收第一子集),可以确定第三数据中Item12、Item14的相对位置与第二子集的Doc1中序号为2、4的Item的相应位置是否一致,以及确定第三数据中Item33、Item34的相对位置与第二子集的Doc3中序号为3、4的Item的第相应位置是否一致,还可以确定第三数据中Doc1、Doc3的相对位置与第二子集中序号为1、3的Doc的相应位置是否一致。
其中,服务器根据判断结果对所述第二数据进行验证,可以包括在第三数据中数据的相对位置与第二数据中相应的第二子集和相应的第一子集的相应位置一致的情况下,确定第一用户提供了抽检请求中指定的数据,从而第二用户可以进一步根据上述方式对抽样的数据进行审计;否则,可以确定第一用户未提供抽检请求中指定的数据,在一种可能的实现方式中,第二用户可以要求第一用户重新提供返回信息、或认定第二数据抽检不通过等。
在抽样请求中包括了数据位置的情况下,第二用户还可以判断第三数据中数据的相对位置与抽样请求中对应的数据位置是否一致。例如,若抽样请求中包括数据位置(b12,b14)和(b33,b34)),以及第一子集的数据位置(b1,b3)(其中第二用户也可以先发送包括第二子集的数据位置的第一抽检请求,再发送包括第一子集的数据位置的第二抽检请求),,得到的第三数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下,可以确定第三数据中包括的Item12、Item14是否分别在Doc1中对应(b12,b14)的位置,以及确定Item33、Item34是否分别在Doc3中对应(b33,b34)的位置。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
可选地,第一数据可包括加密后的第一子集和加密后的第二子集,返回信息可包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,可包括:第二服务端根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;第二服务端判断第四数据的哈希值和第二数据的哈希值是否一致;第二服务端根据判断结果对第二数据进行验证。
其中,该密钥可包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
例如,在抽检请求中第二用户选择查看第二子集E(ItemIJ)的数据内容的情况下,第一用户发送的返回信息可以包括第二子集E(ItemIJ)对应的密钥K(ItemIJ),第二用户则可以利用密钥打开加密的第二子集,查看第二子集ItemIJ里的数据内容,即得到第四数据,从而可以判断第四数据的哈希值和第二数据的哈希值是否一致,以确定第一用户是否提供了抽检请求中指定的数据。在第一数据中第一子集的数量不大于预定阈值的情况下,抽检请求中可以仅对第一子集中的部分第二子集进行抽检。在数据量较大(即第一子集的数量大于预定阈值)的情况下,若仅抽检第一子集中的部分第二子集,第一用户若提供了不完整的数据或隐瞒了数据内容,可能会被漏检、误检,因此抽检请求中还可以分别对第一数据中的部分第一子集以及对应第一子集中的部分第二子集进行抽检,例如,可以先对第二子集进行抽检,再根据得到的第二子集的内容,对第一子集进行抽检,从而可以进行多步检查。在此过程中对第一子集进行抽检时可以整体验证第四数据中第一子集的哈希值是否与步骤S301中第一用户发送的哈希值相符,对第二子集进行抽检时可以进行更为详细更有目的性的检查,可参见下文叙述。在一种可能的实现方式中,还可以仅对部分第一子集进行抽检。
可选地,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;第二服务端根据判断结果对第二数据进行验证。
例如,若第二用户得到的第四数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下(其中第二用户也可以先响应于第一抽检请求接收第二子集,再响应于第二抽检请求接收第一子集),可以确定第四数据中Item12、Item14的相对位置与第二子集的Doc1中序号为2、4的Item的相应位置是否一致,以及确定第三数据中Item33、Item34的相对位置与第二子集的Doc3中序号为3、4的Item的相应位置是否一致,还可以确定第四数据中Doc1、Doc3的相对位置与第二子集中序号为1、3的Doc的相应位置是否一致。
其中,服务器根据判断结果对所述第二数据进行验证,可以包括在第四数据中数据的相对位置与第二数据中相应的第二子集和相应的第一子集的相应位置一致的情况下,确定第一用户提供了抽检请求中指定的数据,从而可以进一步根据上述方式对抽样的数据进行审计;否则,可以确定第一用户未提供抽检请求中指定的数据,在一种可能的实现方式中,第二用户可以要求第一用户重新提供返回信息、或认定第二数据抽检不通过等。
在抽样请求中包括了数据位置的情况下,第二用户还可以判断第四数据中数据的相对位置与抽样请求中对应的数据位置是否一致。例如,若抽样请求中包括数据位置(b12,b14)和(b33,b34),以及第一子集的数据位置(b1,b3)(其中第二用户也可以先发送包括第二子集的数据位置的第一抽检请求,再发送包括第一子集的数据位置的第二抽检请求),得到的第四数据中包括第一子集Doc1、Doc3,且包括第二子集Item12、Item14、Item33、Item34的情况下,可以确定第四数据中包括的Item12、Item14是否分别在Doc1中对应(b12,b14)的位置,以及确定Item33、Item34是否分别在Doc3中对应(b33,b34)的位置。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
图4示出根据本申请一实施例的数据审计装置的结构图。如图4所示,该装置包括:
第一接收模块401,用于接收第一服务端发送的待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;
第一发送模块402,用于向第一服务端发送针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;
第二接收模块403,用于接收第一服务端响应于抽检请求发送的返回信息;
确定模块404,用于根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值,确定第二数据的哈希值;
验证模块405,用于根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计。
根据本申请实施例,通过将待审计的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的审计需求,对第一子集和/或第二子集进行抽检,特别是数据量较大的情况下,可以实现在审计过程中针对第一子集、第二子集分两步对数据进行审计,能够防止第一服务端隐瞒数据内容或提供不完整的数据时漏检、误检,实现更详细、更有针对性的审计。在审计过程中第二用户也无法得到第一数据的原始数据。由于是由第二用户提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据以通过审计,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据以通过审计,使得该过程随机化、可信、可管控。
在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
根据本申请实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的审计。
在一种可能的实现方式中,该返回信息包括第三数据,验证模块405,用于:
判断第三数据的哈希值和第二数据的哈希值是否一致;
根据判断结果对第二数据进行验证。
根据本申请实施例,数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。且上述过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,可以防止第一数据的原始数据被泄露。
在一种可能的实现方式中,验证模块405,还用于:
在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,该返回信息包括与第二数据对应的密钥,验证模块405,用于:
根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
判断第四数据的哈希值和第二数据的哈希值是否一致;
根据判断结果对第二数据进行验证。
根据本申请实施例,通过根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
在一种可能的实现方式中,验证模块405,还用于:
在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,该密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
根据本申请实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
在一种可能的实现方式中,该抽检请求包括至少一个数据位置,该数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
根据本申请实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在审计过程中提供虚假数据以通过审计。
在一种可能的实现方式中,该装置还包括:
公布模块,用于将以下中的一项或多项公布至不可修改的数据库中:第一数据包括的第一子集的哈希值、第一数据包括的第二子集的哈希值、第一数据包括的加密后的第一子集、第一数据包括的加密后的第二子集、抽检请求。
由此,在出现争议时可以利用公布至数据库中的信息对相关过程进行溯源,从而可以实现可溯源的数据审计过程。
图5示出根据本申请一实施例的数据审计装置的结构图。如图5所示,该装置包括:
第二发送模块501,用于向第二服务端发送待审计的第一数据,第一数据包括至少一个第一子集的哈希值和至少一个第二子集的哈希值,第一子集包括至少一个第二子集;
第三接收模块502,用于接收第二服务端发送的针对第二数据的抽检请求,第二数据包括至少一个第一子集,和/或,至少一个第二子集;
第三发送模块503,用于响应于抽检请求,向第二服务端发送返回信息,返回信息用于第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,以对第一数据进行审计,第二数据的哈希值根据第一数据包括的至少一个第一子集的哈希值和至少一个第二子集的哈希值确定。
根据本申请实施例,通过将待审计的数据分为至少一个第一子集,并将第一子集分为至少一个第二子集,可以适应不同数据量的审计需求,对第一子集和/或第二子集进行抽检,特别是数据量较大的情况下,可以实现在审计过程中针对第一子集、第二子集分两步对数据进行审计,能够防止第一服务端隐瞒数据内容或提供不完整的数据时漏检、误检,实现更详细、更有针对性的审计。在审计过程中第二服务端也无法得到第一数据的原始数据。由于是由第二服务端提出抽检请求,第一服务端无法确定会被抽样的第二数据,从而无法提前挑选质量更优数据作为被抽检的数据以通过审计,由于由第一服务端先发送第一数据,再进行抽检,可以防止第一服务端在返回信息中故意伪造数据从而掩盖原本的数据以通过审计,使得该过程随机化、可信、可管控。
在一种可能的实现方式中,在第一数据包括的第一子集的数量大于预定阈值的情况下,第二数据包括至少一个第一子集和至少一个第二子集。
根据本申请实施例,可以实现在数据量较大的情况下,防止第一服务端隐瞒数据内容或提供不完整的数据时导致的漏检、误检,实现更详细、更有针对性的审计。
在一种可能的实现方式中,返回信息包括第三数据,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
第二服务端判断第三数据的哈希值和第二数据的哈希值是否一致;
第二服务端根据判断结果对第二数据进行验证。
根据本申请实施例,通过判断返回信息包括的第三数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。且上述过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,可以防止第一数据的原始数据被泄露。
在一种可能的实现方式中,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第三数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
第二服务端根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,第一数据包括加密后的第一子集和加密后的第二子集,返回信息包括与第二数据对应的密钥,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,包括:
第二服务端根据密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据;
第二服务端判断第四数据的哈希值和第二数据的哈希值是否一致;
第二服务端根据判断结果对第二数据进行验证。
根据本申请实施例,通过第二服务端根据返回信息中的密钥,对加密后的第一子集和加密后的第二子集中加密后的第二数据进行解密,得到第四数据,并判断第四数据的哈希值和第二数据的哈希值是否一致,可以确定第一服务端是否提供了抽检请求中指定的数据,防止第一服务端提供虚假的数据。
在一种可能的实现方式中,第二服务端根据返回信息和第二数据的哈希值,对第二数据进行验证,还包括:
第二服务端在第一数据包括的第一子集的数量大于预定阈值的情况下,判断第四数据中数据的相对位置是否与第二数据中相应的第二子集和相应的第一子集的相对位置一致;
第二服务端根据判断结果对第二数据进行验证。
由此,可以在待审计的数据的数据量较大的情况下,防止仅进行一步检查而导致的漏检、误检的情况,实现对待审计的数据更为详细更有目的性的检查。
在一种可能的实现方式中,密钥包括与第二数据中的第一子集和/或第二子集对应的至少一个密钥,不同的第一子集和第二子集对应的密钥不同。
根据本申请实施例,通过使得不同的子集对应的密钥不同,可以实现在抽检的过程中审计方无法获得第一数据中未被抽检到的数据的原始数据,防止第一数据的原始数据被泄露。
在一种可能的实现方式中,抽检请求包括至少一个数据位置,数据位置用于指示第二数据包括的第一子集在第一数据中的位置,和/或,第二数据包括的第二子集在第一子集中的位置。
根据本申请实施例,通过在抽检请求中包括数据位置,可以使得各第一子集在第一数据中的排列顺序,和/或,第二子集在第一子集中的排列顺序确定,在后续过程中若得到了原始数据,可核对选取数据位置的数据的哈希值与第一服务端最初提供的第一数据中、对应位置的哈希值是否一致,从而可以防止第一服务端在抽检前后对第一数据中的部分或全部数据进行替换,使得第一服务端无法在审计过程中提供虚假数据以通过审计。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图6示出根据一示例性实施例示出的一种用于数据审计的装置1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图6,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (21)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/112486 WO2023020429A1 (zh) 2021-08-20 2022-08-15 数据审计方法、装置和存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021109613646 2021-08-20
CN202110961364 2021-08-20

Publications (1)

Publication Number Publication Date
CN115906109A true CN115906109A (zh) 2023-04-04

Family

ID=85212939

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202210321239.3A Active CN115708339B (zh) 2021-08-20 2022-03-24 数据处理方法、装置和存储介质
CN202210955876.6A Pending CN115708340A (zh) 2021-08-20 2022-08-10 数据验证方法、装置和存储介质
CN202210959268.2A Pending CN115906109A (zh) 2021-08-20 2022-08-10 数据审计方法、装置和存储介质

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202210321239.3A Active CN115708339B (zh) 2021-08-20 2022-03-24 数据处理方法、装置和存储介质
CN202210955876.6A Pending CN115708340A (zh) 2021-08-20 2022-08-10 数据验证方法、装置和存储介质

Country Status (2)

Country Link
CN (3) CN115708339B (zh)
WO (2) WO2023020428A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116882847B (zh) * 2023-09-07 2023-12-01 山东盛日电力集团有限公司 用于光伏组件的安装质量检测方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6614600A (en) * 1999-07-29 2001-02-19 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
WO2016009497A1 (ja) * 2014-07-15 2016-01-21 株式会社あいびし データ改竄検知装置、ネットワークサービス提供装置、データ改竄検知方法、ネットワークサービス提供方法、及びプログラム
CN105959115B (zh) * 2016-07-19 2019-05-14 贵州大学 面向多方容错授权的公开可验证大数据交易方法
CN106301789B (zh) * 2016-08-16 2019-07-09 电子科技大学 应用基于格的线性同态签名的云存储数据的动态验证方法
US10284568B2 (en) * 2016-08-23 2019-05-07 Guardtime Ip Holdings Limited System and method for secure transmission of streamed data frames
SG11202002863SA (en) * 2017-10-06 2020-04-29 Stealthpath Inc Methods for internet communication security
CN108009842A (zh) * 2017-10-23 2018-05-08 清华大学 基于在线数据的消费者物价指数确定系统
CN108550039A (zh) * 2018-04-24 2018-09-18 北京罗格数据科技有限公司 一种基于区块链结构化数据的交易方法
JP2020024376A (ja) * 2018-08-08 2020-02-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America データ保護方法、認証サーバ、データ保護システム及びデータ構造
CN109347878B (zh) * 2018-11-30 2020-06-05 西安电子科技大学 去中心化的数据验证及数据安全交易系统及方法
CN111294379B (zh) * 2018-12-10 2022-06-07 北京沃东天骏信息技术有限公司 区块链网络服务平台及其权限托管方法、存储介质
US11188913B2 (en) * 2019-01-11 2021-11-30 Capital One Services, Llc Systems and methods for securely verifying a subset of personally identifiable information
US11405180B2 (en) * 2019-01-15 2022-08-02 Fisher-Rosemount Systems, Inc. Blockchain-based automation architecture cybersecurity
CN110113167B (zh) * 2019-04-01 2021-10-22 广州杰赛科技股份有限公司 一种智能终端的信息保护方法、系统以及可读存储介质
US11165560B2 (en) * 2019-05-20 2021-11-02 The Quantum Group, Inc. Secure transmission of electronic health records via blockchain
CN112100178B (zh) * 2020-09-08 2023-05-12 中国联合网络通信集团有限公司 委托授权验证方法和系统
CN113076375B (zh) * 2021-03-29 2023-07-25 湖北央中巨石信息技术有限公司 基于区块链的多方同步抽样共识方法及系统及装置及介质
CN113269570B (zh) * 2021-06-11 2024-04-09 深圳番多拉信息科技有限公司 一种抽取结果验证方法以及相关装置

Also Published As

Publication number Publication date
WO2023020448A1 (zh) 2023-02-23
WO2023020428A1 (zh) 2023-02-23
CN115708339A (zh) 2023-02-21
CN115708340A (zh) 2023-02-21
CN115708339B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
US11637707B2 (en) System and method for managing installation of an application package requiring high-risk permission access
US10216954B2 (en) Privacy detection of a mobile application program
US10205748B2 (en) Protection for computing systems from revoked system updates
US20130185564A1 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
US10721076B2 (en) Method, device, terminal, and server for a security check
JP2015508549A (ja) モバイル環境用のトロイの木馬化されたアプリケーションの特定
CN112182635B (zh) 一种联合建模的实现方法、装置、设备和介质
CN110708162B (zh) 资源的获取方法、装置、计算机可读介质及电子设备
CN111476652A (zh) 基于区块链的数据处理方法、装置、终端及存储介质
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
CN110545542B (zh) 基于非对称加密算法的主控密钥下载方法、装置和计算机设备
CN115906109A (zh) 数据审计方法、装置和存储介质
CN110826107B (zh) 一种文件签名方法、装置、电子设备及可读存储介质
CN1610296B (zh) 对信任确定实体安全地识别可执行码的方法
CN114172663A (zh) 基于区块链的业务确权方法及装置、存储介质和电子设备
CN112825093B (zh) 安全基线检查方法、主机、服务器、电子设备及存储介质
WO2023020429A1 (zh) 数据审计方法、装置和存储介质
CN112733166A (zh) license认证授权功能的实现方法及系统
CN112182509A (zh) 一种合规数据的异常检测方法、装置及设备
CN115982748B (zh) 基于区块链的安全控制数据资源托管的方法、装置和设备
US10567176B2 (en) Method for loading a computer resource into an electronic device, corresponding electronic module and computer program
CN113869842A (zh) 基于区块链的不动产登记方法及系统
CN117725562A (zh) 远程授权方法、装置、设备、系统及存储介质
CN114840821A (zh) 一种基于文化天猫数字确权的方法、装置及电子设备
CN113868628A (zh) 一种签名验证方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination