Hdr Année : 2024

Provable Security of Cryptographic Primitives: from Algorithms to Assembly

Résumé

Cryptographic primitives are the fundamental building blocks of computer security. In this Habilitation to Direct Research (HDR), I present the theoretical and practical foundations required to establish the security of these primitives. In the first part, I focused on developing theoretical methods to prove their security at the algorithmic level. This work led to the development of the probabilistic Relational Hoare Logic (pRHL) and the creation of the proof assistant EasyCrypt. In the second part, my work shifted to studying the implementation of cryptographic primitives. This stage introduces new challenges, particularly because the need for highly efficient implementations often drives developers to write code in assembly language; a language ill-suited for formal verification of implementation correctness. To address this issue, we have introduced Jasmin, a language specifically designed for writing low-level, highly optimized code. Jasmin provides a high level of abstraction, simplifying formal verification of implementations and enabling the development of static analysis tools. Moreover, to ensure guarantees at the assembly level, the Jasmin compiler has been formally verified using the Coq proof assistant (project Rocq). Finally, in the last part of my work, I tackled the challenge of making implementations resistant to various side-channel attacks, such as cache-based attacks, speculative execution attacks (e.g., Spectre), and power analysis attacks (Differential Power Analysis). These contributions adopt both theoretical and practical perspectives, systematically providing tools to facilitate their implementation.
Les primitives cryptographiques constituent les briques fondamentales de la sécurité informatique. Dans cette Habilitation à Diriger des Recherches, je propose des fondements théoriques et pratiques visant à établir la sécurité de ces primitives. Dans un premier temps, je me suis concentré sur le développement de méthodes théoriques permettant de démontrer leur sécurité au niveau algorithmique. Cela a conduit à l'élaboration de la logique de Hoare relationnelle probabiliste (pRHL) et à la conception de l'assistant de preuve EasyCrypt. Dans un second temps, mon travail s'est orienté vers l'étude des implémentations des primitives cryptographiques. Cette étape soulève de nouveaux défis, notamment en raison de la nécessité d'avoir des implémentations très efficaces. Cela incite souvent les développeurs à écrire du code en assembleur, un langage peu adapté à la vérification formelle de la correction des implémentations. Pour répondre à ce problème, nous avons introduit Jasmin, un langage dédié à l'écriture de code bas niveau hautement optimisé. Jasmin offre un haut niveau d'abstraction, ce qui simplifie la vérification formelle des implémentations et facilite le développement d'analyses statiques. De plus, afin de garantir la sécurité au niveau assembleur, le compilateur Jasmin a été formellement vérifié dans l'assistant de preuve Coq (projet Rocq). Enfin, dans la dernière partie de mes travaux, je me suis intéressé à la résistance des implémentations face à diverses attaques par canaux cachés, telles que les attaques par cache, les attaques basées sur l'exécution spéculative (comme Spectre), et les attaques par analyse de puissance (Differential Power Analysis). Ces travaux adoptent une approche à la fois théorique et pratique, en fournissant systématiquement des outils concrets permettant leur mise en œuvre.
Fichier principal
Vignette du fichier
hdr.pdf (559.97 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

tel-04911253 , version 1 (24-01-2025)

Identifiants

  • HAL Id : tel-04911253 , version 1

Citer

Benjamin Grégoire. Provable Security of Cryptographic Primitives: from Algorithms to Assembly. Computer Science [cs]. Université Côte D'Azur, 2024. ⟨tel-04911253⟩

Collections

INRIA INRIA2
0 Consultations
0 Téléchargements

Partager

More