Missions :
Avec l'aide de l'équipe projet et sous la supervision de Pierre-Yves Strub, la personne recrutée aura la charge d'étendre et de fiabiliser les outils de vérification formelle utilisés dans FORMASK. Il s'agit d'enrichir les langages et logiques de preuve pour couvrir des constructions issues des langages système, de développer une chaîne de traduction depuis Rust vers l'assistant de preuve, de construire des bibliothèques abstraites et réutilisables de composants cryptographiques (gadgets), et d'établir la correspondance formelle entre implémentations concrètes et spécifications de haut niveau.
Pour une meilleure connaissance du sujet :
Un état de l'art et des références scientifiques (EasyCrypt, Jasmin, Why3, propriétés SNI/PINI, vérification d'implémentations masquées) pourront être communiqués au candidat ; ils sont accessibles via le site de l'équipe et les publications du consortium.
Collaboration :
La personne recrutée travaillera en lien étroit avec Pierre-Yves Strub et les chercheurs et ingénieurs des trois partenaires (notamment les auteurs et mainteneurs d'EasyCrypt et de Jasmin), dont elle prolongera et consolidera les développements.
Responsabilités :
Elle est responsable de la conception, de l'implémentation et de la validation de composants logiciels robustes et maintenables (en particulier en Rust), ainsi que des preuves formelles associées ; elle prendra des initiatives pour rendre ces preuves et cet outillage plus génériques, automatisés et réutilisables.
Pilotage :
Elle assurera le suivi technique de ses développements, leur documentation et leur intégration dans les dépôts partagés du consortium, en autonomie sur son périmètre.