Formal methods for the analysis of cache-timing leaks and key generation in cryptographic implementations - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2020

Formal methods for the analysis of cache-timing leaks and key generation in cryptographic implementations

Méthodes formelles pour l'analyse de fuites cache-timing et la génération de clés dans les implémentations cryptographiques

Résumé

Cryptography is ubiquitous in today's interconnected world, protecting our communications, securing our payment systems. While the cryptographic algorithms are generally well understood, their implementations have been less subject to formal verification. This has lead to successful breakages of implementions of most modern primitives: AES, RSA, ECDSA... In general, cryptographic implementations would benefit from stronger theoretical guarantees.In this thesis, we apply this line of reasoning to two different topics, one in software security, and the other in hardware security. The first half of this thesis explores cache-timing side channel vulnerabilities that arise when the time taken by a cryptographic operation, or the cache state after this operation, depends on sensitive information. This occurs if any branching operation depends on secret information such as a private key, or if memory is accessed at an address that depends on that secret.We developed a tool to detect and prevent such leaks in programs written in the C programming language. This tool is applied on most candidates of NIST's post-quantum standardization process in order to find cache-timing leakages. This process aims at replacing traditional cryptographic primitives such as RSA or ECDSA, broken by quantum computers, by safer alternatives. The development of such primitives is on the way, but the security of their implementations has received less scrutiny. We show how our tool is able to detect potential cache-timing leaks in a majority of the implementations and what mitigations are possible.The subject of the second half of this thesis are the so-called physically unclonable functions, or PUFs: elementary circuits from which stable but unpredictable identifiers can be extracted. They rely on small, uncontrollable changes in the semiconductor properties to exhibit unpredictable behavior. Theoretical guarantees concerning two fundamental characteristics of PUFs are derived in this thesis, for a large family of PUFs: the stability of the identifier, related to circuit noise, and the exploitable entropy, derived from the mathematical PUF model.
La cryptographie est omniprésente dans notre monde actuel hyperconnecté, protégeant nos communications, sécurisant nos moyens de paiement. Alors que les algorithmes cryptographiques sont en général bien compris, leurs implémentations ont été vérifiées avec moins d'insistance. Cela a mené à des attaques contre les implémentations de la plupart des primitives modernes: AES, RSA, ECDSA... En bref, la sécurité des implémentations pourrait fortement bénéficier de meilleurs garanties théoriques. Dans cette thèse, nous appliquons ce raisonnement à deux sujets différents, l'un portant sur la sécurité logicielle, l’autre sur la sécurité matérielle. La première moitié de la thèse explore les canaux auxiliaires logiciels dits "cache-timing". Ce genre de vulnérabilités apparaît lorsque la durée d'une opération cryptographique, ou l'état du cache après cette opération, dépend d'une information sensible. C'est le cas lorsqu'une opération de branchement dépend d'une information secrète comme une clé privée, ou si la mémoire est accédée à une adresse qui dépend de ce secret. Nous avons développé un outil pour détecter et prévenir ce genre de fuites dans des programmes écrits en C, et l'avons appliqué à la plupart des candidats du processus de standardisation de cryptographie post-quantique initié par le NIST. Ce processus vise à remplacer des primitives cryptographiques traditionnelles comme RSA ou ECDSA, vulnérables aux ordinateurs quantiques, par des alternatives sûres. Ces nouveaux algorithmes étant relativement récents, leurs implémentations ont été moins scrutées. Dans cette thèse, nous appliquons notre outil à la plupart de ces algorithmes pour détecter des fuites d'information potentielles, et expliquons comment les éviter. La deuxième moitié de la thèse est consacrée aux "physically unclonable functions" (PUFs). De ces circuits, on peut extraire des identifiants imprédictibles mais stables, grâce à de petites variations incontrôlables dans les propriétés des semi-conducteurs. Des garanties théoriques pour deux caractéristiques fondamentales de certains PUFs sont présentées dans cette thèse: la stabilité de l'identifiant, perturbée par des bruits de mesure, et l'entropie disponible, dérivée du modèle mathématique du PUF.
Fichier principal
Vignette du fichier
88028_SCHAUB_2020_archivage.pdf (2.26 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-03205242 , version 1 (22-04-2021)

Identifiants

  • HAL Id : tel-03205242 , version 1

Citer

Alexander Schaub. Formal methods for the analysis of cache-timing leaks and key generation in cryptographic implementations. Cryptography and Security [cs.CR]. Institut Polytechnique de Paris, 2020. English. ⟨NNT : 2020IPPAT044⟩. ⟨tel-03205242⟩
164 Consultations
263 Téléchargements

Partager

Gmail Facebook X LinkedIn More