CryptoDB
Karthikeyan Bhargavan
Publications
Year
Venue
Title
2025
TCHES
KyberSlash: Exploiting secret-dependent division timings in Kyber implementations
Abstract
This paper presents KyberSlash1 and KyberSlash2 – two timing vulnerabilities in several implementations (including the official reference code) of the Kyber Post-Quantum Key Encapsulation Mechanism, recently standardized as ML-KEM. We demonstrate the exploitability of both KyberSlash1 and KyberSlash2 on two popular platforms: the Raspberry Pi 2 (Arm Cortex-A7) and the Arm Cortex-M4 microprocessor. Kyber secret keys are reliably recovered within minutes for KyberSlash2 and a few hours for KyberSlash1. We responsibly disclosed these vulnerabilities to maintainers of various libraries and they have swiftly been patched. We present two approaches for detecting and avoiding similar vulnerabilities. First, we patch the dynamic analysis tool Valgrind to allow detection of variable-time instructions operating on secret data, and apply it to more than 1000 implementations of cryptographic primitives in SUPERCOP. We report multiple findings. Second, we propose a more rigid approach to guarantee the absence of variable-time instructions in cryptographic software using formal methods.
2024
RWC
An Analysis of Signal's PQXDH
Abstract
In this talk, we describe PQXDH, a new post-quantum key agreement protocol deployed by
Signal, its formal analysis using the ProVerif and CryptoVerif protocol analysis tools, and how this
analysis influenced version 2 of PQXDH. We focus on the lessons learned in this process and how
formal verification can be a powerful tool in an industrial setting. The talk will be given jointly
by Rolfe Schmidt and Karthikeyan Bhargavan.
2023
RWC
HACSPEC: a gateway to high-assurance cryptography
Abstract
Recent years have seen several landmark results in the formal verification of high-performance cryptographic libraries, leading to verified crypto code being adopted by mainstream projects like Chrome, Firefox, and Linux. Despite these successes, the secure integration and composition of verified cryptographic components within larger unverified applications remains an open challenge. The first problem is that each verification project uses its own formal specification language (F*, EasyCrypt, Coq), making its guarantees and assumptions hard for an application developer to read and understand. Second, each verified implementation presents its own low-level API that is easy to misuse. Third, when verified code is embedded within an application written in an unsafe language like C, any memory safety error in the surrounding unverified code may be used to attack the crypto code, potentially nullifying the formal guarantees of verification.
In this talk, we propose a new approach that closes these gaps by integrating specification and verification within the cryptographic software development workflow. Our approach is built around HACSPEC, a new language for writing succinct, executable, formal specifications for cryptographic constructions, which aims to be equally accessible to developers, cryptographers, and verification experts. We describe translations from HACSPEC to F*, Coq, and EasyCrypt. We also present the first release of LIBCRUX, most comprehensive high- assurance cryptographic provider to date, combining verified code from HACL*, Fiat-Crypto, Vale, Jasmin, and AUCurves.
Service
- RWC 2025 Program committee
- RWC 2020 Program committee
Coauthors
- Manuel Barbosa (1)
- Santiago Zanella Béguelin (1)
- Daniel J. Bernstein (1)
- Karthikeyan Bhargavan (5)
- Shivam Bhasin (1)
- Anupam Chattopadhyay (1)
- Tee Kiah Chia (1)
- Cédric Fournet (1)
- Charlie Jacomme (1)
- Matthias J. Kannwischer (1)
- Franziskus Kiefer (3)
- Markulf Kohlweiss (1)
- Thales B. Paiva (1)
- Alfredo Pironti (1)
- Prasanna Ravi (1)
- Rolfe Schmidt (1)
- Bas Spitters (1)
- Pierre-Yves Strub (1)
- Goutam Tamvada (1)