Skip to content
Review

Scaling Verification of Cryptographic Software with Aeneas, Rust, and Lean

Sep 2026 · 0 citations · 55 references
Computer Science

TL;DR

This work develops a new methodology for verifying cryptographic software and extends SymCrypt with experimental optimizations and implementations of algorithms such as FrodoKEM, ML-DSA, and HPKE to explore the scalability of writing, adapting, and verifying cryptographic code.

Abstract

We develop a new methodology for verifying cryptographic software. We target production code written in Rust for performance and system integration, rather than verification convenience. Rust's ownership discipline enables Aeneas to extract a pure model of this code in Lean, relieving us from low-level reasoning about pointer liveness and aliasing. Lean's extensibility lets us develop tactics and libraries that greatly simplify reasoning about extracted Rust code. We design and tune our toolchain to facilitate the use of AI. Agents autonomously write formal proofs, which are independently verified by the Lean kernel. Agents also assist in the formalization of cryptographic standards and platform-specific intrinsics, which still requires expert design and review. We apply our methodology to SymCrypt, Microsoft's cryptographic provider. We verify its implementations of algorithms such as SHA-3 and ML-KEM, which were ported from C to Rust. We also extend SymCrypt with experimental optimizations and implementations of algorithms such as FrodoKEM, ML-DSA, and HPKE to explore the scalability of writing, adapting, and verifying cryptographic code. Our 237~KLOC Lean development establishes safety, panic-freedom, and functional correctness of 16.7~KLOC of Rust code supporting post-quantum cipher suites for x86-64 and ARM platforms. Our evaluation shows that verified Rust can meet SymCrypt's performance, portability, deployment, and maintainability requirements.

View source

Similar papers

Sep 2026

A layered formal verification of ChaCha20-Poly1305 in TLS implementations

A layered verification workflow that connects an RFC-level High Spec, implementation-oriented Low Specs, and concrete C implementations of ChaCha20-Poly1305 and proves auxiliary model-consistency lemmas between the RFC-level and implementation-oriented Cryptol models.

Xiang-Dong Li, Hui Li, Jing-Jing Guan et al. · 0 citations
Preprint Sep 2026

LLM-Assisted Automatic Security Proofs for Cryptographic Protocols: How Far Are We?

Large language models (LLMs) have shown strong potential for assisting software and security analysis tasks, yet their effectiveness in cryptographic symbolic protocol verification remains insufficiently understood. In this paper, we conduct the first systematic evaluation of the capability of state-of-the-art LLMs in...

Tian-Jian Liu, Shi-Cheng Feng, Jin'ao Shang et al. · 0 citations
#software testing Book Open access Sep 2026

All Your Assembly Belongs to Rust: Automated Lifting for Uniform Testing and Verification

This paper translates Rust code containing RISC-V inline assembly into pure Rust code by emulating each instruction using a machine model extracted from the official RISC-V Sail ISA specification, and demonstrates how each category is handled by the translation.

Charly Castes, Gurvan Debaussart, Thomas Bourgeat · 0 citations
Book Open access Sep 2026

Unifying eBPF across Platforms: Formal Semantics, Conformance Testing, and Specifications

This work is building an executable formal semantics for eBPF in F* that explicitly distinguishes cross-platform and platform-specific behaviors and envision this semantics as a practical foundation for a uniform, trustworthy eBPF across platforms.

Yan-Ze Li, Reto Achermann, Ivan Beschastnikh et al. · 0 citations
Open access Oct 2026

Bringing Foundational Verification to Real-World Rust Code

How to extend RefinedRust with several of the high-level abstractions that Rust provides, including traits, closures, and iterators, and in a manner such that they can be used in conjunction with unsafe code.

Lennard Gäher, Vincent Lafeychine, Sascha Kehrli et al. · 0 citations
#software testing Open access Sep 2026

LLM-Assisted Porting of Security-Critical C Libraries to Idiomatic Rust: A Multi-Model Empirical Study

Differential fuzzing reveals complementary bugs in the manual and LLM porting of security-critical C libraries to idiomatic Rust and translates these findings into concrete practical guidance for teams planning a similar migration.

Marco Parrillo, Marco Grassi, Luigi Laura · 0 citations

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.