3. 基于弱相干脉冲的诱骗态 BB84 参数计算

弱相干脉冲诱骗态 BB84 的增益与误码率模型

弱相干光源(WCS)的光子数服从泊松分布,脉冲平均光子数为 μ 时,含 n 个光子的概率为 P(n)=e−μμn/n!。多光子脉冲会带来光子数分离(PNS)攻击风险,诱骗态方法通过发送不同强度(信号态 μ、诱骗态 ν、真空态 ω≈0)并分别统计增益与误码率,来估计单光子成分的贡献。本节以 GYS 三强度诱骗态 BB84 为对象,完成增益、误码率与安全密钥率的数值计算。

核心公式与参数约定

设 Alice 发送强度 k∈{μ, ν, ω},Bob 端探测效率 ηB,暗计数率 pd(每脉冲每探测器),系统总效率 η=ηB·10−αL/10,其中 α 为光纤损耗系数(dB/km),L 为传输距离(km)。

  • 增益(Yield):Yn = 1 − (1−η)n + pd(近似,忽略暗计数与信号重合的高阶项)。
  • 总增益:Qk = Σn Pk(n)·Yn = 1 − e−kη + pd。
  • 单光子误码率:e1 = (e0·Y0 + ed·η) / Y1,其中 e0=0.5 为暗计数误码,ed 为光学对准误码。
  • 总误码率:EkQk = e0·Y0 + ed·(1−e−kη)。
  • 安全密钥率(GLLP 下界):R ≥ q·[−Qμ·f(Eμ)·H2(Eμ) + Q1L·(1−H2(e1U))],q=1/2 为基矢筛选因子,f 为纠错效率,H2 为二元熵。
弱相干光源 泊松分布 P(n) μ=0.5 信号态 ν=0.1 诱骗态 ω≈0 真空态 光纤信道 损耗 α=0.2 dB/km η=η_B·10^(−αL/10) Bob 探测器 η_B=0.1 p_d=1e−6 e_d=0.01 e_0=0.5 增益与误码统计 Q_k = 1 − e^(−kη) + p_d E_k·Q_k = e_0·Y_0 + e_d·(1−e^(−kη)) Y_1 = 1 − (1−η) + p_d e_1 = (e_0·Y_0 + e_d·η)/Y_1 Q_1^L, e_1^U 由 μ,ν,ω 估计 安全密钥率下界 R ≥ q·[−Q_μ f(E_μ) H_2(E_μ) + Q_1^L (1 − H_2(e_1^U))] q=1/2, f=1.16 R 随传输距离 L 变化(示意) L (km) R 0 50 100 150 R=0 最大安全距离 ≈130 km

数值计算示例

取 α=0.2 dB/km、ηB=0.1、pd=1×10−6、ed=0.01、μ=0.5、ν=0.1、ω=0,纠错效率 f=1.16。以 L=50 km 为例,η=0.1×10−1=0.01。

  • Y0=pd=1×10−6;Y1=1−(1−0.01)+1×10−6≈0.010001。
  • Qμ=1−e−0.5×0.01+1×10−6≈1−0.995012+0.000001≈0.004989。
  • Qν=1−e−0.1×0.01+1×10−6≈0.0010005。
  • EμQμ=0.5×1×10−6+0.01×(1−e−0.005)≈5×10−7+0.01×0.0049875≈5.04×10−5,故 Eμ≈0.0101。
  • e1=(0.5×1×10−6+0.01×0.01)/0.010001≈(5×10−7+1×10−4)/0.010001≈0.01005。
  • Q1L 用三强度估计:Q1L≈(μ²e−μ/(μν−ν²))·(Qνeν−Qωeω−(ν²/μ²)(Qμeμ−Qωeω)),代入得 Q1L≈0.0039。
  • H2(0.0101)≈0.0808,H2(0.01005)≈0.0805。
  • R≥0.5×[−0.004989×1.16×0.0808+0.0039×(1−0.0805)]≈0.5×[−0.000468+0.003586]≈0.00156,即约 1.56×10−3 每脉冲。

随 L 增大,η 指数下降,Qμ 与 Q1L 同步衰减,而暗计数项相对占比上升,e1U 增大,最终 R 降至 0。上图中曲线与 R=0 的交点即该参数组下的最大安全距离(示意约 130 km,实际值需按上述公式逐点计算)。

计算时注意:Qω 用真空态实测增益(约 2pd),不要直接置零;e1U 需用诱骗态误码率上界估计,而非直接取 e1 公式值,否则会高估密钥率。

可执行计算脚本(Python)

import numpy as np

def h2(x):
    x = np.clip(x, 1e-12, 1-1e-12)
    return -x*np.log2(x) - (1-x)*np.log2(1-x)

def key_rate(L, mu=0.5, nu=0.1, omega=0.0,
             eta_B=0.1, pd=1e-6, ed=0.01, alpha=0.2, f=1.16):
    eta = eta_B * 10**(-alpha*L/10)
    Y0 = pd
    Y1 = 1 - (1-eta) + pd
    Q_mu = 1 - np.exp(-mu*eta) + pd
    Q_nu = 1 - np.exp(-nu*eta) + pd
    Q_om = 2*pd
    E_mu = (0.5*Y0 + ed*(1-np.exp(-mu*eta))) / Q_mu
    # 三强度估计 Q1 下界
    num = Q_nu*np.exp(nu) - Q_om - (nu**2/mu**2)*(Q_mu*np.exp(mu) - Q_om)
    Q1L = mu**2*np.exp(-mu)/(mu*nu - nu**2) * num
    Q1L = max(Q1L, 0.0)
    e1U = (E_mu*Q_mu - 0.5*Y0) / max(Q1L, 1e-12)  # 简化上界
    e1U = min(max(e1U, 0.0), 0.5)
    R = 0.5 * (-Q_mu*f*h2(E_mu) + Q1L*(1 - h2(e1U)))
    return R, Q_mu, E_mu, Q1L, e1U

for L in [0, 25, 50, 75, 100, 125, 150]:
    R, Qm, Em, Q1, e1 = key_rate(L)
    print(f"L={L:3d} km  R={R:.3e}  Q_mu={Qm:.3e}  E_mu={Em:.4f}  Q1L={Q1:.3e}  e1U={e1:.4f}")

运行后观察 R 随 L 单调下降并在某距离处穿越 0,该距离即当前参数下的最大安全传输距离。改变 μ、ν 或 ηB 可观察曲线平移,为后续强度与概率优化提供基线。

上述 e1U 采用简化上界,仅用于教学演示趋势;严格安全性证明需使用诱骗态误码率上界公式 e1U=(EνQνeν−EωQω)/(Y1L·ν) 等标准表达式,并保证 Q1L、Y1L 的统计涨落容差。