3. QRNG系统架构与数据流
量子随机数发生器(QRNG)之所以能输出不可预测的随机比特,并不是因为某一段软件算法“算得足够乱”,而是因为整条链路把量子测量中固有的不确定性,逐级转换成可被数字系统消费的比特流。理解这条链路,是后续讨论随机性测试与健康检测的前提:只有先知道比特在哪里产生、在哪里被加工、在哪里可能退化,才能判断测试点应该插在什么位置、检测什么对象。
典型QRNG可以抽象为六个功能段:光源、探测、采样、量化、后处理与输出接口。前四段属于物理熵源与数字化前端,后两段属于数字处理与交付层。不同实现(如基于光子到达时间、相位噪声、自发辐射、真空涨落等)在具体器件上差异很大,但数据流骨架高度一致。
光源与探测:把量子不确定性变成电脉冲
光源段的任务是制备具有量子不确定性的物理态。以最常用的衰减激光方案为例,激光经过强衰减后进入“单光子级”区域,每个时间窗口内到达探测器的光子数服从泊松分布。这里的关键参数是平均光子数 μ,通常取 μ≈0.1,使“有光子”和“无光子”成为两个可区分的事件。若 μ 过大,多光子事件增多,随机性会向经典噪声退化;若 μ 过小,探测效率下降,比特率降低。
探测段由单光子雪崩二极管(SPAD)或硅光电倍增管(SiPM)完成。光子击中器件后触发雪崩,输出一个纳秒级电脉冲。SPAD 存在死时间(典型 20–50 ns),在此期间无法响应新光子,这会引入时间相关性。因此探测段不仅要看“有没有脉冲”,还要关注死时间、后脉冲概率和暗计数率。暗计数是热激发产生的假脉冲,它不携带量子随机性,是健康检测需要重点监控的对象。
采样与量化:从模拟脉冲到原始比特
采样段把电脉冲转换为数字样本。常见做法是用时间数字转换器(TDC)记录相邻脉冲的时间间隔,或用高速 ADC 采集脉冲幅度。以 TDC 为例,时间间隔被量化为整数皮秒值,形成原始样本序列 x₁, x₂, x₃, …。这些样本并不是均匀分布的:时间间隔服从指数分布,幅度分布也往往偏向某一侧。
量化段负责把非均匀样本映射为 0/1 比特。最简单的是阈值比较:设定阈值 T,若样本大于 T 输出 1,否则输出 0。但阈值必须根据实际分布动态调整,否则 0 和 1 的比例会偏离 1:1。更稳健的做法是使用多电平量化,把样本分成多个区间,再通过格雷码或比较器网络提取最低有效位。量化后的比特流称为“原始比特流”,它已经具备随机性,但通常仍存在偏置和相关性。
后处理:从原始比特到可用随机数
后处理段是数字域的“净化”环节。原始比特流可能因为探测器死时间、暗计数、时钟抖动等因素出现偏置或短程相关。后处理通常包括两步:先去偏,再压缩。去偏可以用冯·诺依曼校正:把比特两两分组,01 输出 0,10 输出 1,00 和 11 丢弃。这种方法不依赖分布假设,但会丢弃大量比特,效率最高只有 25%。
更常用的是基于哈希的熵提取,例如使用 SHA-256 或 AES-CBC-MAC,把原始比特流压缩为固定长度的输出。压缩比需要根据最小熵估计来确定:如果原始序列的最小熵为 H_min,则每 n 比特最多可提取约 H_min 比特的均匀随机数。实际工程中,压缩比通常取 2:1 到 10:1,具体取决于熵源质量和安全裕量。后处理输出的比特流应通过统计测试,才能交付输出接口。
输出接口与测试插入位置
输出接口负责把后处理后的比特流交付给应用。常见形式包括 USB、PCIe、以太网或片上 FIFO。接口层需要处理流控、缓冲和驱动兼容性,但不应改变比特内容。如果接口层引入重传、打包或校验,必须确保这些操作不引入可预测的比特模式。
随机性测试与健康检测在链路中的插入位置不同。随机性测试通常作用于后处理输出之后,因为这是最终交付的比特流,需要验证其统计特性是否满足 NIST SP 800-22、Dieharder 或 TestU01 等标准。测试是离线的、批量的,关注的是“这批比特是否像真随机”。
健康检测则作用于物理熵源与数字化前端,通常实时在线运行。它监控的是原始样本的均值、方差、自相关、暗计数率等参数,一旦发现熵源退化(如光源功率漂移、探测器暗计数突增),立即告警或切换备用熵源。健康检测不替代随机性测试,而是保证熵源在运行期间持续“健康”,避免后处理输出看似正常但实际熵不足。
典型参数示例与判断依据
以下参数属于教学示例,用于说明各段的可观测对象和判断逻辑,并非某一具体设备的实测值。
| 链路段 | 关键参数 | 示例值 | 异常判断 |
|---|---|---|---|
| 光源 | 平均光子数 μ | 0.1 | μ 漂移超过 ±20% 触发告警 |
| 探测 | 暗计数率 | 100 cps | 突增 10 倍以上判定异常 |
| 采样 | 时间间隔均值 | 50 ns | 均值偏移超过 15% 检查光源 |
| 量化 | 0/1 比例 | 0.50±0.01 | 偏离 0.48–0.52 需重新校准阈值 |
| 后处理 | 压缩比 | 4:1 | 输出熵率低于安全阈值则停机 |
| 输出接口 | 吞吐率 | 10 Mbps | 持续低于标称值 50% 检查缓冲 |
从数据流角度看,QRNG 的比特生成链路是一条“物理不确定性 → 模拟电信号 → 数字样本 → 原始比特 → 均匀比特 → 应用交付”的逐级转换链。每一级都可能引入新的确定性因素,因此每一级都需要对应的观测点和判断依据。随机性测试与健康检测不是链路的附加装饰,而是保证这条链在运行期间持续可信的必要环节。