paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Smooth, Integrated Proofs of Cryptographic Constant Time for Nondeterministic Programs and Compilers

面向非确定性程序与编译器的平滑、集成式密码学常量时间证明
PLDI 9(PLDI)2025匹配度 3/10 · 该论文属于程序验证、编译器正确性与常量时间安全的形式化工作,与用户核心关注的LLM/Agent与静态分析交叉、浮点程序分析、贝叶斯程序分析均无直接关联。仅在“兼具理论形式化和工程实现”的形式化验证方法上可能有一定参考价值。引用 1 inbox
Owen Conoly, Andres Erbsen, Adam Chlipala
crossref: 2026-09-10

AI 速览

一句话:首次用omnisemantics形式化非确定性程序的常量时间规范,并在Coq中端到端验证密码编译。

形式验证已排除大量安全缺陷,但无意信息泄漏较少受关注。形式规格常故意不指定部分系统行为以容许实现变更,但这些选择不应依赖机密信息。本文用 omnisemantics 与单副本断言形式化该概念,首次给出非确定性程序为常量时间、或更一般地不泄漏(部分)输入的定义。作者据此证明从 Bedrock2 C 编译到 RISC-V 的密码例程无数据泄漏,表明 omnisemantics 的平滑非确定性证明体验可扩展至常量时间性质。文中还分析程序-编译器契约的变体,揭示简化的陷阱;所有结果在 Coq 中整合为端到端定理。

问题
在形式规格允许实现细节非确定(未指定)的前提下,如何定义并验证非确定性程序及其编译不会依据机密输入做选择,即常量时间/不泄漏输入。
方法
使用 omnisemantics 与普通单副本断言形式化该性质,建立模块化程序逻辑与编译器正确性定理,并研究程序-编译器契约的变体及其陷阱。
评估
在 Coq 中机器化端到端定理,验证从 Bedrock2 C 编译到 RISC-V 机器码的核心密码例程无数据泄漏,并分析契约简化与非确定性输入约束的微妙后果。
原文摘要(Abstract)

Formal verification of software and compilers has been used to rule out large classes of security-critical issues, but risk of unintentional information leakage has received much less consideration. It is a key requirement for formal specifications to leave some details of a system’s behavior unspecified so that future implementation changes can be accommodated, and yet it is nonetheless expected that these choices would not be made based on confidential information the system handles. This paper formalizes that notion using omnisemantics and plain single-copy assertions, giving for the first time a specification of what it means for a nondeterministic program to be constant-time or more generally to avoid leaking (a part of) its inputs. We use this theory to prove data-leak-free execution of core cryptographic routines compiled from Bedrock2 C to RISC-V machine code, showing that the smooth specification and proof experience omnisemantics provides for nondeterminism extends to constant-time properties in the same setting. We also study variants of the key program-compiler contract, highlighting pitfalls of tempting simplifications and subtle consequences of how inputs to nondeterministic choices are constrained. Our results are backed by modular program-logic and compiler-correctness theorems, and they integrate into a neat end-to-end theorem in the Coq proof assistant.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot3082,
  title = {Smooth, Integrated Proofs of Cryptographic Constant Time for Nondeterministic Programs and Compilers},
  author = {Owen Conoly and Andres Erbsen and Adam Chlipala},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {PLDI},
  year = {2025},
  doi = {10.1145/3729318}
}