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) —— 环境噪声与量化噪声
  *    —— 卷积

这意味着:同一个泄漏源,在不同测量点、不同探头带宽下,会呈现完全不同的波形。检测方案若忽略通道特性,就可能把通道衰减误判为“无泄漏”,或把通道谐振误判为“异常泄漏”。因此,通道建模与源建模同等重要。

泄漏源—通道—观测点的信号链与耦合路径 泄漏源 数据相关功耗 x(t) = a·HW(S)+b 注入 耦合路径 h(t) 封装电感 / 电源平面 去耦电容 / 走线阻抗 探头带宽整形 传输 观测点 y(t) = h(t)*x(t)+n(t) 示波器 / 探头 环境噪声 n(t) 热噪声 / 量化 / 串扰 信号与噪声特征:时域波形与统计分布 泄漏信号(周期性尖峰) 噪声(随机波动) 统计区分度 H0 H1

三、信号与噪声特征:如何从观测中区分“有泄漏”与“无泄漏”

观测信号 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,泄漏特征清晰可辨。这正是“平均去噪”类检测方法的物理依据。

判断依据示例:若对某中间变量按汉明重量分组(如 HW=0~8 共 9 组),分别计算各组功耗均值。若各组均值随 HW 单调递增且组间差异显著大于组内标准差,则可判定存在数据相关泄漏;若各组均值无规律或差异在噪声范围内,则暂不能判定泄漏。

四、错误传播与累积机制

泄漏一旦被利用,其后果并非局限于单点。错误会沿数据流、控制流和状态机三条路径传播:

  • 数据流传播:一个被泄漏的中间变量可能参与后续多轮运算,导致密钥空间被逐步缩小。例如 AES 首轮 S 盒输出泄漏后,攻击者可对每个密钥字节独立恢复,错误不会跨字节扩散,但会跨轮次累积。
  • 控制流传播:若泄漏导致分支预测或条件跳转被推断,攻击者可绕过安全检查,使错误从“信息泄漏”升级为“功能篡改”。
  • 状态机累积:在协议交互中,单次泄漏可能只暴露一个随机数片段;但多次会话的泄漏片段经拼接后,可恢复完整密钥。这种累积效应使“单次看起来安全”的实现长期运行后变得不安全。

累积机制可用一个简单的信息量模型描述:设每次操作泄漏关于密钥的 I 比特信息,攻击者进行 N 次独立观测后,剩余密钥熵近似为 HN ≈ H0 − N·I(当 N·I < H0 时)。教学示例中,若 H0=128 bit、I=0.05 bit/次,则约 2560 次观测后剩余熵趋近于零。这解释了为什么泄漏检测必须关注“长期累积”而非仅看单次强度。

工程含义:抑制策略不能只针对单次泄漏源,还必须切断传播路径或限制累积次数。例如:在数据流上插入掩码使 I 趋近于零;在控制流上采用恒定时间实现消除分支差异;在状态机上限制同一密钥的使用次数或定期轮换。