在匿名化数据集中没有较大信息丢失的数字加水印的制作方法

文档序号:15575478发布日期:2018-09-29 05:25阅读:234来源:国知局
1.发明领域本发明涉及一种更改数据集中的初始数据的计算机实施的方法;应用数据匿名化和数字加水印。2.现有技术描述许多组织持有有较高价值的数据集,所述数据集实现大量的二次使用。健康数据实现医疗研究;消费者银行业务和零售购买数据实现诈骗分析、市场分析以及经济建模;电信数据实现巨量的行为分析,且存在无数的其他示例。然而,由于此类数据集通常包含关于个体的高度私密的数据,因此必须高度注意以确保此私密信息得到保护。保护个体隐私的两种机制为通过匿名化技术来移除或模糊化私密数据,以及通过将数字水印插入到数据中来控制并跟踪数据集的分布。匿名化技术降低敌人识别出数据集中的一个或多个个体的风险。加水印实现对未经授权的分布或敏感数据集的公布的检测和归因,且因此实现对此类未经授权的行为的遏制机制。数据集的匿名化降低重新识别的风险,但可能并不完全消除重新识别的全部可能性,且因此谨慎的做法是还应用数字加水印。将唯一的指纹嵌入到数据集中使得所述数据集能够与谁出于何目的将数据存取授权给哪一个用户的审查跟踪相关联。此信息可被编码在水印内或存储在寄存器中,其中所述记录的密钥被编码在水印内。用于许多文档、媒体文件或计算机程序的格式通常包含元数据或冗余数据,在所述元数据或冗余数据内可在不损害文件的完整性的情况下对水印编码。相比之下,原始数据集(例如,表格文件、来自关系型或半结构化非关系型数据库的提取数据,或交互式数据库查询的结果)通常不包含此类元数据或冗余数据,且因此数字加水印通常需要操控或扰乱数据本身,从而引起不期望的信息丢失和数据集的效用的损失。然而,例如标记化、一般化、数据模糊以及合成记录的插入等隐私保护技术自身确实扰乱原始数据,以便移除或一般化私密数据。通过如通过本发明所教示来扩展或专门化这些匿名化技术以并入水印产生,可在没有超过通过匿名化引起的信息丢失的另外信息丢失的情况下将数字水印嵌入在匿名化数据集中。技术实现要素:本发明为一种更改数据集中的初始数据的计算机实施的方法,所述方法包括使初始数据匿名化并将数字水印包含在匿名化数据中的步骤。本发明的可选特征包含以下各项中的一个或多个:使初始数据匿名化引起信息丢失,且包含数字水印的另外步骤不增加较大的另外的信息丢失。数字水印可在概率性基础上操作(我们在下文给出具体的示例)。水印可被包含在与元数据或冗余数据不同的已被匿名化的初始原始数据中。初始数据可为表格文件、关系型或非关系型数据库或交互式数据库查询的结果。使数据匿名化使用扰乱初始数据的一种或多种技术来实现,例如标记化、一般化;数据模糊、合成记录插入、记录移除或重新排序。当使用标记化时,通过以下操作来并入加水印:扩展此标记化以根据密钥产生或选择替代值或包含隐藏图案;同一记录中的其他字段的功能;或在每一数据发布中使用一些唯一的标记值,所述唯一的标记值仅曾出现在所述发布中且因此唯一地识别所述发布。当使用一般化时,通过以下操作并入加水印:对如何产生原始值的替代的选择;或唯一群组的总体的分布;或对群组边界的选择;或选择群组成员以产生在数据集中的在群组内的那些个体的其他变量中的数据的模式。当使用数据模糊时,通过以下操作并入加水印:扰乱数据,其方式为使得将图案包含在受扰乱值内,或根据算法或密钥来产生偏移值。当使用合成记录的插入时,通过根据图案或数字密钥来产生这些合成记录中的数据来并入加水印。当使用记录的移除时,通过对包含并禁止披露的记录的选择和记录来并入加水印。待编码到匿名化数据中的水印可为编号或其他id(统称为“编号”),所述编号或其他id存储在水印寄存器中或为与存储在水印寄存器中的另一编号相关或映射到存储在水印寄存器中的另一编号的编号。存储在水印寄存器中的编号可为:随机数;电子邮件地址;与个人相关联的唯一id;唯一文本串;或映射到前述内容或与前述内容相关的任何数据串。待编码到匿名化数据中的水印可为随机十进制数,所述随机十进制数被存储在水印寄存器中。编号的长度可通过文件的可用水印载体的数目和大小来确定。每一水印载体可将其指派的数位用作对所述水印载体处理的每一值执行某一变化的概率。所得输出文件的再处理和观察变化发生的频率允许推断出施加所述变化的概率,且因此实现水印的重构。对谁出于何目的将数据存取授权给哪一个用户的审查跟踪被编码在水印内和/或存储在寄存器中,其中所述记录的密钥被编码在水印内。对于每一带水印的数据发布,寄存器还可存储包含以下各项中的一个或多个的细节:源数据位置、模式和描述、经应用以创建匿名化副本的策略和技术、源数据和匿名化数据的敏感级别、被批准使用匿名化数据的用户或用户的群组的姓名和联系方式、批准人的姓名和联系方式,以及使用数据的目的和持续时间。水印可被编码到文件的每一行中,使得在输出中的个别行的移除或修改或添加对重构水印的能力具有可忽略的影响。可在对将施加到其他行的变化没有任何了解的情况下将变化个别地施加到每一单元或行,以允许以分布式流传输方式将水印应用到数据。水印可通过更改位或数位在匿名化数据中的频率分布来编码(我们在下文给出具体示例)。水印的部件可以行级编码。在水印需要行移除时,则水印数位界定散列数空间的带,且如果水印部件为具有>0的第一数位的n数位十进制数d,则此范围通过[hl+((hu-hl)*(d-1)*10-n),hl+((hu-hl)*d*10-n))给出,其中hl和hu为散列数空间的下部和上部边界。数位随后可通过散列每一行并构建散列频率的直方图来从输出文件重构,其中每一区间(bin)具有宽度10-n的散列数空间,使得不包含值的区间显示此水印载体的数位。在水印需要行添加时,则n个水印数位界定散列空间的切片,且随后产生散列成在此范围内的数字的合成数据。数位可通过散列每一行并构建散列频率的直方图来从输出文件重构,使得在此直方图中过多呈现的区间显示此水印载体的数位。水印载体可在单元级处且取决于单元数据类型是数字值还是标记化值。在单元数据类型为数字值时,水印的n*m个数位用于以m的精度改变每一值的n个最低有效位,且对于n个水印数位中的每一个,将数位除以10m以得到将在值中的一个中设定此位的概率,且随后改变单元中的值,以所需的概率设定此位。当重读文件时,方法为遍历所述值,并以m的精度得到n个载体位中的每一个为零的概率以显示n*m个初始数位。n取决于数字值的范围来选择以将值失真限于可接受范围,且m应基于数据量来选择。在单元数据类型为标记化值时,根据某一正则表达式来产生标记化单元值,且对此正则表达式的分析给出所有可能的输出标记的以词典编纂方式排序的列表。水印部件可为具有>0的第一数位的n数位十进制数d,所述n数位十进制数用于排除具有可被d除的序数的任何输出标记,且为重构水印数位,方法为针对从10n-1至10n-1的每一数字创建具有区间的直方图,且对于每一标记,方法为针对所有标记序数的因子使区间计数递增,使得具有零计数或较小计数的最低序数区间显示水印数位。n关于需要标记化的唯一输入值的数目设定,使得较大量的数据需要较大的n值。不需要精确地重构水印,而是仅需要能够执行所计算的值与记录在存储水印的水印寄存器中的不同概率的模糊匹配。使用数字水印实现未经授权的分布或数据的发布的检测和归因。以上描述的方法还可包含非破坏性加水印技术,例如对数据集内的记录或数据字段重新排序。以上描述的方法使用一个或多个计算机处理器来实施。初始数据中的至少一些界定私人医疗或健康数据;私人银行业务或金融数据;私人通信数据;人力资源或工资单数据;零售或电子商务数据;政府记录,包含关于以下各项中的一个或多个的记录:税收;健康保险;抵押;养老金;救济金;教育;健康。本发明的另一方面为经编程以实施以上界定的方法的计算装置或计算系统。附图说明附图可如下概述:图1示出在产生随机水印时所述随机水印的数位被分配到各种水印载体图2示出水印数位‘14’的直方图输出。图3示出向我们给出用于行添加的水印载体数位16和用于行移除的水印载体25的直方图输出。具体实施方式加水印方法加水印必须为稳健的,以防止敌人通过移除或扰乱数据集中的数据中的一些或通过添加另外的数据来移除水印。稳健的加水印方法使用技术的组合来在整个数据集上冗余地分布水印,以便使敌人难以通过仅发布数据的子集和/或通过扰乱数据来移除水印。数据集必须经重度失真才能破坏水印,这进一步降低对所述数据集内的个体的重新识别的风险,以及减少数据的信息内容,使得数据对敌人无用。在概率性基础上操作的加水印技术满足这些标准。待编码到数据中的水印为随机十进制数,所述随机十进制数连同水印的一些有意义的(且私人的)记忆标记一起存储在水印寄存器中。对于每一带水印的数据发布,寄存器还可存储细节,例如源数据位置、模式和描述、经应用以创建匿名化副本的策略和技术、源数据和匿名化数据的敏感级别、被批准使用匿名化数据的用户或用户的群组的姓名和联系方式、批准人的姓名和联系方式,以及使用数据的目的和持续时间。水印编号的长度通过文件的可用水印载体的数目和大小来确定(见以下章节)。每一载体将其指派的数位用作对所述载体处理的每一值执行某一变化的概率。因此所得输出文件的再处理和观察变化发生的频率允许推我们断出施加所述变化的概率,且因此实现水印的重构。由于水印被编码到文件的每一行中,因此在输出中的个别行的移除/修改/添加对我们重构水印的能力具有可忽略的影响。文件的较大部分必须在误差被引入到载体的计算中之前被移除或修改。由于这些值中的误差通常为与实际值之间的较小偏差,且由于我们不需要精确地重构初始水印而是仅需要能够执行我们所计算的值与记录在水印寄存器中的不同概率的模糊匹配,因此在不破坏文件的效用的情况下非常难以使得水印不匹配。此方法的另一优点是可在对将施加到其他行的变化没有任何了解的情况下将变化个别地施加到每一单元或行。这允许以分布式流传输方式将水印应用到数据。水印载体水印的部件可以行级或个别单元值级在载体内编码。在单元值通过行范围或单元范围的载体两者改变时,必须注意确保改变值符合两个载体。行范围载体良好的散列算法即使是关于相似的输入也将给出均匀分布的散列,因此散列每一行(通过连接所有值来将整行视为单个串)应给出在散列空间上具有均匀分布的值。我们用以下两种技术来利用此因子:●行移除水印数位界定散列数空间的带,如果水印部件为具有>0的第一数位的n数位十进制数d,则此范围通过[h*(d-1)*10-n,h*d*10-n)给出,其中h为散列数空间。散列成此带内的值的任何行从输出省略。数位可通过散列每一行并构建散列频率的直方图来从输出文件重构,其中每一区间具有宽度10-n的散列数空间。不包含值的区间显示此水印载体的数位。当数据量增长时,载体数位n的数目可增加。这允许被丢弃的数据的量减少同时还提供较大的水印可区分性。●行添加正如行移除一样,n个水印数位界定散列空间的切片(如果适用行移除和行添加两者,则所使用的范围必须明显不同)。随后产生散列成此范围内的数字的合成数据。数位可通过再次散列每一行并构建散列频率的直方图来从输出文件重构。在此直方图中过多呈现的区间显示此水印载体的数位。在产生合成数据时必须注意确保列值符合真正的行中的值的分布,且确保遵守列值之间的协方差。单元范围载体在单元级处可用的载体取决于单元数据类型:●数字值水印的n*m数位用于以m的精度改变每一值的n个最低有效位。对于n个水印数位中的每一个,将数位除以10m以得到将在值中的一个中设定此位(即,1)的概率。随后改变单元中的值,以所需的概率将此位设定为1。当重读文件时,我们遍历所述值,并以m的精度得到n个载体位中的每一个为1的概率。这样做显示n*m个初始数位。n应取决于数字值的范围来选择以将值失真限于可接受范围,且m应基于数据量来选择(在较高量的情况下,我们能够使用更多的数位且仍确信准确地重构概率)。●标记化值根据某一正则表达式产生标记化单元值。对此正则表达式的分析给出所有可能的输出标记的以词典编纂方式排序的列表。水印部件为具有>0的第一数位的n数位十进制数d,所述n数位十进制数用于排除具有可被d除的序数的任何输出标记。为重构水印数位,我们针对从10n-1至10n-1的每一数字创建具有区间的直方图。对于每一标记,我们针对所有标记序数的因子使区间计数递增。具有零计数(或较小计数,稳健的以抵抗恶意添加的行)的第一区间显示水印数位(可存在多个空区间,如果所选因子的倍数存在于空间区间内的话,例如,如果我们在序数可被20除时移除所有标记,则我们还在序数可被40、60或80除时移除所有标记)。n应关于需要标记化的唯一输入值的数目设定,较大量的数据需要较大的n值(需要更多的标记,因此可丢弃更少的数据),但这还提供较大的水印可区分性。非概率性技术概率性方法还可与非破坏性加水印技术组合,所述非破坏性加水印技术例如对数据集内的记录或数据字段重新排序。一些其他方法:●以特定次序对行排序,以列优先的某一次序排序或以某一随机查看次序排序●对列排序●移除多个特定行●将多个特定的合成行添加到数据●移除数据中的特定字段或将所述特定字段设定为零或使所述特定字段为空值●将少量具体的异常值或保留的标记添加到数据●修改编号,因此一些数位比平均值更加频繁或不如平均值频繁地出现●通过以特定的加密密钥对一些字段加密来标记化/模糊化所述字段,通过尝试哪一密钥对数据集中的字段解密,所述文件可连接至特定的发布●将以下隐藏或不可打印的字符引入到一些字符串●记录文件的散列码/校验和●记录文件的具体行的散列码/校验和工作示例输入文件考虑将被匿名化的简单hr数据表的前几行:用户希望用正则表达式employee-[0-9]{6}来标记化姓名并扰乱/模糊年龄和工资值。水印假设行技术足以将2个水印数位各自用于标记化方法、行移除以及行添加技术。年龄列中的数字较小,仅需要6个位来表达整个范围。因此,我们仅将一个数位用于此列。然而,工资值大得多,需要16个或更多个位。因此我们选择将5个位用于此列。对于此示例,我们假设这两列的精度为单个位。这向我们给出12个数位的总水印长度。随后产生具有此长度的随机水印,且所述水印的数位被分配给各种水印载体,如图1中所示。加水印方法必须首先处理单元级水印匿名化,因为所述单元级水印匿名化改变提供到行级技术中的数据。姓名标记化对所有可能的标记以词典编纂方式排序给出关于以下各项的列表:employee-000000employee-000001employee-000002…employee-999999此载体的水印数位为1和4,因此我们排除其中在我们排序的列表内的标记的序数可被14除的任何标记。例如,将不使用标记employee-000013和employee-000027,因为它们的序数相应地为第14和第28。年龄模糊此水印载体具有单一数位6。我们使用此来确保在模糊值中设定最低有效位的概率为0.6。假设在其上应用水印的模糊方法对值增加高达±5%的噪声,此方法的示例输出可为:输入输出二进制525211010043421010104747101111292911101505111001124251100138381001103233100001292811100工资模糊此水印载体具有五个数位77698。由于我们正使用精度1,因此这些数位中的每一个除以10以给出针对五个最低有效位设定的概率。同样,假设来自下层的模糊操作的±5%的噪声,示例输出可为:输入输出二进制3862538651100101101111101147587476151011100111111111528225283111001110010111113033030332111011001111100425054251910100110000101112900029003111000101001011557855580111011001111110014551245535101100011101111137009371191001000011111111行移除此技术的水印数位为25,因此我们移除其中通过散列整行获得的散列处于散列数空间的0.24与0.25之间的所有行。例如,使用128位murmur3散列算法,可能的散列值处于-9223372036854775808->9223372036854775807的范围中,因此在我们的水印数位的情况下,我们将省略散列至处于范围-4796153459164483420->-4611686018427387904中的值的任何行。行添加此技术的水印数位为16,因此我们产生散列至散列数空间的范围0.15->0.16内(即,处于范围-6456360425798343065->-6271892985061247549中)的值的合成行。读取水印为读取经编码水印,我们遍历所得文件,且对于每一行,更新载体中的每一个中的某一状态,所述状态将允许我们向载体请求所述载体对载体的水印数位的估计。这些估计的精度随每一添加的行改进,且不久变得对于我们而言足够高以确信地从寄存器选择正确的水印。姓名标记化对于两个数位概率中的每一个(10-99,因为我们禁止前导零),我们测试以观察当前行的标记序数是否可被所述数字除。对于每一行,我们通过针对标记序数的每一因子使计数递增来构建直方图。在处理所有标记行之后,我们可通过寻找具有零计数的最小区间来推断出水印数位。使用我们的水印数位14,来自此方法的示例输出可如图2中示出,其中直方图对于14、28、42、56等降为零。年龄/工资模糊对于已被扰乱的每一位,我们对行数进行计数,其中所述位被设定(1)且除以行计数以向我们给出被使用的概率。随后,我们将此概率四舍五入至指定的精度以获得水印数位。行移除/添加我们将散列数空间划分成通过在水印载体中使用的数位的数目确定的宽度的区间,在我们的示例中,所述数位的数目为2,从而向我们给出1%宽度的区间。随后我们通过散列每一行并使散列所属区间中的计数递增来构建直方图。我们的情境的示例输出在图3中示出,其中可清楚地看到,从15%至16%的区间被过度呈现且从24%至25%的区间不包含数据,从而向我们给出用于行添加的水印载体数位16和用于行移除的水印载体数位25。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1