Skip to main navigation Skip to search Skip to main content

Pantomime: Constructive Leakage Proofs via Simulation

Research output: Contribution to JournalArticleAcademicpeer-review

Abstract

Tools for verifying leakage descriptions of hardware aim to ensure that a given hardware design doesn’t leak secrets via its microarchitecture, when executing programs with appropriate countermeasures. However, existing techniques for proving correctness of leakage descriptions are based on non-constructive proofs via non-interference. As a result, they often rely on expensive solvers that offer little help when verification fails or require handwritten invariants, which are difficult to come up with and even harder to debug. In this paper, we present a new approach to leakage verification which we call simulation-based leakage proofs. To show that a leakage description correctly captures a hardware design using a simulation-based proof, the user constructs a simulator—another hardware design that must faithfully replicate all attacker-observable behavior from explicitly leaked secrets. Simulation-based proofs therefore offer a constructive alternative to classic non-interference proofs, exposing a proof object—the simulator, witnessing the correctness claim. As simulators are just programs, we can write, execute and debug them like any other program, making them easy to use. We also show that they can be checked locally, which makes proof checking fast. We implement simulation-based leakage proofs in Pantomime, a tool that supports writing processors and their leakage proofs in Haskell; we report on using Pantomime to write and verify AIMCore, a 5-stage in-order processor, its leakage description, and simulator, as well as a side-channel hardened version of the core. We show that Pantomime verifies them efficiently (it checks AIMCore in under 40s), and use AIMCore’s leakage description to check for leakages in crypto libraries which uncovered two new vulnerabilities in wolfSSL that have both been assigned CVE’s.

Original languageEnglish
Article number262
Pages (from-to)2328-2353
Number of pages26
JournalProceedings of the ACM on Programming Languages
Volume10
Early online date8 Jun 2026
DOIs
Publication statusPublished - Jun 2026

Bibliographical note

Publisher Copyright:
© 2026 Copyright held by the owner/author(s).

Funding

We thank the reviewers for their feedback. This research was funded by the European ResearchCouncil under ERC Starting Grant no. 101115046 (“SecuStack”).

FundersFunder number
European Research Council101115046

    Keywords

    • Hardware Verification
    • Leakage
    • Side-Channels

    Fingerprint

    Dive into the research topics of 'Pantomime: Constructive Leakage Proofs via Simulation'. Together they form a unique fingerprint.

    Cite this