CN113761000A - 数据处理的方法、装置、计算设备和存储介质 - Google Patents
数据处理的方法、装置、计算设备和存储介质 Download PDFInfo
- Publication number
- CN113761000A CN113761000A CN202010506698.XA CN202010506698A CN113761000A CN 113761000 A CN113761000 A CN 113761000A CN 202010506698 A CN202010506698 A CN 202010506698A CN 113761000 A CN113761000 A CN 113761000A
- Authority
- CN
- China
- Prior art keywords
- query
- output
- data
- query output
- determining
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Epidemiology (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理的方法、装置、计算设备和存储介质,属于大数据技术领域。该方法包括:根据查询算法,确定输入数据集对应的第一查询输出,根据输入数据集中未被抽样的数据记录的第二查询输出和查询算法,确定输入数据集中被抽样的目标数目条数据记录中每条数据记录对第一查询输出的扰动,获得输入数据集对应的敏感度,未被抽样的数据记录与目标数目条数据记录组成输入数据集,根据敏感度,对第一查询输出加噪声,输出加噪声后的第一查询输出。采用本申请,可以减少敏感度的计算量,提升数据处理的效率。
Description
技术领域
本申请涉及大数据技术领域,特别涉及一种数据处理的方法、装置、计算设备和存储介质。
背景技术
随着网络技术和计算机技术的发展,各个机构对个人数据的隐私保护比较重视,但是即使这些机构对大数据处理系统的安全性和数据的匿名性有严密的保护(数据查询者无法直接获取个人的原始数据),数据查询者依然可以通过查询大数据处理系统从而窃取个人数据。例如,数据查询者得知患者1进入了A医院,同时他也得知患者1是唯一一名在2019年1月1日住进A医院的病患,数据查询者想知道患者1是否患有癌症,于是数据查询者向A医院的大数据处理系统查询在2019年1月1日住进A医院且患有癌症的病患数量。如果查询的输出为1,则数据查询者确定患者1是患有癌症的。可见,即使医院的大数据处理系统是安全的,以及大数据处理系统的数据是匿名的,数据查询者也可以从获取到某些个人数据。因此为了更全面的对个人数据的隐私保护,差分隐私算法应运而生,其是防止大数据处理系统的输出泄露个人数据的隐私保护方法。差分隐私算法的原理是:查分隐私算法对大数据处理系统的输出加噪声,使得该噪声既能防止大数据处理系统的输出泄露个人数据,又能对输出的精度的影响降低到最小。具体过程为:第三方数据查询者将查询算法提交到数据拥有者的服务器,该服务器确定在输入为输入数据集时,对应查询算法的查询输出,然后使用查分隐私模块根据敏感度,对该查询输出加噪声,最后服务器将加了噪声后的查询输出,返回给数据查询者。敏感度指从输入数据集中增加或删除一条数据记录后,查询输出最大的变化,也即单个数据记录对查询输出造成的最大扰动。可见,在敏感度较大时,加入查询输出的噪声会较大,严重影响查询输出的精度,反之,在敏感度较小时,加入查询输出的噪声较小,有可能无法保护个人隐私,所以确定敏感度至关重要。
相关技术中,在确定敏感度时,是使用暴力分析算法来确定敏感度。具体处理为:每次在输入数据集中删除一条数据记录,确定输入数据集中单条数据记录对查询输出最大的扰动,即确定出敏感度。
由于暴力分析算法需要每次在输入数据集中删除一条数据记录,确定该数据记录对输出最大的扰动,导致在输入数据集中数据记录较多的情况下,在确定敏感度的计算量比较大,进而导致数据处理效率低。
发明内容
本申请提供了一种数据处理的方法、装置、计算设备及存储介质,用以提升数据处理的效率。
第一方面,本申请提供了一种数据处理的方法,该方法包括:根据查询算法,确定输入数据集对应的第一查询输出;根据输入数据集中未被抽样的数据记录的第二查询输出和查询算法,确定输入数据集中被抽样的目标数目条数据记录中每条数据记录对第一查询输出的扰动,获得输入数据集对应的敏感度,未被抽样的数据记录与目标数目条数据记录组成输入数据集;根据该敏感度,对第一查询输出加噪声,输出加噪声后的第一查询输出。
本申请所示的方案,数据处理的方法由数据处理的装置执行,数据处理的装置在接收到一个数据查询请求后,可以确定该数据查询请求对应的输入数据集。数据处理的装置可以将输入数据集输入到该查询请求对应的查询算法,获得该输入数据集对应的第一查询输出。数据处理的装置将输入数据集中未被抽样的数据记录输入至查询算法,得到的输出即为第二查询输出。数据处理的装置使用第二查询输出和查询算法,确定输入数据集中被抽样的目标数目条数据记录中每条数据记录对第一查询输出的扰动。数据处理的装置将所有扰动中最大扰动,确定为输入数据集对应的敏感度。数据处理的装置使用敏感度,对第一查询输出加噪声(该噪声可以是拉普拉斯噪声),获得加噪声后的第一查询输出。数据处理的装置将第一查询输出发送至数据查询者使用的终端。这样,由于仅使用目标数目条数据记录,就能准确的确定出输入数据集的敏感度,所以不需要确定输入数据集中每条数据记录对查询输出的扰动,所以可以快速的确定出敏感度,进而可以快速为数据查询者输出查询输出,提高数据处理的效率。而且,由于目标数目是固定的,所以不管对于多大的数据集,确定敏感度的计算量是相同的,而不会像暴力分析算法,随着输入数据集的增加,确定敏感度的计算量快速增加,因此对于数据记录越大的数据集,本申请计算敏感度的开销相对于暴力分析算法计算敏感度的开销越小。
在一种可能的实现方式中,根据查询算法,确定输入数据集对应的第一查询输出之前,还包括:接收数据查询请求,数据查询请求包括查询算法;在数据查询请求对应的输入数据集中随机抽样目标数目条数据记录,获得目标数目条数据记录以及输入数据集中未被抽样的数据记录。
本申请所示的方案,数据查询者想要在数据处理的装置中查询数据时,在使用的终端中输入所要查询的内容,以及所使用的查询算法。终端可以生成数据查询请求,在该数据查询请求包括查询算法和所要查询的内容,所要查询的内容用于确定输入数据集。终端向数据处理的装置发送数据查询请求,数据处理的装置接收数据查询请求,在该数据查询请求中解析到查询算法和所要查询的内容。然后数据处理的装置使用该所要查询的内容,确定出数据查询请求对应的输入数据集。数据处理的装置在该输入数据集中,随机抽样目标数目条数据记录,这目标数目条数据记录即为被抽样的数据记录,输入数据集中除目标数目条数据记录之外的数据记录可以称为是未被抽样的数据记录。这样,数据处理的装置可以确定出抽样的数据记录和未被抽样的数据记录。
在一种可能的实现方式中,根据查询算法,确定输入数据集对应的第一查询输出,包括:根据查询算法,确定未被抽样的数据记录对应的第二查询输出和目标数目条数据记录对应的第三查询输出;根据第二查询输出和第三查询输出,确定输入数据集对应的第一查询输出。
本申请所示的方案,数据处理的装置可以将未被抽样的数据记录输入到查询算法,获得的输出即为第二查询输出。数据处理的装置可以将被抽样的数据记录(即目标数目条数据记录)输入到查询算法,获得的输出即为第三查询输出。数据处理的装置将第二查询输出和第三查询输出输入到查询算法,即获得第一查询输出。这样,由于查询算法中的大数据算子具有结合性和交换性,所以可以使用第二查询输出的第三查询输出,快速的确定出第一查询输出。
在一种可能的实现方式中,根据输入数据集中未被抽样的数据记录的第二查询输出和查询算法,确定输入数据集中被抽样的目标数目条数据记录中每条数据记录对第一查询输出的扰动,获得输入数据集对应的敏感度,包括:根据查询算法,确定目标数目条数据记录对应的第三查询输出;根据查询算法,确定目标数目条数据记录中分别删除每条数据记录后的查询输出;根据未被抽样的数据记录的第二查询输出、第三查询输出和目标数目条数据记录中分别删除每条数据记录后的查询输出,确定目标数目条数据记录中每条数据记录对第一查询输出的扰动;将目标数目条数据记录对第一查询输出的扰动中的最大扰动,确定为输入数据集对应的敏感度。
本申请所示的方案,数据处理的装置可以将被抽样的数据记录(即目标数目条数据记录)输入到查询算法,获得的输出即为第三查询输出。然后数据处理的装置在目标数目条数据记录中依次删除一条数据记录,确定删除每条数据记录的查询输出。数据处理的装置将第二查询输出与目标数目条数据记录中删除每条数据记录后的查询输出,分别输入至查询算法,获得目标数目条数据记录中删除每条数据记录后的查询输出分别对应的查询输出,后续称为是目标数目条数据记录对应的多个查询输出。数据处理的装置将第一查询输出分别与目标数目条数据记录对应的多个查询输出相减,获得目标数目条数据记录分别对第一查询输出的扰动。
然后数据处理的装置确定目标数目条数据记录分别对第一查询输出的扰动中的最大扰动,将该最大扰动,确定为输入数据集对应的敏感度。这样,由于可以仅使用目标数目条数据记录,准确的确定出输入数据集的敏感度,所以不需要确定输入数据集中每条数据记录对第一查询输出的扰动,所以可以快速的确定出敏感度,进而可以快速为数据查询者输出查询输出,提升数据处理的效率。
在一种可能的实现方式中,根据敏感度,对第一查询输出加噪声,输出加噪声后的第一查询输出之前,该方法还包括:将输入数据集,按照数据记录所属的分区,分为至少两个分区;根据查询算法,确定至少两个分区的当前查询输出;确定至少两个分区中的每个分区的当前查询输出与历史查询输出不相同。
本申请所示的方案,输出加噪声后的第一查询输出之前,还会判断输入数据集是否构成差分攻击,若未构成差分攻击,则直接输出加噪声后的第一查询输出。这样,可以尽可能的阻止差分攻击。
在一种可能的实现方式中,该方法还包括:对于至少两个分区中的目标分区,若目标分区的当前查询输出与目标分区的历史查询输出相同,则在目标分区中删除至少一条数据记录,使得至少两个分区中每个分区的当前查询输出与历史查询输出不相同;根据查询算法,确定目标分区删除至少一条数据记录后的查询输出;根据目标分区删除至少一条数据记录后的查询输出,确定输入数据集的第四查询输出;根据敏感度,对第四查询输出加噪声,输出加噪声后的第四查询输出。
本申请所示的方案,在输出加噪声后的第一查询输出之前,还会判断输入数据集是否构成差分攻击,若构成差分攻击,则通过调整分区中的数据记录,使得输入数据集不构成差分攻击,重新计算查询输出。这样,由于在输入数据集构成差分攻击时,可以阻止差分攻击,所以可以尽可能的实现数据隐私保护。
第二方面,本申请提供了一种数据处理的装置,该装置包括一个或多个模块,用于实现上述第一方面及其可能的实现方式的方法。
第三方面,提供了一种数据处理的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第一方面及其可能的实现方式的方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第一方面及其可能的实现方式的方法,或者使得计算设备实现上述第二方面及其可能的实现方式的装置的功能。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第一方面及其可能的实现方式的方法,或者使得计算设备实现上述二方面及其可能的实现方式的装置的功能。
附图说明
图1是本申请一个示例性实施例提供的大数据算子的结合性的示意图;
图2是本申请一个示例性实施例提供的大数据算子的交换性的示意图;
图3是本申请一个示例性实施例提供的计算设备的结构示意图;
图4是本申请一个示例性实施例提供的数据处理的方法的系统示意图;
图5是本申请一个示例性实施例提供的数据处理的装置的结构示意图;
图6是本申请一个示例性实施例提供的数据处理的方法的流程示意图;
图7是本申请一个示例性实施例提供的确定查询输出的示意图;
图8是本申请一个示例性实施例提供的差分攻击的示意图;
图9是本申请一个示例性实施例提供的分区被独立处理的示意图;
图10是本申请一个示例性实施例提供的数据处理的方法的流程示意图;
图11是本申请一个示例性实施例提供的确定查询输出的示意图;
图12是本申请一个示例性实施例提供的确定查询输出的示意图;
图13是本申请一个示例性实施例提供的数据处理的装置的结构示意图;
图14是本申请一个示例性实施例提供的数据处理的装置的结构示意图;
图15是本申请一个示例性实施例提供的数据处理的装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于对本申请实施例的理解,下面首先介绍本申请实施例所涉及到的名词的概念:
大数据处理系统,利用多台设备并行计算大量数据的程序,如Apache Spark、Camdoop、DryadLINQ、Pregel等。
数据记录,数据集中的一行数据信息,数据记录是构成数据集的单元。
大数据算子,具有结合性和交换性的函数,如Apache Spark的映射算子(map)和归约算子(reduce)。
结合性:输入数据集中的数据记录被分割为多个不重叠的集合时,大数据算子可以先计算每个集合的输出,再将所有集合的输出作为该大数据算子的输入,获得的输出,即为输入数据集输入大数据算子的输出。例如,如图1所示,大数据算子用于求和,输入数据集({1,4,2,3,1,2,3,1})输入大数据算子,输出为17,输入数据集({1,4,2,3,1,2,3,1})被分割成两个不重叠的集合(即{1,4,2,3}和{1,2,3,1}),{1,4,2,3}输入大数据算子,输出为10,{1,2,3,1}输入大数据算子,输出为7。将10和7输入大数据算子,输出为17。
交换性:大数据算子可以让输入数据集的记录以任意顺序输入该大数据算子,不论输入数据集的数据记录以何种顺序输入到大数据算子,该大数据算子的输出都是一样的,不会受到数据记录的输入顺序的影响。例如,如图2所示,大数据算子用于求和,输入数据集为{1,4,2,3,1,2,3,1},输入数据集以{1,4,2,3,1,2,3,1}、{1,1,4,2,3,1,2,3}、{3,1,1,4,2,3,1,2},…{4,2,3,1,2,3,1,1}等各种顺序输入大数据算子,输出均为17。
映射算子,Apache Spark常用的算子之一,是具有结合性和交换性的一对一函数,一对一函数是指输入和输出均只有一条数据记录的函数,映射算子的主要应用为改变单个数据记录的值或值的类型,如将字符串转换为数字等。
归约算子,Apache Spark常用的算子之一,是具有结合性和交换性的多对一函数,多对一函数是指输入为多个数据记录,输出只有一个值的函数,归约算子的主要应用为结合多个数据记录的值,如对多个数据集的值求和,获得一个输出。
查询算法,查询算法是由大数据算子组成,如映射算子、归约算子等。查询算法可以是任意的大数据算法。例如,用于求和的算法、用于作差的算法等。
敏感度,从输入数据集中加入或删除一条数据记录后,对查询输出(查询输出为将输入数据集输入查询算法获得的输出)造成最大的变化。
在大数据领域中,为了实现个人数据的保护隐私,会使用敏感度对查询输出进行加噪声,该噪声是基于输入数据集的敏感度确定的,所以如何快速准确的确定敏感度至关重要。相关技术中,在确定敏感度时,是使用暴力分析算法来确定敏感度。具体处理为:每次在输入数据集中删除一条数据记录,确定输入数据集中单条数据记录对查询输出最大的扰动,即确定出敏感度。由于暴力分析算法需要每次在输入数据集中删除一条数据记录,确定该数据记录对输出最大的扰动,导致在输入数据集中数据记录较多的情况下,在确定敏感度的计算量比较大,进而导致数据处理的效率比较低。所以本申请提供了一种数据处理的方法,以实现快速准确的确定敏感度,进而实现高效率的对数据进行处理。
在对本申请实施例提供的数据处理的方法介绍之前,对本申请实施例所适用的系统架构进行介绍。
数据处理的方法可以由数据处理的装置执行。数据处理的装置既可以是一个硬件装置,如服务器、终端计算设备等,也可以是一个软件装置(如可以为运行在硬件装置上的一套软件程序)。
数据处理的装置可以部署在云环境,云环境是云计算模式下利用基础资源向用户提供云服务的实体。云环境包括云数据中心和云服务平台,该云数据中心包括云服务提供商拥有的大量基础资源(包括计算资源、存储资源和网络资源),云数据中心包括的计算资源可以是大量的计算设备(例如服务器)。数据处理的装置可以是云数据中心中用于数据处理的服务器;数据处理的装置也可以是创建在云数据中心中的用于数据处理的虚拟机;数据处理的装置还可以是部署在云数据中心中的服务器或者虚拟机上的软件装置,该软件装置用于进行数据处理,该软件装置可以分布式地部署在多个服务器上、或者分布式地部署在多个虚拟机上、或者分布式地部署在虚拟机和服务器上。
当数据处理的装置为软件装置时,数据处理的装置可以在逻辑上分成多个部分,每个部分具有不同的功能(多个部分例如,数据处理的装置可以包括确定模块、输出模块等)。数据处理的装置的几个部分可以分别部署在不同的环境或设备上,部署在不同环境或设备上的数据处理的装置的各个部分之间协同实现数据处理的功能。应理解,本申请不对数据处理的装置的各部分的划分进行限制性的限定,也不对数据处理的装置具体部署在哪个环境进行限制性的限定。实际应用时可根据各计算设备的计算能力或具体应用需求进行适应性的部署。
当数据处理的装置为软件装置时,数据处理的装置也可以单独部署在任意环境(云环境、终端计算设备等)中的一个计算设备上;当数据处理的装置为硬件设备时,数据处理的装置可以是任意环境中的一个计算设备300。图3提供了一种计算设备300的结构示意图,图3所示的计算设备300包括存储器301、处理器302、通信接口303以及总线304。其中,存储器301、处理器302、通信接口303通过总线304实现彼此之间的通信连接。
存储器301可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器301可以存储计算机指令,当存储器301中存储的计算机指令被处理器302执行时,处理器302和通信接口303用于执行数据处理的方法。存储器还可以存储数据,例如,存储器301中的一部分用来存储数据处理的方法所需的数据,以及用于存储程序执行过程中的中间数据或结果数据。
处理器302可以采用通用的中央处理器(Central Processing Unit,CPU),应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphicsprocessing unit,GPU)或其任意组合。处理器302可以包括一个或多个芯片,处理器302可以包括人工智能(artificial intelligence,AI)加速器,例如,神经网络处理器(neuralprocessing unit,NPU)。
通信接口303使用例如但不限于收发器一类的收发模块,来实现计算设备300与其他设备或通信网络之间的通信。例如,可以通过通信接口303获取数据处理时所需的数据。
总线304可包括在计算设备300各个部件(例如,存储器301、处理器302、通信接口303)之间传送信息的通路。
为了更好的理解本申请实施例,如图4所示,提供了数据查询的整个流程,即数据查询者的终端向数据处理的装置发送查询请求,查询请求中包括查询算法,数据处理的装置可以计算查询输出和输入数据集的敏感度,基于敏感度为查询输出加噪声,将加噪声后的查询输出返回给数据查询者的终端。
数据处理的装置在执行数据处理的方法时,在逻辑上可以分为三个模块,分别为抽样和分区模块,确定敏感度和分区的查询输出的模块(可以简称为确定模块)和处理查询输出的模块(可以简称为输出模块)。确定模块可以由大数据算子组成。例如,如图5所示,确定模块可以包括3个大数据算子等。
抽样和分区模块用于将输入数据集划分分区,并且在输入数据集中随机抽样目标数目条数据记录,使得输入数据集分为被抽样的数据记录和被抽样的数据记录。
确定模块,用于确定被抽样的数据记录中每条数据记录对输入数据集的查询输出的扰动和分区的查询输出。
输出模块,用于为输入数据集的查询输出加噪声等处理。
当然,数据处理的装置还可以包括接收模块,用于接收数据查询请求等。
此处需要说明的是,查询算法包括大数据算子,确定模块也由大数据算子构成,在执行数据处理的方法时,实际是确定模块中大数据算子共同实现查询算法。
下面将结合图6对本申请实施例提供的数据处理的方法进行说明,该方法可以由数据处理的装置执行。如图6所示,该方法的处理流程如下:
步骤601,数据处理的装置根据查询算法,确定输入数据集对应的第一查询输出。
在本实施例中,数据处理的装置在接收到一个数据查询请求后,可以确定该数据查询请求对应的输入数据集。数据处理的装置可以将输入数据集输入到该查询请求对应的查询算法,获得该输入数据集对应的第一查询输出。
例如,查询请求对应的查询算法为用于求和的算法,输入数据集为{1,4,2,3,1,2,3,1},查询输出为17。
步骤602,数据处理的装置根据输入数据集中未被抽样的数据记录的第二查询输出和查询算法,确定输入数据集中被抽样的目标数目条数据记录中每条数据记录对第一查询输出的扰动,获得输入数据集对应的敏感度。
其中,目标数目是一个比较大的数值,如1000等。目标数目条数据记录由输入数据集中被抽样(也可以称为被选择)的数据记录组成。未被抽样的数据记录为输入数据集中除目标数目条数据记录之外的数据记录。
在本实施例中,数据处理的装置可以将输入数据集中未被抽样的数据记录输入至查询算法,得到的输出即为第二查询输出。数据处理的装置可以使用第二查询输出和查询算法,确定输入数据集中被抽样的目标数目条数据记录中每条数据记录对第一查询输出的扰动。数据处理的装置将所有扰动中最大扰动,确定为输入数据集对应的敏感度。
步骤603,数据处理的装置根据敏感度,对第一查询输出加噪声,输出加噪声后的第一查询输出。
在本实施例中,数据处理的装置可以使用敏感度,对第一查询输出加噪声(该噪声可以是拉普拉斯噪声),获得加噪声后的第一查询输出。数据处理的装置将第一查询输出发送至数据查询者使用的终端。具体的,在敏感度较低时,第一查询输出加的噪声较小,在敏感度较高时,对第一查询输出加的噪声比较大。
这样,由于可以仅使用目标数目条数据记录,准确的确定出输入数据集的敏感度,所以不需要确定输入数据集中每条数据记录对查询输出的扰动,所以可以快速的确定出敏感度,进而可以快速为数据查询者输出查询输出。另外,由于目标数目是固定的,所以不管对于多大的数据集,确定敏感度的计算量是相同的,而不会像暴力分析算法,随着输入数据集的增加,确定敏感度的计算量快速增加,因此对于数据记录越大的数据集,本申请计算敏感度的开销相对于暴力分析算法计算敏感度的开销越小。
此处能准确的确定出输入数据集的敏感度的原因为:
单个数据记录对查询输出的扰动大致服从正态分布(大多数数据记录对查询输出的扰动小,小部分的数据记录对查询输出的扰动大),对于服从正态分布的输入数据集,无论该输入数据集有多大,从输入数据集里随机取样目标数目(如1000)个样本就足以准确的拟合该输入数据集所服从的正态分布。因此,对于一个输入数据集,本申请所估算的敏感度在统计理论上和实际敏感度相同。
在一种可能的实现方式中,在步骤601之前,还执行如下处理:
步骤600,数据处理的装置接收数据查询请求,数据查询请求包括查询算法,在数据查询请求对应的输入数据集中随机抽样目标数目条数据记录,获得目标数目条数据记录以及输入数据集中未被抽样的数据记录。
在本实施例中,数据查询者想要在数据处理的装置中查询数据时,在使用的终端中输入所要查询的内容,以及所使用的查询算法。终端可以生成数据查询请求,在该数据查询请求包括查询算法和所要查询的内容,所要查询的内容用于确定输入数据集,如2020年5月10日至2020年5月30日住院的患者信息。此处查询算法可以是具体的算法执行代码,也可以是查询算法的标识。
终端向数据处理的装置发送数据查询请求,数据处理的装置接收数据查询请求,在该数据查询请求中解析到查询算法和所要查询的内容。然后数据处理的装置使用该所要查询的内容,确定出数据查询请求对应的输入数据集。数据处理的装置在该输入数据集中,随机抽样目标数目条数据记录,这目标数目条数据记录即为被抽样的数据记录,输入数据集中除目标数目条数据记录之外的数据记录可以称为是未被抽样的数据记录。这样,数据处理的装置可以确定出抽样的数据记录和未被抽样的数据记录。另外,如果查询请求中的查询算法是执行代码,则数据处理的装置后续直接运行该执行代码,如果查询请求中的查询算法是查询算法的标识,则数据处理的装置使用该标识,获取到查询算法的执行代码,后续直接运行该执行代码。
另外,步骤600中,数据查询者的终端在向数据处理的装置发送查询请求时,查询请求中还包括数据查询者的标识。数据处理的装置在接收到数据查询请求,可以在数据查询请求中解析到数据查询者的标识。数据处理的装置判断该标识是否位于可信标识名单中(可信标识名单中的数据查询者在查询时,直接输出结果,不需要加噪声处理),若数据查询者的标识位于可信标识名单中,则确定输入数据集的查询输出,直接进行输出,若数据查询者的标识未位于可信标识名单中,则进行加噪声的处理流程。
在一种可能的实现方式中,可以使用大数据算子的交换性和结合性,确定第一查询输出,步骤601的处理为:
数据处理的装置根据查询算法,确定未被抽样的数据记录对应的第二查询输出和目标数目条数据记录对应的第三查询输出,根据第二查询输出和第三查询输出,确定输入数据集对应的第一查询输出。
在本实施例中,数据处理的装置可以将未被抽样的数据记录输入到查询算法,获得的输出即为第二查询输出。数据处理的装置可以将被抽样的数据记录(即目标数目条数据记录)输入到查询算法,获得的输出即为第三查询输出。数据处理的装置将第二查询输出和第三查询输出输入到查询算法,即获得第一查询输出。
例如,输入数据集为{1,4,2,3,1,2,3,1},目标数目条数据记录为{1,4,2},未被抽样的数据记录为{3,1,2,3,1},查询算法用于求和,数据处理的装置将{1,4,2}输入查询算法,输出为7(即第三查询输出),数据处理的装置将{3,1,2,3,1}输入查询算法,输出为10(即第二查询输出)。数据输出的装置将10和7输入到查询算法,输出为17(即第一查询输出)。
在一种可能的实现方式中,在步骤602中,确定输入数据集对应的敏感度的处理为:
数据处理的装置根据查询算法,确定目标数目条数据记录对应的第三查询输出。根据查询算法,确定目标数目条数据记录中分别删除每条数据记录后的查询输出,根据未被抽样的数据记录的第二查询输出、第三查询输出和目标数目条数据记录中分别删除每条数据记录后的查询输出,确定目标数目条数据记录中每条数据记录对第一查询输出的扰动。将目标数目条数据记录对第一查询输出的扰动中的最大扰动,确定为输入数据集对应的敏感度。
在本实施例中,数据处理的装置可以将被抽样的数据记录(即目标数目条数据记录)输入到查询算法,获得的输出即为第三查询输出。然后数据处理的装置在目标数目条数据记录中依次删除一条数据记录,确定删除每条数据记录的查询输出。
数据处理的装置将未被抽样的数据记录的第二查询输出与第三查询输出输入至查询算法,获得第一查询输出。数据处理的装置将第二查询输出与目标数目条数据记录中删除每条数据记录后的查询输出,分别输入至查询算法,获得目标数目条数据记录中删除每条数据记录后的查询输出分别对应的查询输出,后续称为是目标数目条数据记录对应的多个查询输出。数据处理的装置将第一查询输出分别与目标数目条数据记录对应的多个查询输出相减,获得目标数目条数据记录分别对第一查询输出的扰动。
然后数据处理的装置确定目标数目条数据记录分别对第一查询输出的扰动中的最大扰动,将该最大扰动,确定为输入数据集对应的敏感度。这样,由于可以仅使用目标数目条数据记录,准确的确定出输入数据集的敏感度,所以不需要确定输入数据集中每条数据记录对查询输出的扰动,所以可以快速的确定出敏感度,进而可以快速为数据查询者输出查询输出。
例如,如图7所示,输入数据集为{1,4,2,3,1,2,3,1},目标数目条数据记录为{1,4,2},未被抽样的数据记录为{3,1,2,3,1},查询算法用于求和,数据处理的装置将{1,4,2}输入查询算法,输出为7(即第三查询输出),数据处理的装置将{4,2}、{1,2}、{1,4}分别输入查询算法,输出为7(即第三查询输出)、6、3、5,数据处理的装置将{3,1,2,3,1}输入查询算法,输出为10(即第二查询输出)。数据输出的装置将10和7输入到查询算法,输出为17(即第一查询输出)。数据记录1对第一查询输出的扰动为17-16=1,数据记录2对第一查询输出的扰动为17-15=2,数据记录4对第一查询输出的扰动为17-13=4,这样,最大扰动为4,输入数据集{1,4,2,3,1,2,3,1}的敏感度为4。图7中在数据记录上的斜线表示删除该数据记录。
在一种可能的实现方式中,即使图6所示的流程中估算的敏感度与实际敏感度有偏差,本申请实施例可以通过侦测并阻止差分攻击,尽可能的为输入数据集提供差分隐私保护。首先介绍下差分攻击:给定两个查询算法Q和Q'(Q和Q'所对应的输入数据集分别是D和D'),“差分攻击”定义为查询算法Q和Q'拥有相同的输入输出映射,且D和D'仅相差一个数据记录。如图8所示,数据查询者向数据处理的装置提交了两个具有相同输入输出映射的算法(此处是求和),并且在提交查询算法Q'时要求过滤掉输入数据集中的数据记录(4),查询算法Q的输入数据集D{1,4,2,3,1,2,3,1}和查询算法Q'的输入数据集D'{1,2,3,1,2,3,1}仅相差一个数据记录(4),数据查询者可以从这两个查询算法的查询输出的差异(查询输出17和13差异为4),判断出数据记录“4”是存在于输入数据集中。
为了更好的阻止差分攻击,本申请实施例侦测和阻止差分攻击的原理也使用了大数据算子的交换性和结合性,大数据算子的交换性和结合性使得输入数据集中每一条数据记录或每个输入数据集的子集(即后续提到的分区)都是独立被处理。因此一个数据记录或者一个分区的查询输出改变了,另外一个记录或者分区的查询输出不会受到影响。具体的,输入数据集D,D1(分区一)和D2(分区二)是D的两个不重合分区,且D1和D2合并后为D(D1∪D2=D),D1的查询输出为O1=Q(D1),D2的查询输出为O2=Q(D2),若假设D1少了一条数据记录,则O1可能会改变,但O2必然不会改变。
例如,如图9所示(图9中的斜线表示删除),假设输入数据集为{1,4,2,3,1,2,3,1},输入数据集的前4条数据记录组成分区一(即D1为{1,4,2,3}),输入数据集的后四条数据记录组成分区二(即D2为{1,2,3,1}),查询算法为用于求和的算法,若从D1中删除第一条数据记录,D1的查询输出从10降为9,而D2的查询输出维持不变(查询输出依然为7),输入数据集的查询输出从17降为16。这是因为大数据算子的交换性和结合性让每一个分区都被独立处理。因此,本申请实施例通过对比当前查询的分区的查询输出(即当前查询输出)以及该分区过往的查询输出(即历史查询输出),以判断当前查询输出否能构成差分攻击(即当前查询与过往查询的查询算法是否有相同的输入输出映射,且输入数据集只相差一个记录)。
如下提供了在数据处理过程中,如何阻止差分攻击的流程,如图10所示:
步骤1001,数据处理的装置将输入数据集,按照数据记录所属的分区,分为至少两个分区。
在本实施例中,数据处理的装置在要存储数据记录时,已经划分好分区。或者,存储输入数据集的设备在存储数据记录时,已经划分好分区。对于每条数据记录在存储时,就为每条数据记录划分了分区,即对应每条数据记录存储有所有的分区的标识。具体的,在划分分区时,一般每个分区所包括的数据记录的数目基本相同。
数据处理的装置可以将输入数据集,按照输入数据集中每条数据记录所属的分区,将输入数据集划分为至少两个分区。
在一种可能的实现方式中,为了使得阻止差分攻击的处理所占用的处理资源比较少,输入数据集划分得到的分区为两个。
步骤1002,数据处理的装置根据查询算法,确定至少两个分区的当前查询输出。
在本实施例中,数据处理的装置将至少两个分区的数据记录分别输入到查询算法,得到的输出即为该至少两个分区的当前查询输出。
步骤1003,数据处理的装置判断至少两个分区中是否存在当前查询输出与历史查询输出相同的分区。
在本实施例中,数据处理的装置每次确定出分区的查询输出均会进行存储,可以是存储在本地,也可以是存储至其他外接的其他设备等。数据处理的装置获取至少两个分区中每个分区的历史查询输出。对于每个分区,数据处理的装置确定每个分区的当前查询输出与历史查询输出是否相同。例如,输入数据集D包括的至少两个分区为D1和D2,当前的查询输出分别为O1和O2,历史查询输出分别为O1'和O2',比较O1和O1'是否相同,并比较O2和O2'是否相同,若O1和O1'不相同,且O2和O2'不相同,则D1和D2必然相差两条或两条以上的数据记录,不可能构成差分攻击,进入步骤1004。若O1和O1'相同,和/或,O2和O2'相同,则输入数据集的当前查询输出与历史查询输出有可能构成差分攻击,进入步骤1005。
此处需要说明的是,由于分区是在存储数据记录时就已经划分完成,所以后续在输入数据集更新的过程中,仅是分区中的数据记录进行更新,而不会导致输入数据集的分区的数目的变化,所以有可能会存在分区的当前查询输出与历史查询输出不相同。
步骤1004,若确定至少两个分区中的每个分区的当前查询输出与历史查询输出不相同,则数据处理的装置执行步骤603的处理。
在本实施例中,数据处理的装置确定至少两个分区中每个分区的当前查询输出与历史查询输出不相同时,数据处理的装置可以确定输入数据集未构成差分攻击,执行步骤603的处理,即数据处理的装置可以使用敏感度,对第一查询输出加噪声,获得加噪声后的第一查询输出,将第一查询输出发送至数据查询者使用的终端。
另外,如果对于分区不存在历史查询输出,则输入数据集不会构成差分攻击,可以直接执行步骤603的处理。
步骤1005,数据处理的装置对于至少两个分区中的目标分区,若目标分区的当前查询输出与目标分区的历史查询输出相同,则在目标分区中删除至少一条数据记录,使得至少两个分区中每个分区的当前查询输出与历史查询输出不相同,执行步骤1006至步骤1008的处理。
其中,目标分区为至少两个分区中当前查询输出与历史查询输出相同的分区。
在本实施例中,数据处理的装置确定目标分区的当前查询输出与目标分区的某个历史查询输出相同,则可以在目标分区中删除至少一条数据记录,以满足目标分区的当前查询输出与每个历史查询输出均不相同。
此处需要说明的是,为了使得为数据查询者提供的查询输出相对还比较准确,至少一条数据记录为一条数据记录。
步骤1006,数据处理的装置根据查询算法,确定目标分区删除至少一条数据记录后的查询输出。
在本实施例中,数据处理的装置将删除至少一条数据记录的目标分区输入至查询算法,得到查询输出。另外,数据的处理的装置将至少两个分区中除目标分区之外的分区的数据记录输入至查询算法,获得查询输出。
步骤1007,数据处理的装置根据目标分区删除至少一条数据记录后的查询输出,确定输入数据集的第四查询输出。
在本实施例中,数据处理的装置将步骤1006获得的查询输出,输入至查询算法,得到的输出,即为阻止差分攻击后,输入数据集的第四查询输出。
步骤1008,数据处理的装置根据敏感度,对第四查询输出加噪声,输出加噪声后的第四查询输出。
在本实施例中,数据处理的装置可以将步骤602获得敏感度,为第四查询输出加噪声,获得加噪声后的第四查询输出。数据处理的装置将加噪声后的第四查询输出发送至数据查询者的终端。
这样,可以准确的判断是否构成差分攻击,在构成差分攻击时,阻止差分攻击,可以保护个人数据。
另外,在图10的流程中,还可以使用步骤602的敏感度的原因为:输入数据集中的数据记录比较大,删除目标分区的至少一条数据记录,对敏感度的影响比较小,所以不仅不会影响为查询输出加的噪声,而且还可以节约数据处理的时间。
另外,当然本申请实施例中在执行步骤1005之后,也可以重新按照当前的输入数据集重新计算敏感度,步骤1008中使用的也是重新计算的敏感度。
对于图10的流程还提供了如下例子,如图11所示,查询算法为用于求和的算法,输入数据集为{1,4,2,3,1,2,3,1},输入数据集的前4条数据记录组成分区一(即D1为{1,4,2,3}),输入数据集的后四条数据记录组成分区二(即D2为{1,2,3,1}),分区一和分区二的当前查询输出为10和7,分区一的历史查询输出为9、8,分区二的历史查询输出为100、99,分区一的当前查询输出与历史查询输出不相同,分区二的当前查询输出与历史查询输出不相同,输入数据集对应的第一查询输出为17。
如图12所示,查询算法为用于求和的算法,输入数据集为{1,4,2,3,1,2,3,1},输入数据集的前4条数据记录组成分区一(即D1为{1,4,2,3}),输入数据集的后四条数据记录组成分区二(即D2为{1,2,3,1}),分区一和分区二的当前查询输出为10和7,分区一的历史查询输出为10、8,分区二的历史查询输出为100、99,分区一的当前查询输出与历史查询输出相同,在分区一中删除数据记录1,当前查询输出从10变为9,分区二的当前查询输出与历史查询输出不相同,输入数据集对应的第四查询输出为16(即9+7=16)。
本申请在大数据处理系统Apache Spark上实现时,如图13所示,在Apache Spark中包括抽样和分区模块、确定分区的查询输出和敏感度的模块(简称为确定模块)和处理查询输出的模块(简称为输出模块)。在确定分区的查询输出的抽样的模块中,可以通过映射算子和归约算子实现。抽样和分区模块实现分区和抽样,确定模块计算未被抽样且属于分区一的数据记录的查询输出、未被抽样且属于分区二的数据记录的查询输出、被抽样且属于分区一的数据记录的查询输出、被抽样且属于分区一的数据记录的查询输出,然后使用这四个查询输出,确定敏感度、分区一、分区二的查询输出。处理查询输出的模块使用敏感度、分区一、分区二的查询输出,侦测并阻止差分攻击,确定上述提到的加噪声的第一查询输出。
例如,对应图12,查询算法用于求和,查询算法由映射算子M和归约算子R构成,输入数据集为{1,4,2,3,1,2,3,1},抽样和分区模块获取输入数据集,将输入数据集D分为分区一(即D1)和分区二(即D2),未被抽样的数据记录组成S',被抽样的数据记录组成S。以S'1表示未被抽样且属于D1的数据记录,以S'2表示未被抽样且属于D2的数据记录,以S1表示被抽样且属于D1的数据记录,以S2表示被抽样且属于D2的数据记录。
结合图7和图11,S'1是{3},S'2是{1,2,3,1},S1是{1,4,2},S2是为空集。确定模块中映射算子确定M(S'1)={3},M(S'2)={1,2,3,1},M(S1)={1,4,2},该映射算子将M(S'1)={3}、M(S1)={1,4,2}输入至确定模块中第一个归约算子,将 输入至确定模块中第二个归约算子。
确定模块中的第一个归约算子计算M(S'1)的查询输出为R(M(S'1))为3,M(S1)的查询输出为R(M(S1))为7,并且第一个归约算子确定R(M(S)),R(M(S-s1)),...,R(M(S-sn))。R(M(S-s1))指在被抽样的数据记录中删除数据记录s1后,被抽样的数据记录的查询输出,R(M(S-sn))指在被抽样的数据记录中删除数据记录sn后,被抽样的数据记录的查询输出,其中,n为被抽样的数据记录的数目。第二个归约算子计算M(S'2)的查询输出为R(M(S'2))为7,M(S2)的查询输出为R(M(S2))为0。第一个归约算子和第二归约算子将R(M(S'1))、R(M(S1))、R(M(S'2))、M(S2)输入至确定模块中的第三个归约算子,第三个归约算子根据交换性和结合性,可以得出:
R(M(S'))=R(R(M(S'1)),R(M(S'2)))=10;
R(M(S))=R(R(M(S1)),R(M(S2)))=7;
R(M(D1))=R(R(M(S'1)),R(M(S1)))=10;
R(M(D2))=R(R(M(S'2)),R(M(S2)))=7。
并且第三个归约算子还可以根据R(M(S'))和R(M(S)),确定出被抽样的数据记录中各条数据记录对输入数据集的扰动,即R(M(D-s1)),...,R(M(D-sn))。R(M(D-s1))指在被抽样的数据记录中删除数据记录s1后,对输入数据集的查询输出的扰动,R(M(D-sn))指在被抽样的数据记录中删除数据记录sn后,对输入数据集的查询输出的扰动。其中,n为被抽样的数据记录的数目,R(M(D-s1))=R(M(D1))+R(M(D2))-R(M(S-s1)),...,R(M(D-sn))=R(M(D1))+R(M(D2))-R(M(S-sn))。
然后第三个归约算子将R(M(D1))、R(M(D2))、R(M(D-s1)),...,R(M(D-sn))输出至处理查询输出的模块。
处理查询输出的模块比较R(M(D1))与D1的历史查询输出、R(M(D2))与D2的历史查询输出,若R(M(D1))与D1的历史查询输出不相同,且R(M(D2))与D2的历史查询输出不相同,则结合R(M(D1))和R(M(D2)),以获得输入数据集D的查询输出R(M(D))。若R(M(D1))与D1的历史查询输出相同,且R(M(D2))与D2的历史查询输出不相同,则在D1中删除一个数据记录,使得D1的当前查询输出与历史查询输出不相同,然后处理查询输出的模块确定删除数据记录后的D1的查询输出R(M(D1)),结合删除数据记录后的R(M(D1))和R(M(D2))以获得输入数据集D的查询输出R(M(D))。若R(M(D1))与D1的历史查询输出不相同,且R(M(D2))与D2的历史查询输出相同,则在D2中删除一个数据记录,使得D2的当前查询输出与历史查询输出不相同,然后处理查询输出的模块确定删除数据记录后的D2的查询输出R(M(D2)),结合R(M(D1))和删除数据记录后的R(M(D2)),以获得输入数据集D的查询输出R(M(D))。若R(M(D1))与D1的历史查询输出相同,且R(M(D2))与D2的历史查询输出相同,则在D1和D2中分别删除一个数据记录,使得删除数据记录后的D1的当前查询输出与D1的历史查询输出不相同,使得删除数据记录后的D2的当前查询输出与D2的历史查询输出不相同。然后处理查询输出的模块确定删除数据记录后的D1、D2的查询输出R(M(D1))和R(M(D2)),结合删除数据记录后的R(M(D1))和删除数据记录后的R(M(D2)),以获得输入数据集D的查询输出R(M(D))。
处理查询输出的模块在R(M(D-s1)),...,R(M(D-sn))中确定最大值,该最大值即为输入数据集D的敏感度,然后处理查询输出的模块为R(M(D))加拉普拉斯噪声,获得加噪声的查询输出,将加噪声后的查询输出返回给数据查询者的终端。
另外,本申请实施例中为了更形象的表明本申请的技术方案,输入数据集中的数据记录比较少,在实际处理中,输入数据集包括大量的数据记录。
另外,在本申请实施例中,由于大数据算子一般具有交换性和结合性,所以本申请实施例可以应用于一般的大数据查询算法。
图14是本申请实施例提供的数据处理的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为服务器中的部分或者全部。本申请实施例提供的服务器可以实现本申请实施例图6所述的流程,该装置包括:确定模块1410和输出模块1420,其中:
确定模块1410,用于:
根据查询算法,确定输入数据集对应的第一查询输出;
根据所述输入数据集中未被抽样的数据记录的第二查询输出和所述查询算法,确定所述输入数据集中被抽样的目标数目条数据记录中每条数据记录对所述第一查询输出的扰动,获得所述输入数据集对应的敏感度,所述未被抽样的数据记录与所述目标数目条数据记录组成所述输入数据集;具体可以实现上述步骤601中的确定功能,以及其它隐含步骤;
输出模块1420,用于根据所述敏感度,对所述第一查询输出加噪声,输出加噪声后的第一查询输出;具体可以实现上述步骤602中的输出功能,以及其它隐含步骤。
在一种可能的实现方式中,如图15所示,所述装置还包括:
接收模块1430,用于根据查询算法,确定输入数据集对应的第一查询输出之前,接收数据查询请求,所述数据查询请求包括查询算法;
抽样和分区模块1440,用于在所述数据查询请求对应的所述输入数据集中随机抽样目标数目条数据记录,获得所述目标数目条数据记录以及所述输入数据集中未被抽样的数据记录。
在一种可能的实现方式中,所述确定模块1410,用于:
根据所述查询算法,确定所述未被抽样的数据记录对应的第二查询输出和所述目标数目条数据记录对应的第三查询输出;
根据所述第二查询输出和所述第三查询输出,确定所述输入数据集对应的第一查询输出。
在一种可能的实现方式中,所述确定模块1410,用于:
根据所述查询算法,确定所述目标数目条数据记录对应的第三查询输出;
根据所述查询算法,确定所述目标数目条数据记录中分别删除每条数据记录后的查询输出;
根据所述未被抽样的数据记录的第二查询输出、所述第三查询输出和所述目标数目条数据记录中分别删除每条数据记录后的查询输出,确定所述目标数目条数据记录中每条数据记录对所述第一查询输出的扰动;
将所述目标数目条数据记录对所述第一查询输出的扰动中的最大扰动,确定为所述输入数据集对应的敏感度。
在一种可能的实现方式中,抽样和分区模块1440,还用于:
根据所述敏感度,对所述第一查询输出加噪声,输出加噪声后的第一查询输出之前,将所述输入数据集,按照数据记录所属的分区,分为至少两个分区;
所述确定模块1410,还用于:
根据所述查询算法,确定所述至少两个分区的当前查询输出;
确定所述至少两个分区中的每个分区的当前查询输出与历史查询输出不相同。
在一种可能的实现方式中,所述确定模块1410,还用于:
对于所述至少两个分区中的目标分区,若所述目标分区的当前查询输出与所述目标分区的历史查询输出相同,则在所述目标分区中删除至少一条数据记录,使得所述至少两个分区中每个分区的当前查询输出与历史查询输出不相同;
根据所述查询算法,确定所述目标分区删除所述至少一条数据记录后的查询输出;
根据所述目标分区删除所述至少一条数据记录后的查询输出,确定所述输入数据集的第四查询输出;
所述输出模块1420,还用于根据所述敏感度,对所述第四查询输出加噪声,输出加噪声后的第四查询输出。
上述本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在服务器或终端上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是服务器或终端能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。
Claims (14)
1.一种数据处理的方法,其特征在于,所述方法包括:
根据查询算法,确定输入数据集对应的第一查询输出;
根据所述输入数据集中未被抽样的数据记录的第二查询输出和所述查询算法,确定所述输入数据集中被抽样的目标数目条数据记录中每条数据记录对所述第一查询输出的扰动,获得所述输入数据集对应的敏感度,所述未被抽样的数据记录与所述目标数目条数据记录组成所述输入数据集;
根据所述敏感度,对所述第一查询输出加噪声,输出加噪声后的第一查询输出。
2.根据权利要求1所述的方法,其特征在于,所述根据查询算法,确定输入数据集对应的第一查询输出之前,还包括:
接收数据查询请求,所述数据查询请求包括查询算法;
在所述数据查询请求对应的所述输入数据集中随机抽样目标数目条数据记录,获得所述目标数目条数据记录以及所述输入数据集中未被抽样的数据记录。
3.根据权利要求1或2所述的方法,其特征在于,所述根据查询算法,确定输入数据集对应的第一查询输出,包括:
根据所述查询算法,确定所述未被抽样的数据记录对应的第二查询输出和所述目标数目条数据记录对应的第三查询输出;
根据所述第二查询输出和所述第三查询输出,确定所述输入数据集对应的第一查询输出。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述输入数据集中未被抽样的数据记录的第二查询输出和所述查询算法,确定所述输入数据集中被抽样的目标数目条数据记录中每条数据记录对所述第一查询输出的扰动,获得所述输入数据集对应的敏感度,包括:
根据所述查询算法,确定所述目标数目条数据记录对应的第三查询输出;
根据所述查询算法,确定所述目标数目条数据记录中分别删除每条数据记录后的查询输出;
根据所述未被抽样的数据记录的第二查询输出、所述第三查询输出和所述目标数目条数据记录中分别删除每条数据记录后的查询输出,确定所述目标数目条数据记录中每条数据记录对所述第一查询输出的扰动;
将所述目标数目条数据记录对所述第一查询输出的扰动中的最大扰动,确定为所述输入数据集对应的敏感度。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述敏感度,对所述第一查询输出加噪声,输出加噪声后的第一查询输出之前,还包括:
将所述输入数据集,按照数据记录所属的分区,分为至少两个分区;
根据所述查询算法,确定所述至少两个分区的当前查询输出;
确定所述至少两个分区中的每个分区的当前查询输出与历史查询输出不相同。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
对于所述至少两个分区中的目标分区,若所述目标分区的当前查询输出与所述目标分区的历史查询输出相同,则在所述目标分区中删除至少一条数据记录,使得所述至少两个分区中每个分区的当前查询输出与历史查询输出不相同;
根据所述查询算法,确定所述目标分区删除所述至少一条数据记录后的查询输出;
根据所述目标分区删除所述至少一条数据记录后的查询输出,确定所述输入数据集的第四查询输出;
根据所述敏感度,对所述第四查询输出加噪声,输出加噪声后的第四查询输出。
7.一种数据处理的装置,其特征在于,所述装置包括:
确定模块,用于:
根据查询算法,确定输入数据集对应的第一查询输出;
根据所述输入数据集中未被抽样的数据记录的第二查询输出和所述查询算法,确定所述输入数据集中被抽样的目标数目条数据记录中每条数据记录对所述第一查询输出的扰动,获得所述输入数据集对应的敏感度,所述未被抽样的数据记录与所述目标数目条数据记录组成所述输入数据集;
输出模块,用于根据所述敏感度,对所述第一查询输出加噪声,输出加噪声后的第一查询输出。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于根据查询算法,确定输入数据集对应的第一查询输出之前,接收数据查询请求,所述数据查询请求包括查询算法;
抽样和分区模块,用于在所述数据查询请求对应的所述输入数据集中随机抽样目标数目条数据记录,获得所述目标数目条数据记录以及所述输入数据集中未被抽样的数据记录。
9.根据权利要求7或8所述的装置,其特征在于,所述确定模块,用于:
根据所述查询算法,确定所述未被抽样的数据记录对应的第二查询输出和所述目标数目条数据记录对应的第三查询输出;
根据所述第二查询输出和所述第三查询输出,确定所述输入数据集对应的第一查询输出。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述确定模块,用于:
根据所述查询算法,确定所述目标数目条数据记录对应的第三查询输出;
根据所述查询算法,确定所述目标数目条数据记录中分别删除每条数据记录后的查询输出;
根据所述未被抽样的数据记录的第二查询输出、所述第三查询输出和所述目标数目条数据记录中分别删除每条数据记录后的查询输出,确定所述目标数目条数据记录中每条数据记录对所述第一查询输出的扰动;
将所述目标数目条数据记录对所述第一查询输出的扰动中的最大扰动,确定为所述输入数据集对应的敏感度。
11.根据权利要求7至10任一项所述的装置,其特征在于,抽样和分区模块,还用于:
根据所述敏感度,对所述第一查询输出加噪声,输出加噪声后的第一查询输出之前,将所述输入数据集,按照数据记录所属的分区,分为至少两个分区;
所述确定模块,还用于:
根据所述查询算法,确定所述至少两个分区的当前查询输出;
确定所述至少两个分区中的每个分区的当前查询输出与历史查询输出不相同。
12.根据权利要求11所述的装置,其特征在于,所述确定模块,还用于:
对于所述至少两个分区中的目标分区,若所述目标分区的当前查询输出与所述目标分区的历史查询输出相同,则在所述目标分区中删除至少一条数据记录,使得所述至少两个分区中每个分区的当前查询输出与历史查询输出不相同;
根据所述查询算法,确定所述目标分区删除所述至少一条数据记录后的查询输出;
根据所述目标分区删除所述至少一条数据记录后的查询输出,确定所述输入数据集的第四查询输出;
所述输出模块,还用于根据所述敏感度,对所述第四查询输出加噪声,输出加噪声后的第四查询输出。
13.一种数据处理的计算设备,其特征在于,所述计算设备包括处理器和存储器,其中:
所述存储器中存储有计算机指令;
所述处理器执行所述计算机指令,以实现所述权利要求1-6任一项权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机可读存储介质中的计算机指令被计算设备执行时,使得所述计算设备执行所述权利要求1-6任一项权利要求所述的方法,或者使得所述计算设备实现所述权利要求7-12任一项所述装置的功能。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010506698.XA CN113761000A (zh) | 2020-06-05 | 2020-06-05 | 数据处理的方法、装置、计算设备和存储介质 |
EP21818458.8A EP4152175A4 (en) | 2020-06-05 | 2021-05-20 | DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIUM |
PCT/CN2021/094978 WO2021244303A1 (zh) | 2020-06-05 | 2021-05-20 | 数据处理的方法、装置、计算设备和存储介质 |
US18/074,972 US20230096003A1 (en) | 2020-06-05 | 2022-12-05 | Data Processing Method and Apparatus, Computing Device for Data Processing, and Storage Medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010506698.XA CN113761000A (zh) | 2020-06-05 | 2020-06-05 | 数据处理的方法、装置、计算设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113761000A true CN113761000A (zh) | 2021-12-07 |
Family
ID=78785062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010506698.XA Pending CN113761000A (zh) | 2020-06-05 | 2020-06-05 | 数据处理的方法、装置、计算设备和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230096003A1 (zh) |
EP (1) | EP4152175A4 (zh) |
CN (1) | CN113761000A (zh) |
WO (1) | WO2021244303A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169004A (zh) * | 2021-12-10 | 2022-03-11 | 泰康保险集团股份有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117993027A (zh) * | 2024-03-28 | 2024-05-07 | 之江实验室 | 针对重复查询攻击的数据保护方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484616A (zh) * | 2014-12-03 | 2015-04-01 | 浪潮电子信息产业股份有限公司 | 一种MapReduce数据处理框架下的隐私保护方法 |
CN107092837A (zh) * | 2017-04-25 | 2017-08-25 | 华中科技大学 | 一种支持差分隐私的频繁项集挖掘方法和系统 |
CN107493268B (zh) * | 2017-07-27 | 2019-05-31 | 华中科技大学 | 一种基于前位置矢量的差分隐私保护方法 |
US11580417B2 (en) * | 2018-07-10 | 2023-02-14 | City University Of Hong Kong | System and method for processing data and managing information |
CN109885769A (zh) * | 2019-02-22 | 2019-06-14 | 内蒙古大学 | 一种基于差分隐私算法的主动推荐系统及装置 |
-
2020
- 2020-06-05 CN CN202010506698.XA patent/CN113761000A/zh active Pending
-
2021
- 2021-05-20 WO PCT/CN2021/094978 patent/WO2021244303A1/zh unknown
- 2021-05-20 EP EP21818458.8A patent/EP4152175A4/en active Pending
-
2022
- 2022-12-05 US US18/074,972 patent/US20230096003A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169004A (zh) * | 2021-12-10 | 2022-03-11 | 泰康保险集团股份有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20230096003A1 (en) | 2023-03-30 |
EP4152175A4 (en) | 2023-10-04 |
EP4152175A1 (en) | 2023-03-22 |
WO2021244303A1 (zh) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11470084B2 (en) | Query analysis using a protective layer at the data source | |
JP5419886B2 (ja) | 情報処理装置、文書検索システム、文書検索方法およびプログラム | |
US20230096003A1 (en) | Data Processing Method and Apparatus, Computing Device for Data Processing, and Storage Medium | |
CN109471853B (zh) | 数据降噪方法、装置、计算机设备和存储介质 | |
US8959229B1 (en) | Intelligently provisioning cloud information services | |
CN111488594B (zh) | 一种基于云服务器的权限检查方法、装置、存储介质及终端 | |
CN110674247A (zh) | 弹幕信息的拦截方法、装置、存储介质及设备 | |
CN115544579B (zh) | 一种双随机数据混淆查询方法、装置和系统 | |
CN113468382A (zh) | 基于知识联邦的多方环路检测方法、装置及相关设备 | |
CN115309840A (zh) | 分类分级标注方法、设备及数据访问控制系统 | |
CN114301692B (zh) | 攻击预测方法、装置、介质及设备 | |
CN111797433A (zh) | 一种基于差分隐私的lbs服务隐私保护方法 | |
CN107679158A (zh) | 数据管理方法、装置、计算机可读介质和电子设备 | |
CN107315756B (zh) | 一种日志处理方法及装置 | |
EP3688950A1 (en) | Intrusion detection | |
CN116775167A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN112835863A (zh) | 操作日志的处理方法和处理装置 | |
CN113419792A (zh) | 一种事件处理方法、装置、终端设备和存储介质 | |
US11456996B2 (en) | Attribute-based quasi-identifier discovery | |
CN113806726A (zh) | 一种访问控制方法、装置、电子设备及存储介质 | |
Panda et al. | Securing database integrity in intelligent government systems that employ fog computing technology | |
CN111427871B (zh) | 数据处理方法、装置、设备 | |
CN113392138B (zh) | 一种隐私数据的统计分析方法、装置、服务器和存储介质 | |
CN115408701B (zh) | 人工智能与大数据结合的数据资产漏洞分析方法及系统 | |
US8756699B1 (en) | Counting unique identifiers securely |
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 |