Constant-Time Foundations for the New Spectre Era
Sunjay Cauligi, Craig Disselkoen, Klaus v. Gleissenthall, Dean, Tullsen, Deian Stefan, Tamara Rezk, and Gilles Barthe

TL;DR
This paper extends the concept of constant-time programming to counter micro-architectural attacks like Spectre, providing formal semantics and a static analysis tool to verify cryptographic code security.
Contribution
It introduces a formal semantics for constant-time in the presence of speculative execution and develops Pitchfork, a static analysis tool for real-world cryptographic libraries.
Findings
Our semantics accurately models Spectre-like attacks.
Pitchfork detects constant-time violations in cryptographic libraries.
Extended constant-time notion remains tractable and rigorous.
Abstract
The constant-time discipline is a software-based countermeasure used for protecting high assurance cryptographic implementations against timing side-channel attacks. Constant-time is effective (it protects against many known attacks), rigorous (it can be formalized using program semantics), and amenable to automated verification. Yet, the advent of micro-architectural attacks makes constant-time as it exists today far less useful. This paper lays foundations for constant-time programming in the presence of speculative and out-of-order execution. We present an operational semantics and a formal definition of constant-time programs in this extended setting. Our semantics eschews formalization of microarchitectural features (that are instead assumed under adversary control), and yields a notion of constant-time that retains the elegance and tractability of the usual notion. We…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
