本文提出了一套面向密码学软件的全新形式化验证方法论,其核心取向是直接验证“生产级代码”,而不是为了便于验证而专门改写代码。作者选择 Rust 作为目标语言,看重的是它在性能与系统集成方面的优势:Rust 的所有权机制使 Aeneas 工具链能够把 Rust 代码抽取为 Lean 中的纯函数模型,从而免除对指针存活性、别名关系等底层细节的推理负担;Lean 的可扩展性又允许团队开发专用的策略(tactic)与库,大幅简化对抽取后代码的推理。工具链被专门设计并调优以配合 AI:智能体可以自主撰写形式化证明,这些证明由 Lean 内核独立校验;智能体还参与密码标准与平台相关 intrinsic 的形式化工作,但这部分仍需专家主导设计与评审。作者将该方法应用于微软的密码提供者 SymCrypt,验证了从其 C 版本移植到 Rust 的 SHA-3、ML-KEM 等算法实现;并进一步用实验性优化以及 FrodoKEM、ML-DSA、HPKE 等算法的实现来扩展 SymCrypt,以考察编写、移植与验证密码代码的可扩展性。整个 Lean 开发规模约 237 KLOC,为 16.7 KLOC 的 Rust 代码(覆盖 x86-64 与 ARM 平台上的后量子密码套件)建立了内存安全性、无 panic 以及功能正确性的证明。评估结果显示,经过验证的 Rust 实现能够满足 SymCrypt 在性能、可移植性、部署方式与可维护性方面的要求。
💡 推荐理由: 密码实现层缺陷常绕过数学层面的安全性,是高价值攻击面。该工作证明生产级 Rust 密码代码可被机器内核校验的证明覆盖,并把 AI 智能体引入证明生成、由 Lean 内核兜底,为后量子迁移期的密码库可信度提供了可复制的工程路径。
🎯 建议动作: 研究跟进:由密码工程与安全架构团队评估该验证流程对自研及选用密码库的适用性与成本。