主要的数据匿名化技术包括遮盖、泛化、聚合、加噪、交换、令牌化、假名化和哈希,以及两种衡量结果的方法:k-匿名性和差分隐私。单独使用任何一种技术都不够。欧洲监管机构指出,每种技术都仍存在一定的重新识别风险;只有在没有人能够通过合理手段推断出一条记录与谁有关时,数据才算匿名。
衡量每种技术的基准
根据 GDPR 和英国 GDPR,匿名信息不受数据保护法约束,而个人数据则受其约束。 序言第 26 条 划定了界限:应考虑所有“合理可能被使用”的手段,例如单独识别,以直接或间接识别某人。同一序言还指出,能够借助附加信息归属于某个人的假名化数据,仍然是与可识别个人有关的信息。
当时的欧盟数据保护监管机构——第 29 条工作组——在其 《关于匿名化技术的第 05/2014 号意见》 (WP216)中将其归纳为三个问题:是否仍有人能够单独识别某个人?能否将同一个人的两条记录关联起来?能否推断出有关某个人的信息?该意见的结论是,在某些情况下,它审查的每种技术至少有一项未能通过这些问题的检验,因此需要组合使用多种技术。英国监管机构于 2025 年 3 月 28 日发布的 匿名化与假名化指南也采用了相同的基于风险的观点。
如果您需要先了解匿名化、假名化和删节之间的区别,请从 为 AI 选择合适的方法开始。本文介绍的是各种具体技术。
示例记录
以下所有示例都以同一条虚构的人力资源记录为例:
Anna Kowalski, born 12.03.1989 (37), 14 Elm Street, Leeds,
anna.kowalski@example.com, staff nurse, 12 days of sick leave
移除或模糊数值的技术
遮盖与抑制
遮盖是隐藏数值的一部分;抑制则是删除数值、列或整条记录。
A***** K*******, born **.**.1989, [address removed], staff nurse
它可以防止直接识别。它会破坏所有需要用到被移除值的用途,而且无法从输出结果还原。保留下来的内容仍可能指向 Anna:在一个小病区里,要找到一名 1989 年出生的护士并不难。仅靠遮盖很少能让数据实现匿名化。
泛化
泛化是用范围更宽泛的值替换精确值。
age 37 → 30-39; 14 Elm Street, Leeds → Leeds; staff nurse → healthcare worker
它通过让许多人看起来相似来防止单独识别。它会损失精确度:您无法再判断谁的年龄较大。它无法还原。结果是否匿名,取决于每种属性组合对应的人数;这正是 k-匿名性衡量的内容(见下文)。
聚合
聚合是发布总数或平均值,而不是个人记录。
Ward 4, 2025: 23 nurses, average sick leave 9.4 days
只要每个群组人数足够多,它就能保护个人。它会破坏所有针对单个人的问题。如果群组只有一两个人,平均值就会泄露个人数值,因此通常会抑制人数过少的单元格。
加噪(扰动)
加噪是对数值进行小幅随机改动。
age 37 → 39; sick leave 12 days → 10 days
它能使统计结果大致保持准确,同时使每个数值都不再可靠。它会破坏精确数值。WP216 警告说,除非噪声足以覆盖信息,否则加噪不能单独作为匿名化方法:离群值(例如唯一一名休了 90 天假的人)仍然容易辨认。
交换(置换)
交换是在记录之间调换数值,因此每一列的总数保持不变,但行中的数值不再属于同一个人。
Anna's 12 days of leave ↔ another nurse's 3 days
它能防止将某个数值与某个人关联起来。它会破坏各列之间的关系;WP216 指出,如果交换后的数值与其他列有关联,这种方法就会失效:经理的薪资被调换到初级职位上,就会显得格外突出。
替换标识符的技术
令牌化
令牌化是用随机令牌替换标识符,并将关联信息保存在一张单独的受保护表格中。
anna.kowalski@example.com → TKN-8F3K2Q
ICO 指出,随机令牌与原始值不存在数学关系,因此单凭令牌无法泄露任何信息。持有该表格的人可以还原数据,这就是为什么对他们而言,结果仍属于个人数据。
使用一致占位符进行假名化
为每个人、公司或地址指定一个易读的占位符,同一个值始终使用同一个占位符。
Person_1, born [Date_1], [Address_1], staff nurse.
Person_1 asked Person_2 to approve the leave.
它会隐藏直接标识符,同时让“谁做了什么”仍然清晰可读,这对文本很重要。文档的逻辑得以保留。借助映射表可以还原;根据序言第 26 条,它仍属于个人数据。关于持钥匙者问题的详细说明,请参阅我们的文章 假名化数据是否仍属于个人数据.
哈希
哈希是将一个值通过单向函数处理,并保留输出结果。
anna.kowalski@example.com → 3f9a…c71e (SHA-256)
它看起来无法还原,但对于姓名和电子邮件地址,往往并非如此。任何拥有可能值列表的人都可以逐个计算哈希并进行比较:员工姓名或公司地址的数量毕竟有限。WP216 针对已知输入范围指出了这一点;ICO 建议不要 在不使用盐值、密钥或密钥化处理的情况下进行哈希,也不建议使用 MD5 和 SHA-1 等过时算法,因为它们容易遭受暴力破解攻击。带密钥的哈希属于假名化;对电子邮件进行普通哈希处理,几乎算不上假名化。
k-匿名性与差分隐私
这些不是用来更改数值的方法,而是用来检查或保证整个数据集受到保护的程度的方法。
k-匿名性 是指每一种识别属性组合(年龄段、城镇、职业)至少由 k 条记录共享。当 k = 5 时,Anna 至少能隐藏在另外四个看起来相同的人之中。但它无法阻止推断:如果利兹所有五名 30 至 39 岁的医护人员都休了十天以上的假,您就能据此推断 Anna 的情况。 l-多样性 增加了一项规则:每个群组都必须至少包含 l 种不同的敏感属性值。
差分隐私 作用于答案,而非记录。它会在每项已发布的统计数据中加入噪声,并校准噪声,使得无论某个人是否出现在数据中,答案几乎都不会变化。保护程度由一个参数设定;保护越强,数据就越不准确。美国人口普查局 在 2020 年人口普查的数据产品中使用了差分隐私 ,用于按州划分的选区分配总数除外。它适用于统计数据;对于需要阅读的文件,它毫无作用。
处理表格数据时,工具可以替您完成这些衡量工作。 ARX是一款免费开源的桌面工具和 Java 库(采用 Apache 2.0 许可证;截至 2026 年 10 月的版本为 3.9.2),可对结构化数据应用泛化、抑制和微聚合,并根据 k-匿名性、l-多样性、t-接近性和差分隐私检查结果。它还会估算剩余的重新识别风险。它适用于 CSV 文件、Excel 表格和数据库表等数据集,而不适用于合同或信件。
各种技术对比
| 技术 | 可防范 | 会破坏 | 可还原 | 根据 GDPR,仍属于个人数据 |
|---|---|---|---|---|
| 遮盖、抑制 | 直接识别 | 任何需要用到该数值的用途 | 否 | 通常可以,只要还保留其他细节 |
| 泛化 | 单独识别 | 精确度 | 否 | 取决于群组大小 |
| 聚合 | 单独识别、关联 | 所有针对个人的问题 | 否 | 通常不会,前提是群组足够大 |
| 噪音 | 精确数值 | 精确数据 | 否 | 通常可以,若单独使用 |
| 交换 | 将数值与某个人关联起来 | 各列之间的关系 | 否 | 通常可以,若单独使用 |
| 令牌化 | 直接识别 | 很少 | 可以,需持有该表格 | 是 |
| 假名化(占位符) | 直接识别 | 很少;文本仍然可读 | 可以,需持有映射表 | 是 |
| 哈希 | 随意浏览 | 很少 | 通常可以通过猜测做到,即使没有密钥 | 是 |
| k-匿名性、l-多样性 | 单独识别;推断(l) | 精确度、部分记录 | 否 | 取决于 k、l 和具体情境 |
| 差分隐私 | 从统计数据中获知有关某个人的信息 | 精确数据、所有针对个人的用途 | 否 | 取决于参数 |
大多数行都写着“视情况而定”,因为数据集是否匿名,要结合具体情境对整个数据集作出判断,而不是针对某种技术逐项判断。对于你计划作为匿名数据发布或分享的任何内容,请咨询你的数据保护官或数据保护律师。
哪些技术适用于提供给 AI 的文件
用于统计的数据集和供 AI 聊天机器人阅读的文档,需求恰恰相反。统计需要大量数据行,且不包含任何个人;聚合、泛化、k-匿名和差分隐私都是为此设计的。合同、电子邮件往来或申诉信涉及特定人员,AI 必须能够区分他们。
对于文档,主要有三种技术可以发挥作用:
- 对姓名、公司、地址、电子邮件和身份证号进行假名化,并使用一致的占位符。Person_1 在全文中始终对应 Person_1,这样 AI 就能分辨是谁写了什么、谁欠谁什么。黑条或统一的“[已删除]”会抹去这些信息;请参阅 为什么占位符效果更好.
- 对问题不需要精确到具体日期或地点的内容进行泛化:“2025年3月”而不是某一天,“英格兰北部的一座城市”而不是某条街道。
- 对问题完全不需要的内容进行抑制,例如,你只询问通知期限,却在文档中包含健康细节。
噪声、置换和差分隐私不适用于这里:更改文档中的事实会导致 AI 给出错误答案。哈希会把姓名变成字符串,包括 AI 在内的任何人都无法结合上下文理解这些字符串。
结果属于假名化数据,因此数据保护规则仍然适用于你。变化的是离开你电脑的数据内容。如果你正在为此选择软件,我们的 假名化工具选购指南 会介绍数据会流向哪里,以及姓名如何还原。
常见问题
最有效的数据匿名化技术是什么?
没有单一的最佳技术。WP216 发现,在某些情况下,它审查的每种技术至少有一项未能通过三项测试之一。对于统计数据集,使用 k-匿名衡量的泛化和抑制,或差分隐私,能取得最好的效果。对于 AI 必须阅读的文档,实际可行的做法是假名化,并对日期和地点进行泛化;这并不属于匿名化。
对电子邮件地址进行哈希就足以将其匿名化吗?
不够。电子邮件地址遵循可预测的模式,因此攻击者可以对一份可能的地址列表进行哈希,然后匹配结果。带密钥的哈希或随机令牌更安全,但两者仍然属于假名化,而非匿名化。
表格数据的匿名化工具有哪些?
ARX 是一个免费、开源的示例:你可以载入 CSV、Excel 文件或数据库表,设置泛化和抑制规则,选择 k-匿名等隐私模型,然后查看工具报告的剩余风险。这类工具处理的是列和行,而不是连续文本。
匿名化数据是否受 GDPR 管辖?
根据序言第 26 条,真正匿名的数据不受 GDPR 管辖。假名化数据则受其管辖。难点在于证明没有人能够合理地重新识别数据,因此监管机构将匿名化视为风险评估,而不是单一的一步操作。
ClientSafe 在你的 PC 上对文档进行假名化处理:它会将姓名、公司、地址、电话号码、电子邮件地址、账户和身份证号以及出生日期替换为 Person_1 等占位符,并在同一案件的所有文档中对同一姓名使用相同的占位符。检测并不完美,因此在复制之前请检查列表。