3. QRNG系统架构与数据流

量子随机数发生器(QRNG)之所以能输出不可预测的随机比特,并不是因为某一段软件算法“算得足够乱”,而是因为整条链路把量子测量中固有的不确定性,逐级转换成可被数字系统消费的比特流。理解这条链路,是后续讨论随机性测试与健康检测的前提:只有先知道比特在哪里产生、在哪里被加工、在哪里可能退化,才能判断测试点应该插在什么位置、检测什么对象。

典型QRNG可以抽象为六个功能段:光源、探测、采样、量化、后处理与输出接口。前四段属于物理熵源与数字化前端,后两段属于数字处理与交付层。不同实现(如基于光子到达时间、相位噪声、自发辐射、真空涨落等)在具体器件上差异很大,但数据流骨架高度一致。

光源 激光/LED/SPDC 衰减至单光子级 量子态制备 探测 SPAD/SiPM/APD 光电转换 输出电脉冲 采样 TDC/ADC 时间/幅度数字化 原始样本序列 量化 阈值比较/多电平 映射为0/1比特 原始比特流 后处理 熵提取/哈希 去偏/压缩 输出均匀比特 输出接口 USB/PCIe/网络 FIFO/驱动 交付应用 随机性测试 NIST SP 800-22 Dieharder/TestU01 统计假设检验 健康检测 实时在线监测 熵源异常告警 故障切换/停机 物理熵源与数字化前端 数字处理与交付层 ← 测试点:原始比特流 健康检测点:实时监控 →

光源与探测:把量子不确定性变成电脉冲

光源段的任务是制备具有量子不确定性的物理态。以最常用的衰减激光方案为例,激光经过强衰减后进入“单光子级”区域,每个时间窗口内到达探测器的光子数服从泊松分布。这里的关键参数是平均光子数 μ,通常取 μ≈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 的比特生成链路是一条“物理不确定性 → 模拟电信号 → 数字样本 → 原始比特 → 均匀比特 → 应用交付”的逐级转换链。每一级都可能引入新的确定性因素,因此每一级都需要对应的观测点和判断依据。随机性测试与健康检测不是链路的附加装饰,而是保证这条链在运行期间持续可信的必要环节。