1. TRNG与熵源工程导论
在密码系统中,随机数不是“辅助材料”,而是密钥、挑战值、初始化向量、盐值、会话标识、掩码和一次性令牌的生成基础。随机数一旦可预测,后续再强的分组密码、哈希函数或公钥算法都可能被绕过。因此,理解真随机数发生器(True Random Number Generator,TRNG)与伪随机数发生器(Pseudo-Random Number Generator,PRNG)的本质区别,是进入熵源工程的第一道门槛。
1. TRNG与PRNG的本质区别
PRNG 是确定性算法。给定相同的种子和相同的内部状态,它必然输出相同的序列。它的“随机性”来自算法对种子的扩散与混淆,而不是来自不可预测的物理过程。PRNG 的优点是速度快、可复现、易于软件实现,适合仿真、测试和某些非安全场景;但在密码学中,PRNG 的安全性完全依赖于种子的保密性和不可预测性。如果种子被攻击者获知或猜测,整个输出序列即可被重建。
TRNG 则不同。它从物理世界中采集熵,例如热噪声、环形振荡器抖动、亚稳态、光子到达时间、放射性衰变或半导体器件的雪崩噪声。这些过程在经典物理层面具有不可预测性,因此 TRNG 的输出不能仅凭算法和已知状态被完全重建。TRNG 的核心不是“算法多复杂”,而是“熵源是否真实、采集是否可靠、后处理是否透明、健康监测是否到位”。
可以用一个简化的关系来理解:PRNG 的输出空间由种子决定,TRNG 的输出空间由物理熵决定。前者是“确定性扩展”,后者是“物理不确定性采集”。在工程上,TRNG 通常不是直接输出最终随机比特,而是经过采样、量化、去偏、压缩、健康检测和接口封装,最终形成可被系统安全使用的随机比特流。
2. 熵源在密码学与安全系统中的核心地位
熵是随机性的度量。在信息论中,熵描述一个随机变量不确定性的多少。对于密码系统而言,真正重要的是“最小熵”,即攻击者在最有利条件下仍无法确定的那部分不确定性。一个熵源如果输出 8 位数据,但其中 7 位固定、只有 1 位随机,那么它的最小熵只有 1 位,而不是 8 位。工程上必须区分“看起来随机”和“具有足够最小熵”这两件事。
熵源的地位可以从三个层面理解。第一,密钥生成:如果 RSA 或 ECC 私钥的随机数生成过程熵不足,攻击者可以通过格攻击或暴力搜索缩小私钥空间。第二,协议安全:TLS 握手、SSH 会话、区块链签名、物联网设备认证都依赖不可预测的随机挑战和会话密钥。第三,系统信任根:安全启动、可信执行环境、硬件安全模块和密码协处理器通常把 TRNG 作为信任链的起点。没有可信熵源,整个安全体系就像建在沙地上的城堡。
在实际系统中,熵源往往不是单一器件,而是多源组合。例如,一个安全芯片可能同时采集环形振荡器抖动、SRAM 上电噪声和温度传感器噪声,再通过异或或哈希混合,降低单一熵源失效带来的风险。这种设计思想称为“熵源多样性”和“失效冗余”。
3. 课程整体学习地图与工程目标
本课程围绕“从物理噪声到可信随机比特”的完整链路展开,共 30 章。学习地图可以划分为五个阶段:
- 基础认知阶段:理解 TRNG 定义、PRNG 区别、熵的度量、随机性测试的基本思想。
- 熵源与采集阶段:掌握热噪声、环形振荡器、亚稳态、雪崩噪声等物理机制,以及采样、量化、放大和数字化方法。
- 调理与后处理阶段:学习去偏、压缩、哈希、异或、白化等后处理技术,理解它们对熵和吞吐率的影响。
- 健康检测与评估阶段:掌握在线健康测试、熵估计、NIST SP 800-90B、AIS 31 等标准方法,以及故障注入和侧信道防护。
- 工程集成与合规阶段:完成 TRNG 在 FPGA、ASIC、MCU、安全芯片中的集成,接口设计、功耗管理、认证与文档。
工程目标不是“做一个能输出 0 和 1 的电路”,而是交付一个可量化、可监测、可审计、可集成的熵源子系统。具体包括:
- 明确熵源物理机制与最小熵下界,给出可复现的采集电路或采集逻辑。
- 设计后处理链路,使输出比特通过统计测试,同时不引入可预测结构。
- 实现在线健康检测,在熵源退化、失效或受攻击时及时告警并停止输出。
- 提供标准接口,如 AXI、APB、SPI 或寄存器映射,便于 SoC 集成。
- 形成测试报告、熵评估报告和合规文档,支撑认证与审计。