后量子密码学硬件加速器的NTT侧信道防护分析
1. 项目概述
后量子密码学(PQC)硬件加速器的安全性高度依赖于数论变换(NTT)的侧信道防护策略。NTT作为ML-DSA和ML-KEM等标准中的核心运算,其实现方式直接影响整体系统的安全性。Adams Bridge作为典型的PQC硬件加速器,采用了一种部分掩码设计策略:仅对第一层逆NTT(INTT)和点乘运算实施布尔掩码保护,其余层则依赖混洗(shuffling)作为主要防护手段。设计者声称该方案能提供每蝶形2^46(ML-DSA)和2^96(ML-KEM)的CPA复杂度,结合混洗的乘性增益可实现"完全不切实际"的侧信道攻击难度。
然而,本文通过结构化证据评估和RTL仿真实验发现:
- Gentleman-Sande蝶形运算的代数结构会大幅降低假设空间
- 实际实现的RSI混洗仅提供6比特/层熵值(64种排序)
- 软分析侧信道攻击(SASCA)可将枚举复杂度从2^46降至2^9
- 87.5%(ML-DSA)和85.7%(ML-KEM)的NTT运算处于无掩码状态
2. 核心安全机制解析
2.1 NTT硬件实现结构
在ML-KEM(FIPS 203)和ML-DSA(FIPS 204)标准中,NTT采用Cooley-Tukey(正向)和Gentleman-Sande(逆向)蝶形运算:
- CT蝶形:a' = a + b·ω, b' = a - b·ω(正向NTT)
- GS蝶形:a' = a + b, b' = (a - b)·ω^-1(逆向INTT)
Adams Bridge的硬件设计特点:
- ML-DSA:8层NTT/INTT,模数q=8,380,417(23位系数)
- ML-KEM:7层NTT/INTT,模数q=3,329(12位系数)
- 仅第一INTT层采用域定向掩码(DOM)保护
关键发现:GS蝶形的代数结构意味着已知一个输出和公开旋转因子ω时,另一个输出可通过线性约束确定。在理想无噪声模型中,这将每蝶形的独立未知数从2个减至1个(ML-DSA从2^46→2^23)。
2.2 混洗实现细节
设计文档声称混洗可提供乘性安全增益(S^L,L为未掩码层数)。但RTL代码分析显示:
// ntt_ctrl.sv 行648-653 assign shuffle_order = {chunk_RSI, intra_chunk_idx}; // 16个块起始位置 × 4种块内索引 → 64种排序(6比特熵)与全随机排列(64!≈2^296)相比,RSI混洗:
- 仅产生64种排序(非64!)
- 采用顺序处理+回绕方式
- 文献[8]明确指出RSI变体"可能与未受保护实现同样易受攻击"
2.3 掩码-混洗组合效应
当掩码(阶数d)与混洗(S操作)共存时,安全放大系数为S^(d+1)[9]。但此效应:
- 仅适用于两种对策同时激活的阶段
- 不适用于仅启用混洗的计算阶段
- Adams Bridge中6/7(ML-KEM)或7/8(ML-DSA)层仅依赖混洗
3. 安全边际量化分析
3.1 攻击模型假设
考虑非特征分析的物理攻击者:
- 可采集无限量功耗轨迹
- 无相同设备的特征分析权限
- 目标环境:SoC内的硬件信任根(含电源滤波)
3.2 边际计算场景
| 场景 | ML-DSA边际 | 与设计值差距 | 关键假设 |
|---|---|---|---|
| A(攻方) | 2^15-2^27 | 2^61-2^73↓ | GS约束完全利用 |
| B(守方) | 2^59-2^63 | 2^25-2^29↓ | RSI按S^2计算 |
| C(设计值) | ≈2^88 | - | S^L乘性增益 |
| 混合估计 | 2^32-2^42 | 2^46-2^56↓ | 部分GS约束 |
ML-KEM的已知密文攻击(KCA)[30]将每蝶形假设空间从2^96降至2^48,使得即使场景B的边际也仅为2^61-2^65(比设计值2^132低67-71比特)。
3.3 实证验证管道
通过RTL仿真构建SASCA攻击链:
- 因子图构造:896个GS蝶形因子,2048个变量节点
- RTL泄漏提取:未掩码层TVLA |t|=6.34(泄漏)
- 模板攻击桥接:992条轨迹可耗尽23比特熵
- BP验证:完整ML-KEM INTT因子图在SNR×N=3000时实现100%系数恢复
关键结果:
- RSI枚举主导攻击成本(512次运行→2^9)
- 层间BP传播实现2.24×MI增益
- 战略掩码3个连续中层可阻断BP收敛
4. 硬件实现启示
4.1 防护层级优先级
基于层消融实验(500+次试验):
- 必选:掩码L1(输入蝶形层)——创建结构信息屏障
- 推荐:连续掩码3个中层(L3-L5)——43%开销即阻断BP
- 理想:全DOM掩码——消除混洗依赖
4.2 验证建议
- 时序TVLA:针对未掩码时钟周期(ML-DSA约2240周期)
- 形式化验证:检查掩码边界和组合路径
- 硬件SASCA:在FPGA实测验证RTL仿真结果
5. 结论
部分NTT掩码是面积与安全的工程折衷,但需注意:
- RSI混洗不能作为未掩码层的唯一防护
- GS蝶形的代数约束大幅降低假设空间
- SASCA攻击模型与设计者的CPA假设存在37比特差距
- 战略掩码3个连续中层可经济提升防护
最终建议采用可验证的防护策略:
graph TD A[输入层掩码] --> B[结构屏障] C[中层连续掩码] --> D[阻断BP] E[全DOM实现] --> F[最高保障]该研究为PQC硬件提供了可复用的安全审计框架,包含:
- RTL实现验证
- 证据置信度标记
- 敏感性场景分析
- 实验验证管道
后续工作应聚焦硬件实测验证和ML-DSA的近似BP方法开发。对于高保障系统,全掩码仍是黄金标准。
