Jazzline: Composable CryptoLine functional correctness proofs for Jasmin programs

Source: ACM CCS
Authors: Bo-Yin Yang, Bow-Yaw Wang, Ming-Hsien Tsai, Miguel Quaresma, Tiago Oliveira, Benjamin Gregoire, João Diogo Duarte, Lionel Blatter, Gilles Barthe, Jose Bacelar Almeida, Pierre-Yves Strub, Gustavo Delerue, Manuel Barbosa

Abstract

Jasmin is a programming language for high-speed and high-assurance cryptography. Correctness proofs of Jasmin programs are typi-cally carried out deductively in EasyCrypt. This allows generality, modularity and composable reasoning, but does not scale well

for low-level architecture-specific routines. CryptoLine offers a semi-automatic approach to formally verify algebraically-rich low-level cryptographic routines. CryptoLine proofs are self-contained: they are not integrated into higher-level formal verification de-

velopments. This paper shows how to soundly use CryptoLine to discharge subgoals in functional correctness proofs for complex Jasmin programs. We extend Jasmin with annotations and provide an automatic translation into a CryptoLine model, where most complex transformations are certified. We also formalize and implement the automatic extraction of the semantics of a CryptoLine proof to EasyCrypt. Our motivating use-case is the X-Wing hybrid KEM, for which we present the first formally verified implementation.