想象你是一家大型企业的数据安全主管,要办一场特殊的“数据变装舞会”。舞会的主角不是人,而是一条条包含姓名、手机号、住址、收入等隐私的数据记录。在它们被送到开发工程师、数据分析师甚至外部合作方手里之前,必须换上“伪装服”:姓名变成“张”,手机号变成“138***5678”,住址只写到“北京朝阳区”,收入加上一点随机噪声。这套换装技术,就是数据脱敏与匿名化。它的核心目标很朴素:既让数据在舞会上继续发挥作用,又让人无法通过这些数据认出某个具体的人。 但这场舞会并不简单。你首先要搞清楚哪些字段可能暴露身份;然后要选择打码、泛化、扰动还是令牌化;如果不够安全,还要让数据“淹没在人群中”,比如 k-匿名和差分隐私;最后还要有流程、工具、审计和合规检查。本篇文章会用一个贯穿始终的“变装舞会”故事,带你从零看懂数据脱敏匿名化技术方案。
掌握数据脱敏与匿名化,是 AI 和数据从业者守住合规底线、让数据安全流通的必备技能。它决定你的模型敢不敢用真实数据,也决定企业能不能放心把数据交给第三方。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
脱敏:降低敏感度 | 匿名化:不可逆处理 | k匿名:群组不可区分 可逆 (令牌映射表) 假名化:令牌替代原始标识符 | 可逆 | 保留数据关联性 分级标签触发:"核心个人信息" → 假名化+泛化 数据脱敏匿名化技术方案可视化:展示脱敏与匿名化概念对比、静态/动态脱敏差异、假名化令牌映射、k匿名分组机制、差分隐私噪声注入、以及数据管道自动脱敏流程。
1. 敏感数据识别:先找到舞会上的“可识别客人”
变装舞会的第一件事,不是发服装,而是盘点来宾身上挂了哪些信息牌。有人胸前写着姓名和身份证号,有人衣角贴着年龄、性别和邮编,还有人腰间别着收入、健康等敏感标签。前两样让人一眼认出来,第三样虽然不能认人,却绝不能外传。保安需要先把这些标签分成三类,才知道接下来要给谁换装。
在数据安全领域,这三类标签分别叫“直接标识符”“准标识符”和“敏感属性”。直接标识符如姓名、身份证号、手机号,单独出现就能锁定一个人;准标识符如年龄、性别、所在城市、出生日期,单独看很普通,但多个组合在一起,就像舞会里“28 岁、男性、北京朝阳区、程序员的晚餐”一样,可能把范围缩小到极少数人;敏感属性如收入、疾病、婚姻状态,不负责“认人”,但泄露会直接造成伤害。
做数据脱敏前,先要完成数据资产盘点与分级分类:从数据库表、日志、接口字段中找到这些信息,并把它们加入保护名单。保护名单可以用集合来表达。
识别阶段就像保安在门口查标签:只有先看清哪些信息能认人、哪些信息很敏感,后面的“变装方案”才有的放矢。很多脱敏项目失败,不是因为算法不够强,而是因为一开始就漏掉了某个准标识符。
- \(P\)待保护字段集:最终需要进入脱敏流程的所有字段,相当于保安的重点观察名单。
- \(D\)直接标识符集:像姓名、身份证号、手机号,单个值就能直接指认某个人。
- \(Q\)准标识符集:像年龄、性别、城市、邮编,单独无害,组合起来却能收缩身份范围。
- \(S\)敏感属性集:像收入、病历、婚姻状况,不负责认人,但泄露后会造成严重伤害。
- \(\cup\)并集运算:三类字段只要命中任意一类,就被纳入保护范围,不需要同时满足。
2. 脱敏核心方法:给标签换一套“无声伪装”
确定重点观察名单后,舞会后台的“化妆间”开始忙碌。这里有四套固定的伪装工具:第一套是黑色胶带,把手机号中间的几位粘住;第二套是模糊眼镜,让具体年龄变成“20 多岁”;第三套是谎报体重,给收入加上一点随机误差;第四套是衣帽间取号牌,把真名收进保险箱,只给客人一个随机的号码牌。
对应到技术世界,这四套工具就是脱敏的四种核心方法:字符替换打码、泛化处理、扰动技术、令牌化映射。字符替换打码是最常见的操作,比如把电话号码变成 1385678,把姓名变成 张*;泛化是把精确值变成更模糊的范围,比如把生日 1985-06-03 变成 1985年6月,把地址变成市级;扰动是给数值加少量噪声,让单条记录失真但整体统计特征不变;令牌化是用随机生成的令牌代替原文,真实的原文被安全存放在“令牌保险箱”中,只有授权场景才能映射还原。
以字符替换打码为例,可以写成一个简洁的脱敏函数:
这四种方法不是互斥的。真实项目中,姓名常用打码,地址常用泛化,收入常用扰动,身份证号常用令牌化。化妆间里的工具越齐全,就能根据不同的数据形态组合出最合适的“伪装服”。
- \(M(x)\)脱敏后的结果:表示对原始字符串 x 执行打码伪装后的输出。
- \(L\)原始字符串长度:比如手机号长度是 11 位。
- \(a\)明文保留长度:决定前几个字符保持原样,通常由业务规则提前定好。
- \(x[0a]\):保留前缀:取出 x 的前 a 个字符,这是信息残留的部分。
- \(\underbrace{\cdots}_{L-a}\)星号填充:把剩余 L-a 个字符逐一替换成星号,达到“打码”效果。
- 分段条件 \(L > a\)当原始字段足够长才打码;如果本身很短,就不做处理,避免完全失去字段含义。
3. 匿名化模型:让个人淹没在人群里
只穿“伪装服”还不够。如果整个舞会只有一个人穿红色连衣裙,那这件衣服反而成了最显眼的标识。所以主办方会把人分成小组,每组至少 k 个人穿同款服装,让大家淹没在人群里。这还不够,如果一组人衣服相同,但胸口都写着“确诊某罕见病”,隐私照样泄露。于是又有了 l-多样性和 t-接近性:要求组内敏感信息足够多样,且分布和整体人群接近。而差分隐私则更进一步,像在调查问卷中加入“掷硬币”规则,让回答者个人是否说了真话不可判断,但群体统计结果仍然可信。
k-匿名是匿名化模型中最基础的一种:把数据按准标识符分组,每一组至少有 k 条记录完全无法区分。l-多样性则是对 k-匿名的补充,要求同一个等价组里的敏感属性至少有 l 个不同取值,避免“组内所有人同病相怜”的尴尬。
k-匿名和 l-多样性是经典的匿名化模型,但面对外部关联攻击仍然不够。差分隐私通过给统计结果注入受控噪声,让攻击者无论怎么查询,都很难反推出某个个人;同时,整体趋势依然稳定。这正是“舞会可以统计总人数,但说不出谁几点离开”的现代匿名化思路。
- \(G\)等价组集合:数据按准标识符分组后形成的所有小组。
- \(g\)某一个等价组:舞会里穿同款服装的一组人,或数据中准标识符完全相同的一组记录。
- \(|g|\)组内记录数量:这一组里有多少条数据。
- \(k\)匿名程度阈值:每组至少需要多少条记录才能让个体淹没在人群中。
- \(\mathrm{distinct}(A_g)\)组内敏感属性不同取值数:比如收入字段在这一组里有多少种金额档位。
- \(l\)多样性阈值:敏感属性至少要有 l 种不同结果,防止整组信息一模一样。
4. 脱敏工程流程:从入场登记到散场检查
一场成功的变装舞会,不能只靠化妆间,还要有一整套后台流程:先确认来宾名单,再评估哪些人风险高,然后分配服装,上台前逐个检查,散场后还要复盘记录。数据脱敏同样不是一个“跑一条 SQL 就完事”的命令,而是一条完整工程流水线。
标准流程通常包括四步:资产盘点发现、策略规则配置、执行脱敏任务、验证效果评估。第一步是找出所有数据库表、文件、消息队列中的敏感字段;第二步是为每个字段选择合适的脱敏算法和参数,比如手机号打码、住址泛化、收入扰动;第三步是批量执行脱敏任务,可能是凌晨定时跑批,也可能是实时接口拦截;第四步是验证覆盖率、检查重识别风险,并生成审计报告。
流程是否到位,可以用一个简单的覆盖率指标来度量:
验证阶段不能只看覆盖率,还要做随机抽查和重识别攻击测试:试着用泛化后的数据是否能重新定位到个人。如果还能定位,说明服装还是太“显眼”,需要增加泛化程度或合并等价组。舞会结束后,审计日志也会记录谁在何时访问过什么数据,为后续追溯提供证据。
- \(r_{\text{cover}}\)脱敏覆盖率:用来衡量所有应保护数据中有多少比例真正完成了脱敏。
- \(n_{\text{masked}}\)已脱敏记录数:已经成功执行脱敏的字段或记录数量。
- \(n_{\text{total}}\)应脱敏记录总数:根据敏感数据识别结果,需要纳入保护范围的记录总数。
- 分数形式已处理数量除以总数量,得到 0 到 1 之间的比例。
5. 工具与平台:门卫、衣帽间和化妆间
舞会现场除了化妆间,还有门卫、衣帽间和巡逻队。门卫负责实时检查每个进场的人是否穿好了规定服装;衣帽间负责把真实贵重物品存在保险柜;巡逻队负责在衣服上做隐形标记,一旦有人泄露舞会照片,能根据标记找到源头。数据脱敏的工具与平台,恰好对应这三类角色。
静态脱敏工具就像化妆间:它从生产数据库读取数据,生成一份脱敏后的副本,供测试环境或分析环境使用,生产库中的数据不变。动态脱敏网关则像门卫:应用在查询接口上,当用户请求真实数据时,网关根据用户权限实时把敏感字段替换成脱敏值,用户看到的是脱敏结果,但底层数据库仍是原样。数据水印技术像在数据中加入肉眼难察的“荧光粉”:一旦脱敏后的数据被非法转卖,可以通过水印定位到是哪个渠道、哪个时间点泄露的。
在实时拦截场景下,性能开销是选型的关键,通常可以拆解为:
工具选型没有银弹。静态脱敏适合复制数据到低安全环境,动态脱敏适合对外提供查询接口,水印则适合追踪泄露责任。大型企业通常组合使用:内部开发用静态副本,对外开放接口用动态网关,核心数据上传前先打水印,形成“化妆间 + 门卫 + 巡逻队”三道防线。
- \(T_{\text{total}}\)总耗时:一次经过脱敏网关的数据请求从进入到返回的总时间。
- \(T_{\text{parse}}\)解析耗时:网关需要先读懂请求,判断它访问了哪些字段。
- \(T_{\text{policy}}\)策略匹配耗时:根据访问者身份和数据等级,匹配对应的脱敏规则。
- \(T_{\text{mask}}\)脱敏执行耗时:真正执行打码、泛化或令牌映射算法的时间。
- \(T_{\text{io}}\)输入输出耗时:读取数据库和返回结果给调用方的时间。
6. 合规与挑战:舞会规则与隐形风险
再漂亮的变装舞会,也要遵守法律和主办方规则。有人会偷偷摘下面具,有人会拿着照片和别人比对,还有人会故意让两个数据源关联起来,重新识别出个人身份。合规与挑战因此成为数据脱敏中最现实的一环。
国内外法规如《个人信息保护法》、GDPR 都对个人信息处理提出了“去标识化”“匿名化”要求。法律上的“匿名化”标准非常严格:一旦完成匿名化,数据就无法再识别到特定个人,也不再属于个人信息;而“去标识化”只是降低风险,仍可能关联回去。与此同时,重识别风险无处不在:即使删掉姓名,只要年龄、性别、邮编、职业组合起来足够稀有,攻击者就能通过外部数据“按图索骥”。
在简化模型下,重识别概率可以用等价组最小规模来估算:
真正的挑战在于“安全与效用的平衡”。盲目把所有字段都泛化成“中国”“人类”,隐私确实安全了,但数据分析基本报废;噪声加得太大,统计规律也被淹没。因此,审计与监控要贯穿始终:每一次脱敏策略变更、每一次查询访问都要留痕,定期用新的外部数据重新做重识别攻击测试,像舞会散场后反复检查是否有面具掉落一样。
- \(P_{\text{reid}}\)重识别概率:攻击者通过准标识符合法地猜中某个具体个体的可能性。
- \(k_{\min}\)最小等价组规模:数据集中人数最少的那一组有多少条记录。
- \(1 / k_{\min}\)均匀猜测概率:在理想匿名化模型下,攻击者无法区分组内记录,只能等概率猜测。
7. 典型应用场景:让数据在三个分会场安全流动
舞会结束后,数据还要被送往三个不同分会场:彩排室、分析室和合作方大厅。三个会场的安全等级不同,着装要求也不同。彩排室可以穿“宽松版伪装服”,分析室需要“既保密又保留统计特征”,合作方大厅则必须“滴水不漏”。
第一个场景是测试开发环境。传统做法是把生产数据库直接复制到开发环境,姓名、手机号、身份证全部裸露,极易泄露。正确做法是用静态脱敏工具生成一份结构相同、格式一致、但内容全部打码的副本,让测试脚本无需修改就能运行。第二个场景是数据分析与建模。数据科学家需要年龄、地域、收入等字段训练模型,但不能直接接触真实个人数据,于是采用泛化、扰动和差分隐私,让模型学到群体规律而看不到个体细节。第三个场景是第三方数据共享与跨境传输。企业把数据交给合作伙伴或海外机构前,会使用令牌化替换敏感标识,同时嵌入水印,一旦数据被再次转发,可以通过水印追责。
数据可用性可以用一个简单的效用指标来评价:
三个分会场说明了一个重要道理:脱敏不是为了把数据锁进保险柜,而是为了让数据在安全边界内继续创造价值。选择哪种技术方案,取决于数据要去哪里、给谁用、法律怎么要求。理解了这七个环节,你就掌握了数据脱敏匿名化技术方案的完整地图。
- \(U\)数据效用分数:衡量脱敏后数据还能多大程度支持原来的统计分析。
- \(v_i\)原始值:第 i 条记录的原始数值,比如某个用户的月收入。
- \(\tilde{v}_i\)脱敏后的值:经过扰动或泛化后的对应值。
- \(|v_i - \tilde{v}_i|\)绝对偏差:单个记录脱敏前后的差异有多大。
- \(R\)字段值域宽度:该字段在数据集中的最大值减最小值,用来把偏差归一化到 0 到 1 之间。
- 平均值和 1 减平均相对偏差越小,效用越高,所以用 1 减去平均相对偏差。
AI 应用场景
场景一:测试开发环境“彩排室”
阶段:数据准备
解决的问题:传统开发环境直接连接生产数据库,真实姓名、手机号、身份证号暴露在测试脚本、日志和本地开发机中,一旦被员工复制或泄露,后果严重。AI 应用的做法是先用静态脱敏工具生成一份与生产环境同 schema、同数据分布、但已打码和泛化的副本,让开发和测试团队在“彩排室”里安全演练。
具体案例:某金融科技公司搭建 AI 反欺诈模型测试环境时,将生产库中 2000 万条用户记录通过脱敏平台处理,姓名保留首字,手机号中间四位打码,身份证号整体令牌化;测试环境里的日志、崩溃报告、监控大盘都不再出现明文 PII,模型效果与生产环境基本一致。
场景二:数据分析与建模“分析室”
阶段:特征工程与模型训练
解决的问题:数据分析师需要年龄、地域、收入等字段训练用户画像模型,但直接使用真实个人数据会带来隐私合规风险。AI 工程团队通过泛化年龄分箱、收入扰动、k-匿名分组,让模型学习到群体统计规律,同时无法反推某个具体用户。
具体案例:一家医疗 AI 团队要研究“不同年龄段就诊频率”与地区的关系。原始记录经过差分隐私加噪后,单个人是否就诊、就诊几次都无法准确判断,但各个年龄段和地区的平均就诊率依然稳定;最终报告通过合规审查,对外发布也不再包含个人隐私。
场景三:第三方共享与数据跨境“合作方大厅”
阶段:数据共享与合规交付
解决的问题:企业向外部合作方或海外机构提供数据时,既要满足合同和法规要求,又要防止数据被转卖后追溯不到源头。令牌化让合作方拿到的是无法还原真实身份的随机编号,动态脱敏网关控制每次查询的返回粒度,水印则记录数据包的去向。
具体案例:某跨境电商公司向海外分析平台共享订单数据时,将用户 ID、手机号、收件人姓名替换为随机令牌,真实映射存放在国内保险库;每个数据包嵌入独立水印,后来发现某合作方违规转售数据,团队解析水印定位到具体交付批次,完成了追责。
Python 演示
# -*- coding: utf-8 -*-"""数据脱敏匿名化小工具演示"""import hashlibimport randomfrom collections import defaultdict SENSITIVE_FIELDS = ["salary"]QUASI_IDENTIFIER_FIELDS = ["age", "district"] def mask_name(name): if len(name) <= 1: return "*" return name[0] + "*" * (len(name) - 1) def mask_phone(phone): return phone[:3] + "****" + phone[-4:] def generalize_age(age): age = int(age) return f"{age // 10 * 10}s" def generalize_district(district): return district.split(",")[0] def perturb_salary(salary, seed=42): rnd = random.Random(seed) return round(int(salary) * (1 + rnd.uniform(-0.05, 0.05)), 2) def pseudonymize_id(id_value, salt="masker"): digest = hashlib.sha256((salt + id_value).encode("utf-8")).hexdigest() return "TKN-" + digest[:12].upper() def mask_record(record): return { "id": pseudonymize_id(record["id"]), "name": mask_name(record["name"]), "phone": mask_phone(record["phone"]), "age": generalize_age(record["age"]), "district": generalize_district(record["district"]), "salary": perturb_salary(record["salary"]), } def k_anonymity_report(records, k=2): groups = defaultdict(list) for rec in records: key = (rec["age"], rec["district"]) groups[key].append(rec["id"]) min_group = min(len(value) for value in groups.values()) return { "k": k, "min_group_size": min_group, "passed": min_group >= k, } if __name__ == "__main__": raw_data = [ { "id": "001", "name": "张三", "phone": "13812345678", "age": 28, "district": "北京市朝阳区望京街道", "salary": "12000", }, { "id": "002", "name": "李四", "phone": "13987654321", "age": 31, "district": "上海市浦东新区花木街道", "salary": "15000", }, { "id": "003", "name": "王五", "phone": "13700001111", "age": 28, "district": "北京市海淀区中关村街道", "salary": "16000", }, ] masked_data = [mask_record(record) for record in raw_data] for value in masked_data: print(value) print(k_anonymity_report(masked_data))
mask_name(name)姓名只保留第一个字,其余变成星号,对应舞会上的“黑色胶带”。phone[:3] + "****" + phone[-4:]手机号保留前 3 位和后 4 位,中间打码,是业务最常用的打码规则。generalize_age(age)把精确年龄变成“20s”“30s”这样的年龄段,属于泛化伪装。perturb_salary(salary, seed=42)给工资加 ±5% 的随机噪声,保证统计规律仍可使用。pseudonymize_id(id_value, salt="masker")基于盐值哈希生成不可逆假名,实际生产中的令牌化通常还要搭配可授权的映射保险箱。k_anonymity_report(records, k=2)按年龄和地区分组并计算最小等价组规模,判断当前数据是否满足 k-匿名。if __name__ == "__main__":让脚本既可以作为工具函数被导入,也可以直接运行查看脱敏效果。
常见误区
误区很多人认为,把姓名、手机号直接删除,或者用 AES 加密,就等于完成了脱敏。最极端的做法是把所有字段都删到只剩空表,还觉得“这样绝对安全”。
正解删除会彻底毁掉数据价值,加密虽然可逆但密钥一旦泄露就等于裸奔。脱敏的核心是在“不指向个人”和“还能分析使用”之间找平衡,就像舞会不能让来宾把脸完全涂黑,否则谁也认不出谁,舞会也就没有意义了。
为何常见:因为初学者容易把“看不到”理解成“不存在”,忽略了数据需要继续服务业务。
误区只要把姓名、身份证号、手机号从数据集里拿掉,就可以对外发布说“已经匿名化”了。
正解准标识符如年龄、性别、邮编、职业、出生日期,单独看很普通,但组合起来足以锁定一个极小的群体。就像舞会上大家虽然撕掉了名牌,但如果每个人都穿着“28 岁程序员”“北京朝阳区程序员”的 T 恤,依然很容易被认出。真正的匿名化需要让等价组足够大,并做重识别风险评估。
为何常见:因为大家习惯只关注最显眼的标识字段,而忽略了“多字段组合”这种更隐蔽的攻击方式。
误区有人认为,只要每个等价组都有至少 k 条记录,就再也不会泄露隐私了,甚至敢直接把数据公开。
正解k-匿名只能让“人和记录”难以对应,但无法阻止敏感属性泄露。假设一个等价组有 10 条记录,但所有人的疾病字段都写着“肝癌”,那攻击者仍然可以确定这个组里的人都有该病。因此需要 l-多样性要求敏感值足够多样,再用 t-接近性保证组内分布和整体一致。
为何常见:因为 k-匿名是教材中最先被讲解的模型,容易被误当成“完美方案”。
误区很多架构师听说动态脱敏能实时拦截查询,就觉得生产库再也不用做静态副本,所有场景都走动态网关。
正解动态脱敏拦截的是“查询结果”,底层原始数据仍然存在且可被攻击面覆盖;一旦数据库被直接拖库或备份文件泄露,动态网关形同虚设。静态脱敏生成的是已经不可还原的副本,适合测试开发环境;动态脱敏适合接口访问控制。两者是“化妆间”和“门卫”的关系,不能互相替代。
为何常见:因为动态脱敏听起来更“实时、先进”,人们容易低估底层存储泄露的风险。
误区在一些差分隐私项目中,初学者为了“绝对安全”把噪声尺度调到极大,甚至让查询结果完全失去业务意义。
正解隐私保护和数据效用是一对矛盾。噪声越大,攻击者越难推断个体,但统计结果也越失真;正如把每个来宾的体重都随机加上 100 公斤,虽然没人知道你体重了,但整场舞会的体重统计也变成笑话。差分隐私的 ε 参数,正是用来显式控制这个平衡点的。
为何常见:因为安全目标看得见,而数据价值是隐性的,人们下意识愿意牺牲看不见的东西来换取安全感。
面试题
Q1. 以下哪个字段属于“直接标识符”?
- A.姓名← 正确答案
- B.性别
- C.年龄段
- D.所在城市
答案:A。直接标识符能单独锁定一个人,姓名是最典型的代表;性别、年龄段、城市都只是准标识符,需要组合后才可能有识别风险。
Q2. 把生日“1985年6月3日”改成“1985年6月”,属于哪种脱敏方法?
- A.字符替换
- B.泛化处理← 正确答案
- C.扰动噪声
- D.令牌映射
答案:B。泛化是把精确值模糊到更粗的粒度,就像把舞会来宾的详细门牌号变成“住在某个街道”,所以正确答案是泛化处理。
Q3. k-匿名要求每个等价组至少有多少条记录?
- A.至少 1 条
- B.至少 k 条← 正确答案
- C.至少 k-1 条
- D.至少 2k 条
答案:B。k-匿名的定义就是每个等价组至少有 k 条记录,让攻击者无法把单条记录从组里区分出来。
Q4. 下列哪些属于脱敏核心技术方案?
- A.字符替换打码← 正确答案
- B.泛化模糊范围← 正确答案
- C.随机令牌替换← 正确答案
- D.定期人工检查
答案:ABC。打码、泛化、扰动、令牌化是四大核心脱敏方法;定期人工检查属于流程管理,不是脱敏算法本身。
Q5. l-多样性主要解决 k-匿名的哪一类缺陷?
- A.等价组敏感值太单一← 正确答案
- B.等价组数量不够大
- C.算法运行时间太长
- D.无法处理中文姓名
答案:A。k-匿名只保证“组内有 k 个人”,但不保证组内敏感属性多样。l-多样性要求每个组至少有 l 种敏感值,避免整组人泄露同一个秘密。
Q6. 在差分隐私中,隐私预算 ε 越小表示什么?
- A.保护越强但噪声越大← 正确答案
- B.数据可用性精确无损
- C.攻击者数量显著减少
- D.算法运行速度变快
答案:A。ε 控制单条记录对查询结果的影响上限,ε 越小,影响上限越低,保护越强;但为了掩盖个体影响,通常需要注入更大噪声,数据效用会下降。
Q7. 关于重识别风险,下列哪些说法正确?
- A.泛化能降低重识别风险← 正确答案
- B.删姓名不等于真匿名← 正确答案
- C.外部数据关联无威胁
- D.等价组越小越安全
答案:AB。泛化让记录更难被锁定,删除姓名也仍然可能通过准标识符组合重识别;外部数据关联恰恰是常见的重识别攻击手段;等价组越小,攻击者猜中的概率越高,所以后两项错误。
Q8. 令牌化技术的核心思想是什么?
- A.用随机编号代替原文← 正确答案
- B.按规则打码隐藏字段
- C.把值泛化成范围
- D.给结果加入随机噪声
答案:A。令牌化把敏感原文映射为随机令牌,原文保存到安全保险箱中,业务系统大量使用令牌而不再接触原文;打码、泛化、噪声则不是令牌化。
Q9. 脱敏工程流程通常包含哪些环节?
- A.发现盘点敏感资产← 正确答案
- B.配置脱敏策略规则← 正确答案
- C.执行并验证效果← 正确答案
- D.永久删除所有数据
答案:ABC。标准流程是资产盘点、策略配置、任务执行和效果验证。删除所有数据不是脱敏方案,会毁掉数据价值,因此不选。
Q10. 差分隐私中 Laplace 噪声的尺度通常和什么相关?
- A.全局敏感度除以 ε← 正确答案
- B.等价组大小乘以 k
- C.原始数据记录数量
- D.字段字符串的长度
答案:A。为了让单个记录对结果的影响不超过 ε,Laplace 噪声的尺度通常正比于全局敏感度,再除以 ε。也就是说,查询函数越敏感、隐私预算越小,需要加的噪声就越大。