掌桥专利:专业的专利平台
掌桥专利
首页

一种隐私保护下的可交互微数据发布系统

文献发布时间:2024-04-18 19:57:11


一种隐私保护下的可交互微数据发布系统

技术领域

本发明属于隐私与安全技术领域,尤其涉及一种隐私保护下的可交互微数据发布系统。

背景技术

在过去几十年中,数据逐渐被认识为数字经济中的重要资源。大量的数据在许多商业活动中被收集、共享、交换、重复使用和交易。与此同时,当敏感数据被收集和处理时,人们越来越关注隐私问题。越来越多关于隐私增强技术的研究正在涌现,以最小化数据泄露的风险,例如隐私保护数据发布(PPDP),差分隐私和多方协作分布式数据库等。

隐私保护数据发布(PPDP)是一系列研究,提供了发布有用信息同时保持一定隐私水平的方法和指标。根据数据发布模式,PPDP主要可以分为两类:交互模型和非交互模型。(i)在典型的交互模型中,数据请求者仅被赋予(自适应)访问具有统计查询的数据库的权限,在发布结果之前,系统通常需要对查询响应进行一些隐私处理,例如差分隐私。(ii)在典型的非交互模型中,数据集经过一系列去识别和匿名化处理,以打破数据与最初关联数据的个体之间的联系,然后处理后的数据将被发布给数据分析师。最广泛使用的隐私指标包括k-匿名性,l-多样性和t-闭近度。

《L.Sweeney,“k-anonymity:A model for protecting privacy,”Int.J.Uncertain.Fuzziness Knowl.Based Syst.,vol.10,no.5,pp.557-570,2002.[Online].Available:https://doi.org/10.1142/S0218488502001648》提出了不可交互的微数据发布模型中最著名的k匿名模型,它通过抹除标识符,将准标识符进行了匿名操作后进行发布,使得发布的每一个等价类中的数据行都不小于k个,使得用户无法区分出该行数据属于哪一个真实的个体,可以防止身份公开。该方案的缺点为:安全性上:无法防御同质攻击,背景攻击;交互性上:属于不可交互。

《A.Machanavajjhala,D.Kifer,J.Gehrke,and M.Venkitasubramaniam,“L-diversity:Privacy beyond k-anonymity,”ACM Trans.Knowl.Discov.Data,vol.1,no.1,p.3,2007.[Online].Available:https://doi.org/10.1145/1217299.1217302》提出了不可交互的微数据发布模型中的l多样性模型,它是对k匿名模型的升级。它通过抹除标识符,将准标识符进行了匿名操作后进行发布,使得发布的每一个等价类中的数据的敏感属性需要有l个表现良好的值,可以防止身份公开和部分属性公开。该方案的缺点为:安全性上:无法防御相似化攻击和Skewness攻击;实现性上困难;可交互性上:不可交互

《N.Li,T.Li,and S.Venkatasubramanian,“t-closeness:Privacy beyond k-anonymity and l-diversity,”in Proceedings of the 23rd InternationalConference on Data Engineering,ICDE 2007,The Marmara Hotel,Istanbul,Turkey,April 15-20,2007,R.Chirkova,A.Dogac,M.T.Ozsu,¨and T.K.Sellis,Eds.IEEEComputer Society,2007,pp.106-115.[Online].Available:https://doi.org/10.1109/ICDE.2007.367856》提出了不可交互的微数据发布模型中的t相近模型,它是对k匿名模型和l多样性模型的升级。它通过抹除标识符,将准标识符进行了匿名操作后进行发布,使得发布的每一个等价类中的数据的敏感属性的分布与敏感属性的全局分布的统计距离不大于t。该方案的缺点为:安全性上:可能受到语义攻击;实现难度上:困难;数据可用性上:低;可交互性上:不可交互。

发明内容

针对现有技术存在的问题,本申请实施例的目的是提供一种隐私保护下的可交互微数据发布系统。

本申请实施例提供一种隐私保护下的可交互微数据发布系统,其特征在于,该系统用于获取用户查询的SQL语句,过滤掉不符合语法要求的其他SQL,基于模拟执行获得对应的语义信息,记录用户的过往查询并综合多次查询的信息泄露,预防可能的推理攻击,记录下系统的历史决策来提高效率并保持决策的一致性,用一或多个隐私指标衡量隐私泄露,向衡量隐私泄露的函数添加随机扰动并根据预定阈值决定是否返回执行结果给用户。

进一步地,包括预处理层、语义分析层、信息合成与推理层、查询历史层、隐私指标量化层和后处理层;

所述预处理层用于获取用户查询的SQL语句,过滤其中不满足语法要求的SQL并重写其中含有where从句的SQL;

所述语义分析层用于分析所述预处理层输出的SQL语句中SQL布尔阵列查询的语义,从而将SQL语句转化为新约束;

所述信息合成与推理层用于将所述新约束存储到该用户的记录表中,以使得所述新约束与所述记录表中的约束进行合成,对得到的合成约束进行基于函数依赖的推理,补全该合成约束的可能延伸约束,得到完整约束,其中所述合成约束为与所述记录表中的约束进行合成产生了新信息的约束;

所述查询历史层用于比对所述完整约束和许可列表中的约束,忽略所述完整约束中在所述许可列表的合法约束;比对所述完整约束和拒绝列表中的约束,将所述完整约束中在所述拒绝列表的不合法约束对应的新约束输出至后处理层,将其余未知合法性约束输出至信息泄露指标层,其中所述许可列表中记录所有未被拒绝的查询对应的约束,所述拒绝列表中记录所有被拒绝的查询对应的约束;

所述信息泄露指标层用于使用隐私指标量化所述未知合法性约束的隐私泄露并输出风险分数;

所述后处理层用于对所述风险分数添加噪音,判断带噪音的风险分数是否超过预定阈值,对于带噪音的风险分数未超过预定阈值的约束,接收用户的查询请求并输出对应的查询结果至用户;对于带噪音的风险分数超过预定阈值的约束和所述不合法约束对应的新约束,判断该新约束与合法信息记录表中的约束判定偏序关系,若该新约束为合法约束,则接收用户的查询请求并输出对应的查询结果至用户,反之则拒绝该查询。

进一步地,在所述预处理层中,通过字符串匹配的方式过滤不满足语法要求的SQL。

进一步地,在所述预处理层中,通过将where从句中的布尔表达式复制到select从句中来重写含有where从句的SQL。

进一步地,在所述语义分析层中,所述新约束由不同关键属性的覆盖组成,其中某一关键属性的覆盖为当前行数据的该关键属性的全部可能取值。

进一步地,在所述信息合成与推理层中,所述记录表中存储有该用户的所有查询产生的约束,当用户在查询某一行数据时,系统会查询所述记录表中是否已有相关约束,如果有,则取出该约束,并对于该约束中的每一个覆盖和当前产生的覆盖进行取交集,得到的结果为最新的覆盖,进而得到合成约束。

进一步地,若所述完整约束弱于许可列表中的任意一个约束,则其为合法约束;若所述完整约束强于拒绝列表中的任意一个约束,则其为不合法约束,其中约束之间的比较关系定义如下:约束A强于约束B,表示所有构成约束A的覆盖所代表集合是所有构成约束B的覆盖所代表的集合的子集。

进一步地,所述查询历史层采取决策维持机制,具体为:对于某一行数据,只要存在了某一次查询破坏了该行数据的隐私而被拒绝,此后任何涉及到该行数据的查询都会被拒绝,除非该查询泄漏的信息是已知的合法信息。

进一步地,所述隐私指标包括k匿名指标、t接近指标、信息增益,所述k匿名指标用于计算出数据行最小的等价类中行的数量;t接近指标用于计算等价类的中敏感属性的分布与敏感属性的全局分布的统计距离;信息增益指标用于衡量单个关键属性的隐私泄露情况;其中所述等价类为约束相同的数据行。

进一步地,在所述后处理层中,判断该新约束与合法信息记录表中的约束判定偏序关系,若该查询对应的未合成约束弱于合法信息记录表中对应的约束,则该查询并未产生任何超出合法信息的新信息,即该新约束为合法约束。

本申请的实施例提供的技术方案可以包括以下有益效果:

由上述实施例可知,本申请通过让用户编写其自定义的满足语法要求的特定SQL,实现了可交互性;本申请是针对于每一行数据返回对应的执行结果,称为微数据,多少行数据就返回多少行值,通过该方案得到的微数据价值要远远大于统计值。本申请制定并实现了一个可以追踪,并量化该SQL造成的隐私泄露的筛选系统,由系统判断,提供该SQL的结果给用户是否会导致隐私泄露,只有不会造成隐私泄露的SQL的执行结果会返回给用户。此外,为了防止可能的推理攻击,我们在决策上添加了适量的随机扰动来使得决策产生了一定的随机性来防御推理攻击。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1是根据一示例性实施例示出的一种隐私保护下的可交互微数据发布系统的结构图。

图2是根据一示例性实施例示出的一种隐私保护下的可交互微数据发布系统的信息处理示意图。

图3是根据一示例性实施例示出的一种电子设备的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

名词解释:

(1)隐私保护下的数据发布(Privacy Preserving Data Publishing,PPDP)

隐私保护下的数据发布是使用一定的隐私保护方法来对数据进行处理,在满足指定的隐私指标的保护要求后,将处理过的数据发布给公众或者个人。主流的隐私保护下的数据发布方案根据交互性分为两类,一类是可交互的统计数据发布,一类是不可交互的微数据发布。

(2)隐私保护下的数据发布中的属性分类

隐私保护下的数据发布需要将数据表中的属性划分为4种,标识符,准标识符,敏感属性,非敏感属性。其中标识符能标识出数据的所有者(如,姓名,身份证号),准标识符是包含了身份信息同时也包含了一定可用信息的属性(如,籍贯,年龄,性别),敏感属性是涉及到敏感性的属性(如,是否患病,存款,薪资),非敏感属性是不涉及敏感性也不涉及身份信息的其他属性(如,爱好)。

(3)本方案中的属性分级:禁止属性,关键属性,非关键属性

禁止属性是数据库中最隐私的属性,该属性不接受任何形式的访问;关键属性是数据库中包含隐私信息和可用信息的属性,它允许在保有隐私的基础上分享部分信息;非关键属性是数据表上的其他属性,它的值可以完全提供给用户。

(4)等价类

等价类指在用户的视角中,满足同一个对于准标识符限制条件的所有数据行。在该限定条件下,这些数据行的准标识符表现出一致的特征,它们无法被用户进一步区分,因此它们是等价的。在本方案中,每一种限定条件会产生一个等价类。一行数据至少属于一个等价类,可能同时属于多个等价类,只要该行数据的准标识符满足该限定条件。

(5)匿名方法

在不可交互的保护隐私下的数据公开方案中,为了保护数据的隐私,需要抹除掉数据表中的标识符,同时对准标识符进行匿名化处理,随后发布处理后的数据集。其中对准标识符进行匿名处理通常有5种方法,泛化(Generalization),抑制(Suppression),排列(Permutation),扰动(Perturbation),解剖(Anatomization)。

(6)泛化

泛化是在匿名化过程中,将原始准标识符的值转换为不太具体但语义一致的值。本方案中使用布尔表达式起到泛化的效果。

(7)结构化查询语言布尔表达式(SQL Boolean Expression,BE)

SQL中的布尔表达式是一组只会产生布尔结果的SQL运算符,如“AND,OR,NOT,<,>,=,<=,>=,<>,IS NULL,BETWEEN,IN,LIKE,ANY,ALL”等构成的表达式。这些布尔表达式返回的结果只会是{TRUE,FLASE,UNKNOWN}之一。这些布尔表达式常用于SQL中的where子句来对查询的表或视图进行筛选,然而,这些布尔表达式一样可以用于select子句中。

(8)结构化查询语言中的表达式分类

本文将SQL中的表达式分为两类,一类是结果值为布尔值的布尔表达式,被称为布尔查询,另一类是结果值不为布尔的其他表达式,被称为直接查询。其中,禁止属性禁止任何形式的查询,关键属性只允许布尔查询,而非关键属性支持布尔查询和直接查询。

(9)隐私指标

隐私指标是衡量数据隐私状态的一种指标。隐私指标具有条件性,即不存在一个通用的隐私指标在不同领域下都适用。在不同的场景下,为了更好的保护数据隐私,应当选择最合适的隐私指标。

(10)信息熵(Information entropy)

信息熵是信息论的基本概念。描述信息源各可能事件发生的不确定性。信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式H(X)。信息熵的提出解决了对信息的量化度量问题。

H(x)=∑

(11)条件熵(Conditional entropy)

条件熵H(X|Y)表示在已知随机变量Y的条件下,随机变量X的不确定性,其中P(x,y)是x,y同时发生的概率,P(x/y)是y发生的情况下,x发生的概率:

H(X|Y)=∑

(12)信息增益(Information gain)

信息增益又叫做信息散度、KL散度、相对熵。在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布X和Y的差异。信息增益描述了当使用Y进行编码时,再使用X进行编码的差异。直观的理解,信息增益是已知条件Y对知道随机变量X的帮助。信息增益=信息熵-条件熵。

G(X,Y)=H(X)-H(X|Y)

信息增益被用于衡量单个关键属性的隐私泄露程度。

(13)k-anonymity(k匿名指标)

k-anonymity是匿名化数据的一种性质。如果一组公开的数据中,任何一个人的信息都不能和其他至少k-1人区分开,则称该数据满足k-anonymity,该组数据称为一个等价类(An equivalence class)。

(14)t-closeness(t相近指标)

t-相近要求每个k-匿名组中敏感属性值的统计分布与该属性在整个数据集中的总体分布的接近程度小于t。

(15)SQL布尔阵列查询(Boolean Expression Array Query,BEAQ)

SQL布尔阵列查询是一种特定语法的SQL,在一个具体的数据表下,根据预先对属性的分级:禁止属性(Forbidden attribute,FA),关键属性(Critical Attribute,CA),非关键属性(Non-critical Attribute,NCA),SQL布尔阵列查询允许不同的查询方式:禁止属性不允许被任何形式查询,关键属性只允许使用布尔表达式查询,而非关键属性允许直接查询。其中每个布尔表达式只允许访问一个关键属性,即不允许存在BE(CA1,CA2)这样的形式。

其语法结构如下:

Select BE

(16)覆盖(Coverage)

覆盖是一个集合,该集合是用户认为某一行数据的某个关键属性的所有可能取值。随着用户的查询,这个集合会越来越小,即部分可能取值被查询结果所排除。覆盖的主体是一行数据中的一个关键属性。

(17)约束(Constraint)

约束是指用户对某一行数据的全部关键属性和非关键属性的已知信息,由所有关键属性的覆盖和非关键属性的取值组成。约束的主体是一行数据。

(18)函数依赖(Functional dependency,FD)

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。

若对于R(U)的任意两个可能的关系r1、r2,若r1[x]=r2[x],则r1[y]=r2[y],或者若r1[y]不等于r2[y],则r1[x]不等于r2[x],称X决定Y,或者Y依赖X。

函数依赖用于对约束之间的不同属性的覆盖进行推理,使得覆盖的范围尽可能的小。

(19)风险分数(Risk Score)

风险分数是对于当前数据的隐私状态(即用户已知的约束),根据相关隐私指标,计算而出的一个可以被量化的实数,它反映了数据的隐私泄露的风险性,Risk score是一个0到1的浮点数,其中1代表隐私完全泄露,0代表用户没有通过查询获得任何相关信息。

(20)隐私映射函数

隐私映射函数能将约束通过对应的隐私指标计算成为对应的风险分数。

本申请提供一种隐私保护下的可交互微数据发布系统,如图1所示,系统首先过滤掉不符合BEAQ定义的其他SQL,基于模拟执行获得BEAQ的语义信息,记录用户的过往查询并综合多次查询的信息泄露,预防可能的推理攻击,记录下系统的历史决策来提高效率并保持决策的一致性,用一或多个隐私指标衡量隐私泄露,添加随机扰动并根据设计好的阈值决定是否返回执行结果给用户。

如图2所示,该系统包括预处理层、语义分析层、信息合成与推理层、查询历史层、隐私指标量化层和后处理层。

具体地,作为一个示例但又不失一般性,本发明可以应用于医疗信息的公开领域。每个病患的病历是一种极其敏感但又充满了价值的信息,我们希望利用病患的生理特征等数据进行数据分析(例如机器学习或者统计学分析),但这又会侵犯到患者的个人隐私,此外,一个医院的数据可能并不足以用于进行数据分析,这可能需要多个医院在协同下共享数据。然而共享数据是一件极其危险的行为,因为这极有可能导致隐私的泄漏。

假定存在一张患者数据表,里面有<病人编号,身份证,姓名,年龄,性别,血压,疾病历史,诊断,……>等信息。其中,病人编号,身份证,姓名属性属于禁止属性,不允许任何查询,年龄,性别属性是关键属性,它们存在部分价值,同时也包含了部分身份信息,其他属性是非关键属性,它们不涉及身份信息或涉及很少得身份信息,且具有分析价值。

在系统运行之前,数据库中该表的所有属性被数据库所有者预先按照禁止属性,关键属性,非关键属性进行提前分类。

(1)所述预处理层用于获取用户查询的SQL语句,过滤其中不满足语法要求的SQL并重写其中含有where从句的SQL;

具体地,通过字符串匹配的方式过滤不满足语法要求的SQL,其中满足语法要求的SQL被称为BEAQ(Boolean Expression Array Query,布尔表达式阵列查询):其限定了三种不同类别得属性允许的查询方式,以及对应的语法结构,只有满足该语法要求的SQL被称为BEAQ,在满足该SQL属于BEAQ的前提下,用户可以自定义BEAQ想要访问的属性以及方式。

之后,系统检测哪种类别的属性(禁止属性,关键属性,非关键属性)出现在了该表达式中,然后检测该表达式属于直接查询还是布尔表达式查询;随后,根据由于该属性已经被预先分类,检测该属性是否使用了合法的方式进行访问,即使用系统允许的方式进行访问,其中禁止属性禁止被访问,即出现在表达式中则非法,关键属性只允许使用布尔查询进行访问,而非关键属性支持布尔查询和直接查询访问。当存在任意一个属性没有被合法方式访问时,系统会拒绝该SQL访问数据库。

具体地,where从句是SQL中的重要组成部分,它会限制数据表的查询范围。实质上,where从句也会泄露数据的隐私,原因是:只有满足where从句限制的数据会被访问到。因此,这告诉了用户,此时能被查询到的数据是满足where从句中的条件的,而没有被查询到的数据则不符合。

因此,系统必须考虑where从句可能的泄露。而系统的分析范围只针对select从句部分,因此需要额外将可能存在的where从句纳入分析范围。

由于where从句一定是由布尔表达式组成,系统只需要将where从句中的布尔表达式(记作BEW)复制到select从句中,如:

原语句为:Select BE1,BE2,NCA from table_name where BEW,

改写为:Select BE1,BE2,BEW,NCA from table_name where BEW

由于BEW可能存在多个关键属性,我们要求BEW中的不同关键属性要能被“and|or”关键词区分开,即BEW要能被拆分成:BE(CA

(2)所述语义分析层用于分析所述预处理层输出的SQL语句中SQL布尔阵列查询的语义,从而将SQL语句转化为新约束;

具体地,语义分析的本质是明白布尔表达式的含义,即单个布尔表达式会泄露的信息。

首先布尔表达式此处只存在两种可能结果,即结果为true,或结果为false,如:age>18,当结果为true时,意味着年龄大于18,当结果为false时,意味着年龄小于等于18。实质上,布尔表达式将一个具体的未知值X映射到了一个已知的区间中。

因此,弄清布尔表达式的语义的实质就是找到布尔表达式的结果为True的区间和结果为False的区间。

本方案选择使用逆向工程的思路去求解布尔表达式的语义。

单纯分析布尔表达式会得到语义上无意义的区间,例如age<0的区间,这对于年龄这项属性是无意义的。对于单个布尔表达式的语义,本方案选择使用逆向工程—即模拟执行的方式,将该数据表中所有存在的值代入到布尔表达式中,得到具体得执行结果,随后从执行结果反推布尔表达式的语义信息。

具体而言,BE(CA)代表了针对关键属性CA的布尔表达式,它是一个语义未知的表达式,即难以得知该表达式的执行结果。

基于此,系统使用基于逆向工程的语义分析,即通过修改BEAQ为BEAQ+的形式,然后执行BEAQ+得到执行结果。

再根据执行结果去反推BE(CA)的true区间和false区间。

如:当我们要分析Select BE1(CA

此时的BEAQ+会对CA

该执行结果是一个矩阵,其中每一行代表了一行数据,第一列是CA的具体值,其余列是对应的布尔表达式的执行结果(结果为true或者false),此时对所有取值为true的CA值构成了True区间,而所有取值为false的CA值构成了False区间。

此时第i个布尔表达式BEi对于某一行数据的信息泄露是,将未知的该行数据的的值所属的区间(Partitioni)泄露给了用户。

已知了单个布尔表达式的语义信息后,一条BEAQ可能涉及针对多个CA的多个布尔表达式。

针对同一个CA的多个布尔表达式,它们都会泄露该行数据的CA值所在的区间给用户。最后,用户得到对于指定行数据的信息应该是该值所在的这些布尔表达式的区间的交集,即,Final-partition=Partition1∩…∩Partitionn。这也被称为覆盖(Coverage),即当前某行数据的某个关键属性的全部可能取值。

而不同CA的覆盖共同组成了约束(Constraint),这是用户对该行数据的已知全部信息。

(3)所述信息合成与推理层用于将所述新约束存储到该用户的记录表中,以使得所述新约束与所述记录表中的约束进行合成,对得到的合成约束进行基于函数依赖的推理,补全该合成约束的可能延伸约束,得到完整约束,其中所述合成约束为与所述记录表中的约束进行合成产生了新信息的约束;

具体地,本系统采用与历史约束的结合机制。用户可能会多次查询同一条数据,每次查询都会产生一定量的信息,因此,系统必须追踪每次查询以保证总体信息泄露依然可控。用户每进行一次查询后,经过语义分析层,系统将其转化为了约束,并将该约束存储在记录表中。当用户之后在查询某一行数据时,系统会查询记录表中是否已有相关约束。如果有,则取出该约束,并对于该约束中的每一个覆盖和当前BEAQ产生的覆盖进行取交集,得到的结果为最新的覆盖。

具体地,本系统还采用考虑到存在通过决策去反推真实数据信息的可能性,为了系统的安全性,系统必须最大化用户可能得到的信息。由于存在利用决策结果反推数据信息的攻击方式,一旦用户采用这种攻击方式,他就能根据决策结果得到部分信息,而这部分信息是难以被衡量的,且不能被忽略的。因此无论用户是否得到语句的执行结果,系统都会将该语句对应的约束作为用户已知信息并存入记录表中。基于此,系统可以保证,记录表中对应的约束一定不小于用户已知信息对应的约束。

函数依赖是属性之间的依赖关系,当用户得到了部分属性的有关信息后,当这些属性之间存在函数依赖关系时,它可以使用已有的部分属性的取值,去推导其他属性的可能取值,这会帮助用户排除掉一些不可能的答案,缩小了覆盖范围,从而使得约束更强(取值的可能性数量变少)。

例子:例如出生日期可以部分推理身份证号是一个部分函数依赖关系,假定已知Bob的出生日期是xx年,同时知道Bob的身份证号是以下n个之一。在没有使用函数依赖推理前,n个身份证号都可能是Bob的,但使用出生日期->身份证号的部分函数依赖后,排除掉了一些不可能的身份证号,从而使得Bob的身份证号从n个可能变成了m个可能(m

(4)所述查询历史层用于比对所述完整约束和许可列表中的约束,忽略所述完整约束中在所述许可列表的合法约束;比对所述完整约束和拒绝列表中的约束,将所述完整约束中在所述拒绝列表的不合法约束对应的新约束输出至后处理层,将其余未知合法性约束输出至信息泄露指标层;

具体地,由于系统的决策过程中存在随机扰动,因此相同的约束可能会产生不一致的决策结果,这会存在安全风险。为了系统的决策一致性,本系统设置了历史决策记录层,这使得相同的约束一定会得到一致的结果,同时,历史决策记录层还能够提高系统的运行效率。

系统维护了两个列表,其中一个是接受列表,它记录了所有通过了检测的约束,另一个是拒绝列表,它记录了所有没有通过的约束。

首先我们声明,由所有约束构成的集合是一个偏序集,它们是存在可比较关系的。约束之间的比较关系定义如下:我们说约束A强于约束B,意味着所有构成约束A的覆盖所代表集合是所有构成约束B的覆盖所代表的集合的子集。直观的去理解就是,约束A知道所有约束B的所有信息,且约束A知道的更多。

当约束之间是可比时,对于能够通过检测的约束,比它更弱的约束也一定能通过检测,反之,对于被拒绝的约束,比它更强的约束一定无法通过检测。

这体现在系统中就是,如果一个约束弱于接受列表中的任意一个约束,它也能被接受,反之,如果一个约束强于拒绝列表中的任意一个约束,它也会被拒绝

因此,系统可以提前判断新的约束和在列表中的约束的偏序关系来提前得到结果,即为本系统的决策记忆机制。

需要说明的是,本申请采取决策维持机制(终身拒绝机制),该机制由上述约束记录机制以及决策记忆机制共同组成。

假设用户的第i次查询(Qi)被拒绝,此时记录表中记载了第1,2,…,i次查询的所有信息,对应的约束为Ci,且该约束对应的决策是拒绝。

此后,当用户进行第i+1次查询时,对应的约束为Ci+1,Ci+1是由新的查询结合已有的约束(Ci)构成。根据约束之间的偏序集关系,显然,Ci+1是一个不弱于Ci的约束。因此Ci+1对应的决策也一定是拒绝。

假定该Ci+1的约束的主体是第k行数据,此后,只要用户的查询中包含了第k行数据,系统都会认定第k行数据对应的约束破坏了该行数据的隐私,因此该查询会被拒绝。

最后,对于某一行数据而言,只要存在了某一次查询破坏了该行数据的隐私而被拒绝。此后,任何涉及到该行的查询都会被拒绝,这就是决策维持机制。

在不存在任何其他补充机制的情况下,在第一次拒绝发生后,任何涉及到该行数据的查询都会被拒绝,因此该机制也被称作终身拒绝机制。终身拒绝机制保证了系统的安全性,但是也限制了系统的功效,为了弥补该机制带来的功能性损失,系统建立了后处理层的合法信息重查询机制。

(5)所述信息泄露指标层用于使用隐私指标量化约束的隐私泄露并输出风险分数;

具体地,约束是用户对于数据的全部了解。隐私指标是用来衡量数据隐私状态的一个指标。系统针对每个不同的隐私指标编写了对应的隐私计算函数,其输入是每一行数据对应的约束,其输出是风险分数。

本实施例中,针对k匿名指标、t接近指标、信息增益设置了对应的隐私计算函数,其中k匿名和t接近指标用于保护数据的来源信息,它使得用户难以分辨出该数据的所有者是谁。

(5.1)k匿名计算函数

在执行完BEAQ后,用户对于每一行数据都会有一个对应的约束。其中存在一些不同的数据行同时满足该约束,每个不同的约束都会对应一个等价类。因此有多少个约束就有多少个等价类,一行数据可能同时属于多个不同的等价类。

等价类意味着,在当前等价类对应的约束的限定条件下,这些数据行是不可区分的。

等价类的大小被定义为满足该约束的数据行的数量。当一个等价类的大小大于等于k时,我们称这个等价类满足k匿名,当数据表中的所有等价类都满足k匿名时,我们称该表满足k匿名。

k匿名计算函数会计算出最小的等价类的大小。

(5.2)t接近计算函数

当一个等价类的中敏感属性的分布与敏感属性的全局分布的统计距离小于t时,我们称这个等价类满足t接近,当数据表中的所有等价类都满足t接近时,我们称该数据表满足t接近。

在计算t接近时,本实施例中用到的统计距离函数为EMD(Earth move distance,地球移动距离)。

EMD距离在计算数值型数据,和非数值型数据时根据数据的语义共有两种计算法方式。

针对可排序的数值型数据:假定属性的值域是{v

令r

其中,p

针对非数值型数据,EMD距离使用相同距离作为统计距离。其中相同距离指任意两个值之间的距离都为1,因此,此时EMD距离为:

(5.3)信息增益

信息增益指标衡量了单个关键属性的隐私泄露情况,它与以上两个指标不同。K匿名和t接近是通过抹除标识符,匿名化准标识符使得用户难以识别出数据源于哪一个个体而达到隐私保护的目的。而信息增益指标衡量了即使用户知道该行数据属于哪个个体,对该行数据的某个属性的了解程度的多少。

信息熵:

条件熵:H(X|Y)=∑

信息增益:G(X,Y)=H(X)-H(X|Y)

其中,H(X):随机变量X的信息熵。

P(x

log2:以2为底的对数。

Σ:对所有可能的取值xi求和。

H(X|Y):在已知随机变量Y的条件下,随机变量X的条件墒。

P(x

P(x

G(X):特征X对于分类任务的信息增益。

H(X):类别标签X的信息熵。

H(X|Y):在已知特征Y的条件下,类别标签X的条件熵。

(6)所述后处理层用于对所述风险分数添加噪音,判断带噪音的风险分数是否超过预定阈值,对于带噪音的风险分数未超过预定阈值的约束,接收用户的查询请求并输出对应的查询结果至用户;对于带噪音的风险分数超过预定阈值的约束其对应的不合法约束部分对应的新约束,判断该新约束与合法信息记录表中的涉及到的数据行的约束判定偏序关系,若该新约束为合法约束,则接收用户的查询请求并输出对应的查询结果至用户,反之则拒绝该查询;

具体地,在得到了相关隐私指标的风险分数后,根据预先设定好的阈值,此时系统已经可以分辨出一条语句是否会导致数据隐私泄露,从而做出决策。需要说明的是,通过信息泄露指标层得到的是三个风险分数,每个风险分数都需要低于其对应的阈值。有任何一个指标的风险分数超出阈值都会导致该BEAQ被拒绝。然而,这种确定性的决策过程实质上也会产生一定量的隐私泄露。这是由于在决策中,系统使用到了数据的真实分布情况,而这是用户不知道的信息,用户可能通过该语句被拒绝的决策反推出部分数据的有关信息。

为了防止这种反推的信息泄露发生,系统在决策过程中引入了一种随机扰动的机制:该机制在风险分数之上添加了随机值,且该随机值不为负数。

通过添加该随机值,决策函数中出现了一定的随机性,此时用户难以判断决策的结果是由数据本身的分布所导致,还是由随机扰动带来的随机性导致,这有效的防止了结果反推风险。

由于相同的查询在进入到查询历史层后就会提前得到决策结果。因此,相同的查询只会在第一次查询时添加上随机扰动,随后不会多次添加不同的随机扰动。

基于此,系统有效的杜绝了随机性带来的决策变更存在的隐私泄露风险。

后处理层还建立了合法信息重查询机制,具体为:

系统准备了一张合法信息记录表。对于指定的数据行,当用户的相关查询第一次被拒绝时,合法信息记录表会记录下拒绝发生前记录表中指定数据行的约束。由于这是该行数据的第一次拒绝,此前记录表中对应的该行数据约束属于合法约束。合法信息记录表总是记载了用户对于每一行数据能够得到的最大合法信息(即约束)。

假定第k行数据在用户某一次查询信息泄漏过多导致了该查询被拒绝,根据决策维持机制,系统会拒绝掉之后所有涉及到第k行数据的查询。该机制会影响到系统的重复查询功能,因此我们希望对于涉及到第k行数据,但是不会产生新信息的查询能够被接受。即该查询结果不会使得合法信息表中的第k行数据的约束改变(即没有新信息),其中合法信息表中存放的是系统认定用户理应得到的最多信息。

此时,针对第k行数据,能够通过检测的查询只有不会产生新信息的查询。此类查询一定是涉及到了第k行数据且曾经通过了检测的历史查询的排列组合。由于已经通过了检测的历史查询的泄漏的信息是用户已知的信息。因此该类查询,以及该类查询的排列组合,不会产生新信息,此类查询将可以被通过。且该类查询的新约束一定不强于合法信息表中对第k行数据已知的约束。

因此系统可以通过对合法信息表中第k行数据和此次查询对第k行数据产生的新约束进行偏序关系比较,当此次查询对第k行数据产生的新约束不强于合法信息表中对第k行数据的约束时,该查询不会由于该原因被拒绝。

合法信息重查询机制是为决策维持机制带来的终身拒绝的负面效果所开的后门。

关于本系统的安全性,本系统的本质是一个接口,真正保证安全性的部分在于隐私模型的选择,任何可以由泛化实现的隐私模型都可以被嵌入到该框架中,因此框架的安全性可以达到能够使用泛化实现的隐私模型中的最高者。

相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的隐私保护下的可交互微数据发布系统。如图3所示,为本发明实施例提供的一种隐私保护下的可交互微数据发布系统所在任意具备数据处理能力的设备的一种硬件结构图,除了图3所示的处理器、内存以及网络接口之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。

相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的隐私保护下的可交互微数据发布系统。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。

本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。

相关技术
  • 一种面向图中三角形数据发布的隐私保护方法及系统
  • 一种面向大数据发布的隐私保护方法及系统
  • 一种数据查询隐私保护的隐私预算分配和数据发布方法及其系统
  • 一种数据查询隐私保护的隐私预算分配和数据发布方法及其系统
技术分类

06120116452237