前言

讨论隐私计算时,我们经常说“原始数据没有上传”“表示中已经去掉了敏感属性”“攻击模型没有猜出来”。但这些说法并没有直接回答一个问题:攻击者在看到系统输出之后,到底多知道了多少?

信息论提供了一种把这个问题写成数学表达式的方式。它关注的不只是数据有没有被原样展示,还包括攻击者的不确定性是否减少,以及这种减少发生在什么观察与背景知识之下。

这篇主要讨论离散随机变量。对于连续数据,互信息仍然可以通过概率分布之间的 KL 散度定义,但微分熵可能为负,确定性映射还可能导致互信息无穷大,不能把离散公式中的每个“熵”机械替换后就当作可直接计算的泄露量。

先说清楚:谁在观察什么?

用四个随机变量描述一个基本场景:

符号含义一个机器学习例子
$S$希望保护的秘密敏感属性、训练集成员身份、某个用户的数据
$X$系统持有或处理的数据图像、文本、客户端本地数据集
$Z$攻击者能看到的输出模型预测、参数、梯度或完整通信记录
$A$攻击者事先拥有的辅助信息候选样本、公开数据库、模型结构、其他发布结果

机制可以把 $X$ 转换成 $Z$,但隐私目标通常是保护 $S$。二者不必相等:一张图片中可能既包含需要用于分类的内容,也包含身份、拍摄地点等不希望泄露的信息。

不同的 $Z$ 对应不同的攻击面。只公开最终类别,与公开完整概率向量不同;只公开最终模型,与公开每轮客户端梯度也不同。把 $A$ 忽略掉,还可能把一个实际上可恢复的秘密误判成安全。

熵:观察之前有多不确定?

对于离散秘密 $S$,Shannon 熵定义为

$$ H(S)=-\sum_s P(s)\log_2P(s), $$

约定 $0\log_2 0=0$,单位为 bit。一个均匀随机比特的熵是 1;一个始终取同一值的变量,熵是 0。

熵描述的是分布平均意义上的不确定性,不是某个数据文件的字节数,也不是敏感程度。一个几乎总是为真的敏感属性可能熵很低,却仍然值得保护。

在攻击者已经知道 $A$ 的情况下,更合适的基线是条件熵:

$$ H(S\mid A)=\mathbb E_A[H(S\mid A=a)]. $$

如果辅助信息已经完整确定了秘密,那么 $H(S\mid A)=0$。此时新的发布结果可能没有增加信息,却不意味着秘密仍然没有被攻击者掌握。

基础定义可参考 Stanford 的统计与信息论课程笔记1。

互信息:看到输出之后,多知道了多少?

从不确定性的减少出发

在考虑辅助信息后,可以把增量泄露写成

$$ I(S;Z\mid A)=H(S\mid A)-H(S\mid Z,A). $$

这里 $H(S\mid Z,A)$ 是看到输出之后仍然剩下的不确定性。对于离散变量,条件互信息非负;在相应概率模型下,它为 0 等价于 $S$ 与 $Z$ 在给定 $A$ 后条件独立。

“互信息为 0”说的是输出没有进一步改变攻击者对秘密的条件分布,不是攻击者一定什么都不知道,更不是换一种先验或补充辅助信息后仍然安全。

从后验与先验的变化出发

同一个量也可以写为

$$ I(S;Z\mid A)= \mathbb E_{A,Z}\left[ D_{\mathrm{KL}}\bigl(P_{S\mid Z,A}\,\|\,P_{S\mid A}\bigr) \right], $$ $$ D_{\mathrm{KL}}(P\|Q)=\sum_sP(s)\log_2\frac{P(s)}{Q(s)}. $$

因此,可以把它理解为:观察结果让攻击者的后验,相对于原先掌握辅助信息后的先验,平均改变了多少。KL 散度不是对称距离;如果 $Q(s)=0$ 而 $P(s)>0$,相应项为无穷大。

在对数损失下,知道真实条件分布的最优预测者,其期望损失等于条件熵。因此,条件互信息也对应最优对数损失在观察前后的平均下降。这个解释依赖于该损失函数,不能直接把它换算成一个通用的分类准确率。2

一个例子:随机响应到底泄露多少?

设秘密 $S$ 是均匀随机比特,机制独立采样 $B\sim\operatorname{Bernoulli}(q)$,并发布

$$ Z=S\oplus B,\qquad 0\le q\le\frac12. $$

其中 $\oplus$ 为异或。换句话说,机制以概率 $q$ 翻转真实答案。假设攻击者没有额外相关信息,则 $Z$ 仍然是均匀随机比特,并且

$$ I(S;Z)=1-h_2(q), \qquad h_2(q)=-q\log_2q-(1-q)\log_2(1-q). $$

这是因为 $H(S)=1$,而给定 $Z$ 后,秘密的不确定性与翻转变量相同。最优攻击者直接猜 $S=Z$,成功率为 $1-q$。

翻转概率 $q$互信息,单位为 bit最优猜测成功率
01100%
0.1约 0.53190%
0.25约 0.18975%
0.5050%

注意,即使已经翻转了四分之一的答案,攻击者仍然能以 75% 的概率猜中。加入随机性不等于秘密与输出独立。

可以用下面的小例子核对数值,而不需要真实个人数据:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from math import isclose, log2


def binary_entropy(q):
    if not 0 <= q <= 1:
        raise ValueError("q must be between 0 and 1")
    if q == 0 or q == 1:
        return 0.0
    return -q * log2(q) - (1 - q) * log2(1 - q)


assert isclose(binary_entropy(0), 0.0)
assert isclose(binary_entropy(0.5), 1.0)
assert isclose(1 - binary_entropy(0.25), 0.18872187554086717)

for q in (0, 0.1, 0.25, 0.5):
    print(q, "leakage bits:", 1 - binary_entropy(q), "success:", 1 - q)

辅助信息与多次发布为什么重要?

不带条件的互信息可能漏掉风险

设 $R$ 是独立的均匀随机比特,发布 $Z=S\oplus R$。如果攻击者不知道 $R$,则 $I(S;Z)=0$;但如果辅助信息是 $A=R$,攻击者可以直接计算 $S=Z\oplus A$,此时

$$ I(S;Z\mid A)=1. $$

这并不是异或运算失效,而是保护成立的条件变了。讨论任何隐私指标时,都应该说清楚攻击者拥有什么背景知识。

各次发布都不泄露,不代表联合发布不泄露

继续使用上面的例子,分别发布 $Z_1=R$ 和 $Z_2=S\oplus R$。两者单独看,都与 $S$ 独立;一起看,却能恢复 $S$。

一般地,完整记录 $Z_{1:T}$ 的泄露满足链式法则:

$$ I(S;Z_{1:T}\mid A)= \sum_{t=1}^{T}I(S;Z_t\mid A,Z_{1:t-1}). $$

右侧每一项都要条件于之前的发布结果,不能简单地用不带历史条件的单次互信息相加。这也是为什么联邦学习只分析某一轮梯度、忽略之前的模型和通信内容,会得到不完整的结论。

数据处理不等式能告诉我们什么?

如果在给定 $A$ 后,$S\to X\to Z$ 构成 Markov 链,那么

$$ I(S;Z\mid A)\le I(S;X\mid A). $$

Markov 条件意味着:在知道 $X$ 与 $A$ 后,$Z$ 的生成不再额外依赖 $S$。因此,只对已有观测做后处理,不能凭空增加关于秘密的信息。3

但这不是“压缩一下就安全”的证明。如果 $Z$ 几乎保留了 $X$ 中所有与秘密相关的内容,不等式虽然成立,泄露仍然很大。反过来,一个更容易使用的表示,也可能让有限算力的攻击者更容易完成推断,即使它的信息论泄露没有增加。

如果后处理还访问了新的辅助信息,则应把这些信息一起纳入模型,不能继续沿用一个漏掉了新输入的 Markov 链。

Fano 不等式:从剩余不确定性到猜测错误

设秘密取值集合大小为 $M\ge2$,攻击者基于 $(Z,A)$ 构造估计 $\widehat S$,错误概率为 $P_e=P(\widehat S\ne S)$。Fano 不等式给出

$$ H(S\mid Z,A)\le h_2(P_e)+P_e\log_2(M-1). $$

如果 $S$ 均匀分布且与 $A$ 独立,再使用 $h_2(P_e)\le1$,可以得到一个较松的界:

$$ P_e\ge1-\frac{I(S;Z\mid A)+1}{\log_2M}. $$

它说明:对于这个有限秘密空间,当泄露较小、候选数较多时,任何估计者的错误概率都有下界。它不是某个具体攻击算法的实验结果;在二分类问题中,这个简化形式通常没有实际约束力,不能拿它证明成员推断接近随机猜测。3

隐私与效用:不是把所有信息都去掉

如果输出完全独立于输入,隐私可能很好,却也可能无法完成任务。设 $Y$ 是有用的预测目标,一种信息论上的建模方式是

$$ \min_{P_{Z\mid X}} I(S;Z\mid A) \quad\text{subject to}\quad I(Y;Z)\ge u_0. $$

这是一个示意性的隐私—效用问题:既希望减少秘密泄露,又希望表示保留任务信息。实际系统可能使用准确率、重建误差或其他指标定义效用,而不直接用 $I(Y;Z)$。如果 $S$ 与 $Y$ 强相关,这两个目标本来就可能冲突。2

用一个神经网络攻击者来估计敏感属性,再训练编码器让它失败,是常见的实验思路。但一个有限模型的交叉熵通常大于最优条件熵,攻击器能力不足也会让损失很高。因此,让一个攻击器失败,并没有证明真实互信息很小。

信息论隐私与差分隐私有什么区别?

差分隐私(Differential Privacy,DP)比较的是相邻数据集的输出分布。对于指定的邻接关系,以及所有相邻 $D,D’$ 和输出事件 $E$,要求

$$ P(\mathcal M(D)\in E) \le e^{\varepsilon}P(\mathcal M(D')\in E)+\delta. $$

这里的对数标度对应自然底数,而前文信息量使用 $\log_2$。$\varepsilon$ 限制输出分布的区分程度,$\delta$ 是近似 DP 的加性松弛项,不能直接解释为“系统有 $\delta$ 的概率泄露全部数据”。定义还需要说明相邻数据集是增删一条记录、替换一条记录,还是增删一个用户的全部记录。4

维度条件互信息视角DP 视角
核心问题输出平均减少了多少秘密不确定性一份受保护数据的变化能让输出分布改变多少
需要明确的对象秘密、联合分布、辅助信息与观测随机机制、邻接关系及隐私参数
保证形式给定概率模型下的平均泄露量对指定邻接关系的所有相邻输入与输出事件成立
常见误用把某个攻击器的失败当成互信息为 0只加噪声,不分析敏感度、采样与累计预算

二者有理论联系,但不是同一个定义。一个给定先验下很小的互信息,不自动推出指定参数的 DP;DP 也不是要求模型不学习任何总体统计规律。

前面的二元随机响应机制,在 $0<q\le1/2$ 时满足单个比特输入上的纯本地 DP,其参数为

$$ \varepsilon=\ln\frac{1-q}{q}. $$

这是直接比较两个输入对应的两个输出概率得到的。当 $q=1/2$ 时,$\varepsilon=0$;当 $q\to0$ 时,隐私参数趋于无穷。它的 DP 参数不依赖均匀先验,而前文 $I(S;Z)=1-h_2(q)$ 的具体数值依赖均匀秘密的假设。

在机器学习实验里,如何使用这些概念?

先指定秘密,再指定攻击者能看到的完整内容。例如,成员身份、某个属性和整条训练样本是不同秘密,不能用一个重建误差统一替代。

随后区分三个层次:理论上分析的分布与机制、数值上估计的互信息或其他代理量,以及某个攻击者实现得到的结果。三者可以互相提供证据,但不能随意互换。

高维连续数据的互信息估计尤其困难。离散化、样本量、估计器偏差与训练过程都会影响结果;不同离散化方案得到的数值不宜直接横向比较。在联邦学习中,还要把多轮交互和辅助信息纳入分析,而不是只选一份看起来“不泄露”的更新。

结语

信息论让隐私问题从“有没有发送原始数据”,转向“观察之后多知道了多少”。它特别适合说明平均泄露、辅助信息与多次发布之间的关系。

但一个信息量公式本身不是完整的安全证明。把秘密、分布、攻击面与假设写清楚,再区分理论界、估计值与实际攻击结果,才是把这些概念用到研究中的关键。

参考资料与相关阅读

Sources: 5.