真随机数生成的工作原理是采集物理熵——热噪声、大气静电、量子衰变——并将这些混沌的模拟信号转换为数字比特。与基于算法的生成器不同,硬件驱动的系统测量非确定性的环境变量,从而产生数学上无法预测、无规律可循的序列。
下面介绍这项技术的工作原理、失效场景,以及如何为你的用例选择正确方案。
TRNG 如何工作:从物理混沌到数字比特
真随机数生成器(TRNG)——也称作硬件随机数生成器(HRNG)——并不依赖任何公式。它通过捕获外部的熵源并将其模拟信号转换为二进制流,在不可预测的物理世界与严苛的数字逻辑之间架起桥梁。
正如 John von Neumann 在 1951 年所警告的:“任何考虑用算术方法产生随机数字的人,当然都处于一种罪恶的状态。”
三种常见熵源
| 源 | 测量内容 | 设备示例 |
|---|---|---|
| 热噪声 | 电路中电子运动引起的电压波动 | 智能手机安全隔区(Apple A 系列、Google Tensor) |
| 大气噪声 | 闪电等自然事件产生的无线电静电 | 专用 RNG 服务器 |
| 量子现象 | 放射性衰变、真空涨落 | ANU 量子 RNG、企业级服务器 |

整个管线十分简单:物理源 → 传感器/数字化器 → 二进制输出。原始熵从一端输入,纯净的随机比特从另一端输出。
TRNG vs PRNG:确定性的分水岭
随机数生成的核心分歧,在于物理熵与算法逻辑之间。
| 特性 | TRNG(硬件) | PRNG(算法) | CSPRNG(混合) |
|---|---|---|---|
| 来源 | 物理熵 | 数学公式 | 硬件种子 + 算法 |
| 可预测? | 否 | 是——种子已知即可 | 极难 |
| 速度 | 较慢(阻塞式) | 极快 | 快 |
| 可复现? | 否 | 是(相同种子 = 相同输出) | 否 |
| 适用场景 | 加密密钥、安全令牌 | 模拟、游戏 | 生产级安全系统 |
PRNG 翻车时刻:Hot Lotto 欺诈案
PRNG 使用种子值作为数学公式的起点。输出看起来是随机的,但完全确定。如果有人知道了种子和公式,就能预测每一个数字。
这并非纸上谈兵。在 Hot Lotto 欺诈丑闻中,内部人员在维护期间安装了恶意软件,强制 PRNG 使用可预测的种子——从而操纵了高达 1650 万美元的头奖。

PRNG 大显身手的场景
对于看重速度和可复现性的任务,PRNG 反而更合适。在蒙特卡洛模拟中,科学家需要反复运行同一序列以验证结果。由于可以复用相同种子,模拟保持一致——这是阻塞式的 TRNG 做不到的。
混合方案:CSPRNG
大多数现代系统使用密码学安全的伪随机数生成器(CSPRNG)——这是一种混合方案:抽取少量真实的硬件熵来为一个快速算法播种。这样既具备 TRNG 的不可预测性,又拥有 PRNG 的速度。
业界标准是 NIST SP 800-90A,它定义了面向政府和工业用途时这些生成器的构建方式。
开发者指南:该用哪个库
| 语言 | 不安全(PRNG) | 安全(CSPRNG) |
|---|---|---|
| Python | random(梅森旋转) |
secrets(读取 /dev/urandom) |
| JavaScript | Math.random() |
crypto.getRandomValues() |
| Go | math/rand |
crypto/rand |
| Java | java.util.Random |
java.security.SecureRandom |
规则:凡是涉及安全的场景,一律使用 secrets / crypto / SecureRandom。random / Math.random() 仅用于游戏和模拟。
2026 年消费级硬件中的 TRNG
到 2026 年,硬件熵已从企业级服务器走进了日常设备。现代智能手机芯片在其安全隔区内部集成了专用 TRNG,直接从处理器采集热噪声,为 FaceID、数字钱包和安全通信生成加密密钥。
在企业安全领域,前沿方向是量子随机数生成。诸如澳大利亚国立大学等机构开发的系统,利用量子真空涨落来产生数字——这种级别的随机性,即便是未来的量子计算机也多半无法破解。
白化处理:从原始噪声到干净数据
原始熵很少是均匀的。由于温度漂移,热传感器产生的 1 可能略多于 0。为了修正这种偏差,数据要经过白化(whitening)处理——通常是异或(XOR)运算或密码学哈希——以抹平规律,确保分布均匀。
对于任何用于认证系统的熵源,这一后处理步骤都是 NIST SP 800-90B 所强制要求的。
采集混沌的简史
- 1927 年: L.H.C. Tippett 从人口普查记录中手工抽取,发布了 41600 个数字的数表。
- 1955 年: RAND Corporation 借助电子脉冲机发布了《一百万个随机数字》。
- 2013 年: Dual_EC_DRBG 丑闻曝光——NSA 在一款通过 NIST 认证的生成器中植入了后门,借此破解 SSL 连接。这一事件推动整个行业走向多源熵混合——杜绝单点失效。
结论
真随机数是数字信任的基石。它需要物理硬件来弥合可预测的代码与混沌现实之间的鸿沟。无论是手机中的热噪声,还是机房中的量子涨落,从伪随机走向硬件验证熵,都是 2026 年安全体系的必然要求。
致开发者:涉及安全请使用 secrets(Python)或 crypto.getRandomValues()(JavaScript),切勿使用 random 或 Math.random()。致企业:硬件 TRNG 已不再是可选项——它是加密的基线要求。
常见问题
我电脑的内部时钟是真随机源吗?
不是。时钟是可预测的,之所以常被用作 PRNG 种子,恰恰是因为它在不断变化。但如果攻击者大致知道数字的生成时间,就能缩小可能性范围。真随机需要测量非确定性事件的时序——按键间隔、热噪声——并随后进行统计白化处理。
人能生成真正随机的序列吗?
人类极不擅长制造随机性。我们会刻意回避(如“1, 1, 1”这样的)聚簇,即便它们在随机集合中本就自然出现;我们在选项间切换得过于频繁。统计测试很容易识别这些模式,因此人类输入可用作播种,但对安全敏感任务而言远远不够。
哪些统计测试能验证真随机性?
NIST 统计测试套件(STS)是黄金标准。其他框架还包括 Dieharder 测试和 AIS 31 标准。这些测试会搜寻重复模式、相同比特的长串以及其他表明偏差或可预测性的异常。
发表回复