Thèse soutenue

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

FR  |  
EN
Auteur / Autrice : Alexander Schaub
Direction : Olivier RioulSylvain Guilley
Type : Thèse de doctorat
Discipline(s) : Information, communications, électronique
Date : Soutenance le 07/12/2020
Etablissement(s) : Institut polytechnique de Paris
Ecole(s) doctorale(s) : École doctorale de l'Institut polytechnique de Paris
Partenaire(s) de recherche : établissement opérateur d'inscription : Télécom Paris (Palaiseau ; 1977-....)
Laboratoire : Laboratoire Traitement et communication de l'information (Paris ; 2003-....)
Jury : Président / Présidente : David Naccache
Examinateurs / Examinatrices : Olivier Rioul, Sylvain Guilley, Ingrid Verbauwhede, Avi Mendelson, Joseph Boutros, Yuval Yarom
Rapporteurs / Rapporteuses : Ingrid Verbauwhede, Avi Mendelson

Mots clés

FR  |  
EN

Mots clés contrôlés

Résumé

FR  |  
EN

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.