Analyse et conception de systèmes
Mercredi 7 décembre 2022, 14 heures, Salle 1007
Antoine Séré (École Polytechnique) Developments around the correction proof of Hakyber
EasyCrypt has already been used to prove the correction of implementations of cryptographic primitives, such as of ChaCha20-Poly1305. This proof is done by “game hopping”: the correction of a naive implementation of the primitive is proven using EasyCrypt’s probabilistic Hoare logic (pHL), and it is shown to be equivalent to gradually more optimized implementations using EasyCrypt’s probabilistic relational Hoare logic (pRHL).
Hakyber differs from the cryptographic primitives formalized in EasyCrypt by the complexity of the mathematical structures involved in it’s correctness an security proofs. In particular, it’s correction proof involves polynomials over finite fields, quotient rings and Number Theoretic Transforms (NTTs), variants of the Fourier transform used in fast polynomial multiplication algorithms.
The correction proof of Hakyber’s NTT is one of the trickiest parts of the total correction proof. We will discuss the issues we encountered in this proof, the solutions we used to overcome them, and current and planned developments of EasyCrypt that were motivated by these issues.
In particular, we will talk about the theories developed to deal with equivalence proofs of nested for loops, as well as those describing algebraic hierarchies using EasyCrypt’s clone mechanism. We will then present the planned replacement for these theories, using EasyCrypt’s annotations and type class mechanism respectively.
Analyse et conception de systèmes
Mercredi 23 novembre 2022, 14 heures, Salle 1007
Charles Paperman (Inria Links) Vectorial execution of automata
The compilation procedure relies on algebraic automata theory that will be gently introduced. Some complexity related consideration will also provides insight on what to expect and what is (probably) hopeless to compile efficiently.
Analyse et conception de systèmes
Mercredi 2 novembre 2022, 14 heures, Salle 1007
François Pottier (Inria Paris) “You Only Linearize Once”, with elegance
Analyse et conception de systèmes
Mardi 18 octobre 2022, 10 heures 45, Salle 1007
Juliusz Chroboczek (IRIF) Babel-MAC, reloaded
Much to our surprise, our work passed successfully the IETF's security review, and was subsequently published as RFC 8967. In the Spring of 2022, however, it was discovered that even though our protocol had been proved correct, it was failing in a small number of “real” networks, which turned out to violate one of the assumptions made in our proof.
In this talk, I will first describe the properties that are expected from a security mechanism. I will then show the proof of correctness of the security mechanism described in RFC 8967, and show the assumptions that it makes about the network. Finally, I will describe how these assumptions turned out to be incorrect, and how we managed to fix the protocol in a backwards compatible manner.
Analyse et conception de systèmes
Vendredi 8 juillet 2022, 10 heures 30, Salle 1007
Ada Vienot (IRIF) A reactive operational semantics for a lambda-calculus with time warps
Analyse et conception de systèmes
Vendredi 1 juillet 2022, 10 heures 30, Salle 3052
Jean-Baptiste Tristan (Boston College) Probabilistic Programming and Molecular Optimization (Zoom link)
In this talk, I will introduce an experimental probabilistic programming language designed to facilitate the exploration of PES. In this language, the semantics of a program is a probability distribution over PES. The objective of the compiler is to generate an optimizer that combines solvers from machine learning and quantum chemistry to discover local minima of the PES. While much of this language and compiler is routine, we will see that the principle of conservation of energy brings about genuinely interesting compilation problems.
Analyse et conception de systèmes
Vendredi 24 juin 2022, 10 heures 30, Salle 3052
Stanislas Polu (Open AI) Formal Mathematics Statement Curriculum Learning (Zoom link)
Analyse et conception de systèmes
Mercredi 15 juin 2022, 14 heures, Salle 1007
Ghiles Ziat (IRIF) Reading group: “Principles of Abstract Interpretation”, P. Cousot (II)
Analyse et conception de systèmes
Vendredi 3 juin 2022, 10 heures 30, Salle 1007
Yaëlle Vinçont Fuzzing et méthodes symboliques pour la détection de vulnérabilités à large échelle
Cette technique permet d'explorer rapidement la surface d'un programme grâce à la génération automatique rapide de cas de tests, parfois guidée par exemple par des mesures de couverture.
En revanche, dès que le programme contient des conditions spécifiques (par exemple, x = 0x42, où x a été lu depuis l'entrée utilisateur), la probabilité qu'un fuzzeur génère une solution est assez faible.
On propose d'améliorer les perfomances du fuzzeur AFL en le combinant avec une analyse symbolique, qui analysera les traces des cas de tests générés, pour identifier ces conditions (par exemple, on aurait input[0] = 0x0042). On en déduit des prédicats de chemins sous-approximés, qu'on appelle “facilement énumérable”, et dont les solutions sont directement générées par notre fuzzeur modifié.
L'outil ainsi créé, ConFuzz, est intégré à la plateforme d'analyse de code binaire Binsec, développée au CEA List, et a été testé sur LAVA-M, un banc de test standard en fuzzing.
Analyse et conception de systèmes
Vendredi 29 avril 2022, 10 heures 30, Salle 1007
Ghiles Ziat (IRIF) Reading group: “Principles of Abstract Interpretation”, P. Cousot
Analyse et conception de systèmes
Vendredi 15 avril 2022, 10 heures 30, Salle 3052
András Kovács (Eötvös Loránd University) A first-principles investigation of performance of elaboration with dependent types
Analyse et conception de systèmes
Vendredi 1 avril 2022, 10 heures 30, Salle 3052
Mathieu Montin, Amélie Ledein, Catherine Dubois (Loria - Inria Deducteam - ENSIIE, Samovar) LibNDT: Towards a formal library on spreadable properties over linked nested datatypes
Our work focuses on a specific subset of nested datatypes which we call Linked Nested DataTypes (LNDT), and which induces the definition of some regular datatypes, such as List and Maybe, as well as some nested datatypes, such as Nest and Bush. LibNDT is a core library, developed both in Coq and Agda, which focuses on the set of constructs that can be spread directly from the parameter on which a specific LNDT is built to the LNDT itself (For instance, List is built with the identity parameter). These spreadable elements are of two kinds, functions, such as folds and map, and properties such as the congruence of map or Any and All (existential and universal satisfaction of a predicate inside a LNDT).
In this presentation, we explain the thought process behind the creation of this specific subset of nested datatypes, and we present different concrete LNDTs, as well as our set of spreadable elements over them. We conclude by an open discussion about various thoughts related to our work.
(Amélie Ledein will be giving the talk)
Analyse et conception de systèmes
Jeudi 24 mars 2022, 14 heures, salle 15-16 101 (campus Jussieu)
Loïc Sylvestre (APR/LIP6, Sorbonne Université) Macle : un langage dédié à l'accélération de programmes OCaml sur circuits FPGA
Séminaire IRILL / GdT Programmation @ LIP6
Analyse et conception de systèmes
Jeudi 17 mars 2022, 14 heures, salle 15-16 101 (campus Jussieu)
Bastien Guerry (pôle logiciels libres, ETALAB, DINUM) Présentation du pôle logiciels libres de la DINUM et du plan d'action logiciels libres et communs numériques
Séminaire IRILL / GdT Programmation @ LIP6
Analyse et conception de systèmes
Vendredi 11 février 2022, 10 heures 30, Salle 0011
Denis Merigoux (Inria Paris) Hacspec: succinct, executable, verifiable specifications for high-assurance cryptography embedded in Rust
Also virtually: https://webconf.math.cnrs.fr/b/dag-zdc-4mc
Analyse et conception de systèmes
Jeudi 10 février 2022, 14 heures, salle 15-16 101 (campus Jussieu)
Gabriel Scherer (Partout, Inria Saclay) Déboîter les constructeurs
Dans ce travail, en collaboration avec Nicolas Chataing et Stephen Dolan, nous étudions la possibilité de “déboîter” certains constructeurs – si l'utilisateur le demande au moment de leur définition – c'est-à-dire de ne pas les représenter en mémoire du tout. Dans certains cas, effacer les constructeurs introduirait des confusions entre valeurs différentes, et il faut donc rejeter la demande. Nous avons donc conçu une analyse statique pour détecter ces confusions; la question de la terminaison de cette analyse est intéressante.
Séminaire IRILL / GdT Programmation @ LIP6