English

Vivienne: Relational Verification of Cryptographic Implementations in WebAssembly

Cryptography and Security 2021-09-06 v1 Programming Languages Symbolic Computation

Abstract

This paper explores the use of relational symbolic execution to counter timing side channels in WebAssembly programs. We design and implement Vivienne, an open-source tool to automatically analyze WebAssembly cryptographic libraries for constant-time violations. Our approach features various optimizations that leverage the structure of WebAssembly and automated theorem provers, including support for loops via relational invariants. We evaluate Vivienne on 57 real-world cryptographic implementations, including a previously unverified implementation of the HACL* library in WebAssembly. The results indicate that Vivienne is a practical solution for constant-time analysis of cryptographic libraries in WebAssembly.

Keywords

Cite

@article{arxiv.2109.01386,
  title  = {Vivienne: Relational Verification of Cryptographic Implementations in WebAssembly},
  author = {Rodothea Myrsini Tsoupidi and Musard Balliu and Benoit Baudry},
  journal= {arXiv preprint arXiv:2109.01386},
  year   = {2021}
}
R2 v1 2026-06-24T05:39:17.652Z