![]() |
EN
Liens : |
Les projets PANTACOUR (INS2I) et EPOQAP (IRGA) ont pour objectif l’évaluation d’algorithmes de cryptographie post-quantique contre les attaques physiques.
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 :
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 :
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.
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.
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 .
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.
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.
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.
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.
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