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

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Conoly, Owen, Erbsen, Andres, Chlipala, Adam
Format: Preprint
Veröffentlicht: 2025
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866916701948346368
author Conoly, Owen
Erbsen, Andres
Chlipala, Adam
author_facet Conoly, Owen
Erbsen, Andres
Chlipala, Adam
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2504_15550
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Smooth, Integrated Proofs of Cryptographic Constant Time for Nondeterministic Programs and Compilers
Conoly, Owen
Erbsen, Andres
Chlipala, Adam
Programming Languages
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.
title Smooth, Integrated Proofs of Cryptographic Constant Time for Nondeterministic Programs and Compilers
topic Programming Languages
url https://arxiv.org/abs/2504.15550