Skip to Main content Skip to Navigation

Secure, fast and verified cryptographic applications : a scalable approach

Abstract : The security of Internet applications relies crucially on the secure design and robust implementations of cryptographic algorithms and protocols. This thesis presents a new, scalable and extensible approach for verifying state-of-the-art bignum algorithms, found in popular cryptographic implementations. Our code and proofs are written in F∗, a proof-oriented language which offers a very rich and expressive type system. The natural way of writing and verifying higher-order functional code in F∗ prioritizes code sharing and proof composition, but this results in low performance for cryptographic code. We propose a new language, Low∗, a fragment of F∗ which can be seen as a shallow embedding of C in F∗ and safely compiled to C code. Nonetheless, Low∗ retains the full expressiveness and verification power of the F∗ system, at the specification and proof level. We use Low∗ to implement cryptographic code, incorporating state-of-the-art optimizations from existing C libraries. We use F∗ to verify this code for functional correctness, memory safety and secret in- dependence. We present HACL∗, a full-fledged and fully verified cryptographic library which boasts performance on par, if not better, with the reference C code. Several algorithms from HACL∗ are now part of NSS, Mozilla’s cryptographic library, notably used in the Firefox web browser and the Red Hat operating system. Eventually, we apply our techniques to miTLS, a verified implementation of the Transport Layer Security protocol. We show how they extend to cryptographic proofs, state-machine implementations and message parsing verification.
Document type :
Complete list of metadatas

Cited literature [158 references]  Display  Hide  Download
Contributor : Abes Star :  Contact
Submitted on : Friday, January 10, 2020 - 3:33:24 PM
Last modification on : Thursday, July 16, 2020 - 4:10:14 PM


Version validated by the jury (STAR)


  • HAL Id : tel-01981380, version 2



Jean-Karim Zinzindohoué-Marsaudon. Secure, fast and verified cryptographic applications : a scalable approach. Cryptography and Security [cs.CR]. PSL Research University, 2018. English. ⟨NNT : 2018PSLEE052⟩. ⟨tel-01981380v2⟩



Record views


Files downloads