首页 / 专利库 / 电磁学 / 驻极体 / 计算机实现的隐私工程系统和方法

计算机实现的隐私工程系统和方法

阅读:188发布:2022-10-12

专利汇可以提供计算机实现的隐私工程系统和方法专利检索,专利查询,专利分析的服务。并且一种系统,允许以多种方式识别和保护敏感数据,针对不同工作流、数据情形或 用例 ,所述方式可以组合。所述系统扫描数据集以识别敏感数据或识别数据集,并且通过处理所述数据以产生安全拷贝来实现敏感或识别数据集的匿名化。此外,所述系统阻止对原始数据集的 访问 。所述系统允许隐私保持聚集查询和计算。所述系统使用差分隐私 算法 来降低或防止敏感信息的识别或披露的 风 险。所述系统放缩到 大数据 并且用支持分布式计算群集上的并行执行的方式来实现。,下面是计算机实现的隐私工程系统和方法专利的具体信息内容。

政策
1.一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得隐私在所述导出数据集中得以保持,其中所述系统:
(a)生成一组规则,所述规则定义待应用于敏感或个人数据对象的隐私保护;
(b)使如隐私官等用户能够定义政策,所述政策是应用于一个或多个数据对象的一个或多个特定规则;
(c)使用户能够然后选择应用于特定数据对象的政策;以及
(d)执行所述政策并且将所述政策应用于特定数据对象。
2.如权利要求1所述的方法,所述方法在可缩放分布式系统中实现。
3.如权利要求1或2所述的方法,其中经由中央管理系统来定义政策。
4.如前述权利要求中任一项所述的方法,其中规则能够跨越不同政策再使用。
5.如前述权利要求中任一项所述的方法,其中每个规则囊括将对所述敏感数据集的一个或多个输入数据列执行的单个操作。
6.如前述权利要求中任一项所述的方法,其中一些规则是编写或掩盖下层输入值的“掩蔽”规则。
7.如前述权利要求中任一项所述的方法,其中一些规则是用代替实际数据值的生成令牌来替换所述下层输入值的“令牌化”规则。
8.如前述权利要求中任一项所述的方法,其中一些规则是降低所述下层输入值的精度的“一般化”规则。
9.如前述权利要求中任一项所述的方法,其中一些规则支持将数字水印包括在所述匿名数据中的“加水印”。
10.如前述权利要求9所述的方法,其中编码到所述匿名数据中的所述数字水印是数字或ID的已知概率分布。
11.如前述权利要求中任一项所述的方法,其中根据不同用例或用途的要求来选择不同政策。
12.如前述权利要求中任一项所述的方法,其中数据对象是具有多个行和列的表格。
13.如前述权利要求中任一项所述的方法,其中政策包括作用于或应用于表格中的一或多列的一个或多个特定规则。
14.如前述权利要求中任一项所述的方法,其中所述系统存储许多政策和/或概要的配置。
15.如前述权利要求14所述的方法,其中所述配置包括:如所述用户的角色等用户信息、每个数据对象的概要以及关于由所述用户创建的每个政策的信息。
16.如前述权利要求14或15所述的方法,其中所述系统存储审计日志,所述审计日志包括由用户创建的每个配置对象和所述配置的任何变化或更新。
17.如前述权利要求中任一项所述的方法,其中将政策设计成捕捉标准化格式的法规和/或道德隐私控制。
18.如前述权利要求中任一项所述的方法,其中所述系统支持具有针对同一概要的不同使用的多个政策。
19.如前述权利要求中任一项所述的方法,其中可通过使用兼容性政策来匿名化或以其他方式隐私保护符合给定概要的任何数据对象。
20.如前述权利要求18或19所述的方法,其中多个政策可变换同一概要以允许针对可能需要不同匿名化处理的不同下游顾客对输出进行自定义。
21.如前述权利要求中任一项所述的方法,其中政策是坚持充当与之兼容的用于数据处理的标准的配置对象。
22.如前述权利要求中任一项所述的方法,其中政策囊括对多个数据对象的处理随时间的再现性。
23.如前述权利要求中任一项所述的方法,其中政策可再使用以给予不同用例之间的一致性。
24.如前述权利要求中任一项所述的方法,其中不同的政策再使用相同规则中的一些规则以给予不同但相关的用例之间的一致性。
25.如前述权利要求中任一项所述的方法,其中政策提供单个的管理、查阅以及报告点。
26.如前述权利要求中任一项所述的方法,其中以集中方式来描述、管理以及创建政策,以经由单个用户友好界面为组织的隐私官提供以下各项中的一个或多个:哪些数据受保护和所用的方法的单独概述;添加新数据源的能力;将已经在组织中标准化的保护措施应用于多个数据源的能力;以集中式方式管理对整体配置的访问控制的能力;以一致的方式再使用现有令牌,以允许新数据结合或附加到已经处理过的数据的能力,包括如夜间数据加载等重复分批过程。
27.如前述权利要求中任一项所述的方法,其中所述系统在处理数据对象时将规则应用于列的每个值以实现政策。
28.如前述权利要求中任一项所述的方法,其中所述系统存储与关于以下各项的信息相关的元数据:已经运行的任务、经过处理的行的数目、应用于每列的所述规则以及所述列如何被扰动。
29.如前述权利要求中任一项所述的方法,其中任务涉及政策、环境以及与政策的概要兼容的数据对象。
30.如前述权利要求中任一项所述的方法,其中任务能够自动地运行或在计划时间运行。
31.如前述权利要求中任一项所述的方法,其中任务可运行一次以上,例如当更新政策时和/或当更新数据对象时。
32.如前述权利要求中任一项所述的方法,其中可通过用户界面来监控任务的进度。
33.如前述权利要求中任一项所述的方法,其中对于静止文件,所述系统将分布式计算过程提交到分布式存储或计算环境或群集计算框架,例如Apache Spark,因而利用所述环境或群集的并行处理能力以将规则应用于分布在极大输入数据上的列。
34.如前述权利要求中任一项所述的方法,其中对于流源,所述系统使用适当消息管道中的变换代理,以在消息的分量经由所述管道处理时对所述分量进行由政策的规则描述的所述变换
35.如前述权利要求中任一项所述的方法,其中由所述系统应用的隐私保护可一致,以使得每当在处理给定原始输入值时,应用给定政策始终产生相同的输出令牌,即使是在后续再运行中或在处理不同的数据对象时。
36.如前述权利要求中任一项所述的方法,其中由所述系统应用的隐私保护可不一致,以使得每当在处理给定原始输入值时,应用给定政策可以产生不同的输出令牌,即使是在后续再运行中或当处理相同对象时。
37.如前述权利要求中任一项所述的方法,其中规则被存储在一个或多个规则库中并且从所述一个或多个规则库共享。
38.如前述权利要求中任一项所述的方法,其中在定义新策略时,所述系统通过给可疑的所述数据源加上从外部元数据存储器获得的总结信息注释来帮助所述隐私官确定哪些规则将应用于数据对象,所述总结信息包括以下各项中的一个或多个:数据类型、数据分类、数据是否为识别的、数据是否为准识别的、敏感度、可见性/准许的受众、风险/暴露估计值、数据有效期以及访问控制要求。
39.如前述权利要求中任一项所述的方法,其中所述系统将针对不同类型的配置活动的访问许可分离成确定每个用户可以执行的动作的角色。
40.如前述权利要求中任一项所述的方法,其中所述角色及其相关联责任是以下各项中的一个或多个:(i)管理员;用于配置系统设置以及创建并编辑概要;(ii)作者,用于创建并编辑政策和任务;(iii)操作员,用于执行任务;(iv)调查者,用于执行反向令牌查找;(v)系统用户,用于经由API调用来调用任务和其他操作。
41.如前述权利要求中任一项所述的方法,其中在泄密的情况下,以及对于其他调查,所述系统通过允许识别用于生成特定输出数据对象的所述政策来支持所述过程,所述识别通过保持对所述政策的配置对象作出的改变的日志实现,使得当调查者需要确定哪个政策在文件产生时起作用时,可恢复相关的任务和政策。
42.如前述权利要求中任一项所述的方法,其中所述系统从分类系统获得规范,并且使用那个规范来选择适用的政策或规则。
43.如前述权利要求中任一项所述的方法,其中视定义数据敏感性或隐私的不同阶层的外部分类而定,将政策应用于数据对象。
44.如前述权利要求中任一项所述的方法,其中所述系统从所述数据对象提取元数据,并且
(a)接受数据对象作为输入;
(b)从元数据存储器查找所述数据对象元数据,并且所述系统传回所述数据对象的描述,所述描述包括每列的性质,例如数据类型、敏感性和/或受众;
(c)转而使用所述传回的描述来寻找用于每列的兼容规则;
(d)将所述兼容规则传回到所述用户,所述用户可反过来检验、选择或编辑所述兼容规则,或根据不同用例或用途的所述要求来定义新规则。
45.如前述权利要求中任一项所述的方法,其中所述系统对表格数据集进行操作,包括具有每行的变量数目或一些行的一些列的遗漏值的表格数据集。
46.如前述权利要求中任一项所述的方法,其中所述系统对保持空白和/或遗漏值的表格数据集进行操作。
47.如前述权利要求中任一项所述的方法,其中所述系统与分布式存储与计算环境整合。
48.如前述权利要求中任一项所述的方法,其中所述系统被安装在“边缘节点”上,所述边缘节点意味着不是群集节点中的一个,但是和所述群集在同一网络上并且可通过网络界面与所述群集互动的主机。
49.如前述权利要求中任一项所述的方法,其中将概要模型化为一组已命名表格,每个已命名表格由值的一组命名列组成
50.如前述权利要求中任一项所述的方法,其中数据集支持以下数据类型中的一个或多个:字符串、数值数据、日期或如阵列或地图等复杂结构。
51.如前述权利要求中任一项所述的方法,其中所述系统将如阵列或地图等所述复杂结构转换成一组普通列。
52.如前述权利要求51所述的方法,其中在地图情况下,所述系统根据可能密钥来创建一列。
53.如前述权利要求51所述的方法,其中在阵列情况下,所述系统根据所述阵列中的索引来创建一列。
54.一种云计算构架,所述云计算构架实现上文定义的计算机实现的方法。
令牌化
55.一种方法,其中基于计算机的系统实现针对包括分离节点的分布式存储与计算环境或群集中的大数据集的一致令牌化,其中一致令牌化包括令牌生成阶段和模糊化阶段,并且其中令牌生成为每个相异输入值创建唯一令牌,所述方法包括以下步骤:
(a)生成用代替实际数据值的生成令牌替换所述下层输入值的一组“令牌化”规则;
(b)使得如隐私官等用户能够定义政策,所述政策包括应用于一个或多个数据列的一个或多个特定令牌化规则;
(c)使得用户能够接着选择应用于特定数据对象的政策;以及
(d)对特定的数据对象执行所述策略。
56.如前述权利要求55所述的方法,其中输入文件和令牌保险库均被拆分到多个节点上;所述方法因而包括以下令牌生成步骤:
(i)节点废弃先前已被令牌化的任何重复输入值;然后
(ii)在每个节点处,生成随机令牌并将其指派给每个未废弃的输入值;
(iii)在每个节点处,将所述输入值和保险库值映射“反转”并且围绕所述群集混洗所述映射以根据令牌对所述映射分组;
(iv)在每个节点处,对于具有映射到令牌的单个输入值的每个令牌,这次配对结束并且被留存到令牌保险库中;
(v)检查所有所述节点,并且对于具有映射到令牌的多于一个输入值的每个令牌,然后为赢家指派那些输入值中的一个,所述令牌与所述赢家的配对被留存到所述令牌保险库,并且对未被指派令牌的所述输入值重复步骤(ii)到(vi),直到每个相异输入值被指派唯一令牌。
57.一种方法,其中基于计算机的系统实现针对分布式存储与计算环境或群集中的大数据集的一致令牌化,其中令牌保险库被用于用包括分离节点的群集中的令牌替换输入值;其中一致令牌化包括令牌生成阶段和模糊化阶段,所述方法包括以下模糊化步骤:
(i)每个节点确定存在于输入文件的节点部分上的相异值的集合;
(ii)每个节点从每个相异值创建由所述值和节点ID组成的对;
(iii)混洗来自步骤(ii)的(值,id)对和来自所述令牌保险库的(值,令牌)对,使得具有相同值的元素驻存在同一节点上;
(iv)每个节点通过附加根据所述组的(值,令牌)对中的所述值所映射到的所述令牌而从每个(值,id)对创建(值,id,令牌)元组,从而产生一组(值,id,令牌)元组;
(v)将每个(值,id,令牌)元组混洗到对应于元组的id值的节点;
(vi)每个节点使用其具有的所述(值,id,令牌)元组以处理原始文件并用令牌替换值。
58.如前述权利要求57所述的方法,所述方法将与权利要求55或56中所定义的令牌化方法组合。
59.如前述权利要求55到58中任一项所述的方法,其中跨越不同数据集一致性地应用令牌化。
60.如前述权利要求55到59中任一项所述的方法,所述方法可缩放并且在可缩放分布式系统中实现。
61.如前述权利要求55到60中任一项所述的方法,其中每个相异的下层输入值映射到仅一个唯一的生成令牌。
62.如前述权利要求55到61中任一项所述的方法,其中所述数据集过大而不能将所述输入的全部内容或所述保险库或映射表的全部内容保持在单个主机上的存储器中,因此需要分布式存储与计算环境
63.如前述权利要求55到62中任一项所述的方法,其中令牌保险库存储定义待应用于敏感或个人数据列的所述隐私保护的规则的数据。
64.如前述权利要求55到63中任一项所述的方法,其中最终用户定义策略,所述策略是应用于一个或多个数据对象的一个或多个特定规则。
65.如前述权利要求55到64中任一项所述的方法,其中令牌化包括添加数字水印到所述被令牌化的列值。
66.一种实现针对包括分离节点的分布式存储与计算环境或群集中的大数据集的一致令牌化的方法,其中令牌化用生成的令牌替换下层输入值,并且输入文件和令牌保险库均被拆分到多个节点上;
所述方法包括以下步骤:(i)使用将从给定输入值衍生的值作为种子的伪随机数生成器(PRNG)生成用于所述输入值的所述令牌。
67.如前述权利要求66所述的方法,其中每个相异的下层输入值映射到仅一个唯一的生成令牌。
68.如前述权利要求66所述的方法,其中所述随机数生成器通过以下操作将从所述输入值导出的值作为种子:(i)使用例如来自所述顾客的KMS的密钥对所述输入值加密;(ii)将所得密文分解成多个N字节块并将所述块一起进行XOR,从而产生被用作所述PRNG的所述种子的最终N字节块,其中N是播种所述PRNG所需的字节的数目;(iii)使用所述规则的所述标识符(例如,通过将所述标识符与自身连接,直到所述标识符达到合适大小)导出用于加密密码的初始化向量,使得出现在不同规则中的相同输入值将产生不同种子。
69.如前述权利要求66到68所述的方法,其中除所述保险库外,还维持单独的“碰撞”映射。
70.如前述权利要求69所述的方法,其中如果两个不同输入生成导致产生相同令牌的种子,则将所述两个不同输入中的一个添加到所述碰撞映射并使用非种子PRNG为所述输入指派非导出值。
71.如前述权利要求70所述的方法,其中这个碰撞映射被完整地发送到每个节点。
72.如前述权利要求71所述的方法,其中每个节点在为输入请求令牌时咨询这个映射:
如果所述输入出现在所述映射中,则传回来自所述映射的所述令牌;否则,使用所述密文种子化的PRNG来导出令牌。
73.如前述权利要求69所述的方法,其中所述整个碰撞映射在所述模糊化过程期间被发送到每个节点,并且每个节点可独立地处理其数据,不需要围绕所述群集混洗数据。
74.如前述权利要求66到73所述的方法,其中所述PRNG用于创建随机令牌的随机化算法中,所述随机化算法例如从预定义列表选择随机元素的过程。
75.如前述权利要求66到74所述的方法,其中令牌化包括添加数字水印到所述被令牌化的列。
76.如前述权利要求66到75所述的方法,所述方法可缩放并且在可缩放分布式系统中实现。
一般化
77.一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化通过变换数据表中的列来实现,以使得所述导出数据集达到所需阶层的k匿名和l多样性;
(a)其中所述系统接受关于哪些列要一般化(“准识别列”)的配置信息,并且(b)其中选择所述配置信息以根据不同用例或用途的所述要求来最佳化所述导出数据集的实用性。
78.如前述权利要求77所述的方法,其中用户确定的配置信息定义用于一个或多个准识别列的所述经一般化的参数。
79.如前述权利要求78所述的方法,其中所述用户确定的配置信息定义用于一个或多个准识别列的分辨率或精度或失真。
80.如前述权利要求77到79所述的方法,其中被最佳化或最大化的所述“实用性”涉及所述数据中保持了多少有价值的关系,或所述准标识符与兴趣变量之间的关系保持的程度。
81.如前述权利要求80所述的方法,其中所述系统测量或计算所述敏感数据集与所述导出数据集之间的所述失真。
82.如前述权利要求77到81所述的方法,所述方法可缩放并且在可缩放分布式系统中实现。
83.如前述权利要求77到82所述的方法,其中所述用户手动地一般化一或多个准识别列。
84.如前述权利要求77到83所述的方法,其中所述系统使用全局记录,使得变换跨越所述表格中的行一致。
85.如前述权利要求77到84所述的方法,其中所述用户定义导致特定的k和/或l多样性的所述配置。
86.如前述权利要求77到85所述的方法,其中所述用户手动地定义k匿名和l多样性的所需阶层。
87.如前述权利要求77到86所述的方法,其中通过抑制在经过手动一般化之后未实现所述用户定义的k匿名和l多样性的所述群集来实现k匿名和l多样性。
88.如前述权利要求77到82所述的方法,其中所述系统实现自动化一般化,执行“自上而下”专用化以实现可调谐以控制每个准标识符的所述失真的k和l。
89.如前述权利要求77到88所述的方法,其中所述系统接受针对每个表格的“k”和针对每个敏感列的“l”的用户确定值
90.如前述权利要求77到89所述的方法,其中一般化的所述过程规定所述导出数据集中的一个或多个准识别列的固定、最大或最小分辨率。
91.如前述权利要求77到90所述的方法,其中所述配置信息包括一或多列的优先次序。
92.如前述权利要求77到91所述的方法,其中所述系统选择准标识符列的一般化的阶层,以使得与所述优先列具有强关系的所述准标识符列被一般化地较少。
93.如权利要求77到92所述的方法,其中,对于数值列,所述用户可配置所述系统应尝试实现的分辨率,或输入所述系统稍后在其一般化时使用的任意数值区间。
94.如前述权利要求77到93所述的方法,其中对于日期列,所述系统可将默认或自定义的日期层次一般化为数值,或应用所述默认或自定义的日期层次。
95.如前述权利要求77到93所述的方法,其中对于类别列,所述用户定义用于所述类别列的层次,并且通过按所述用户定义的层次组织所述值来进行所述一般化;并且所述列可以通过在所述用户定义的层次中上升而变得更一般化。
96.如前述权利要求77到95所述的方法,其中所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需层次的k匿名和/或l多样性,并且其中所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
97.如前述权利要求77到96所述的方法,其中所述系统使用局部和非全局记录,使得所述变换不需要跨越所述表格中的行一致。
98.如前述权利要求77到97所述的方法,其中所述系统使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值。
99.如前述权利要求98所述的方法,其中使用以下的五步过程:
(1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
(2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
(3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
(4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
(5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
100.如前述权利要求77到99所述的方法,其中所述系统使用混合式方法,其中所述用户能够手动地一般化一个或多个准识别列,然后所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性;
并且其中所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
101.如前述权利要求100所述的方法,其中手动一般化意味着最终用户手动地一般化准识别列,并且全局地记录变量。
102.如前述权利要求100或101所述的方法,其中自动一般化意味着所述系统自动地一般化准识别列,并且所述系统使用所述自上而下方法和变量的所述局部记录。
103.如前述权利要求77到102所述的方法,其中应用于所述敏感数据集的隐私保护可表示在策略中。
104.如前述权利要求77到103所述的方法,其中对包括分离群集节点的分布式存储与计算环境或群集中的大数据集执行所述方法。
105.一种包括预处理步骤的方法,所述预处理步骤例如通过分析描述领地的地图的shapefile来分析地图,并且产生平面图,在所述平面图中,节点是位置领地并且在所述领地邻接的情况下,节点之间存在边缘;
其中所述系统查找所述平面图中的具有小于k个记录的节点,并且将那些节点中的每一个与相邻节点中的一个合并,然后重复这个过程,直到所有节点满足k匿名。
106.如前述权利要求105所述的方法,其中合并可以通过以下非排他性列表的方法中的一个或多个方法进行:与人口最多的相邻节点合并、与人口最少的相邻节点合并、与具有最长共同边界的相邻节点合并、与将产生具有最小面积的组合对的相邻节点合并,与相邻节点合并,以使得所述组合对具有最小直径,或与最符合这些因素的加权组合的相邻节点合并。
107.如前述权利要求77到106所述的方法,其中所述系统利于对自上而下专用化的细粒度控制以实现k和l,包括用于每个准标识符列的可配置策略,以便使数据失真减到最少。
可提供此数据失真的量化和可视化。
108.一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化通过变换数据表中的列来实现,以使得所述导出数据集达到所需阶层的k匿名和l多样性;
其中(a)所述系统接受关于哪些列要一般化(“准识别列”)和关于每个准识别列的相关联配置参数的用户确定的配置信息,其中所述配置参数包括所需分辨率、零的精度或失真、所述导出数据集中的一个多个准识别列;并且
(b)所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
109.如前述权利要求108所述的方法,其中所述所需分辨率是以下各项中的一个:固定分辨率、最大分辨率或最小分辨率。
110.如前述权利要求108到109所述的方法,其中所述系统优先处理使与用户确定的“兴趣列”具有强关系的准识别列的所述数据失真减到最小。
111.如前述权利要求108到110所述的方法,其中所述方法可缩放并且在可缩放分布式系统中实现。
112.如前述权利要求108到111所述的方法,其中所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性,并且其中所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
113.如前述权利要求108到112所述的方法,其中所述系统使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值。
114.如前述权利要求113所述的方法,其中使用如下的五步过程:
(1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
(2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
(3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
(4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
(5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
115.如前述权利要求77到114所述的方法,其中自上而下专用化实现局部记录而不是全局记录以给出细粒度一般化,使得变换不需要跨越所述表格中的行一致,尽管所述变换可跨越所述表格中的行一致。
116.如前述权利要求77到115所述的方法,其中所述系统通过关于l多样性检查子节点的每个可能组来保证l多样性,并且在拆分可导致非l多样性节点的情况下不进行所述拆分。
117.如前述权利要求77到116所述的方法,其中所述系统分析接下来专用化(或“拆分”)哪个准标识符以作为所述一般化过程的部分,并且使得所述用户能够选择数值中点拆分策略或数值中值拆分策略。
118.如前述权利要求77到117所述的方法,其中所述系统提供类别列一般化,具有树中的一般字符串或正则表达式的直接匹配,并且所述系统根据相关项的树型结构层次进行一般化,其中通过使用直接匹配或正则表达式,所述层次中的叶节点部分地匹配列中的文本,即在所述叶节点使用压缩表示的情况下。
119.如前述权利要求77到118所述的方法,其中所述系统提供“全能性”替换,其中预处理步骤检查列中的每个值是否匹配所述层次中的叶节点,并且如果未发现匹配,则用“全能性”值替换所述值。
120.如前述权利要求77到119所述的方法,其中所述系统如下所述地处置导出列:用户确定列是从另一列导出,或预处理步骤检查一列是否从另一列导出(例如出生日期和年龄),如果是,则仅一列被一般化,而另一列将从所述经一般化的列重新计算。
121.如权利要求77到120所述的方法,其中所述系统突出显示异常值记录,然后询问用户其是否想要抑制这些记录。
122.如前述权利要求77到121所述的方法,其中所述系统通过优先抑制所述准标识符的单变量或结合分布中的异常值而将一般化与异常值记录的抑制组合以作为在使失真减到最小的同时实现k的手段,所述异常值的分辨率保持具有最高优先级,这样导致更好的最终分辨率。
123.如权利要求122所述的方法,其中所述系统优先抑制是所述准标识符中的异常值的行,所述异常值的分辨率保持具有最高优先级,这样导致更好的最终分辨率。
124.如权利要求123所述的方法,其中所述异常值在所述准标识符的所述单变量和/或结合分布中。
125.如前述权利要求77到124所述的方法,其中所述系统提供可视化和失真测量。
126.如权利要求125所述的方法,其中所述系统显示已应用的所述一般化规则和每列的所得数据失真。
127.如前述权利要求125到126所述的方法,其中所述系统提供用于评估由所述匿名化引起的改变的工具,其中经一般化的列的直方图上面覆盖了表示初始列的直方图。
128.如前述权利要求77到127所述的方法,其中所述系统输出图形地表示群集的大小和计数群集大小泡式图,其中每个点对应于根据其准标识符值分组的记录的群集,并且所述点的面积与所述群集的大小成比例。
129.一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化;
并且其中所述系统接受定义与准识别列的关系应保持的任何“兴趣列”的用户确定的配置信息,并且所述系统接受类别或数值数据的零、一个或多个兴趣列的定义。
130.如前述权利要求129所述的方法,其中所述系统如下所述地处置数值兴趣列:如果所选择的优先列是数值的,则将所述值自动地存储到离散范围或直条中,并且所述信息增益计算是基于所得的类别。数值包括日期或经过时间。
131.如前述权利要求129到130所述的方法,其中所述系统如下所述地处置包括数值列与类别列的组合的几个兴趣列:如果几列被所述用户标记为引起兴趣的,则所述系统将连接每行的所有那些列的值,并且将所得值视为这个记录的兴趣值。
132.如前述权利要求129到131所述的方法,其中所述系统如下所述地处置“无”兴趣列:如果所述用户未选择兴趣列,则所述系统使拆分在所述准识别列当中均匀地交替,并且对于每一轮拆分,选择不同列进行拆分。
133.如前述权利要求129到131所述的方法,其中所述系统如下所述地处置“无”兴趣列:在每一轮拆分中,所述系统随机地选择准标识符列进行拆分。
134.一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化;
其中所述系统使得所述导出数据集能够实现所需阶层的k匿名和l多样性。
135.如权利要求134所述的方法,其中所述系统使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值;
136.如权利要求135所述的方法,其中使用如下的五步过程:
(1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
(2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
(3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
(4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
(5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
137.如前述权利要求88到136所述的方法,其中所述系统通过提供子节点的部分重组以允许再拆分来改进实用性。
138.如权利要求137所述的方法,其中将子节点部分地重组,然后进一步拆分以实现进一步专用化;并且将无效的子代类别与其他无效类别并在必要时与有效类别组合以便形成有效类别;并且这些组合类别与父类别被指派相同值,因而不能被进一步拆分;进一步拆分同胞节点,从而实现进一步专用化;并且当执行此重组时,所述类别在层次类别的情况下首先最小地组合并且在数值类别的情况下与邻近类别组合(以便形成连续区间)。
139.如前述权利要求77到136所述的方法,其中所述系统提供“先行信息增益”能力。
140.如权利要求139所述的方法,其中,当所述系统分析接下来专用化(或“拆分”)哪个准标识符以作为所述一般化过程的部分时,所述系统通过提前候选拆分的多个(例如两个或三个或更多)阶段来计算所述信息增益,以拣取与这些多个阶段中的最高信息增益相关联的下一次候选拆分。
141.如前述权利要求77到140所述的方法,其中所述系统提供最小化NULL的影响(所述项包括遗漏值/空白)。
142.如权利要求141所述的方法,其中连续列中的NULL被特别地处置如下:在每个节点处,所述系统标注所述节点是否含有NULL并将此维持在被称作N的变量中;如果所述节点中有多于k个NULL,则所述节点将所述NULL拆分成一个子节点而将非NULL拆分成另一子节点,分别标记N=真和N=假;并且如果存在少于k个NULL,则正常地拆分所述非NULL而将所述NULL与所述子代中的一个合并,并且这个子节点被标记N=真而其余部分被标记N=假;然后针对进一步拆分重复所述过程,以确保仅一个最终节点拥有可以是NULL的值。
143.一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持;
其中所述系统使得所述导出数据集能够实现所需阶层的k匿名和l多样性;
并且被配置成防止披露非类别数据类型的敏感属性。
144.如权利要求143所述的方法,其中一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
145.如前述权利要求77到144所述的方法,其中所述系统允许防御数值变量的敏感属性披露。
146.如权利要求145所述的方法,其中通过以下方法中的一个来保护敏感连续变量免于敏感属性披露:
·使所述变量离散成多个直条,并且需要l多样性,就好象所述变量是类别变量;
·需要每个匿名集合中的敏感列中的最小范围;
·按升序对所述值排序并计算百分位数,然后需要一个百分位数(例如百分之二十)处的值与另一百分位数(例如百分之八十)处的值之间的最小差;
·需要每个匿名集合中的最小值的反累积分布函数(CDF)与最大值的反CDF之间的最小差;或
·所述以上要求的组合。
147.如前述权利要求145到146所述的方法,其中数值变量包括日期和时间以及经过时间。
148.如前述权利要求77到147所述的方法,其中所述系统通过取得位置或兴趣点的用户提供列表来防御位置一般化中的敏感属性披露,并且确保每个经一般化的位置区域至少含有最小数目个位置或兴趣点。
149.一种方法,其中可缩放的以分布式计算机为基础的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化;
其中所述系统使得所述导出数据集能够实现所需阶层的k匿名和l多样性;
并且其中所述系统构造树型数据结构,使得拆分在分布式环境中发生,然后在局部继续。
150.如权利要求149所述的方法,其中所述系统使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值。
151.如权利要求150所述的方法,其中使用如下的五步过程:
(1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
(2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
(3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
(4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
(5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
152.如权利要求149到151所述的方法,所述方法在可缩放分布式系统中实现。
153.如前述权利要求77到152所述的方法,其中所述系统在某个点之后提供从分布式计算模型移位到局部计算模型;并且在工作负载适合某个存储器大小时到达所述点。
154.如权利要求153所述的方法,其中所述系统执行节点的分布式拆分,直到所述系统计算叶节点的数据可适合单个过程的存储器,并且在那个点处,所述系统停止拆分所述节点并继续拆分仍然过大的那些节点,直到所述系统到达所述叶节点中的每一个可适合单个过程的存储器的点。
155.如权利要求154所述的方法,其中当到达所述叶节点中的每一个可适合单个过程的存储器的所述点时,所述树中的每个叶节点被指派ID,并且将所述数据集重新分割成和叶节点一样多的分区,从而基于含有分区的所述叶节点的所述ID而将多行指派给所述分区;并且在重新分割之后,将每个节点的数据移到其自身的分区,使得所述系统接着“局部地”运行相同的自上而下专用化,即,所述自上而下过程可局部地对所述机器中的一个上的数据继续进行,其中所述分区的所有数据被保持在局部存储器中。
156.如前述权利要求77到155所述的方法,其中所述系统提供子采样以改进性能:如果所述数据集不适合群集存储器,则所述系统取得不适合群集存储器的所述数据的的子样本并且使用所述子样本计算到所述“重新分割点”的所述拆分。
157.如前述权利要求77到156所述的方法,其中所述系统提供自上而下专用化以实现局部记录而不是全局记录;这支持并行处理,因为所述专用化使对节点之间的协调的需要减少,并且使得所述变换不需要跨越所述表格中的行一致。
158.如前述权利要求77到157所述的方法,其中所述系统支持动态拆分,或将连续变量拆分成动态数目个子区间,其中所述用户配置子代的最大数目M,并且所述系统使用q-准识别属性的数目和k-k匿名参数自动地计算子代的数目。
159.如前述权利要求77到158所述的方法,其中所述系统提供限定执行时间或提前停止,从而使得所述用户能够提前停止所述专用化算法并输出更隐私但具有较低分辨率的数据。
160.如权利要求159所述的方法,其中所述系统报告通过所述算法达到的当前专用化下的当前平均群集大小。
161.一种方法,其中基于计算机的系统处理流数据敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持;
其中所述系统允许所述导出数据集实现所需阶层的k匿名。
162.如权利要求161所述的方法,其中所述流数据是以下各项中的一种:微批次数据或事件流数据。
163.如权利要求161到162所述的方法,其中所述系统最佳化“等待时间-实用性”,其控制其控制程序在公布记录之前要等待的时间。
164.如权利要求163所述的方法,其中所述系统关于等待时间,即在所述记录被匿名化之前要等待多久,和最小失真最佳化。
165.如权利要求164所述的方法,其中在必须将每个数据之一般化时还不知道所有数据值的情况下,所述系统保证流数据上的k匿名和l多样性,并且所述系统支持可配置“等待时间-实用性”参数,所述参数控制程序在公布记录之前要等待的时间。
166.如权利要求165所述的方法,其中所述过程如下:
(a)在所保持的所述记录当中找出形成最佳或近似最佳群集的k-1个其他记录,其中“最佳”被定义为最低总失真,并且通过尝试所有组合来识别所述最佳群集,或可经由算法来识别所述近似最佳群集,所述算法进行如下:从大小为1的由时间用尽的记录组成的群集开始;将记录添加到所述群集,从而产生具有最小总失真的群集;继续这样添加记录,直到达到大小为k的群集;
(b)然后测量记录的这个群集对总体一般化是否有帮助;并且为了此测量,将所述记录中的每一个在新群集中可具有的总失真与在现有群集当中最佳地拆分情况下的总失真进行比较;并且如果所述新群集的创建有帮助,则一般化并公布所述k个记录;否则,找出针对时间用尽的所述记录的最佳现有群集,将所述最佳现有群集相应地一般化,然后仅公布这个记录。
原始数据的自动隐私分析和指导性政策设置
167.一种方法,其中基于计算机的系统自动地(i)检测敏感或识别数据;(ii)应用或建议定义将应用于敏感或识别数据的隐私保护的政策规则;并且(iii)匿名化或另外隐私保护敏感或识别数据;
并且其中敏感或个人数据检测的结果影响并改进政策规则和/或匿名化/隐私保护过程的设计或选择;并且政策规则和/或匿名化/隐私保护过程的所述设计或选择影响并改进敏感或个人数据检测的所述结果。
168.如权利要求167所述的方法,其中所述系统用于自动地检测输入数据集的可能敏感、准识别或识别列并且用于配置所述输入数据集的所述匿名化;
其中(a)所述输入数据集的所述可能敏感、准识别或识别列的所述检测在所述输入数据集的所述配置方面和/或在识别要匿名化的新数据集方面给予用户帮助;并且(b)所述用户对所述输入数据集的所述匿名化的所述配置有助于可能敏感、准识别或识别列的所述检测。
169.如前述权利要求167到168所述的方法,其中所述系统基于所述数据和关于所述数据的元数据以及政策管理用户活动和匿名化活动来识别并且分类敏感数据,所述敏感数据包括标识符、准标识符以及敏感值。
170.如前述权利要求167到169所述的方法,其中所述系统通过(i)通过分析数据和应用于所述数据的任何相关元数据而将所述数据分类为敏感、准识别或识别的来自动地处理所述数据;并且(ii)应用定义将应用于所述数据的所述隐私保护的政策规则;并且(iii)对所述数据进行匿名化或隐私保护。
171.如前述权利要求167到170所述的方法,其中所述系统将所述输入数据集的一或多列自动分类为敏感、准识别或识别列。
172.如前述权利要求167到171所述的方法,其中所述用户对所述匿名化的所述配置包括所述用户对规定应用于特定数据对象的所述隐私保护的政策的定义,其中政策是应用于一个或多个数据对象的一个或多个特定规则。
173.如前述权利要求167到172所述的方法,其中所述系统分析所述数据、所述元数据和/或与所述输入数据集相关的所述政策。
174.如前述权利要求173所述的方法,其中所述数据的所述分析是基于:
·列中的数据记录的格式和结构
·所述数据集中的所述数据的分布的特性
·数据出现所在的上下文
·不同数据集之间的关系
175.如前述权利要求167到174所述的方法,其中组织所述数据,以使得所述表格中的行对应于应当受保护免于重新识别的数据主题,并且对于每个表格中的每列,所述系统然后计算由所述列表示的属性是敏感的或直接或间接地含有所述数据主题的识别信息的概率。
176.如前述权利要求167到175所述的方法,其中所述系统维持公共数据集的数据库,然后在类似于一个或多个公共数据集的所述输入数据集中查找列。
177.如前述权利要求167到176所述的方法,其中所述系统从标识符的先前已知源取得值并找出那些源与所述系统为了可能标识符、可能准识别属性或可能的敏感个人信息的所述检测而分析的所述输入数据集之间的相似性,并且向创建政策的用户呈现所述政策。
178.如前述权利要求167到177所述的方法,其中当评估列是否可能是准识别列时,所述系统分析与现有已知的准识别列的相关性。
179.如前述权利要求167到178所述的方法,其中当评估列是否可能是识别列时,所述系统实现以下技术中的一种或多种:测量列的基数;对照与个人标识符相关联的名称的列表分析列名;从标识符的先前已知源取得值并找出那些源与可疑的新数据之间的相似性;
使用表示一般格式的图案的集合以识别标准标识符类型的存在;针对等于标记为识别的其他列中的值的子字符串,扫描非结构化列(例如,日志文件、聊天/电子邮件消息、通话记录或联系人);并且所述系统将这些度量中的任一者与阈值进行比较,以确定是否通知所述用户所述新列可能是识别列。
180.如前述权利要求167到179所述的方法,其中所述系统访问作为标识符之实例的来源的令牌保险库以允许检测非结构化列中的实例,其中所述令牌保险库持久地存储每个原始输入值与其各自的唯一计算令牌之间的所有映射。
181.如前述权利要求167到180所述的方法,其中所述系统访问作为标识符之实例的来源的令牌保险库,以允许通过计算一列与另一列之间的重叠来检测结构化列中的实例。
182.如前述权利要求167到181所述的方法,其中所述系统使用如卡方统计测试和基于偏差的方法等非监管异常值检测技术来分析数据集,以突出显示异常值记录,然后询问用户其是否想要抑制这些记录。
183.如前述权利要求167到182所述的方法,其中所述系统分析关于所述变量的元数据:所述变量的名称、所述变量的来源、关于所述变量来自文件或来自外部元数据存储器的描述性数据、所述变量的更新日期、应用于所述数据的访问控制。
184.如前述权利要求167到183所述的方法,其中所述系统分析与所述敏感或个人数据相关联的元数据,所述元数据包括以下各项中的一个或多个:名称、其来源、关于所述变量来自文件或来自外部元数据存储器的描述性数据、所述变量的更新日期、应用于所述数据的访问控制。
185.如前述权利要求167到184所述的方法,其中所述系统编译并存储关于表格中的哪些列含有可能标识符、可能准识别属性以及可能的敏感个人信息的元数据。
186.如前述权利要求167到185所述的方法,其中所述系统从管理这个数据的用户行为学习。
187.如前述权利要求167到186所述的方法,其中所述系统分析数据在其他隐私政策中已如何分类和管理。
188.如前述权利要求167到187所述的方法,其中通过隐私政策中的对那个数据的分类,所述系统认为用户已指示的数据集与其他数据的相似性是敏感的。
189.如前述权利要求167到188所述的方法,其中所述系统读取元数据和自匿名化过程生成的数据沿袭信息,以便分辨敏感数据与相同结构的非常现实的匿名数据之间的差异。
190.如前述权利要求167到190所述的方法,其中准标识符已被发现,然后所述系统通过评估所述数据的所述k匿名来评估隐私风险。
191.如前述权利要求167到190所述的方法,其中所述系统通过(i)将数据分类为敏感、准识别或识别的来自动地处理所述数据,然后(ii)通过评估敏感、准识别或识别数据的所述k匿名来判定隐私风险。
192.如前述权利要求167到191所述的方法,其中所述系统评估隐私风险和数据敏感性通过匿名化降低的程度:所述系统自动地匿名化或另外隐私保护数据,然后评估隐私风险通过所述匿名化或隐私保护已经降低的程度。
193.如前述权利要求167到192所述的方法,其中将丰富输入提供到规则引擎或机器学习分类器。
194.如权利要求193所述的方法,其中所述系统使用机器学习方法或规则引擎来构建模型,所述模型可将未知列是敏感或非敏感的评分输出到用户。
195.如权利要求193所述的方法,其中所述系统使用机器学习方法或规则引擎来构建模型,所述模型可将未知列是识别或非识别或准识别或非准识别的评分输出到用户。
196.如权利要求193到195所述的方法,其中以下特征在机器学习过程中使用:可指示敏感度或列中的数据是识别或准识别的任何信息,例如:
·相异值的数目
·数值的均值、中值、众数、最小值、最大值以及方差
·值的类型(十进制、整数、字符串、日期)
·列名
·列名的长度
·列名的n-gram(其中下划线被视为字之间的中断)
·数据集的熵
·元数据
·策略
·任务
·数据沿袭
·结合所有以上各项
·标签
197.一种方法,其中基于计算机的系统自动地(i)检测敏感或个人数据;(ii)应用或建议定义将应用于敏感或个人数据的隐私保护的政策规则;并且(iii)匿名化或另外隐私保护敏感或个人数据;
并且其中所述系统基于所述敏感或个人数据来指导所述政策规则的配置或创建。
198.如权利要求197所述的方法,其中所述系统基于关于数据集得知的敏感度分类来提供默认政策配置,包括建议用于被识别为主标识符、准标识符或敏感字段的字段的适当动作。
199.如权利要求197或198所述的方法,其中所述系统通过考虑用于这个数据和/或用于相似数据的其他政策来通知政策配置。
200.如权利要求197到199所述的方法,其中所述系统在政策冲突的情况下警告所述用户方法的不一致性。
201.如权利要求197到199所述的方法,其中所述系统编译并存储关于表格中的哪些列含有可能标识符、可能准识别属性以及可能的敏感个人信息的元数据,并且向创建政策的用户呈现所述元数据,其中所述政策是定义待应用于敏感或个人数据对象的隐私保护的一个或多个特定规则,并且根据特定用例或用途的要求来选择特定政策。
202.如前述权利要求中任一项所述的方法,其中所述令牌化过程产生结构与初始字段相同的字段,并且所述一般化过程保持所述数据分布,以使得所述匿名数据看上去很像原始敏感数据。
203.一种软件系统,所述软件系统实现上文定义的计算机实现的方法。
204.一种数据集,所述数据集已使用上文定义的计算机实现的方法生成。
205.一种云计算构架,所述云计算构架实现上文定义的计算机实现的方法
PRIVITAR LENS
206.一种由用于查询数据库的隐私保持查询系统实现的方法,在所述查询系统中设置有用于配置所述查询系统的单个接入点,并且其中所述系统的隐私控制由数据持有者从这个单个接入点配置,并且其中所述数据集由数据分析师从这个单个接入点查询。
207.如权利要求206所述的方法,其中所述系统阻止对原始数据集的访问,但允许隐私保持聚集查询和计算,并且使用差分隐私算法来降低或防止敏感信息的识别或披露的风险
208.如权利要求206到207所述的方法,其中所述系统在其运行时可配置。
209.如权利要求206到208所述的方法,其中所述数据持有者具有控制、审计和/或监控所述查询系统的所有活动的能力。
210.如权利要求206到209所述的方法,其中所述数据持有者能够在所述系统在运行时批准或拒绝被分类为恶意的查询。
211.如权利要求206到210所述的方法,其中所述数据持有者的图形用户界面被实现为软件应用程序。
212.如权利要求206到211所述的方法,其中所述数据分析师的图形用户界面被实现为软件应用程序。
213.一种方法,其中隐私保持查询系统接收从现有数据集创建新数据集的查询,并且其中分析师能够查询所述新数据集和所述旧数据集两者。
214.如权利要求213所述的方法,其中所述新数据集的所述创建并不传回任何查询结果而且不暴露任何所述初始数据。
215.如权利要求213到214所述的方法,其中所述新数据集中的输出行值是所述输入行中的一个或多个值的变换、组合或任意函数(即“特征”),并且所述过程被称作“特征提取”。
216.如权利要求213到215所述的方法,其中所述新数据集是所述初始数据集的扩展(例如以逻辑方式添加新列)并且所述新数据集与所述初始数据集共享所有隐私性质。
217.如权利要求216所述的方法,其中所述隐私性质是以下各项中的一个或多个:总隐私预算、剩余隐私预算、预算速率限制、查询速率限制。
218.如权利要求213到217所述的方法,其中所述数据集含有时间序列数据。
219.如权利要求213到218所述的方法,其中所述特征提取函数以特定个体的每行的列表作为输入,并且输出一行特征。
220.如权利要求219所述的方法,其中存在与所述时间序列数据相关联的定义将应用于添加到关于这个数据的查询的噪声的乘法因子的性质;并且当关于从所述时间序列数据提取的所述特征进行查询时,这个因子不适用。
221.一种由用于查询数据库的隐私保持查询系统实现的方法,其中构造具有用户可配置以匹配初始数据集的性质的虚设数据集,并且其中不同阶层的性质与增加的隐私风险相关联。
222.如权利要求221所述的方法,其中每个阶层释放比先前阶层多的信息片段。
223.如权利要求221或222所述的方法,其中以下各项中的一个或多个适用:
(a)阶层释放一或多列的遗漏值的比例。
(b)阶层释放一或多列的NULL值的比例。
(c)阶层释放一个或多个连续列的范围。
(d)阶层释放一个或多个整数列的范围。
(e)阶层释放一个或多个类别列的常用选项。
(f)阶层释放一个或多个类别列的所有选项。
(g)阶层释放一或多列的单变量分布,其中值计数用来表示类别变量的分布,并且具有特定数目个直条的直方图(可由所述数据持有者配置)用来表示连续变量的分布。
224.如权利要求221到223所述的方法,其中分析混合式连续/类别列,并且将高于可配置阈值的值计数处置为类别的,而将其余值计数处置为连续的。
225.如权利要求221到224所述的方法,其中分析师能够在不使用任何隐私预算的情况下查询所述虚设数据集。
226.如权利要求221到225所述的方法,其中分析师能够查看行。
227.如权利要求221到226所述的方法,其中所述虚设数据集可下载到另一源或系统上。
228.如权利要求206到226所述的方法,其中将恶意查询的基于规则的检测与到查询结果的噪声添加组合。
229.如权利要求228所述的方法,其中在预处理阶段中实现检测。
230.如权利要求228到229所述的方法,其中在检测中自动地通知数据持有者。
231.如权利要求230所述的方法,其中所述数据持有者能够查看所述查询。
232.如权利要求228到231所述的方法,其中所述系统基于隐私配置而将查询分类为恶意的或良性的。
233.如权利要求228到231所述的方法,其中所述系统能够修改恶意查询,以使得所述恶意查询传回隐私保持结果。
234.如权利要求228到233所述的方法,其中所述系统能够运行一个或多个额外查询,以便检测恶意查询。
235.如权利要求228到234所述的方法,其中所述系统传回具有与所述查询和/或所述噪声添加相关的元数据的所述查询结果。
236.一种差分隐私方法,其中由隐私保持查询系统报告的应答在或近似在真应答的百分数或其他测量内;
并且其中,分析师通过规定那个定义的百分比或其他测量来规定所需要的分辨率,所述隐私保持查询系统接着自动地生成所述应答到那个定义的百分比或其他测量。
237.如权利要求236所述的方法,其中所述系统支持将所述所需要的分辨率规定为置信区间或表示为所述真应答的百分数的置信区间。
238.如权利要求237所述的方法,其中如果所需要的置信区间是针对平均查询规定,则所述系统花费一定“隐私预算”来获得待平均的记录的近似计数,并且使用这个计数将置信区间转换到预算并用那个预算来运行所述平均查询。
239.如权利要求236到238所述的方法,所述系统报告所述报告应答在所述定义的百分比或其他测量内的所述百分数机会或其他测量。
240.如权利要求236到239所述的方法,其中所述系统花费一些“隐私预算”以得到所述真应答的近似值,接着使用这个近似值来计算导致所述所需要的分辨率要花费的预算的近似量,并且用那个预算量来重新运行所述查询。
241.如权利要求236到240所述的方法,其中使用拉普拉斯或高斯CDF累积分布函数将置信区间转换到预算。
242.一种由针对平均查询(例如SQL“AVERAGE”查询)的隐私保持查询系统实现的方法,在将噪声添加到查询结果的情况下并且在不知道精确计数的情况下,并且其中计算近似计数,然后使和的噪声分布除以这个计算的近似值以得到所述平均值的噪声分布的近似。
243.如权利要求242所述的方法,其中通过使用隐私预算的量来计算所述近似计数。
244.如权利要求242到243所述的方法,所述方法包括向最终用户显示所述平均值的所述噪声分布的所述近似的步骤。
245.一种由隐私保持查询系统实现的方法,其中数据集列被分类成“公共”或“私有”类别。
246.如权利要求245所述的方法,其中所述数据集列的分类由用户执行。
247.如权利要求245到246所述的方法,其中查询经过预处理以确定所述查询是否仅关心公共列;如果所述查询仅关心被确定为公共的列,则无噪声被添加到查询结果,因而不使用隐私预算并且不应用其他隐私保护。
248.如权利要求245到247所述的方法,其中公共列不含有隐私风险。
249.一种由隐私保持查询系统实现的方法,其中一般化在预处理阶段中在进行中应用于查询。
250.如权利要求249所述的方法,其中所述预处理阶段使用筛选器的组合来更改查询。
251.一种由隐私保持查询系统实现的方法,其中用户界面用图形描绘随时间变化的信息泄露。
252.如权利要求251所述的方法,所述方法以实时方式实现。
253.一种由隐私保持查询系统实现的方法,其中计算如时间序列数据集等数据集中的对应于单个人员的行的最大数目,并且在所应用的乘法因子中使用这个数目以增大添加到所有查询的噪声的度量值。
254.一种由隐私保持查询系统实现的方法,其中数据分析师所拥有的数据是可识别的,并且分析来自分析师的查询以确定所述查询是否仅与所述数据相关;并且如果所述查询仅与所述数据相关,则无隐私保护被应用于所述数据。
255.一种由隐私保持查询系统实现的方法,所述查询系统包括接收统计检验查询并输出与噪声添加组合的统计查询结果,并且其中不传回所述查询结果的计算中的中间值。
256.一种云计算构架,所述云计算构架实现上文在权利要求206到255中定义的隐私保护方法。
257.一种访问云托管资源的方法,所述方法包括实现上文在权利要求206到255中定义的隐私保护方法的步骤。
258.一种软件系统,所述软件系统实现上文在权利要求206到255中定义的隐私保护方法。
259.一种数据集,所述数据集已使用上文在权利要求206到255中定义的计算机实现的隐私保护方法生成。
260.一种云计算构架,所述云计算构架实现上文在权利要求206到255中定义的计算机实现的隐私保护方法。
PRIVITAR SECURELINK
261.一种安全地共享数据集的计算机实现的方法,所述数据集包括与每个个体相关联的信息和初始唯一ID,其中所述数据集来源于几个不同的数据共享者,并且将在隐匿或掩蔽所述初始唯一ID的同时与中心相关方或接受者共享;
其中每个贡献者对所述初始唯一ID加密并将其与相关联于每个个体的所述信息一起发送到中介者相关方;
所述中介者相关方执行确定性地但不可逆地将所述加密的初始唯一ID映射到经加密和掩盖的形式的同态加密操作,并且将那个经加密和掩盖的数据发送到中心或接受者相关方;
所述中心相关方(i)解密从所述中间相关方接收的所述经加密和掩盖的数据以生成一对一映射但不能用于恢复每个初始唯一ID的唯一ID,然后(ii)将来自每个贡献者的关于每个个体的所述信息结合在一起。
262.如权利要求261所述的方法,其中所述初始唯一ID在经加密后绝不会被明确地发送。
263.如权利要求261到262所述的方法,其中所述中介者相关方生成所述密文并将所述密文升到秘密随机数取幂密钥k次幂,以生成所述经加密和掩盖的形式,并且所述中心相关K
方解密这个密文以生成m ,其中m是所述初始唯一ID,并且决策迪菲-赫尔曼假设暗示对所述中心相关方来说,用加密方式难以用mK生成m。
264.如权利要求261到263所述的方法,其中所述中介者相关方利用ElGamal加密在取幂下同态的事实对所述密文进行这个操作。
265.如权利要求261到264所述的方法,其中所述中心相关方生成椭圆曲线参数集并与所有贡献者和所述中介者相关方共享所述椭圆曲线参数集;然后在所述中心相关方和所述中介者相关方处生成私钥与公钥对,并且与每个数据贡献者共享这些公钥;然后每个数据贡献者将每个初始唯一ID m转换成椭圆曲线上的点,并用两种公钥对所述点加密以生成多个点对;然后将这些经加密的点发送到所述中介者相关方以供用其私钥部分解密,并用所述秘密取幂密钥k掩盖。
266.如权利要求261到265所述的方法,其中密钥生成、加密以及解密操作是基于ElGamal加密系统。
267.如权利要求261到266所述的方法,其中所述中心相关方和中介者相关方用其私钥对其公钥签名并与所述贡献者共享这些签名,以证明所述相关方已遵守密钥生成协议。
268.如权利要求261到267所述的方法,其中所述方法消除对共享个体的唯一ID的要求,所述唯一ID还在一些或全部数据贡献者之间共享并且还被所述中心相关方使用。
269.如权利要求261到268所述的方法,其中个体具有多于一个的初始唯一ID,例如地址、电子邮件以及邮政编码。
270.如权利要求261到269所述的方法,其中个体的初始唯一ID被结合在一起。
271.如权利要求261到270所述的方法,其中使用如语音签名、数字化指纹、视网膜扫描或虹膜扫描等生物测定签名作为初始唯一ID。
272.如权利要求261到271所述的方法,其中初始唯一ID是多个标识符的组合,并且所述组合是标识符的唯一组合。
273.如权利要求261到272所述的方法,其中每个贡献者包括与发送到所述中介者的所述信息一起的概要或所述信息的结构描述,并且所述中介者能够使用来自每个贡献者的所述概要以识别所述数据中对应于所述初始唯一ID的列。
274.如权利要求261到273所述的方法,其中从每个贡献者发送到所述中介者的与每个个体相关联的所述信息是加密的。
275.如权利要求261到274所述的方法,其中将初始唯一ID存储在由贡献者保持的所述数据集中的列中。
276.如权利要求261到275所述的方法,其中每个贡献者使用个体的相同唯一ID,或具有共同标识符的多于一个初始唯一ID。
277.如权利要求261到276所述的方法,其中将结合在一起以用于来自每个贡献者的每个个体的所述信息匿名化或一般化到较笼统值以保持隐私,然后公布所述信息。
278.如权利要求261到277所述的方法,其中由基于计算机的系统进行的公开处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化通过变换数据表中的列来实现。
279.如权利要求261到278所述的方法,其中所述系统使得用户能够(a)定义k匿名和/或l多样性的所述所需阶层,然后所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性,并且还使得所述用户能够(b)手动地配置如何一般化所述表格中的每列。
280.如权利要求261到279所述的方法,其中然后与所述贡献者中的一个或多个共享回去所述匿名化或一般化形式的数据。
281.如权利要求280所述的方法,其中所述共享回去由用于查询数据库的隐私保持查询系统进行,在所述查询系统中设置有用于配置所述查询系统的单个接入点,并且其中所述系统的隐私控制由数据持有者从这个单个接入点配置,并且其中所述数据集由数据分析师从这个单个接入点查询。
282.如权利要求261到281所述的方法,其中每个贡献者独立于所有其他贡献者并且不与其他贡献者共享个人信息。
283.如权利要求261到282所述的方法,其中每个贡献者是不同的银行或其他金融机构,并且所述数据集包括个人金融信息。
284.如权利要求261到282所述的方法,其中每个贡献者是医疗数据的不同持有者,并且所述数据集包括医疗信息。
285.如权利要求261到282所述的方法,其中每个贡献者是不同的电信服务提供者,并且所述数据集包括呼叫相关信息。
286.如权利要求261到282所述的方法,其中每个贡献者是不同的因特网服务提供者,并且所述数据集包括因特网或网络浏览相关信息。
287.如权利要求261到282所述的方法,其中每个贡献者是不同的社会网络,并且所述数据集包括社会网络相关信息。
288.如权利要求261到282所述的方法,其中每个贡献者保持多个个体的地理定位信息。
289.如权利要求261到282所述的方法,其中每个贡献者保持不同个体的敏感个人信息。
290.如权利要求261到289所述的方法,其中所述中心相关方是政府组织。
291.如权利要求261到290所述的方法,其中在不能够识别任何特定个体的情况下,所述中心相关方数据挖掘多个个体的所述信息。
292.如权利要求261到291所述的方法,其中所述中心相关方承担所述中介者相关方的角色。
293.如权利要求261到292所述的方法,所述方法以聚集形式提供所述数据集的表示,其中所述表示防止任何个体的任何初始唯一ID被重新生成。
294.如权利要求261到282所述的方法,其中所述表示还提供由所述数据集保持的特别关于健康、养老、金融或教育数据的信息的综合视图。
295.如权利要求261到294所述的方法,其中使用权利要求1到205的方法对所述结合数据集进行处理、匿名化或一般化。
296.如权利要求261到295所述的方法,其中使用权利要求206到260的方法使所述结合数据集可供隐私保持分析使用。
297.一种软件系统,所述软件系统实现上文在权利要求1到296中定义的计算机实现的方法。
298.一种数据集,所述数据集已使用上文在权利要求1到296中定义的计算机实现的方法生成。
299.一种云计算构架,所述云计算构架实现如上文在权利要求1到296中定义的的计算机实现的方法。
300.一种访问云托管资源的方法,所述方法包括实现如上文在权利要求1到296中定义的方法的步骤。

说明书全文

计算机实现的隐私工程系统和方法

[0001] 发明背景1.技术领域
[0002] 本发明的领域涉及管理和控制含有敏感或识别性质的信息的数据集的隐私和实用性的计算机实现的过程。更具体地但并非排它地,本发明涉及用于使敏感或识别数据集匿名的计算机实现的过程、差分隐私系统,和用于安全地共享敏感数据集的计算机实现的方法。
[0003] 本专利文件的公开内容的一部分含有受版权保护的材料。版权所有者不反对任何人按专利文件或专利公开在美国专利与商标局专利文档或记录中出现的形式复制所述专利文件或专利公开,但是在其他方面保留任何的所有版权权利。
[0004] 2.现有技术描述
[0005] 本公开的说明书广泛并且有深层度。我们现在将转而描述与本公开的关键方面有关的现有技术。
[0006] 差分隐私
[0007] 数据分析师通常想要使用敏感或机密数据源。敏感数据分析行业中的现有实践不足,因为现有实践在数据仍有用时无法提供充分隐私。例如,一种常见解决方案在于依赖用于提供对敏感数据的访问的访问控制和安全工作区域(enclave)。这种方法并不保护隐私,因为实施分析的人员仍然可以学习关于数据集中的个体的敏感信息。一般来说,依赖安全性技术的所有方法都受到这个问题的影响:需要使用数据的那些人将能够违反个体的隐私。
[0008] 相比以上论述的安全性方法,称为隐私增强技术的一系列方法提供基本上较好的隐私保护。数据隐私方法使用统计和密码技术来使分析师能够提取关于群组的信息而不能够大量学习个体。对于群组分析是所需要的目标的情况——包括商业智能、报告、独立性测试、群体分析,和随机控制实验的广泛类别的情况——隐私增强技术允许人员进行分析以实现他们的目标而不能够学习关于个体的敏感信息。
[0009] 隐私增强技术的一个子集,隐私保持查询界面,涉及响应于聚集查询并且以保持个体隐私的方式发布所请求统计的系统。这些系统由于其用于隐私的强大保证的可能而具有学术价值:例如,其可保证差分隐私,即最近已用于Google Chrome和苹果iOS中的个体的强大隐私保证。
[0010] 值得注意的一个行业尝试是使用一种称为查询集大小限制的技术的查询界面。查询集大小限制是在其对于某一阈值t(通常是5、10,或100)是在小于t个人的群体上的情况下抑制聚集结果的实践。许多行业查询界面宣传他们使用这种方法并且宣称这种方法保持隐私。然而,这种方法不足以使查询界面保持隐私。查询集大小限制对于称为跟踪器攻击的一系列攻击是脆弱的,所述跟踪器攻击可用来成功地规避几乎任何查询集大小限制并且恢复关于个体数据对象的信息。跟踪器攻击是可用来确定单个记录的信息的聚集查询的组合。跟踪器攻击的实例可见于附录1中。
[0011] 尽管隐私保持查询界面的学术流行性,但是不存在为隐私保持查询界面提供用于行业使用的充分灵活性和可用性的可广泛利用的软件系统。在将理论付诸实践中存在若干挑战,如但不限于:包括在数据分析师不注视数据的情况下定向数据分析师的方式、用于控制和报告查询结果的准确性的系统、用于检测攻击尝试何时发生并且与数据持有者接口的系统,和用于将学术界的核心技术扩展到现实数据类型的较宽集合的方法——上述各项挑战通过本发明解决。
[0012] 管理和共享包括初始唯一ID的敏感数据集
[0013] 人们通常将多个行使用于他们的财务,将多个医院和医生使用于他们的医疗治疗,将多个电话使用于他们的呼叫等。汇编关于个体的信息的完整集合可能是一大挑战,因为所述信息跨于这些不同的组织而分段。
[0014] 如果组织希望拼凑这个分段信息,则他们将需要从所有相关方收集数据并且在身份证号码等公共唯一标识符上结合所述数据。
[0015] 然而,这类唯一标识符致使隐私违反微不足道——身份证号码已知的任何目标可在数据中轻松查找到。
[0016] 一种与贡献组织共享数据集的一般方式为贡献组织在不知道中心相关方的情况下商定共享秘密密钥,然后用这个密钥加密全部ID号。然而,这难以实践,因为他们通常不具有独立地组织并且保全秘密密钥的能
[0017] 处理敏感数据集和公布数据集的衍生安全拷贝
[0018] 数据分析师和软件测试员通常想要使用敏感或机密数据源。敏感数据使用的行业中的现有实践不足,因为现有实践在数据仍有用时无法提供充分的隐私。
[0019] 用于使用敏感数据的最常见工作流中的一个在于创建去敏感或去识别(deidentified)拷贝,所述去敏感或去识别拷贝可用来代替原始数据。这个工作流涉及产生类似原始表的表的集合,但是某些字段已被改变或抑制。字段的改变或抑制意图防止人们通过查看数据集学习关于个体的敏感属性。
[0020] 若干技术已用来创建用于初始数据集的去识别拷贝,如例如:令牌化(tokenisation)和k匿名化。
[0021] 令牌化涉及用随机生成的值替换标识符(如ID号或全称)的实践。存在用于各种应用的令牌化技术,但是很难使用这些技术来处理如存储在HDFS(Hadoop分布式文件系统)中的那些大型分布式数据集。
[0022] K匿名化(K-anonymisation)是考虑可利用的背景信息并且确保所述背景信息不能用来重新识别所掩蔽数据的过程。在k匿名模型中,可通过背景信息学习的属性,如性别、年龄或居住地,被称为准标识符。如果数据集中的每个记录与k-1个其他记录共享其准标识符值的组合,则数据集是k匿名的。这向试图重新识别数据的攻击者设置显著的障碍,因为其不能使用背景信息来分辨k个记录中的哪一个对应于任何目标个体。
[0023] K匿名化是一种已经建立的技术,但是在一些方面还带有显著的创新空间,如但不限于:朝着k匿名化的适当配置引导非专家用户,和测量并且最小化k匿名化对数据实用性的影响。
[0024] 本发明解决以上弱点以及以上未描述的其他问题。
[0025] 还以可参考PCT/GB2016/053776,所述专利的内容以引用的方式并入本文。

发明内容

[0026] 本发明的一个方面是允许以多种方式识别和保护敏感数据的系统,所述多种方式可针对不同工作流、数据情形或用例加以组合。
[0027] 另一个态样是方法,其中基于计算机的系统扫描数据集以识别敏感数据或识别数据集,并且通过处理那个数据以产生安全拷贝来使能敏感或识别数据集的匿名化。这个发现和匿名化可比例缩放至大数据,并且可以支持分布式计算群集上的并行执行的方式实现。用户可以配置并且控制如何使数据匿名化,可观察存在哪些隐私险和如何缓和所述隐私风险且/或可以记录并且检查所有分类和匿名化活性的审计跟踪。匿名化可由令牌化、掩蔽,和/或k匿名化组成以保护免于通过背景信息或至外部数据集的链接重新识别的风险。令牌化过程可以使用令牌库,所述令牌库可驻存在分布式计算群集上或驻存在外部数据库上。
[0028] 另一个方面是用于防止对原始数据集的访问的系统。系统可使能隐私保持聚集查询和计算。系统可使用差分隐私算法来降低或防止敏感信息的识别或公开的风险。数据访问可被控制并且所有使用可被存录,并针对恶意行为加以分析。系统可用来查询关系型数据库中、扁平文件中,或非关系型分布式系统如Hadoop中的数据。系统可用来管理并且审计所有数据访问,并且用来分类哪些数据是敏感的并且应通过差分隐私算法处理。
[0029] 另一个方面是用于管理和共享由结合在一起的敏感数据集的组合组成的敏感数据的计算机实现的方法。数据可针对公共标识符(如社会保障号码)加以结合,同时保护那个公共标识符并且确保其在匹配过程中不被透露或所得结合数据集。结合数据集然后可使用以上定义的方法、系统中的一个或多个匿名化。
[0030] 其他关键方面包括以上定义的特征中的任何一个或多个。附图说明
[0031] 现将参考以下附图通过举例来描述本发明的方面,在附图中:
[0032] 图1示出例示系统的关键方面的图解。
[0033] 图2示出例示Lens的关键部件的图解。
[0034] 图3示出具有查询界面的屏幕截图。
[0035] 图4示出列联表。
[0036] 图5示出查询工作流的图解。
[0037] 图6示出样本聚集机制的图解。
[0038] 图7示出向终端用户显示所花费的预算量的用户界面的屏幕截图。
[0039] 图8示出表示与时间有关的数据集的个体查询的线图。
[0040] 图9示出向数据持有者显示的信息的屏幕截图。
[0041] 图10示出贡献者向接受者共享数据的简单图解。
[0042] 图11示出例示SecureLink的关键部件的图解。
[0043] 图12示出例示Publisher的关键部件的图解。
[0044] 图13示出Publisher中的“策略”概要的模型化的实例。
[0045] 图14示出例示Publisher内的规则共享的图解。
[0046] 图15示出例示Publisher内的规则库的配置的图解。
[0047] 图16示出与元数据存储器整合的过程。
[0048] 图17示出允许用户证实、从替代方案的集合选择,并且根据列定义新规则的用户界面的屏幕截图。
[0049] 图18示出例示数据工作流的审计的图解。
[0050] 图19A示出例示令牌化流程的图解。
[0051] 图19B示出例示令牌化流程的图解。
[0052] 图20A示出例示模糊化流程的图解。
[0053] 图20B示出例示模糊化流程的图解。
[0054] 图21示出例示衍生令牌化流程的图解。
[0055] 图22示出例示使用模糊化阶段内的碰撞映射的过程的图解。
[0056] 图23A示出例示适于使用衍生令牌化的令牌生成阶段的图解。
[0057] 图23B示出例示适于使用衍生令牌化的令牌生成阶段的图解。
[0058] 图24示出具有模糊化阶段的碰撞映射工作流的图解。
[0059] 图25示出具有食物层次的实例的图解。
[0060] 图26示出例示自上而下一般化方法的图解。
[0061] 图27示出具有“动物”层次的实例的图解。
[0062] 图28示出具有“动物”层次的另一个实例的图解。
[0063] 图29示出平面图形表示和一般化领地地图。
[0064] 图30示出由Publisher显示的表,所述表含有对应于特定数据列的规则和失真。
[0065] 图31A示出其中显示失真直方图的Publisher的屏幕截图。
[0066] 图31B示出其中显示失真直方图的Publisher的屏幕截图。
[0067] 图32示出其中显示群集大小分布的Publisher的屏幕截图。
[0068] 图33示出向终端用户显示的群集大小泡式图的实例。
[0069] 图34示出向终端用户显示的群集大小泡式图的实例。
[0070] 图35A示出描绘敏感数据发现的可视化
[0071] 图35B示出描绘敏感数据发现的可视化。
[0072] 图35C示出描绘敏感数据发现的可视化。

具体实施方式

[0073] 我们现在将在以下章节中描述本发明的实现方式:
[0074] 章节A:系统中的一些关键部件的概述
[0075] 章节B:Lens
[0076] 章节C:SecureLink
[0077] 章节D:Publisher
[0078] 应注意,以上列出的每项创新和用于每项创新的有关任选实现方式特征可以与任何其他创新和有关任选实现方式组合。
[0079] 在本文档中,我们将在以下不同上下文中使用术语“节点”:
[0080] (1)计算群集中的节点。在这种情况下,节点意味作为计算群集的成员的单个计算机。
[0081] (2)图形结构中的节点,所述节点的边缘可连接至其他节点。我们在论述树型结构时在这个意义上使用术语节点。术语根节点、叶节点、子节点,和父节点涉及这个上下文。
[0082] 我们也将在以下不同上下文中使用术语“群集”:
[0083] (1)计算群集。计算群集是一起工作以存储大文件且进行分布式计算的计算机的集合。
[0084] (2)表中准识别值相同的行的集合,也称为匿名集合。例如,如果有且仅有四行的准识别值为“头发=棕色”、“年龄=92”、“国籍=加拿大”,则这四个记录是群集。
[0085] 章节A:系统中的一些关键部件的概述
[0086] Privitar目标在于提供平台解决方案以使组织能够使用、共享并且交易含有个人或私有信息的数据。
[0087] 图1示出整个系统架构的实例。系统允许以多种方式识别和保护敏感数据,所述多种方式可针对不同工作流、数据情形或用例加以组合。
[0088] Privitar Publisher扫描数据集以识别敏感数据或识别数据集,并且通过处理所述数据来使能敏感或识别数据集的匿名化,以产生安全拷贝。这一发现和匿名化扩展至大数据,并且以支持分布式计算群集上的并行执行的方式实现。令牌化过程可以使用令牌库,所述令牌库可驻存在分布式计算群集上或驻存在外部数据库上。
[0089] Publisher Management Application允许用户配置并控制数据如何匿名化,观察存在哪些隐私风险和如何缓和所述隐私风险,记录并检查所有分类和匿名化活动的审计跟踪。匿名化可由令牌化和掩蔽,并且还由k匿名化组成,以免遭受通过背景信息或至外部数据集的链接重新识别的风险。
[0090] Privitar Lens采取隐私保护的互补和替代方法。Lens防止对原始数据集的访问,但是使能隐私保持聚集查询和计算,并且使用差分隐私算法以降低或防止敏感信息的识别或公开的风险。数据访问被控制,所有使用被存录,并针对恶意行为加以分析。Lens可用来查询关系型数据库中、扁平文件中,或Hadoop等非关系型分布式系统中的数据。
[0091] Lens Management Application用来管理并且审计所有数据访问,并且用来分类哪些数据是敏感数据并且应通过差分隐私算法处理。
[0092] 有时,敏感数据由结合在一起的敏感数据集的组合组成。SecureLink Oblivious Matching提供用于数据针对公共标识符(如社会保障号码)加以结合的方式,同时保护那个公共标识符并且确保其在匹配过程或所得结合数据集中不被透露。然后结合数据集可使用Privitar Publisher加以匿名化,或可用于使用Privitar Lens进行隐私保持分析。
[0093] 章节B:Lens
[0094] Lens涉及用于在数据集上运行计算和查询使得隐私被保持的计算机实现的过程;应用访问控制方法、噪声添加、一般化、速率限制(即节流)、可视化,和监视技术。
[0095] Lens是用于应答数据集上的查询同时保持隐私的系统。所述系统适用于对含有关于人员、公司,或隐私必须被保持的其他实体的敏感信息的任何数据集实施分析。例如,Lens可用来对医院就诊数据、信用卡交易数据、移动电话位置数据,或智能计测数据实施分析。如图2中所示,Lens(11)通常是数据分析师(14)可藉以检索关于数据集(12)的信息的唯一网关。数据集自身保护在安全位置(13)中。数据拥有者或持有者(15)(例如银行或健康公司)可以配置Lens并且通过Lens审计分析师的活动。通过用来检索可检索的信息和信息类型的一组限制方式,Lens将对查询系统的配置的访问限制于单个通道。
[0096] Lens不同于用来实现隐私保持查询界面的先前努力。两个最著名的先前尝试是PINQ(McSherry,Frank D."Privacy integrated queries:an extensible platform for privacy-preserving data analysis."Proceedings of the 2009ACM SIGMOD International Conference on Management of data.ACM,2009)和GUPT(Mohan,Prashanth等人"GUPT:privacy preserving data analysis made easy."Proceedings of the 2012ACM SIGMOD International Conference on Management of Data.ACM,2012),两个文献是已公布的学术课题。一个明显差异在于先前尝试是窄范围的软件库,而Lens是具有若干新颖可用性特征和隐私最优化的综合应用程序。这里更详细地描述一些差异。第一个差异在于,Lens是网络服务,而先前尝试是软件库(用C#的PINQ、用Python的GUPT)。第二个差异在于,Lens因为其是具有登录和用户认证的实况服务,所以具有针对数据分析师和数据持有者的分离界面,而Lens不具有这样的界面分离。第三个差异在于,提供给数据分析师和数据持有者两者的功能远超过先前尝试提供的功能,具体来说,关于数据持有者在服务正运行时控制服务,并且审计系统中的所有活动的能力,和另外关于数据分析师浏览数据集并取得他们的观看和感触的感觉的能力。第四差异在于,Lens具有若干可用性特征,如报告结果的噪声和允许用户以新颖的直觉方式规定隐私参数。第五差异在于,Lens具有若干隐私最优化,如将列指定为公共的或私有的,并且基于他们是否关心私有列而自动地决定是否将噪声添加至查询。
[0097] 本章节的剩余部分结构化如下。Lens是查询界面服务,并且章节1定义我们通过查询意味什么并且描述处置的查询的范围。章节2定义Lens处置哪些类型的数据集。章节3定义Lens的架构设置。章节4定义Lens遵循来用于处置查询的一般步骤。章节5描述通过确保Lens的输出不泄露关于个体的信息来保持个体的隐私的Lens的特征。章节6描述如何配置Lens。章节7概括用例的一些实例。
[0098] 1.查询的范围
[0099] Lens可应答本质上聚集的任何查询。聚集查询是给出关于一群人而不是个体的统计信息的查询。图3示出具有查询界面的实例的屏幕截图。聚集查询的实例范围自和、计数,和均值至聚类和线性回归。支持的查询类型可包括但不限于:
[0100] 1.1类似SQL的聚集查询
[0101] 这些是相当于用SQL语言的SELECT COUNT(*)、SELECT SUM(variable),和SELECT AVG(variable)的查询。在这些查询中,将若干筛选应用于数据集以取得记录的子集,然后计数记录或找到子集内的某一列的和或平均值。Lens将这些查询表达为抽象语法树,在所述抽象语法树中存在两个部分:聚集和筛选的列表。聚集具有两个部分:函数(例如SUM、MEAN,或COUNT)和列名(如果函数不需要列名,例如如果函数是COUNT,则列名可以遗漏)。筛选各自具有三个部分:列名(column name)、比较运算符(comparison operator),和值(value)。比较运算符可为小于、大于、小于或等于、大于或等于、等于,或不等于。然而,如果指定的列是类别列,则比较运算符限于等于或不等于的较小列表。这些查询通过用户界面传送至Lens中,所述用户界面可为REST API或网络页面(参见以下屏幕截图)。REST API接受JSON对象,所述JSON对象规定以上所列的数据字段中的每一个。Lens具有若干连接器,所述连接器使用抽象语法树来构造用于一定下层数据库的查询。例如,对于PostgreSQL查询,将聚合函数转化成“SELECT()”,将筛选构造为“”,并且将完整查询汇编为“SELECT()FROMWHEREANDAND…AND”。
[0102] 这系列查询可扩展至列联表(其为用于列联表中的每个单元的一个聚集查询)。列联表的图像在图4中示出,以通过位置和员工等级分解的薪资为例。对于列联表,除了类别列的列表之外,将与正常聚集查询相同的输入传送至“分组依据(group by)”。Lens首先查询下层数据库以确定每个值存在于每个类别列中。其在列表中表达,下文中称为COL1VALS,COL2VALS,…COLNVALS。Lens然后迭代地选择(col1val,col2val,…,colnval)的每个唯一组合,其中col1val是选自COL1VALS,col2val是选自COL2VALS,……,colnval是选自COLNVALS。Lens构造用于每个所得元组(col1val,col2val,…,colnval)的查询,所述查询是具有N个额外筛选的基本查询,其中对于{1..N}中的筛选i,列名是通过列名分组的第i组的列名,比较运算符等于并且值是colival。然后Lens针对这些查询中的每一个构造用于下层数据库的查询,然后返回每个查询的结果。每个结果是逻辑列联表中的单元。GUI可将具有至多2个群组依据变量的列联表示为简单的二维表,其中col1的值是列标题,col2的值是行标题,并且在列i和行j处的每项是元组(colheaderi,rowheaderj)的查询结果。
[0103] 1.2参数化模型
[0104] 某些监督学习模型和无监督学习模型,如线性回归或k均值聚类,具有众所周知的训练算法。这个查询类型将训练算法的参数作为输入,在数据集上训练模型,并且返回训练模型的参数作为输出。Lens可以使用预测模型标记语言(PMML)等语言来规定模型类型和参数(https://en.wikipedia.org/wiki/Predictive_Model_Markup_Language)。PMML是用来以XML描述预测模型的良好定义的方式。参数将基于算法变化。例如,对于决策树,需要树的阶层数以及要使用的列,和要预测的列。输出也基于模型类型变化。例如,决策树算法输出决策数,即由节点构成的树,其中除了具有预测的叶节点之外,每个节点具有变量名和阈值。输出也可以用PMML等模型描述语言表达。可选地,这个查询类型可将将要由模型训练算法使用的列的显式集合作为额外输入。
[0105] 1.3概率论统计测试
[0106] 这些是通常已知的测试,如卡方独立性测试、学生t测试、方差分析(ANOVA)模型,和克莱姆V测量。在这种情况下,查询将感兴趣的变量作为输入,并且返回关联强度的相关测量、概率(例如p值),或者统计测试的任何可能输出作为输出。例如,对于卡方独立性测试,Lens将变量对作为输入以测试虚假设(其为独立的)为假的独立性,并且返回其p值。注意:界面位于这个位置处的原因在于,在一些情况下,如果已将仿真噪声添加至下层数据,则必须以非标准方式计算p值。例如,论文“Differentially private chi-squared hypothesis testing”概述用于测量已受隐私保持噪声添加扰乱的列联表中的独立性的技术,并且所述技术是与用卡方方法(Gaboardi,Marco等人"Differentially private chi-squared hypothesis testing:Goodness of fit and independence testing."arXiv preprint arXiv:1602.03090(2016))测量独立性的标准方法不同的方法。然而,通过隐私保持输出的计算达到的p值在意义上等效于正常情况,因此p值对于要输出的界面是干净的。
[0107] 1.4用于自定义聚集查询的任意代码
[0108] 在这个模式下,Lens将在数据集上运行的自定义代码作为输入,并且返回少量聚集统计量。代码可以用Python脚本语言表达。Lens假定Python函数会将整体数据集(表达为作为CSV字符串的行的迭代程序)作为输入,并且返回少量数值输出。Lens还必须被给予数值输出的数目和每个输出的期望十进制范围作为输入。Lens接受作为字符串的脚本,并且汇编来自用户提供的函数的可执行Python脚本文件,和Python中加载文件、对文件执行脚本,并且将输出打印至标准输出(stdout)的硬编码段。然后Lens在子进程中执行这个脚本文件并且将输出捕获至标准输出,因此其可在适当时后处理或返回结果。有关这个方法的安全性的更多信息,请参见架构章节。任选地,这个查询类型可将所使用列的显式集合作为额外输入。附录1(章节B)给出Python中任意聚集查询的实例。这个实例查询计算将薪资模型化为员工等级和员工性别的函数的线性回归模型的系数。在员工等级和员工性别变量的独热编码之后,存在用于等级和性别的六个变量,因此函数将返回6个输出。因而,分析师除查询脚本之外必须提供数目6和用于6个线性回归系数的期望范围。然后,六个系数将被返回作为查询结果。
[0109] 1.5特征提取查询
[0110] 特征提取通常并非用于隐私的问题,因为没有信息需要被返回。例如,在查询数据集之前,数据分析师可希望变换所述数据集。Lens支持特征提取查询,所述特征提取查询不同于其他查询,因为其不返回关于数据的任何信息,相反自Lens内的现有数据集创建新的数据集。因此,Lens提供“充当面罩(veil)”的特征提取过程,例如不向分析师提供关于数据的任何信息,因而不承担隐私风险。然后数据分析师能够查询新的数据集和现有数据集两者。
[0111] 在格式上类似于用于任意查询的代码,特征提取特征将用于任意行变换的代码作为输入。行变换是按行接收并且输出行的函数,其中输出行不需要与输入行长度相同,并且可含有输入行中的一个或多个值的变换、组合,或任意函数。这个输出行中的值称为特征,来自机器学习的术语。代码可以表达为字符串,并且以与用于任意查询的代码相同的方式执行。在Python语言中,函数必须是接受行作为自变量(例如作为CSV字符串)并且返回行(例如作为CSV字符串)的函数。然后Lens对数据集上的每行运行这个函数,从而创建新的数据集。然后这个新创建的数据集可用于查询,如Lens中的其他数据集。应注意,这个新的数据集被视为其来源的数据集的延伸(逻辑上,仅是添加的新列的集合),并且其与那个数据集共享所有隐私性质。相同噪声添加规则适用,并且查询的相同限制(cap)适用。请注意,查询的限制是累积的,其中原始数据集和新创建的数据集共享相同隐私预算(如果隐私预算正被使用。参见以下差分隐私背景章节中的隐私预算的定义)。最后,设定新的数据集的访问控制,使得仅创建所述新的数据集的用户可以访问所述新的数据集,并且将所有列标记为私有的。
[0112] 如果数据是时间序列数据,意味每人可对应多于一行,则Lens以稍微不同的方式支持特征提取。区别如下:特征提取函数将特定个体的每行的列表作为输入,并且输出特征的一行。如果数据持有者提供是数据集中人员的标识符的列的名称(例如“user_id”列),则这可被实现。然后Lens迭代遍历不同的标识符,选择属于所述标识符的行,并且对这些行运行特征提取函数以得到输出行。
[0113] 2.数据集的范围
[0114] Lens支持结构化数据集,但不支持其他类型的数据(自由文本、音频、视频、半结构化等)。Lens支持保持在许多数据库系统(例如PostgreSQL、MySQL、Hive、Teradata)中的结构化数据集。数据持有者可以通过公布用以查询数据集的充分信息以使数据集可用于Lens中。例如,在PostgreSQL数据库中,数据持有者必须上传数据库的URL和表名。然后Lens连接至数据库并且在每个查询中使用表名。
[0115] 2.1支持的变量类型
[0116] Lens支持对两个系列变量的查询:连续变量和类别变量。类别变量通常实现为字符串,而连续变量通常实现为浮点类型。日期也可以被处置为连续变量。整数可取决于它们使用的上下文而为类别的或连续的。数据持有者可在上传时将列指定为连续的或类别的;否则,浮点、双精度和日期将被映射至连续的并且剩余的将被映射至类别的。在Lens的类似SQL的查询特征中,类别变量和连续变量起到不同的作用。例如,仅连续变量可为SUM或AVERAGE查询的对象。同时,仅类别变量可为分组依据的对象。典型的数据集将具有自两个至若干打列的任何列,其中混合有连续列和类别列。值得提到的一个特殊情况是位置变量。
位置通常表达为两个连续变量,一个纬度变量和一个经度变量。Lens可通过将纬度和经度视为分离的连续变量对位置变量运行。
[0117] 2.2结合表
[0118] 在支持结合的数据库中,数据持有者可以通过供应两个表的名称和结合声明(例如“Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;”)上传结合表。然后Lens将在每个查询中使用这个结合声明,从而确保其始终查询结合表。
[0119] 2.3矩形与时间序列数据
[0120] Lens支持每个数据对象对应一行的数据集。这称为矩形数据。Lens还支持每个数据对象可对应多行的数据集。这称为时间序列数据。
[0121] 3.架构
[0122] 以下章节列出关于Lens的架构的信息。
[0123] 3.1概述
[0124] Lens作为网络服务器运行(例如使用Tomcat框架)。服务器必须具有对存储有敏感数据的数据库的读取访问。服务器还必须是用户通过网络可访问的。对于网络服务器的访问通过以用户账户的登录加以控制,并且访问还可以使用防火墙等标准网络技术加以限制。
[0125] 3.2安全代码执行
[0126] Lens支持沙盒(sandboxing),以便降低执行用户提供的代码(例如用于任意查询和特征提取的Python代码)的安全风险。沙盒通过自图像运行隔离环境(即虚拟机或Docker容器)而工作,所述隔离环境明确地限制程序可利用的资源,例如禁止因特网访问、特权提升,和对文件系统的小区域以外的所有部分的访问。然后Lens将数据和代码加载至这个隔离环境中,并且仅提取结果(通过如共享文件夹或虚拟机与主机之间的网络接口的方法)。Lens在这个区域中并非创新的,相反使用大型开放在线课程(MOOC)供应商的已建立实践,所述大型开放在线课程(MOOC)供应商已设计安全系统以自动地评估并且分级来自学生的代码提交。安全措施的列表在由Coursera在2015年10月的AWS re:Invent的讲话“Amazon ECS at Coursera:Powering a Gener al-purpose Near-line Execution Microservice,while Defending agains t Untrusted Code”(https://www.youtube.com/watch?v=a45J6xAGUvA)中提出。
[0127] 3.3高可利用性服务
[0128] Lens可在高可利用性模式下运行以抵抗主机机器的故障。这可通过在不同机器上的webapp服务(例如Tomcat)的两个拷贝上运行,和使用可以自动地将通信量重新定向至正在运行的机器的负载平衡器来实现。webapp服务的复制拷贝指向一致的数据库后端。在机器故障的情况下,负载平衡器将自动地将通信量重新定向至其他机器。然后用户可以继续以相同方式使用服务。Lens扣除隐私预算(参见以下噪声添加章节),且/或在执行查询之前实施恶意查询检测规则,以确保不存在主机机器的故障允许分析师在结果没有经受充分的隐私保护的情况下查看查询的结果的时间点。
[0129] 3.4 REST API
[0130] Lens使用REST API作为用户接口和用于网络前端的接口两者。REST API允许其他系统以编程方式查询Lens。REST API支持对系统的所有操作,包括探测数据集和运行查询。
[0131] 3.5可插拔DB连接
[0132] Lens可以通过连接器模的可扩展系统连接至若干数据库。连接器将Lens的抽象查询语法转换成适合于数据库系统的语言。
[0133] 3.6配置数据库
[0134] Lens使用关系型数据库(例如,PostgreSQL)来存储配置信息、审计日志,和关于负载数据集的元数据。作为配置信息,Lens存储许可的用户、关于每个用户的元数据、用于每个用户的隐私参数,以及有关用户可以访问各列的每(用户、列)对的访问控制信息。作为审计日志,Lens存储询问的每个查询,以及结果和花费的隐私预算(如果适用)。Lens还存储已经触发的任何警告。作为关于负载数据集的元数据,Lens存储所有表和列的名称,以及列的类型,和某些其他元数据如列范围和用于类别列的选项。当数据集被上传时,Lens捕获这个数据集元数据。
[0135] 4.查询工作流
[0136] 图5示出例示查询工作流的图解。Lens被建立为接受查询并且在将结果返回至查询之前携载所述查询通过多级工作流的服务。取决于使能的隐私控制,查询的结果可为近似的或精确的。工作流的各个关键阶段如下。
[0137] 4.1查询接收
[0138] 由服务接收查询以及与隐私有关的可能元信息。
[0139] 4.2查询预处理
[0140] 基于构建至Lens中的规则(以下描述)将查询分类为恶意的或良性的。取决于隐私配置,可标志或阻止视为恶意的查询。在这一阶段处,也可以改变查询以返回更一般的结果。例如,可改变查询“SELECT AVG(salary)WHERE weight=207”以读取“SELECT AVG(salary)WHERE weight>200AND weight<250”。
[0141] 作为将查询分类为良性的或恶意的一部分,其他Lens可对数据集运行其他查询以收集额外信息来帮助确定恶意。
[0142] 4.3查询运行
[0143] 对数据集运行查询。这个步骤不是由Lens处置,相反由Lens连接到的数据库系统(例如Postgres、MySQL、Elasticsearch,或Hive)进行。
[0144] 4.4查询结果后处理
[0145] 取决于隐私配置,查询的结果可以随机噪声扰乱、抑制,或舍入。
[0146] 4.5数据持有者查阅
[0147] 取决于隐私配置,数据持有者可以手动地查阅由Lens提供的查询和附随的可视化/通知。他可以同意或拒绝查询。这通过使用异步响应模型实现,其中在数据分析师提交查询之后,Lens将其状态标记为“NEEDS_APPROVAL”。只有一旦数据持有者同意查询,状态改变成“APPROVED”并且数据分析师可以查阅查询结果。
[0148] 4.6查询结果返回
[0149] 返回查询结果,连同与查询或查询结果已如何改变有关的元信息。
[0150] 5.隐私特征
[0151] Lens具有以下特征以在维持高度实用性时保持个体隐私。
[0152] 5.1虚设数据集
[0153] 在数据分析的早期阶段中的常见需求是审计数据以取得大小、形状、列类型、列范围,和实例行看起来像什么的基本感觉。
[0154] 例如,数据分析师可能想要使他们自己适应数据,较好地理解每列的意义,抽查关于数据的某些假设,或调试特定结论。
[0155] 为了在保持最大隐私时满足这个需求,Lens创建虚设数据集,所述虚设数据集关于如遗漏值的比例和列的范围的性质(性质的完整列表在以下要点中)匹配原始数据集。性质以隐私风险逐渐增大的顺序列出,并且数据持有者可以针对每个数据集配置虚设数据集应匹配原始数据集的阶层。例如,数据持有者可以说在构造虚设数据集中使用最高第3阶层的性质。
[0156] 阶层的概念有意义,因为每个阶层发布相比于低于所述阶层的阶层的更多信息片段:例如,第2阶层上的性质发布相比于第1阶层的关于原始数据的更多信息。具体地说,第1阶层发布仅关于数据中的遗漏和NULL值的信息,其通常是不敏感的。第2阶层发布每个数值列的近似最小和最大值,其可公开数据集中存在的几个值。第3阶层公开数据集中某处的类别值,但是仅公开人们共享的那些。第4阶层公开数据集中的所有类别值。第5阶层公开频率信息,从而示出哪些值是罕见的和哪些是常见的。
[0157] ●第1阶层:每列中遗漏值的比例。这通过迭代遍历各行和计算在每列中具有多少遗漏值(其中遗漏通过数据方案定义,其通常是空字符串)加以计算。
[0158] ●第1阶层:每列中NULL值的比例。这与遗漏值的比例类似地加以计算。
[0159] ●第2阶层:连续列的范围。
[0160] ●第2阶层:整数列的范围。
[0161] ●第3阶层:类别列中的常见选项。这通过以下操作加以计算:迭代遍历各记录和捕获每个选项的频率计数,并且如果其(a)大于一定可配置的阈值和/或(b)大于列总数的一定可配置的比例,则仅包括输出集合中的选项。
[0162] ●第4阶层:类别列中的所有选项。
[0163] ●第5阶层:单变量分布。以用于连续和类别变量的不同方式计算分布。对于类别变量,值计数用来表示分布。对于连续变量,具有一定数目的直条(数据持有者可配置)的直方图用来表示分布。
[0164] 作为又一增强,Lens支持表面上连续列,所述表面上连续列本质上是连续和类别的混合。例如,每周工作的时间是表面上连续的,但实际上是部分类别和部分连续的概念。大多数工作人员工作固定量,如40小时或45小时。另一大部分工作人员每周工作可在30-70小时之间变化的更可变量的小时数。合成数据在反映这两个模式的情况下最有用,并捕获值40和45是组成行的一定部分的类别选项,并且剩余行表现为具有表达为直方图的分布的连续变量。为了收集这个数据,捕获列的值计数。超过一定可配置的阈值的任何计数被处置为类别的,而剩余行被处置为连续的。
[0165] Lens首先迭代遍历数据集,从而计算以上统计量中的每一个。然后,其对固定数目的行(例如,100)抽样,因此针对列中的每一个抽样。抽样是通过以下方式进行:(a)首先翻转偏币以决定是否输出遗漏值,然后针对NULL进行相同操作;(b)对于连续列,如果仅存在最小值和最大值,则自区间[最小值,最大值]均匀地抽样,但是如果存在记录的直方图,则进行加权随机选择以选取直条,然后在直条的范围内均匀地抽样;(c)如果是类别变量,则进行加权随机选择以选取选项;(d)如果是混合类别/连续变量,则翻转偏币以确定将其处理为类别的还是连续的,然后据此遵循(b)或(c)的方法。被抽样的行通过API调用或网页上的特征展现给用户。被抽样的行可被自由地下载并共享。
[0166] 5.1.1虚设数据集作为测试范围
[0167] Lens允许分析师对虚设数据集执行查询。这个选项没有隐私成本,但是允许分析师确保他的查询如所预期的那样运行。这个功能在自定义(例如Python代码)查询和特征提取查询中尤其有用,因为可有助于确保查询不会在数据上崩溃或失败。因此,数据分析师能够在将查询提交至Lens之前核对查询将如所预期的那样运行。因为虚设数据集针对少许性质匹配现有数据集,所以关于原始数据放弃极少。
[0168] 5.2恶意查询检测
[0169] Lens含有用以检测恶意查询和标志或阻止所述恶意查询的方法。这些是基于规则的方法,所述基于规则的方法检测可能使用在攻击中或不可能为合法聚集分析的查询。本章节仅适用于类似SQL类型的查询。
[0170] 5.2.1背景
[0171] Dorothy Denning在其1982出版的《Cryptography and Data Security》一书的第6章中概括了对抗聚集查询中的公开的若干方法。包括“查询集大小控制”、“最大阶控制”、“隐式查询控制”和“Sm/N准则”。假设C是运行聚集查询所在的记录的集合(即,在已应用筛选子句以使记录的集合缩减之后)。假设|C|是C中记录的数目。查询集大小控制是仅在t<|C|.1)。隐式查询控制类似于查询集合大小控制,但是其对原始查询和所有隐式查询都加强查询集合大小控制。
隐式查询是应答可衍生自原始查询和较少特定查询的组合的所有查询。较少特定查询是具有原始查询的筛选子句的适当子集的查询。在实践中,查询的隐式查询看来像筛选子句的任何子集反向的情况下的原始查询(例如WHERE age>45变成WHERE age<=45)。
[0172] 5.2.2实现方式
[0173] Lens将以上核对实现为查询的预处理阶段的部分,并且如果攻击中的任何攻击被检测到,则Lens创建警告记录。Lens也可以通知数据持有者(例如,经由电子邮件)警告或在数据持有者的审计视图中突出所述查询。任选地,如果查询触发警告,则系统可被配置来完全阻止所述查询。这可由数据持有者配置以阻止引起警告的查询或仅发送警告并突出查询引起注意。这还可配置以阻止返回查询直到核对完成并通过,或立即应答查询并在单独线程中并行地运行核对。核对计算如下。查询集合大小控制核对是通过以“COUNT(*)”(其他查询系统中的等效物)替换原始查询中的任何聚合函数并且确保结果大于配置的阈值来计算。最大阶控制是通过审计查询并且计算筛选子句的数目并且确保数目大于配置的阈值来计算。Sm/N准则是通过对筛选子句中使用的每列运行COUNT DISTINCT,并且确保结果的乘积除以行的总数大于配置的阈值来计算。每列的COUNT DISTINCT也可在数据集被加载并且存储时进行以供重复使用,可实现较好的性能。隐式查询控制是通过使筛选子句的每个子集迭代地反向并且对所得查询运行查询集合大小控制来计算。
[0174] 5.2.3与噪声添加的复合
[0175] 这个恶意查询检测功能可以简单地用作识别恶意行动者的方式,尤其在其与噪声添加(参见下文)配对的情况下,所述噪声添加是自身的强大隐私防卫。噪声添加提供抵抗敏感数据公开的稳健防卫,但是并未清楚地指出可能恶意的查询。以上规则清楚地指出可能恶意的查询,因而可用来识别可能恶意的分析师。
[0176] 5.3至查询结果的噪声添加
[0177] Lens可在后处理阶段中将随机噪声添加至查询的结果。为了实现这一功能,Lens自以0为中心的分布(这个分布通过各种参数定义;参见下文差分隐私章节)抽取随机数。然后,将这个随机数添加至原始结果以取得噪声结果。噪声添加使系统能够实现差分隐私保证。
[0178] 5.3.1差分隐私的背景
[0179] 差分隐私是用于对敏感数据运行的算法的隐私保证。在,由于其以其他差分隐私发布构成,其在后处理时保持,并且其不受背景信息影响的事实,2006年发明的差分隐私目前被视为最强隐私保证中的一个。直观地,差分隐私承诺“攻击者实际上可学习到的关于个体的信息不会超过在数据集中不包含所述个体记录的情况下他们将学习到的信息”(https://www.infoq.com/articles/differential-privacy-intro)。存在具有不同定义的两种类型的差分隐私。第一是ε差分隐私。ε差分隐私表明,对于相差一个记录的两个数据集,算法将在一个数据集上输出任何结果的概率不超过其他数据集的e^ε概率。(ε,Δ)差分隐私表明,在概率1-Δ的情况下,ε差分隐私保证将保持。差分隐私文献提供伴随差分隐私保证发生的若干算法的描述,这些通常称为差分隐私机制(此后称为DP机制)。DP机制必须是概率性的(即,并入一些随机元素),以便实现差分隐私定义。以下DP机制与Lens有关。
[0180] 5.3.1.1拉普拉斯机制
[0181] 拉普拉斯机制通过将自拉普拉斯分布抽取的噪声添加至查询结果来实现ε差分隐私。拉普拉斯分布是以0为中心的,并且具有一个可配置的参数,规模。规模定义分布的宽度(和因而大量噪声被添加的可能性)。规模必须被设定成查询的全局灵敏度(GS)除以ε。我们现在定义GS。查询的GS是一个记录可藉以影响查询的输出的量。例如,在COUNT查询中,GS是1,因为任何单个记录仅可使任何COUNT结果上升或下降1。SUM查询的GS是变量的范围。考虑年龄变量,其(比如)始终介于0与100之间。一个记录可以使和改变的最大量是,如果记录曾经是0并且现在是100。因而,年龄列的SUM的GS是100。拉普拉斯机制的实例实现方式见于PINQ论文(McSherry,Frank D."Privacy integrated queries:an extensible platform for privacy-preserving data analysis."Proceedings of the 2009ACM SIGMOD International Conference on Management of data.ACM,2009)中。
[0182] 5.3.1.2高斯机制
[0183] 高斯机制类似拉普拉斯机制,但是具有以下区别:分布是高斯分布而不是拉普拉斯分布,方差设定为GS*ln(1/Δ)/ε,并且实现(ε,Δ)差分隐私。
[0184] 5.3.1.3样本聚集机制
[0185] 样本聚集机制实现查询f上的ε或(ε,Δ)差分隐私,其中f是数据集的函数并且通过用以下方式执行所述函数返回在已知范围内的少量输出:将数据集分解成可配置数目的块,对每个块运行f以取得结果的集合,并且使用拉普拉斯或高斯机制求取结果的差分隐私聚集。样本聚集机制的实例在图6中示出。应注意,这个方法只有在f在数据集的子样本上近似准确时才得到准确的结果。样本聚集机制的实例实现方式见于GUPT论文(Mohan,Prashanth等人"GUPT:privacy preserving data analysis made easy."Proceedings of the 2012ACM SIGMOD International Conference on Management of Data.ACM,2012)中。
[0186] 5.3.2规定分辨率
[0187] 分析师受益于在查询结果中取得他需要用于他的分析目的的分辨率,但除所述分辨率以外没有其他分辨率。实现这个平衡将允许他或她实施尽可能多的有用分析,而并不过度地冒隐私风险或进入隐私限制。为使分析师轻松地以最佳方式实现这个平衡,Lens具有规定查询结果上的所需噪声的三个模式:(1)第一是直接规定将要使用在查询上的隐私预算。(2)第二和第三仅适用于类似SQL的查询。第二是规定所需要的置信区间,例如95%+/-2.5,这意味着报告的应答在实际应答的2.5内的可能性应达95%。Lens使用拉普拉斯或高斯(取决于差分隐私的类型)累积分布函数(CDF)方程式来自这些输入到达隐私预算。(3)第三模式将置信区间表达为真值的百分比,例如95%+/-1%,这意味着报告的应答在真应答的1%内的可能性应达95%。这是通过花费一些预算以取得真应答的近似值,使用这个近似值来校准将导致所需分辨率的花费的预算的量,和用那个预算量重新运行查询近似地计算的。模式(2)和(3)仅适用于类似SQL的查询。在情况(2)和(3)中的每一个中,可进行确认步骤,其中Lens向用户显示将花费的预算的量,如图7中所示。用户可以确认或拒绝他们想要继续进行查询。附录1(章节A)描述用来计算由数据分析师规定并且对应于在此解释的模式(2)和模式(3)的所需分辨率的算法。
[0188] 5.3.3呈现关于噪声添加的信息
[0189] 本章节仅适用于类似SQL的查询。当查询结果已改变时至关重要的是向分析师呈现关于其已如何改变的统计信息,并且具体来说,通过分析师已经添加的噪声的性质。Lens与每个查询结果一起给出关于噪声添加的量值的精确或近似信息。
[0190] 对于COUNT和SUM查询,噪声分布是精确已知的,并且95%置信区间可由噪声分布计算并且向用户显示,像“400+/-25”或如“375-425”。
[0191] 对于AVERAGE查询,存在问题,因为其被计算为噪声和除以精确计数,并且精确计数并非公共的。Lens使用隐私预算的可配置硬编码量(像0.1)来取得分母中计数的近似值。然后使分子(精确地已知)中的和的噪声分布除以这个近似计数以取得平均值的噪声分布的近似值。95%置信区间可由这个分布计算并且向用户显示。
[0192] 5.3.4私有与公共列
[0193] 一些数据集混合有公共和私有列。例如,其可含有列出性别的列和列出医疗测试结果的列,并且数据持有者可以指定前者是公共的并且后者是私有的。公共意味着信息是在别处可自由利用的,或将被自由地给出。私有则意味着相反。
[0194] Lens支持将列配置为公共的或私有的(并且这个配置可为根据用户可自定义的)。Lens预处理查询以确定它们是否仅涉及公共列和这些查询是否应被允许。对于类似SQL的查询,这个确定通过在每个筛选子句中并且在聚集中审计列来实现。对于统计测试查询,其通过审计在检验中选取的变量来实现。对于灵活代码查询和参数化模型,其通过核对分析师是否提供他需要的列的显式列表,和这些列是否为公共的来确定。如果Lens确定查询仅涉及公共列,则甚至在拉普拉斯机制(即,噪声添加)正使用于隐私保护的情况下,并不添加噪声到查询并且并不花费隐私预算。换句话说,系统移除不需要隐私保护的查询的隐私保护,因为它们仅涉及公共信息。虽然这在技术上意味着系统不再提供差分隐私,但其仍然仅提供私有列中信息的隐私的等效保证。其不提供公共列中值的隐私的任何保证,但是那是可以的,因为它们无论如何是公共的。Lens可以允许或可以允许访问公共列的行阶层值的样本,这是数据持有者可配置的。
[0195] 请注意,对于筛选子句涉及公共列但是聚集涉及私有列的某些查询(例如,“SELECT AVG(test_score)WHERE gender=‘Male’;”),敏感与非敏感区别导致重要的最优化。因为如以上所论述的需要的额外查询以COUNT(在这里,“SELECT COUNT(*)WHERE gender=‘Male’;”)替换聚合函数,因而以不涉及公共列并且因此不需要噪声的查询结束,所以最优化发生。在这种情况下,由Lens实施的这些附加查询不引发隐私预算并且它们的结果是精确的。
[0196] 5.4查询一般化
[0197] 本章节仅适用于类似SQL类型的查询。Lens在预处理阶段中支持在程序上动态地改变查询以使筛选子句更一般。预处理阶段通过以筛选的更一般组合替换特定筛选重写查询。
[0198] 可向分析师示出警告,从而通知他/她这个改变正在发生。例如,如果数据集含有年龄列,并且由于HIPAA(健康保险携带和责任法案)法规,数据持有者希望所有的聚集统计量满足HIPAA要求以用于年龄一般化,Lens可以预处理查询来以更一般的年龄筛选子句替换年龄筛选子句。例如,其可以“AVG(costs)WHERE age>=40AND age<50替换“AVG(costs)where age=47”。数据持有者供应关于类别选项的所需区间或分组的信息以一般化。Lens通过预处理查询的筛选子句实现一般化。如果在筛选子句中使用的列是连续的,则Lens提取在筛选子句中使用的值,并且(a)如果其为相等筛选(例如WHERE age=45),则以定义相关联直条中的成员资格的筛选子句替换所述筛选子句;(b)其为不相等筛选(例如WHEREage!=45),则以定义自直条排除的筛选子句替换所述筛选子句;以及(b)如果其为不等式子句(例如,WHERE age>45),则以最接近的直条边界替换不等式界限。如果在筛选子句中使用的列是类别的,并且在筛选子句中使用的选项需要被一般化成一组选项(例如“January(一月)”、“February(二月)”,和“March(三月)”需要被分组在一起),则筛选子句由通过OR或AND运算符链接的筛选子句的集合替换,取决于使用的原始子句是否等于或不等于运算符。
[0199] 5.5活动可视化
[0200] Lens以适合使隐私的尝试违反容易看到的方式可视化活动。用户界面图形地描绘信息泄露(隐私预算的使用)和特定警告,所述特定警告可通过与时间有关的规则触发。
[0201] 图8示出表示数据集的个体查询随时间推移的线图的实例。在x轴上是时间(71),而在y轴(72)上是累积信息泄露。如果噪声添加正被使用,则每个查询的信息泄露根据差分隐私的原理来计算(参见以上)。如果噪声添加未被使用,则可将噪声添加计算为(a)每查询的恒定量,或(b)计算为1/|C|,其中|C|是查询集合的大小。当查询触发在章节3.2中论述的攻击检测核对中的一个时,用线上的气泡(73)(例如其中具有感叹号标记的红色圆圈)注解线图。气泡(73)被定位,以使得它们的x轴定位匹配可疑查询发生的时间。这些气泡可为点击时显示查询的链接。还显示与个体有关的查询总数(74)。也可以设定预定义预算限制(75)。
[0202] 5.6查询速率限制
[0203] 无限查询对于隐私几乎始终是问题,因为每个新查询泄漏新信息。研究已表明,应答充分不同的查询允许原始敏感数据集的几乎完整重建。Lens具有特征以针对每个特定数据集减缓或限制对每个分析师的信息泄露。信息泄露可以与章节3.5中所论述的相同的方式计算。Lens可以建立数据集的信息泄露的总量或数据集的查询的总数。对于这些中的任一个,Lens维持由先前查询引起的信息泄露的测量并且在每个新查询处核对其是否超过信息泄露的阈值。取决于配置,Lens还可以通过限制信息泄露或每天、每月或每年的查询数目来速率限制信息泄漏的量或查询的数目。这以与正常限制类似的方式实现,但是每天、每月或每年重设测量。
[0204] 5.7扩展至时间序列数据
[0205] Lens通过默认假定数据集中的每行对应于一个人,并且目标在于保护每个人的隐私。然而,如果数据集是时间序列数据,则许多行可对应于一个人。Lens可以计算由每个人接触的最大行数(在数据持有者以识别人员的列,如ID号列配置之后),将且将这个数目用作乘法因数,其通过所述乘法因数增加其在所有查询上的噪声添加的量值。假定所有其他参数保持相同,这个方法得到与每人一行情况等效的隐私保证。
[0206] 5.7.1特征提取
[0207] 应注意,如果自时间序列数据提取新数据集(参见上文特征提取特征),则这个噪声添加上的这个乘法因数并不使用在关于新数据集的查询上。新数据集接收正常噪声量值。这是因为特征提取导致非时间序列数据集。
[0208] 5.8在原始状态下查看某人拥有的数据
[0209] 可存在分析师拥有的一些数据(以及分析师不拥有的其他人的数据)处于数据集中的情况。分析师有权在原始状态下查看他拥有的数据,但是必须被保护以免学习数据集中关于其他个体的敏感信息。如果分析师的数据可以用WHERE筛选子句规定:例如,WHERE customer_id=346,则Lens支持这种情况。Lens存储这个子句,并且然后在预处理阶段中,核对这个子句是否存在于查询中。如果存在,则跳过用于查询的隐私保护。
[0210] 6.性能
[0211] 对于Lens的两种类型的用户可利用的性能:数据分析师和数据持有者。
[0212] 6.1数据分析师
[0213] 6.1.1观察可利用的数据集及其元数据
[0214] 数据分析师可以查看哪些数据集对于他/她是可利用的,以及列名和关于列的某些元数据(例如在虚设数据集章节中描述的元数据)。
[0215] 6.1.2查询数据集并且观察结果
[0216] 数据分析师可以提交查询并且取得结果。这些结果将包括关于已应用于查询的任何隐私保护测量的附加信息。
[0217] 6.1.3观察已被添加至每个结果的噪声的信息
[0218] 如果噪声已被添加至查询,则数据分析师可以观察关于噪声分布的量值的信息。
[0219] 6.1.4运行特征提取过程以自现有列创建新列
[0220] 数据分析师可以将新列创建为现有列的变换,然后在聚集查询中查询新列和旧列两者。
[0221] 6.1.5观察看起来并且感觉像实际数据的虚设数据集
[0222] 针对对于他/她可利用的每个数据集,数据分析师可以观察来自虚设数据集的样本行的集合。虚设行被返回原始状态,如在SQL“SELECT*FROM table”查询中。
[0223] 6.1.6在原始状态下观察他们拥有的数据
[0224] 如果分析师是数据集中某些行的拥有者,则他可以查询那些行并且跳过隐私保护。
[0225] 6.2数据持有者
[0226] 6.2.1添加数据集
[0227] 数据持有者可以添加新数据集。
[0228] 6.2.2配置
[0229] Lens由数据持有者配置以加强每个用户对每列的访问的某些隐私控制。例如,数据持有者可能想要允许由同一公司内的另一个群组分析(即内部共享),并且将分析的更受限制的集合给予来自公司外的第三群组(即外部共享)。列可为公共的、私有的,或被阻止。例如,表B中的列A可对于用户C是私有的,但对于用户D是公共的,并且对于用户E是被阻止的。此外,列可对于不同用户在不同程度上一般化。例如,年龄列可由用户F在宽度5的直条中使用,但由用户G在宽度10的直条中使用。另外,可使不同阶层的虚设数据为不同用户可利用的。例如,可使第7阶层虚设数据为用户H可利用的,而可使第4阶层虚设数据为用户J可利用的。最后,Lens可不同地速率限制用户。例如,可允许用户K花费10个隐私预算总数且每月不超过1个,而用户L可能能够花费100个隐私预算总数且每月不超过4个。
[0230] 6.2.3审计查询
[0231] 图9示出正向数据持有者显示的信息的屏幕截图。数据持有者可以查看已在系统中询问的全部查询,以及谁询问查询、何时询问查询、查询的原始结果、查询的公布结果,和在适当的情况下,花费在查询上的隐私预算,和在查询上触发的任何攻击检测规则。
[0232] 6.2.4手动地查阅查询
[0233] 数据持有者可将Lens置于人类操作员在查询的结果被发布回给数据分析师之前必须查阅并同意所有查询的模式中。
[0234] 6.2.5当可疑事件发生时系统发出警告
[0235] 当查询触发Lens中的警告时,可警告数据持有者(例如经由电子邮件)。
[0236] 6.2.6配置用户
[0237] 数据持有者可以添加或撤消系统上的数据分析师账户并且将用户指派给特定访问组。
[0238] 7.用例
[0239] 本章节列出用于Lens的用例的一些实例。Lens不限于这些用例。
[0240] 7.1通过学生数据的分析改进教育
[0241] 学校生成大量数据,范围从学生的表现到关于学生的环境和偶然因素,如他们是否是国家的受监护人、他们是否已使用特殊教育资源、他们是否有财政补助等。这个数据是高度敏感的。同时,学校、父母和政府试图通过数据驱动的决策制定改进教育。他们想要回答如以下问题:什么是理想的班级规模?在STEM学科中引进客席演讲者是否帮助说服学生选择STEM科目?在教室中使用平板是否帮助改进学习?然而,出于隐私原因和架构原因,甚至对学生数据实施简单的分析都是缓慢的和昂贵的任务。此外,一旦清除隐私和架构障碍,数据通常以原始状态发送给分析师(即使他们只需要聚集信息)。Lens有可能改进分析的进行方式。可轻松访问聚集信息并且限制敏感行阶层数据的共享。Lens将工作如下:首先,保持学生数据的政府组织(数据持有者)将Lens安装在他们的环境中。然后,他们通过为Lens提供信息以连接至保持原始数据和相关表的数据库而在Lens中告示一些数据集。例如,他们可以告示包括年级信息和过去10年间在一定区部中的学生的社会关怀状态信息的数据集。然后,一旦他们同意希望进行分析的某个人,他们为这个人提供账户并且配置Lens,使得这个人可以访问必需的表和列。然后,数据持有者配置隐私配置,例如通过噪声添加保护年级和社会关怀列,并且在5的隐私预算(其中每查询0.5的最大值)处限制总查询。最后,数据分析师使用REST API或Lens的网络前端来提交聚集查询,接收关于社会关怀与表现之间的关系的统计量。分析师可以继续使用这些统计量来为策略改变辩护,构建电子设备技术产品,或其他。
[0242] 7.2构建用于SaaS公司的数据产品
[0243] 许多软件即服务(SaaS)公司提供在公司流线处理操作过程(例如,采购、供应、工资单、货品计价)的服务。这些SaaS公司拥有用于大量公司的操作数据,所述大量公司中的许多来自类似行业并且甚至可能为同事或竞争者。虽然每个消费者公司将具有关于他们的数据的隐私的强大需求,但是消费者公司可能希望签约参加服务,其中每个消费者公司可以学习关于与他们自己类似的公司的群组的聚集信息。从这个学习,他们可能能够将努力聚焦在他们的标准的商业方面。在这种用例下,可如下使用Lens。首先,SaaS公司(数据持有者)在获得许可之后告示Lens中的操作数据集(例如,用于跨越不同公司的不同职务类型的薪资阶层的数据集)。然后,数据持有者对这些数据集配置隐私控制,从而抵抗行阶层数据的公开。然后,数据持有者构建用于可视化和报告的产品层,所述产品层在后端上使用Lens(因而与隐私保持聚集信息一起工作)并且使这个信息对于消费者是易于消费的。例如,这个数据产品层可以针对各种职务类型自动地收集关于过去一月的工资模式的信息,将这个信息变成一级图表、等级和可视化,并且每月刷新这个报告。最后,数据产品可以将这个报告发送给消费者公司或在网页中向消费者公司显示这个报告。
[0244] 章节C:SecureLink
[0245] SecureLink涉及用于以使得具有数据集中的ID号的列被一致地掩蔽的方式将来自若干贡献组织的数据集传输至中心组织的计算机实现的过程;应用加密技术。
[0246] SecureLink使用三种不同类型的行为人和ElGamal密码系统来提供满足id号掩蔽的公共密钥密码方案。ElGamal加密是通常认为安全的公共密钥密码系统。其安全证明依赖于Diffie-Hellman假定。其具有其在取幂下为同态的性质:使密文自乘到幂,然后解密等效于解密,然后使结果自乘到幂。
[0247] SecureLink是用来给予关于来自大型的不同群组的组织(“贡献者”)的个体的数据,所述组织中的许多可以是直接竞争者,并且将数据结合在一起用于中心组织(“接受者”)的目的,同时保持所涉及的个体和组织的隐私的系统。每个个体通过跨越所有贡献者一致地使用的唯一标识符来识别。
[0248] 出于这个文件的目的,我们仅聚焦于跨越贡献者存在每个个体的单个唯一标识符的情况,但是系统可被容易地扩展以通过独立于每种类型的标识符实施过程来处置多个标识符(例如,社会保障号码和护照号)。
[0249] 1.隐私要求
[0250] 在非隐私保持系统中,这些全局标识符可由接受者使用来针对特定个体结合来自所有贡献者的全异记录。在SecureLink中,我们假定防止这个方法的以下要求:
[0251] ●贡献者必须未曾看过每个其他人的数据并且应不能将他们拥有的数据与系统中的任何其他下游数据结合。
[0252] ●接受者必须未曾看过任何个体的初始唯一标识符,但是必须能够识别并结合属于相同个体的所有记录。
[0253] ●当事方必须不能欺骗-甚至通过破坏协议。
[0254] 图10例示两个贡献者(Bank1和Bank2)将数据共享给接受者的简单图解。可如何使用这个系统的简单实例将有助于计算个体的净价值的分布。在这个实例中,银行是贡献者,并且接受者跨越整个财务系统针对个体计算所有借记和贷记的和以供进一步分析。
[0255] 为满足这些要求,我们使用密码技术来在唯一ID通过系统时模糊唯一ID,并且确保其在接受者处确定地映射至新唯一ID,所述新唯一ID不能轻松变换回成初始ID。作为这个过程的部分,我们使用第三方作为贡献者与接受者之间的中介者(此后“中介者”),所述中介者参与唯一ID的变换。这个中介者不知道初始唯一ID,他们也不能够结合数据(满足以上隐私要求)。
[0256] 系统规模和性能
[0257] 因为不需要介于各方之间的整体协调,所以处理可被比例缩放并且跨于许多服务器并行地独立进行。
[0258] 2.实现方式
[0259] SecureLink被实现为三个软件主体-每方一个软件主体:贡献者(Contributor)、中介者(Intermediary)以及接受者(Recipient)。
[0260] 2.1设置
[0261] 作为设置的部分,首先,接受者选择将在整个系统中使用的椭圆曲线密码学参数集。接受者使这个参数集可供使用,并且中介者和贡献者方验证所述参数集。所述验证可以涉及确保所述参数集对应于来自“高效密码学标准2(Standards for  Efficient Cryptography 2,SEC2)”(http://www.secg.org/sec2-v2.pdf)的推荐参数集中的一个。一旦参数集被议定并经过验证,则接受者和中介者均生成在整个系统中所使用的ElGamal加密所需的密钥对。为了证明接受者和中介者知道私钥,接受者和中介者还使用其私钥以使用DSA等工业标准数字签名方案以加密方式标记私钥。公钥和对应签名的两个集合可供所有贡献者使用。
[0262] 另外,中介者生成介于1与椭圆曲线的“阶数”参数之间的随机整数。这个随机数被称为“取幂密钥(exponentiation key)”。中介者对这个整数保密。
[0263] 2.2数据流
[0264] 当新批次的数据可供使用时,使用贡献者应用程序来掩盖所述批次内的标识符并且将所述批次发送到中介者。然后中介者尽可能地处理这些批次,并且将结果上传到接受者。
[0265] 使用ElGamal加密来加密和掩盖标识符。作为ElGamal加密过程的部分,对于每条消息,生成随机临时密钥。这样导致加密的唯一ID的密文是不同的并且在贡献者间不可区分,从而防止不良链接。
[0266] 图11示出了图示SecureLink的密钥操作的图。对由每个贡献者保持的唯一ID执行的密钥操作如下所述:
[0267] 1.贡献者使用接受者和中介者的公钥对唯一ID加密(参见图11中的等式(1))。在等式(1)中,m在初始唯一ID中。然后贡献者将加密值EI(ER(m))发送到中介者。
[0268] 2.中介者使用其秘密密钥对EI(ER(m))解密一次,留下值ER(m))有待利用接受者的密钥进行加密(参见图11中的等式(2))。
[0269] 3.中介者通过以秘密幂k,即“取幂密钥”(参见设置章节),对ER(m)取幂来进一步掩盖标识符。所得值是ER(mk)(参见图11中的等式(2))。值ER(mk)被发送到接受者。由于ElGamal加密在取幂情况下是同态的,因此接受者所接收到的解密值将实际上按相同幂取幂,从而防止接受者了解初始唯一ID m。
[0270] 4.接受者利用其私钥来解密其余加密层(参见图11中的等式(3))。所得值是mk,其中m是初始唯一ID。根据决策迪菲-赫尔曼(decisional Diffie-Hellman)假设,用加密方式难以从mk得到原始m,但是仍有可能使用mk作为新的唯一ID来结合个体的数据。
[0271] 2.3贡献者
[0272] 贡献者是保持将由接受者使用的关于个体的某一类数据的一方。SecureLink能够拓展以支持数千个贡献者,所有贡献者独立于彼此而操作。设想贡献者主体将在贡献者组织的构架内操作,尽可能地接近数据的来源。贡献者主体将在新批次的数据由所述组织产生时周期性地接收所述数据,这些数据会经过处理,然后传递到中介者。
[0273] 当贡献者主体初始化时,贡献者主体载入加密参数,即曲线参数、公钥以及中介者和接受者两者的对应签名。验证每个公钥(例如,使用DSA签名验证算法),这样确保正确地遵循协议。
[0274] 每个贡献者所产生的数据有可能能够以完全不同的方式结构化,假设的唯一共同性是每个记录中的一个字段含有所有其他贡献者一贯所使用的用于对应个体的唯一标识符。贡献者主体被配置为具有其处理的数据的结构的描述,所述描述包括数据中列的名称及其数据类型。
[0275] 每当新批次的数据可供使用时,贡献者处理批次中的所有记录并且掩盖标识符。掩盖标识符时所涉及的步骤如下所述:
[0276] 1.按一对一映射将标识符转换到椭圆曲线上的点。假设标识符是介于1与N之间的数字,其中一些N小于椭圆曲线的阶数。这个映射可以通过以下操作来实现:迭代遍历标识符并且将椭圆曲线的随机元素指派给每个标识符、检查随机元素是否冲突(即是否与先前指派的元素相同),以及再次尝试,直到随机元素冲突。替代地,可以使用散列方法,例如见于PETlib的“hash_to_point”功能中的散列方法(https://github.com/gdanezis/petlib/blob/71ec0ea5e81cea498a06d7563271210d011de448/petlib/ec.py)。散列方法引入不同标识符会被散列到同一点的概率,但是这个概率在加密中是很小的,并且所述概率实际上是一对一映射。
[0277] 2.贡献者使用中介者和接受者两者的公钥来创建组合密钥。在实践中,这涉及两个公钥的乘法。(请注意,ElGamal的描述与椭圆曲线的描述之间的共同术语存在不一致性。ElGamal加密和描述是使用对群的操作来执行。群被定义为具有一个操作。在ElGamal的背景下,这个操作常常被称为乘法,并且这个操作的重复应用常常被称为取幂。然而,在椭圆曲线群中,所述操作通常被称为加法,并且所述操作的重复应用被称为乘法。在本文档中,我们坚持乘法/取幂术语。)
[0278] 3.然后使用这个组合公钥来加密所述散列点。来自ElGamal加密的输出是椭圆曲线上的一对点。
[0279] 4.将所述对的点串行化并且看作标识符的掩盖值(obscured value)。
[0280] 此时,贡献者已经产生所述批次的数据的拷贝,其中所有标识符被掩盖。然后,这个拷贝和数据集的结构描述一起被安全地传送到中介者。数据文件和模式将由贡献者经由SFTP上传到中介者。替代地,对于直接网络接入不可行的情形,文件可以用物理方式传送并且以人工方式放置在中介者的位置中。此时,贡献者在系统中的互动完成。
[0281] 每个批次的数据由贡献者独立地处理,因此在必要时能够通过对主体的单独调用来处理。掩盖标识符的过程也只是在可扩展性需要的情况下通过将数据分散在一群后台工作者(background worker)当中来平行化。
[0282] 2.4中介者
[0283] 中介者是代理(broker),所述代理从贡献者接收数据,对数据执行一些变换,然后将数据传递到接受者。中介者不必知道原始标识符中的任一个,但是必须是不同于接受者的实体,以便保持系统的完整性并且确保所需的隐私保证。假设中介者和接受者不会串通。
[0284] 贡献者主体将文件上传到中介者的议定位置以接收所述文件。中介者针对新批次的数据监控这个位置,并且在所述批次数据变得可供使用时处理数据。如在贡献者的情况下,每个批次的数据是独立的,因此能够在可扩展性需要的情况下通过独立过程来进行处理。中介者能够使用由贡献者上传的模式信息来识别数据中的哪些列对应于标识符。
[0285] 由中介者执行的处理的目标在于变换被掩盖的标识符,以使得当由接受者解密时,接受者将标识符解密成不同于初始的原始标识符值的值。这将通过使用El-Gamal的同态性质来实现。贡献者通过对从贡献者接收的每个被掩盖的标识符执行以下步骤来进行此变换:
[0286] 1.对被掩盖的标识符去串行化以检索椭圆曲线上的点对(A,B)。
[0287] 2.使用中介者私钥对点对执行一次El-Gamal解密。因为我们将再次对这个值解密,所以我们必须继续传递A的值。在实践中,这意味着传回(A,Decrypt(A,B))。
[0288] 3“.隐蔽(Blind)”被部分解密的新点对,这样,两个点提升到在系统的设置期间所产生的“取幂密钥”的幂。
[0289] 4.使用贡献者中的相同机制将新点对串行化,以获得被掩盖的标识符的新值。
[0290] 此时,被掩盖的标识符仍是加密的,因此还不能结合,但是已经经过变换,因此被掩盖的标识符不会解密到初始标识符值。
[0291] 然后中介者经由例如SFTP的安全传输技术将新掩盖的批次的数据和对应模式一起发送到接受者。
[0292] 2.5接受者
[0293] 系统中存在一个接受者,并且接受者是收集用于分析的信息的一方。尽管接受者需要结合关于每个个体的所有信息,但是接受者并不关心每个个体的特定身份,因此接受者不应该能够容易地再识别特定个体的初始唯一标识符。由中介者执行的掩蔽步骤确保接受者能够将对应标识符解密到同一值,所述值不同于初始标识符值并且不能用于发现初始标识符值。
[0294] 当新批次的数据变得可供接受者利用时,接受者如同中介者一样使用模式信息,以识别哪些列含有标识符。然后接受者对这些值去串行化以检索点对,并且使用接受者私钥来执行El-Gamal解密以检索表示标识符的点。然后接受者可以将这个点串行化为字符串或数字。
[0295] 因而,接受者主体能够将解密的标识符和对应数据传递到接受者的数据处理构架(例如,将抽取-变换-加载(Extract Transform Load,ETL)的数据文件保存到数据湖)。在这种构架中,从各种贡献者接收的所有数据集可以在其掩蔽ID列上结合,并且数据集将像接受者在原始ID列上进行联结时一样工作。
[0296] 3.用例
[0297] SecureLink能够在中心研究组织想要从在许多不同的服务提供组织处留有数据的个体收集统计数据的情况下使用。举例来说,考虑国民健康研究组织,其正进行对全国医院费用的评估。单个人员可以前往许多医院,从而得到在每个医院的费用。保健研究组织可能希望跨医院链接每个个体的费用,以便具有更完整的数据。链接这些费用的便利方法是通过社会保障号码,我们假设社会保障号码在多次医院访问中始终被记录。然而,健康组织希望维持其收集的数据中的隐私,因此希望将标识符令牌化。
[0298] 在这种情形下,健康研究组织能够使用SecureLink。所述组织是接受者,而医院是贡献者。第三方非营利或安全公司可以充当中介者。
[0299] SecureLink允许保健研究组织集中跨医院链接在一起的每个人员的费用的令牌化记录。这是能够激起宝贵研究的丰富数据。
[0300] 章节D:Publisher(发布者)
[0301] Publisher涉及一种计算机实现的过程,所述过程用于处理敏感数据集并且发布导出数据集,以使得在所述导出数据集中隐私被保留;应用扰动(perturbation)、一般化(generalisation)、令牌化(tokenisation)、加密以及可视化技术。
[0302] 1.数据集的范围
[0303] Publisher对纯属性数据集操作。Publisher能够处置一组表格,所述表格之间具有某些关系,例如主键/外键关系。举例来说,支持的数据类型包括:
[0304] ●字符串;
[0305] ●数字;
[0306] ●日期;
[0307] ●位置数据;
[0308] ●数组或图等的复杂结构。只要知道可能键的综合列表,含有图字段的列就会被分解成一组字符串列,每个键一列。假设所有字段具有长度相同的数组,含有数组字段的列就会被分解成一组列,在所述数组中,每个索引一列。
[0309] 数据可以含有例如名称或账户号码的标识符,因此适合于掩蔽或令牌化。替代地,数据能够表示例如种族、宗教或性别的类别属性,和例如薪资或地理定位的其他敏感值,因此可应用于k匿名化。
[0310] Publisher被构建以支持很长的表格(具有许多行)以及具有许多列的宽数据集。
[0311] Publisher能够处置以包括CSV、Avro以及Parquet的各种格式存储的数据集。
[0312] 2.架构
[0313] Publisher与被称为群集(cluster)的分布式存储和计算环境结合。群集是经由例如Apache Hadoop的分布式计算和存储框架一起工作的许多单独主机。群集能够存储大数据集并且运行需要大量存储器的分布式程序。Publisher被安装在“边缘节点”上,所述边缘节点意味着不是群集节点中的一个,但是与群集在同一个网络上并且能够通过网络界面与群集互动的主机。
[0314] 图12示出了具有Publisher的架构的关键部件的图。Publisher由两个主要过程组成:
[0315] 1)网络应用程序,通过所述应用程序,用户能够管理配置、运行掩蔽和匿名化工作、查看关于工作运行的元数据,以及管理用户许可。
[0316] 2)提交到群集的分布式程序(例如,Apache Spark应用程序)。当在群集上运行时,分布式程序加载来自群集存储器的敏感数据集,对敏感数据集进行变换,并且将变换版本写到群集存储器中的新位置。
[0317] 通过使用网络应用程序,用户定义数据集要如何表示、哪些变换应被应用于数据集以及在哪里能够找到数据集。网络应用程序允许用户将变换程序和处理指令一起提交到其自身的计算群集。一旦处理完成,变换程序将匿名数据留存在群集中。变换程序还在群集中写入总结结果(例如经过处理的行的数目),然后网络应用程序检索这些结果以向用户显示。
[0318] 鉴别.通过使用经由网络应用程序中的登录屏幕的基于密码的鉴别,或API中的基本鉴别,Publisher与例如轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)或现用目录的鉴别系统结合。
[0319] 高可用性服务.Publisher能够在抵抗主机机器的故障的高可用性模式下运行。这可以通过在不同机器上运行网络应用服务(例如Tomcat)的两个拷贝和使用能够将流量自动地重定向到正在运行的机器的负载平衡器来实现。网络应用程序服务的复制拷贝指向一致性数据库后端。在机器故障的情况下,负载平衡器会将流量自动地重定向到另一机器。然后用户可以继续以相同方式使用服务。
[0320] 配置数据库.Publisher使用关系型数据库(例如,PostgreSQL)来存储配置信息、审计日志以及关于已经运行的任务的元数据。Publisher存储准许的用户、每个用户的色、每个数据集的模式以及用户已经创建的每个掩蔽、令牌化或隐私政策的细节作为配置信息。Publisher存储已经由用户创建的每个配置对象以及这些配置的任何更新作为审计日志。Publisher还存储已经运行的所有任务。Publisher存储经过处理的行的数目、应用于每列的规则以及关于列如何被扰动的信息作为关于已经运行的任务的元数据。
[0321] 密钥管理服务器(Key Management Server,KMS).Publisher的加密功能需要秘密密钥。Publisher并不存储这些秘密密钥;更确切地说,Publisher与例如Apache Hadoop KMS的密钥管理服务器结合。当Publisher需要加密密钥时,Publisher使用密钥的名称向KMS请求所述密钥,于是Publisher接收并且使用所述密钥。
[0322] 3.系统管理
[0323] 本章节涵盖Publisher中处置数据和隐私政策的方式,以及例如审计和用户许可等其他管理特征。
[0324] 3.1Publisher政策
[0325] Publisher通过产生敏感输入数据对象的安全拷贝来对敏感数据匿名化。在Publisher中,这个过程将用“政策”来描述,所述政策由隐私官创建并管理,并且特定于待处理的输入数据对象的特定格式(“模式(Schema)”)。“数据对象”意味着在HDFS中不动的数据,例如CSV、Avro或Parquet数据文件,或流源,例如Kafka记录。
[0326] 政策是Publisher应用程序中的中心实体。Publisher使得非技术型用户能够通过定义政策来表达所述用户希望如何变换数据集。用户通过将信息输入到Publisher应用程序中来定义政策。然后Publisher使用所述政策并且执行产生符合所述政策的数据集所需的过程。
[0327] 图13示出了Publisher中“政策”模式的模型化的实例。模式在Publisher中被模型化为一组已命名表格,每个已命名表格由值的一组命名列组成。每列具有一数据类型。这与CSV、Parquet或Avro文件中所表示的表格数据一致。在图13中,政策A和B依据具有两列的模式1工作。政策C依据具有一列的模式2工作
[0328] Publisher能够存储许多模式和政策的配置。这等于支持具有用于同一政策的不同用途的许多政策、支持多个模式以及用于还不在有效使用中的正在进行中(work-in-progress)模式和政策的工作空间
[0329] 能够通过使用兼容性政策来对符合给定模式的任何数据对象匿名化。也可能具有能够变换同一个模式的多个政策。这很重要,因为这样允许针对可能需要不同匿名化处理的不同下游消费者来定制输出。这样使用的多个政策可取决于与例如数据在多个团队之间的共享或隔离、数据最小化、在组织外的共享、符合输出中的所需数据格式等因素而视需要相似或不同。
[0330] 因为政策是在Publisher内持续留存在的配置对象,所以政策充当用于处理与政策兼容的数据的标准。这具有以下益处:政策囊括对多个数据对象的处理随时间的再现性、对用例之间的一致性的控制,并且是单一的管理、查阅和报告点。
[0331] 3.1.1集中式政策管理
[0332] Publisher的关键特征在于以集中方式来描述、管理以及创建将应用于敏感输入数据的隐私保护(Publisher“政策”)的描述。
[0333] 这个布置具有如下益处:隐私官能够了解哪些数据受到保护和通过什么方法来保护的单一总览;能够使用单个用户友好的界面来添加新的数据源;能够将已经在一组织中标准化的保护措施应用于多个数据源;能够以集中方式来管理对整个配置的访问控制;并且能够以一致的方式任选地再使用现有令牌,以允许新数据联结或附加到已经处理过的数据,包括例如夜间数据加载的重复分批过程。
[0334] 3.1.2规则
[0335] Publisher提供用于创建政策的主要用户界面。这个过程是针对每个表格的每列创建或参考一规则。当处理数据对象时,Publisher应用如政策中所配置的用于适当规则的逻辑。规则是值阶层变换。Publisher在处理数据对象时将规则应用于一列的每个值。
[0336] 对于静止文件,Publisher将Spark任务提交到Hadoop群集,因此利用Hadoop群集的并行处理能力以对很大的输入数据将规则以分布式方式应用于多列。
[0337] 对于流源,Publisher使用适当消息管道中的变换主体,以在消息通过管道来处理时对消息的分量进行依据政策的规则所描述的变换。
[0338] 3.1.3一致令牌化
[0339] “掩蔽”和“令牌化”涉及两个类型的规则,其中敏感值被移除或掩盖(掩蔽),或用代替实际数据值的所生成令牌完全替换(令牌化)。Publisher提供几个类型的掩蔽和令牌化规则。有关在Publisher的政策中可利用的规则的能力的更多信息,请参见关于掩蔽和令牌化以及一般化的章节。
[0340] 当创建政策规则时,存在使令牌化“一致”的选项。这意味着,在应用给定政策时,每当Publisher处理给定的原始输入值时,政策始终产生相同的输出令牌,即使在后续再运行中或当处理不同的数据对象时。
[0341] 一致令牌化在如下时刻很重要:
[0342] 1.列之间存在关系
[0343] 如果使用Publisher来处理具有必须保持的外键关系的文件,则对于所有匿名表格中的给定原始输入值,必须输出相同值(即,相同令牌)。
[0344] 2.期待另外的数据,增量批次或新的表格
[0345] 为了将更多数据添加到先前输出,有必要保持Publisher已经生成的令牌,以及在必要时将新令牌添加到已知令牌的集合。
[0346] 一致令牌化是使用被称作“令牌保险库(Token Vault)”的构造在Publisher中实现。这是原始输入值与计算的令牌之间的映射。将哪些类型的规则用于生成令牌并不重要:以标准化方式来存储所述映射。有关令牌保险库的管理和安全性的更多细节,请参见稍后章节。
[0347] 如果令牌化不一致,则Publisher针对值的每次出现创建新的令牌,即使在同一文件内。这意味着如果输入值在数据中出现超过一次,则同一个输入值可有多个令牌。
[0348] 不一致令牌化在如下时刻很重要:
[0349] 1.与独立第三方接受者共享数据
[0350] 当两方或更多方接收基于同一初始源的匿名数据时,在Publisher中应配置不一致令牌化,以确保第三方接受者不能合作以结合其各自的关于共同令牌值的数据集拷贝。
[0351] 3.1.4规则的共享
[0352] 如所讨论的,Publisher政策由规则组成。Publisher允许规则跨政策共享以实现集中式管理。
[0353] 在Publisher中,有可能以三种方式跨政策再使用规则:
[0354] ●规则能够存在于单个政策中。
[0355] ●规则能够在许多政策之间共享,但是规则的令牌不一致。
[0356] ●规则能够在许多政策之间共享,并且规则的令牌一致。
[0357] 令牌在共享的规则中是否一致的选择确定Publisher在政策之间是否使用同一个令牌集(即,同一个令牌保险库)。举例来说,两个政策可以包括共享电子邮件地址生成器规则,因此以相同的随机方式产生令牌化的电子邮件地址:
[0358] 政策1:john.smith@tardis.com abhifjwocumdh@gmail.com
[0359] 政策2:john.smith@tardis.com mvndklskwnrug@yahoo.com
[0360] 但是,如果规则是“一致地共享”,则相同的随机化令牌将被以下两者使用:
[0361] 政策1:john.smith@tardis.com zamfnhshdjfnd@hotmail.com
[0362] 政策2:john.smith@tardis.com zamfnhshdjfnd@hotmail.com
[0363] 在这种布置中,当依据任一政策来处理数据对象时,更新同一个令牌保险库。更新同一个令牌保险库的所有政策始终了解相同的令牌映射并且能够将新令牌添加到映射。
[0364] 图14示出了图示Publisher内规则的共享的图。在这个实例中,政策A和政策C与政策B共享规则。
[0365] 规则还可以从规则库共享。出于如上所述共享到政策的目的,规则库是不存在于政策中的独立规则集合。这些库可以用针对组织的用途的规则来填充,并且在开发出新政策时自由地共享。
[0366] 多个库可以配置在Publisher内,以出于组织原因来划分规则定义。这在图15中加以图示,其中政策A与规则库共享规则。
[0367] 3.1.5共享规则的益处
[0368] Publisher允许通过控制共享规则而在多个组织阶层来控制政策治理。
[0369] 举例来说,如果在组织范围内强制,无论身份证号码在什么情况下被使用,都应当利用强加密来处置身份证号码,则应由隐私官在Publisher中创建共享加密规则,所述规则能够被针对包括身份证号码的模式而创建政策的任何用户再使用。
[0370] 相反地,如果仅在单个类型的文件中发现敏感数据字段,则用于处理这列的规则绝不可能被共享,而是仅存在于用于处理这个类型的文件的特定政策中。
[0371] 3.2与元数据存储器的结合
[0372] 在定义新政策时,Publisher通过用从外部元数据存储器获得的总结信息以注释可疑的数据源来辅助隐私官。重要的是,在定义保护措施时要考虑关于数据源的组织知识;这个组织知识可以包括数据类型、数据分类、数据是否在识别、数据是否在准识别、敏感度、可见性/准许的受众、风险/暴露估计值、数据有效期以及访问控制要求。这些注释帮助隐私官确定哪些保护措施(亦即,哪些类型的规则)应被应用于模式中的每列。
[0373] 3.2.1从数据对象抽取元数据
[0374] Publisher能够从数据本身获得元数据和总结信息。Publisher扫描Hadoop群集上的数据,并且确定各种度量和性质。当定义政策时,这些性质中的一些在UI上显示,例如数据的数据类型、分布、基数和文本/数字图案。Publisher显示这些性质以允许数据拥有者理解数据的结构和应当应用哪些保护措施来确保数据的安全性。Publisher不会在政策注释中显示个人数据:仅显示跨数据集的概述,并且移除异常值。
[0375] 图16绘示了与元数据存储器结合的过程。所述图示出了以下步骤:
[0376] (1)用户选择要导入的数据对象(或多个对象)
[0377] (2-3)在外部元数据存储器中查找所选择的对象,并且传回所述对象的组织描述。这个描述包括每个字段或列的性质,例如数据类型、敏感度、受众等。
[0378] (4)使用哪些性质描述,基于应用于Publisher数据库中的各个规则的元数据来找出每个字段的兼容规则。请注意,对于每个字段,在Publisher配置中可以存在:a)必须一直使用的单个强制规则,b)用户能够选取的规则的选择,以及c)无当前规则,即在这种情况下,在能够处理数据对象之前,必须由用户提供新规则。
[0379] (5-7)视需要将所述规则传回到用户以进行验证、选择规则以及定义新规则。参见图17,步骤(7)的UI线框。
[0380] (8-9)将规则写回到Publisher的数据库作为政策。
[0381] 图17绘示了UI,所述UI允许用户基于上文概述的流程进行验证、从一组替代进行选择以及定义每列的新规则。表格总结了每个字段(或列)可能的动作。
[0382] 元数据结合的实际实例是对信用卡号码的保护实行组织范围的定义。出于这个实例的目的,假设集中地强制含有信用卡号码的任何数据字段(或列)必须加密后存储。参考图16,这种情况下的逻辑流可以是:
[0383] (1)用户选择其中含有信用卡号码的列的文件。用户的目标在于创建含有针对每列的适当规则的政策。我们将只考虑信用卡号码列;其他列将以类似方式来处置。
[0384] (2-3)在组织的元数据存储器中,这个文件名和列名已经用指示参考的数据列参考信用卡号码的元数据标记。将这个标记传回到Publisher。
[0385] (4)在Publisher的数据库中,存在表示必须利用加密规则来处理标记为信用卡号码的列的限制的映射。因此Publisher能够选择用于这列的加密规则。
[0386] (5-7)向用户呈现所述加密规则以进行确认。在这个实例中,用户不能改变规则选择,因此组织对信用卡号码的保护被加强。
[0387] (8-9)所述政策与用于信用卡号码列的正确规则一起保存。
[0388] 相同方法还可以在更高的抽象阶层应用,例如,银行可以将信用卡号码和银行账户号码均标记为层1(Tier 1)敏感数据。在这个实例中,Publisher可以将加密规则与层1敏感数据关联,因此,在银行的元数据存储器中被记录为层1敏感的任何数据将以标准方式加以处理。
[0389] 3.3 Publisher任务
[0390] 政策表示对输入数据的特定处理方案。政策并不直接参考对象;这是Publisher“任务”的目标。Publisher中的任务是通过参考Hadoop中与政策的模式兼容的政策、环境以及数据对象来创建。工作能够立即或稍后运行,所述运行根据政策中的定义来开始变换参考的输入文件的过程。任务可以再运行多次,以反映对同一输入数据的政策的变化,或处理输入数据文件的变化。在任务已经运行之后,所述任务作为记录保持在Publisher中。这在源数据已经改变并且应当重复隐私修改过程的情况下很有用。当任务在运行时,所述任务的进行能够使用Publisher UI来监控,或支持自动化,REST API。
[0391] 数据对象能够直接使用其完整HDFS路径名或经由包括通配符的路径在任务中描述,所述通配符能够匹配目录结构中的多个对象。在使用通配符的情况下,如果自先前运行起已添加或移除了不同对象,再运行任务可以处理所述不同对象。这允许Publisher使用单个工作来处置文件周期性地改变的情形,例如批上传。这个机制与命名为“name=value”对以表示分区数据集的Hadoop目录约定兼容:支持任务定义中的通配符,例如“creation_date=*”。当获取新分区时,通配符如本文所描述地匹配,并且新分区将由任务来处理。
[0392] 除通配符以外,还有可能利用记名元素来参数化任务中的路径,使得当任务通过Publisher UI或通过Publisher REST API运行时,仅需要记名路径元素。举例来说,任务中“/input/creation_date= {cdate}/*.avro”等配置路径能够在用“20170406”替换“cdate”的情况下提供,从而导致处理目录input/creation_date=20170406/中的所有Avro文件。这对于外部系统负责确保输入文件在HDFS中适当地定位的结合用例很重要。在这个用例中,例如如外部系统所确定的输入文件的位置来调用REST API。
[0393] 3.4 Publisher中的用户许可和角色
[0394] Publisher将针对不同类型的配置活动的访问许可分成多个角色。使用Publisher UI的用户可以被指派多个角色,所述角色确定每个用户可以执行的动作。角色及其相关联责任是:
[0395] 1.管理员
[0396] 配置系统设置,以及创建和编辑模式。
[0397] 2.作者
[0398] 创建并编辑政策和任务。
[0399] 3.操作员
[0400] 执行任务。
[0401] 4.调查者
[0402] 执行反向令牌查找。请注意,为了在Publisher UI中查找用户,需要两个具有这个角色的用户。
[0403] 5.系统
[0404] 被准许的特定角色援引API调用,以将这个准许与其他互动角色隔离。
[0405] Publisher中的这种分离匹配组织中工作与敏感数据相关的用户的责任。管理员角色将适用于配置Publisher安装的基础技术细节的IT用户。作者角色针对创建并且管理隐私政策的细节和将Publisher配置与组织的更广泛隐私活动同步的隐私官。操作员角色针对在产生用于发布的输出文件时的日常使用,可能不是可信用户,因此防止操作员角色具有意外地或故意地改变配置的能力。
[0406] Publisher中的这种角色分离对于防止用户将敏感数据移动到群集中的新位置是必不可少的。考虑用户不仅可以创作政策而且可以执行任务的情况。用户可以创建保持所有数据的政策,然后选择输出位置,然后运行任务,Publisher在任务运行后可在新位置中创建敏感数据集的额外拷贝。作者与操作员之间的角色分离防御此攻击,这是因为操作员或作者均不能独立地进行。
[0407] 3.5不良记录处置
[0408] Publisher任务能够被配置成检测执行中的错误,并且在一些或所有记录由于坏数据或错误配置而不能被处理的情况下停止。在这种情况下,错误的消息被写到日志。
[0409] 如果数据格式能够利用非预期的畸形或不一致行(例如,错误地具有可变数目个行的CSV文件)供应到Publisher,则能够将少量的坏行写到安全位置以用于调试目的。出于安全原因,Publisher限制能够像这样登记的行的数目。
[0410] 3.6与数据处理管道的REST API结合
[0411] 组织常常会具有处置数据馈送的获取、验证以及访问的多个自动化数据处理“管道”。管道通常由第三方工作流自动化工具来安排。Publisher能够参与这类管道以将隐私处理添加到对新获取数据执行的操作的序列。
[0412] 管道结合在组织的用例是建立“安全区”的情况下特别相关,在安全区中,所有数据已针对一般进行中使用被匿名化。Publisher充当扼止点,从而确保仅安全数据通过。
[0413] 在基于文件的处理自动化中,数据文件通过先前管道部件而着陆在群集的HDFS存储器的特定位置中,并且先前存在的Publisher任务将由外部工作流引擎使用Publisher的REST API来援引。任务被配置成立刻作用于所有新文件,根据HDFS中的位置和名称来匹配新文件,并且应用如在任务中配置的政策以对文件匿名化并且将安全拷贝写到具有镜像结构的输出位置目录。
[0414] 对REST调用的HTTP回应提供能够用来监控进程的URL;外部工作流引擎的责任是使用这个URL来检测匿名化过程什么时候完成,并且在处理管道中将安全输出文件传递到下一个步骤。
[0415] 3.7审计
[0416] 3.7.1配置审计和顺应性报告
[0417] Publisher帮助组织满足关于对匿名数据的来源的报告的法规要求。存在两个主要的报告类型:
[0418] 1.经由Publisher政策来建立从原始源到安全拷贝的特定数据对象的沿袭[0419] 举例来说,在数据泄露(data breach)的情况下,有必要理解哪些原始数据会由于匿名文件的暴露而有危险。
[0420] 2.查阅当前和先前的Publisher配置以表明适当的保护措施的范围
[0421] 举例来说,当项目处在计划阶段中时,有必要表明对建议使用的敏感数据的足够平的保护措施。
[0422] 这些将在下文更详细地讨论。
[0423] 3.7.2数据的审计:数据沿袭
[0424] Hadoop分布提供对HDFS中数据沿袭元数据的支持,这允许连接已经以某种方式从其他文件导出的文件,从而记录所述文件的来源。Publisher与此类系统结合以记录匿名文件从输入文件的产生。当Publisher将输出文件写到HDFS时,创建对政策的描述作为元数据,并且使用所述描述来连接敏感输入文件与安全输出文件。在图18中示出了这种元数据。
[0425] 为了对优先于敏感原件来定位安全拷贝感兴趣的外部应用的益处,暴露这种元数据。这类应用可以例如建置关于HDFS内容的搜索索引,并且通过显示安全拷贝和隐藏敏感原件来回应用户搜索。在这个实例中,沿袭是确定应当隐藏哪些敏感文件所必需的。
[0426] 另一实例是当安全输出拷贝继承来自原件的元数据时的情形。链接能够用于读取初始元数据并且将初始元数据应用于导出的拷贝。
[0427] 3.7.3配置的审计
[0428] 在泄露的情况下,并且对于其他调查,Publisher通过允许识别用于生成特定输出数据对象的政策来支持所述过程。
[0429] Publisher保持对其配置对象作出的改变的日志,使得当调查者需要确定在文件产生时哪个政策在起作用时,能够恢复相关的任务和政策。然后可用以确立应用于文件的保护水平。
[0430] 配置变化的历史将通过Publisher将对象的连续修改和作出所述改变时的时间戳一起存储在数据库来跟踪。因此,对于给定的查询时间戳,有可能重建当时的配置的状态。Publisher提供用于显示历史政策、模式或任务的UI。
[0431] 这个UI能够用于查阅后续的变化,这对调查对特定数据集的保护如何随时间改变很有用。
[0432] 用于生成输出数据集的历史任务含有调查期间的其他有用信息,例如:
[0433] ●根据HDFS中的位置对输入和输出文件的参考。
[0434] ●具有关于任务如何运行的信息(如果提供)的附注字段。
[0435] ●在任务运行时对输入和输出文件的访问许可。
[0436] 3.8敏感数据的监管链
[0437] Publisher在组织的计算群集内进行对敏感数据的全部处理。这避免了由敏感数据传输到第三方和/或敏感数据被第三方存储引起的额外风险。这是Publisher使用“纱群集(yarn-cluster)”模式下的Spark任务的固有益处。
[0438] 3.9数据共享
[0439] Publisher含有用于跟踪与组织内或外的低可信群共享的数据的特征。“共享数据”参考数据对象离开受控信息系统的情形,并且假设将经历未知的其他处理和/或向前分布。通常,在这类情形中,数据发布受到关于受众、期满日、使用条款等的法律协议约束。Publisher使发布组织能够跟踪哪些内容已被发布和根据哪些条款。
[0440] 如果意外地发现数据集违反这类条款(在线、泄漏到媒体等),则Publisher数据共享跟踪可以使组织能够确定例如以下各项:
[0441] 1.初始数据集;
[0442] 2.发布日期;
[0443] 3.组织中的授权者;
[0444] 4.预期接受者;
[0445] 5.预期的发布用途;
[0446] 6.用于匿名化的Publisher政策;
[0447] 7.嵌入式Publisher水印;
[0448] 8.使用条款。
[0449] 生成用于共享的数据集涉及运行规定了额外元数据字段的一类Publisher任务,其可以包括但不限于:
[0450] ●授权者(名称/电子邮件地址/公司);
[0451] ●接受者(名称/电子邮件地址/公司);
[0452] ●预期用途(文本描述);
[0453] ●期满日(日期);
[0454] ●使用条款;
[0455] ●(经过配置的任意其他字段)。
[0456] 这些字段将与任务运行的正常记录一起存储,例如:
[0457] ●执行的时间戳(日期);
[0458] ●输入的文件名(文本);
[0459] ●输出的文件名(文本);
[0460] ●Publisher政策(政策的名称);
[0461] ●水印(数字字段)(如果需要)。
[0462] 这些字段以查询表格的形式存储在Publisher的数据库中,并且Publisher UI提供用于抽取特定运行的特征。举例来说,典型的查询可以是:
[0463] ●找出在1/1/2016与31/1/2016之间的从HDFS位置/事务读取输入文件的数据发布。
[0464] ●找出由john.smith@tardis.com授权的在使用描述中含有“marketing(市场)”的数据发布。
[0465] ●找出接受者电子邮件中含有数据集已经到期的“@hogwarts.ac.uk”的数据发布。
[0466] ●找出使用条款与“machine learning(机器学习)”兼容的的数据发布。
[0467] 一旦任务运行已经通过这些查询列出,则所述工作运行的全部细节变得可访问,包括模式的状态和在任务运行时的政策。
[0468] 这很有用,因为查询允许数据拥有者评估与泄露文件同时发布的数据的可能未来泄露的风险。
[0469] 水印
[0470] 如果发现文件含有水印,则Publisher含有用于识别生成所述文件的任务运行的特征。一旦识别已完成,任务运行的性质就能够用于引导从Publisher水印UI开始的如上所述的共享数据搜索。
[0471] 例如:
[0472] 1.提供含有水印的泄露文件。
[0473] 2.识别任务运行,从而给出时间戳和接受者以及其他性质。
[0474] 3.查询时间戳和接受者相似的其他任务运行,并且对其进行风险查阅。
[0475] 4.如果认为风险巨大,则可进行随后采取措施,例如改变加密密钥。
[0476] 4.数据隐私I:令牌化
[0477] Publisher含有允许令牌化以分布式设置存储的大数据集的几个最佳化。
[0478] 4.1掩蔽与令牌化规则
[0479] 如先前所解释,Publisher使用政策的概念来建模必须对输入数据执行以将输入数据安全地匿名化的操作。政策含有一个或多个规则,其中每个规则囊括要对输入数据列中的一个或多个执行的单个操作。
[0480] 4.1.1规则操作
[0481] 如所提及的,Publisher提供“掩蔽”规则(编写或掩盖基础输入值的规则)和“令牌化”规则(用代表实际数据值的所生成令牌来替换基础输入值的规则)两者。下面的表格描述了最常用的基本规则。
[0482]
[0483] 所有规则还支持对输入数据中的空白/或遗漏值的可配置处置,即能够保持空值,或能够用生成的输出替换空值,恰如同非空输入值。
[0484] 4.1.2规则库
[0485] Publisher允许用户创建针对一般操作的规则,所述规则然后可以跨政策共享。举例来说,用户可能希望创建“customer ID(顾客ID)”规则,所述规则生成符合组织的特定ID格式的令牌。
[0486] 另外,Publisher伴随对用于生成例如电子邮件地址或UK邮政编码的一般令牌的“开箱即用(out of the box)”格式的选择发货。
[0487] 4.1.3条件规则
[0488] 除了不管初始数据如何而以相同方式操作规则的标准情况以外,还有可能建构视某一状态而执行不同操作的规则。这类规则可以参考来自一般“规则库”的其他规则,以允许简单地通过另外建置其他规则来规定复杂行为。
[0489] 规则能够根据列的各个值或行中的另一列的初始值进行调节。
[0490] 举例来说,这类规则可以解析输入数据中的电话号码,然后对UK电话号码执行特殊掩蔽,从而委派给先前定义的规则,这可以用伪代码表示为:
[0491] IF(val startsWith“+44”)ukPhoneMask
[0492] ELSE genericPhoneMask
[0493] 条件规则还可以取决于其他列的值,例如,“Country”列的值可以用于通知令牌的生成以使用特定国家名称查询表来替代“Forename”列。在伪代码中,这种通知可能看起来像:
[0494] IF(row[“Country”]==“France”)frenchNameLookup
[0495] ELSE IF(row[“Country”]==“Spain”)spanishNameLookup
[0496] ELSE englishNameLookup
[0497] 4.1.4脚本规则
[0498] 可以使用脚本规则来创建更复杂或完全定制的操作,所述脚本规则为用户提供键入脚本语言代码(例如,Python)的片段以定义输出行的一些或全部值应如何生成的机会。这个代码可以接收输入行的列中一列或多列的值并且可以传回输入列值中的一个或多个,从而允许建置任意的复杂表达式。
[0499] 需要这个规则的情况的实例是当输入内的几列相关时,例如,如果输入含有表示取得抵押的日期、抵押的期限以及应当完全偿还抵押的日期的列,则改变前两列中的任一者将迫使第三列改变。因此,如果对初始两个值应用了某种掩蔽,则以下脚本伪代码可以用于确保结束日期和其他两列保持一致:
[0500] outputRow[“endDate”]=outputRow[“startDate”]+outputRow[“term”][0501] 这一片段可以将startDate和term列的和指派给endDate列。
[0502] 在以上实例中,在将任何令牌化过程应用于列之后将规则作用于所述列,所述列参考outputRow结构。规则还可以使用inputRow结构来参考原始输入数据。规则还可以参考其他规则。系统建置将对多行执行的所有操作的图,使得系统能够以正确次序应用所述操作。
[0503] 4.2一致令牌化
[0504] 随机地生成令牌的任何令牌化规则可以在不一致或一致模式下使用。当不一致地使用时,针对隔离的每个给定输入值随机地生成新令牌,并且每次用新生成的不同令牌来替换在相同或不同输入源中多次出现的相同输入值。一致令牌化确保:在相同或不同输入源中多次出现的相同输入值将始终被相同的随机生成的令牌替换,并且每个唯一输入值接收唯一令牌(即,输入与令牌之间的关系是一对一的)。这些保证对于政策针对相同数据或针对新数据的未来执行也有效。
[0505] 一致令牌化所遵循的过程在概念上很简单并且包括两个阶段:
[0506] ●令牌生成-推导输入→令牌映射表,从而确保输入列中的每个相异值被指派唯一令牌的过程。然后这个映射表会留存在“令牌保险库”中(参见稍后章节)。
[0507] ●模糊化(Obfuscation)-在写入输出数据时使用所指派的映射,从而用生成的令牌来替代源数据中的输入的过程。
[0508] 由于保险库含有的令牌是利用规则中所配置的策略生成,因此保险库的范围必定达到规则的阶层,即,含有多个不同的一致令牌化规则的政策将填充并且消耗多个令牌保险库。如果规则被跨政策共享,则用户能够配置每个政策是否具有其自身的用于所述规则的保险库,或是否存在使用所述规则被所有政策共享的单个全局保险库。
[0509] 4.2.1令牌保险库
[0510] 如所述的,令牌生成阶段的输出是存储所有输入和已经指派给每个输入的唯一生成令牌的“令牌保险库”,所述输入不仅存在于当前输入数据中,而且存在于经过处理的所有历史输入数据中。这个令牌将用于替换所有遇到的数据中的令牌。
[0511] 令牌保险库在令牌生成阶段完成后即被留存,这样允许在模糊化阶段中使用所述令牌保险库,而且支持稍后的令牌检索(参见下面的章节)。Publisher支持使用各种不同机制来留存这种保险库,所述机制包括任何ODBC RDBMS、几个“NoSQL”数据库或甚至将文件直接存储在HDFS中。然而,使用可扩展的并行持久性存储器(例如RDBMS或NoSQL数据库)可以通过使令牌生成阶段和模糊化阶段能够经由数据组合成单个遍次来提供性能益处,因为持久性存储器能够跨多个客户协调写入,Publisher能够利用这一点,使得每个节点仅需要与持久性系统通信而不需要彼此通信(每个节点能够使用持久性存储器来确定是否存在针对输入的现有指派,或是否已经为不同输入指派了节点针对输入已生成的令牌)。
[0512] 可以通过实现连接器接口来增加对额外系统的支持,从而提供针对多个批次的输入值的并行随机读写能力。
[0513] 令牌保险库很重要,这是因为映射可能是业务关键对象,并且值可能是敏感信息。Publisher为令牌保险库提供稳健的管理和安全性:
[0514] ●Publisher可以被配置成使用从顾客的KMS获得的加密密钥对存储在令牌保险库内的输入加密。透明地支持密钥旋转(Key rotation),这是因为保险库值在密钥改变的情况下会被自动地再加密。这种加密将通过记录用于对保险库的标头中的值加密的密钥的版本来实现。即使在密钥已被旋转的情况下,从KMS获得这个版本的密钥也允许我们对值解密。当保险库被重写以包括新的令牌指派时,将使用密钥的最近值。Publisher UI还提供前瞻性地重写保险库以立即使用最新版本的密钥的选项。
[0515] ●Publisher提供列出并且详述组织的所有令牌保险库的用户界面。
[0516] 由于有权访问令牌保险库允许对输出数据的去匿名化,因此对令牌保险库的访问应被严格控制。举例来说,如果保险库数据驻存在HDFS中,则保险库数据应被配置成在Publisher本身运行时仅通过用户账户可读。
[0517] 4.2.2令牌反向查找
[0518] Publisher允许已经存储在令牌保险库中的令牌逆转回到其初始形式并且向用户显示。这个特征支持令牌的子集已经通过基于匿名数据的外部分析过程得以识别的用例,因此有必要跟进实际标识符。实例是金融犯罪调查或目标市场营销;在这两种情况下,针对匿名数据集中的一些个体,由无权访问原始数据的分析团队来确定结果。所产生的令牌能够转换回到其初始原始值以用于跟进。
[0519] 反向查找的第二用例是使静止的数据保持令牌化,并且使用Publisher来视需要去令牌化。Publisher支持反向查找令牌的三种方式:
[0520] 单个令牌-Publisher UI能够用于从所选择的令牌保险库查找各个单个令牌。用户键入令牌值,则从保险库获得这个令牌替换的原始输入值,并且显示所述原始输入值。使用这个特征需要“升级的双鉴别”,即,在显示查找结果之前,需要两个不同用户进行鉴别。
[0521] 大量去令牌化-如果要查找多个令牌,则Publisher提供从HDFS读取令牌的文件并且产生原始值的对应文件的选项。这个过程能够从Publisher的UI起始或通过REST API调用来起始。API选项是允许去令牌化作为自动化管道的部分来执行。这个特征绝不涉及向UI用户显示原始值。HDFS的安全性保护原始值的发出文件。在令牌文件很大的情况下,API提供用于监控长运行时间的过程的功能。
[0522] 经由Hive SerDe的互动式查找-Publisher含有允许对匿名数据的Hive查询在查询运行时被动态地去令牌化的Hive SerDe分量。SerDe的行为取决于当前用户的角色或访问许可。如果用户具有适当许可以查看原始值,则能够在适当的Publisher令牌保险库中动态地查找由Hive传回的结果集合中的令牌化值。没有所需许可的用户继续查看令牌化值。
[0523] 4.2.3一致令牌化实现方式
[0524] 如先前所提及,如果令牌保险库留存在并行数据存储器中,则令牌生成过程和模糊化过程可以通过允许经由持久性存储器来管理由不同节点进行的令牌指派的协调来组合。然而,Publisher能够回归到将普通HDFS文件用于令牌保险库,从而不需要顾客安装或管理额外软件。
[0525] 在小规模和主要是普通文件的情况下,一致令牌化所需的两个操作对于实现并不重要。然而,当对大小是许多太字节的大数据集进行操作时,不可能将输入的全部内容或甚至保险库(映射表)的全部内容留存在单个主机上的存储器中。因此,有效率地实现一致令牌化是分布式计算问题。Publisher含有考虑到有效分布式令牌化的几个创新。
[0526] 4.2.4令牌生成
[0527] 令牌生成步骤负责为每个遇到的输入值指派唯一令牌。所述令牌生成步骤的输入是输入数据文件和现有令牌保险库(所述输入将含有在规则针对先前输入文件的先前运行中所生成的所有令牌指派,并且在所述运行是规则的第一次执行的情况下可以为空)。所述令牌生成步骤的输出是新的、经过更新的令牌保险库,所述令牌保险库包括针对在规则的这次和所有先前执行中所遇到的所有输入的令牌指派。
[0528] 算法选取需要令牌化的输入值的集合,移除重复的值(这个因为每个值应仅令牌化一次,并且所述值的每个实例应用同一个令牌来替换)和(在规则的先前执行中)已经被指派了令牌的任何值,然后将随机令牌指派给每个剩余值。由于这些值分散在群集中的多个主机上,因此不可能有效率地防止同一个随机令牌被指派给多于一个的输入,因此,在进行指派之后,检查指派的唯一性。如果同一个令牌已被指派给多个输入,则所述输入中的一个能够保持所述令牌,而其他输入返回到仍需要令牌的值的集合中。循环这个过程,直到所有值具有唯一令牌。
[0529] 图19A和19B是示出两个节点群集(即,针对计算指定两个机器的群集)上的使用HDFS文件的令牌化流程的图,一个HDFS文件用于输入文件,而一个文件用于令牌保险库。由于两个文件驻存在HDFS中,因此所述文件被拆分成跨群集的节点分布的多个块。下面的实例假设两个文件被拆分成两个大小相等的块,所述两个块中的一个驻存在每个节点上。
[0530] 令牌生成涉及以下步骤:
[0531] 1.通过输入文件的每个块所驻存的节点将所述块加载到存储器中。组合每列的将通过规则令牌化的值,以形成输入值的集合以供令牌化。在每个节点上,这个集合内的重复值被废弃,这是因为每个输入仅应被令牌化一次(不过不保证集合中的值是全局唯一的,这是因为其他节点可以遇到输入文件的块内的相同值)。
[0532] 2.现有令牌指派的保险库也以拆分方式存储在节点上,并且每个节点将其块加载到存储器中。令牌保险库中的项目能够被视为从原始输入值(映射“密钥(key)”)到其指派令牌(映射“值(value)”)的映射。
[0533] 3.从需要令牌化的值的集合移除任何先前被令牌化的输入值(即,从输入值的集合减去保险库图中的密钥)。请注意,这涉及跨群集的通信,因为节点1可能需要将已存在于由节点2加载的保险库的部分中的值令牌化。为了实现这个目标,通过根据值对输入值进行分割来跨群集节点共享输入值。分割涉及将值的集合指派给每个节点,并且常常通过对值进行散列和取所述散列对群集中的节点数目的模来实现。举例来说,在具有10个节点的情况下,值“ABC”可以散列成101,因此被指派给具有ID 1的节点。然后每个节点在与此分割一致的群集中发送其值。
[0534] 4.然后节点处理已经发送到所述节点的数据的部分,由于输入数据和保险库项目已使用相同方案进行分割,因此对于节点在分区内遇到的每个输入值,节点仍将保持保险库值(如果值存在)。因此,节点能够从分区废除保险库值存在(以及因此令牌已经生成并且被指派)的所有那些输入值。
[0535] 5.每个节点现在针对有待令牌化的输入值中的每一个生成候选令牌。这样将输入值的集合转换成映射,其中,和保险库一样,密钥是原始输入值,而值是令牌(或者,在这种情况下是候选令牌,这是因为指派还没有结束)。然后“反转”输入值和保险库值映射,使得所述映射根据令牌而不是值加以键控(即,交换密钥与值,而映射从输入→令牌变成令牌→输入)。
[0536] 6.现在关于群集混洗令牌→输入映射以根据令牌将映射分组(这将通过根据令牌对两个映射进行分割来实现)。
[0537] 7.然后使用如下逻辑对每个令牌进行处理:
[0538] ○如果令牌具有映射到其的单个输入值,则这个配对结束并且将其留存在保险库中
[0539] ○如果多个输入值已被给予相同的候选令牌,则所述输入值中的一个“获胜”并且能够保持所述指派,而其他输入值将所述令牌移除。如果所述输入中的一个先前已被指派这个令牌(即,这个令牌已存在于保险库中),则选取这个输入作为获胜者;否则,对输入值已被指派所述令牌进行任意选择。
[0540] 8.在步骤4将唯一令牌仍待指派的任何剩余输入值反馈到过程中。然后令牌生成过程如此类似地循环,直到所有值已被指派唯一令牌。对循环的数目存在硬限制,即,如果达到这个限制,则Publisher将以错误来终止过程。这样防范用户输入表达式的令牌空间(即,表达式能够生成的唯一令牌的数目)小于需要令牌化的唯一值的数目的情形,这将另外导致无限循环。
[0541] 9.一旦所有输入已接收到唯一的令牌指派,输入值→令牌映射的完整集合仍留存在保险库中。
[0542] 10.针对有待一致令牌化的每个规则重复整个过程。
[0543] 4.2.5模糊化
[0544] 模糊化步骤使用在先前步骤中生成的令牌保险库来替换输入数据中的值。模糊化步骤的输出是输入数据文件,但令牌化列中的每个值已被指派的令牌替换。
[0545] 由于输入数据文件和令牌保险库均分散在群集中的节点上,因此必须对数据混洗以实现模糊化。算法利用了如下事实:令牌保险库通常显著小于输入数据集以将混洗的量减到最小,绝不对全部输入数据进行混洗(仅分区内的值的相异集合),并且改为对保险库数据进行混洗,使得模糊化数据文件的分区所需的所有令牌指派被复制到保持所述分区的节点上。
[0546] 图20A和20B是示出了从先前实例继续的模糊化流程的图。
[0547] 模糊化流程涉及以下步骤:
[0548] 1.通过文件的每个块所驻存的节点来加载所述块。组合每列的将通过规则令牌化的值,以形成输入值的集合以供令牌化。每个块的这个集合内的重复值被废弃,这是因为每个输入仅应被令牌化一次。然后用每个值所驻存的块的ID来标记每个值。
[0549] 2.如先前所了解,在令牌生成步骤中所创建的令牌指派的保险库也被跨节点拆分,并且每个节点将其块加载到存储器中,以作为输入值(密钥)→令牌(值)的映射。
[0550] 3.在确保给定输入的保险库项目与输入值驻存在同一个节点上之后,联结输入值与保险库值密钥。这涉及分割(参见先前章节)输入数据集和保险库项目,然后在群集中混洗数据。请注意,由于在步骤1中使每个输入数据分区内的值是相异的,最多存在每个值在每个分区中出现一次,因此,任何单个输入值的最大出现次数等于输入数据分区的数目。这就避免了此类输入数据混洗方案的常见问题(所谓的“热值”问题),在所述混洗方案中,单个的大量过表达的值的存在能够导致几乎所有数据在混洗期间被发送到单个分区并且致使那个节点耗尽存储器。
[0551] 4.现在跨群集的节点来分割输入值、块ID以及令牌化值的结合元组,这次分割是根据块ID。这涉及数据在群集中的再次混洗,从而将输入值项目传回到其起源节点。
[0552] 5.现在,每个输入值的输入→令牌映射与输入存在于同一节点上,并且初始文件可以经过处理,并且针对每个输入值来查找令牌化值。这个过程可以在每个节点上独立地进行。
[0553] 6.对将用于令牌化输入文件的每个规则重复整个过程。在每个遍次中,模糊化文件的一个或多个另外列,直到在最后遍次之后,文件已被完全令牌化。
[0554] 4.2.6导出的令牌化
[0555] 以上过程描述了用于大数据集内的令牌化值的有效机制。然而,所述过程涉及在群集中混洗数据多次,这能够说明成本高昂。使用导出的令牌化特征,可以避免存在于模糊化阶段中的数据混洗。
[0556] 在如上所述的传统令牌化中,令牌是使用非种子伪随机数生成器(pseudorandom number generator,PRNG)从所述令牌的规则生成。在许多可能的随机令牌生成过程中的一个过程中使用了所述PRNG,例如从某一范围创建随机整数、从某一预定义列表选择随机元素或创建满足特定正则表达式的随机字符串。当使用导出的令牌化时,令牌仍表现为随机的,但随机数生成器以从输入值推导的值作为种子,如下:
[0557] 1.使用来自顾客的KMS的密钥(使用例如AES-128-CBC)对输入值加密。
[0558] 2.将所得密文分解成多个N字节块,并且对所述块一起进行XOR,从而产生最终的N字节块,所述块被用作PRNG的种子(N的值将取决于PRNG的种子长度,例如所述值在PRNG接受64位种子的情况下将为8)。
[0559] 3.使用规则的标识符来推导密码的初始化向量(例如,通过将标识符与自身拼接,直到标识符得到正确大小),使得出现在不同规则中的相同输入值会产生不同种子。
[0560] 在图21中示出了这个过程。
[0561] 因为使用已知的密钥和初始化向量从给定明文值产生的加密密文是常数,所以所述过程对输入值将始终产生相同的随机种子(在同一规则内,而不是跨规则,这是因为初始化向量会不同)。
[0562] 请注意,由于随机种子是使用加密算法导出,并且任何强加密算法必须提供均匀分布的密文值,因此不可能区分生成的令牌分布与是否已使用非种子或导出的令牌化。
[0563] 当使用导出的令牌化时,上文的令牌生成章节(章节4.2.4)中所描述的令牌化过程大体上相同,但是有以下修改:
[0564] ●确定过程被用于创建令牌保险库中的令牌;如步骤1中所描述。
[0565] ●如上所述,当在步骤5中生成令牌时,从输入的加密值产生PRNG的种子。
[0566] ●除保险库之外,还维持“碰撞”的单独映射。如果两个不同输入生成导致生成相同令牌(在步骤7中检测到)的种子,则将输入中的一个添加到所述碰撞映射,并且使用非种子PRNG对输入指派非导出值。请注意,多个不同输入加密到同一个64位种子的概率很渺小,但是两个不同种子产生相同令牌的概率是令牌表达式的数字空间的函数。
[0567] ●这个碰撞映射非常小,因而能够全部被发送到每个节点。在模糊化阶段中,每个节点在请求用于输入的令牌时咨询这个映射:如果输出出现在映射中,则传回来自映射的令牌;否则,使用密文种子的PRNG来导出令牌。在图22中示出了这个过程。
[0568] ●令牌保险库将在需要发生反向查找的情况下使用。然而,模糊化阶段并不使用这个令牌保险库,模糊化阶段使用所述确定过程(和碰撞表)。因此,模糊化阶段的结束要快得多,这是因为令牌保险库不被发送。
[0569] 所述令牌化过程仍必须循环,直到已经检测到并且解决了所有碰撞,但是在过程结束时,我们具有生成令牌冲突的任何输入的完整令牌保险库,所述令牌保险库留存为正常的(以支持反向查找)并且是小得多的输入→令牌的映射。
[0570] 图23A和23B示出了适合于使用导出的令牌化的令牌生成阶段。请注意,碰撞文件由于很小而在处理期间被复制到所有节点。顶部面板(步骤1到2)示出了碰撞映射将与令牌保险库一起加载。中间面板(步骤3到6)与之前一样地发生,并且针对需要新映射的令牌建议新映射。底部面板(步骤7到8)示出了当两个值在推导过程中产生相同令牌时,一个值保持所述值,而将另一个值添加到碰撞文件。
[0571] 然后能够在模糊化过程期间将完整的碰撞映射发送到每个节点,现在这变得和通过输入文件中的每个值流传输和使用密文或者使用碰撞映射中所指示的碰撞替代值来导出要使用的令牌一样简单。每个节点能够独立地处理其数据,而没有必要在群集中混洗数据。图24示出了这个简化的工作流。
[0572] 4.3流令牌化
[0573] 许多顾客希望数据的匿名化以连续流方式发生,这在数据实时地到达并且在存储到顾客的数据湖中之前传递通过ETL管道的情况下特别重要。掩蔽和不一致令牌化能够以流方式应用于传入的数据,这是因为每个基准能够被独立地处理。如所了解,一致令牌化需要协调处理,以确保令牌的唯一性。但是,使用支持等待时间低的并行随机访问的令牌保险库留存策略还允许以流方式应用一致令牌化。从输入队列读取传入值,并且将所述传入值缓存成“微批次(micro-batch)”,然后所述批次内的值被一起令牌化并且变换成匿名输出,然后所述匿名输出被添加到输出队列。微批次的大小能够从微批次内的元素的数目和系统在继续对迄今所接收到的输入值令牌化之前等待新输入值的最大时间段两个方面来配置。这允许系统调谐到等待时间与吞吐量之间的所需权衡,从而允许系统支持极高流量用例(其中较大批次大小将允许通过将令牌化操作有效率地分批来实现最大吞吐量以将开销减到最小)和必须实现低等待时间的用例(其中较小批次大小将输入停留在等待被处理的队列中的时间量减到最小)两者。
[0574] 5.数据隐私II:一般化
[0575] 本章节描述了Publisher的一般化功能性。一般化是用较笼统的值来替换多个值的过程。对于类别列,较笼统的值意味着更广的类别:例如,“智能电话”相对“iPhone”或“Blackberry”来说就较笼统。对于数字列,较笼统的值意味着较宽区间:例如,“10-20”相对“15-20”来说就较笼统,而“15-20”相对“18”来说就较笼统。Publisher支持对特定列进行一般化。
[0576] 此外,Publisher支持自动地选择一般化的程度,以便满足特定的隐私保证。Publisher能够自动地一般化以实现:k匿名(k-anonymity),这是对再识别的防御;和l多样性(l-diversity),这是对敏感属性披露(参见上文的定义)的防御。
[0577] 本章节被分成三个主要部分:配置过程、数据一般化过程以及Publisher中的报告功能性。
[0578] 背景
[0579] 在Fung、Wang以及Yu的论文(Fung,Benjamin CM、Ke Wang以及Philip S.Yu,"Top-down specialization for information and privacy preservation."Data Engineering,2005.ICDE 2005.Proceedings.21st International Conference on.IEEE,
2005.)中提出了用于一般化数据的自上而下专用化方法。Publisher用于一般化数据的方法与这个方法的不同之处在于许多关键方式,例如:
[0580] ●Fung、Wang以及Yu的方法针对全局记录(global recoding),而Publisher在其完全自动化的一般化中执行局部记录(local recoding)(全局记录能够通过声明性一般化来达成)。全局记录意味着变换在数据集中是一致的(例如,7始终变成5-10),而局部记录意味着变换能够不同(例如,7在一行中能变成6-8,而在另一行中变成5-10)。局部记录通常允许实现较少失真的k匿名。
[0581] ●Publisher意图处置大数据集并且具有Fung、Wang以及Yu的论文中未讨论的几个性能最佳化特征。
[0582] ●Publisher具有比适用性限于符合特定性质的数据的Fung、Wang以及Yu方法更大的灵活性。
[0583] ●Publisher合并对敏感属性披露的防御,例如l多样性,而Fung、Wang以及Yu方法不具有所述防御。
[0584] 以下术语会贯穿本说明书使用。在下表中定义了所述术语:
[0585]
[0586]
[0587] 5.1配置过程
[0588] Publisher的仪表板网页允许用户键入关于每个数据集和列的与应如何一般化数据集或列有关的配置参数。主要参数如下所述。Publisher针对每个表格选取用户确定值“k”并且针对每个敏感列选取“l”。Publisher还选取关于哪些列要一般化(即,哪些列是准识别的)和如何执行所述一般化的配置信息。最后,Publisher选取与其他列的关系应当保持的“兴趣”列的集合。
[0589] Publisher含有用于帮助用户以正确方式设定这些参数的特征。所述参数被稍后将讨论的一般化处理阶段和报告阶段使用。
[0590] 5.1.1配置数字列一般化
[0591] 在Publisher中,每个准识别列具有关于一般化的策略的相关联配置参数。对于数字列,用户能够配置系统应尝试达成的最大分辨率(例如,对于如收入的变量来说是1000的倍数)。然后Publisher将数字一般化为宽度大于或等于最大分辨率的区间。Publisher通过将区间的界限舍位到最大分辨率的最接近倍数来实现这种一般化。最大分辨率数字也被称为“对准(alignment)”,这是因为区间的界限“对准”到区间的倍数。
[0592] 替代地,用户能够规定分辨率的任意区间(例如,将年龄一般化成标准市场营销类别)。然后Publisher将数字一般化成这些区间或这些区间的组合。举例来说,如果区间是18-24、25-35以及36-100,则Publisher可以将19一般化到18-14或18-35。
[0593] 5.1.2配置日期一般化
[0594] 对于数据列,有三个选项可供使用。默认情况下,日期被视为数字字段。将日期一般化为数字产生较低失真,但是可能会以与例如内部会计期的标准日期周期不对准的日期结束。替代地,能够使用层次(hierarchy)将日期一般化。Publisher提供默认层次(年代(decades)->年(years)->月(months)->日(days)),但是替代地,用户能够规定定制层次。这个层次可包括季度(quarters)以作为额外阶层,或将年界设定为财年而不是历年。
[0595] 5.1.3配置类别列一般化
[0596] 类别列将根据相关项的层次来一般化。层次是树型结构,列中的实际原始值在树的叶节点中。高于叶节点的节点含有语义意义涵盖子值的“类别(category)”值。举例来说,具有值“树(tree)”的节点可以具有子节点“落叶树(deciduous tree)”和“常青树(evergreen)”。默认情况下,系统生成数据中的普通项和非普通值的“其他”类别的平面层次,其中“普通”被定义为在数据集中出现超过“k”次。
[0597] 替代地,用户能够如下文所讨论地规定其自身的层次。
[0598] 类别变量的层次的用户规范,和针对匿名的这些层次的使用:
[0599] 用户能够上传以JSON或CSV格式定义的定制层次。所述层次需要规定类别列中的初始值如何能够概括成更一般的类别。一般化层次需要为非循环图并且定义类别的严格层次。叶节点需要为唯一的并且不能具有多于一个的父节点。
[0600] 在预定义层次中,为每个类标签(class label)定义一组子节点(children),从包括所有子规范的最广泛类别开始并且以对应于在输入数据表中发现的初始值的叶节点结束。
[0601] 图25示出了具有食物层次的实例的图。这个定制食物层次能够用JSon格式以可读形式描述如下:
[0602]
[0603] 所述层次中的叶节点通过使用正则表达式能够部分地匹配列中的文本。举例来说,叶值可以说成“0213[0-9]”,这是从叶的角度看具有十个叶节点“02130”、……、“02139”的逻辑等效物。这是重要的可用性辅助,因为其允许层次处置高基数列,而不需要用户人工地添加所有可能值作为叶。如果两个叶均部分地匹配某一值,则最具体的正则表达式(regex)优先,其中“最具体的”正则表达式是匹配少量字符串的正则表达式。
[0604] 5.1.4全能性(Catchall)
[0605] 预处理步骤检查列中的每个值是否匹配层次中的叶节点。如果发现不匹配,则用“全能性”值来替换所述值。举例来说,如果层次仅含有关于眼睛颜色的叶值“Brown”、“Blue”以及“Green”,而在输入数据中发现了值“Grey”,则可以用全能性值来替换值“Grey”。全能值采用固定字符串的形式,例如“CATCHALL”。因而全能性值能在所述层次中使用,然后对于一般化过程的其余部分,将用正常方式来处置全能性值。
[0606] 这在用户不是很关心稀有值并且不想将每个可能稀有值明确地放入其层次中的情况下是有用特征。
[0607] 5.1.5导出列
[0608] 在一列是从另一列导出的情况下(例如,出生日期和年龄),仅一列需要被一般化,另一列能够从一般化的列再计算。这个再计算方法允许Publisher将算法需要考虑的准标识符的数目减到最小,并且避免了如下危险:同一信息将以两个不同方式被一般化,从而引起复合攻击。
[0609] 预分析阶段将确定哪些列彼此高度相关,被确定具有高于特定阈值的相关性。然后Publisher使用关于高度相关的列的这个信息来猜测所述列可以被导出。在政策设置屏幕中,如果用户选择一对高度相关变量中的一个作为待一般化的准标识符,则Publisher会提示用户以询问用户所述列是否确实是导出的,和用户是否想要Publisher从一般化之后的第一列再计算其他列。如果用户选择是,则用户必须输入用以从一列再计算另一列的方式。这个输入可以是以下格式:
[0610] ●数学表达式,例如“x*10”。
[0611] ●出生日期到年龄规则,所述规则以测量日期作为参数。
[0612] ●python函数,所述函数接受一列的值作为自变量(argument)并且传回另一列的值。
[0613] 由于为此使用了纪元表示,因此日期列将被转换成数字秒。
[0614] Publisher丢弃需要再计算的列,并且在另一列已被一般化之后,Publisher运行映射任务(map job),所述映射任务使用由用户选择的表达式、规则或函数来重新创建列。
[0615] 用户还能够无需来自政策设置屏幕的提示而设置导出关系。
[0616] 5.2一般化过程
[0617] Publisher通过对数据表中的特定列进行变换来执行一般化。在本章节中讨论用以变换所述列的方式。
[0618] 5.2.1人工一般化
[0619] Publisher具有人工一般化和自动一般化模式。在人工一般化中,用户准确地配置如何将每列一般化。
[0620] Publisher能够将数字列一般化成具有用户规定宽度的固定宽度直条(bin),或定制的用户规定直条。举例来说,年龄列可以一般化为宽度等于五年的直条(0-4、5-9、10-14等),或如由用户规定的定制直条(0-18、19-25、26-40)。
[0621] Publisher能够通过提供一般化层次和命令系统以一般化到所述层次内的一个阶层(用与根节点的距离来测量)而将标称列一般化。
[0622] 任选地,然后用户能够指示许多列是准列,并且选择k。然后Publisher将执行一般化,基于每个准列中的值的组合来分割记录(即,将记录拆分成其匿名集合),然后丢弃来自具有小于k个记录的任何分区的记录。举例来说,如果只有一个准“Age”,并且用户将年龄列人工地一般化到宽度10的区间中,并且存在小于k个的具有80-90的一般化年龄值的记录,则Publisher将丢弃这些记录。这样得到对于所配置的k是k匿名的输出数据集。
[0623] 5.2.2自动一般化
[0624] 在自动一般化中,用户配置k、l以及用于一般化每列的策略,而Publisher自动地确定为了实现k匿名和(任选的)l多样性需要将多少列一般化。
[0625] 在Publisher中,自动一般化被实现为“自上而下”算法,这意味着每一个准识别属性在被完全一般化后开始,然后得到反复地专用化(变得更具体)。完全一般化意味着最一般的可能,即对于数值列,这是变量的全范围(例如“0-100”),而对于类别列,这是一般化层次的根节点。
[0626] 算法使用了树型数据结构,所述树型数据结构在算法的过程中构造。树中的每个节点含有(1)数据集行的集合,和(2)每个准标识符列的值。所述算法如下所述继续:
[0627] ●从含有所有数据集行的起始节点开始。在这个节点中,所有准标识符值具有完全一般化的值。
[0628] ●根据每个准标识符将所述节点“拆分”成子节点(即专用化针对所述准标识符的节点中的值,从而产生更专用值的集合;为每个专用值创建相关联子节点,所述相关联子节点的准标识符值是除被拆分的准标识符值以外的父节点的拷贝,被拆分的准标识符值将用更专用值来替换;并且将来自父代的每行指派到准标识符值与行的准标识符值一致的子节点),以产生候选子代的集合。
[0629] ●评估子节点的每个候选集合以确定:
[0630] ○所述子节点是否“有效(valid)”,意味着所述子节点各自满足所配置的K和L多样性阈值。
[0631] ○关于所配置的“兴趣”列的“信息增益”。
[0632] ●选择具有最高信息增益的有效子节点的集合,并且将所述有效子节点添加到树。
[0633] ●对每个子节点重复所述过程,直到不可能在不违反k或L的情况下进一步拆分。
[0634] 5.2.3Infogain
[0635] Infogain是父节点和一组可能子节点的函数。所述函数检查标记为“interesting”的列中的类计数(有关此函数的更多内容,请参见下文)。举例来说,如果兴趣列是或者不是拖欠借款的债务人,则将存在两个类,“Yes”和“No”,并且能够针对记录的任何集合来集中这些列的计数。Infogain定义如下:
[0636] 令S是父代的类计数
[0637] 令T是子代的集合;令每个子代具有一定比例的记录,和类计数令H是熵函数[0638] Infogain(S,T)=H(S)-sum_{t in T}proportion(t)H(t)
[0639] 并且所述熵函数被定义为:
[0640] H(S)=sum_{x in S}proportion(x)log_2(1/proportion(x))
[0641] 直观地,所述熵函数测量一组类计数的“不平衡”程度。计数(Yes=49,No=51)将具有低熵,而(Yes=4,No=96)将具有高熵。因而,Infogain是对子代比父代更加不平衡的程度的测量。这是一个有效目标,因为我们在尝试检测与兴趣列具有强关系的准列,如果具有强关系,则根据准列将记录拆分会产生具有更不平衡的类计数的子代的集合。
[0642] 5.2.4拆分选项
[0643] 层次类别始终拆分为其子节点类别(在上面的实例中,根类别将始终拆分成“Vegetable”类别和“Fruit”类别)。请注意,落在每个子类别中的记录的数目因此可能不平衡(例如,可能有80个“Potato”或“Carrot”记录,而仅有20个“Apple”或“Orange”记录)。
[0644] 对于数字类别,有两个可能的拆分策略,中值拆分和中点拆分。
[0645] 用户选择要使用哪个策略。
[0646] 中点拆分:这在中点对数字类别(即区间)进行拆分。
[0647] 中值拆分:这种拆分策略在拆分准标识符类别时找出节点中的记录的值的中值,并且将这个中值(所述中值对准到最近的对准边界)用作所述类别的拆分点。请注意,最近的对准边界是位于父代界限之间的最近对准边界;由于父区间接近对准区间的大小,因此这可以导致拆分点远离实际的中值。举例来说,在父区间是[0..10)的情况下,对准是5且中值是1,则拆分点将在5,从而产生子区间[0..5)和[5..10)。
[0648] 还请注意,中值拆分需要对每个准的数据的额外遍历,以便确定节点的记录中的中值。
[0649] 5.2.5动态拆分因数
[0650] 如果根据连续变量来拆分节点,则Publisher能够为所述变量选取节点的数据集行的范围并且将所述节点拆分成N个具有近似相等的群体(population)的子区间(例如,如果N=2,则节点使用中值作为新边界)。默认情况下,将N设定成2。N的选择很重要,即过低,则需要许多轮的拆分;而过高,则会面临停止条件将在本可以进行更多拆分时被触发的风险。
[0651] Publisher支持将连续变量拆分成动态数目个子区间,在用户配置子代的最大数目M的情况下,Publisher基于如下等式来计算子代的数目:
[0652] N=n/(2q-1*k)
[0653] 其中n是群集中的记录的数目,q是准识别属性的数目,而k是k匿名参数。
[0654] 然后将N向下舍入到最接近的整数。如果N大于M,则使用M,而如果N小于2,则使用2(变量不能拆分成小于2个子代)。
[0655] 通过考虑准标识符的数目q,这种方法确保对一个变量的拆分将不用尽对其他准识别变量的更多拆分的所有可能性。所述等式能够解释如下:将节点拆分成(n/k)个子代将产生具有大小k的子代,所述子代不再能够被拆分,这是因为进一步的拆分会违反k匿名。将节点拆分成(n/2k)个子代将产生具有大小2k的子代,所述子代在违反k匿名之前能够再拆分一次。将节点拆分成n/(2q-1*k)个子代产生能够被再拆分q-1次的子代。因此,这个拆分因数确保存在对每一个准拆分至少一次的机会。
[0656] 5.2.6先行信息增益计算
[0657] 默认情况下,系统将每次计算被拆分的一个候选者的信息增益,从而选取具有最高信息增益的候选拆分。以额外处理时间为代价,系统能够计算候选者拆分的多个阶段的总计信息增益(例如,两个阶段可意味着每个可能的拆分和在所述拆分之后的每个可能拆分),并且基于所述拆分导致具有最高总计信息增益的路径来选择下一次拆分。
[0658] 5.3可扩缩性特征
[0659] 5.3.1一般的分布式计算方法
[0660] 自上而下专用化过程能够在Spark平台上实现。在Spark驱动程序中维持并操纵树型结构,并且节点中行的列表是Spark弹性分布式数据集(Resilient Distributed Dataset,RDD)。
[0661] 为了决定如何对节点拆分,必须收集每个可能拆分的子代上的元数据。对于子节点的每个可能集合,收集以下元数据:
[0662] ●每个子节点可含有的记录的数目
[0663] ●每个子节点的敏感类计数(用于在L多样性启用的情况下计算L多样性)[0664] ●兴趣/优先列值的兴趣类计数(用于计算信息增益)
[0665] Publisher通过对父节点中的列的RDD运行聚集任务来收集这个信息。
[0666] 请注意,类计数仅对类别性的敏感或兴趣列有意义。如果兴趣列是数字的,则Publisher使用离散化过程(discretization process)以将所述列中的每个值转换成类别值,以便收集类计数。举例来说,如果数值变量在0到100的范围内,则Publisher可以将所述数值变量离散化成10的直条,并且对落在每个直条中的值的数目计数。
[0667] 稍后论述Publisher处置数字敏感列的方式。
[0668] 5.3.2在某个点(当工作负载适合某个存储器大小时)之后拆分出到节点
[0669] 如上文所提及,存在需要遍历全部数据以评估类别拆分(例如计算中值并收集元数据)的各种操作。对被拆分的每个节点执行这些操作。随着拆分继续进行,每个节点表示越来越小部分的数据集,但是仍需要遍历整个数据集,以便滤除归入节点的记录。
[0670] 当自上而下K开始时,对于每次节点拆分,处理整个数据集。就是说,对RDD执行所述操作,并且每次节点拆分涉及对数据的一次或多次遍历。甚至当整个数据集适合群集存储器时,这种处理在专用化树的深度增加时要用很长时间。举例来说,如果每次节点拆分耗时1/10秒,K=10,并且数据集中的列的数目是1千万,假设我们正在执行二元拆分(binary split)并且达到K=10,则我们将必须评估(1千万/10)*2个节点;这等于大约55小时的运行时间。如果数据不适合存储器,则评估每个节点所用的时间显著地增加,这是因为数据的每次遍历需要从HDFS读入数据。
[0671] 为了避免首要问题,即太多节点评估的累积成本,我们进行以下操作:执行如上的节点的分布式拆分,直到我们计算出节点的数据可适合单个执行器的存储器。在算法中的所述点,我们停止拆分节点并且继续拆分仍然过大的那些节点,直到每个叶节点可适合单个执行器的存储器。一旦每个节点可适合,我们即为树中的每个叶节点指派ID,并且将数据集重新分割成和叶节点一样多的分区,从而基于含有分区的节点叶节点的ID将行指派给所述分区。
[0672] 在重新分割之后,每个节点的数据已被移到其自身的分区,因此我们现在能够“局部地”准确运行相同的自上而下专用化,就是说,在分区的所有数据保持在局部存储器中的情况下,自上而下操作能够在一个所述执行器中对数据局部地进行。这比分布式拆分快得多。达到“重新分割点”所需的分布式拆分的量取决于输入数据的大小和分区的数目。
[0673] 图26用示例自上而下决策树方法的图解示出实例。构建节点的树型结构,其中每个节点保持行的列表和每个准识别列的值。顶部的第一节点(n1)表示一般化最多并且因此具有最高隐私阶层的数据。随着数据被拆分成越来越小的子集,数据集变得更具体,并且数据实用性增加。在这个实例中,数据集保持两个准标识符:年龄和体重。算法从第一节点(n1)开始,所述第一节点保持整个数据集和这两列中每一列的最一般值,对于年龄和体重,分别为例如[0-100][0-400]。算法然后决定是否拆分数据,以使得数据变得更具体地关于年龄或关于体重。拆分决定可以根据所选择的用于拆分的属性来选择,例如通过计算信息增益或通过查看原始数据的相关矩阵的保持。在第一次拆分之后,n2然后可以具有与年龄和体重的以下值:[0-50][0-400]匹配的行,并且n3可以具有与年龄和体重的以下值:[50-100][0-400]匹配的行。在选择用于拆分的属性的每个步骤重复所述过程,直到所述过程停止,这是因为进一步拆分将违反k匿名。一旦进一步拆分不能进行,所有叶节点被确定(n8、n9、n5、n6、n7),并且在每个叶节点中,每行被指派所述叶节点的准标识符值,然后公布这些列。在这些节点中的每一个处,列集合达到或大于k。另外,在每次拆分时,计算存储器要求,并且一旦节点内的列集合变得足够小以使列将适合单个机器的存储器,即由单个机器来独立地处理所述节点。
[0674] 5.3.3使用子采样以改进性能
[0675] 对于不适合群集存储器的数据集,分布式拆分需要针对每个节点评估从源重新读取整个数据集。对于大数据集,重新读取整个数据集可以用时一小时或更久。大数据集还具有许多分区(按1000计),因此达到“重新分割点”需要更多的分布式拆分。在每次评估用时一小时或更久的情况下,评估数千个节点不是可行的方法。因此,如果数据集不适合群集存储器,则我们选择数据的适合存储器的子样本并且使用所述子样本来计算到达“重新分割点”的拆分。
[0676] 请注意,这种方法有限制:随着我们要拆分的分区的数目增加,达到“重新分割点”要进行的子样本的拆分越深,即子样本(且因此群集存储器)必须足够大,以支持到所需深度的拆分。
[0677] 5.4兴趣列
[0678] Publisher的用户可以选择兴趣(或优先)列的集合。用户能够规定数据集中对任何后处理或下游分析尤其有意义的列的集合。感兴趣的所有列具有应当保持的特定结构,或分辨率损失应为最小的所有列可被选择作为优先列。举例来说,如果数据将被馈送到线性分类器中,则可选择目标变量作为兴趣列,这是因为所述目标变量是我们想要检测有意义图案的属性。
[0679] 自动一般化算法尝试尽可能多地保留准列与兴趣列的关系。随着自上而下拆分继续进行,根据通过拆分所获取的信息来评估到子节点的每次可能拆分。基于所选择的优先列中的值来计算信息增益(有关信息增益的详细描述,请参见上文)。
[0680] 5.4.1数值兴趣列
[0681] 如果所选择的优先列是数值的,则将值存储到直条中,并且信息增益是基于所得的类别。用户能够选择固定数目个直条,以使得值范围以相等大小拆分成这数目个直条,或用户能够针对每个直条类别定义固定数值范围。兴趣列中的数值被分类到所得的非重叠直条中并且被视为单独类别以用于信息增益计算。如果例如选择“年龄”作为兴趣列并且个人的年龄按年数给出,则我们可以定义这列到年龄类别[0-15)、[15-22)、[22-35)、[35-56)、[56-71)以及[71-100]的有用分条,或决定将变量拆分成仅三个较广类别。如果直条的固定数目由用户选择,则Publisher会将所述值范围自动地划分成大小相等的直条。
[0682] 5.4.2几个兴趣列
[0683] 如果几列被标记为兴趣列,则Publisher将连接每行的所有那些列的值,并且将所得值视为这个记录的兴趣值。值的每个组合,例如性别与眼睛颜色成为一对,将被视为不同标签,即(female;blue)、(female;green)、(male;blue)以及(male;green)。
[0684] 5.4.3无兴趣列
[0685] 受鼓励的是,用户选择至少一个优先列。在优先列不由用户选择的情况下,拆分策略是使拆分在准识别列中均匀地交替。每一轮拆分,选择不同列进行拆开。这个策略旨在抵消引入到每列中的失真。
[0686] Publisher通过以下操作来实现所述交替:维持从0开始的全局计数器i,且如果有Q个准标识符,则在每次拆分中拆分第(i mod Q)个准标识符,然后在每次拆分已进行之后使i递增。当使用重新分割最佳化(参见上文)时,在重新分割点处,改变所述策略。每个新分区被指派介于0与(Q-1)之间的均匀间隔的“局部计数器”。举例来说,如果有八个准标识符和四个分区,则所述分区将使其局部计数器初始化为0、2、4以及6。因而,在分区内,拆分和递增使用局部计数如上地发生。
[0687] 5.5节点的部分重新组合以启用重新拆分
[0688] 在一些情况下,关于k和l对子代进行检查并且在任何子代无效的情况下停止可能会造成问题。
[0689] 图27示出具有动物层次的实例的图解,其中当拆分成子类别时,一个类别的数据非常稀疏,但其他类别具有足够数据。在这个实例中,k=5,并且类别“动物”(其具有100个记录)被拆分成五个子类别。但是,所述子类别中的一个“爬行动物”创建仅具有两个记录的节点。如果我们拆分成这五个子类别,则我们将创建违反K的节点。然而,有可能进一步拆分的其他子类别中有足够记录。为了避免这种情况,无效的子代类别可以与其他无效的类别组合并且在必要时与有效的类别组合,以便形成有效类别。这些组合式类别具有与父代类别(例如这个实例中的“动物”)相同的值,因而不能被进一步拆分。然而,同胞节点现在能够进一步拆分,从而允许进一步专用化。这在图28中示例。当执行这种重新组合时,类别在层次类别的情况下首先最小地组合且在数值类别的情况下与邻近类别组合(以便形成连续区间)。
[0690] 5.6遗漏值(和NULL)
[0691] 许多数据集具有在多项中表示与标准值的不同之处的NULL值。NULL值引起对一般化的有趣挑战。NULL值有可能是识别性的,例如如果仅存在“boss_id”字段,则CEO将具有NULL值。然而,NULL值不能用一般规则来一般化,这是因为如“[40-50]或NULL”的群对用户来说很难了解。
[0692] Publisher选取将NULL的影响减到最小的方法。在每个节点处,Publisher加注节点是否含有NULL(以变量N说明)。如果节点中存在多于k的NULL,则节点将NULL拆分到一个子代中并将非NULL拆分到另一个子代中,分别标记N=true(真)和N=false(假)。如果存在小于k个NULL,则正常地拆分非NULL,并将NULL与一个子代合并。这个子代被标记N=true,而其余子代被标记N=false。然后重复所述过程以实现进一步拆分。
[0693] 用于选择哪个节点用来合并NULL的准则是可配置的,但是可以是最小群体节点。
[0694] 这个过程确保仅一个最终群集(其应为数据集中列的一小部分)拥有可为NULL的值。因此,输出数据集是k匿名的,但是NULL的可能性被囊封在少量输出记录中,并且数据集整体上能够更容易分析。
[0695] 5.7保证L多样性
[0696] K匿名确保对于存在于数据中的准标识符的任何组合,存在至少k个共享相同组合的记录。这些记录形成大小至少为k的群集。匿名输出数据的这个特性降低经由记录链接重新识别的风险。
[0697] 然而,k匿名数据中还留有可能的隐私漏洞:对于含有例如医疗诊断、薪资、贷款或债务的敏感信息的列,匿名集合中的值可能多样性不足。在具有准标识符的相同集合的群集中的所有记录也全部准确地共享相同敏感值的情况下,恶意攻击者不需要唯一地识别数据主题以学习目标的敏感值。如果例如攻击者想要推断年龄为65的人的医疗诊断,并且匿名数据集中的大于60的所有记录被列出为患有癌症,则显然地,目标必定具有这种诊断。即使对手不能识别对应于目标的准确记录,但敏感信息已泄露。
[0698] 如果应用l多样性,则对于输出数据中的每个等价类,必须存在至少1个相异敏感值。在Publisher中,l多样性可针对所选择的敏感列的集合实现。敏感列中的数据可以是类别的或数值的。
[0699] 如果l多样性由用户启用,则Publisher关于l多样性检查子节点的每个可能集合,并且在拆分可通向非l多样性节点的情况下不进行拆分。
[0700] 5.7.1关于类别数据的L多样性
[0701] 如果用户所选择的敏感列含有类别标签,则输出数据中的每个群集将含有至少1个相异类标签。如果在自上而下拆分算法期间,下一个专用化步骤会违反这个条件,则即使仍可实现k,节点也不能被进一步拆分。
[0702] 5.7.2关于数值数据的L多样性和敏感属性披露保护
[0703] 如果用户所选择的敏感列含有数值数据(连续的或离散的),则可将值分条并编码为类别中例如描述薪资的非重叠类别,包括[>20k]、[20k-50k]、[51k-100k]、[>100k]的范围。用户规定直条的数目。此外,在输出数据中,因而确保至少L个相异的敏感类别以共享准标识符的组合的记录的每个群来表示。
[0704] 用于确保敏感的数值列的足够多样性的其他基于范围的机制可在Publisher中获得。
[0705] 第一,可实行每个群集中的敏感值的最小范围。举例来说,可要求每个匿名集合中的敏感值具有至少5,000的范围。
[0706] 为了说明高度偏斜的分布,可基于百分之十和百分之九十的数据值而非基于绝对范围来计算所述值范围。这考虑敏感属性中的异常值可能泄露敏感信息。
[0707] 提供的另一选项基于敏感属性的累积分布函数(CDF)来计算每个群集中敏感值所需的最小范围。如果群集含有在范围(a,b)中的敏感值,则这个范围应覆盖以CDF为单位的最小范围,即敏感值的范围将被测量为(CDF-1(a),CDF-1(b))并且必须大于最小范围。
[0708] 用户可配置所有以上选项的最小范围,还可依据最适合选择为敏感的属性来选择准则的组合。
[0709] 除相异敏感值l的最小集合之外,还可在Publisher中配置c比。通过这个设定,可配置相异值的比。如果l多样性被打开,则在输出数据中,除最大类别以外的所有l-1类别的组合大小必须大于最大类别的大小除以c。需要正确地配置c比以防御推理的敏感属性披露。
[0710] 将以下各项视为使用c比的动机。我们假设含有布尔变量(boolean variable)的敏感列,对个人是否曾经在考试中作弊的问题的“是”或“否”回答。如果群集中的“是”和“否”的比例极不平衡,例如在年龄为[21-35]的所有男性的相同等价类中的99,999个“是”和1个“否”,则即使实现了l=2情况下的l多样性,恶意对手仍取得关于目标的敏感值的99,99%置信度
[0711] 5.8一般化位置数据
[0712] 5.8.1位置区域的一般化
[0713] 一般化邮政编码和国家等值存在特别的挑战。虽然地区或领地是类别变量,但是使用层次来管理一般化不仅不方便,而且过于严格(有时候,将领地A和B组合在一起,在其他时候组合B和C可能是有利的,但是层次不支持这种灵活性)。
[0714] 如图29中所示例,Publisher具有允许位置领地的自动一般化的位置一般化特征。第一,存在预处理步骤,所述预处理步骤分析地图的shapefile(输入时需要)并且产生平面图,在平面图中,节点是位置领地并且在领地邻接的情况下,节点之间存在边缘。然后这些图能由Publisher存储以供重复使用。一般领地地图的Shapefile(例如UK邮政编码)能够公开地获得。
[0715] 第二,在进行拆分时,Publisher寻找平面图中具有小于k个记录的节点,并将那些节点中的每一个与一个相邻节点合并(有两种模式:与人口最多的相邻节点合并,和与人口最少的相邻节点合并)。Publisher重复这个过程,直到所有节点满足k匿名。
[0716] 结果是相邻领地的小联盟形成,以满足k。在图29中的一般化后的领地地图旁边显示平面图表示。具有相同阴影的领地还可以被进一步合并。
[0717] 这个方法在存在不邻接任何其他领地的领地(例如岛)时碰到困难。为了解决这个问题,Publisher的预处理特征在岛与其最近的地理相邻领地之间形成“桥梁”。
[0718] 5.8.2物理上不邻近但具有另一相似性的地区的一般化
[0719] 当跨位置进行一般化时,可有用的是考虑除地理邻接以外的其他因素。举例来说,如果非常富裕的区域邻近非常穷的区域,则可能不希望组合这些区域。在这种情况下,将平均或中值收入用于图中的每个节点,并且构造所述节点之间的相似性度量。将这与距离组合以创建新的加权距离与相似性度量,从而允许根据邻近度和相似性两者来组合地区。根据分析中的用例,许多其他相似性测量是可能的,例如:区域的特性(城市中心、住宅区、农村)、存在著名场所(例如,宗教场所、交通设施、工作场所、医院、学校以及大学)、政治多数派、具有某个属性的居民的密度。这些测量可以各种方式组合,例如优先合并远离且相似、邻近且相似或邻近且不相似的地区。有时候希望组合不相似的地区以便实现组合后地区内的特征的多样性,且因此通过提供否认(deniability)来保护隐私。
[0720] 5.8.3防御位置一般化中的敏感属性披露
[0721] Publisher支持自动地一般化位置以确保所述位置不会披露任何敏感属性。为了做出这个保证,Publisher选取兴趣位置,也称作兴趣点(point of interest,POI)的用户提供列表。POI可以是医院、商店、办公楼、餐馆、酒吧、咖啡馆、学校、博物馆、运动场所等。Publisher可确保每个一般化的位置区域含有最小数目个POI。因为这个保证类似于l多样性,所以我们称这个最小数目为“l”。举例来说,如果“l=4”,则对手不能从公布的数据集分辨任何目标去往至少4个位置中的哪个位置。对手可能知道你靠近滑卢站(Waterloo station),但是他们不会知道你是否到过咖啡馆、蛋糕店、酒吧或同志酒吧。
[0722] 这个保证被实现为自动一般化过程中的另一停止条件。检查每个预期的子代区域以了解有多少POI位于那个区域内。
[0723] 5.9限定执行时间或提前停止
[0724] 算法从最一般化的阶层处的准标识符开始并逐步对所述准标识符专用化。结果,有可能使算法提前停止并输出更私有却分辨率较低的数据。这允许用户限定执行时间。
[0725] 用户可在系统在进行处理时发送停止信号到系统,从而取消与接下来的专用化相关的任何进行中计算并移到输出阶段。为了使用户容易决定其是否应提前停止,系统可报告算法所达到的当前专用化下的当前平均群集大小。
[0726] 5.10流或微批次数据
[0727] Publisher通常作为批处理来工作,但是可类似地保证流或批次或微批次数据上的k匿名和l多样性。微批次数据是流数据的近似,其中程序非常频繁地,例如每隔15秒,处理新到达的数据。在这个工作流中,Publisher通过数据流接受数据并在内部保持所述数据以在将数据公布到输出流之前处理数据。
[0728] 在处置流或微批次数据时的关键差异在于,在每个数据值必须被一般化的时间点,并非所有数据值都是已知的。因此,存在更久地保持记录的可能益处,这允许收集更多知识和更好的一般化。
[0729] Publisher支持可配置的“等待时间-实用性”参数,所述参数管理程序在公布记录之前要等待多久(以时间计)。当记录已被保持这个时间量时,算法工作如下:
[0730] 1.在由Publisher保持的记录当中找出形成最佳群集的k-1个其他记录。将最佳定义为最低总失真。可通过尝试k-1个其他记录的所有组合来识别最佳群集。替代地,可通过贪婪算法(greedy algorithm)来识别近似最佳群集,贪婪算法工作如下:从大小为1的由时间用尽的记录组成的群集开始;将所述记录添加到群集,这样产生具有最低总失真的新群集;继续这样地添加记录,直到达到大小为k的群集。
[0731] 2.测量记录的这个群集是否可以帮助总体一般化。为了进行测量,将每个记录在新群集中可具有的总失真与在现有群集当中被最佳地拆分的总失真进行比较。
[0732] 3.如果新群集的创建有帮助,则一般化并公布k个行。否则,找出用于时间用尽的记录的最佳现有群集,相应地一般化所述记录,并只公布这个记录。
[0733] 有关如何测量失真的信息,请参见以下章节。
[0734] 可在例如Spark Streaming(流)的流或微批次平台上实现这个过程。
[0735] 5.11向用户报告结果
[0736] Publisher的自动一般化输出数据的匿名拷贝,其中实现k匿名被保证。Publisher在成功完成的任务运行之后呈现多种数据失真测量,以及性能度量,例如一般化数据或检测到的坏行的数目所用的时间。
[0737] 5.11.1失真测量
[0738] 图30示出由Publisher显示的表,所述表含有对应于特定数据列的规则和失真。
[0739] Publisher计算数据失真的以下测量:
[0740] ●一般化数值列上的平均绝对误差。
[0741] ●一般化数值列上的信息丢失,等于一减去原始输入与一般化输出列之间的Pearson相关。
[0742] ●一般化类别列上的信息丢失,等于跨数据值的平均“一般化高度”。一般化高度是值结束所在的阶层中的层次的数目,通过叶节点与根节点之间的总距离归一化。举例来说,如果值“January”具有父“Winter”,“Winter”具有父“Any”—根节点,并且所述值被一般化到“Winter”,则这是50%一般化高度。
[0743] 两个信息丢失测量被限定在0与1之间并且以百分比向用户呈现。
[0744] 5.11.2失真直方图
[0745] 自动一般化算法通过分条和层次一般化对列进行变换。Publisher提供可视地评估由匿名化引入的变化的工具。对于数值列,示出匿名和原始的准识别属性的直方图。两个分布重叠,以使得用户可轻松比较所述准识别属性。
[0746] 然而,需要在所有处理点保护原始数据以防止统计披露。因此,保证所显示的直方图是k匿名的。Publisher通过对初始值的直方图应用k匿名保证:抑制具有小于k个成员的任何直条来保证这个要求。
[0747] 图31A和31B示出由Publisher显示的结果,其中分布在彼此之上重叠,并且其中初始数据直方图被示出为线,而一般化输出直方图被示出为灰色直条。
[0748] 5.11.3群集大小直方图
[0749] 准标识符的自动一般化产生大小不小于k的记录的群集。群集大小的均值、中值以及分布取决于数据的质量。如果输入数据分布稀疏,则许多记录需要一起分组在具有准识别列中的非常一般的值的大群集中。大群集大小提供对数据主题的更好隐私保护,但同时常常与准识别属性中的较高失真重合。
[0750] Publisher试着确定提供数据实用性与隐私之间的良好权衡的记录的聚类。用户可通过以使所得群集具有近似大小的方式配置优先列或k和l的值来调整隐私政策。没有针对群集大小的“最佳”分布的明确度量,但是用户可通过所提供的群集大小分布的可视化来评估一般化的结果,如图32所示。用较浅灰色示出的群集不符合最小群集大小阈值。
[0751] 5.11.4群集大小泡式图
[0752] 图33和34各自示出向最终用户显示的群集大小泡式图的实例。群集大小泡式图可视化输出中的群集的大小和计数。每个斑点对应于根据记录的准标识符值分组的记录的群集。泡泡的大小随每个群集的大小缩放。泡泡中的数字(在泡泡足够大以保持文本的情况下显示)是群集的大小。通过点击群集,用户可检查群集的准标识符值。以灰色示出的泡泡不符合最小群集大小。对于这些群,确保群集的值不被泄露。显示准属性的值的选项被禁用。
[0753] 这些图给出关于一般化将多少准标识符列专用化的概述。如果泡泡全部很小(在k与2*k之后),则那意味着一般化接近最佳化,并且输出将需要较少一般化,如图34所示。如果图解具有某些非常大的泡泡,则那意味着一般化离最佳较远,并且输出将需要较多一般化,如图33所示。
[0754] 6.原始数据的自动隐私分析和指导性政策设置
[0755] 本章节描述Publisher的用于自动地检测敏感、准识别或识别列的特征。这些特征允许程序帮助用户恰当地配置输入数据集的匿名化并且另外帮助识别要匿名化的新数据集。Publisher采用检测敏感、准识别或识别列的几个方法,包括使用元数据、测量与已知列的相关性以及使用机器学习。
[0756] Publisher有效率地组合敏感数据发现、政策管理和匿名化以增大每个的值。这在两个方向上操作:敏感数据发现通常,并且还通过政策和匿名化活动来通知,使得每个方面通过其他方面改进。
[0757] 1)基于数据和关于所述数据的元数据、以及政策管理用户活动和匿名化活动来识别并分类包括识别符、准识别符以及敏感值的敏感数据。这通过以下各项来进行:
[0758] ●分析通过以下各项通知的数据本身:
[0759] ○列中的数据记录的格式和结构;
[0760] ○数据集中的那个数据的分布的特性,例如,出生日期将遵循不同于上次登录日期的分布,准标识符通常将具有比唯一识别符低的基数;
[0761] ○数据出现所在的上下文,例如,电子商务交易数据集中的日期字段更可能是购买日期而不是生产日期,但是顾客表中的和地址其他主要信息一起存储的日期字段更可能是出生日期;
[0762] ○不同数据集之间的关系,例如,两个数据文件共享变量,从而允许链接那些数据集,由此改变隐私风险。作为实例,您可能具有三个文件,所述文件各自含有系统生成的唯一标识符(或令牌),和一个准标识符。每个文件本身可以是低风险的,这是因为单个准标识符不足以识别个体。然而,当通过标识符链接时,文件的组合造成更大的隐私风险。
[0763] ●分析关于变量的元数据:变量的名称、变量的来源、关于所述变量来自文件或来自外部元数据存储器的描述性数据、所述变量的更新日期、应用于所述数据的访问控制。
[0764] ●另外,从通过Privitar应用程序管理这个和类似数据的用户行为学习,即:
[0765] ○分析其他这种数据在其他隐私政策中已如何分类和处理-如果存在要求列进行令牌化的政策,则那是所述列是敏感列的强指示符;
[0766] ○通过隐私政策中对那个数据的分类,认为用户已指示的数据集与其他数据的相似性是敏感的。这更像是使用关于数据隐私的推荐来学习领域知识:由于用户判断类似您的数据的数据是敏感或识别的,因此更可能的是,您的数据是敏感或识别的;
[0767] ○读取元数据和自匿名化过程生成的数据沿袭信息,以便分辨敏感数据与相同结构的非常现实的匿名数据之间的差异。由于令牌化过程产生与所述原始字段在结构上相同的字段,并且一般化过程保持所述数据分布,因此匿名数据看上去很像原始敏感数据,并且数据已被匿名化的元数据记录是必需的。
[0768] ●一旦已发现准标识符,即通过评估数据的k分布来识别隐私风险。
[0769] ●评估隐私风险和数据敏感性通过匿名化降低的程度。
[0770] 这些信息片段可以汇编成到规则引擎或机器学习分类器的丰富输入。
[0771] 2)基于敏感数据的识别来指导政策管理
[0772] ●基于关于数据集得知的敏感度分类来提供默认政策配置,包括建议用于被识别为主标识符、准标识符或敏感字段的字段的适当动作(即所有以上动作)。
[0773] ●通过考虑用于这个数据的其他政策来通知政策配置。
[0774] ●通过考虑用于相似数据的其他政策来通知政策配置。
[0775] ●在政策冲突的情况下,警告所述用户方法的不一致性。
[0776] 6.1用于政策创建帮助的自动文件扫描
[0777] 当概要(Schema)是直接从数据对象提取时,或在符合现有概要的示例数据对象可用的情况下,Publisher可通过分析数据集本身的值而在针对概要的任何例子创建一般政策时提供帮助。
[0778] 为了帮助政策创建,Publisher编译并存储关于表格中的哪些列含有标识符、准识别属性和可能的敏感个人信息的元数据。然后这个信息可被呈现给创建政策的用户,以确保所有标识符、准标识符以及敏感列将根据政策被适当地处置。Publisher还评估所述列中的各种类型的风险(在下文详述),这些风险也是定义政策时的有用提示。
[0779] 在较低阶层,所收集的信息的种类包括属性名称、频繁出现的属性值、属性分布的平均值、方差以及偏度(二阶和三阶矩)、最小、最大和平均相关性,以及与其他属性和属性基数的链接。随时间收集这个信息。随着获得更多信息,所述信息能够用于基于存在的政策和新数据值与存储的元数据的相似性来自动地建议用于新遇到的数据的政策配置。在这种情况下,用户具有Publisher UI中的用于接受或拒绝所述建议的选项。
[0780] 给定数据集,对于每个表格中的每列,Publisher计算由列表示的属性是敏感的或直接或间接地含有数据主题的识别信息的概率。数据必须经过组织,以使得表格中的行对应于应免于重新识别的数据主题。
[0781] 所应用的过程是:
[0782] ●识别主标识符;
[0783] ●评估提议的准标识符;
[0784] ●识别敏感列;
[0785] ●评估具有辅助数据集注册的链接攻击风险;
[0786] ●评估识别风险;
[0787] ●评估敏感属性披露风险。
[0788] 在以下章节中描述这些过程。
[0789] 6.1.1主标识符的识别
[0790] Publisher测量列的基数。具有高基数、即接近行的总数的属性基数的那些列有可能是识别属性,这是因为那些列对每个数据主题而言是唯一的。
[0791] 第二,Publisher将列名与HIPAA常数的列表进行比较,以检测含有如以下各项等典型个人标识符的列:
[0792] ●NAME
[0793] ●GEOGRAPHIC_SUBDIVISION
[0794] ●DATE
[0795] ●TELEPHONE_NUMBER
[0796] ●FAX_NUMBER
[0797] ●EMAIL_ADDRESS
[0798] ●SOCIAL_SECURITY_NUMBER
[0799] ●MEDICAL_RECORD_NUMBER
[0800] ●HEALTH_PLAN_BENEFICIARY_NUMBER
[0801] ●ACCOUNT_NUMBER
[0802] ●CERTIFICATE_NUMBER
[0803] ●VEHICLE_IDENTIFIER
[0804] ●DEVICE_IDENTIFIER
[0805] ●URL
[0806] ●IP
[0807] ●BIOMETRIC_IDENTIFIER
[0808] ●PHOTOGRAPH
[0809] 为了匹配列名与模板标识符属性名称的所提供列表,计算两个字符串之间的Levenshtein距离。Publisher还考虑子字符串,使得,例如,发现“账户号码”类似于“当前账户号码”。
[0810] 第三,Publisher从标识符的先前已知源得到多个值,并且找出那些源与考虑中的新数据之间的相似性。关键源是已知含有标识符的Publisher令牌保险库的内容。第二源是数据集中的已被指派令牌化规则的其他列。如果新数据含有与标识符的已知列表的大量重叠,则新数据更可能是标识符本身。
[0811] Publisher计算一列与另一列之间的重叠:
[0812] ●使用Jaccard索引,这是列的交叉的基数除以列的结合的基数(在将列视为集合的情况下)。这个索引是明确的,但计算效率低。针对性能,Publisher可以使用“散列技巧(hashing trick)”来近似Jaccard索引,所述索引将每个值散列成值范围(例如,0到2^24-1),并且维持相同长度的位串,并且仅在将所述值中的一个散列到所述索引的情况下使位从0翻转到1。然后Publisher可使用两个位串的AND的popcount对两个位串的OR的popcount来高效地近似Jaccard距离。
[0813] ●通过计算列的交叉的基数除以两列中较小列的基数(再次在将列选作为集合的情况下)。类似地,Publisher可以使用所述散列技巧来近似这个基数,为了近似这个度量,Publisher选取两个位串的AND的popcount对两个位串的popcount中的较大位串。
[0814] 第四,Publisher使用一组表示一般格式的图案来识别如护照号码、电子邮件地址以及电话号码等标准标识符类型的存在。这些文本图案描述包括在Publisher内。所述图案可以实现为正则表达式或更复杂的“模糊”匹配方法。
[0815] 最后,针对等于标记为识别的其他列中的值的子字符串,Publisher扫描非结构化列(例如,日志文件、聊天/电子邮件消息、通话记录或联系人)。
[0816] Publisher可将这些度量中的任一个与阈值进行比较,以确定是否通知所述用户所述新列可能是识别列。
[0817] 6.1.2建议的准标识符的评估
[0818] Publisher将在扫描数据集之前评估一组由用户建议的可能准识别属性的隐私风险。
[0819] 用户应当基于以下准则来选择可能的候选者:
[0820] ●可从次要的辅助数据源获得数据集中所含的个体的属性的准确(或非常近似)值。
[0821] ●属性对于个体未必是唯一的,但是存在数据中所含的标签的变化。
[0822] Publisher提供UI,所述UI为用户提供足以作出关于准标识符的可能集合的正式选择的指导:
[0823] 1.鼓励用户选择已知经由可公开获得的信息链接到各个数据主题的所有列。
[0824] 2.将由Publisher自动获得的元数据用于突出显示如出生日期、年龄或邮政编码等已知的通常准识别信息的列。这将基于HIPAA名称和对数据值的文本图案(正则表达式等)的分析。
[0825] 由于准标识符的选择需要领域特定知识,因此这个任务在Publisher中不是完全自动化的,而是要提供清楚的指导和自动化建议。
[0826] 6.1.3敏感或准识别列的识别
[0827] 机器学习方法
[0828] Publisher支持识别敏感或准识别列的机器学习方法。Publisher使用传递通过系统的所有数据集的列名和值集合构造一组训练数据,并且根据所述训练数据是否被用户标记为“敏感”,且单独地,所述训练数据是否被用户标记为“准识别”而对所述训练数据加标签。Publisher可随机地对所述值集合子取样,以便限制训练集合的大小。
[0829] 然后,几个机器学习方法能够用于构建模型,所述模型可将未知列评分为敏感或非敏感(或类似地,准识别或非准识别)的。举例来说,可以使用以下特征:
[0830] ●相异值的数目。
[0831] ●数值的均值、中值、众数、最小值、最大值以及方差。
[0832] ●值的类型(十进制、整数、字符串、日期)。
[0833] ●列名。
[0834] ●列名的长度。
[0835] ●列名的n-gram(其中下划线被视为字之间的中断)。
[0836] ●数据集的熵。
[0837] 可能的训练算法包括以下各项:
[0838] ●以如下方式处置数值特征的支持向量机
[0839] ○对列类型进行独热编码。
[0840] ○省略列名。
[0841] ○省略列名的n-gram。
[0842] ●使用以下距离度量的最近邻居算法:
[0843] ○数值特征的差异。
[0844] ○字符串特征(例如列名)的Levenshtein差异。
[0845] ○字符串的集合的重叠元素的部分(例如列名的n-gram)或重叠元件的基数。
[0846] ●提升决策树。
[0847] 例如主成分分析(Principal Component Analysis,PCA)的特征维度降低算法也可用于在运行训练算法之前预处理所述特征。
[0848] 如果敏感对非敏感模型的输出评分高于某个阈值,则Publisher可提示用户,建议列可以是敏感列。针对准识别对非准识别模型,Publisher可进行相同处理。
[0849] 相关性方法
[0850] 还可经由与同一数据集中已被标记为准识别的其他列的高度相关性来检测敏感列。有关列间相关性检测的章节,请参见下文。
[0851] 元数据方法
[0852] 如果元数据存储器具有关于哪些列名或(表名,列名)对涉及敏感属性的配置信息,则Publisher可检索这个信息并且基于匹配的表名和列名来确定列是否敏感。
[0853] 用于非结构化列的子字符串方法
[0854] 对于等于标记为敏感的其他列中的值的子字符串,Publisher扫描非结构化列(例如,日志文件、聊天/电子邮件消息、通话记录或联系人)。
[0855] 6.1.4评估具有辅助数据集注册的链接攻击风险
[0856] Publisher支持通过维持公共数据集的数据库和在与公共数据集共享的供应数据集中查找列来检测准标识符。为了实现这个特征,必须向Publisher提供许多公共数据集(例如,公共住房记录或公共人口普查列表)。Publisher具有用于上传这些数据集的户。
[0857] 用户可以上传其已知与用户保持的数据集相关的数据集:例如,保持HR数据的公司可以上传公开可获得的LinkedIn数据的提取(例如,名称、职称和雇佣年数的数据提取)。另外,Privitar托管标准数据集的库,例如人口普查和住房注册数据集。Publisher可从Privitar的托管网站下载这些数据集。
[0858] 一旦Publisher具有所述数据集,Publisher即可进行列相似性测量(参见本章节的别处)以确定公共数据集中的列中的任一者是否类似于被匿名化的数据集中的列。如果存在尚未被标记为准识别的类似列,用户可得到提示以检查所述列是否是准识别的。可为用户提供到相关公共数据集的链接。
[0859] 这个过程可在匿名化之前在政策设置阶段中进行。替代地,这个过程可以追溯方式进行。使用关于公布的数据集所维持的元数据,Publisher可周期性地扫描公布文件以确定文件的非准列是否可链接到公共数据集。
[0860] 在新数据集变得可公共获得的情况下,追溯模式(retrospective mode)有用。可将数据集上传到Publisher,然后可扫描现有的公布数据集,以确定数据集是否已面临从新的公共源链接的风险。
[0861] 6.1.5评估原始数据中的识别风险
[0862] 一旦准属性的可能集合已在Publisher中表示,进行扫描以聚集记录,并报告在数据集中发现的最小群集大小k,以及原始数据集的平均、中值、最小或最大群集大小。Publisher还可显示群集大小的隐私保持直方图。给定所选择的准标识符,这些是针对输入数据集固有的隐私风险的有用测量。
[0863] 重新识别数据集中的记录的概率可测量为1除以这个记录的群集大小。将重新识别的最大风险报告为1比最小群集大小,并且将平均风险报告为1比平均群集大小。Publisher也报告这些值。
[0864] 6.1.6评估原始数据中的敏感属性披露风险
[0865] 一旦准识别和敏感属性的可能集合已在Publisher中表示,敏感属性披露的风险将通过计算当所有记录由于其准标识符组合而聚集时的每个敏感属性的最小l多样性来评估。
[0866] 数据集中的记录的敏感属性披露的概率给出为1除以相同等价类中的相异敏感值的数目。将敏感属性披露的最大风险报告为1比最小l多样性。敏感属性披露的平均风险被给出为1比在全部准标识符群集上平均的相比敏敏感值的平均数目。Publisher报告这些值。
[0867] 6.2结构化和非结构化外部数据集中的敏感数据发现
[0868] 本文档中所描述的技术也用于Publisher针对“敏感数据发现”的特征中。这意味着检测Hadoop群集中的大量文件,和分析所述文件以如本文件中所描述地识别其中哪些文件含有标识符、准标识符、敏感值以及风险类型。所述实现技术类似于本文档中在别处概述的技术,例如将令牌保险库用作标识符或准标识符的实例的源。
[0869] Publisher分析结构化和非结构化文件。如本文中所描述地处理结构化文档,即,选作列的集合。
[0870] 针对作为已知标识符、已知敏感值或具有与那些类似的文本图案的子字符串,扫描非结构化文件(例如,日志文件、聊天/电子邮件消息、通话记录或联系人)(有关更多信息,请参见章节“主标识符的识别”)。
[0871] 一旦已识别这类问题,Publisher视发现的对象而建议适当动作。这些动作包括在恰当位置用令牌替换标识符;删除数据;加强访问限制;以及创建数据的安全(掩蔽、令牌化或一般化)拷贝。
[0872] Publisher保持含有每个文件的所发现问题的数据库。通过计划扫描或响应于由群集本身生成的文件更新时间来更新数据库。
[0873] Publisher使用总结可视化向用户传达群集的总体“隐私健康(privacy health)”,其中隐私健康涉及对群集中的数据对象的分类的概述,分类例如:
[0874] ●未被扫描,
[0875] ●扫描发现风险,
[0876] ●扫描未发现风险,以及
[0877] ●安全(意味着应用了显式保护的对象,例如Publisher任务的输出)。
[0878] 群集的隐私健康是具有这些分类中的每一者的数据对象的比例。
[0879] 图35A、35B和35C描绘这类可视化。图35A将文件示出为彼此紧接的条,其中条的宽度是文件的大小,并且条的颜色是文件的隐私状态。特殊地标记Privitar已经输出的文件,因为这些文件具有较低的隐私风险。图35B示出类似图解,但针对许多Hadoop群集,每个已被扫描的群集具有一个阶层的图解,并且相同隐私状态的所有文件被分组在一起。图35C示出在两个时间点之间的群集中的隐私风险的差异。
[0880] 从可视化,可对显示的对象调用动作。在用户选择通过创建安全拷贝来解决问题的情况下,用户可直接地转移到Publisher UI,在其中创建部分预先填充的配置以准备使用。一旦结束,任务即用与任何Publisher任务相同的方式运行。
[0881] 6.3异常值检测
[0882] 重异常值的统计披露的风险明显高于平均数据主题。异常值是数据集中的记录,其准标识符值与其他观察的偏差很大,因而异常值是唯一的,因此容易检测。
[0883] 此外,经由一般化的匿名化在尝试一般化异常值的准属性以将记录与数据集中的其他记录分组时将高得多的失真引入到数据中。
[0884] 如果例如,准标识符年龄遵循具有均值40和标准偏差10的正态分布,并且数据集中的一个人年龄是102,则所述人具有在原始数据集中重新识别的高风险,并且一般化算法需要使属性值大量失真以找出这个值合适的最近年龄类别并且在输出数据集中实现k匿名。
[0885] Publisher对数据集的分析包括通过如卡方统计测试和基于偏差的方法等非监管异常值检测技术进行异常值检测,以突出显示异常值记录并且询问用户其是否想要抑制这些记录。请注意,所述异常值检测仅对所述表格的所述准标识符和敏感列运行,其他列不包括在异常值分析中。
[0886] 6.4相关性检测
[0887] Publisher测量列之间的Pearson相关。然而,当用户将列标记为准识别列并且存在与所述列高度相关的另一列时,Publisher可以提示用户询问这个另一列是否也是准识别列。
[0888] 为了确定非空数值列的相关性,我们将计算pearson相关系数(PCC)。如果列含有空值,则我们将计算介于0与1之间的pearson相关(分别针对空或非空),并且还计算非空值的PCC。对于类别列,用户可提供排序,使得可导出数值表示。在排序不能确定的情况下,产品将使用ANOVA以确定序数列与标称列之间的相关性,和标称对标称列的χ2。对于这个分析,不考虑高基数标称列。
[0889] 7.用例
[0890] 本章节描述组织可使用Publisher保护其敏感数据的方式。
[0891] 7.1匿名化用于开发和检验的数据
[0892] 许多组织具有对其敏感数据集运行的内部处理。如同任何软件,这些内部处理频繁地改变,并且在所述内部处理改变时必须经过检验以避免碰撞和错误。开发者可使用实际敏感数据来检验其系统,但是这样招致隐私风险,因为所述使用涉及创建敏感数据的新拷贝和将新拷贝提供给更多个人。在与开发者共享这个数据之前掩蔽、一般化或扰动所述数据提供对隐私泄密的一层防御,同时保持数据对检测的实用性。特别地,组织可使用Publisher以:
[0893] ●用匹配规范的随机整数替换ID列。
[0894] ●用来自查找列表的随机选择的名称替换名称。
[0895] ●用看上去像电子邮件地址的字符串替换电子邮件地址。
[0896] ●将数值一般化成10的直条。
[0897] 7.2匿名化用于内部数据科学小组的数据
[0898] 许多组织具有希望训练用于商业用途的预测性模型的数据科学小组。有时候,用于模型训练的基本数据是敏感数据。如上,数据科学家可训练原始数据的模型,但是这可招致隐私风险。组织可使用Publisher的自动一般化特征以创建尽可能多地保持所述组织想要模型化的变量的实用性的数据集。
[0899] 举例来说,认为组织拥有历史抵押数据,所述数据包括关于借款人的一些顾客信息(例如年龄、家庭地区)和客户最终是否违约。组织可配置Publisher以将顾客信息列视为准识别,而将默认列视为兴趣。组织还能够规定k的值。Publisher的autogen可自动地将顾客信息列一般化到实现k匿名的点。所得数据集保持关于顾客信息与默认状态之间的关系的有用信息,但抵抗重新识别。因此,所述信息可被提供到数据科学家,数据科学家可使用所述信息训练有用模型,但不能重新识别数据集中的人,并发现人们是否违反抵押。
[0900] 7.3从许多相关方收集数据并将所述数据分享回去
[0901] 信任度有限的许多相关方希望协调并积存其数据,以便相对于同级者检测,跨越扇区或简单地跨越较大规模的统计数据执行聚集分析以实现更详细分析。各相关方希望享受访问完整数据集的益处,而不希望揭露其自身数据的敏感元素。
[0902] Privitar通过使得中心聚集器能够从各相关方收集数据,然后以隐私保持方式使积存的数据集可供各相关方使用来实现此安全积存。在各相关方的数据含有关于共同个体或实体的信息的情况下,SecureLink遗忘匹配可以用于联结这些记录而不揭露敏感标识符。
[0903] 通过用Privitar Publisher将原始数据匿名化和共享匿名拷贝,或通过经由差分隐私查询界面暴露聚集数据,积存的数据可以私有地共享。贡献者能够将其自身的原始数据与积存的数据进行比较,这在执行基准化时有用,但是必须防止各贡献者学习关于另一相关方的敏感数据,通过例如从积存的数据集减去其自身的数据。提供聚集和一般化以及差分隐私的Prvitar工具防止此情况。
[0904] 7.4评估数据湖中的隐私风险
[0905] 许多组织具有存在成千到上万个表格的巨大数据湖。组织需要定期地评估其数据以确认其安全和隐私协议在工作中。然而,每个表格的手动查阅容易出错并且效率低。
[0906] 组织可使用Publisher以扫描数据湖中的文件并检测哪些列具有表现为敏感、识别或准识别的列。然后,组织可使用这个信息来讯息具有隐私风险的数据。使用Publisher的自动扫描能力允许组织以更快并且更综合的方式查阅其数据。
[0907] 举例来说,电信公司的雇员复制一组顾客地理定位痕迹。所述雇员将这个拷贝放在不常用目录中,然后离开公司,因而文件被遗忘。当安全小组使用Publisher针对隐私风险扫描数据湖时,安全小组检测到文件具有标识符(用户ID)和看上去敏感的数据(位置痕迹)。安全小组关于这个文件警告用户,然后安全小组可删除这个文件。
[0908] Publisher还识别在隔离时各自具有低隐私风险,但在组合后有高风险的文件的集合。举例来说,各自含有随机或系统生成的唯一标识符和准标识符的三个文件在隔离时相对安全。然而,如果记录根据系统生成的标识符而结合,则即使标识符无意义,记录中的一些或全部可经由准标识符的组合而变得可识别。
[0909] 附录1
[0910] LENS算法和跟踪器攻击的实例
[0911] A:用于规定分辨率特征的计算
[0912] ●程序描述:置信区间对ε(epsilon)
[0913] Lens的有噪声结果使用来自以0为中心的拉普拉斯分布的噪声。为了计算噪声的幅度,需要参数“epsilon”,其表示花费的隐私预算的量。更多预算意味着更少噪声。
[0914] 输入:
[0915] CONFIDENCE–在0与1之间浮动,表示概率,其中1是100%概率。
[0916] INTERVAL–置信区间的从中心到末端的距离。举例来说,如果您想要+/-10,则置信区间是值10(不是20)。
[0917] RANGE–连续变量的范围(对于和与平均值)。
[0918] 计算
[0919] scaleFromConfidenceInterval()是使用拉普拉斯或高斯分布的CDF等式(取决于将使用什么分布来添加噪声)以找出以0为中心的分布的规模的简单方法,以使得从分布取样的数字是在+/-INTERVAL内的CONFIDENCE概率。
[0920] 视Epsilon是否为COUNT、SUM或AVERAGE查询而定,以不同方式计算Epsilon。
[0921] COUNT:
[0922] scale:=scaleFromConfidenceInterval(CONFIDENCE,INTERVAL)
[0923] epslion:=1/scale
[0924] SUM:
[0925] scale:=scaleFromConfidenceInterval(CONFIDENCE,INTERVAL)
[0926] epsilon:=RANGE/scale
[0927] AVERAGE:
[0928] 注释:平均值造成困难。因为平均值被计算为NoisySum()/Count(),所以结果的噪度等效于和除以计数的噪度。然而,计数不是公共知识,并且可能泄漏隐私。因此我们要做的是取得对计数的大致估计,以便用于进一步计算中。这是近似计算。
[0929] noisycount:=具有相同筛选子句和经硬编码的epsilon的计数查询的结果(举例来说,0.1,但是可配置。这个epsilon是平均值查询所需的额外附加预算)。
[0930] If noisycount<5(5是硬编码阈值-可配置):fail,说明查询由于样本过少而不能完成。
[0931] scale:=scaleFromConfidenceInterval(CONFIDENCE,INTERVAL)
[0932] epsilon:=RANGE/(scale*noisycount)
[0933] 输出:
[0934] Epsilon或fail
[0935] ●程序描述:%准确度对epsilon
[0936] 描述:用以允许用户规定“想要我的答案在1%准确度内”的特征,这意味着(直到某个概率)有噪声应答在+/-X内,其中X是1%的真应答。实例:用户在1%准确度内要求应答。真应答是100。我们预期(直到某个概率)应答应在99与101之间。
[0937] 输入:
[0938] CONFIDENCE-在0与1之间浮动,1是最机密的。
[0939] INTERVAL_PROPORTION-浮动接近0。将真应答的部分用作置信区间。
[0940] RANGE-连续变量的范围(用于求和与求平均)。
[0941] 计算
[0942] 注释:因为转换取决于真应答(秘密),所以我们留下鸡-蛋(chicken-and-egg)问题:我们需要所述应答的差分隐私版本来进行所述转换,从而知道获得所述应答要花费多少。我们通过从epsilon的硬编(例如0.1)码量开始解决这个问题。
[0943] noisyanswer:=具有以0.1硬编码的epsilon的查询的有噪声应答的结果(这是所需的额外附加预算)。
[0944] if noisyanswer==0:fail-说明查询由于真应答0而不能完成,并且建议改为使用置信区间特征。
[0945] interval:=abs(noisyanswer*INTERVAL_PROPORTION)
[0946] epsilon:=跟随"Confidence interval to epsilon"程序,以(CONFIDENCE,interval,RANGE)作为输入。N.B.对于平均值查询,这花费额外的0.1预算。
[0947] 输出
[0948] Epsilon或fail
[0949] B:Python代码查询的实例
[0950]
[0951]
[0952] C:跟踪器攻击的实例
[0953] 停止跟踪器攻击是Lens的中心特征。以下跟踪器攻击实例从InfoQ.com(https://www.infoq.com/articles/differential-privacy-intro)上的文章“An Introduction to Differential Privacy”获得。考虑聚集查询:
[0954] “SELECT AVG(salary)WHERE name=‘Troy Brown’;”。
[0955] 这个查询可以进行对一个记录求平均(我们假设仅存在一个Troy Brown),且因此从数据集检索个别值并泄密个体隐私。
[0956] 对这些查询的初始防御是最小查询集合大小。最小查询集合大小是设法确保聚集查询不会泄漏关于个体的信息的约束。给定某个配置的阈值数目T,所述数目确保对一组至少T个记录进行每个聚集查询。最小查询集合大小可以是以少于T个个体为目标的块聚集查询。举例来说,如果T=2,则所述数目将阻断上面的查询。
[0957] 使用最小查询集合大小防止某些攻击,但并不带来隐私保证,而且在实践中可被熟练攻击者绕过。可不管最小查询集合大小而继续进行的攻击被称作跟踪器攻击。举例来说,攻击者可利用以下的查询集合完成以上攻击,所述攻击是跟踪器攻击:
[0958] “SELECT SUM(salary);”.
[0959] “SELECT SUM(salary)WHERE name!=‘Troy Brown’;”.
[0960] 或甚至,如果我们知道Troy Brown的年龄(45)和位置(WR),则唯一地识别他,这组查询亦为跟踪器攻击:
[0961] “SELECT SUM(salary)WHERE position=‘WR’;”.
[0962] “SELECT SUM(salary)WHERE position=‘WR’AND age!=45;
[0963] 上文所表明的这些跟踪器攻击中的每一个可用于经由聚集查询界面破坏个体的隐私。
[0964] 附录2
[0965] 关键概念和特征的概述
[0966] 专利说明书的这个附录2章节是在Privitar系统中实现的关键概念和特征的概述。
[0967] 如上所述,Privitar系统将围绕三种核心技术进行组织,并且此附录2被组织成三个章节,每种技术一章:
[0968] 章节I.Privitar Publisher:扫描数据集以识别敏感数据或识别数据集,并且通过处理所述数据以产生安全拷贝来实现敏感或识别数据集的匿名化。
[0969] 章节II.Privitar Lens:阻止对原始数据集的访问,但允许隐私保持聚集查询和计算,并且使用差分隐私算法来降低或防止敏感信息的识别或披露的风险。
[0970] 章节III.Privitar Securelink:相对一般标识符(例如社会保障号码)联结数据的方式,同时保护所述一般标识符并确保所述一般标识符在匹配过程或所得的结合数据集中不被揭露。然后可以使用Privitar Publisher对所述结合数据集匿名化,或使用Privitar Lens使所述结合数据集可供隐私保持分析使用。
[0971] Privitar的所有方面可在完全可缩放的计算构架中实现。
[0972] 请注意,不同概念或方法和特征可以彼此组合。为简单起见,我们已将特征组织为与特定较高阶层的特征或概念相关;然而,这通常只是优选实现方案,并且本领域的技术人员将了解,特征不应解释为限于其中特征被引入,但可以独立地部署在整个Privitar系统中的特定上下文。
[0973] 作为一般点,每个高阶层概念或方法是非抽象的,并且系连到基于计算机的系统的限定硬件。此外,每个概念或方法或较低阶层特征可与所有其他概念、方法或较低阶层特征组合,概念或方法或较低阶层特征的基本不兼容性对具有本领域一般技术的读者显而易见的情况除外。
[0974] 还应注意,此附录2的目的是将整个Privitar平台的所有核心概念或方法和特征集中在一个章节中,以使得读者能够高效整体地理解Privitar平台。然而,发明或创新的范围由附加的权利要求书确定,如适用法律所解释。因此,包括在此附录2内或从此附录2排除应被视为Privitar平台的可取得专利的创新或发明概念和特征的确定指示。
[0975] 附录2
[0976] 章节I:PRIVITAR PUBLISHER
[0977] 关键概念和特征
[0978] 本章节A将Privitar Publisher的关键概念和特征组织如下:
[0979] A.政策
[0980] B.令牌化(包括令牌生成和模糊化)
[0981] C.一般化
[0982] D.原始数据的自动隐私分析和指导性政策设置
[0983] Privitar Publisher扫描数据集以识别敏感数据或识别数据集,并且通过处理所述数据以产生安全拷贝来实现敏感或识别数据集的匿名化。
[0984] A.1政策
[0985] 我们可将核心政策方法一般化为一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得隐私在所述导出数据集中得以保持,其中所述系统:
[0986] (a)生成一组规则,所述规则定义待应用于敏感或个人数据对象的隐私保护;
[0987] (b)使如隐私官等用户能够定义策略,所述政策是应用于一个或多个数据对象的一个或多个特定规则;
[0988] (c)使用户能够接着选择应用于特定数据对象的政策;并且
[0989] (d)执行所述政策并且将所述政策应用于特定数据对象。
[0990] A.2任选政策特征包括以下各项:
[0991] ●在可缩放分布式系统中实现所述方法。
[0992] ●经由中央管理系统来定义政策。
[0993] ●规则能够跨越不同政策再使用。
[0994] ●每个规则囊括将对所述敏感数据集的输入数据列中的一个或多个执行的单个操作。
[0995] ●一些规则是编写或掩盖下层输入值的“掩蔽”规则。
[0996] ●一些规则是用代替实际数据值的生成令牌替换所述下层输入值的“令牌化”规则。
[0997] ●一些规则是降低所述下层输入值的精度的“一般化”规则。
[0998] ●一些规则支持将数字水印包括在所述匿名数据中的“加水印”。
[0999] ●编码到所述匿名数据中的所述数字水印是数字或ID的已知概率分布。
[1000] ●根据不同用例或用途的要求来选择不同政策。
[1001] ●数据对象是具有多个行和列的表格。
[1002] ●政策包括作用于或应用于表格中的一或多列的一个或多个特定规则;
[1003] ●所述系统存储许多政策和/或概要的配置。
[1004] ●所述配置包括:如所述用户的角色等用户信息、每个数据对象的概要以及关于由所述用户创建的每个政策的信息。
[1005] ●所述系统存储审计日志,所述审计日志包括由用户创建的每个配置对象和所述配置的任何变化或更新。
[1006] ●将政策设计成捕捉标准化格式的法规和/或道德隐私控制。
[1007] ●系统支持具有针对同一概要的不同使用的多个政策,
[1008] ●可通过使用兼容性政策来匿名化或以其他方式隐私保护符合给定概要的任何数据对象。
[1009] ●多个政策可变换同一概要以允许针对可能需要不同匿名化处理的不同下游顾客对输出进行自定义。
[1010] ●政策是坚持充当与之兼容的用于数据处理的标准的配置对象。
[1011] ●政策囊括对多个数据对象的处理随时间的再现性。
[1012] ●政策可再使用以给予不同用例之间的一致性。
[1013] ●不同政策再使用相同规则中的一些规则,以给予不同但相关的用例之间的一致性。
[1014] ●政策提供单个的管理、查阅以及报告点。
[1015] ●以集中方式来描述、管理以及创建政策,以经由单个用户友好界面为组织的隐私官提供以下各项中的一个或多个:哪些数据受保护和所用的方法的单独概述;添加新数据源的能力;将已经在组织中标准化的保护措施应用于多个数据源的能力;以集中式方式管理对整体配置的访问控制的能力;以一致的方式再使用现有令牌,以允许新数据结合或附加到已经处理过的数据的能力,包括如夜间数据加载等重复分批过程。
[1016] ●系统在处理数据对象时将规则应用于列的每个值以实现政策。
[1017] ●所述系统存储与关于以下各项的信息相关的元数据:已经运行的任务、经过处理的行的数目、应用于每列的所述规则以及所述列如何被扰动。
[1018] ●任务涉及政策、环境以及与政策的概要兼容的数据对象。
[1019] ●任务可自动地运行或在计划时间运行。
[1020] ●任务可运行一次以上,例如当更新政策时和/或当更新数据对象时。
[1021] ●可通过用户界面来监控任务的进度。
[1022] ●对于静止文件,所述系统将分布式计算过程提交到分布式存储或计算环境或群集计算框架,例如Apache Spark,因而利用所述环境或群集的并行处理能力以将规则应用于分布在极大输入数据上的列。
[1023] ●对于流源,Publisher使用适当消息管道中的变换代理,以在消息的分量经由所述管道处理时对所述分量进行由政策的规则描述的所述变换
[1024] ●由所述系统应用的隐私保护可一致,以使得每当在处理给定原始输入值时,应用给定政策始终产生相同的输出令牌,即使是在后续再运行中或在处理不同的数据对象时。
[1025] ●由所述系统应用的隐私保护可不一致,以使得每当在处理给定原始输入值时,应用给定政策可以产生不同的输出令牌,即使是在后续再运行中或当处理相同对象时。
[1026] ●规则被存储在一个或多个规则库中并且从所述一个或多个规则库共享。
[1027] ●在定义新政策时,所述系统通过给可疑的所述数据源加上从外部元数据存储器获得的总结信息注释来帮助所述隐私官确定哪些规则将应用于数据对象,包括以下各项中的一个或多个:数据类型、数据分类、数据是否为识别的、数据是否为准识别的、敏感度、可见性/准许的受众、风险/暴露估计值、数据有效期以及访问控制要求。
[1028] ●所述系统将针对不同类型的配置活动的访问许可分离成确定每个用户可以执行的动作的角色。
[1029] ●所述角色及其相关联责任是以下各项中的一个或多个:(i)管理员;用于配置系统设置以及创建并编辑概要;(ii)作者,用于创建并编辑政策和任务;(iii)操作员,用于执行任务;(iv)调查者,用于执行反向令牌查找;(v)系统用户,用于经由API调用来调用任务和其他操作。
[1030] ●在泄密的情况下,以及对于其他调查,所述系统通过允许识别用于生成特定输出数据对象的所述政策来支持所述过程,所述识别通过保持对所述政策的配置对象作出的改变的日志实现,使得当调查者需要确定哪个政策在文件产生时起作用时,可恢复相关的任务和政策。
[1031] ●所述系统从分类系统获得规范,并且使用那个规范来选择适用的政策或规则。
[1032] ●视定义数据敏感性或隐私的不同阶层的外部分类而定,将策略应用于数据对象。
[1033] ●所述从所述数据对象提取元数据,并且
[1034] (a)接受数据对象作为输入;
[1035] (b)从元数据存储器查找所述数据对象元数据,并且所述系统传回所述数据对象的描述,所述描述包括每列的性质,例如数据类型、敏感性和/或受众;
[1036] (c)转而使用所述传回的描述来寻找用于每列的兼容规则;
[1037] (d)将所述兼容规则传回到所述用户,所述用户可反过来检验、选择或编辑所述兼容规则,或根据不同用例或用途的所述要求来定义新规则。
[1038] A.3具有更大共性的一些另外特征:
[1039] ●所述系统对表格数据集进行操作,包括具有每行的变量数目或一些行的一些列的遗漏值的表格数据集。
[1040] ●所述系统对保持空白和/或遗漏值的表格数据集进行操作。
[1041] ●所述系统与分布式存储与计算环境整合。
[1042] ●所述系统被安装在“边缘节点”上,所述边缘节点意味着不是群集节点中的一个,但是和所述群集在同一网络上并且可通过网络界面与所述群集互动的主机。
[1043] ●概要在Publisher中被模型化为一组已命名表格,每个已命名表格由值的一组命名列组成。
[1044] ●数据集支持以下数据类型中的一个或多个:字符串、数值数据、日期或如阵列或地图等复杂结构。
[1045] ●所述系统将如阵列或地图等所述复杂结构转换成一组普通列。
[1046] ●在地图情况下,通过根据可能密钥创建一列。
[1047] ●在阵列情况下,通过根据阵列中的索引创建一列。
[1048] 以上特征各自是任选的,并且可以对本领域的技术人员显而易见的方式彼此自由地组合;这种方法同样适用于本说明书的其余部分中的概念、方法以及特征的列举列表。
[1049] 另一方面是一种云计算构架,所述云计算架构实现上文定义的所述计算机实现的方法和特征。
[1050] B.1令牌化
[1051] 令牌化涉及令牌生成,并且还涉及模糊化;模糊化是数据中的原始值被令牌替换。Privitar Publisher的令牌化过程的一些关键优点包括以下各项:
[1052] ●中心政策管理
[1053] ●较容易管理跨数据集的一致令牌化
[1054] ●分布式系统中的可缩放执行
[1055] B.2令牌生成
[1056] 我们将核心令牌生成方法一般化为一种方法,其中基于计算机的系统实现针对包括分离节点的分布式存储与计算环境或群集中的大数据集的一致令牌化,其中一致令牌化包括令牌生成阶段和模糊化阶段,并且其中令牌生成为每个相异输入值创建唯一令牌,所述方法包括以下步骤:
[1057] (a)生成用代替实际数据值的生成令牌替换所述下层输入值的一组“令牌化”规则;
[1058] (b)使得如隐私官等用户能够定义政策,所述政策包括应用于一个或多个数据列的一个或多个特定令牌化规则;
[1059] (c)使得用户能够然后选择应用于特定数据对象的政策;以及
[1060] (d)对特定的数据对象执行所述政策。
[1061] 令牌生成的任选特征:
[1062] ●输入文件和令牌保险库均被拆分到多个节点上;所述方法因而包括以下令牌生成步骤:
[1063] (i)节点废弃先前已被令牌化的任何重复输入值;然后
[1064] (ii)在每个节点处,生成随机令牌并将其指派给每个未废弃的输入值;
[1065] (iii)在每个节点处,将所述输入值和保险库值映射“反转”并且围绕所述群集混洗所述映射以根据令牌对所述映射分组;
[1066] (iv)在每个节点处,对于具有映射到令牌的单个输入值的每个令牌,这次配对结束并且被留存到令牌保险库中;
[1067] (v)检查所有所述节点,并且对于具有映射到令牌的多于一个输入值的每个令牌,然后为赢家指派那些输入值中的一个,所述令牌与所述赢家的配对被留存到所述令牌保险库,并且对未被指派令牌的所述输入值重复步骤(ii)到(vi),直到每个相异输入值被指派唯一令牌。
[1068] ●上文定义的所述令牌生成过程可与上文定义的所述模糊化过程组合。
[1069] B.3模糊化
[1070] 我们将模糊化方法一般化为一种方法,其中基于计算机的系统实现针对分布式存储与计算环境或群集中的大数据集的一致性令牌化,其中令牌保险库被用于用包括分离节点的群集中的令牌替换输入值;其中一致令牌化包括令牌生成阶段和模糊化阶段,所述方法包括以下模糊化步骤:
[1071] (i)每个节点确定存在于输入文件的节点部分上的相异值的集合;
[1072] (ii)每个节点从每个相异值创建由所述值和节点ID组成的对;
[1073] (iii)混洗来自步骤(ii)的(值,id)对和来自所述令牌保险库的(值,令牌)对,使得具有相同值的元素驻存存在同一节点上;
[1074] (iv)每个节点通过附加根据所述组的(值,令牌)对中的所述值所映射到的所述令牌而从每个(值,id)对创建(值,id,令牌)元组,从而产生一组(值,id,令牌)元组;
[1075] (v)将每个(值,id,令牌)元组混洗到对应于元组的id值的节点;
[1076] (vi)每个节点使用其具有的所述(值,id,令牌)元组以处理初始文件并用令牌替换值。
[1077] 任选特征:(这些特征适用于令牌生成和模糊化两者)
[1078] ●跨越不同数据集一致性地应用令牌化。
[1079] ●所述方法可缩放并且在可缩放分布式系统中实现。
[1080] ●每个相异的下层输入值映射到仅一个唯一的生成令牌。
[1081] ●所述数据集过大而不能将所述输入的全部内容或所述保险库或映射表的全部内容保持在单个主机上的存储器中,因此需要分布式存储与计算环境。
[1082] ●令牌保险库存储定义待应用于敏感或个人数据列的所述隐私保护的规则的数据。
[1083] ●最终用户定义政策,所述政策是应用于一个或多个数据对象的一个或多个特定规则。
[1084] ●令牌化包括添加数字水印到所述被令牌化的列值。
[1085] B.4衍生令牌化
[1086] 我们将在说明书中先前已描述为“导出”令牌化的特定令牌化过程一般化成一种实现针对包括分离节点的分布式存储与计算环境或群集中的大数据集的一致令牌化的方法,其中令牌化用生成的令牌替换下层输入值,并且输入文件和令牌保险库均被拆分到多个节点上;
[1087] 所述方法包括以下步骤:(i)使用将从给定输入值衍生的值作为种子的伪随机数生成器(PRNG)生成用于所述输入值的所述令牌。
[1088] 任选特征:
[1089] ●每个相异的下层输入值映射到仅一个唯一的生成令牌。
[1090] ●所述随机数生成器通过以下操作将从所述输入值导出的值作为种子:(i)使用例如来自所述顾客的KMS的密钥对所述输入值加密;(ii)将所得密文分解成多个N字节块并将所述块一起进行XOR,从而产生被用作所述PRNG的所述种子的最终N字节块,其中N是播种所述PRNG所需的字节的数目;(iii)使用所述规则的所述标识符(例如,通过将所述标识符与自身连接,直到所述标识符达到合适大小)导出用于加密密码的初始化向量,使得出现在不同规则中的相同输入值将产生不同种子。
[1091] ●除所述保险库外,还维持单独的“碰撞”映射。
[1092] ●如果两个不同输入生成导致产生相同令牌的种子,则将所述两个不同输入中的一个添加到所述碰撞映射并使用非种子PRNG为所述输入指派非导出值。
[1093] ●这个碰撞映射被完整地发送到每个节点。
[1094] ●每个节点在为输入请求令牌时咨询这个映射:如果所述输入出现在所述映射中,则传回来自所述映射的所述令牌;否则,使用所述密文种子化的PRNG来导出令牌。
[1095] ●所述整个碰撞映射在所述模糊化过程期间被发送到每个节点,并且每个节点可独立地处理其数据,不需要围绕所述群集混洗数据。
[1096] ●所述PRNG用于创建随机令牌的随机化算法中,所述随机化算法例如从预定义列表选择随机元素的过程。
[1097] ●所述方法可缩放并且在可缩放分布式系统中实现。
[1098] ●令牌化包括添加数字水印到所述被令牌化的列。
[1099] C.1一般化
[1100] Privitar Publisher可以执行统计一般化以实现k匿名和l多样性,同时提供每个经变换的准标识符的失真的可见性和对失真的细粒度控制,允许将方法调谐到针对特定用途将数据集的实用性最大化。
[1101] C.2我们可将此重申为一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化通过变换数据表中的列来实现,以使得所述导出数据集达到所需阶层的k匿名和l多样性;
[1102] (a)其中所述系统接受关于哪些列要一般化(“准识别列”)的配置信息,并且(b)其中选择所述配置信息以根据不同用例或用途的所述要求来最佳化所述导出数据集的实用性。
[1103] 任选特征:
[1104] ●用户确定的配置信息定义用于一个或多个准识别列的所述经一般化的参数。
[1105] ●用户确定的配置信息定义用于一个或多个准识别列的分辨率或精度或失真。
[1106] ●实用性涉及所述导出数据集与所述敏感数据集的相似程度:例如所述两个数据集越相似,实用性越高。我们将实用性定义为“所述数据中保持了多少有价值的关系”,或另外说明,“所述准标识符与兴趣变量之间的关系保持的程度”。
[1107] ●通过计算所述敏感数据集与所述导出数据集之间的所述失真来测量所述敏感数据集与所述导出数据集之间的相似性。
[1108] ●所述方法可缩放并且在可缩放分布式系统中实现。
[1109] C.3 Privitar Publisher可以实现手动一般化,具有变量的全局记录。因此我们能够另外将任选特征定义如下:
[1110] ●用户手动地一般化一或多个准识别列。
[1111] ●系统使用全局记录,使得变换跨越表格中的行一致。
[1112] ●用户定义导致特定的k和/或l多样性的配置。
[1113] ●用户手动地定义k匿名和l多样性的所需阶层。
[1114] ●通过抑制在经过手动一般化之后未实现用户定义的k匿名和l多样性的群集来实现k匿名和l多样性。
[1115] C.4 Privitar Publisher可以实现自动化一般化,执行“自上而下”专用化(参见下文的章节C.5)以实现可调谐以控制每个准标识符的所述失真的k和l。因此我们可另外将任选特征定义如下:
[1116] ●系统接受针对每个表格的“k”和针对每个敏感列的“l”的用户确定值[1117] ●一般化的过程规定所述导出数据集中的一个或多个准识别列的固定、最大或最小分辨率。
[1118] ●配置信息包括一或多列的优先次序。
[1119] ●系统选择准标识符列的一般化的阶层,以使得与所述优先列具有强关系的所述准标识符列被一般化地较少。对于数值列,所述用户可配置所述系统应尝试实现的分辨率,或输入所述系统稍后在其一般化时使用的任意数值区间;
[1120] ●对于日期列,所述系统可将默认或自定义的日期层次一般化为数值,或应用所述默认或自定义的日期层次;
[1121] ●对于类别列,所述用户定义用于所述类别列的层次,并且通过通过按所述用户定义的层次组织所述值来进行所述一般化;所述列可以通过在所述用户定义的层次上升而变得一般化更多,或可以通过在所述用户定义的层次中下降而变得一般化更少。
[1122] C.5在上文的C.4中,我们规定Publisher平台执行“自上而下”专用化。我们在此详细说明可以定义“自上而下”过程的特征:
[1123] ●所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性,并且其中所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
[1124] ●所述系统使用局部和非全局记录,使得所述变换不需要跨越所述表格中的行一致。
[1125] ●所述系统使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值。
[1126] ●可以使用以下五步过程:
[1127] (1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
[1128] (2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
[1129] (3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
[1130] (4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
[1131] (5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
[1132] C.6 Privitar Publisher可以组合所述手动方法(参见C.4)和所述自动方法(参见C.5);这可表示在政策(参见A.1)中。
[1133] 我们可将此规定如下:所述系统使用混合式方法,其中所述用户能够手动地一般化一个或多个准识别列,然后所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性;
[1134] 并且其中所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
[1135] 手动一般化意味着最终用户手动地一般化准识别列。这可以涉及变量的全局记录。
[1136] 自动一般化意味着所述系统自动地一般化准识别列,所述系统使用所述自上而下方法和变量的所述局部记录。
[1137] 应用于所述敏感数据集的隐私保护可表示在政策中。
[1138] C.7 Privitar Publisher可以通过在并行计算群集上有效率地执行而对大数据集操作。我们可将此重申如下:可以对包括分离群集节点的分布式存储与计算环境或群集中的大数据集执行上文在C.2到C.6定义的方法。
[1139] C.8 Privitar Publisher可以将位置区域一般化。我们可将此定义为一种包括预处理步骤的方法,所述预处理步骤例如通过分析描述领地的地图的shapefile来分析地图,并且产生平面图,在所述平面图中,节点是位置领地并且在所述领地邻接的情况下,节点之间存在边缘;所述系统查找所述平面图中的具有小于k个记录的节点,并且将那些节点中的每一个与相邻节点中的一个合并,然后重复这个过程,直到所有节点满足k匿名。
[1140] 合并可以通过以下非排他性列表的方法中的一个或多个方法进行:与人口最多的相邻节点合并、与人口最少的相邻节点合并、与具有最长共同边界的相邻节点合并、与将产生具有最小面积的组合对的相邻节点合并,与相邻节点合并,以使得所述组合对具有最小直径,或与最符合这些因素的加权组合的相邻节点合并。
[1141] C.9.Privitar Publisher可以利于对自上而下专用化的细粒度控制以实现k和l,包括用于每个准标识符列的可配置策略,以便使数据失真减到最少。可提供此数据失真的量化和可视化。
[1142] 我们可以将此重申为一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化通过变换数据表中的列来实现,以使得所述导出数据集达到所需阶层的k匿名和l多样性;
[1143] 其中(a)所述系统接受关于哪些列要一般化(“准识别列”)和关于每个准识别列的相关联配置参数的用户确定的配置信息,其中所述配置参数包括所需分辨率、零的精度或失真、所述导出数据集中的一个多个准识别列;并且
[1144] (b)所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
[1145] 任选特征:
[1146] ●所述所需分辨率是以下各项中的一个:固定分辨率、最大分辨率或最小分辨率。
[1147] ●所述系统优先处理使与用户确定的“兴趣列”具有强关系的准识别列的所述数据失真减到最小。
[1148] ●所述方法可缩放并且在可缩放分布式系统中实现。
[1149] 我们可如下所述地将另外细节给予自上而下过程:
[1150] ●所述系统可以自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性,并且其中所述系统使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。
[1151] ●所述系统可以使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值。
[1152] ●可以使用如下所述的五步过程:
[1153] (1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
[1154] (2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
[1155] (3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
[1156] (4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
[1157] (5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
[1158] C.10 Privitar Publisher可以允许自上而下专用化以实现局部记录而不是全局记录;这样产生细粒度一般化。所述系统使用局部和非全局记录,使得变换不需要跨越所述表格中的行一致,尽管所述变换可跨越所述表格中的行一致。
[1159] C.11 Privitar Publisher可以保证l多样性。所述系统关于l多样性检查子节点的每个可能组,并且在拆分可导致非l多样性节点的情况下不进行所述拆分,尽管所述节点可以部分地组合。
[1160] C.12 Privitar Publisher平台可以提供拆分选项(中值或中点)。所述系统可以分析接下来专用化(或“拆分”)哪个准标识符以作为所述一般化过程的部分,所述系统使得所述用户能够选择数值中点拆分策略或数值中值拆分策略。
[1161] C.13 Privitar Publisher平台可以提供类别列一般化,具有树中的一般字符串或正则表达式的直接匹配。对于类别列,所述系统根据相关项的树型结构层次进行一般化,其中通过使用直接匹配或正则表达式,所述层次中的叶节点部分地匹配列中的文本,即在所述叶节点使用压缩表示的情况下。
[1162] C.14 Privitar Publisher平台可以提供“全能性”替换。预处理步骤检查列中的每个值是否匹配所述层次中的叶节点,并且如果未发现匹配,则用“全能性”值替换所述值。所述全能性值可以出现在所述层次中。
[1163] C.15.Privitar Publisher平台可以处置导出列。用户确定列是从另一列导出,或预处理步骤检查一列是否从另一列导出(例如出生日期和年龄)如果是,则仅一列被一般化,而另一列将从所述经一般化的列重新计算。所述系统可以突出显示异常值记录,然后询问用户其是否想要抑制这些记录。
[1164] C.16 Privitar Publisher平台可以通过优先抑制所述准标识符的单变量或联结分布中的异常值而将一般化与异常值记录的抑制组合以作为在使失真减到最小的同时实现k的手段,所述异常值的分辨率保持具有最高优先级,这样导致更好的最终分辨率。所述系统可以优先抑制是所述准标识符中的异常值的行,所述异常值的分辨率保持具有最高优先级,这样导致更好的最终分辨率。所述异常值可以在所述准标识符的单变量和联结分布中。
[1165] C.17 Privitar Publisher平台可以提供可视化和失真测量。所述系统可以显示所述一般化规则和每列的数据失真。所述系统提供用于评估由所述匿名化引起的改变的工具,其中经一般化的列的直方图上面覆盖了表示初始列的直方图。
[1166] C.18 Privitar Publisher平台可以输出群集大小泡式图。所述系统可以将图形地表示群集的大小和计数泡式图输出到最终用户,在所述泡式图中,每个点对应于根据其准标识符值分组的记录的群集,并且所述点的面积与所述群集的大小成比例。
[1167] C.19 Privitar Publisher平台可以实现自上而下专用化以实现k和l,这样保持所述准标识符与任何组的兴趣列之间的关系。我们可更一般地将此重申为一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化;
[1168] 并且其中所述系统接受定义与准识别列的关系应保持的任何“兴趣列”的用户确定的配置信息,并且所述系统接受类别或数值数据的零、一个或多个兴趣列的定义。
[1169] 所述方法可在可缩放分布式系统中实现。
[1170] C.20Privitar Publisher平台可以如下所述地处置数值兴趣列:如果所选择的优先列是数值的,将所述值自动地存储到离散范围或直条中,并且所述信息增益计算是基于所得的类别。数值包括日期或经过时间。
[1171] C.21Privitar Publisher平台可以如下所述地处置包括数值列与类别列的组合的几个兴趣列:如果几列被所述用户标记为引起兴趣的,则所述系统将连接每行的所有那些列的值,并且将所得值视为这个记录的兴趣值。
[1172] C.22Privitar Publisher平台可以如下所述地处置“无”兴趣列:如果所述用户未选择兴趣列,则所述系统使拆分在所述准识别列当中均匀地交替,并且对于每一轮拆分,选择不同列进行拆分。将交替方法用于每一轮差分,以随机地选择准标识符列进行拆分。
[1173] C.23Privitar Publisher平台可以提供自上而下专用化算法以实现改进数据实用性的k和l。我们可将此重申为一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化;
[1174] 其中所述系统使得所述导出数据集能够实现所需阶层的k匿名和l多样性。
[1175] 任选特征是:
[1176] ●所述系统可以使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值;
[1177] ●可以使用如下所述的五步过程:
[1178] (1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
[1179] (2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
[1180] (3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
[1181] (4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
[1182] (5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
[1183] 所述方法可以在可缩放分布式系统中实现。
[1184] C.24Privitar Publisher平台可以通过提供子节点的部分重组以允许再拆分来改进“实用性”。更特别地,子节点可以被部分重组,然后进一步拆分以允许进一步专用化。可以将无效的子代类别与其他无效类别并在必要时与有效类别组合以便形成有效类别。这些组合类别与父类别被指派相同值,因而不能被进一步拆分。然而,现在能够进一步拆分同胞节点,从而实现进一步专用化。当执行此重组时,所述类别在层次类别的情况下首先最小地组合并且在数值类别的情况下与邻近类别组合(以便形成连续区间)。
[1185] C.25Privitar Publisher平台可以提供“先行信息增益”能力。特别地,当所述系统分析接下来专用化(或“拆分”)哪个准标识符以作为所述一般化过程的部分时,所述系统可以通过提前候选拆分的多个(例如两个或三个或更多)阶段来计算所述信息增益,以拣取与这些多个阶段中的最高信息增益相关联的下一次候选拆分。
[1186] C.26.Privitar Publisher平台可以提供最小化NULL的影响(所述项包括遗漏值/空白)。连续列中的NULL被特别地处置。更详细地,在每个节点处,所述系统标注所述节点是否含有NULL并将此维持在被称作N的变量中;如果所述节点中有多于k个NULL,则所述节点将所述NULL拆分成一个子节点而将非NULL拆分成另一子节点,分别标记N=真和N=假;并且如果存在少于k个NULL,则正常地拆分所述非NULL而将所述NULL与所述子代中的一个合并,并且这个子节点被标记N=真而其余部分被标记N=假;然后针对进一步拆分重复所述过程,以确保仅一个最终节点拥有可以是NULL的值。
[1187] C.27.Privitar Publisher平台可以实现一般化以实现k和防御非类别数据类型的敏感属性披露的l。我们能够将此更一般地重申如下:一种方法,其中基于计算机的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持;
[1188] 其中所述系统使得所述导出数据集能够实现所需阶层的k匿名和l多样性;
[1189] 并且被配置成防止披露非类别数据类型的敏感属性。
[1190] 一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化。所述方法可缩放并且在可缩放分布式系统中实现。
[1191] C.28Privitar Publisher平台可以允许防御数值变量的敏感属性披露。特别地,可以通过以下各项中的一个或多个来保护敏感连续变量免于敏感属性披露:
[1192] ●使所述变量离散成多个直条,并且需要l多样性,就好象所述变量是类别变量[1193] ●需要每个匿名集合中的敏感列中的最小范围
[1194] ●按升序对所述值排序并计算百分位数,然后需要一个百分数(例如百分之二十)处的值与另一百分数(例如百分之八十)处的值之间的最小差
[1195] ●需要每个匿名集合中的最小值的反累积分布函数(CDF)与最大值的反CDF之间的最小差。
[1196] ●所述以上要求的组合。
[1197] 数值变量包括日期和时间,并且可处置经过的时间。日期和时间还可以被视为数值变量或类别变量。
[1198] C.29Privitar Publisher平台可以防御位置一般化中的敏感属性披露。所述系统可以取得位置或兴趣点的用户提供列表,并且确保每个经一般化的位置区域至少含有最小数目个位置或兴趣点。
[1199] C.30Privitar Publisher平台可以提供自上而下专用化的可缩放实现方式,以在分布式计算环境中达成k匿名和l多样性,所述分布式计算环境在分布式计算模型中有必要地拆分,然后移位到局部计算模型。我们可将此重申为一种方法,其中可缩放的以分布式计算机为基础的系统处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化使用“自上而下”过程,其中每个准识别属性在被完全一般化后开始,然后被反复地专用化;
[1200] 其中所述系统使得所述导出数据集能够实现所需阶层的k匿名和l多样性;
[1201] 并且其中所述系统构造树型数据结构,使得拆分在分布式环境中发生,然后在局部继续。
[1202] 所述系统可以使用“自上而下”过程实现针对如Apache Spark等分布式存储与计算环境或群集计算框架中的大数据集的一般化,在所述“自上而下”过程中,每个准识别属性在被完全一般化后开始,然后被反复地专用化;并且其中所述系统构造树型数据结构,其中所述树中的每个节点含有(1)一组数据集行和(2)所述准标识符列中的每一个的值.[1203] 可以使用如下所述的五步过程:
[1204] (1)从含有全部所述数据集行的初始节点开始。在这个节点中,全部所述准标识符具有完全一般化的值。
[1205] (2)根据所述准标识符中的每一个将所述节点“拆分”,以产生多组候选子代。
[1206] (3)评估子节点的每个候选组以确定:(a)所述子节点是否“有效”,意味着符合所述配置的K和L多样性阈值;和(b)关于所述配置的“兴趣”列的“信息增益”。
[1207] (4)选择具有最高信息增益的有效子节点的所述组并将所述有效子节点添加到所述树。
[1208] (5)在每个子节点上重复所述过程,直到不可能在不违反k或l的情况下进一步拆分。
[1209] 所述方法可以在可缩放分布式系统中实现。
[1210] C.31Privitar Publisher平台可以在某个点之后提供从分布式计算模型移位到局部计算模型,在工作负载适合某个存储器大小时到达所述点。
[1211] 所述系统可以执行节点的分布式拆分,直到所述系统计算叶节点的数据可适合单个过程的存储器,并且在那个点处,所述系统停止拆分所述节点并继续拆分仍然过大的那些节点,直到所述系统到达所述叶节点中的每一个可适合单个过程的存储器的点。
[1212] 当到达这个点时,所述树中的每个叶节点被指派ID,并且将所述数据集重新分割成和叶节点一样多的分区,从而基于含有分区的所述叶节点的所述ID而将多行指派给所述分区。
[1213] 在重新分割之后,每个节点的数据已被移到其自身的分区,使得所述系统然后“局部地”运行相同的自上而下专用化,即,所述自上而下过程可局部地对所述机器中的一个上的数据继续进行,其中所述分区的所有数据被保持在局部存储器中。
[1214] C.32Privitar Publisher平台可以提供子采样以改进性能。如果所述数据集不适合群集存储器,则所述系统取得不适合群集存储器的所述数据的的子样本并且使用所述子样本计算到所述“重新分割点”的所述拆分。
[1215] C.33Privitar Publisher平台可以提供进行所述自上而下专用化以实现局部记录而不是全局记录;这支持并行处理,因为所述专用化使对节点之间的协调的需要减少。
[1216] 所述系统可以使用局部而不是全局记录,使得所述变换不需要跨越所述表格中的行一致。
[1217] C.34Privitar Publisher平台可以支持动态拆分。特别地,所述系统可以支持将连续变量拆分成动态数目个子区间,其中所述用户配置子代的最大数目M,并且Publisher使用q、准识别属性的数目和k、k匿名参数自动地计算子代的数目。
[1218] C.35.Privitar Publisher平台可以提供限定执行时间或提前停止。所述系统可以使得所述用户能够提前停止所述专用化算法并输出更隐私但具有较低分辨率的数据。所述系统可以报告通过所述算法达到的当前专用化下的当前平均群集大小。
[1219] C.36.Privitar Publisher平台可以提供对流数据强制k匿名的系统。更一般地说,这是一种方法,其中基于计算机的系统处理流数据敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持;
[1220] 其中所述系统允许所述导出数据集实现所需阶层的k匿名。
[1221] 所述流数据可以是以下各项中的一种:微批次数据或事件流数据。
[1222] 一个关键方面是“等待时间-实用性”,其控制程序在公布记录之前要等待的时间。一些另外背景在此可能有帮助:数据可逐个事件地或以微批次进行处理(其中事件被收集到小群组中)。这通常有效率地进行(为了减小网络调用的数目)。Privitar Publisher能够关于两个方面最佳化:等待时间(在所述记录被匿名化之前要等待多久)和最小失真。我们可通过在一般化之前累积更多记录(然后考虑群中的值的分布)来降低失真,但是这使等待时间增加,因此需要权衡。
[1223] 更特别地,在必须将每个数据之一般化时还不知道所有数据值的情况下,所述系统可以保证流数据上的k匿名和l多样性,并且所述系统支持可配置“等待时间-实用性”参数,所述参数控制程序在公布记录之前要等待的时间。
[1224] 详细过程如下:在所保持的所述记录当中找出形成最佳或近似最佳群集的k-1个其他记录。最佳被定义为最低总失真。可通过尝试所有组合来识别所述最佳群集,或可经由贪婪算法来识别所述近似最佳群集,所述算法进行如下:从大小为1的由时间用尽的记录组成的群集开始;将记录添加到所述群集,从而产生具有最小总失真的群集;继续这样添加记录,直到达到大小为k的群集。
[1225] 然后测量记录的这个群集对总体一般化是否有帮助。为了此测量,将所述记录中的每一个在新群集中可具有的总失真与在现有群集当中最佳地拆分情况下的总失真进行比较;如果所述新群集的创建有帮助,则一般化并公布所述k个记录;否则,找出针对时间用尽的所述记录的最佳现有群集,将所述最佳现有群集最佳化,然后仅公布这个记录。
[1226] D.原始数据的自动隐私分析和指导性政策设置
[1227] D.1Privitar Publisher可以有效率地组合敏感数据发现、政策管理以及匿名化以增大每一个的值。这在两个方向上操作:敏感数据发现通知并且也被政策和匿名化活动通知,使得一个通过另一个来改进。
[1228] 我们可进行如下一般化:一种方法,其中基于计算机的系统自动地(i)检测敏感或识别数据;(ii)应用或建议定义将应用于敏感或识别数据的隐私保护的政策规则;并且(iii)匿名化或另外隐私保护敏感或识别数据;
[1229] 并且其中敏感或个人数据检测的结果影响并改进政策规则和/或匿名化/隐私保护过程的设计或选择;并且政策规则和/或匿名化/隐私保护过程的所述设计或选择影响并改进敏感或个人数据检测的所述结果。
[1230] 另一配方是一种系统,所述系统用于自动地检测输入数据集的可能敏感、准识别或识别列并且用于配置所述输入数据集的所述匿名化;
[1231] 其中(a)所述输入数据集的所述可能敏感、准识别或识别列的所述检测在所述输入数据集的所述配置方面和/或在识别要匿名化的新数据集方面给予用户帮助;并且[1232] (b)所述用户对所述输入数据集的所述匿名化的所述配置有助于可能敏感、准识别或识别列的所述检测。
[1233] D.2Privitar Publisher可以基于数据和关于所述数据的元数据、以及政策管理用户活动和匿名化活动来识别并分类包括标识符、准标识符以及敏感值的敏感数据。相关的任选特征包括以下各项:
[1234] ●所述系统通过(i)通过分析数据和应用于所述数据的任何相关元数据而将所述数据分类为敏感、准识别或识别的来自动地处理所述数据;并且(ii)应用定义将应用于所述数据的所述隐私保护的政策规则;并且(iii)对所述数据进行匿名化或隐私保护。
[1235] ●所述系统将所述输入数据集的一或多列自动分类为敏感、准识别或识别列。
[1236] ●所述用户对所述匿名化的所述配置包括所述用户对规定应用于特定数据对象的所述隐私保护的政策的定义,其中政策是应用于一个或多个数据对象的一个或多个特定规则。
[1237] ●所述系统分析所述数据、所述元数据和/或与所述输入数据集相关的所述政策。
[1238] ●所述数据的所述分析是基于:
[1239] ○列中的数据记录的格式和结构
[1240] ○数据集中的那个数据的分布的特性,例如,出生日期将遵循不同于上次登录日期的分布;准标识符通常将具有比唯一标识符低的基数。
[1241] ○数据出现所在的上下文,例如,电子商务交易数据集中的日期字段更可能是购买日期而不是生产日期,但是顾客表中的和地址其他主要信息一起存储的日期字段更可能是出生日期。
[1242] ○不同数据集之间的关系,例如,两个数据文件共享变量,从而允许链接那些数据集,由此改变隐私风险。作为一实例,您可能具有三个文件,所述文件各自含有系统生成的唯一标识符(或令牌),和一个准标识符。每个文件本身可以是低风险的,这是因为单个准标识符不足以识别个体。然而,当通过共同列链接时,文件的组合造成更大的隐私风险。
[1243] ●组织所述数据,以使得所述表格中的行对应于应当受保护免于重新识别的数据主题,并且对于每个表格中的每列,所述系统然后计算由所述列表示的属性是敏感的或直接或间接地含有所述数据主题的识别信息的概率。
[1244] D.3辅助数据集:所述系统维持公共数据集的数据库,然后在类似于一个或多个公共数据集的所述输入数据集中查找列。
[1245] D.4使用先前经处理的数据集:所述系统从标识符的先前已知源取得值并找出那些源与所述系统为了可能标识符、可能准识别属性或可能的敏感个人信息的所述检测而分析的所述输入数据集之间的相似性,并且向创建策略的用户呈现所述政策。如上所述,政策是定义待应用于敏感或个人数据对象的隐私保护的一个或多个特定规则,并且根据特定用例或用途的要求来选择特定政策。
[1246] D.5使用与现有准标识符列的相关性:当评估列是否可能是准识别列时,所述系统分析与现有已知的准识别列的相关性。
[1247] D.6主标识符的识别:当评估列是否可能是识别列时,所述系统实现以下技术中的一种或多种:测量列的基数;对照与个人标识符相关联的名称的列表分析列名;从标识符的先前已知源取得值并找出那些源与可疑的新数据之间的相似性;使用表示一般格式的图案的集合以识别标准标识符类型的存在;针对等于标记为识别的其他列中的值的子字符串,扫描非结构化列(例如,日志文件、聊天/电子邮件消息、通话记录或联系人);并且所述系统将这些度量中的任一者与阈值进行比较,以确定是否通知所述用户所述新列可能是识别列。
[1248] D.7使用具有非结构化列的令牌保险库:所述系统访问作为标识符之实例的来源的令牌保险库以允许检测非结构化列中的实例,其中所述令牌保险库持久地存储每个原始输入值与其各自的唯一计算令牌之间的所有映射。
[1249] D.8使用令牌保险库所述系统访问作为标识符之实例的来源的令牌保险库,以允许通过计算一列与另一列之间的重叠来检测结构化列中的实例。
[1250] D.9异常值:所述系统使用如卡方统计测试和基于偏差的方法等非监管异常值检测技术来分析数据集,以突出显示异常值记录,然后询问用户其是否想要抑制这些记录。
[1251] D.10Privitar Publisher可以分析关于所述变量的元数据:所述变量的名称、所述变量的来源、关于所述变量来自文件或来自外部元数据存储器的描述性数据、所述变量的更新日期、应用于所述数据的访问控制。
[1252] 所述系统分析与所述敏感或个人数据相关联的元数据,所述元数据包括以下各项中的一个或多个:名称、其来源、关于所述变量来自文件或来自外部元数据存储器的描述性数据、所述变量的更新日期、应用于所述数据的访问控制。
[1253] 所述系统编译并存储关于表格中的哪些列含有可能标识符、可能准识别属性以及可能的敏感个人信息的元数据。
[1254] D.11Privitar Publisher可以向用Privitar应用程序管理这个和类似数据时的用户行为学习。
[1255] 所述系统分析数据在其他隐私政策中已如何分类和管理,例如如果存在要求列进行令牌化的政策,则那是所述列是识别列的强指示符。
[1256] 通过隐私政策中的对那个数据的分类,认为用户已指示的数据集与其他数据的相似性是敏感的。(这更像是使用关于数据隐私的推荐来学习领域知识:由于用户判断类似您的数据的数据是敏感或识别的,因此更可能的是,您的数据是敏感或识别的)。
[1257] 读取元数据和自匿名化过程生成的数据沿袭信息,以便分辨敏感数据与相同结构的非常现实的匿名数据之间的差异。
[1258] 由于令牌化过程产生与所述原始字段在结构上相同的字段,并且一般化过程保持所述数据分布,因此匿名数据看上去很像原始敏感数据,并且数据已被匿名化的元数据记录是必需的。
[1259] D.12一旦准标识符已被发现,Privitar Publisher即通过评估数据的k匿名来评估隐私风险。
[1260] 所述系统通过(i)将数据分类为敏感、准识别或识别的来自动地处理所述数据,然后(ii)通过评估敏感、准识别或识别数据的所述k匿名来判定隐私风险。
[1261] D.13Privitar Publisher可以评估隐私风险和数据敏感性通过匿名化降低的程度:所述系统自动地匿名化或另外隐私保护数据,然后评估隐私风险通过所述匿名化或隐私保护已经降低的程度。
[1262] D.14信息可以汇编成到规则引擎或机器学习分类器的丰富输入。
[1263] 应用于敏感列的机器学习或规则引擎:所述系统使用机器学习方法或规则引擎来构建模型,所述模型可将未知列是敏感或非敏感的评分输出到用户。
[1264] 应用于识别和准识别列的机器学习或规则引擎:所述系统使用机器学习方法或规则引擎来构建模型,所述模型可将未知列是识别或非识别或准识别或非准识别的评分输出到用户。
[1265] 以下特征可以在机器学习过程中使用:可指示敏感度或列中的数据是识别或准识别的任何信息,例如:
[1266] ●相异值的数目
[1267] ●数值的均值、中值、众数、最小值、最大值以及方差
[1268] ●值的类型(十进制、整数、字符串、日期)
[1269] ●列名
[1270] ●列名的长度
[1271] ●列名的n-gram(其中下划线被视为字之间的中断)
[1272] ●数据集的熵
[1273] ●元数据
[1274] ●政策
[1275] ●任务
[1276] ●数据沿袭
[1277] ●联结所有以上各项
[1278] ●标签
[1279] D.15Privitar Publisher基于敏感数据的识别来指导政策管理。我们能够将这一般化如下:一种方法,其中基于计算机的系统自动地(i)检测敏感或个人数据;(ii)应用或建议定义将应用于敏感或个人数据的隐私保护的政策规则;并且(iii)匿名化或另外隐私保护敏感或个人数据;
[1280] 并且其中所述系统基于所述敏感或个人数据来指导所述政策规则的配置或创建。
[1281] 所述系统可以基于关于数据集得知的敏感度分类来提供默认政策配置,包括建议用于被识别为主标识符、准标识符或敏感字段的字段的适当动作(即所有以上动作)。所述系统可以通过考虑用于这个数据和/或用于类似数据的其他政策来通知政策配置。所述系统可以在政策冲突的情况下警告所述用户方法的不一致性。所述系统可以编译并存储关于表格中的哪些列含有可能标识符、可能准识别属性以及可能的敏感个人信息的元数据,并且向创建政策的用户呈现所述元数据,其中所述政策是定义待应用于敏感或个人数据对象的隐私保护的一个或多个特定规则,并且根据特定用例或用途的要求来选择特定政策。
[1282] 本章节I的其他方面是:一种软件系统,所述软件系统实现上文定义的计算机实现的方法;一种数据集,所述数据集已使用上文定义的计算机实现的方法生成;以及一种实现上文定义的计算机实现的方法的云计算构架。
[1283] 附录2
[1284] 章节II:PRIVITAR LENS
[1285] 关键概念和特征
[1286] A.1Privitar Lens防止对原始数据集的访问,但使能隐私保持聚集查询和计算,并且使用差分隐私算法来降低或防止敏感信息的识别或披露的风险。
[1287] A.2Privitar Lens提供对隐私的单个网关接入。我们可将所述网关接入一般化如下:用于查询数据库的隐私保持查询方法和系统,在所述查询系统中设置有用于配置所述查询系统的单个接入点,并且其中所述系统的隐私控制由数据持有者从这个单个接入点配置,并且其中所述数据集由数据分析师从这个单个接入点查询。
[1288] 任选特征:
[1289] ●系统在其运行时可配置。
[1290] ●数据持有者具有控制、审计和/或监控查询系统的所有活动的能力。
[1291] ●数据持有者能够在系统在运行时批准或拒绝被分类为恶意的查询。
[1292] ●数据持有者的图形用户界面被实现为软件应用程序。
[1293] ●数据分析师的图形用户界面被实现为软件应用程序。
[1294] 其他方面是一种云计算构架,所述云计算构架提供上文所定义的隐私保持系统,和一种访问云托管资源的方法,所述方法包括访问上文所定义的隐私保持系统的步骤。
[1295] A.3Privitar Lens可以支持特征提取。我们可将这一般化到隐私保持查询系统,其中查询从现有数据集创建新数据集并且其中分析师能够查询所述新数据集和旧数据集两者。
[1296] 任选特征:
[1297] ●上文所定义的系统,其中所述新数据集的所述创建不传回任何查询结果。所述新数据集中的输出行值是输入行中的一个或多个值的变换、组合或任意函数(即“特征”),并且所述过程被称作“特征提取”。因为新数据集的创建不暴露所述初始数据,所以允许所述分析师访问这个新数据集没有隐私风险。
[1298] ●所述新数据集是所述初始数据集的扩展(例如以逻辑方式添加新列)并且所述新数据集与所述初始数据集共享所有隐私性质。
[1299] ●上面的隐私性质是以下各项中的一个或多个:总隐私预算、剩余隐私预算、预算速率限制、查询速率限制。
[1300] ●上文所定义的系统,其中仅已创建所述新数据集的分析师能够查询所述新数据集。
[1301] ●上文所定义的系统,其中所述数据集含有时间序列数据。
[1302] ●上文所定义的系统,其中所述特征提取函数以特定个体的每行的列表作为输入,并且输出一行特征。
[1303] ●上文所定义的系统,其中存在与所述时间序列数据相关联的定义将应用于添加到关于这个数据的查询的噪声的乘法因子(参见下文的A.11)的性质;并且当关于从所述时间序列数据提取的所述特征进行查询时,这个因子不适用。
[1304] 一种云计算构架可提供上文所定义的隐私保持系统。
[1305] A.4Privitar Lens可以提供虚设数据集。一般化,我们具有一种查询界面系统,其中构造具有用户可配置以匹配初始数据集的性质的虚设数据集,并且其中不同阶层的性质与增加的隐私风险相关联。
[1306] 任选特征:
[1307] ●每个阶层释放比先前阶层多的信息片段
[1308] ●我们可规定每个阶层暴露的内容:
[1309] ●阶层释放一或多列的遗漏值的比例。
[1310] ●阶层释放一或多列的NULL值的比例。
[1311] ●阶层释放一或多个连续列的范围。
[1312] ●阶层释放一或多个整数列的范围。
[1313] ●阶层释放一个或多个类别列的常用选项。
[1314] ●阶层释放一个或多个类别列的所有选项。
[1315] ●阶层释放一或多列的单变量分布,其中值计数用来表示类别变量的分布,并且具有特定数目个直条的直方图(可由所述数据持有者配置)用来表示连续变量的分布。
[1316] ●分析混合式连续/类别列,并且将高于可配置阈值的值计数处置为类别的,而将其余值计数处置为连续的。
[1317] ●分析师能在不使用任何隐私预算的情况下查询所述虚设数据集。
[1318] ●分析师能查看行。
[1319] ●所述虚设数据集可下载到另一源上。
[1320] 一种云计算构架提供上文所定义的查询界面系统。
[1321] A.5Privitar Lens可支持恶意查询检测规则的实现。我们可将这一般化到隐私保持查询系统,其中将恶意查询的基于规则的检测与到查询结果的噪声添加组合。
[1322] 任选特征:
[1323] ●在预处理阶段中实现检测。
[1324] ●在检测中自动地通知数据持有者。
[1325] ●数据持有者能够查看所述查询。
[1326] ●所述系统基于隐私配置而将查询分类为恶意的或良性的。
[1327] ●所述系统能够修改恶意查询,以使得所述恶意查询传回隐私保持结果。
[1328] ●所述系统能够运行一个或多个额外查询,以便检测恶意查询。
[1329] ●所述系统传回具有与所述查询和/或所述噪声添加相关的元数据的所述查询结果。
[1330] 一种云计算构架,所述云计算构架提供上文所定义的隐私保持系统。
[1331] A.6Privitar Lens可以支持规定有噪声查询的分辨率。我们可将这一般化到一种差分隐私过程,其中由隐私保持查询系统报告的应答在或近似在真应答的百分数或其他测量内;
[1332] 并且其中,分析师通过规定那个定义的百分比或其他测量来规定所需要的分辨率,所述隐私保持查询系统然后自动地生成所述应答到那个定义的百分比或其他测量。
[1333] 任选特征:
[1334] ●所述系统支持将所述所需要的分辨率规定为置信区间或表示为所述真应答的百分数的置信区间。
[1335] ●如果所需要的置信区间是针对平均查询规定,则所述系统花费一定“隐私预算”来获得待平均的记录的近似计数,并且使用这个计数将置信区间转换到预算并用那个预算来运行所述平均查询。
[1336] ●所述系统报告所述报告应答在所述定义的百分比或其他测量内的所述百分数机会或其他测量。
[1337] ●所述系统花费一定“预算”来获得所述真应答的近似值,然后使用这个近似值来计算导致所述所需要的分辨率要花费的预算的近似量,并且用那个预算量来重新运行所述查询。
[1338] ●使用拉普拉斯或高斯CDF累积分布函数将置信区间转换到预算。
[1339] 一种云计算构架实现上文所定义的差分隐私过程。
[1340] A.7Privitar Lens可以支持呈现关于噪声添加的信息。我们将这一般化到一种针对平均查询(例如SQL“AVERAGE”查询)的隐私保持查询系统,在将噪声添加到查询结果的情况下并且在不知道精确计数的情况下,并且其中计算近似计数,然后使和的噪声分布除以这个计算的近似值以得到所述平均值的噪声分布的近似。
[1341] 任选特征:
[1342] ●通过使用隐私预算的量来计算所述近似计数。
[1343] ●向最终用户显示所述平均值的所述噪声分布的所述近似。
[1344] 一种云计算构架提供上文所定义的隐私保持查询系统。
[1345] A.8Privitar Lens可以区分私有列与公共列。一般化,我们具有一种隐私保持查询系统,其中数据集列被分类成“公共”或“私有”类别。
[1346] 任选特征:
[1347] ●所述数据集列的分类由用户执行。
[1348] ●查询经过预处理以确定所述查询是否仅关心公共列;如果所述查询仅关心被确定为公共的列,则无噪声被添加到查询结果,因而不使用隐私预算并且不应用其他隐私保护。
[1349] ●公共列不含有隐私风险。
[1350] 一种云计算构架提供上文所定义的隐私保持查询系统。
[1351] A.9Privitar Lens可以支持查询一般化。我们可将此一般化成一种隐私保持查询系统,其中一般化在预处理阶段中在进行中应用于查询。
[1352] 任选特征:
[1353] ●所述预处理阶段使用筛选器的组合来更改查询。
[1354] 一种云计算构架,所述云计算架构提供上文定义的隐私保持查询系统。
[1355] A.10Privitar Lens可以支持活动可视化。更一般地,我们具有一种隐私保持查询系统,其中用户界面用图形描绘随时间变化的信息泄露。
[1356] 任选特征:
[1357] ●这以实时方式实现。
[1358] 一种云计算构架,所述云计算架构提供上文定义的隐私保持查询系统。
[1359] A.11Privitar Lens可以支持时间序列数据的扩展。更一般地,我们具有一种隐私保持查询系统,其中计算如时间序列数据集等数据集中的对应于单个人员的行的最大数目,并且在所应用的乘法因子中使用这个数目以增大添加到所有查询的噪声的度量值。
[1360] 一种云计算构架,所述云计算架构提供上文定义的隐私保持查询系统。
[1361] A.12 Privitar Lens可以支持无隐私保护地向用户示出其自己的数据。我们可将这一般化成一种隐私保持查询系统,其中数据分析师所拥有的数据是可识别的,并且分析来自分析师的查询以确定所述查询是否仅与所述数据相关;并且如果所述查询仅与所述数据相关,则无隐私保护被应用于所述数据。
[1362] 一种云计算构架,所述云计算架构提供上文定义的隐私保持查询系统。
[1363] A.13 Privitar Lens可以支持传回统计结论但隐藏中间值的界面。我们可将这个界面一般化成隐私保持查询系统,所述查询系统包括接收统计检验查询并输出与噪声田间组合的统计查询结果,并且其中不传回所述查询结果的计算中的中间值。
[1364] 本章节II的其他方面是:一种软件系统,所述软件系统实现上文定义的计算机实现的方法;一种数据集,所述数据集已使用上文定义的计算机实现的方法生成;以及一种实现上文定义的计算机实现的方法的云计算构架。
[1365] 附录2
[1366] 章节III:PRIVITAR SECURELINK
[1367] 关键概念和特征
[1368] A.1Privitar Securelink是相对一般标识符(例如社会保障号码)结合数据的方式,同时保护所述一般标识符并确保所述一般标识符在匹配过程或所得的结合数据集中不被揭露。然后可以使用Privitar Publisher对所述结合数据集进行处理、匿名化或一般化,或使用Privitar Lens使所述结合数据集可供隐私保持分析使用。
[1369] A.2我们通常可将其定义如下:一种安全地共享数据集的计算机实现的方法,所述数据集包括与每个个体相关联的信息和初始唯一ID,其中所述数据集来源于几个不同的数据共享者,并且将在隐匿或掩蔽所述初始唯一ID的同时与中心相关方或接受者共享;
[1370] 其中每个贡献者对所述初始唯一ID加密并将其和与每个个体相关联的所述信息一起发送到中介者相关方;
[1371] 所述中介者相关方执行确定性地但不可逆地将所述加密的初始唯一ID映射到经加密和掩盖的形式的同态加密操作,并且将那个经加密和掩盖的数据发送到中心或接受者相关方;
[1372] 所述中心相关方(i)解密从所述中间相关方接收的所述经加密和掩盖的数据以生成一对一映射但不能用于恢复每个初始唯一ID的唯一ID,然后(ii)将来自每个贡献者的关于每个个体的所述信息结合在一起。
[1373] A.3其他任选特征包括以下各项:
[1374] ●所述初始唯一ID在经加密后绝不会被明确地发送。
[1375] ●所述中介者相关方生成所述密文并将所述密文升到生成所述密文并将所述密文升到秘密随机数取幂密钥k次幂,以生成所述经加密和掩盖的形式,并且所述中心相关方解密这个密文以生成mK,其中m是所述初始唯一ID,并且决策迪菲-赫尔曼决策假设暗示对所述中心相关方来说,用加密方式难以用mk生成m。
[1376] ●所述中介者相关方利用ElGamal加密在取幂下同态的事实对所述密文进行这个操作。
[1377] ●所述中心相关方生成椭圆曲线参数集并与所有贡献者和所述中介者相关方共享所述椭圆曲线参数集;然后在所述中心相关方和所述中介者相关方处生成私钥与公钥对,并且与每个数据贡献者共享这些公钥;然后每个数据贡献者将每个初始唯一ID m转换成椭圆曲线上的点,并用两种公钥对所述点加密以生成多个点对;然后将这些经加密的点发送到所述中介者相关方以供用其私钥部分解密,并用所述秘密取幂密钥k掩盖。
[1378] ●密钥生成、加密以及解密操作是基于ElGamal加密系统。
[1379] ●所述中心相关方和中介者相关方用其私钥对其公钥签名并与所述贡献者共享这些签名,以证明所述相关方已遵守密钥生成协议。
[1380] ●所述方法消除对共享个体的唯一ID的要求,所述唯一ID还在一些或全部数据贡献者之间共享并且还被所述中心相关方使用。
[1381] ●个体具有多于一个的初始唯一ID,例如地址、电子邮件以及邮政编码。
[1382] ●个体的初始唯一ID被结合在一起。
[1383] ●使用如语音签名、数字化指纹、视网膜扫描或虹膜扫描等生物测定签名作为初始唯一ID。
[1384] ●初始唯一ID是多个标识符的组合,并且所述组合是标识符的唯一组合。
[1385] ●每个贡献者包括与发送到所述中介者的所述信息一起的概要或所述信息的结构描述,并且所述中介者能够使用来自每个贡献者的所述概要以识别所述数据中对应于所述初始唯一ID的列。
[1386] ●从每个贡献者发送到所述中介者的与每个个体相关联的所述信息是加密的。
[1387] ●将初始唯一ID存储在由贡献者保持的所述数据集中的列中。
[1388] ●每个贡献者使用个体的相同唯一ID,或具有共同标识符的多于一个初始唯一ID。
[1389] ●将结合在一起以用于来自每个贡献者的每个个体的所述信息匿名化或一般化到较笼统值以保持隐私,然后公布所述信息。
[1390] ●由基于计算机的系统进行的公开处理敏感数据集并公布导出数据集,以使得通过将数据值一般化到较笼统值,隐私在所述导出数据集中得以保持,所述一般化通过变换数据表中的列来实现;
[1391] ●其中所述系统使得用户能够(a)定义k匿名和/或l多样性的所述所需阶层,然后所述系统自动地一般化所述敏感数据集中的所述数据的一些或全部,使得所述导出数据集实现所述所需阶层的k匿名和/或l多样性,并且还使得所述用户能够(b)手动地配置如何一般化所述表格中的每列。
[1392] ●然后与所述贡献者中的一个或多个共享回去所述匿名化或一般化形式的数据。
[1393] ●所述共享回去由用于查询数据库的隐私保持查询系统进行,在所述查询系统中设置有用于配置所述查询系统的单个接入点,并且其中所述系统的隐私控制由数据持有者从这个单个接入点配置,并且其中所述数据集由数据分析师从这个单个接入点查询。
[1394] ●每个贡献者独立于所有其他贡献者并且不与其他贡献者共享个人信息。
[1395] ●每个贡献者是不同的银行或其他金融机构,并且所述数据集包括个人金融信息。
[1396] ●每个贡献者是医疗数据的不同持有者,并且所述数据集包括医疗信息。
[1397] ●每个贡献者是不同的电信服务提供者,并且所述数据集包括呼叫相关信息。
[1398] ●每个贡献者是不同的因特网服务提供者,并且所述数据集包括因特网或网络浏览相关信息。
[1399] ●每个贡献者是不同的社会网络,并且所述数据集包括社会网络相关信息。
[1400] ●每个贡献者保持多个个体的地理定位信息。
[1401] ●每个贡献者保持不同个体的敏感个人信息。
[1402] ●所述中心相关方是政府组织。
[1403] ●在不能够识别任何特定个体的情况下,所述中心相关方数据挖掘多个个体的所述信息。
[1404] ●所述中心相关方承担所述中介者相关方的角色。
[1405] ●所述方法以聚集形式提供所述数据集的表示,其中所述表示防止任何个体的任何初始唯一ID被重新生成。
[1406] ●其中所述表示还提供由所述数据集保持的特别关于健康、养老、金融或教育数据的信息的综合视图。
[1407] 本章节III的其他方面是:一种软件系统,所述软件系统实现上文定义的计算机实现的方法;一种数据集,所述数据集已使用上文定义的计算机实现的方法生成;以及一种云计算构架,所述云计算架构实现上文定义的计算机实现的方法。
[1408] 注释
[1409] 应理解,上文已用的布置仅说明本发明的原理的应用。在不背离本发明的精神和范围的情况下,可设想许多修改和替代布置。尽管本发明已在图中示出并且结合目前被视为本发明的最实际且优选实例在上文特定且详细地完全描述,但本领域的技术人员将了解,在不背离本文中阐述的本发明的原理和概念的情况下,可作出许多修改。
相关专利内容
标题 发布/更新时间 阅读量
驻极体片 2020-05-11 431
驻极体医用绷带 2020-05-13 924
驻极体材料 2020-05-12 585
驻极体和可用于驻极体的化合物 2020-05-14 514
驻极体话筒 2020-05-12 306
驻极体创伤贴 2020-05-14 193
低频驻极体天线 2020-05-12 764
驻极体和可用于驻极体的化合物 2020-05-14 294
驻极体 2020-05-11 280
驻极体和驻极体滤材 2020-05-11 377
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈