【问题标题】:Database anonymization : Using additive noise数据库匿名化:使用加性噪声
【发布时间】:2020-08-18 04:36:26
【问题描述】:

我想做一个涉及使用附加噪声来保护数据库免受推理攻击的实验。

我的数据库应该首先生成一个平均值为 25 的特定值列表,然后我将通过添加一个随机噪声值来匿名这些值,该随机噪声值被设计为具有 0 的预期值。

例如:
我可以使用 [-1,1] 范围内的均匀分布噪声,也可以使用平均值为 0 的正态(高斯)噪声。

我将为具有不同噪声的 100、1000、10000 值的数据库测试这种匿名化方法。

我对使用哪个平台以及如何使用感到困惑,所以我从 Excel 中的 10 个值开始,对于均匀分布的噪声值,我使用 RAND() 并添加到实际值,对于正常噪声,我使用 Norm.Inv 和平均值0,然后我加上实际值。

但是我不知道如何从黑客的角度解释数据,当我向数据集添加噪声时,当数据集变大时,我如何解释它对隐私的影响?

另外,我应该使用数据库工具来处理这个问题吗?

【问题讨论】:

    标签: database privacy anonymize anonymity


    【解决方案1】:

    据我了解,您正试图保护您的“实验”数据库免受推理攻击。

    攻击者尝试使用已允许公开使用的查询从数据库中窃取信息。首先,尝试确定您的标识符、准标识符和敏感值。

    考虑一个学生管理系统,其中包含每个学生的 GPA。我们知道 GPA 是一个敏感信息。标识符是“student_id”,准标识符是“站立”,比方说“性别”。在大多数情况下,RDBM 系统的管理员允许聚合查询,例如“获取所有学生的平均 GPA”或“获取高年级学生的平均 GPA”等。攻击者试图从这些聚合查询中推断。如果不知何故只有一名高年级学生,则查询“获取高年级学生的平均 GPA”将返回一个特定人员的 GPA。

    有两种主要方法可以保护数据库免受此类攻击。去识别化和匿名化。去标识化意味着从数据库中删除任何标识符和准标识符。但这在某些情况下不起作用。考虑一位在成绩公布后参加补考的学生。如果你得到他参加考试前后所有学生的平均 GPA,并比较查询的结果,你会看到少量的变化(比如说,从 2.891 到 2.893)。攻击者可以从这 0.002 的总 GPA 差异推断出该特定学生的补考成绩。

    另一种方法是匿名化。使用 k-匿名,您可以将数据库分成至少有 k 个实体的组。例如,2-匿名确保没有包含单个实体的组,因此对单个实体组的聚合查询不再泄漏私人信息。

    除非,是一个组中的两个实体之一。

    如果一个班级有 2 位高年级学生,并且您想知道高年级学生的平均成绩,则 2-匿名可以让您获得该信息。但如果你是大四学生,并且已经知道自己的成绩,就可以推断出其他学生的成绩。

    向敏感值添加噪声是处理这些攻击的一种方法,但如果噪声太低,那么它对泄露的信息几乎没有影响(例如,对于成绩,知道某人有 57 分(满分 100 分)而不是 58 分)几乎没有区别)。如果它太高,则会导致功能丧失。

    您还询问了如何解释随着数据集变大对隐私的影响。如果你对一个非常大的数据集取平均值,你会发现你找到的结果实际上是 everyone 的敏感值(这可能有点复杂,但认为数据集是无限的,并且敏感信息可以取的值是有限的,然后计算概率)。添加均值为零的噪声是可行的,但随着数据集的变大,噪声的范围应该会变宽。

    最后,如果您使用的是 excel,它不是 RDBMS 而是电子表格,我建议您想出一种方法来使用 SQL 查询的等价物,设置数据集的标识符和准标识符,以及公共查询任何人都可以执行。

    此外,除了匿名性之外,请查看数据集的“多样性”和“接近性”以及它们在数据库匿名化中的用途。

    我希望这能回答你的问题。 如果您还有其他问题,请询问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 2020-06-06
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多