想象你是一家大医院的档案管理员。每天,成千上万份病历堆在桌上,每份都写着病人的姓名、身份证号、住址、电话,甚至连得了什么病、吃过什么药都记录在案。科研机构想要用这些病历训练 AI 模型,用来提前预测疾病、辅助医生诊断。但直接把这些病历交出去?绝对不行——隐私一旦泄露,病人可能被骚扰电话轰炸、被保险公司拒保,甚至遭到歧视。所以,在每份病历“出门”之前,都得经过一道特殊的安检:把所有能认出“这是谁”的信息,像给照片打马赛克一样处理干净。这个过程,就是电子病历(EHR)数据脱敏。而美国医疗界的 HIPAA 法案,为此制定了一份《通关手册》——Safe Harbor 规则,它列了十八项必须处理的身份标识,十八项全部打码完毕,病历才算“安全过港”。本文就带你从这座“病历安检站”出发,看看脱敏的原理、四种打码手法、如何防止“打码后被认出”的风险,以及工业界如何用 AI 把这个过程做成全自动流水线。

岗位关联

掌握 EHR 脱敏与 Safe Harbor 规则,是医疗 AI 从业者的“合规驾照”——没有它,再厉害的模型也无法合法触碰临床数据。

目录
  1. 可视化演示
  2. 脱敏概念——病历出院的“打码关卡”
  3. Safe Harbor 规则——安检站的十八项通关标准
  4. 四种脱敏技法——四把打码印章
  5. 重标识风险——马赛克下的蒙面大盗
  6. 合规流程——从档案柜到安检站
  7. 工程实践——自动化安检站的搭建
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示EHR数据脱敏流程:识别PHI标识符、执行脱敏与Safe Harbor合规验证,保障患者隐私安全。

本节配有交互动效(进入视口后自动加载,约 3KB)。

PHI标识识别 姓名 号码 18类 识别18类受保护健康标识符

脱敏概念——病历出院的“打码关卡”

想象你是医院档案室的管理员,桌上堆着几千份病历,每份都写着病人姓名、身份证号、家庭住址、联系电话,连得过什么病、做过什么手术都记得一清二楚。科研机构来申请,想用这些病历训练 AI 模型,提前预测疾病、评估疗效。直接送出去?绝对不行——信息一旦泄露,病人可能被骚扰、被拒保,甚至被歧视。于是你得在档案室门口设一道关卡:每份病历出门前,都要把能认出“这是谁”的信息全部处理掉。这道关卡,就是 EHR 数据脱敏。

但现实比想象复杂得多。EHR(电子健康记录,Electronic Health Record)不只是填好的表格,还有大量自由书写的文本:医生写的病程记录、出院小结、影像报告。病人名字可能藏在“张先生因胸痛入院”里,年龄可能藏在“患者自 10 年前开始”里。手工一份份打码,既慢又容易漏。这正是 NLP(自然语言处理)技术大展拳脚的地方:用序列标注模型自动找出文本中的人名、地名、日期、证件号,再统一遮蔽。NLP 擅长从非结构化文本中“找全”敏感信息,这比结构化字段的规则匹配难得多。

脱敏的效果有一个通用度量——脱敏率

回到档案室,管理员需要一把尺子来验收工作。脱敏率就是这把尺子:100% 意味着所有身份线索都被切断,可以放行。但这份“放行标准”到底列了哪些项目?世界上最有名的一份,是美国 HIPAA 法案的 Safe Harbor 规则。

脱敏率=已移除或遮蔽的受保护标识符数量文本中全部受保护标识符数量×100%\text{脱敏率} = \frac{\text{已移除或遮蔽的受保护标识符数量}}{\text{文本中全部受保护标识符数量}} \times 100\%
公式通俗说明:脱敏率就像打码覆盖率——打掉的信息越多、越彻底,病人的隐私就越安全。100% 意味着所有身份线索都被切断。
  1. 分子——已处理标识符指所有被遮蔽、删除或泛化的身份信息,比如“张三”被替换为“患者”、身份证号被抹成占位符。
    已移除或遮蔽的受保护标识符数量\text{已移除或遮蔽的受保护标识符数量}
  2. 分母——全部标识符指文本中本应处理的全部受保护标识符的总量。它是脱敏工作的“应做清单”。
    文本中全部受保护标识符数量\text{文本中全部受保护标识符数量}
  3. 乘 100%将覆盖率换算成百分比,便于设定质检阈值。医院通常要求脱敏率达到 99% 以上才放行。
    ×100%\times 100\%

Safe Harbor 规则——安检站的十八项通关标准

把档案室升级成一间大型安检站。每条病历像行李箱一样躺在传送带上,安检员手里捏着一张标准清单,逐项核对:名字去掉了没?身份证号抹掉了没?电话号码删了没?邮箱、人脸照片、指纹、车牌号……清单列了整整 18 项。这张清单,就是 HIPAA 法案的 Safe Harbor 规则。它把能识别出个人的健康信息统称为受保护健康信息(PHI);Safe Harbor 的判定逻辑简单而严苛:如果 18 类标识符全部从数据集中移除,这份数据就不再被视为 PHI,不再受隐私规则限制,可以自由用于科研。

18 类清单包括姓名、地理细分数据(小于州的所有地区标识)、精确日期、电话、传真、邮箱、社保号、病历号、健康计划受益人号、账户号、证书号、车辆识别码(VIN)、设备序列号、URL、IP 地址、生物识别特征(指纹、声纹等)、全脸照片,以及任何其他唯一识别符。注意“地理细分”连街道、邮编都算——只保留州一级。这个“全或无”的判定可以写成一条严格的逻辑表达式

翻译成人话:18 项全部移除才通关,漏掉任何一项,整份病历就要退回重打。Safe Harbor 的优点是规则明确、可被机器逐条检查;缺点是信息损失大——精确日期、精确年龄统统不能用。HIPAA 还提供了第二条路“专家判定法”,由统计专家评估重标识风险并出具报告,灵活但依赖人手。回到安检站,管理员把 18 项清单贴在墙上,但心里犯难:同样一个“姓名”字段,是整块涂黑,还是替换成假名,还是改成“张先生”?不同的“打码手法”对下游 AI 模型的可用性影响很大。下一节我们看四把打码印章。

SafeHarbor(r)=⋀i=118(第 i 类标识符未被出现在 r 中)\text{SafeHarbor}(r) = \bigwedge_{i=1}^{18} \left( \text{第 } i \text{ 类标识符未被出现在 } r \text{ 中} \right)
公式通俗说明:Safe Harbor 是一个“全或无”的标准——18 项标识符像行李箱上 18 个锁扣,任何一个没扣紧,箱子都不算安全,都要退回重检。
  1. 判定函数 SafeHarbor(r)定义了一个对记录 r 的合规判定函数,返回“通过”或“不通过”。
    SafeHarbor(r)\text{SafeHarbor}(r)
  2. 逻辑与 ⋀18 个判定结果必须全部为真。只要有一项为假,整体即为假——这是最严格的一条链,缺一不可。
    ⋀i=118\bigwedge_{i=1}^{18}
  3. 判定条件“未出现在 r 中”强调不是“打马赛克盖住”,而是“彻底清除”。数据集中不能残留任何一类可识别信息。
    (第 i 类标识符未被出现在 r 中)\left( \text{第 } i \text{ 类标识符未被出现在 } r \text{ 中} \right)

四种脱敏技法——四把打码印章

档案室工具柜里摆着四把不同型号的打码印章,管理员要根据不同的字段选不同的章。第一把是“抑制章”,按下去就是个大黑块,把字段彻底抹掉,最安全也最浪费。第二把是“泛化章”,把精确值改成范围,比如出生日期 1987-03-15 变成 1980-1989 年,住址从门牌号模糊到城市。第三把是“扰动章”,给数值加一点随机噪声,比如把年龄 45 改成 47。第四把是“假名章”,把真实姓名换成随机假名,对应的密钥锁在保险柜里,必要时可以还原。

在临床 NLP 中,这四种手法经常组合使用。一段原始病程记录“患者张芳,女,45 岁,2023-05-12 因急性阑尾炎入院,社保号 110101198703151234”,经过自动脱敏管线后变成“患者[姓名],女,40-49 岁,[日期] 因急性阑尾炎入院,社保号[已删除]”。这里姓名用抑制(因为姓名没有模糊价值)、年龄用泛化(保留统计价值)、日期用抑制、社保号用删除。脱敏管线要为每个字段选择合适的章法,才能兼顾隐私与科研可用性。

NLP 自动脱敏本质上是一个序列标注任务。模型把文本切分成 token,对每个 token 预测一个类别,类别集合包括 O(普通词)、NAME(姓名)、DATE(日期)、LOCATION(地名)、ID(证件号)、PHONE(电话)等。预测公式为

管理员把四把印章放回工具柜,心里踏实了一些。但更深的担忧来了:有些病历打码后只剩“某三甲医院 + 40 多岁 + 罕见病 + 2023 年 5 月”这些碎片,如果和公开数据一比对,照样能猜出是谁。这就是重标识风险,下一节讲如何对付蒙面大盗。

y^=argmaxc P(c∣t1,t2,…,tn)\hat{y} = \text{argmax}_c\, P(c \mid \mathbf{t}_1, \mathbf{t}_2, \ldots, \mathbf{t}_n)
公式通俗说明:模型像一个阅读速度极快的安检员,逐字扫过病历文本,每遇到一个词就判断一次“这个词该归到哪一类敏感词”。判断为敏感词的,就交给脱敏印章处理。
  1. ŷ(预测标签)模型对当前文本片段最可能的敏感类别,比如“张芳”被预测为“姓名”类。
    y^\hat{y}
  2. argmax_c(取最大概率者)在敏感类别集合 {姓名、日期、地点、证件号……} 中选出概率最高的那个类别。
    argmaxc\text{argmax}_c
  3. 条件概率 P(c | t1, t2, ……, tn)给定上下文所有词时,某个位置属于某一敏感类别的概率。上下文越完整,判断越准。
    P(c∣t1,t2,…,tn)P(c \mid \mathbf{t}_1, \mathbf{t}_2, \ldots, \mathbf{t}_n)

重标识风险——马赛克下的蒙面大盗

想象一档悬疑节目:劫匪戴着黑面罩遮住脸,但观众根据他 1 米 85 的身高、左手虎口纹身、独特的走路姿势,还是认出了他。面罩只在脸上一小块,漏出来的细节拼在一起足以锁定身份。医学数据也是同理:单看“40 多岁北京女性”认不出谁,但如果加上“2023 年 5 月在某院做了罕见病手术”,结合新闻报道或选民登记库,身份就浮出水面了。这种从匿名数据中恢复个人身份的攻击,叫重标识。

对抗重标识,最经典的模型是 k-匿名。它要求发布的数据中,任何一组准标识符组合——比如年龄、性别、邮编——在数据集中至少出现 k 次,让任意个体都隐藏在 k 个“替身”里。举例:若一位 1968 年出生、住在朝阳区、做过阑尾炎手术的病人,他的记录和另外 9 条相同特征的记录混在一起,攻击者就只能猜 1/10。准标识符是那些单独看不能直接锁定人、组合起来却极具识别力的字段,这正是“马赛克复原术”的拼图碎片。

k-匿名下重标识风险的上界

悬疑节目看多了,管理员也学会了一个原则:打码要打到“看不出唯一性”为止。如果某一组特征只有一条记录,就必须进一步泛化,直到至少 k 条记录长得一样。这也是合规流程中必须做的“风险评估”步骤——下一节我们把整个出行流程串起来。

Rre-id≤1kR_{\text{re-id}} \le \frac{1}{k}
公式通俗说明:k 越大,嫌疑人队列越长,指认成功概率越小。k-匿名实际上是“让数据里的每个人都至少有 k-1 个长得相似的替身”。
  1. R_re-id(重标识风险)攻击者成功把匿名记录对应回真实病人的概率,是隐私放行的核心指标。
    Rre-idR_{\text{re-id}}
  2. ≤(上界)k-匿名保证风险不会超过 1/k,注意是“不超过”,不是“等于零”。
    ≤\le
  3. 分母 k数据集中每个准标识符组合的最小出现次数。k 需要事前设定,实践中常取 5 或 10。
    1k\frac{1}{k}

合规流程——从档案柜到安检站

病历安检站现在正式运营了,管理员制定了一套标准作业流程:第一步,盘点档案柜,把所有 EHR 数据分成结构化字段(姓名字段、电话字段)和非结构化文本(病程记录、出院小结),标记出所有 PHI 字段。第二步,执行脱敏:结构化字段用规则批量处理,非结构化文本交给 NLP 模型标注加打码。第三步,对照 Safe Harbor 的 18 项清单逐条复核。第四步,做 k-匿名和重标识风险评估,不达标就退回再泛化。第五步,记录审计日志,安全官签字放行。

这套流程最关键的质检指标是脱敏覆盖率。它衡量“该打码的字段里,实际打了多少码”。

注意分母是“全部应处理的 PHI 字段数”,不是脱敏后剩下的字段数。这意味着覆盖率是个诚实的分母:如果 NLP 模型漏识别了某个身份证号,它没进分子,也没进分母,覆盖率不会自动暴露这个漏网之鱼。所以工程上还要另做残留抽查:对脱敏后文本再跑一遍识别模型,看有没有“漏网之鱼”,把残留数作为第二道质检关口。管理员把流程图贴在墙上,发现所有步骤都能人工完成,只是每天上千份病历的体量下,人工根本做不完。只有把整个流程自动化,让 NLP 模型持续识别、规则引擎持续打码、覆盖率阈值自动拦截不合格数据,安检站才能喘口气。最后我们来看工程实践。

覆盖=∑j=1m1[字段 j 已脱敏]m\text{覆盖} = \frac{\sum_{j=1}^{m} \mathbb{1}[\text{字段 } j \text{ 已脱敏}]}{m}
公式通俗说明:覆盖率就是“该打码的里面,实际打完码的比例”。它像安检站的大屏幕,实时显示今天放行的病历中有多少隐私字段处理合格。
  1. 覆盖(Coverage)脱敏流程的完成度指标,衡量“应脱敏字段”中实际被脱敏的比例。
    覆盖\text{覆盖}
  2. 求和 Σ 与指示函数 1[·]m 个字段逐项检查,字段 j 已脱敏记 1,未脱敏记 0,全部相加得到已脱敏字段总数。
    ∑j=1m1[字段 j 已脱敏]\sum_{j=1}^{m} \mathbb{1}[\text{字段 } j \text{ 已脱敏}]
  3. 分母 m需处理的 PHI 字段总数,是覆盖率的基准,必须提前完整盘点。
    mm

工程实践——自动化安检站的搭建

大型医院的档案室早就不靠人工了。管理员在安检站里部署了一条全自动流水线:上游接入 EHR 导出的原始文本流,中游由 NLP 模型做序列标注、规则引擎补漏、脱敏器按四种手法执行打码,下游跑 18 项合规校验、k-匿名评估和质量抽检,最后把达标数据写入安全数据湖,供科研团队取用。不合格的数据自动退回队列,等待修正策略。

流水线的效果评估有两个核心指标:精确率(Precision)——识别出的敏感词里有多少是对的;召回率(Recall)——所有敏感词里有多少被找出来了。在脱敏场景,漏识别的代价远大于误识别:漏掉一个身份证号可能造成真实隐私事件,而误识别只是多打码一个普通词、损失一点信息。所以工程上采用“高召回优先”策略,宁可错杀,不可放过。两者调和后的综合指标 F1 定义为

高召回优先背后的逻辑是一个不对称的代价函数:设漏识别一个 PHI 的代价远高于误识别一个普通词,模型训练时可以对“漏报”施加更大权重,或把判定阈值向敏感类别偏移。推理时还可引入规则引擎兜底,比如正则强制匹配 18 位身份证号,再配合人工抽检 5% 的数据,实现机器与规则的双保险。故事的最后,管理员已经变成流水线负责人。他每天只需盯着仪表盘上的三个数字:召回率、覆盖率、k 值。墙上的 18 项清单还是那张纸,但它的逻辑已经编码进机器里,昼夜不停地守护着几千名病人的隐私。

F1=2×Precision×RecallPrecision+RecallF_1 = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}
公式通俗说明:F1 像是“眼力”的综合评分——既要找得全(召回高),又要找得准(精确高)。脱敏场景宁可误伤一些词,也坚决不能漏掉导致隐私泄露的那个。
  1. F1(调和平均)精确率与召回率的平衡指标,防止只追求“打得全”却错误百出的极端模型。
    F1F_1
  2. 分子 2 × Precision × Recall两倍的精度与召回乘积,用于加权调和,使 F1 同时依赖两个指标。
    2×Precision×Recall2 \times \text{Precision} \times \text{Recall}
  3. 分母 Precision + Recall归一化分母,使 F1 落在 0 到 1 之间。F1 = 1 表示既无漏报也无误报。
    Precision+Recall\text{Precision} + \text{Recall}

AI 应用场景

场景一:医疗 AI 训练数据合规化

阶段:数据准备与治理

解决的问题:医院与 AI 公司合作开发疾病预测模型时,传统方式把含 PHI 的原始病历直接出库,违反 HIPAA 隐私规则,面临巨额罚款。AI 脱敏流水线(NLP 识别 + Safe Harbor 规则复核)将出库数据自动脱敏,保证模型开发者拿到的是合规的匿名数据。

具体案例:某三甲医院影像科与 AI 公司合作构建肺炎早筛模型。每天有 2000 份出院小结流入脱敏流水线,NLP 模型标注出姓名、身份证、地址等字段,规则引擎按 Safe Harbor 18 项复核,覆盖率不达标自动退回。最终 99.6% 的病历一次性通过,模型训练数据零 PHI 泄露。

场景二:跨机构联邦科研协作

阶段:数据共享与协作

解决的问题:多中心科研(如罕见病多中心队列)需要共享病案数据,但各机构间信任不足,原始病历共享会产生合规风险。各中心先本地执行 Safe Harbor 脱敏(含 k-匿名校验),再仅上传达标数据,实现“医院不见面,数据可用不可识”。

具体案例:某省 5 家医院联合开展“糖尿病视网膜病变 AI 筛查多中心研究”,每家医院先在院内完成 18 项脱敏与 k=5 匿名化处理,再汇聚到研究数据湖。项目全程通过伦理审查,重标识风险评估报告由第三方审计机构出具。

Python 演示

python56 行
import re PHI_PATTERNS = {    'name': r'(?:患者|病人)?(?:张|李|王|赵|刘)[\u4e00-\u9fa5]{1,2}',    'id_card': r'\d{17}[\dXx]',    'phone': r'1[3-9]\d{9}',    'date': r'\d{4}[-/年]\d{1,2}[-/月]\d{1,2}日?',    'age': r'\d{1,3}\s*岁',    'social': r'社保号[::]?\s*\d{6,}',} REPLACEMENTS = {    'name': '[姓名]',    'id_card': '[证件已删除]',    'phone': '[电话已删除]',    'date': '[日期]',    'age': '[年龄区间]',    'social': '[社保号已删除]',} def deidentify(text):    hits = {}    masked = text    for key, pattern in PHI_PATTERNS.items():        hits[key] = len(re.findall(pattern, masked))        masked = re.sub(pattern, REPLACEMENTS[key], masked)    return masked, hits def residue_check(text):    total = 0    for pattern in PHI_PATTERNS.values():        total += len(re.findall(pattern, text))    return total def main():    sample = (        '患者张芳,女,45岁,2023-05-12 因急性阑尾炎入院,'        '联系电话 13812345678,身份证号 110101198703151234,社保号 11010820230001。'    )    print('=== 脱敏前 ===')    print(sample)    masked, hits = deidentify(sample)    print('=== 脱敏后 ===')    print(masked)    total = sum(hits.values())    remaining = residue_check(masked)    coverage = (total - remaining) / total * 100 if total else 100.0    print('=== 各类标识符原命中数 ===')    for key, cnt in hits.items():        print(key + ': ' + str(cnt))    print('脱敏覆盖率: {:.2f}%'.format(coverage))    print('脱敏后残留标识符数: ' + str(remaining))    print('Safe Harbor 简化判定(残留为0): ' + ('通过' if remaining == 0 else '不通过')) if __name__ == '__main__':    main()
目的:演示一个极简版 EHR 文本脱敏管线——用正则识别 6 类常见受保护标识符,执行替换打码,再对脱敏后文本做残留复查,并按覆盖率给出 Safe Harbor 简化判定。

常见误区

误区“我以为 Safe Harbor 就是把病历打上马赛克,只要打码了数据就算脱敏,原始记录也可以一起交给研究机构。”

正解Safe Harbor 不是“遮挡”,而是“移除”:18 类标识符必须从发布的副本中彻底移除,而不是盖住保留。打码后留在原始库里的 PHI 可以继续受控管理,但合规放行的数据集中不得残留这些标识符。这就像行李箱过安检,安检员要求“违禁品拿出箱子”,而不是“用布盖住”。

为何常见:很多人把“脱敏”理解成视觉上的打码,忽略了 HIPAA 判定的是“数据集中是否仍存在可识别个人的信息”。

误区“我只要把姓名删掉,其他字段(生日、邮编、诊断)留着也没关系,反正不知道是谁。”

正解姓名只是 18 类标识符中最显眼的一个。生日 + 邮编 + 性别这些准标识符组合,结合公开数据库仍能锁定个人。Safe Harbor 要求的是 18 项全部移除,而不是只删姓名。好比蒙面大盗只遮脸,但纹身和步态照样暴露身份。

为何常见:人们天然把“名字”当作身份的全部,忽视了准标识符拼接的识别能力。

误区“k-匿名当然 k 越大越安全,那我直接把 k 设成 100,不是更保险吗?”

正解k 越大,准标识符组合的泛化越剧烈,数据可用性急剧下降。例如把年龄精确到“0-99 岁”、把城市泛化成“中国”,虽然 k 很大,但科研无法使用。工程上一般根据用途选 k=5 或 10,再配合专门的信息损失评估。

为何常见:只看到隐私收益,没考虑数据价值损失,忘记脱敏的最终目的是让数据用于研究。

误区“病历脱敏完放进数据湖就结束了,以后也不用管。”

正解EHR 是持续产生的新数据流,而且新病种、新术语、非标准缩略语不断出现,脱敏模型需要持续监控与重训;一旦发现漏识别模式,要回到管线补丁更新。合规放行不是一次性动作,而是持续运行的安检站。

为何常见:把数据脱敏当成传统 ETL 的一次性批处理任务。

误区“NLP 脱敏模型的精确率有 99%,说明它很可靠,可以直接上线。”

正解在脱敏场景,召回率(漏识别)比精确率(误识别)更关键。精确率 99% 听起来高,但如果 1% 的漏召回对应的是身份证号,在一天的 EHR 量级下仍可能泄露成百上千条隐私。所以工程惯例是召回优先,配合 18 项复核兜底。

为何常见:默认所有分类任务都同等看待精确与召回,忽略了隐私场景不对称的代价。

面试题

Q1. HIPAA Safe Harbor 规则要求移除多少类受保护标识符?

单选题 · easy

  • A.五个主要字段
  • B.十个核心标识
  • C.十八类标识符← 正确答案
  • D.二十五个标签

答案:C。Safe Harbor 是 HIPAA 规定的脱敏标准,要求移除 18 类受保护标识符。就像病历安检站墙上贴着 18 项通关清单,全部打钩才算合规。其他选项 5、10、25 均不是法案规定的数字。

Q2. 以下哪项不属于 Safe Harbor 的 18 类标识符?

单选题 · easy

  • A.病人姓名等称谓
  • B.电子邮箱地址信息
  • C.血压数值与主诉← 正确答案
  • D.社会保障卡账号

答案:C。血压数值属于临床观测数据,本身不能直接识别个人,不是标识符。姓名、邮箱、社保账号都是 18 类中的身份标识,是需要打码的对象。好比安检站只检查“能认出你是谁”的物品,血压计读数不在此列。

Q3. “把出生日期 1987-03-15 改为 1980-1989 年”属于哪种脱敏技法?

单选题 · easy

  • A.抑制删除整个字段
  • B.泛化为时间区间← 正确答案
  • C.扰动加入随机噪声
  • D.假名替换关联值

答案:B。把精确日期变成年份区间,是典型的泛化:牺牲精度换取隐私。抑制是整段删除,扰动是加随机噪声,假名化是替换成可控假名。好比把“3 月 15 日”改成“3 月中旬”,保住了时间概念又模糊了边界。

Q4. 在 k-匿名中,k=5 的含义是什么?

单选题 · mid

  • A.每个记录最多五个准标识符
  • B.每个准标识符组合至少出现五次← 正确答案
  • C.重标识成功率不超过百分之五十
  • D.脱敏模型共有五层隐藏网络层

答案:B。k-匿名要求任何准标识符组合(如年龄+邮编+性别)在数据集中至少出现 k 次。k=5 即至少 5 条记录共享相同组合,任何人被定位到唯一记录的概率 ≤ 1/5。这像嫌疑人列队至少站出 5 个身形相似的人。

Q5. 脱敏覆盖率公式中的分母表示什么?

单选题 · mid

  • A.模型参数数量总和
  • B.全部受保护标识符总数← 正确答案
  • C.病历文本总字符数
  • D.被移除标识符的数量

答案:B。覆盖率公式的分母是全部待脱敏的 PHI 字段总数 m,即“应打码的清单”。分子是已脱敏的字段数。分母不是模型参数量或文本总字符数,脱敏阶段与模型训练参数量无关。

Q6. 以下哪种脱敏手法能保留“可逆”的对应关系以便随访?

单选题 · mid

  • A.抑制整体删除不留存
  • B.泛化模糊成大致区间
  • C.扰动添加随机噪声值
  • D.假名化保留密钥可还原← 正确答案

答案:D。假名化把真实姓名换成假名,并单独保管映射密钥,需要随访患者时可合法还原;抑制不可逆,泛化和扰动无法精确还原。好比安检站给行李箱贴编号,凭钥匙才能打开对应柜子。

Q7. 数据满足 k-匿名且 k=20 时,重标识风险的上界是多少?

单选题 · hard

  • A.风险上界降至 1/20← 正确答案
  • B.风险上界降至 1/5
  • C.风险上界降至 1/10
  • D.风险全部消除为 0

答案:A。k-匿名保证重标识风险不超过 1/k。k=20 时,任意个体对应到 20 个替身之一,攻击者指认成功的概率上限为 1/20。k 越大,替身队列越长,指认越难;但 k-匿名只能降低风险,不能完全消除。

Q8. 关于 Safe Harbor,下列说法正确的有?

多选题 · mid

  • A.移除 18 类标识符即视为合规← 正确答案
  • B.可与专家判定法并行采用
  • C.网络 IP 地址也属于需移除项← 正确答案
  • D.获得患者同意就可以保留姓名

答案:AC。A 正确:Safe Harbor 的核心就是移除 18 类标识符即视作合规。C 正确:IP 地址在 18 类清单中。B 错误:Safe Harbor 与专家判定法是 HIPAA 的两种可选路径,不是并行结合。D 错误:患者同意不等于豁免脱敏。好比安检员按标准清单执行,不会因乘客态度放行。

Q9. 脱敏流水线中“召回率优先”策略的原因包括?

多选题 · hard

  • A.漏识别比误识别危害更大← 正确答案
  • B.误识别会使数据完全不可用
  • C.隐私事件常源于一个漏掉的号码← 正确答案
  • D.提高召回必然同时提高精确

答案:AC。A 正确:漏掉一个身份证号可能直接导致隐私事件,而误识别只会多打码一个词。C 正确:真实事故常源于单个遗漏标识符。B 错误:误识别不至于让数据完全不可用,只是轻微信息损失。D 错误:提高召回不一定提高精确,二者常需权衡。

Q10. 关于重标识攻击,下列说法正确的有?

多选题 · extreme

  • A.结合外部数据库可提升重标识成功率← 正确答案
  • B.k-匿名能够完全消除重标识风险
  • C.泛化准标识符组合可降低重标识风险← 正确答案
  • D.年龄邮编性别是常见准标识符组合← 正确答案

答案:ACD。A 正确:攻击者常结合选民库、新闻等外部数据来缩小候选范围。C 正确:对年龄、邮编做泛化能增大 k、降低风险。D 正确:年龄+邮编+性别是典型准标识符组合。B 错误:k-匿名只把风险降到 1/k,不能完全消除,还可能受背景知识攻击。