二、密码学基础回顾:对称密码、公钥密码、哈希函数、数字签名、密钥交换的基本原理及其在PQC中的角色

后量子密码(Post-Quantum Cryptography, PQC)并非凭空诞生的新学科,而是建立在经典密码学大厦之上的结构性革新。要理解PQC硬件实现的难点与设计取舍,首先必须厘清五类基础密码原语——对称密码、公钥密码、哈希函数、数字签名与密钥交换——各自的数学根基、安全模型与性能特征。更重要的是,这五类原语在PQC时代面临的威胁与角色定位截然不同:对称密码与哈希函数仅需适度增大参数即可抵抗量子攻击,而公钥密码、数字签名与密钥交换所依赖的整数分解、离散对数等数学难题,在Shor算法面前几乎不堪一击。下图展示了经典密码体系与PQC的对应关系及量子威胁下的生存状态。

经典密码原语 vs 后量子密码(PQC)角色映射 对称密码(AES) Grover加速,密钥翻倍 公钥密码(RSA/ECC) Shor算法完全破解 哈希函数(SHA-2/3) Grover加速,输出长度翻倍 数字签名(RSA/ECDSA) Shor算法完全破解 密钥交换(DH/ECDH) Shor算法完全破解 AES-256 / SHA-384 参数调整即可延续使用 格基密码(Kyber/Dilithium) 基于LWE/MLWE问题 哈希签名(SPHINCS+) 基于哈希函数安全性 Falcon / Dilithium 格基签名方案 Kyber / ECDH替代 格基密钥封装机制(KEM) 红色虚线 = 完全被量子计算破解;琥珀色虚线 = 需参数增强;灰色实线 = 直接映射到PQC方案 NIST PQC 标准化:CRYSTALS-Kyber(KEM)、CRYSTALS-Dilithium(签名)、Falcon(签名)、SPHINCS+(哈希签名)

从上图可以清晰看到,PQC并非对经典密码学的全盘否定,而是对公钥体系的“替换式升级”。对称密码与哈希函数在量子时代依然可用,只是需要调整安全参数;而公钥密码、数字签名与密钥交换则必须整体迁移至新的数学难题之上。理解这一格局,是后续学习PQC硬件实现的前提。

2.1 对称密码:量子时代的“加固”而非“替换”

核心原理

对称密码(Symmetric Cryptography)使用相同的密钥进行加密与解密,其安全性依赖于密钥的保密性与算法的混淆扩散能力。最典型的代表是AES(Advanced Encryption Standard),其分组长度为128比特,支持128/192/256比特密钥。AES的硬件实现通常采用S盒替换、行移位、列混合与轮密钥加四步操作,在FPGA或ASIC中可通过流水线架构实现高吞吐率。

在量子计算背景下,对称密码面临的主要威胁是Grover算法。Grover算法可以对任意黑盒函数进行平方根加速搜索,这意味着对于密钥长度为 k 的对称密码,量子攻击的复杂度从经典的 O(2k) 降为 O(2k/2)。因此,AES-128在量子攻击下的等效安全强度仅为64比特,不再满足安全要求。

判断方法与操作流程

在PQC硬件设计中,对称密码的“加固”策略非常直接:

  • 密钥长度翻倍:将AES-128升级为AES-256,即可在Grover攻击下保持128比特的安全强度。
  • 分组长度不变:AES的分组长度128比特在量子攻击下不受影响,无需修改。
  • 模式选择:GCM(Galois/Counter Mode)等认证加密模式在PQC混合方案中仍被广泛使用,用于数据面加密。

在硬件实现层面,AES-256的S盒与密钥扩展逻辑与AES-128基本一致,仅轮数从10轮增至14轮,面积开销增加约20%~30%,吞吐率略有下降。对于FPGA实现,通常采用查找表(LUT)或Block RAM存储S盒,以平衡面积与速度。

案例拆解:AES-256在PQC混合加密中的硬件部署

在某安关项目中,需要在FPGA上实现PQC密钥封装(Kyber)与AES-256-GCM的混合加密。初始设计直接复用已有的AES-128-GCM核,但安全评估指出量子攻击风险。修改方案如下:

  1. 将AES核替换为支持256比特密钥的版本,轮数增至14轮。
  2. 密钥扩展单元改为支持256比特主密钥,生成15轮子密钥。
  3. GCM模块的计数器部分不变,但认证标签长度保持128比特。

实测结果显示,AES-256-GCM在Xilinx UltraScale+上占用约2,100个LUT与3个Block RAM,吞吐率达到25 Gbps,满足10G以太网线速加密需求。面积增加约25%,但整体系统仍有余量。

经验提醒:在PQC硬件设计中,对称密码部分往往不是性能瓶颈。优先将优化精力放在公钥运算(如Kyber的多项式乘法)上,对称密码核直接选用成熟IP即可。

常见误区与总结复盘

  • 误区一:认为PQC会取代AES。实际上,AES-256在量子时代依然安全,PQC只替换公钥部分。
  • 误区二:忽略Grover攻击的并行化影响。Grover算法虽然可以并行,但并行化带来的加速收益有限,密钥翻倍策略仍然有效。
  • 误区三:在硬件实现中过度优化AES面积,导致时序收敛困难。建议优先保证时序裕量,再考虑面积优化。

2.2 公钥密码:Shor算法的“重灾区”与格基替代

核心原理

经典公钥密码(如RSA、ECC)的安全性建立在整数分解与离散对数问题的计算困难性之上。RSA依赖大整数分解,ECC依赖椭圆曲线离散对数。Shor算法能够在多项式时间内解决这两类问题,这意味着一旦大规模量子计算机建成,RSA-2048与ECC-256将瞬间被破解。

PQC公钥密码的主流替代方案是基于格的密码学(Lattice-based Cryptography),其安全性归约到带错误学习问题(LWE)或其变体模块LWE(MLWE)。格基密码的核心运算为多项式乘法与数论变换(NTT),硬件实现复杂度远高于经典公钥运算。

判断方法与操作流程

在硬件选型时,需要对比经典公钥与格基公钥的关键指标:

对比维度RSA-2048ECC-256Kyber-768(MLWE)
公钥大小256字节32字节1,184字节
私钥大小512字节32字节2,400字节
密文大小256字节64字节1,088字节
主要运算模幂标量乘法NTT/多项式乘法
量子安全强度0(被破解)0(被破解)128比特
硬件面积(FPGA)~5,000 LUT~3,000 LUT~15,000 LUT

从表中可见,格基密码的密钥与密文尺寸显著增大,硬件面积开销约为ECC的5倍。但这是换取量子安全的必要代价。

案例拆解:Kyber-768在FPGA上的NTT加速器设计

在某PQC硬件加速卡项目中,需要在FPGA上实现Kyber-768的密钥封装与解封装。初始方案直接使用软件实现,但性能仅达到200次/秒,无法满足1,000次/秒的吞吐需求。分析发现瓶颈在于NTT运算。

优化步骤:

  1. 将NTT蝶形运算单元流水化,采用4级流水线,每周期完成一次蝶形运算。
  2. 使用Block RAM存储多项式系数,采用双端口RAM实现并行读写。
  3. 将模乘运算中的蒙哥马利约简改为Barrett约简,减少乘法器资源消耗。

优化后,NTT运算从原来的12,000周期降至3,200周期,整体Kyber封装性能提升至1,200次/秒,满足需求。面积增加约30%,但仍在预算内。

风险提示:格基密码的硬件实现容易受到侧信道攻击(如功耗分析、电磁辐射)。在FPGA实现中,建议加入掩码(Masking)或隐藏(Hiding)对策,但会带来额外的面积与性能开销。

常见误区与总结复盘

  • 误区一:认为格基密码的密钥尺寸大就代表安全性高。实际上,安全性取决于具体参数选择与底层难题的困难性。
  • 误区二:忽略NTT运算的并行化设计。NTT是格基密码的性能瓶颈,必须针对硬件并行性进行优化。
  • 误区三:在硬件实现中直接使用软件代码转换,导致资源浪费。应针对硬件架构重新设计数据通路。

2.3 哈希函数:从“辅助工具”到“签名基石”

核心原理

哈希函数将任意长度的消息压缩为固定长度的摘要,具有单向性、抗碰撞性与抗原像性。经典哈希函数(如SHA-2、SHA-3)在量子时代同样面临Grover算法的威胁:对于输出长度为 n 的哈希函数,量子碰撞攻击的复杂度为 O(2n/3),原像攻击为 O(2n/2)。因此,SHA-256在量子攻击下的碰撞安全强度仅为85比特,需升级至SHA-384或SHA-512。

在PQC中,哈希函数的角色更加重要:它不仅是数据完整性校验的工具,更是哈希签名方案(如SPHINCS+)的安全根基。SPHINCS+利用哈希函数构建一次性签名与超树结构,实现无状态签名,其安全性完全归约到哈希函数的抗碰撞性。

判断方法与操作流程

在PQC硬件设计中,哈希函数的选择需考虑以下因素:

  • 输出长度:至少256比特,推荐384比特以上以抵抗量子碰撞攻击。
  • 硬件效率:SHA-3(Keccak)在硬件实现中吞吐率高于SHA-2,且支持并行化。
  • 功耗与面积:对于嵌入式场景,SHA-256的面积更小,但SHA-3的吞吐率更高。

在SPHINCS+硬件实现中,哈希函数被调用数千次,因此其吞吐率直接影响签名速度。通常采用多核并行架构,将多个哈希核同时运行,以缩短签名时间。

案例拆解:SPHINCS+签名加速中的哈希核阵列

在某安全启动方案中,需要在FPGA上实现SPHINCS+签名验证。初始设计使用单个SHA-256核,签名验证耗时约50ms,无法满足100ms的启动时限。分析发现,SPHINCS+的验证过程需要计算约2,000次哈希。

优化方案:

  1. 在FPGA上例化4个SHA-256核,并行计算不同层的哈希值。
  2. 采用流水线结构,将消息填充、压缩函数与输出转换分离。
  3. 利用Block RAM缓存中间哈希值,减少外部存储访问。

优化后,签名验证时间降至18ms,满足启动时限。面积增加约4,000 LUT,但系统仍有资源余量。

关键结论:哈希函数在PQC中不仅是“配角”,更是哈希签名方案的核心引擎。硬件设计时需根据签名方案的哈希调用次数,合理规划并行度。

常见误区与总结复盘

  • 误区一:认为SHA-256在量子时代完全不可用。实际上,SHA-256仍可用于非安全关键场景,但建议升级至SHA-384。
  • 误区二:忽略哈希函数的侧信道风险。在签名方案中,哈希函数的输入可能包含私钥信息,需注意功耗均衡。
  • 误区三:在硬件实现中盲目追求高吞吐率,导致面积爆炸。应根据应用场景平衡吞吐率与面积。

2.4 数字签名与密钥交换:PQC的核心替换对象

核心原理

数字签名与密钥交换是公钥密码的两大核心应用。经典签名方案(RSA-PSS、ECDSA)与密钥交换协议(DH、ECDH)均依赖整数分解或离散对数难题,在量子攻击下完全失效。PQC的替代方案主要分为两类:

  • 格基方案:CRYSTALS-Dilithium(签名)与CRYSTALS-Kyber(密钥封装),基于MLWE问题,性能均衡,硬件实现相对高效。
  • 哈希签名:SPHINCS+,基于哈希函数,安全性保守,但签名尺寸大、速度慢。

在硬件实现中,格基签名与KEM的核心运算均为NTT,因此可以复用同一套NTT加速器,降低硬件成本。

判断方法与操作流程

选择PQC签名与KEM方案时,需综合考虑以下指标:

方案类型公钥/签名大小签名/封装速度硬件复杂度
Dilithium-2格基签名2.6 KB / 2.4 KB~50,000周期中
Falcon-512格基签名0.9 KB / 0.7 KB~80,000周期高(需浮点)
SPHINCS+-128s哈希签名0.03 KB / 8.8 KB~2,000,000周期低
Kyber-768格基KEM1.2 KB / 1.1 KB~30,000周期中

从表中可见,Dilithium与Kyber在硬件实现上具有明显优势,这也是NIST将其作为首选标准的原因。

案例拆解:Dilithium与Kyber共享NTT加速器的硬件架构

在某PQC安全模块项目中,需要同时支持Dilithium签名与Kyber密钥封装。若分别实现两套NTT加速器,面积开销过大。设计团队决定共享一套NTT加速器,通过配置寄存器切换工作模式。

具体实现:

  1. NTT加速器支持可配置的模数(Dilithium使用8,380,417,Kyber使用3,329,089)。
  2. 蝶形运算单元采用可重构设计,支持两种模数的乘加运算。
  3. 控制状态机根据当前任务(签名或封装)自动加载对应的参数配置。

最终,共享NTT加速器将总面积从约30,000 LUT降至18,000 LUT,节省40%资源,同时满足两种方案的性能需求。

经验总结:在PQC硬件设计中,尽量复用NTT加速器、哈希核等公共模块,可显著降低面积与功耗。但需注意不同方案的模数、多项式长度等参数差异,确保可重构性。

常见误区与总结复盘

  • 误区一:认为Falcon的签名尺寸小就一定是更好的选择。Falcon需要浮点运算,硬件实现复杂度高,且存在侧信道风险。
  • 误区二:忽略KEM与签名方案的组合使用。在实际系统中,通常使用Kyber进行密钥交换,再用Dilithium进行身份认证,两者缺一不可。
  • 误区三:在硬件实现中未考虑方案的“可塑性”。例如,Dilithium的随机化签名需要高质量的随机数生成器,否则可能泄露私钥。

综上所述,对称密码与哈希函数在量子时代通过参数增强即可延续使用,而公钥密码、数字签名与密钥交换则必须迁移至格基或哈希签名方案。硬件设计者需深刻理解各类原语的数学基础与性能特征,才能在面积、速度、功耗与安全性之间做出合理权衡。PQC硬件实现的本质,是在新数学难题之上重新构建高效、安全、可验证的密码引擎。