4. 熵源建模与随机过程分析

在TRNG工程中,物理熵源输出的原始信号往往并不是理想的白噪声。它可能包含直流偏置、周期性干扰、低频漂移、1/f闪烁噪声,甚至存在短时相关性和状态记忆。如果直接对原始采样做后处理,而不理解其随机过程特性,就可能高估熵率、误判随机性,最终导致密钥空间被压缩。因此,熵源建模的核心任务不是“证明它随机”,而是用可检验的模型描述它“在什么条件下、以多快的速度产生多少不可预测性”。

本节围绕白噪声、1/f噪声、马尔可夫过程、自相关函数、功率谱密度、熵率估计与模型验证展开,重点说明如何从采样序列出发,建立可计算、可验证的随机过程模型。

一、从白噪声到有色噪声:先看自相关与功率谱

白噪声是最基础的随机过程模型:任意两个不同时刻的采样值互不相关,自相关函数在零延迟处为方差,其余延迟处为零。其功率谱密度在整个频带上平坦。工程上常说的“白噪声”通常指宽带、近似不相关的热噪声或散粒噪声。但真实熵源经过放大器、ADC采样保持电路和电源耦合后,频谱往往不再平坦。

描述这种非平坦特性,最直接的工具是自相关函数和功率谱密度。自相关函数定义为:

Rxx[k] = E[ x[n] · x[n+k] ]

其中k为延迟点数。若Rxx[k]在k≠0时迅速衰减到接近零,说明样本间相关性弱;若衰减缓慢或出现周期性峰,说明存在低频漂移或周期干扰。功率谱密度则是自相关函数的傅里叶变换,用于观察能量在频带上的分布。白噪声对应平坦谱;1/f噪声对应低频能量显著高于高频;单频干扰则在谱上表现为尖峰。

实际分析时,通常先去除直流分量,再计算自相关和功率谱。若采样率为fs,延迟k对应的物理时间滞后为k/fs。例如fs=1 MHz,k=10对应10 μs。若自相关在10 μs内衰减到噪声底以下,说明样本间相关性时间尺度约为微秒级,这为后续抽取或压缩提供了依据。

二、1/f噪声与马尔可夫过程:两种常见的非理想模型

1/f噪声,又称闪烁噪声,广泛存在于MOSFET、电阻和放大器输入级。其功率谱密度近似满足S(f)∝1/f^α,α通常在0.8到1.2之间。1/f噪声的特点是低频能量大、长程相关强,单纯增加采样率并不能显著提高熵率,因为相邻样本高度相关。对于这类熵源,常用做法是高速采样后做差分、抽取或使用高频段信号,以避开低频主导区。

马尔可夫过程则从状态转移角度描述随机性。若当前状态只依赖前一状态,则为一阶马尔可夫链。对于离散化后的熵源输出,可以统计状态转移概率矩阵P,其中Pij表示从状态i转移到状态j的概率。若转移矩阵各行接近均匀分布,说明下一状态难以预测;若某行概率高度集中,说明存在强记忆性,熵率会显著降低。

马尔可夫模型的价值在于:它把“随机性”转化为可计算的转移概率,并可通过矩阵幂或平稳分布估计长期行为。对于TRNG,若熵源存在明显状态记忆,应使用马尔可夫模型估计熵率,而不是简单套用独立同分布假设。

三、熵率估计:从模型到可量化指标

熵率表示随机过程每输出一个符号所携带的平均不可预测信息量。对于独立同分布序列,熵率等于单符号香农熵:

H = -Σ p(x) log2 p(x)

对于马尔可夫链,熵率为:

H_rate = Σ π(i) Σ P(i,j) log2(1/P(i,j))

其中π(i)为平稳分布。对于连续值熵源,通常先量化到有限符号集,再按上述公式估计。若存在自相关,还可采用块熵、条件熵或压缩率估计。工程上常用NIST SP 800-90B中的最小熵估计方法,但前提是模型假设合理。

一个可操作的估计流程是:采集足够长的原始样本,去除直流,计算自相关和功率谱,判断噪声类型;若近似白噪声,按独立同分布估计熵率;若存在短时相关,建立一阶或二阶马尔可夫模型;若存在1/f低频主导,先做高通或差分预处理,再重新估计。最终得到的熵率应明显低于原始采样率,二者之比可作为每比特采样可提取的熵量参考。

四、模型验证:不能只看一条曲线

模型验证的目标是判断所选模型是否足以描述熵源行为。常用方法包括:残差自相关检验、功率谱平坦度检验、卡方拟合优度检验、游程检验以及条件熵随阶数变化检验。若残差自相关仍显著非零,说明模型阶数不足;若功率谱在某个频点持续出现尖峰,说明存在未建模的周期干扰。

验证时还应关注采样条件变化:电源电压、温度、时钟频率变化后,自相关和熵率是否稳定。若熵率随温度显著下降,说明模型参数需要加入环境变量,或在设计中增加在线健康测试。

熵源建模与随机过程分析流程 原始采样序列 x[n], fs, N点 去直流与预处理 x'[n]=x[n]-mean 自相关 & 功率谱 Rxx[k], S(f) 噪声类型判断 白/1/f/周期 白噪声模型 Rxx[k]≈0 (k≠0) S(f)平坦 → 独立同分布熵率 1/f噪声模型 S(f)∝1/f^α 长程相关、低频主导 → 差分/高通/抽取 马尔可夫过程模型 状态转移矩阵 P(i,j) 平稳分布 π(i) → 条件熵/熵率 熵率估计 H_rate = Σ π(i) Σ P(i,j) log₂(1/P(i,j)) 或独立同分布:H = -Σ p(x) log₂ p(x) 模型验证:残差自相关 · 谱平坦度 · 卡方 · 游程 · 条件熵 若残差仍相关 → 提高模型阶数或增加预处理 关键参数 fs 采样率 · N 样本数 α 噪声指数 · k 延迟 风险提示 忽略相关性 → 高估熵率 未建模周期 → 可预测性

五、工程实践中的建模要点

在实际TRNG设计中,熵源建模通常不是一次性工作,而是与健康测试、后处理设计联动。建议按以下顺序推进:第一,采集原始数据并保存原始样本,不要只保存后处理结果;第二,计算自相关和功率谱,判断噪声类型;第三,根据噪声类型选择模型,白噪声用独立同分布,短时相关用马尔可夫,低频主导用差分或高通;第四,估计熵率并留出安全裕量,通常取估计值的50%到70%作为可用熵;第五,用独立数据集验证模型,检查残差和谱平坦度。

需要特别注意的是,熵率估计结果依赖于采样条件和模型假设。若电源纹波、时钟抖动或温度变化导致噪声特性改变,原模型可能失效。因此,在线健康测试应监测自相关、游程和熵率下界,一旦偏离预期范围就触发告警或停止输出。

示例参数:假设某环形振荡器熵源采样率fs=10 MHz,采集N=1,000,000点。去直流后计算自相关,发现Rxx[1]/Rxx[0]=0.35,Rxx[10]/Rxx[0]=0.02,说明相邻样本存在中等相关,但10个采样点后基本独立。此时可建立一阶马尔可夫模型,量化到8 bit后估计熵率约为3.2 bit/样本,而原始采样率为10 MHz,则可用熵率约为32 Mbit/s。若直接按8 bit独立同分布估计,会得到接近8 bit/样本,明显高估。该示例为教学假设,实际数值需以实测数据为准。
常见误区:把“通过随机性测试”等同于“熵率足够”。随机性测试只能说明序列未表现出某些统计偏差,不能直接给出每样本的不可预测信息量。熵率估计必须结合物理模型和统计模型,二者缺一不可。

总结来看,熵源建模的关键在于:先看自相关和功率谱判断噪声类型,再选择白噪声、1/f噪声或马尔可夫过程等模型,然后用熵率公式量化不可预测性,最后通过残差检验和条件熵检验验证模型。只有模型、估计和验证三者一致,TRNG的熵率声明才具有工程可信度。