Software-based countermeasures provide effective mitigation against side-channel attacks, often with minimal efficiency and deployment overheads. Their effectiveness is often amenable to rigorous analysis: specifically, several popular countermeasures can be formalized as information flow policies, and correct implementation of the...
-
July 9, 2018 (v1)Conference paperUploaded on: December 4, 2022
-
November 15, 2021 (v1)Conference paper
Many security properties of interest are captured by instrumented semantics that model the functional behavior and the leakage of programs. For several important properties, including cryptographic constant-time (CCT), leakage models are sufficiently abstract that one can define instrumented semantics for high-level and low-level programs. One...
Uploaded on: December 4, 2022 -
September 2020 (v1)Publication
Coq is a formal system which provides both a pure, functional programminglanguage with dependent types, and an environment to write machine-checkedproofs.Using Coq, it is possible to model a system, to formalize properties this systemis expected to satisfy, and to prove the correctness of the model with respectto these properties.Coq has...
Uploaded on: February 14, 2024 -
November 7, 2022 (v1)Conference paper
Cryptographic constant-time (CT) is a popular programming discipline used by cryptographic libraries to protect themselves against timing attacks. The CT discipline aims to enforce that program execution does not leak secrets, where leakage is defined by a formal leakage model. In practice, different leakage models coexist, sometimes even...
Uploaded on: December 3, 2022 -
January 2020 (v1)Journal article
Timing side-channels are arguably one of the main sources of vulnerabilities in cryptographic implementations. One effective mitigation against timing side-channels is to write programs that do not perform secret-dependent branches and memory accesses. This mitigation, known as "cryptographic constant-time", is adopted by several popular...
Uploaded on: December 4, 2022 -
October 30, 2017 (v1)Conference paper
We present a high-assurance software stack for secure function evaluation (SFE). Our stack consists of three components: i. a verified compiler (CircGen) that translates C programs into Boolean circuits; ii. a verified implementation of Yao's SFE protocol based on garbled circuits and oblivious transfer; and iii. transparent application...
Uploaded on: March 25, 2023 -
May 18, 2020 (v1)Conference paper
We develop a new approach for building cryptographic implementations. Our approach goes the last mile and delivers assembly code that is provably functionally correct, protected against side-channels, and as efficient as hand-written assembly. We illustrate our approach using ChaCha20-Poly1305, one of the two ciphersuites recommended in TLS...
Uploaded on: December 4, 2022 -
May 22, 2023 (v1)Conference paper
The current gold standard of cryptographic software is to write efficient libraries with systematic protections against timing attacks. In order to meet this goal, cryptographic engineers increasingly use high-assurance cryptography tools. These tools guide programmers and provide rigorous guarantees that can be verified independently by...
Uploaded on: May 27, 2023 -
October 30, 2017 (v1)Conference paper
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...
Uploaded on: February 28, 2023 -
November 11, 2019 (v1)Conference paper
We present a high-assurance and high-speed implementation of the SHA-3 hash function. Our implementation is written in the Jasmin programming language, and is formally verified for functional correctness, provable security and timing attack resistance in the EasyCrypt proof assistant. Our implementation is the first to achieve simultaneously...
Uploaded on: December 4, 2022 -
September 10, 2023 (v1)Conference paper
In this paper we present the first formally verified implementations of Kyber and, to the best of our knowledge, the first such implementations of any post-quantum cryptosystem. We give a (readable) formal specification of Kyber in the EasyCrypt proof assistant, which is syntactically very close to the pseudocode description of the scheme as...
Uploaded on: October 11, 2023