Biblio

Filters: Author is Oliveira, Tiago  [Clear All Filters]
2022-02-25
Barthe, Gilles, Cauligi, Sunjay, Grégoire, Benjamin, Koutsos, Adrien, Liao, Kevin, Oliveira, Tiago, Priya, Swarn, Rezk, Tamara, Schwabe, Peter.  2021.  High-Assurance Cryptography in the Spectre Era. 2021 IEEE Symposium on Security and Privacy (SP). :1884–1901.
High-assurance cryptography leverages methods from program verification and cryptography engineering to deliver efficient cryptographic software with machine-checked proofs of memory safety, functional correctness, provable security, and absence of timing leaks. Traditionally, these guarantees are established under a sequential execution semantics. However, this semantics is not aligned with the behavior of modern processors that make use of speculative execution to improve performance. This mismatch, combined with the high-profile Spectre-style attacks that exploit speculative execution, naturally casts doubts on the robustness of high-assurance cryptography guarantees. In this paper, we dispel these doubts by showing that the benefits of high-assurance cryptography extend to speculative execution, costing only a modest performance overhead. We build atop the Jasmin verification framework an end-to-end approach for proving properties of cryptographic software under speculative execution, and validate our approach experimentally with efficient, functionally correct assembly implementations of ChaCha20 and Poly1305, which are secure against both traditional timing and speculative execution attacks.
2018-01-10
Almeida, José Bacelar, Barbosa, Manuel, Barthe, Gilles, Blot, Arthur, Grégoire, Benjamin, Laporte, Vincent, Oliveira, Tiago, Pacheco, Hugo, Schmidt, Benedikt, Strub, Pierre-Yves.  2017.  Jasmin: High-Assurance and High-Speed Cryptography. Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. :1807–1823.
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 supercop 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.