在后量子密码学中,基于格的方案(如Falcon/FN-DSA)需要高效的数论变换(NTT)硬件实现,而传统NTT核心的模乘器和旋转因子存储占用了大量芯片面积。本文提出FoldNTT,对TCHES 2022发布的radix-2 CFNTT加速器进行重新设计,面向Falcon/FN-DSA使用的Proth质数 q=12289。主要创新包括:每个蝶形仅使用一个硬件乘法器(原本需要三个),并将旋转因子存储量减少约一半。利用q=3*2^12+1的Proth结构,模约简通过移位加折叠(K-RED fold)实现;同时位反转的旋转因子表满足关系 w[N/2+j] = psi*w[j],使得表中的一半可以无乘法器地派生。作者在检查已发布RTL时发现一个Bug:其逆变换遗漏了逐级减半步骤,导致输出为2^10*x而不是目标值,FoldNTT对此进行了修正。为确保正确性,作者使用精确宽度SMT和组合式SymbiYosys证明对所有算术模块进行形式化验证,对控制安全不变量使用k-归纳法,并通过变异测试和仿真验证综合变换,且所有验证在CI中自动重跑。在Artix-7 FPGA上的开放流程实验表明,修复后的设计将每个蝶形的DSP48消耗从3个降至1个,存储的twiddle位数减少50%,而全核Fmax仅下降约4%(在最优种子和种子间波动范围内)。作者重构了控制器(参考FSM未公开)并完成全核仿真验证,还构建了可在Basys-3板上运行的门控时序位流。该工作展示了对NTT硬件架构的系统性优化,并通过形式化方法发现并修复了一个隐藏的正确性缺陷,对后量子密码硬件的发展具有重要意义。
💡 推荐理由: 该研究为后量子密码芯片的NTT实现提供了显著的面积和存储优化,同时通过形式化验证暴露并修复了已发表硬件设计中的算术错误,对依赖FPGA或ASIC加速的密码系统开发者有直接参考价值。
🎯 建议动作: 研究跟进