
量子计算已从理论概念迅速发展为——尽管仍处于初期阶段——可通过云端访问的真实硬件。随着这一进展而来的,是新的安全隐患,最引人注目的便是 侧信道攻击:它们利用无意中泄漏的信息来破坏系统。最新研究表明,不仅经典系统,量子系统同样面临着复杂的侧信道风险,威胁量子计算与量子通信的机密性与完整性。
在本文中,我们将深入探讨:
侧信道攻击是一种通过分析系统运行时产生的物理或模拟(analog)现象来提取机密信息的方法,而非直接破解算法本身。它们利用诸如时间、功耗、声响、电磁辐射等处理受保护数据时产生的“副作用”。
量子系统与经典系统一样会与环境交互。其操作(激光、微波或电脉冲)可能无意间泄漏所处理的数据。随着 量子密钥分发(QKD) 和云端量子处理器的普及,攻击者甚至可以远程利用量子特有的侧信道!
量子计算机使用 量子比特(qubit),可处于 0 与 1 的叠加态。对它们施加的 控制脉冲(微波、光学或电信号)实现量子算法所需的逻辑门操作。
控制脉冲(IBM/Google 硬件常用微波信号)是所有量子操作的核心:
任何脉冲的差异或模式理论上都可能成为侧信道。
2023 年的研究《Power Side Channels of Quantum Computing》(arXiv:2304.03315)提出并评估了五种利用 控制脉冲信息 的新型攻击——即便通过云端量子计算机也能获取这些数据。
pulse 访问(多数公共后端虽有限制,但足够分析)攻击流程示意
用户上传量子作业 → 控制软件编译为脉冲 → 脉冲发送至硬件(日志可获取) →
攻击者访问日志 → 推断机密信息
多伦多大学 2025 年研究(见 Phys.org 报道)在实际 量子通信系统 中发现了意想不到的多维侧信道,威胁 QKD 等协议。
设想 Alice 与 Bob 使用商用 QKD。攻击者 Eve 不仅捕获预期信号光子,还捕获此前被忽略的额外模式(频谱、时间、偏振)。Eve 利用高端探测器重构部分密钥而不引起警报。
无论是 量子计算中的控制脉冲,还是 量子通信中的多模泄漏,量子技术绝非侧信道免疫体。
即便我们转向 后量子密码(PQC)(在经典硬件上运行、抗量子算法攻击),侧信道抵御性 仍是关键需求。
参考 Secure-IC 采访博客:
# Python 玩具示例:用随机值掩码密钥
import secrets
def mask_secret(secret):
mask = secrets.randbelow(1 << len(bin(secret)))
masked = secret ^ mask
# 后续计算使用 (masked, mask) 而非 secret
return (masked, mask)
def unmask(masked, mask):
return masked ^ mask
secret = 12345
masked, mask = mask_secret(secret)
recovered = unmask(masked, mask)
assert recovered == secret
侧信道泄漏检测需结合 主动扫描、日志检查 与 信号分析。
# 在本地目录查找所有 Qiskit 脉冲日志
find ./qiskit_jobs/ -type f -iname "*pulse*" -print
import json
import glob
for fname in glob.glob('./qiskit_jobs/*pulse*.json'):
with open(fname) as f:
pulse_data = json.load(f)
for instr in pulse_data.get('experiment', {}).get('instructions', []):
print(f"Qubit: {instr.get('qubit')}, Duration: {instr.get('duration')}, Start: {instr.get('t0')}")
from collections import Counter
def extract_patterns(pulse_instructions, window=3):
patterns = []
for i in range(len(pulse_instructions) - window + 1):
patterns.append(tuple(pulse_instructions[i:i+window]))
return patterns
all_patterns = []
for fname in glob.glob('./qiskit_jobs/*pulse*.json'):
with open(fname) as f:
pulse_data = json.load(f)
instrs = [instr['name'] for instr in pulse_data.get('experiment', {}).get('instructions', [])]
all_patterns.extend(extract_patterns(instrs))
pattern_counts = Counter(all_patterns)
for pat, count in pattern_counts.most_common(5):
print(f"Pattern {pat} 出现 {count} 次")
grep -r 'qubit' ./qiskit_jobs/* | sort | uniq -c | sort -nr | head
为保护量子(及后量子)基础设施:
牢记 没有任何密码系统可永远自带安全。随着最新攻击方法出现,需定期评估软硬件。
随着量子系统在计算与通信领域愈加普及,发现并利用其侧信道的动机也随之增长。
侧信道攻击正随着硬件进步而不断演化。量子计算与量子通信系统带来了全新的、独特的潜在泄漏形式—不少直到最近的研究才被发现。安全工程师、系统设计者与用户都必须主动采取行动,采用最佳实践并在量子系统从实验室走向云端的过程中保持信息同步。定期重审威胁模型:只要存在通道,就可能存在侧信道。