Jasmin: High-Assurance and High-Speed Cryptography
- Others:
- Institute for Systems and Computer Engineering, Technology and Science [Porto] (INESC TEC)
- Universidade do Minho = University of Minho [Braga]
- Universidade do Porto = University of Porto
- Institute IMDEA Software [Madrid]
- École normale supérieure - Lyon (ENS Lyon)
- Mathematical, Reasoning and Software (MARELLE) ; Inria Sophia Antipolis - Méditerranée (CRISAM) ; Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)
- University of Minho [Braga]
- Laboratoire d'informatique de l'École polytechnique [Palaiseau] (LIX) ; École polytechnique (X)-Centre National de la Recherche Scientifique (CNRS)
Description
Jasmin is a framework for developing high-speed and high-assurance cryptographic software. The framework is structured around the Jasmin programming language and its compiler. The language is designed for enhancing portability of programs and for simplifying verification tasks. The compiler is designed to achieve predictability and efficiency of the output code (currently limited to x64 platforms), and is formally verified in the Coq proof assistant. Using the super-cop framework, we evaluate the Jasmin compiler on representative cryptographic routines and conclude that the code generated by the compiler is as efficient as fast, hand-crafted, implementations. Moreover , the framework includes highly automated tools for proving memory safety and constant-time security (for protecting against cache-based timing attacks). We also demonstrate the effectiveness of the verification tools on a large set of cryptographic routines.
Abstract
International audience
Additional details
- URL
- https://hal.science/hal-01649140
- URN
- urn:oai:HAL:hal-01649140v1
- Origin repository
- UNICA