Brice Colombier

Me EN

Liens :

Research

Projets

PANTACOUR et EPOQAP

Les projets PANTACOUR (INS2I) et EPOQAP (IRGA) ont pour objectif l’évaluation d’algorithmes de cryptographie post-quantique contre les attaques physiques.

PILAS

Dans le cadre du projet PILAS (FUI), je développais des attaques laser avancées qui utilisent des bancs d’injection multi-spots.

Les possibilités offertes par le banc d’injection laser à 4 spots de la société ALPhANOV sont présentées dans la vidéo suivante :

Le code que nous avons attaqué est un VerifyPIN à 3 essais. Nous avons réalisé les attaques suivantes :

  1. Code PIN toujours correct
  2. Déni de service
  3. Augmenter le nombre d’essais
  4. Diminuer le nombre d’essais

PROSECCO

Dans le cadre du projet ANR-PROSECCO, j’ai travaillé à l’évaluation de contre-mesures insérées à la compilation contre les attaques physiques. The projet PROSECCO incluait les partenaires suivants :

  • Le CEA DACLE était chargé de modifier un compilateur pour insérer automatiquement des contre-mesures à la compilation d’après des annotations faites par le développeur,
  • Le LIP6 s’assurait que les contre-mesures avaient bien été insérées et que le programme modifié était bien équivalent au programme original.
  • L’équipe CEA-Tech SAS était en charge de l’évaluation de la résistance du code protégé contre les attaques physiques. Cela consistait à réaliser des attaques par canaux auxiliaires et des attaque en faute mais aussi à suivre une procédure d’évaluation des fuites d’information. Nous faisions ensuite un retour aux concepteurs de contre-mesures afin qu’ils puisssent les dimensionner au mieux .

Dans l’équipe SAS de CEA-Tech à Gardanne, nous réalisions les évaluations de sécurité. Pour ceci, nous menions : - des attaques par canaux auxiliaires : CPA de 1er et 2ns ordre, attaques templates, attaques utilisant le machine learning, - ataques en faute : glitches d’horloge, glitches d’alimentation, injection électromagnétique, injection laser, - évaluation des fuites d’information : t-test de Welch, F-test, profilage.

Corruption mono-bit de firmware en mémoire Flash par injection laser

Dans ces travaux, nous avons montré qu’en tirant avec un laser permettait de réaliser une mise à 1 monobit sur la donnée lue dans la mémoire Flash d’un micro-contrôleur 32 bits ARM Cortex M3. En réalisant l’injection au bon moment, nous pouvions mettre à 1 n’importe quel bit de l’instruction lue. Le spot laser avait un diamètre de 5µm. Nous tirions à une puissance de 0.5W pendant 200ns.

Cela nous a permis d’attaquer une implémentation d’un algorithme de vérification de PIN, obtenant autant d’essais que désiré pour trouver le PIN correct. Nous avons également attaqué la dernière transformation AddRoundKey d’une implémentation d’AES pour retrouver la clé secrète avec seulement deux chiffrés fautés.

SALWARE

L’objectif du projet ANR-SALWARE était de lutter contre la contrefaçon des circuits intégrés et la copie illégale des composants virtuels.

Mon manuscrit de thèse est disponible ici et mes diapositives de soutenance ici .

Une infrastructure de protection complète pour la protection du design des composants virtuels

Le livrable final du projet SALWARE était un démonstrateur illustrant l’activation sécurisée à distance d’un composant virtuel. Ce démonstrateur intègre toutes les contributions du projet SALWARE, c’est à dire la méthode de verrouillage/masquage logique pour rendre le composant virtuel activable, le chiffreur symétrique léger, la PUF pour identifier chaque instance du composant virtuel et le protocole de réconciliation de clé CASCADE pour corriger les erreurs présentes dans les réponses de la PUF.

Un schéma du démonstrateur est donné ci-dessous, ainsi qu’un vidéo présentant le système avec un exemple.

Protocole de réconciliation de clé pour la correction des erreurs dans les réponses des PUF

Les PUF sont des primitives de sécurité intéressantes pour identifier les instances d’un composant virtuel mais elles souffrent d’erreurs dans les réponses qu’elles génèrent. Afin de corriger ces erreurs, les codes correcteurs d’erreurs classiques peuvent être utilisés mais ils sont coûteux en ressources logiques. Nous proposons d’utiliser à la place le protocole de réconciliation de clé CASCADE pour corriger les erreurs dans les réponses des PUF.

Le protocole de réconciliation de clé CASCADE est très efficace en ce qui concerne la correction des erreurs, permettant d’obtenir des taux d’échec d’un pour un million, tout en étant un ordre de grandeur plus léger en ressources logiques que les implémentations de codes correcteurs d’erreurs classiques. De plus, il est très flexible et peut s’adapter à des taux d’erreur variés.

Modification de la logique combinatoire

Masquage logique utilisant les indicateurs de centralité

Une manière de rendre un circuit combinatoire inutilisable est d’y appliquer du masquage logique. En insérant des portes OU exclusif/NON OU exclusif à des endroits spécifiques du composant virtuel, le comportement de ce dernier est fortement perturbé si le mauvais mot d’activation est fourni. L’objectif est d’obtenir la corrélation bit-à-bit en sortie la plus faible possible entre le fonctionnement normal et le fonctionnement perturbé.

Nous avons mis au point une heuristique de sélection basée sur les indicateurs de centralité pour identifier les noeuds du composant virtuel à modifier.

En comparaison des heuristiques de sélection de l’état de l’art, notre méthode est beaucoup plus efficace d’un point de vue algorithmique et permet d’obtenir des corrélations faibles en sortie.

Verrouillage de la logique combinatoire

Une autre solution pour rendre un circuit inutilisable est d’utiliser le verrouillage combinatoire. En insérant des portes non-linéaires (ET, OU) à des endroits spécifiques dans la netlist, les sorties sont forcées à une valeur fixe.

Pour sélectionner les lieux d’insertion, nous avons concçu une méthode basée sur l’analyse de graphe qui identifie les suites de portes logiques susceptibles de propager une valeur de verrouillage.

Encadrement

Doctorat

  • Depuis 2020 : Ihab Alshaer
    • Analyse multi-niveaux des fautes dans les architectures de processeurs
  • Depuis 2022 : Nicolas Vallet
    • Sécurité physique des algorithmes de cryptgraphie post-quantique basés sur les codes

Stages

  • 2023 – Léo Raclet (L2)
    • Implémentation matérielle de la multiplication matrice-vecteur sur F2
  • 2022 – Florent Rougier (M1)
    • Mise en place et automatisation d’un banc d’écoute électromagnétique
  • 2022 – Gijs Burghoorn (M1)
    • Simulation logicielle et matérielle d’attaques par glitchs d’horloge
  • 2022 – Gwenvael Le Bars (M1)
    • Implémentation matérielle de la multiplication matrice-vecteur sur F2
  • 2022 – Jardel Kaique Santos Duarte (M1)
    • Attaques par injection laser sur des circuits non alimentés
  • 2022 – Mohammed Mezaouli (M1)
    • Implémentation logicielle de la multiplication matrice-vecteur sur F2
  • 2021 : Meriam Jamal (M2)
    • Attaques par observation sur le cryptosystème Classic McEliece
  • 2019 : Éloise Delolme (L2)
    • Mise en place et automatisation d’un banc d’écoute électromagnétique
  • 2016 : Théo Basty (L2)

Projets

  • 2020 : Julien Vernay (M1, CDD recherche)
    • Injection de fautes laser avancée utilisant un banc d’injection laser multi-spots
  • 2020 : Wassim Barriere (L2, travail de recherche)
    • Développement d’un simulateur de traces de consommation de puissance en C++
  • 2017 : Kenza Yahiaoui et Romain Leclerc (L2, projet TIPE)
    • Conception d’une enceinte destinée à accueillir un haut-parleur

Service académique

Je suis éditeur associé du Journal of Cryptographic Engineering.

J’ai fait partie du comité de programme de la conférence VLSI-SoC en 2018 et 2019.

J’ai relu des articles soumis aux conférences suivantes :

J’ai relu des articles soumis aux journaux suivants :


Construit avec Pandoc, hébergé sur Netlify, dernière modification : 09/2023