前言
讨论隐私计算时,我们经常说“原始数据没有上传”“表示中已经去掉了敏感属性”“攻击模型没有猜出来”。但这些说法并没有直接回答一个问题:攻击者在看到系统输出之后,到底多知道了多少?
信息论提供了一种把这个问题写成数学表达式的方式。它关注的不只是数据有没有被原样展示,还包括攻击者的不确定性是否减少,以及这种减少发生在什么观察与背景知识之下。
这篇主要讨论离散随机变量。对于连续数据,互信息仍然可以通过概率分布之间的 KL 散度定义,但微分熵可能为负,确定性映射还可能导致互信息无穷大,不能把离散公式中的每个“熵”机械替换后就当作可直接计算的泄露量。
先说清楚:谁在观察什么?
用四个随机变量描述一个基本场景:
| 符号 | 含义 | 一个机器学习例子 |
|---|---|---|
| $S$ | 希望保护的秘密 | 敏感属性、训练集成员身份、某个用户的数据 |
| $X$ | 系统持有或处理的数据 | 图像、文本、客户端本地数据集 |
| $Z$ | 攻击者能看到的输出 | 模型预测、参数、梯度或完整通信记录 |
| $A$ | 攻击者事先拥有的辅助信息 | 候选样本、公开数据库、模型结构、其他发布结果 |
机制可以把 $X$ 转换成 $Z$,但隐私目标通常是保护 $S$。二者不必相等:一张图片中可能既包含需要用于分类的内容,也包含身份、拍摄地点等不希望泄露的信息。
不同的 $Z$ 对应不同的攻击面。只公开最终类别,与公开完整概率向量不同;只公开最终模型,与公开每轮客户端梯度也不同。把 $A$ 忽略掉,还可能把一个实际上可恢复的秘密误判成安全。
熵:观察之前有多不确定?
对于离散秘密 $S$,Shannon 熵定义为
约定 $0\log_2 0=0$,单位为 bit。一个均匀随机比特的熵是 1;一个始终取同一值的变量,熵是 0。
熵描述的是分布平均意义上的不确定性,不是某个数据文件的字节数,也不是敏感程度。一个几乎总是为真的敏感属性可能熵很低,却仍然值得保护。
在攻击者已经知道 $A$ 的情况下,更合适的基线是条件熵:
如果辅助信息已经完整确定了秘密,那么 $H(S\mid A)=0$。此时新的发布结果可能没有增加信息,却不意味着秘密仍然没有被攻击者掌握。
基础定义可参考 Stanford 的统计与信息论课程笔记1。
互信息:看到输出之后,多知道了多少?
从不确定性的减少出发
在考虑辅助信息后,可以把增量泄露写成
这里 $H(S\mid Z,A)$ 是看到输出之后仍然剩下的不确定性。对于离散变量,条件互信息非负;在相应概率模型下,它为 0 等价于 $S$ 与 $Z$ 在给定 $A$ 后条件独立。
“互信息为 0”说的是输出没有进一步改变攻击者对秘密的条件分布,不是攻击者一定什么都不知道,更不是换一种先验或补充辅助信息后仍然安全。
从后验与先验的变化出发
同一个量也可以写为
因此,可以把它理解为:观察结果让攻击者的后验,相对于原先掌握辅助信息后的先验,平均改变了多少。KL 散度不是对称距离;如果 $Q(s)=0$ 而 $P(s)>0$,相应项为无穷大。
在对数损失下,知道真实条件分布的最优预测者,其期望损失等于条件熵。因此,条件互信息也对应最优对数损失在观察前后的平均下降。这个解释依赖于该损失函数,不能直接把它换算成一个通用的分类准确率。2
一个例子:随机响应到底泄露多少?
设秘密 $S$ 是均匀随机比特,机制独立采样 $B\sim\operatorname{Bernoulli}(q)$,并发布
其中 $\oplus$ 为异或。换句话说,机制以概率 $q$ 翻转真实答案。假设攻击者没有额外相关信息,则 $Z$ 仍然是均匀随机比特,并且
这是因为 $H(S)=1$,而给定 $Z$ 后,秘密的不确定性与翻转变量相同。最优攻击者直接猜 $S=Z$,成功率为 $1-q$。
| 翻转概率 $q$ | 互信息,单位为 bit | 最优猜测成功率 |
|---|---|---|
| 0 | 1 | 100% |
| 0.1 | 约 0.531 | 90% |
| 0.25 | 约 0.189 | 75% |
| 0.5 | 0 | 50% |
注意,即使已经翻转了四分之一的答案,攻击者仍然能以 75% 的概率猜中。加入随机性不等于秘密与输出独立。
可以用下面的小例子核对数值,而不需要真实个人数据:
| |
辅助信息与多次发布为什么重要?
不带条件的互信息可能漏掉风险
设 $R$ 是独立的均匀随机比特,发布 $Z=S\oplus R$。如果攻击者不知道 $R$,则 $I(S;Z)=0$;但如果辅助信息是 $A=R$,攻击者可以直接计算 $S=Z\oplus A$,此时
这并不是异或运算失效,而是保护成立的条件变了。讨论任何隐私指标时,都应该说清楚攻击者拥有什么背景知识。
各次发布都不泄露,不代表联合发布不泄露
继续使用上面的例子,分别发布 $Z_1=R$ 和 $Z_2=S\oplus R$。两者单独看,都与 $S$ 独立;一起看,却能恢复 $S$。
一般地,完整记录 $Z_{1:T}$ 的泄露满足链式法则:
右侧每一项都要条件于之前的发布结果,不能简单地用不带历史条件的单次互信息相加。这也是为什么联邦学习只分析某一轮梯度、忽略之前的模型和通信内容,会得到不完整的结论。
数据处理不等式能告诉我们什么?
如果在给定 $A$ 后,$S\to X\to Z$ 构成 Markov 链,那么
Markov 条件意味着:在知道 $X$ 与 $A$ 后,$Z$ 的生成不再额外依赖 $S$。因此,只对已有观测做后处理,不能凭空增加关于秘密的信息。3
但这不是“压缩一下就安全”的证明。如果 $Z$ 几乎保留了 $X$ 中所有与秘密相关的内容,不等式虽然成立,泄露仍然很大。反过来,一个更容易使用的表示,也可能让有限算力的攻击者更容易完成推断,即使它的信息论泄露没有增加。
如果后处理还访问了新的辅助信息,则应把这些信息一起纳入模型,不能继续沿用一个漏掉了新输入的 Markov 链。
Fano 不等式:从剩余不确定性到猜测错误
设秘密取值集合大小为 $M\ge2$,攻击者基于 $(Z,A)$ 构造估计 $\widehat S$,错误概率为 $P_e=P(\widehat S\ne S)$。Fano 不等式给出
如果 $S$ 均匀分布且与 $A$ 独立,再使用 $h_2(P_e)\le1$,可以得到一个较松的界:
它说明:对于这个有限秘密空间,当泄露较小、候选数较多时,任何估计者的错误概率都有下界。它不是某个具体攻击算法的实验结果;在二分类问题中,这个简化形式通常没有实际约束力,不能拿它证明成员推断接近随机猜测。3
隐私与效用:不是把所有信息都去掉
如果输出完全独立于输入,隐私可能很好,却也可能无法完成任务。设 $Y$ 是有用的预测目标,一种信息论上的建模方式是
这是一个示意性的隐私—效用问题:既希望减少秘密泄露,又希望表示保留任务信息。实际系统可能使用准确率、重建误差或其他指标定义效用,而不直接用 $I(Y;Z)$。如果 $S$ 与 $Y$ 强相关,这两个目标本来就可能冲突。2
用一个神经网络攻击者来估计敏感属性,再训练编码器让它失败,是常见的实验思路。但一个有限模型的交叉熵通常大于最优条件熵,攻击器能力不足也会让损失很高。因此,让一个攻击器失败,并没有证明真实互信息很小。
信息论隐私与差分隐私有什么区别?
差分隐私(Differential Privacy,DP)比较的是相邻数据集的输出分布。对于指定的邻接关系,以及所有相邻 $D,D’$ 和输出事件 $E$,要求
这里的对数标度对应自然底数,而前文信息量使用 $\log_2$。$\varepsilon$ 限制输出分布的区分程度,$\delta$ 是近似 DP 的加性松弛项,不能直接解释为“系统有 $\delta$ 的概率泄露全部数据”。定义还需要说明相邻数据集是增删一条记录、替换一条记录,还是增删一个用户的全部记录。4
| 维度 | 条件互信息视角 | DP 视角 |
|---|---|---|
| 核心问题 | 输出平均减少了多少秘密不确定性 | 一份受保护数据的变化能让输出分布改变多少 |
| 需要明确的对象 | 秘密、联合分布、辅助信息与观测 | 随机机制、邻接关系及隐私参数 |
| 保证形式 | 给定概率模型下的平均泄露量 | 对指定邻接关系的所有相邻输入与输出事件成立 |
| 常见误用 | 把某个攻击器的失败当成互信息为 0 | 只加噪声,不分析敏感度、采样与累计预算 |
二者有理论联系,但不是同一个定义。一个给定先验下很小的互信息,不自动推出指定参数的 DP;DP 也不是要求模型不学习任何总体统计规律。
前面的二元随机响应机制,在 $0<q\le1/2$ 时满足单个比特输入上的纯本地 DP,其参数为
这是直接比较两个输入对应的两个输出概率得到的。当 $q=1/2$ 时,$\varepsilon=0$;当 $q\to0$ 时,隐私参数趋于无穷。它的 DP 参数不依赖均匀先验,而前文 $I(S;Z)=1-h_2(q)$ 的具体数值依赖均匀秘密的假设。
在机器学习实验里,如何使用这些概念?
先指定秘密,再指定攻击者能看到的完整内容。例如,成员身份、某个属性和整条训练样本是不同秘密,不能用一个重建误差统一替代。
随后区分三个层次:理论上分析的分布与机制、数值上估计的互信息或其他代理量,以及某个攻击者实现得到的结果。三者可以互相提供证据,但不能随意互换。
高维连续数据的互信息估计尤其困难。离散化、样本量、估计器偏差与训练过程都会影响结果;不同离散化方案得到的数值不宜直接横向比较。在联邦学习中,还要把多轮交互和辅助信息纳入分析,而不是只选一份看起来“不泄露”的更新。
结语
信息论让隐私问题从“有没有发送原始数据”,转向“观察之后多知道了多少”。它特别适合说明平均泄露、辅助信息与多次发布之间的关系。
但一个信息量公式本身不是完整的安全证明。把秘密、分布、攻击面与假设写清楚,再区分理论界、估计值与实际攻击结果,才是把这些概念用到研究中的关键。
参考资料与相关阅读
Sources: 5.

