2. 泄漏错误的物理与信息机理
泄漏错误并不是“凭空出现”的随机比特翻转,它通常有明确的物理来源、确定的传播通道和可观测的信号特征。理解这条从物理世界到信息世界的完整链路,是后续检测与抑制策略设计的根基。本节围绕四个相互衔接的问题展开:泄漏从哪里来(泄漏源建模)、它如何到达敏感位置(泄漏通道与耦合路径)、在观测端呈现什么形态(信号与噪声特征)、以及一旦发生如何扩散(错误传播与累积机制)。
一、泄漏源建模:把物理量映射为信息量
泄漏源建模的核心任务,是回答“哪个物理量、以什么强度、在什么时间窗口内,携带了与秘密相关的信息”。常见的泄漏源可分为三类:功耗类(动态功耗与数据翻转次数相关)、电磁类(电流环路产生的近场辐射)、时间类(执行时间、缓存命中差异导致的时间差)。
以功耗泄漏为例,CMOS 电路的动态功耗近似为 P ≈ α·C·V²·f,其中 α 为翻转活动因子。当某次运算处理的数据位发生 0→1 翻转时,会额外消耗一次充放电能量。若把一次 AES 轮运算的功耗采样序列记为 P(t),则它与汉明重量 HW(state) 之间存在统计相关性。教学示例中常采用如下简化模型:
P(t) = a · HW(S(t)) + b + N(t)
其中:
S(t) —— t 时刻参与运算的中间状态(示例:AES 首轮 S 盒输入)
HW(·) —— 汉明重量,取值 0~8
a —— 泄漏增益(示例假设 a ≈ 0.8 mW/bit)
b —— 静态偏置(示例假设 b ≈ 12 mW)
N(t) —— 高斯噪声,σ 示例取 1.5 mW
该模型的意义在于:它把“物理功耗”与“信息比特”建立了可计算的桥梁。只要 a 足够大、N 足够小,攻击者或检测者就能通过统计手段从 P(t) 中反推 S(t) 的部分信息。泄漏源建模的输出通常是一组泄漏假设——即“哪个中间变量、以何种函数形式泄漏”,这是后续所有检测与抑制工作的前提。
二、泄漏通道与耦合路径
泄漏源产生后,必须经过某种通道才能被观测。通道可分为直接通道(如芯片电源引脚上的电流波动)和间接通道(如电磁辐射、串扰耦合、地弹噪声)。耦合路径则描述了能量从源到观测点的传递关系。
在 PCB 层面,一条典型的耦合路径是:芯片内部开关电流 → 封装引脚电感 → 电源平面阻抗 → 去耦电容 → 测量探头。每一段都会引入衰减、延迟和频带整形。若把整条路径视为线性时不变系统,则观测信号可写为:
y(t) = h(t) * x(t) + n(t)
x(t) —— 泄漏源信号(如功耗波动)
h(t) —— 通道冲激响应(含探头带宽、走线阻抗)
n(t) —— 环境噪声与量化噪声
* —— 卷积
这意味着:同一个泄漏源,在不同测量点、不同探头带宽下,会呈现完全不同的波形。检测方案若忽略通道特性,就可能把通道衰减误判为“无泄漏”,或把通道谐振误判为“异常泄漏”。因此,通道建模与源建模同等重要。
三、信号与噪声特征:如何从观测中区分“有泄漏”与“无泄漏”
观测信号 y(t) 中同时包含泄漏成分与噪声成分。检测的本质是一个统计判决问题:在零假设 H0(无泄漏,y 仅含噪声)与备择假设 H1(有泄漏,y 含信号+噪声)之间做选择。常用的区分依据包括:
- 时域特征:泄漏信号往往与时钟或运算周期同步,呈现周期性尖峰;噪声则无固定相位。
- 频域特征:泄漏能量集中在时钟谐波附近;白噪声则频谱平坦。
- 统计特征:对同一明文重复采集多次,泄漏成分的均值稳定、方差较小;噪声均值趋近于零、方差较大。
教学示例中,若假设 a=0.8 mW/bit、σ=1.5 mW,则单次采样的信噪比约为 0.8/1.5 ≈ 0.53,单点几乎无法区分。但若对同一操作重复采集 M=1000 次并取平均,噪声标准差降为 σ/√M ≈ 0.047 mW,此时信噪比提升至约 17,泄漏特征清晰可辨。这正是“平均去噪”类检测方法的物理依据。
四、错误传播与累积机制
泄漏一旦被利用,其后果并非局限于单点。错误会沿数据流、控制流和状态机三条路径传播:
- 数据流传播:一个被泄漏的中间变量可能参与后续多轮运算,导致密钥空间被逐步缩小。例如 AES 首轮 S 盒输出泄漏后,攻击者可对每个密钥字节独立恢复,错误不会跨字节扩散,但会跨轮次累积。
- 控制流传播:若泄漏导致分支预测或条件跳转被推断,攻击者可绕过安全检查,使错误从“信息泄漏”升级为“功能篡改”。
- 状态机累积:在协议交互中,单次泄漏可能只暴露一个随机数片段;但多次会话的泄漏片段经拼接后,可恢复完整密钥。这种累积效应使“单次看起来安全”的实现长期运行后变得不安全。
累积机制可用一个简单的信息量模型描述:设每次操作泄漏关于密钥的 I 比特信息,攻击者进行 N 次独立观测后,剩余密钥熵近似为 HN ≈ H0 − N·I(当 N·I < H0 时)。教学示例中,若 H0=128 bit、I=0.05 bit/次,则约 2560 次观测后剩余熵趋近于零。这解释了为什么泄漏检测必须关注“长期累积”而非仅看单次强度。