苹果开源 corecrypto:用数学证明保证量子安全

5 月 22 日,苹果在 Apple Security Research 博客上宣布开源 corecrypto 源代码,公开了 ML-KEM 和 ML-DSA 两种量子安全密码算法的实现,并首次附带端到端的形式化验证数学证明。这些证明确保了 C 代码和手工优化的 ARM64 汇编实现与 NIST 标准规范严格一致。
corecrypto 是 Apple 操作系统的底层密码库,为 iMessage、VPN、TLS 等加密通信场景提供运算支持,覆盖超过 25 亿台活跃设备。2024 年苹果已将后量子加密集成到 iMessage 中,去年秋季发布的 Apple CryptoKit 也开放了量子安全 API 供开发者使用。
什么是形式化验证
传统软件测试的方法本质上是抽样检查:构造一组输入,运行程序,观察输出是否符合预期。但密码学实现面对的是任意可能的输入空间,测试用例再密集也只能覆盖极小的一部分。某些微妙的算术错误——例如多项式运算中的进位处理遗漏——可能长期潜伏在生产环境中而不被常规测试捕获。
形式化验证的思路完全不同:它使用数学证明来论证"对于所有合法输入,程序的行为与规范严格一致"。如果传统测试是"开车跑了一圈没撞墙",形式化验证则是"用数学证明这台车在任何条件下都不可能撞墙"。
代价是极高的工程复杂度。实现代码和规范必须被转化为精确的数学公式,这些公式必须正确建模两者的行为、覆盖所有输入、并允许证明以可管理的步骤推进。苹果在芯片验证领域积累超过 15 年经验,2019 年开始将形式化验证扩展到经典密码学硬件(PKA 公钥加速器),这次是首次将该方法论完整应用到软件层面的量子安全算法。
四层证明链:从规范到汇编
苹果设计的验证方法形成了一条从 NIST 标准到最终机器指令的完整证明链:
第一层:NIST 规范 → Isabelle 形式化。 苹果将 FIPS 203(ML-KEM)和 FIPS 204(ML-DSA)标准规范手工翻译为 Isabelle 证明助手中的数学公式。
第二层:C 实现 → Cryptol 模型。 将可移植 C 代码实现翻译为 Galois 开发的 Cryptol 语言(一种面向密码学的形式规约语言),再通过 SAW(Software Analysis Workbench)工具验证 Cryptol 模型与 C 实现等价。
第三层:Cryptol → Isabelle 对比证明。 利用苹果定制、Galois 开发的 cryptol-to-isabelle 翻译器,将 Cryptol 模型自动转为 Isabelle 公式,然后证明它与第一层的 NIST 规范形式化等价。这一步需要超过 50,000 个证明步骤,苹果为此构建了可复用的 Isabelle 理论库(库、引理、分离代数框架)来提高证明效率。
第四层:ARM64 汇编 → C 实现等价证明。 手工优化的汇编代码在数学上距离规范太远,直接与规范做等价证明代价极高。苹果的策略是:在 Isabelle 中证明每条 ARM64 子程序与其对应的 C 子程序等价。由于 C 子程序已经通过前三层证明了正确性,汇编的正确性也得到传递保证。

验证发现了什么
形式化验证的实际价值在这次项目中得到了具体体现。苹果在验证过程中发现了两类问题:
第一类是 ML-DSA 实现中的一个遗漏步骤。在特定边界条件下,输入值可能超出预期范围并产生错误输出。这个问题在常规测试中无法触发——测试用例的设计几乎不可能覆盖到这个路径,但数学证明系统地遍历了所有输入空间。在最坏情况下,这个缺陷会导致密码学计算被静默篡改,而现有测试套件不会给出任何警告。
第二类是第三方证明中的一个错误,苹果独立修复了与具体参数值相关的证明缺陷。
为什么需要定制方法
苹果评估了现有的形式化验证工具和已验证的实现,发现没有一个能满足 corecrypto 的全部需求:部分工具不支持 ARM64 指令集;部分工具只支持单语言验证(C 或汇编二选一),无法证明跨语言子程序序列的联合正确性;部分方案需要搭建和维护庞大的开发者工具链,与苹果现有工程流程不兼容。
最终苹果采用了定制的混合方案:Isabelle 负责高级数学推理和规范对比,SAW/Cryptol 负责 C 代码验证,cryptol-to-isabelle 作为两个世界的桥梁,ARM64 模型在 Isabelle 内与 C 实现做等价证明。这种分层设计允许单独替换某个子程序而无需重写整条证明链,支持快速迭代。
局限性与公开内容
苹果也坦诚了方法论的局限:证明假设编译器行为正确(即编译器不会引入错误);SAW 工具的局限导致 ML-DSA 的部分消息长度未被完全覆盖,苹果通过常规测试和核心置换子程序的验证来弥补这一缺口。
此次开源的内容包括:corecrypto 源代码、形式化验证技术论文、cryptol-to-isabelle 翻译器、Isabelle 理论库(ARM64 模型、精化框架、SProp 分离代数库、FIPS 形式化定义)。部分理论库以宽松许可证发布,允许社区直接使用和扩展。
苹果在 corecrypto 上投入形式化验证的动机很清晰:一个为 25 亿设备提供加密服务的基础设施,任何未捕获的缺陷都可能产生系统性影响。椭圆曲线密码学的早期部署曾因隐蔽的算术 bug 导致安全问题,苹果明确希望避免重蹈覆辙。对于更广泛的工程社区,corecrypto 的形式化验证提供了一个可参考的生产级范例,公开的工具链和理论库降低了后续项目的进入门槛。
来源:Apple Security Research
- 苹果把 WWDC 2026 定在 6 月 8 日,AI 与开发者工具会是重点3/23/2026
- iOS 26.4 RC 发布:Apple Music 有 AI 歌单,Podcasts 支持视频3/18/2026
- Hugging Face 最大开源仓库快被 AI 垃圾 PR 淹没了3/19/2026
- 苹果警告:iOS 13/14 用户需立即升级至 iOS 153/20/2026
- Apple 停止俄罗斯所有支付处理:App Store、iCloud+、Apple Music 等全面受影响4/2/2026
- 苹果赢下Musi诉讼:开发者协议不是摆设3/18/2026
- 苹果停售 Mac Pro:塔式工作站的终结与 Apple silicon 的全面胜利3/27/2026
- 库克谈退休传闻:深深热爱这份工作3/18/2026
- iPhone 17 Pro Max 获准随 NASA 载人绕月任务飞向月球4/4/2026
- 苹果向 FBI 交出隐藏我的邮箱背后的真实账户信息3/27/2026
- DarkSword 被披露:Safari 打开恶意网页即可被入侵,旧版 iPhone 该升级了3/19/2026
- macOS 里藏着一颗 49.7 天的定时炸弹:TCP 网络会静默失效4/9/2026
- 苹果锁定模式近四年零攻破记录3/28/2026
- 苹果被曝蒸馏 Gemini,想先把 AI 能力压进 iPhone3/25/2026
- 苹果阻止部分AI编程App更新:Vibe coding撞上审核墙3/18/2026
- AirPods Max 2 发布:起售价 RMB 3999,3 月 25 日起预购3/16/2026
- Apple:iOS 26 双卡 iPhone 可能出现意外拨号,已在 iOS 26.3 修复3/26/2026
- iOS 27 可能不含重大设计变更,Liquid Glass 优化是长期过程3/15/2026
- 14 英寸 MacBook Pro 配 M5 Max 的问题,不是跑不起来,而是很难长时间撑住3/15/2026
- NASA 阿耳忒弥斯 II 乘组用 iPhone 17 Pro Max 拍下回望地球的照片4/6/2026
- 苹果美国制造计划再扩 4 家,传感器和半导体工艺产线往回拉3/27/2026
- Apple 在 B 站上线“Apple 开发者”官方账号:把开发者内容更正式地带到中文平台3/17/2026
- Apple Watch 在中国大陆上线房颤历史:从一次提示,走向持续记录3/17/2026
- 英国 iPhone 用户开始被要求验证是否满 18 岁,苹果把年龄门槛前移到系统层3/25/2026
- 苹果想把广告放进 Maps,服务收入又往前推了一步3/24/2026
- iOS 26.4 终于允许家庭成员用自己的付款方式了3/19/2026
- GrapheneOS 警告起诉:安卓统一认证标准背后的生态之争3/18/2026
- 苹果拟在 iOS 27 向第三方 AI 助手开放 Siri 接入3/27/2026
- 氛围编程塞爆 App Store:AI 让写应用变简单了,但审核没跟上3/30/2026
- 苹果据报停止 Vision Pro 研发,60 万台销量难撑 3500 美元定价4/30/2026