Source: L'économie de la contrefaçon en ligne : l'électronique grand public, un rapport du CSC en 2017Au cours des 10 dernières années, le nombre de contrefaçons dans le monde a doublé. Ces données ont été publiées dans le dernier examen des droits de propriété intellectuelle de fin d'année par le département américain de la Sécurité intérieure en 2016 (l'année la plus récente suivie). Une grande partie de la contrefaçon provient de Chine (56%), de Hong Kong (36%) et de Singapour (2%). Les fabricants de produits d'origine subissent de lourdes pertes, dont certaines se produisent sur le marché de l'électronique.
De nombreux produits modernes contiennent des composants électroniques: vêtements, chaussures, montres, bijoux, voitures.
L'année dernière, les pertes directes résultant de la copie illégale d'électronique grand public et de composants électroniques dans la composition d'autres biens se sont élevées à environ 500 milliards de dollars.
Comment résoudre ce problème?
Ce problème peut être résolu par diverses méthodes de protection de l'électronique numérique contre la copie, la modification et la rétro-ingénierie illégales: chiffrement matériel (AES, RSA, etc.), hachage (par exemple, SHA-256, MD-5), introduction du numérique filigranes et empreintes digitales dans la description de la conception, obscurcissement lexical et fonctionnel, vérification formelle et autres.
Dans cet article, nous parlerons de l'une des méthodes de protection les plus rentables en termes de coûts matériels - les fonctions physiques non clonables (PUF).
L'inconvénient de la plupart des méthodes mentionnées ci-dessus est des coûts matériels importants et, par conséquent, une consommation d'énergie élevée.
Avec l'émergence du concept de l'Internet des objets (IoT), les exigences pour la zone occupée par un appareil numérique sur une puce d'un circuit intégré, ainsi que pour la consommation d'énergie, deviennent plus strictes à mesure que la taille des appareils diminue considérablement. d'année en année.
Fonctions physiques non clonables (PUF)
Une des façons d'identifier et d'authentifier les appareils numériques est les fonctions physiques non clonables, qui sont beaucoup plus économiques à mettre en œuvre que les méthodes de protection ci-dessus.
Que sont les PUF? Il est difficile de trouver deux objets absolument identiques parmi les objets matériels qui nous entourent. Même en production de masse, chaque objet est unique en raison d'inexactitudes et d'accidents. Ces caractéristiques de chaque objet individuel peuvent être enregistrées et utilisées comme identifiant unique, une sorte d '«empreinte digitale».
Un bon exemple est
le PUF optique . Prenez un morceau de verre fondu, ajoutez-y des bulles d'air, refroidissez cette masse et coupez-la en barres égales. La chance d'obtenir deux barres absolument identiques est négligeable; les bulles d'air à l'intérieur seront réparties de manière inégale. Nous pouvons corriger ces différences en envoyant un faisceau laser à la barre (demande) et en recevant en sortie un diagramme d'interférence unique de faisceaux de rayonnement après réfraction (réponse). Par conséquent, nous obtenons une fonction physique non clonable qui déterminera la dépendance de la réponse à la demande d'entrée. Bien sûr, cette fonction n'est pas analytique, donc ni le propriétaire légal de l'objet ni un attaquant ne peuvent le découvrir à l'avance. Vous ne pouvez tester qu'un lot de produits et créer un tableau de valeurs d'entrée et de sortie, qui servira de critère pour déterminer l'authenticité des objets.
Les PUF pour la protection de l'électronique sont basés sur l'utilisation de variations de processus de fabrication lors de la fabrication de circuits intégrés: par exemple, des valeurs précises de tensions de seuil, des retards de propagation du signal, la fréquence de fonctionnement des composants, etc. Dans le processus de conception standard, les ingénieurs en conception électronique cherchent à réduire l'impact des variations sur le produit final. Pour le PUF, au contraire, ce phénomène incontrôlé est utilisé pour extraire le caractère aléatoire et unique d'un appareil numérique.
En fait, le PUF est similaire aux implémentations matérielles des fonctions de hachage, la seule différence est que l'unicité de la valeur de sortie du PUF est basée sur l'unicité d'un circuit intégré particulier, et non sur un algorithme mathématique.
L'argument d'entrée PUF (demande) est appelé le défi (CH), et la valeur de sortie est la réponse ®. De cette façon, pour certains circuits intégrés - ICk, l'ensemble des défis - {CH
0 , ..., CH
N-1 } - sera mappé de manière unique à l'ensemble de réponses {R
0 , ..., R
N-1 } avec PUF :
Un ensemble de paires défi-réponse (CRP) {(CH
0 , R0), ..., (CH
N-1 , R
N-1 )} caractérise de manière unique le circuit intégré ICk et ne peut pas être copié même pour une description de conception absolument identique ( voir schéma ci-dessous).

Unicité inter-puce et par puce des circuits intégrés (IC)
Comme le montre le diagramme, lors de la mise en œuvre d'une description de conception identique du PUF sur différents circuits intégrés, les réponses (R
i ) aux mêmes défis (CH
i ) seront uniques (significativement différentes les unes des autres) pour chaque copie. Ce phénomène est appelé unicité inter-puce, c'est-à-dire la capacité de distinguer les circuits intégrés les uns des autres à l'aide de PUF. Lors de l'utilisation de réalisations identiques de PUF sur une seule puce pour identifier, par exemple, divers composants de la propriété intellectuelle (IP), le phénomène d'unicité par puce est observé. Étant donné que les réalisations du PUF à l'intérieur d'une puce sont différentes au moins dans leur disposition mutuelle, l'unicité par puce ou les signatures uniques à la puce est, en règle générale, plus prononcée que celle inter-puce.
Implémentations existantes de PUF et leur utilisation
Actuellement, il existe de nombreuses implémentations PUF basées sur:
- Retards de propagation du signal . En utilisant la valeur binaire des défis, la configuration des chemins symétriques est définie, le long de laquelle plusieurs copies d'un signal sont distribuées. La réponse du PUF est le résultat de la comparaison des retards du signal de propagation.
- Fréquences des composants . La base de ce PUF est une comparaison de paires de composants identiques avec une fréquence unique. Les défis sont toutes sortes de paires d'index de divers composants, et les réponses sont le résultat de la comparaison de la fréquence de leur travail.
- État de la mémoire . À la suite de la mise sous tension et / ou de la réinitialisation de l'état des dispositifs de stockage statiques (SRAM), la valeur initialement stockée dans chacun des éléments de mémoire (0 ou 1) est unique et aléatoire. Le défi pour ce PUF est la mise sous / hors tension, et la réponse est l'état observé de chacun des éléments de mémoire qui caractérise de manière unique le circuit intégré sur lequel le PUF est implémenté.
- Capteur d'image CMOS . Chaque image créée à l'aide d'une matrice photosensible (capteur d'image) a une composante de bruit constant qui caractérise l'unicité de la matrice mise en œuvre. Le principe de fonctionnement de ce PUF est similaire au PUF basé sur la comparaison des fréquences avec la seule différence étant que la comparaison est faite en fonction des valeurs de la tension de seuil de chacun des éléments de la matrice.
- Tension de seuil du transistor . Ce type de PUF ne peut être implémenté qu'en analogique car un ingénieur a accès aux valeurs de tension de seuil dans ce cas. La base de ce PUF, comme le PUF sur la base des fréquences, est la comparaison des caractéristiques de plusieurs transistors utilisés dans le circuit intégré.
- Miroir actuel . Cette classe de PUF est basée sur l'implémentation d'un tableau de miroirs de courant. Les valeurs de tension aux nœuds de ce réseau caractérisent uniquement le circuit intégré. Le défi, dans ce cas, est le nombre de colonnes et de lignes des éléments, quelles valeurs de tension vous souhaitez comparer. Par conséquent, la réponse est le résultat de la comparaison des différences de tension dans une paire de nœuds avec une valeur de seuil.
- Pression externe sur l'écran d'un smartphone . Dans cette implémentation, le défi du PUF est une action de l'utilisateur qui glisse un doigt sur un écran selon un certain schéma (comme une touche graphique dans les smartphones). Sur la base des valeurs de pression d'un utilisateur sur l'écran du smartphone, une valeur de réponse unique est calculée qui caractérise l'utilisateur et le smartphone et peut donc être utilisée pour l'authentification.
- Structure du papier . Cette implémentation du PUF est basée sur l'unicité de la structure du papier en raison des variations au cours du processus de fabrication. En conséquence, un certain support papier peut être utilisé comme source de clés cryptographiques uniques.
Comme indiqué ci-dessus, il existe une grande variété de types de PUF qui peuvent être mis en œuvre à la fois sur des appareils numériques et en utilisant d'autres technologies (optiques, magnétiques, papier, etc.).
La première mise en œuvre commerciale du PUF en 2008 était des identificateurs de radiofréquence fabriqués par la société Verayo. De plus, actuellement, de nombreux fabricants de FPGA - par exemple,
Xilinx et
Altera (Intel) - utilisent des PUF comme identifiant FPGA non clonant intégré.
Étant donné que les PUF sont utilisés comme primitives cryptographiques (générateurs de nombres aléatoires, identificateurs uniques, fonctions de hachage matériel), de nombreux fabricants ne divulguent pas l'utilisation des PUF pour garder secrets les détails de la mise en œuvre de leurs protocoles de sécurité contre les intrus.
Exemple de mémoire basée sur PUF (SRAM)
À titre d'exemple de PUF, nous utiliserons
l'implémentation du PUF basé sur la mémoire à l'aide du FPGA Xilinx Spartan 3E, qui fait partie de la carte de développement Digilent Nexys-2. L'émulation de l'élément mémoire a été implémentée comme un élément bistable et la mise sous / hors tension a été modélisée en reprogrammant le FPGA en utilisant le même fichier de configuration.
La figure ci-dessous montre les identifiants de deux FPGA identiques, obtenus grâce à leur programmation avec le même fichier bit. La couleur noire dénote des «éléments de mémoire» qui conservent la valeur de 0 à la suite de 100 reprogrammations, la couleur blanche dénote la valeur de 1. Les nuances de gris sont celles qui changent la valeur de lancement en lancement. En conséquence, plus il y a de noir dans la couleur «élément», plus les valeurs de 0 ont été générées à la suite de la reprogrammation.

Les identifiants 64 bits de deux FPGA identiques
Comme le montre la figure, la méthode des «cartes mémoire» diffère considérablement: la distance de Hamming pour les identifiants 64 bits est d'environ 20. Par conséquent, la probabilité que l'identifiant soit le même sur différents FPGA est assez faible, inférieure à 0,01. Les "cartes mémoire" susmentionnées peuvent être utilisées de deux manières: pour identifier le FPGA et comme source d'aléatoire en raison de la présence d'éléments non permanents.
Une identification fiable nécessitera l'utilisation de
codes de correction d'erreur (ECC) pour stabiliser les «cartes mémoire» observées. Dans cet article, nous avons utilisé
la méthode de sélection majoritaire . L'implémentation d'un générateur de nombres aléatoires nécessite au contraire la «reproduction» du caractère aléatoire de ces «éléments de mémoire» dont les valeurs sont instables. À cette fin, nous avons utilisé l'analyse de signature comme algorithme de compression des données de perte. Des algorithmes de hachage standard (par exemple, SHA-256) peuvent également être utilisés si les contraintes de coût matériel ne sont pas très strictes.
Problèmes existants et perspectives pour PUF
Malgré la relative nouveauté de ce concept, le terme PUF fête cette année ses 17 ans.
Pendant ce temps, la communauté scientifique a déjà réussi à étudier à la fois les problèmes et les applications possibles du PUF.
L'un des principaux problèmes, qui est démontré par l'exemple du PUF basé sur la mémoire, est l'instabilité de certaines valeurs, ce qui, à son tour, oblige un ingénieur à utiliser des codes de correction d'erreur et des architectures PUF plus fiables.
D'autre part, la très haute stabilité expose le PUF au risque d'attaque cryptographique à l'aide de méthodes d'apprentissage automatique, c'est-à-dire que la construction est suffisamment précise - plus de 95% - un modèle mathématique du PUF, qui était initialement (jusqu'en 2010) considéré comme impossible dans la communauté scientifique.
Néanmoins, l'utilisation du PUF dans les applications commerciales modernes comme primitive cryptographique prouve la promesse de recherche dans ce domaine à la recherche de nouvelles architectures PUF, ainsi que l'amélioration des caractéristiques des implémentations existantes.