The article introduces Molly, a verified compiler for cryptoprotocol roles. Molly transforms high-level notation of cryptographic protocol roles into straight-line programs in an intermediate-level imperative language. This makes them suitable for implementation in a conventional programming language. The authors define a denotational semantics for protocol roles based on an axiomatization of the runtime. A key feature of their approach is that they assume encryption is randomized. Molly is written in Coq, a formal proof management system, helping to ensure that the procedure it constructs is correct with respect to the runtime semantics.
Publication date: 22 Nov 2023
Project Page: https://arxiv.org/abs/2311.13692v1
Paper: https://arxiv.org/pdf/2311.13692