PQC 开销账本:签名、验证与截止期

用周期、时钟频率和迭代次数估算后量子密码操作,判断安全策略是否仍满足实时控制窗口。

展开文章目录

实验用下式估算一次密码操作链的延迟:

T=(Csign+Cverify)×nfT = \frac{(C_{\text{sign}} + C_{\text{verify}}) \times n}{f}

其中 CC 是周期数,nn 是一个控制周期内的操作次数,ff 是时钟频率。

例子

签名 420k 周期、验证 120k 周期、160 MHz、2 次操作:

(540000×2)/160,000,000≈6.75 ms(540000 \times 2) / 160{,}000{,}000 \approx 6.75 \text{ ms}

若截止期是 20 ms,看似还有余量;但还要加上传感器、控制算法、通信和中断抖动。若签名在关键路径上,6.75 ms 可能已不可接受。

工程策略

  • 硬件加速或专用指令;
  • 将签名移出硬实时路径;
  • 批量验证与预计算;
  • 缓存会话密钥,减少重复握手;
  • 明确密钥与签名存储预算。

打开 PQC 开销账本 调整参数。所有结果都应附带算法名、参数集、指令集和编译选项,否则无法比较。

周期预算之外的成本

公式给出的是密码操作本身的延迟下限。实际系统还要加入:

  • 随机数生成与条件检查;
  • 密钥调度、内存清零和缓存刷新;
  • 签名解析与证书链验证;
  • 通信、重传和分片;
  • 中断与 DMA 竞争;
  • 低功耗状态唤醒。

如果密码库使用动态内存,首次调用可能触发分配和页故障;在 RTOS 中,这会引入不可预测的最坏执行时间。嵌入式实现通常要求静态分配、常量时间算法和明确的栈上限。

一个预算账本

除了 6.75 ms 的密码学延迟,假设传感器采样、控制律和通信共 9 ms,则控制周期已使用 15.75 ms。20 ms 截止期只剩 4.25 ms 给中断、日志和温度保护。若签名频率翻倍,余量立即消失。

项目示例预算需要验证
采样与控制4 msWCET、中断抖动
通信5 ms重传、分片
签名 + 验证6.75 ms参数集、栈、加速器
日志与监控1 msFlash 写入阻塞
剩余3.25 ms温度、故障恢复

这些是说明量级的假设,不是特定硬件结果。实际报告应给出测试条件、编译器版本和最坏样本,而不是只取平均值。

密钥与签名尺寸

后量子方案的公钥、私钥和签名通常比传统方案更大。更大的数据会影响:

  • 固件和密钥分区的 Flash 占用;
  • OTA 包体和通信帧大小;
  • 解析期间的内存峰值;
  • 低带宽网络的重传概率;
  • 设备身份与证书链的存储。

如果设备只有很小的 SRAM,签名验证可能需要分块解析或硬件缓冲。若把数据拷贝到多个缓冲区,峰值内存会翻倍。尺寸预算必须按最坏操作链计算,不能只看库文档里的单个对象大小。

实时策略

可选的工程策略包括:

  1. 使用硬件密码引擎,减少 CPU 周期和栈;
  2. 将签名移出硬实时控制回路,但延迟提交危险动作;
  3. 预计算可复用材料,缩短在线路径;
  4. 批量验证多个传感器或设备的签名;
  5. 使用会话复用降低握手频率;
  6. 为验证失败和超时设计安全降级。

这些策略不改变密码学安全目标,只是重新分配时间。任何优化都应验证常量时间性与侧信道防护,避免用更快的非安全实现换性能。

结论

PQC 迁移的核心问题是“安全操作在什么时刻必须完成”。如果它在控制回路内,就必须按 WCET 纳入调度;如果在关键路径外,就必须保证状态机不会越过未验证的数据。先把密码开销当作一等系统成本,才能同时守住安全与截止期。

采样、验证与调度

若系统在每个控制周期重新生成密钥或验证完整证书链,CPU 利用率会很快接近上限。更常见的架构是长期身份密钥 + 短期会话密钥,或把验证放在连接建立时。验证频率应与威胁模型匹配,不能为了“更安全”无限增加。

在固定优先级 RTOS 中,密码任务可能比控制任务优先级低,但其回调或中断可能抢占总线。需要测量:

  • 密码库的最大栈使用;
  • Flash 读取和解密时间;
  • 随机数熵源是否阻塞;
  • 中断延迟与优先级翻转;
  • 低功耗唤醒后的恢复时间。

失败状态

如果验证失败,系统应立即进入安全状态,而不是继续使用旧会话。日志应记录失败原因和 request id,但不要记录密钥或完整签名。对无法联网的设备,应明确离线证书和密钥更新流程。

结论

PQC 预算模型的目标是让安全团队和实时团队使用同一张表。任何一个参数集只有同时满足内存、周期、功耗与恢复要求,才能进入产品设计。

最后,所有周期数字都应注明是否包含随机数生成、密钥解析、内存清零和栈初始化。只测核心循环会低估最坏路径;只测平均值又会掩盖低概率长尾。对硬实时系统,报告最大周期及其样本数是必要证据。

此外,密钥更新和证书链验证通常比单次签名更复杂。预算模型只覆盖一个操作链,实际系统还应把存储磨损、断电恢复和回滚保护计入维护成本。

建议把验证延迟、密钥大小和失败恢复分别设为验收项。任何一项超限都应触发架构调整,而不是仅通过降低安全参数来换性能。

若使用硬件密码引擎,还要测驱动队列和并发访问。多个进程同时请求签名时,排队延迟可能超过单次计算时间。

因此,单算子周期与系统路径必须分开报告,才能判断优化是否真正改善截止期。

解释图安全操作也必须满足截止期
  1. 01Rust 边界内存安全
  2. 02PQC签名 / 验证
  3. 03RTOS优先级调度
  4. 04截止期最坏响应
  5. 05审计可恢复性

内存安全、密码学与实时调度共享同一组 CPU 周期、栈和功耗预算。

证据清单

来源与适用范围

  1. 论文
  2. 论文

限定条件:本地周期预算模型;不代表具体 PQC 实现或 MCU 的实测。

本文遵循 CC BY-NC-SA 4.0

站点代码采用 MIT。所有模拟结果都标注了假设,不替代目标环境实测。

继续阅读归档