I am a Principal Researcher in the RiSE group at Microsoft Research Redmond, which I joined in Fall 2014. Previously, I was in the Gallium team at INRIA Paris from 2010 to 2014, designing and implementing Mezzo for my PhD under the direction of François Pottier.
My research focuses on advancing the theory and practice of software verification, i.e. showing with mathematical certainty that a critical piece of code exhibits the intended behavior. This is important for the software industry (e.g. cryptography), but also for society at large (e.g. the law). See our interview in Quanta Magazine for an accessible introduction to verified cryptography, this roundtable on verified cryptography for a research perspective, or the recent CACM Article for a perspective on computational law.
Rust verification (2022-). The future of verification lies with the Rust programming language. Aeneas is a new verification frontend that allows the programmer to verify safe Rust code via a functional translation. See the paper intro for a manifesto.
Verified Protocol Stacks (2019-). Security protocols are pervasive in modern communication software, yet true end-to-end verification results for real-world protocols remain elusive. New developments:
- Noise*, a protocol compiler, proven correct and secure once and for all – we generate 59 protocol stacks “for free”, complete with state machine and peer management, in C.
- MLS* (ongoing), a hybrid JS/WebAssembly implementation of the MLS protocol with security proofs.
- Signal*, a provably secure implementation of the Signal protocol, including compilation the Web via WebAssembly.
The Low* toolchain (2016-2022) compiles F* programs to C. Code written in Low* has been integrated into Windows, Firefox, mbedTLS, and the Tezos blockchain, among others. I co-lead several verified software libraries which use Low*, such as:
- EverCrypt, a complete cryptographic library that offers abstraction, multiplexing, agility and CPU auto-detection, verified in F*, compiled to C and assembly
- HACL*, a collection of verified cryptographic algorithms, verified in F*, compiled to C
- EverQUIC, a verified implementation of the QUIC record layer, complete with a proof of cryptographic security
The Low* strand of work is gradually transitioning towards industrial support & impact. I advise Cryspen, a startup that provides commercial support for HACL* and other projects.
Formal Computational Law (2020-) I study how the tools & techniques of formal methods and PL can shed light on some thorny corners of the law. See Catala, and see Talks for a recent overview of this research program.
Open-source (2009-). In my spare time, I maintain several open-source projects, including a Thunderbird addon that is now the 4th most-used addon with 200,000 users.
More information on the research and software pages.
- Théophile Wallez (2021-), co-advised with Karthik Bhargavan at INRIA
- Son Ho (2020-), co-advised with Karthik Bhargavan at INRIA
- Denis Merigoux (2018-2021), co-advised with Karthik Bhargavan at INRIA. Denis is now a junior researcher at INRIA.
- 2022/10/18: New edition of ProLaLa, which I am once again co-organizing. Send us your finest and freshest work!
- 2022/01/30: CACM publishes an article about computational law which features Catala prominently
- 2021/09/16: I am co-chairing two upcoming POPL workshops: PriSC and ProLaLa – submit your best work!
- 2021/09/09: I will present Catala at AISEC’21.
- 2021/09/08: I will participate in a panel at PPDP’21 on “Applicability and usability of programming languages for legal contracts”.
- 2021/08/18: We will present Catala at ICFP 2021.
- 2021/05/12: keynote on Catala and formalizing the law
Recent blog entries
5 Years of Meta-Programming Cryptography
What's new in Everest: Summer 2020
The EverCrypt verified cryptographic provider
Generating C code that people actually want to use
subscribe via RSS