FR2992451A1 - Procede pour tester le foncitonnement de pufs a partir de secure sketch - Google Patents

Procede pour tester le foncitonnement de pufs a partir de secure sketch Download PDF

Info

Publication number
FR2992451A1
FR2992451A1 FR1201761A FR1201761A FR2992451A1 FR 2992451 A1 FR2992451 A1 FR 2992451A1 FR 1201761 A FR1201761 A FR 1201761A FR 1201761 A FR1201761 A FR 1201761A FR 2992451 A1 FR2992451 A1 FR 2992451A1
Authority
FR
France
Prior art keywords
puf
signature
response
responses
sketch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1201761A
Other languages
English (en)
Other versions
FR2992451B1 (fr
Inventor
Remy Chau
Jerome Quevremont
Sandra Marcello
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR1201761A priority Critical patent/FR2992451B1/fr
Publication of FR2992451A1 publication Critical patent/FR2992451A1/fr
Application granted granted Critical
Publication of FR2992451B1 publication Critical patent/FR2992451B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Procédé pour tester le fonctionnement d'un circuit de type PUF (2) en utilisant un secure sketch (1) caractérisé en ce qu'il comporte au moins : . Une première étape de génération d'une signature d'un PUF, la mémorisation des signatures (h , (R ), h (R )) obtenues en réponse à des stimuli et de sketchs s(R ), s(R ) obtenus à partir des réponses du PUF, . Une deuxième étape de vérification de la signature en comparant une signature obtenue en stimulant une nouvelle fois le PUF (h (R' ), ..h ( R' )) et la comparaison de la signature mémorisée (h , (R ), h (R )), à la nouvelle signature obtenue et si les signatures sont semblables alors le résultat décrétant le fonctionnement correct du PUF.

Description

PROCEDE POUR TESTER LE FONCTIONNEMENT DE PUFS A PARTIR DE SECURE SKETCH L'objet de l'invention concerne un procédé pour tester le fonctionnement, la fiabilité de circuits connus sous l'abréviation anglo- saxonne PUF pour Physical unclonable function, fonctions qui sont notamment connues dans le domaine de la cryptographie. Les PUFs sont des fonctions matérielles possédant un mécanisme générant des couples uniques stimuli/réponses propre à chaque composant. Un PUF est une fonction physique qui, pour un stimulus donné, fournit une réponse pratiquement imprédictible mais caractéristique du support physique. Ces réponses peuvent être très légèrement différentes d'une mesure à l'autre et peuvent faire office de modalités pour authentifier des composants sur des circuits électroniques. Cette fonction physique est, par exemple, réalisée sur un circuit électronique qui envoie des challenges et reçoit les réponses, plus généralement, elle dépend d'une structure physique. La sortie du PUF correspond à une ou plusieurs de ces réponses. Ces challenges sont basés sur des éléments physiques aléatoires choisis de telle sorte qu'un PUF donnera des réponses similaires sur un même circuit et des réponses différentes sur deux circuits distincts. On utilise par exemple, le temps de parcours sur des chemins différents, l'initialisation des transistors, des propriétés optiques. Dans le domaine de la sécurité, la fiabilité des composants est 25 une exigence critique. Chaque composant, notamment cryptographique doit inclure un dispositif permettant de vérifier son bon fonctionnement tout au long du cycle de vie. Dans différentes applications utilisant les PUFs, il est important que les réponses du PUF face aux stimuli restent stables. Il n'est pas exclu 30 qu'en cas de dégradation du matériel, la réponse du PUF change de manière significative face à un stimulus donné. De ce fait, si la réponse change, le système à base de PUF n'est plus fonctionnel.
Un des problèmes posé dans l'utilisation actuelle de PUF est de vérifier régulièrement la capacité du PUF à donner des réponses stables. L'art antérieur connu du Demandeur ne propose pas de méthodes permettant de tester le bon fonctionnement d'un PUF, ou sa fiabilité dans ses résultats. Dans la demande de brevet WO 2001/089143 des PUFs sont utilisés pour extraire une clef cryptographique. Le document WO 2003/090259 divulgue une méthode d'authentification d'un composant en utilisant les PUFs. Il est mué sur le test 10 du fonctionnement du PUF lui-même. La demande de brevet WO 2011/118548 présente aussi une utilisation de PUFs pour tester l'intégrité d'un composant, mais pas le test de fiabilité pour le PUF lui-même. Le procédé selon l'invention repose notamment sur la vérification 15 du bon fonctionnement ou fiabilité d'un PUF avec une fonction de signature. Le procédé s'applique, par exemple, pour des PUFs à base de cellules mémoires. Il peut aussi être utilisé pour des PUFs dont le nombre de couples stimuli/réponse peut être traité dans un temps et une complexité raisonnables. 20 L'objet de l'invention concerne un procédé pour tester le fonctionnement d'un circuit de type PUF en utilisant un secure sketch caractérisé en ce qu'il comporte au moins : - Une première étape d'initialisation ou de génération d'une signature 25 d'un PUF comportant au moins les étapes suivantes 0 Stimuler le PUFà tester afin de générer au moins une réponse R1,.., RN du PUF et transmettre une réponse Ri , , RN à une fonction injective non inversible (6i) afin de produire une ou plusieurs signatures (h1,( R1), .., (RN )) du PUF, 30 o Transmettre la ou les réponses R1 , , RN du PUF à au moins et au plus N secure sketch, afin de générer s(Ri )...s(RN o Mémoriser la signature (hi,(Ri ), hh,(R, )) du PUF et les sketchs s(R, ), s(RN), - Une deuxième étape de vérification de la signature comportant au moins les étapes suivantes : o Stimuler le PUF de manière identique à la première étape d'initialisation et transmettre les réponses Ki ...KN obtenues à un secure sketch, o En utilisant les secure sketch de l'étape d'initialisation, combiner lesdites réponses Ki ...KN du PUF avec les sketchs s(Ri)...s(RN) obtenue lors de la première étape et transmettre le résultat des combinaisons à une ou plusieurs fonctions injectives non inversibles afin d'obtenir une signature correspondante ( h1 ( R'i), .. h1,1, ( R' N)) O Comparer la signature ( (R' ),( hhN mémorisée (h1,( Ri), hhN(RN)), et si les signatures sont semblables alors émettre un signal ou une information traduisant le bon fonctionnement du PUF ou sinon une défaillance du PUF. Selon un mode de réalisation, le procédé pour tester un PUF 20 utilisant un secure sketch de type code offset comporte au moins les étapes suivantes ; Une phase d'initialisation comprenant au moins les étapes suivantes: - Générer en interne au module Secure Sketch, un mot du code correcteur d'erreur MCi, 25 - Déterminer un nombre de stimuli adapté à extraire toutes les réponses du PUF ou d'une partie du PUF à tester, et soumettre le PUF ou la partie du PUF au ou (aux) stimuli, et transmettre E11 la réponse Ri du PUF à un stimulus, à un module Secure Sketch, R'N )) à la signature - Le Secure Sketch détermine, E12, un sketch SKETCH i en combinant une réponse R1 du PUF et un mot du code MCj et mémoriser E14,Ies sketchs obtenus, - Exécuter les trois étapes précédentes pour l'ensemble des stimuli, - Transmettre E13 toutes les réponses R, à une fonction de hachage afin de générer E15 une première signature SigR associée au PUF, Une phase de test du PUF comportant au moins les étapes suivantes : - Utiliser les mêmes stimuli et dans le même ordre que ceux utilisés à l'étape d'initialisation et déterminer E20 pour chacun des stimuli, une réponse R'j du PUF, - A partir des sketchs SKETCHj générés lors de la phase d'initialisation et des réponses R'j du PUF, le Secure Sketch détermine, E21, la réponse conciliée Rcori. - Transmettre, E22, chacune des réponses conciliées Rcori à la fonction de hachage utilisée lors de la phase d'initialisation, afin de générer une signature SigRcor. du PUF, - Comparer, E24, la signature SigR et la signature SigRcor et en cas d'égalité, générer un signal de bonne fiabilité du PUF ou de défaillance du PUF dans le cas contraire.
Le procédé selon l'invention est utilisé, par exemple, pour tester un PUF à cellules mémoires, il comporte par exemple les étapes suivantes: - On utilise un ou plusieurs Secure Sketch pour générer des sketchs associés aux réponses du PUF, - On utilise une ou plusieurs fonctions injectives non inversibles, par exemple une ou des fonctions de hachage, pour générer une signature du PUF à partir des réponses R. Le procédé utilise, par exemple comme fonction de hachage la fonction SHA 256. Pour générer les stimuli, le procédé utilise, par exemple, un 30 séquenceur.
D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture d'un exemple de réalisation donné à titre illustratif et nullement limitatif, annexé des figures qui représentent : - La figure 1, un exemple d'architecture d'un système selon l'invention permettant de réaliser la première étape du procédé selon l'invention, - La figure 2, un exemple pour un système permettant d'effectuer la deuxième étape, - Les figures 3 et 4 une application dans le cas d'un PUF à base de cellules mémoires.
Un des objectifs de la présente invention est de fournir un procédé permettant de tester la fiabilité de fonctionnement d'un PUF. Pour tester la fiabilité d'un PUF nous définissons la notion de signature d'un PUF.Cette signature permet de vérifier qu'il n'y a pas eut une 15 altération volontaire ou non du support physique (par exemple le composant). Pour définir cette signature nous utilisons une notion introduite en 2001 par le document intitulé « Fuzzy Extractors : How to generate strong keys from biometrics and other noisy data" publié dans les comptes-rendus 20 de la conférence Eurocrypt 2004, LCNS, vol. 3027, pp 523-540. Les auteurs définissent les « secure sketch ». Pour rendre les données stables malgré la présence de bruit, les auteurs de cet article proposent l'utilisation d'un extracteur flou composé de deux primitives. Un premier module, désigné par l'expression anglo-saxonne « secure sketch » permet la conciliation de 25 l'information, c'est-à-dire le rétablissement d'une valeur systématiquement identique en sortie pour une donnée d'entrée bruitée et un second module permet de rendre uniforme la sortie de l'extracteur flou par application d'une fonction d'extraction d'aléa sur ladite sortie préalablement stabilisée. Le module « secure sketch » va fonctionner en deux phases : l'enrôlement et la 30 correction. La phase d'enrôlement peut n'être exécutée qu'une seule fois ; elle produit, à partir d'une donnée de référence, notée w, issue d'une mesure d'une donnée confidentielle W fournie en entrée, une donnée publique, notée s et parfois qualifiée de « sketch ». Classiquement, la donnée de référence w peut être obtenue par une première mesure issue d'un traitement d'une donnée confidentielle W reçue par un capteur. Seule la donnée publique s est enregistrée, la donnée de référence w étant confidentielle. Par la suite, la phase de correction est exécutée à chaque fois que l'on souhaite retrouver la donnée issue d'un traitement de la donnée confidentielle W. A cette fin, une donnée bruitée w' provenant d'une mesure issue d'un traitement de la donnée confidentielle W - par exemple une seconde mesure d'une même empreinte digitale - est combinée à la donnée publique s. La donnée publique s joue un rôle de reconstruction de la donnée confidentielle de référence w à partir d'une donnée bruitée w'. Si la donnée bruitée est trop éloignée de la donnée de référence w, cette dernière ne peut être reconstruite. C'est le cas, par exemple, lorsque la donnée bruitée w' est obtenue par une mesure de traitement d'une donnée X différente de la donnée confidentielle. La reconstruction de la donnée de référence w implique l'utilisation d'un code correcteur d'erreur. Pour construire la signature d'un PUF le procédé utilise un Secure Sketch noté SS.
L'utilisation de secure sketches implique l'utilisation de codes correcteurs. Par exemple pour le secure sketch appelé code offset, dans la phase d'enrôlement, un code correcteur est sélectionné puis on choisit aléatoirement un mot c de ce code. Ce mot de code est ensuite combiné avec la donnée de référence w pour obtenir la donnée publique de sketch s.
Dans la phase de correction, cette donnée s est combinée à la mesure w' pour obtenir un mot c', qui n'appartient pas forcément au code, que l'on peut corriger à condition de w' soit assez proche de w. Pour retrouver la donnée de référence w le mot de code c est combiné avec s. La signature d'un PUF peut être également définit avec un Secure 30 Sketch généralisé (noté SSg tel que défini dans le brevet FR 0903699 du Demandeur) ou un Secure Sketch généralisé recentré (noté SSgr tel que défini dans le brevet FR 1005115 du demandeur).
Un PUF est une fonction dont les sorties (ou réponses) sont de taille fixes (tpuf) comme il est décrit dans le document intitulé « Security with noisy data, On private biometrics, Secure Key storage and anticounterfeiting » de P Tuyls, B. Skoric, T. Kevenaar Springer 2007.
Dans la suite de la description, N est défini comme un entier (N non nul) qui représente le nombre de couples stimuli/réponse considéré pour étudier la fiabilité du PUF. Selon un premier mode de réalisation, le procédé de test selon l'invention va considérer au moins 1 et au plus N Secure Sketch (SSi) pour i allant de 1 à N. Le procédé de l'invention peut également s'appliquer à des Secure Sketch généralisés (notés SSg tels que décrit dans le brevet du demandeur FR 0903699) ou des Secure Sketch généralisés recentrés, notés SSgr et tels que définis dans la demande de brevet PCT/EP2011/073873 du Demandeur.
Le déroulement d'un SS (SSg ou SSgr) se déroule en deux phases : Une première phase d'enrôlement (figure 1) qui est exécutée une seule fois au cours de laquelle il va y avoir génération de la signature du PUF et une phase de correction (figure 2) utilisée dans le fonctionnement normal du dispositif où le bon fonctionnement du PUF est vérifié.
La phase de génération de la signature ou empreinte du PUF comporte le déroulement de phases d'initialisation des SS (SSg ou SSgr). La phase de vérification de la signature comporte des phases de correction des SS (SSg ou SSgr). En considérant N couples Stimuli/ réponses, les réponses du PUF soumis à un stimuli sont notées R1, ; les notations suivantes sont utilisées : - Soit Enrol(SS)(R) (resp. Enrol(SSg)(R), Enrol(SSgr)(R)), la phase d'enrôlement du SS (resp. SSg, SSgr) pour la donnée R. Le résultat de cette phase d'enrôlement pour la donnée R est le sketch associé à R noté s(R), le sketch est une donnée publique. - Reconst(SS)(R',s(R)) (resp. Reconst(SSg)(R', s(R)),Reconst(SSgr) (R', s(R))) la phase de reconstruction du SS (resp. SSg, SSgr) pour la donnée R'avec le sketch s(R). Le résultat de cette phase de reconstruction pour la donnée R' est la donnée R utilisée lors du premier enrôlement. - Soit hi une fonction injective non inversible, par exemple une fonction de hachage ou HMAC, où i est un entier compris entre let N. La figure 1 schématise un exemple d'architecture pour un système permettant l'exécution de la première phase du procédé selon l'invention. Un séquenceur 10 a notamment pour fonction d'orchestrer les différentes étapes mises en oeuvre par l'invention, générer et transmettre les commandes. Un PUF 2 à tester comporte une entrée 2e recevant les commandes du séquenceur, et une ou plusieurs sorties 2s pour les réponses du PUF stimulé. Ces sorties 2s sont reliées aux entrées 1 e d'un ou plusieurs secure sketch 1i. Le PUF 2 est aussi relié à un ou plusieurs modules 61, .., 6N comportant chacun une fonction injective non inversible hi. Une sortie 6s de ces modules est reliée à une mémoire de stockage 7, par exemple volatile. Le secure sketch 1i possède une sortie 1s reliée à la mémoire 7. Le séquenceur 10 transmet la commande CmdFe PUF 2 afin de le stimuler, simultanément il génère une commande vers le secure sketch afin de déclencher la génération d'éléments secrets (phase d'enrôlement) et une commande CmdH afin d'activer la fonction injective non inversible, qui peut 25 être une fonction de hachage. Les étapes pour la première phase de génération de la ou des signatures du PUF à tester sont les suivantes : N enrôlements sont réalisés Enrol(SS,)(R,)... Enrol(S SN )(RN ) par le secure sketch 1. Les sketchs s(R,),., S(RN) obtenus sont mémorisés dans la 30 mémoire 7, non volatile par exemple.
Le PUF 2 étant soumis à un ou plusieurs stimuli, le procédé va récupérer les réponses du PUF R1, ... RN aux stimuli. Ces réponses sont transmises directement à un module 6i dans lequel une fonction injective non inversible est exécutée. Les données résultant de l'application d'une fonction de hachage hi,(Ri ), hhN(RN) correspondant à la signature du PUF sont mémorisées dans la mémoire 7. La fonction injective non inversible est par exemple une fonction de hachage de qualité cryptographique ou une fonction de type HMAC. La figure 2 schématise un exemple de réalisation d'un système 10 permettant d'exécuter la deuxième phase du procédé selon l'invention. Par rapport à la figure 1, un module 20 de comparaison de signatures a été ajouté. Les étapes mises en oeuvre au cours de cette deuxième phase sont, par exemple, décrites ci-après. 15 Le PUF 2 dont on souhaite vérifier le fonctionnement, est soumis à un ou plusieurs stimuli. De cette façon, le procédé va récupérer N réponses du PUF notées N Les sketchs s(Ri s(RN ) obtenus lors de la première phase sont publiques et disponibles dans la mémoire 7. 20 Le procédé va effectuer N phases de corrections des SS (resp. SSg, SSgr) à partir des données Ki ... N et des sketchs s(Ri ),...,s(RN ), l'opération s'effectue au sein du secure sketch. Ceci correspond à l'étape Reconst(SSi )(R'i ,s(Ri )), ,Reconst(( S SN)(R' N ,S(RN )), qui conduit à N réponses corrigées du PUF. 25 Les N réponses corrigées du PUF obtenus sont transmis à la fonction injective non inversible, qui peut être une fonction de hachage (module 6) ce qui génère une signature ( ( R'1),hhN( R N)). La signature ( ( R1), hhN( R' N )) est comparée à la signature mémorisée (h1,( R1), hhN (RN )). En cas d'égalité des signatures alors la signature est valide et le Puf est alors déclaré fiable. Ceci se traduit par exemple, par un signal issu du comparateur 20. Si la signature est déterminée dans le cadre d'un autotest alors celui-ci a réussi.
Les figures 3 et 4 illustrent la mise en oeuvre du procédé selon l'invention avec un Secure Sketch appelé code-offset connu de l'Homme du métier et avec une fonction de hachage. Cette solution permet, notamment, l'utilisation du SS ( SSg ou SSgr) sans interface particulière pour la génération de la signature du PUF. Pour cet exemple de mise en oeuvre, les définitions suivantes sont utilisées PAj : mot binaire pseudo-aléatoire généré par un générateur de nombre pseudo-aléatoire ou PRNG pour Pseudo Random Number Generator, MCj : Mot du code généré par le bloc code correcteur d'erreur ECC (Error Correcting Code) à partir de PAj, Ri : réponse du PUF lors de la phase d'initialisation, R'i : réponse du PUF lors de la phase de test, SKETCHj sketch. Chaque bit de sketch est généré par exemple par un bit de réponse Ri du PUF et un bit de mot du code MCj, SigR signature finale de toutes les réponses du PUF Ri mesurées en phase d'initialisation, R_BOUR Bit de bourrage, Rcori réponse du PUF corrigée ou conciliée par le Secure Sketch lors de la phase de test à partir des SKETCHj générés en phase d'initialisation et d'une mesure du PUF R'; SigRcor Signature finale des Rcori régénéré par le Secure Sketch à partir des sketchs SKETCHj et de la réponse R'i du PUF, n est la longueur en nombre de bit de chaque réponse Ri du PUF généré à partir d'un stimuli. Cette longueur est définie par le choix du PUF, p est la longueur en nombre de bit de chaque mot PAj en entrée du bloc ECC. Cette longueur est définie par le choix du bloc code correcteur d'erreur ECC, m est la longueur en nombre de bit de chaque mot du code MCj du bloc ECC. Cette longueur est définie par le choix du bloc code correcteur d'erreur ECC, ntot est le nombre de bits total de réponses du PUF à base de cellules mémoires, Nd est la longueur en nombre de bit de chaque réponse Rj' et de chaque 10 Sketch SKETCHj nécessaire à générer Rcori en phase de test. Une signature d'un PUF est la sortie finale d'une fonction ou plusieurs fonctions injectives non inversibles ( par exemple une fonction de hachage) lorsque toutes les réponses sollicitées du PUF après stimuli ont 15 été traitées. La signature correspond à une empreinte des réponses du PUF mesurées lors de la phase d'initialisation. Une fonction de calcul de signature permet de calculer une empreinte à partir d'une donnée fournie en entrée. Cette empreinte sert généralement à identifier rapidement la donnée initiale. Cette empreinte 20 permet également de détecter la présence d'erreur dans la donnée initiale. Les algorithmes de calcul sont injectifs. Les données d'entrée ne peuvent être retrouvées à partir des empreintes calculées. La figure 3 schématise un exemple d'étapes mises en oeuvre par 25 le procédé selon l'invention pour l'initialisation permettant de générer une signature de référence. Le procédé est piloté par exemple par un séquenceur 10 qui va orchestrer les différentes étapes. Un Secure Sketch 1 génère E00 en interne un mot binaire pseudo aléatoire PAi d'une longueur de p bits, puis code E01 le mot binaire PAi afin 30 d'obtenir un mot du code MCi d'une longueur de m bits. Le Secure Sketch comporte notamment un bloc code correcteur d'erreur, 34, ECC, un module générateur de nombre pseudo-aléatoire 33 PRNG adapté à générer de manière pseudo-aléatoire des mots binaires pseudo-aléatoire qui sont transformés en mot du code par le bloc ECC, un module combinatoire 35 des différents éléments. Le séquenceur 10 génère, E10, un stimulus Si afin d'obtenir une 5 réponse Ri du PUF 2 dont on souhaite tester le fonctionnement. La réponse Ri du PUF, d'une longueur de n bits par exemple, est transmise, E11, au Secure Sketch 1. A partir de la réponse Ri du PUF et du mot du code MCj, le Secure Sketch 1 génère, E12, un sketch SKETCHj. Dans cet exemple, chaque bit du sketch SKETCHj est obtenu à partir d'un bit du mot de code 10 MCj et d'un bit de la réponse Ri. Les bits de sketch SKETCHj sont mémorisés, E14, par exemple dans une mémoire non volatile 7. Les réponses Ri sont envoyées à une fonction 6 de hachage et de signature. À chaque fois que tous les bits de la réponse Ri ont été utilisés, le séquenceur 10 envoie un nouveau stimulus Si+1 vers le PUF afin d'obtenir 15 une nouvelle réponse Ri+1 du PUF et transmettre cette réponse au Secure Sketch. A chaque fois que tous les bits du paquet MCj sont utilisés, Ri est envoyée à la fonction de hachage, module 6. Le Secure Sketch 1 génère ensuite, E00, un nouveau mot du code MCi.i afin de pouvoir continuer le traitement des réponses fournies par le 20 PUF suite au nouveau stimulus. Le nombre de stimuli utilisé est un paramètre du système. Il est ainsi possible de tester de manière exhaustive toutes les réponses du PUFs dans le cas d'un PUF à cellules mémoires. Selon un mode de réalisation, l'utilisateur peut choisir une zone ou partie du PUF à tester. Par exemple, il 25 sera possible de ne tester que la moitié d'un PUF et ainsi de ne sortir que les réponses correspondant à la moitié du PUF testée. Le nombre de réponses du PUF est choisi en fonction du contexte d'utilisation du procédé, et de manière à obtenir toutes les réponses d'une partie du PUF Le procédé dispose à la fin des étapes d'itérations, de L réponses 30 RL du PUF et de L sketchs. Une fois que les RL réponses du PUF ont été extraites et combinées avec les bits MCi, E13, le procédé va tester : 1. S'il ne reste aucun bit du mot du code MCj courant non combiné avec un bit d'une réponse du PUF, alors le procédé va continuer à exécuter l'étape suivante du procédé, la fonction de hachage, Ela, 2. S'il reste un ou plusieurs bits du mot du code MCj courant non combiné avec un bit d'une réponse du PUF, alors le procédé va générer, E14, des bits de bourrage constants R_BOUR, les combiner avec les bits du mot du code non combinés et transmettre le mot du code MCj à l'étape suivante E14. Le séquenceur 10, demande à la fonction de hachage de générer, E15, la signature finale SigR calculée à partir de toutes les réponses du PUF R1, RL générés précédemment. La signature SigR est stockée, E16, dans la mémoire volatile. La fonction de hachage utilisée est, par exemple, la fonction connue sous l'abréviation SHA 256. Un exemple d'algorithmes permettant le calcul de signature sont les fonctions de hachage tel SHA-1, SHA-2 ou encore MD5. Il peut être également envisageable d'utiliser un algorithme de type CRC. En fonctionnement normal du procédé selon l'invention, la phase d'initialisation est exécutée une seule fois.
En sortie de la phase d'initialisation le procédé dispose donc : - de L sketchs SKETCH mémorisés générés à partir de la réponse brute du PUF et du mot du code généré en interne du Secure Sketch, - d'une signature SigR générée à partir de toutes les réponses du PUF extraites lors de la phase d'initialisation, Les sketchs et la signature de référence seront utilisés lors de la phase de contrôle du bon fonctionnement du PUF. Ils vont notamment permettre au Secure Sketch de retrouver la réponse du PUF même si elle a été altérée et qu'elle comporte des erreurs, comme il sera décrit ci-après. La deuxième phase du procédé schématisée à la figure 4 a notamment pour objectif de tester le fonctionnement d'un PUF, sa fiabilité dans les valeurs qu'ils génèrent. Pour cela, le procédé selon l'invention va utiliser le même générateur de stimuli pour transmettre dans le même ordre le même nombre de stimuli au PUF testé qui est le PUF utilisé dans la phase d'initialisation. En plus des éléments décrits à la figure 3, le système pour la deuxième phase comprend un comparateur 20 adapté à comparer les signatures du PUF et un module 38 adapté à combiner un sketch à un mot du code. Le module «38 peut être le même que le module 35 adapté à combiner un sketch avec une réponse du PUF. Le procédé grâce au séquenceur va générer E00 comme dans la phase d'initialisation, plusieurs stimuli Si afin d'obtenir, E20, les réponses R'i 10 du PUF, une réponse, dans cet exemple a une longueur de n bits. Les réponses Ri' du PUF ainsi obtenues et les sketchs SKETCHj calculés et mémorisés en phase d'initialisation sont envoyés, E21, au Secure Sketch 1 afin de régénérer les mots du code MC'j. La séquence de la régénération des mots du code MC'j à partir des sketchs SKETCHj calculés 15 lors de la phase d'initialisation et des réponses R'i dépendent notamment du Secure Sketch utilisé. En interne du bloc Secure Sketch, à partir des mots du code MC'j, et du sketchj, le bloc Secure Sketch régénère les réponses du PUF corrigées ou conciliées Rcori. Le procédé transmet, E22, chaque réponse corrigée ou 20 conciliée Rcorià la fonction de hachage 6. Si tous les bits de sketch générés préalablement à la phase d'initialisation ont été utilisés pour générer les MC'i, puis les réponses corrigées Rcori, le séquenceur 10 demande, E23, à la fonction de hachage 6 de sortir la signature finale SigRcor calculée à partir de toutes les réponses 25 du PUF corrigées Rcori. Dans le cas où des bits de bourrage ont été générés lors de la phase d'initialisation, alors le procédé utilise les mêmes bits de bourrage pour déterminer les mots du code correcteur d'erreur MC'i. Pour déterminer la présence ou non d'erreurs dans le 30 fonctionnement du PUF, le procédé va comparer, E24, grâce à un module de comparaison 20 la valeur de la signature de référence SigR stockée dans la mémoire 7 et la valeur de la signature SigRcor trouvée. Si les signatures diffèrent c'est la preuve que les réponses Ri du PUF mesurées lors de la phase d'initialisation et les réponses du PUF corrigées Rcori déterminé lors de la phase de test ne sont pas identiques et donc qu'il y a une dégradation dans le fonctionnement du PUF.
Le PUF est déclaré intègre et fiable si les deux signatures SigR et SigRcor sont strictement équivalentes, ou identiques. Dans le cas où la signature SigRcor du PUF et la signature de référence SigR sont différentes, alors le procédé va décréter que le fonctionnement du PUF est défaillant. Le procédé génère un signal de 10 présence d'erreurs ou de fonctionnement correct du PUF. Si le PUF est détérioré, la signature finale SigRcor sera différente de SigR. Le procédé repère donc une détérioration du PUF Les étapes décrites ci-dessus peuvent aussi, sans sortir du cadre 15 de l'invention, être utilisées dans le cas de test de PUF autre qu'un PUF à base de cellules mémoires. Le procédé selon l'invention offre un procédé simple à mettre en oeuvre qui permet de vérifier, sur demande, le fonctionnement correct d'un 20 PUF et de pouvoir détecter toute violation externe d'un PUF. Un autre avantage du procédé selon l'invention est de permettre, avec peu de surcoût en termes de cellules logiques, le test de fiabilité d'un PUF sans compromettre les couples stimuli/réponses du PUF qui sont des éléments sensibles d'un point de vue cryptographique. 25 Dans le cas de l'utilisation d'un PUF pour générer une clé cryptographiques, ceci permet d'assurer la stabilité dans la clé cryptographique obtenue. Dans le cas d'une autre utilisation d'un PUF, le procédé en contrôlant le bon fonctionnement de ce dernier assure la sécurité des 30 résultats dans l'utilisation.
La signature SigR est issue d'une fonction de hachage strictement injective. Les données R1 sensibles, puisque participant en général à la génération de clefs cryptographiques, ne sont pas compromises lors du test.

Claims (5)

  1. REVENDICATIONS1 - Procédé pour tester le fonctionnement d'un circuit de type PUF (2) en utilisant un secure sketch (1) caractérisé en ce qu'il comporte au moins : - Une première étape d'initilialisation d'un PUF comportant au moins les étapes suivantes o Stimuler le PUF(2) à tester afin de générer au moins une réponse R1 , , RN du PUF et transmettre une réponse R1,.., RN à au moins une et au plus N fonctions injectives non inversibles (6i) afin de produire une ou plusieurs signatures (hi, (Ri ), hhN (RN )) du PUF, o Transmettre la ou les réponses R1 , , RN du PUF à au moins un et au plus NSecure Sketchs afin de générer s(Ri)...s(RN), O Mémoriser la signature du PUF hhN(RN)) et les sketchs s(Ri), s(RN), - Une deuxième étape de vérification de la signature comportant au moins les étapes suivantes : o Stimuler le PUF (2) de manière identique à la première étape d'initialisation et transmettre les réponses K K N obtenues à un secure sketch (1), O En utilisant les Secure Sketch de la première étape d'initialisation, combiner lesdites réponses K K N du PUF avec les sketchs s(Ri)...s(RN) obtenus lors de la première phase et transmettre le résultat des combinaisons aux fonctions injectives non inversibles utilisées en phase d'initialisation afin d'obtenir une signature correspondante ( h1 ( R'1), ..hhN( R' N)) ,o Comparer la signature hhN( R'N)) à la signature mémorisée (1/1,(R1 ), hhN(RN)), et si les signatures sont semblables alors émettre un signal ou une information traduisant la fiabilité du PUF ou sinon émettre un signal traduisant la défaillance du PUF.
  2. 2 - Procédé pour tester le fonctionnement d'un circuit de type PUF utilisant un Secure Sketch de type code offset caractérisé en ce qu'il comporte: Une phase d'initialisation comprenant au moins les étapes suivantes: - Générer, E00, en interne au module Secure Sketch un mot du code correcteur d'erreur MCj, - Déterminer un nombre de stimuli adapté à extraire toutes les réponses du PUF ou d'une partie du PUF à tester, soumettre le PUF (2) ou la partie du PUF, E10, aux stimuli et transmettre E11 la réponse Ri du PUF à un stimulus, à un module Secure Sketch, - Déterminer, E12, un sketch SKETCHj en combinant une réponse Ri et un mot du code MCj et mémoriser, E14, lesdits sketchs obtenus, - Exécuter les trois étapes précédentes pour l'ensemble des stimuli, - Transmettre E13 toutes les réponses du PUF R1 à une fonction de hachage afin de générer E15 une première signature SigR associée au PUF, Une phase de test du PUF comportant au moins les étapes suivantes : - Utiliser les mêmes stimuli et dans le même ordre que ceux utilisés à l'étape d'initialisation et déterminer E20 pour chacun des stimuli, une réponse R'j du PUF, - A partir des sketchs SKETCHj générés lors de la phase d'initialisation et des réponses R'j du PUF, déterminer, E21, les réponses du PUF conciliées Rcori, - Transmettre, E22, chacune des réponses conciliées par le Secure Sketch Rcori à la même fonction de hachage utilisée en phase d'initialisation afin de générer une signature SigRcor,- Comparer, E24, la signature SigR et la signature SigRcor. Dans le cas où les deux signatures sont égales, le procédé génère un signal de bonne fiabilité du PUF et de défaillance dans le cas contraire.
  3. 3 - Procédé selon la revendication 1 caractérisé en ce que le PUF testé est un PUF à cellules mémoires et en ce que : - on utilise un mot du code MCj d'une longueur de m bits, la réponse Ri du PUF a une longueur de n bits, - on génère un bit de sketch SKETCHj à partir d'un bit du mot de code MCj et d'un bit de la réponse Ri, s'il reste un ou plusieurs bits du mot du code MCj non combiné avec un bit de réponse du PUF, alors on génère des bits de bourrage R_BOUR et on combine un bit du mot de code non combiné avec un bit de bourrage.
  4. 4 - Procédé selon l'une des revendications 1 à 2 caractérisé en ce que la fonction de hachage est la fonction SHA 256.
  5. 5 - Procédé selon la revendication 1 caractérisé en ce que l'on utilise un séquenceur (10) pour générer les stimuli.20
FR1201761A 2012-06-21 2012-06-21 Procede pour tester le foncitonnement de pufs a partir de secure sketch Active FR2992451B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1201761A FR2992451B1 (fr) 2012-06-21 2012-06-21 Procede pour tester le foncitonnement de pufs a partir de secure sketch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1201761A FR2992451B1 (fr) 2012-06-21 2012-06-21 Procede pour tester le foncitonnement de pufs a partir de secure sketch

Publications (2)

Publication Number Publication Date
FR2992451A1 true FR2992451A1 (fr) 2013-12-27
FR2992451B1 FR2992451B1 (fr) 2015-12-25

Family

ID=47291046

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1201761A Active FR2992451B1 (fr) 2012-06-21 2012-06-21 Procede pour tester le foncitonnement de pufs a partir de secure sketch

Country Status (1)

Country Link
FR (1) FR2992451B1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009024913A2 (fr) * 2007-08-22 2009-02-26 Intrinsic Id Bv Identification de dispositifs utilisant des fonctions non clonables physiquement
EP2282441A1 (fr) * 2009-07-28 2011-02-09 Thales Procédé sécurisé de reconstruction d'une mesure de référence d'une donnée confidentielle à partir d'une mesure bruitée de cette donnée, notamment pour la génération de clés cryptographiques
US20110055649A1 (en) * 2009-08-25 2011-03-03 Farinaz Koushanfar Testing security of mapping functions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009024913A2 (fr) * 2007-08-22 2009-02-26 Intrinsic Id Bv Identification de dispositifs utilisant des fonctions non clonables physiquement
EP2282441A1 (fr) * 2009-07-28 2011-02-09 Thales Procédé sécurisé de reconstruction d'une mesure de référence d'une donnée confidentielle à partir d'une mesure bruitée de cette donnée, notamment pour la génération de clés cryptographiques
US20110055649A1 (en) * 2009-08-25 2011-03-03 Farinaz Koushanfar Testing security of mapping functions

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AMITABH DAS ET AL: "PUF-based secure test wrapper design for cryptographic SoC testing", DESIGN, AUTOMATION&TEST IN EUROPE CONFERENCE&EXHIBITION (DATE), 2012, IEEE, 12 March 2012 (2012-03-12), pages 866 - 869, XP032154085, ISBN: 978-1-4577-2145-8 *
STELVIO CIMATO ET AL: "Privacy-Aware Biometrics: Design and Implementation of a Multimodal Verification System", COMPUTER SECURITY APPLICATIONS CONFERENCE, 2008. ACSAC 2008. ANNUAL, IEEE, PISCATAWAY, NJ, USA, 8 December 2008 (2008-12-08), pages 130 - 139, XP031376769, ISBN: 978-0-7695-3447-3 *

Also Published As

Publication number Publication date
FR2992451B1 (fr) 2015-12-25

Similar Documents

Publication Publication Date Title
EP2526433B1 (fr) Circuit integre en silicium comportant une fonction physiquement non copiable, procede et systeme de test d'un tel circuit
EP1800433A1 (fr) Correction d'erreurs bidirectionnelle pour jetons physiques
EP2291744A2 (fr) Procede et systeme de validation d'une succession d'evenements vecus par un dispositif
FR2948793A1 (fr) Procede securise de reconstruction d'une mesure de reference d'une donnee confidentielle a partir d'une mesure bruitee de cette donne, notamment pour la generation de cles cryptographiques
EP3270538A1 (fr) Procédé et système d'authentification par circuits confus
EP2816757B1 (fr) Procédé et dispositif cryptographique unique à fonction physiquement induplicable
EP2951944A1 (fr) Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming
FR3038416A1 (fr)
FR3033965A1 (fr)
EP3200387B1 (fr) Procédé de calcul sécurisé multipartite protégé contre une partie malveillante
EP1120662B1 (fr) Procédé pour tester un circuit intégré comportant des parties matérielles et/ou logicielles ayant un caractère de confidentialité
EP3419246B1 (fr) Procédé d'authentification par défi-réponse d'un élément sécurisé (se) auprès d'un microcontrôleur
EP2336931B1 (fr) Procédé de vérification de signature
FR2992451A1 (fr) Procede pour tester le foncitonnement de pufs a partir de secure sketch
EP2677684A1 (fr) Procédé pour tester le fonctionnement de pufs
EP2656534B1 (fr) Procédé d'authentification multimodale et génération de clé cryptographique utilisant les secure sketches généralises
CA2613884A1 (fr) Procede pour disposer d'un lien de communication securise entre un utilisateur et une entite
EP4113898A1 (fr) Procédé et système d authentification par un équipement vérificateur d'un dispositif à authentifier équipé d'un circuit puf
WO2012085047A1 (fr) Procede d'authentification multimodale a seuil et generation de cle unimodale
FR3116626A1 (fr) procédé et dispositif de génération d'informations d'authentification associées à un individu et procédé dispositif de contrôle d'identité associés
FR3116627A1 (fr) procédé et dispositif de génération de données associées à un signal numérique
FR2913551A1 (fr) Methode d'authentification mutuelle et recurrente sur internet.
WO2023187168A1 (fr) Procede de generation et de certification simultanee de nombres sur puce photonique
EP3614617A1 (fr) Procédé et dispositif de génération de paramètre(s) d'un protocole cryptographique asymétrique à partir d'une blockchain, procédé et appareil de cryptage ou de décryptage et programme d'ordinateur associés
FR3080927A1 (fr) Authentification d'un circuit electronique

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12