FR2857535A1 - Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre. - Google Patents

Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre. Download PDF

Info

Publication number
FR2857535A1
FR2857535A1 FR0308405A FR0308405A FR2857535A1 FR 2857535 A1 FR2857535 A1 FR 2857535A1 FR 0308405 A FR0308405 A FR 0308405A FR 0308405 A FR0308405 A FR 0308405A FR 2857535 A1 FR2857535 A1 FR 2857535A1
Authority
FR
France
Prior art keywords
unit
scrambling
descrambling
data
input
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.)
Withdrawn
Application number
FR0308405A
Other languages
English (en)
Inventor
Alain Vergnes
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.)
Atmel Corp
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Priority to FR0308405A priority Critical patent/FR2857535A1/fr
Priority to US10/861,683 priority patent/US20050033961A1/en
Priority to PCT/US2004/022146 priority patent/WO2005008729A2/fr
Priority to EP04777926A priority patent/EP1652217A4/fr
Priority to CNB2004800240438A priority patent/CN100561443C/zh
Priority to TW093120553A priority patent/TW200514401A/zh
Publication of FR2857535A1 publication Critical patent/FR2857535A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)

Abstract

La présente invention fournit un système brouillant les données d'une cellule séquentielle. La cellule séquentielle est prévue capable de recevoir les données d'un bus de données (116). Une unité de brouillage (300) est couplée à la cellule séquentielle et au bus de données (116). L'unité de brouillage (300) est prévue capable de recevoir une entrée d'unité de brouillage du bus de données (116) et de produire une sortie d'unité de brouillage différente de l'entrée d'unité de brouillage. La sortie d'unité de brouillage est transmise à la cellule séquentielle. Une unité de désembrouillage (310) est couplée à la cellule séquentielle, prévue capable de recevoir une entrée d'unité de désembrouillage de la cellule séquentielle et de produire une sortie d'unité de désembrouillage différente de l'entrée d'unité de désembrouillage. La sortie d'unité de désembrouillage est identique à l'entrée d'unité de brouillage.

Description

Procédé et système pour brouiller le contenu d'une cellule dans un circuit
intégré
La présente invention concerne d'une manière générale le contenu des cellules logiques séquentielles et plus spécifiquement la protection du contenu des registres dans des microcontrôleurs.
Les circuits intégrés (IC) sont habituellement testés contre des anomalies résultant de la fabrication. L'un des tests utilisés est un test de balayage. Par ailleurs, l'un des problèmes des circuits intégrés (IC) réside dans la protection du contenu sensible des registres. Ces derniers peuvent être constitués de cellules logiques séquentielles et chacune d'elles peut être balayée. Les procédés de balayage sont très performants mais ils four- Hissent également un moyen simple de voir les valeurs logiques de nombreux réseaux ou registres du circuit intégré (IC). Après une période de fonctionnement du circuit, il est en effet possible, en utilisant le test de balayage, de récupérer le contenu de chaque registre. Ceci constitue un problème lorsque certains registres contiennent des informations sensibles comme des clés d'algorithme de cryptage ou des paramètres de filtres numériques spéciaux (ou toute autre valeur à protéger).
Dans certaines applications, par exemple des microcontrôleurs sécurisés ou des cartes à puce, les tests de balayage ne sont pas utilisables ou alors, ils utilisent des procédés de balayage combinés à des générateurs de vecteurs de test intégrés et à des modules analyseurs de signature qui font que rien ne peut être récupéré au ni-veau des broches des circuits intégrés. Dans ce cas, on peut déceler des anomalies même si les entrées et les sorties de chaîne de balayage n'apparaissent pas sur la broche de niveau supérieur du circuit.
Pour des modules de mémoire sur-puce et hors-puce, comme une mémoire vive statique (SRAM) ou une mémoire Flash, les données pourraient être brouillées, en utilisant des algorithmes de cryptage, lors de l'écriture et décryptées lors de la lecture. Les procédés pour protéger le contenu d'une telle mémoire sont typiquement réservés aux modules de mémoire: ils sont en effet trop complexes en termes de nombre de portes pour être appliqués à des éléments séquentiels de types cellule pré caractérisés (typique-ment des registres de configuration de périphériques ou des variables état/résultat/paramètre de filtre numéri- que). De plus, le contenu des modules mémoires ne peut être récupéré par des tests de balayage, à l'inverse des cellules séquentielles de type pré caractérisé.
La figure 1 est un schéma qui illustre un microcontrôleur simplifié et un système de chaîne de balayage selon une technique antérieure. Le microcontrôleur 100 inclut un microprocesseur 102 couplé à une mémoire 104. Un décodeur d'adresses 106 reçoit et décode des adresses provenant du microprocesseur 102 pour la mémoire 104 et des périphéri- ques 108. Le décodeur d'adresses 106 et les périphériques 108 reçoivent les adresses sur un bus d'adresses 110 tan-dis que le décodeur d'adresses 106 transmet des informations de sélection concernant la sélection d'une mémoire 112 et la sélection de périphériques 114. Les données sont transmises entre le microprocesseur 102, la mémoire 104, et les périphériques 108 sur un bus de données 116. Un signal de lecture ou d'écriture est transmis entre le microprocesseur 102, la mémoire 104 et les périphériques 108 dans un signal de lecture/écriture 117. Le micro- contrôleur 100 reçoit un signal d'horloge 118 et un si- gnal de réinitialisation 120. A titre d'exemple, l'entrée 122 inclut des déclenchements d'un rythmeur et des don-nées d'entrée d'un récepteur/émetteur universel asynchrone (UART) et la sortie 124, des données de sortie d'émetteur UART.
Les périphériques 108 peuvent être des logiques fonctionnelles, par exemple un UART, un crypto-traitement, un traitement de signal numérique (DSP), et un filtrage nu- mérique.
Le système de chaîne de balayage 126 se connecte au microcontrôleur 100. Les lignes en pointillés sont utilisées sur les figures pour illustrer le chemin des signaux liés au système de chaîne de balayage 126, alors que les lignes continues représentent celui des signaux suivant un circuit non lié à la chaîne de balayage. Le micro-contrôleur 100 reçoit un signal de commande de chaîne de balayage sur une commande de chaîne de balayage 128 et des données sur une entrée de chaîne de balayage 130. Le microcontrôleur 100 transmet des données au système de chaîne de balayage 126 sur une sortie de chaîne de balayage 132. Dans le microcontrôleur 100, le microprocesseur 102 transmet les informations de commande et de données par la chaîne de balayage 134 aux périphériques 108. La sortie correspondant à l'entrée de la chaîne de balayage détermine si les périphériques 108 présentent des anomalies de fabrication.
La figure 2 est un schéma qui illustre plus en détail, un exemple de périphérique 108 de la figure 1, selon la technique antérieure. Sur la figure 2, le périphérique 108 comprend un sous-décodeur d'adresses 200, un registre de configuration 202, et une logique de traitement 204.
Les entrées du périphérique 108 comprennent une sélection de périphérique 114, un signal de lecture/écriture 117, un bus d'adresses 110, une horloge 118 et un bus de don-nées 116. La commande de chaîne de balayage 128 et l'entrée de chaîne de balayage 130 sont transmises au péri- phérique 108 le long d'une chaîne de balayage 134 (non-représentée sur la figure 2, voir figure 1).
Pendant le fonctionnement normal, le sous-décodeur d'adresses 200 reçoit des signaux provenant du micropro- cesseur 102 et du décodeur d'adresses 106. Le sous-décodeur d'adresses 200 transmet un signal d'activation d'écriture le long d'une ligne d'activation d'écriture 206 à des multiplexeurs sélectionnés 208. Lorsqu'un multiplexeur reçoit un signal d'activation d'écriture, il choisit entre une entrée disponible via le bus de données 116 et une cellule séquentielle, par exemple, une bascule de type D de balayage (SDFF) 210. Les multiplexeurs 208 transmettent l'entrée reçue à leurs bascules SDFF respectives 210. Les bascules SDFF 210 transmettent à la logi- que de traitement 204 lorsqu'elles reçoivent des signaux d'horloge provenant de l'horloge 118.
Une bascule de type D de balayage est une bascule de type D standard dont l'entrée D est commandée par la sortie d'un multiplexeur deux-à-un (nonreprésenté). Le multiplexeur possède des entrées SD et D ainsi qu'une broche de sélection SC (le multiplexeur deux-à-un est ici représenté comme une partie d'une bascule de type D de balayage 210 avec des entrées SC, SD et D). L'entrée SD est commandée soit par une entrée de chaîne de balayage 130 soit par la sortie provenant d'une bascule de balayage de type D précédente. Par exemple, la bascule SDFF 210-1 reçoit des données à l'entrée SD qui proviennent de l'entrée de chaîne de balayage 130, alors que la bascule SDFF 210-2 reçoit des données à l'entrée SD qui proviennent de la sortie de la bascule SDFF 210-1. Les deux bascules SDFF 210-1 et 210-2 reçoivent des signaux de commande de chaîne de balayage (signaux de sélection) à l'entrée SC issus de la commande de chaîne de balayage 130.
Le microcontrôleur 100 peut être commandé normalement, il mémorise alors des valeurs dans les périphériques 108, puis commuté en mode balayage, le contenu des registres dans les périphériques 108 pouvant alors être lu et ana- lysé. En mode balayage, la bascule SDFF 210-2 va transmettre sa valeur via une sortie de registre de balayage 210 à la logique de traitement 204. La logique de traite-ment 204 transfère des données issues de la sortie de registre de balayage 214 directement vers la sortie de chaîne de balayage 132 sans en modifier la valeur. Les signaux de commande transfèrent les données de la bascule SDFF 210-1 à la bascule SDFF 210-2 puis, vers l'extérieur, à la sortie de chaîne de balayage 132. De cette manière, les données sensibles contenues dans les regis- tres ou les bascules SDFF, peuvent être lues par ce pro-cédé de balayage.
Un système et un procédé sont nécessaires pour protéger les cellules séquentielles, ou le contenu du registre, dans des systèmes utilisant le procédé de chaîne de balayage. Le système doit protéger les données confidentielles chargées dans les registres tout en permettant le test de chaîne de balayage.
Le système et le procédé décrits ici offrent un moyen de brouiller la valeur du registre sans affecter la fonctionnalité de la logique associée. Un réseau combinatoire de cellules logiques est placé avant le registre qui agit comme une fonction de brouillage. Celle-ci n'est spéci- fiée dans aucune fiche technique à l'usage de r 2857535 l'utilisateur puisque aucune fonctionnalité pour l'utilisateur n'y est associée. La fonction combinatoire inverse est placée après le registre. Par conséquent, même si l'emplacement du registre est connu grâce à la chaîne de registre de balayage et son contenu après une période de fonctionnement normal récupéré, il est plus difficile de discerner la signification fonctionnelle de la valeur dans l'application courante.
La présente invention réduit la possibilité de récupérer le contenu d'une quelconque cellule séquentielle (registre) par le procédé de test le plus connu (balayage) sans pour autant compromettre son résultat.
D'autres caractéristiques et avantages de l'invention apparaîtrons à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels: - la figure 1 est un schéma illustrant un mi- crocontrôleur simplifié selon la technique antérieure, - la figure 2 est un schéma illustrant plus en détail un exemple de périphérique de la figure 1 selon la technique antérieure, - la figure 3 est un schéma illustrant la pré-sente invention réalisée à l'aide d'un périphérique de la figure 1, la figure 4 est un schéma illustrant un mode de réalisation de la présente invention qui utilise une fonction de brouillage prédéterminée, - la figure 5 est un schéma illustrant un mode de réalisation de la présente invention qui utilise une fonction de brouillage aléatoire, - la figure 6 est un schéma illustrant un mode de réalisation de la présente invention qui utilise une fonction de brouillage aléatoire, et - la figure 7 est un ordinogramme illustrant un procédé d'implémentation de la présente invention.
Les dessins annexés comportent, pour l'essentiel, des éléments de caractère certain. Ils pourront non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant.
La présente invention peut utiliser des réseaux combinatoires pour brouiller les cellules de mémoire. Elle rend alors ce procédé plus adapté aux bascules DFF pré carac- térisées, ou SDFF, (par exemple les bascules DFF à l'intérieur d'un registre) et sécurise davantage le contenu sensible du registre. De plus, dans le cas d'un réseau combinatoire, la présente invention permet le brouillage et le désembrouillage du contenu d'un registre dans un seul cycle d'horloge. A titre de variante, un algorithme séquentiel, situé avant et après le registre visé, peut remplacer les réseaux combinatoires, bien que l'algorithme séquentiel puisse nécessiter plus d'un cycle d'horloge pour brouiller et désembrouiller le contenu du registre.
On peut protéger le contenu d'un registre en n'insérant pas les bascules DFF dans la chaîne de balayage de manière à ne pas les tester. La présente invention permet de faire se dérouler le test suivant le plan prévu (ba- z 2857535 layage complet) avec un test de balayage et ce, sans perte de confidentialité. La présente invention peut être utilisée avec des éléments séquentiels fonctionnant comme un registre de configuration afin de protéger leur conte- nu et d'éviter qu'il ne soit facilement récupéré.
Le système de chaîne de balayage permet une lecture du contenu des registres alors même que les registres peu-vent contenir des données sensibles ou confidentielles.
La présente invention brouille les données dans le registre de telle sorte qu'il est difficile de faire coïncider la valeur récupérée avec la valeur fonctionnelle de l'application. Seules quelques personnes connaîtront le pro-cédé de brouillage, par exemple, l'architecte et le concepteur du circuit. Dès lors, si un brouillage aléatoire ou pseudo- aléatoire est utilisé, personne ne connaîtra le contenu exact des registres d'un point de vue fonctionnel.
La figure 3 est un schéma qui illustre un mode de réalisation de la présente invention implémenté avec un registre de configuration dans un périphérique de la figure 1. Sur la figure 3, un sous-décodeur d'adresses 200 reçoit une sélection de périphérique 114, un signal de lecture/écriture 117, et un bus d'adresses 110. Le sous-décodeur d'adresses est connecté à un registre de configuration 202 par une ligne d'activation d'écriture 206. Le registre de configuration 202 est connecté à la logique de traitement par l'intermédiaire d'une unité de désembrouillage 310.
L'unité de brouillage 300 est couplée au bus de données 116 et au registre de configuration 202. L'unité de brouillage 300 est prévue capable de, ou configurée pour , recevoir des données provenant du bus de données 116 comme entrée d'unité de brouillage. L'unité de brouillage 300 brouille l'entrée selon un procédé qui peut être prédéterminé, aléatoire, ou pseudo-aléatoire. Les données ainsi brouillées sont transmises au registre de configuration 202. Si le fonctionnement normal est interrompu et le contenu des registres lu par le système de chaîne de balayage 126, seules les données brouillées seront transmises par la sortie de registre de balayage 214 puis par la sortie de chaîne de balayage 132, protégeant ainsi le contenu des registres.
L'unité de désembrouillage 310 est couplée au registre de configuration 202. L'unité de désembrouillage 310 est prévue capable de recevoir les données brouillées prove- nant du registre de configuration 202. L'unité de désembrouillage est capable de désembrouiller les données brouillées selon le procédé inverse de celui utilisé par l'unité de brouillage 300 pour brouiller les données. Les valeurs de sortie de l'unité de désembrouillage 310 doi- vent être identiques aux valeurs d'entrée du bus de don-nées 116. Bien que l'unité de brouillage 300 et l'unité de désembrouillage 310 soient représentées ici sans liai-son directe entre elles, l'homme du métier reconnaîtra qu'elles peuvent recevoir/partager une valeur générée d'une manière aléatoire ou pseudo-aléatoire.
Dans un premier mode de réalisation, une fonction de brouillage agit de la manière suivante. Un premier réseau combinatoire, l'unité de brouillage 300, utilise la fonc- tion F1 et un second réseau combinatoire, l'unité de désembrouillage 310, la fonction F2. Si X est une entrée codée en binaire sur n-bit (n étant un nombre entier) dé-livrée par le bus de données 116, alors F1(X) est la va-leur de sortie obtenue comme résultat du premier réseau combinatoire.
2857535 10 Si les deux réseaux combinatoires étaient connectés en série, Y étant la sortie du premier réseau commandant l'entrée du second réseau et Z étant la sortie du second réseau (Y, X étant des valeurs binaires), alors: Y = Fl (X) , Z = F2(Y) et, Z = F2 (F1 (X)) . Si n est la taille en bits de X, Fl (X) et F2(X), alors l'expression de F1 et F2 en utilisant Z = X donne, par exemple: Fl (X) = (X + 1) mod 2n et F2(X) = (X - 1) mod 2n.
Par conséquent, Z = F2 (F1(X)) = F2 (X + 1) = (X + 1) - 1 = X et Z = X F1(X), F2(X) peuvent être sélectionnées parmi diverses fonctions, y compris des tables de traduction dans les-quelles chaque valeur binaire X est codée par une autre valeur. F1(X) peut également être un traducteur code bi- paire-code de Gray et F2(X) sa fonction inverse c'est-à-dire un traducteur code de Gray-code binaire.
La figure 4 est un schéma qui illustre un mode de réalisation de la présente invention utilisant une fonction de brouillage prédéterminée. Le registre de brouillage 300 inclut un inverseur 400 et une porte Ou Exclusif (XOR) 410. La fonction mathématique de l'inverseur 400 et de XOR 410 est "+ 1 modulo 4". Si des entrées D [O] et DU] de l'unité de brouillage 300 valent respectivement "1" et "1", alors la sortie d'unité de brouillage de l'unité de brouillage 300 vaut "11 + 1 modulo 4" c'est à dire "00".
L'homme du métier reconnaîtra que de nombreuses fonctions différentes peuvent être utilisées pour brouiller et dé- sembrouiller les données, par exemple, "+ 1 modulo N", N étant un nombre entier quelconque.
La logique de traitement 204 doit recevoir la valeur d'entrée initiale c'est-à-dire "11". Par conséquent un inverseur 420 et une porte Non Ou Exclusif (XNOR) 430 de l'unité de désembrouillage 310 doivent utiliser la fonction mathématique "- 1 modulo 4". Une entrée d'unité de désembrouillage qui vaut "00" devient alors "00 - 1 modulo 4" c'est-àdire "11". Dans un mode de réalisation, l'unité de brouillage 300 délivre une sortie d'unité de brouillage qui est chargée dans le registre de configuration 202 puis transmise à l'unité de désembrouillage 310, qui délivre ensuite une sortie désembrouillée, le tout dans un même cycle d'horloge.
Si le contenu du registre de configuration 202 est récupéré par le système de chaîne de balayage 126, il n'y aura pas de cohérence entre la valeur lue et la valeur fonctionnelle telle que prévue par l'application. En effet, le système de chaîne de balayage 126 lit les valeurs d'entrée brouillées et ce avant que l'unité de désembrouillage 310 ne les ait désembrouillées en valeurs d'entrée initiales c'est-à-dire, telles que délivrées par le bus de données 116.
Bien que la figure 4 représente un inverseur, des portes XOR et XNOR, toute combinaison de logique dans laquelle X = Z serait également appropriée. De plus, l'homme du métier reconnaîtra que le bus de données 116 peut avoir un nombre différent de bits et que l'unité de brouillage 300 et l'unité de désembrouillage 310 peuvent admettre des bus de données ayant des tailles différentes.
La figure 5 est un schéma qui illustre un mode de réali- sation de la présente invention utilisant une fonction de brouillage aléatoire. L'unité de brouillage 300 comprend, par exemple, un additionneur à deux bits 500. Un générateur de nombres, soit aléatoire, soit pseudo-aléatoire, est couplé à l'unité de brouillage 300, par exemple, un générateur de nombres 505.
Le générateur de nombres 505 délivre une valeur à une unité de mémorisation 510 ainsi qu'à l'unité de brouillage 300. L'unité de brouillage 300 reçoit cette valeur du générateur de nombres 505 et l'additionneur 500 l'ajoute à une valeur à deux bits reçue du bus de données 116. La somme obtenue comme résultat est ensuite transmise au registre de configuration 202. Ainsi, si le générateur de nombres 505 produit, par exemple,la valeur bi- naire "01", et si l'unité de brouillage 300 reçoit comme entrées D[0] et D[1] la valeur "11", alors la somme obtenue comme résultat est "00". "00" est donc la valeur binaire transmise au registre de configuration 202.
L'unité de mémorisation 510 conserve la valeur délivrée par le générateur de nombres 505. De cette manière, à chaque fois que de nouvelles données sont écrites à par-tir du bus de données 116, un signal provenant de la ligne d'activation d'écriture 206 ordonne à l'unité de mé- morisation 510 de délivrer la nouvelle valeur, à défaut, l'unité de mémorisation 510 délivre la dernière valeur utilisée dans l'unité de brouillage 300.
L'unité de désembrouillage 310 reçoit de l'unité de mémo- risation 510 la valeur binaire transmise par le généra- teur de nombres 505 à l'unité de mémorisation 510 dans un cycle d'horloge donné. Selon l'exemple mentionné ci-dessus, le registre de configuration 202, après avoir reçu la valeur "00" de l'unité de brouillage 300, trans- met cette valeur "00" à l'unité de désembrouillage 310. L'unité de désembrouillage 310 comprend un soustracteur à deux bits 520, elle soustrait par conséquent la valeur "01" à la valeur "00". La valeur "01" a été générée par le générateur de nombres 505 et mémorisée dans l'unité de mémorisation 510 dans le même cycle d'horloge dans lequel l'unité de désembrouillage 310 reçoit la valeur "00". Le résultat est "11", qui est la valeur initiale délivrée en sortie par le bus de données 116 au début du cycle d'horloge.
Dans un premier mode de réalisation, l'unité de mémorisation 510 comporte un multiplexeur 530 et une bascule de type D (DFF) 540.
Le contenu du registre de configuration 202 change à chaque fois qu'il fait l'objet d'une écriture par le bus de données 116. Dans le mode de réalisation suivant, le contenu du registre de configuration 202 change à chaque cycle d'horloge, qu'il fasse ou non l'objet d'une écri- ture.
La figure 6 est un schéma qui illustre un mode de réalisation de la présente invention utilisant une fonction de brouillage aléatoire. En fonctionnement normal, le bus de données 116 transmet des données au multiplexeur 600. Le multiplexeur 600 reçoit un signal d'activation d'écriture provenant de la ligne d'activation d'écriture 206 et transmet les données reçues depuis le bus de données 116 à l'unité de brouillage 300. L'unité de brouillage 300 reçoit un nombre aléatoire ou pseudo-aléatoire du généra- teur de nombres 505 et ajoute ce nombre aux données reçues du multiplexeur 600 grâce à l'additionneur 500. Dans cet exemple, le nombre est un nombre binaire à deux bits. Le nombre brouillé obtenu comme résultat est transmis au registre de configuration 610. Le registre de configuration 610 charge chacun des bits du nombre brouillé à deux bits dans chacune des bascules SDFF.
La bascule DFF 630 reçoit également le nombre aléatoire ou pseudo-aléatoire à partir du générateur de nombres 505 et dans le même cycle d'horloge dans lequel elle a reçu le nombre, elle transmet ce nombre à l'unité de désembrouillage 310. L'unité de désembrouillage 310 reçoit donc le nombre aléatoire ou pseudo-aléatoire de la bas- cule DFF 630. Elle reçoit également le contenu brouillé des bascules SDFF 620. L'unité de désembrouillage 310 soustrait alors le nombre aléatoire ou pseudo-aléatoire au nombre brouillé en utilisant un soustracteur 525. L'unité de désembrouillage 310 délivre enfin la valeur désembrouillée à la logique de traitement 204 et au multiplexeur 600.
Dans un cycle d'horloge dans lequel il n'y a pas d'opération "d'écriture" du bus de données 116 vers le multi- plexeur 600, ce dernier reçoit uniquement la sortie désembrouillée de l'unité de désembrouillage 310. Sans signal d'activation d'écriture provenant de la ligne d'activation d'écriture 206, le multiplexeur 600 sélectionne la sortie désembrouillée et la transmet à l'unité de brouillage 300. L'unité.de brouillage 300 reçoit un nombre aléatoire ou pseudo-aléatoire du générateur de nombres 505 ainsi que la sortie désembrouillée, les additionne et les charge dans les bascules SDFF 620. L'effet de cette opération est de brouiller à nouveau mais à l'aide d'un nouveau nombre, à chaque cycle d'horloge, la sortie désembrouillée provenant de l'unité de désembrouillage 310.
L'homme du métier reconnaîtra que le générateur de nombres 505 peut être un autre registre de configuration, un registre configurable qui ne fait pas partie du système de chaîne de balayage 126, la sortie d'un indicateur d'état d'une machine à états définis, un indicateur d'interruption, ou tout autre générateur de valeurs aléatoires ou déterminables. Les informations sensibles ou confidentielles chargées dans le registre de configuration 610 sont plus difficiles à récupérer avec une fonction de brouillage variable et continu.
La figure 7 est un ordinogramme qui illustre un procédé de brouillage du contenu des cellules séquentielles dans un circuit intégré. Dans le bloc 700, a lieu le brouillage des données. Dans le bloc 710, a lieu le chargement des données brouillées dans une cellule séquentielle. Dans le bloc 720, a lieu le déchargement des données brouillées à partir de la cellule séquentielle. Dans le bloc 730, a lieu le désembrouillage des données.
Un avantage de la présente invention est que les réseaux combinatoires utilisés pour brouiller et désembrouiller le registre comprennent un petit nombre de portes, ce qui leur permet de s'ajuster plus facilement sur un circuit intégré et de maintenir son coût à un niveau faible.
L'homme du métier reconnaîtra à partir de la description précédente, des figures et des revendications que des modifications et des changements peuvent être apportés à la présente invention sans s'écarter de la portée de la pré-sente invention définie dans les revendications suivantes.
La description ci-dessus montre. comment protéger la confidentialité du contenu des registres, c'est-à-dire les cellules séquentielles. Celles-ci peuvent contenir: - un paramètre d'un algorithme de traitement de signal.
numérique, - une clé d'un algorithme de cryptage, ou - une valeur temporaire d'un bus système.
Il a été décrit ici un microcontrôleur 100 mais l'invention s'applique de la même manière à un micro-ordinateur possédant un registre, ledit registre étant prévu capable de recevoir des données à partir d'un bus de données 116. Le micro-ordinateur comprend alors un système pour brouiller des données dans le registre, com- prenant une unité de brouillage 300 couplée au registre et au bus de données 116, l'unité de brouillage 300 étant prévue capable de recevoir une entrée d'unité de brouillage provenant du bus de données 116 et de produire une sortie d'unité de brouillage qui diffère de l'entrée d'unité de brouillage, dans laquelle la sortie d'unité de brouillage est transmise au registre, et une unité de désembrouillage 310 couplée au registre et prévue capable de recevoir une entrée d'unité de désembrouillage à par-tir de la cellule séquentielle et de produire une sortie d'unité de désembrouillage qui diffère de l'entrée d'unité de désembrouillage, dans laquelle la sortie d'unité de désembrouillage est égale à l'entrée d'unité de brouillage.

Claims (33)

REVENDICATIONS
1. Système pour brouiller des données dans une cellule séquentielle, ladite cellule étant prévue capable de re- cevoir des données d'un bus de données (116), comprenant: une unité de brouillage (300) couplée à la cellule séquentielle et au bus de données (116), ladite uni-té (300) étant prévue capable de recevoir une entrée d'unité de brouillage provenant du bus de données (116) et de produire une sortie d'unité de brouillage qui diffère de l'entrée d'unité de brouillage, dans laquelle la sortie d'unité de brouillage est transmise à la cellule séquentielle, et une unité de désembrouillage (310) couplée à la cellule séquentielle, ladite unité (310) étant prévue capable de recevoir une entrée d'unité de désembrouillage provenant de la cellule séquentielle et de produire une sortie d'unité de désembrouillage qui diffère de l'entrée d'unité de désembrouillage, dans laquelle la sortie d'unité de désembrouillage est identique à l'entrée d'unité de brouillage.
2. Système selon la revendication 1, dans lequel la cellule séquentielle comprend une bascule de type D (540).
3. Système selon la revendication 1, dans lequel la cellule séquentielle est un registre de configuration (202).
4. Système selon la revendication 1, dans lequel l'unité de brouillage (300) est prévue capable de produire la sortie d'unité de brouillage en utilisant une valeur aléatoire.
5. Système selon la revendication 1, dans lequel l'unité de brouillage (300) produit la sortie d'unité de brouillage en manipulant l'entrée d'unité de brouillage à l'aide d'une opération de brouillage: + 1 modulo N, N étant un nombre entier.
6. Système selon la revendication 5, dans lequel l'unité de brouillage (300) comporte en outre un inverseur (400) et une porte Ou Exclusif XOR (410).
7. Système selon la revendication 5, dans lequel l'unité de désembrouillage (310) produit la sortie d'unité de désembrouillage en manipulant l'entrée d'unité de désembrouillage à l'aide d'une opération de désembrouil- lage: - 1 modulo N, N étant un nombre entier.
8. Système selon la revendication 7, dans lequel l'unité de désembrouillage (310) comporte en outre un inverseur (420) et une porte Non Ou Exclusif XNOR {430).
9. Système selon la revendication 1, dans lequel l'unité de brouillage (300) produit la sortie d'unité de brouillage en manipulant l'entrée d'unité de brouillage à l'aide d'une fonction de brouillage et l'unité de désem- brouillage (310) produit la sortie d'unité de désembrouillage en manipulant l'entrée d'unité de désembrouillage à l'aide d'une fonction de désembrouillage, la fonction de désembrouillage étant l'inverse de la fonction de brouillage.
10. Système selon la revendication 9, dans lequel l'unité de brouillage (300) reçoit un nombre, la fonction de brouillage étant prévue capable de manipuler l'entrée d'unité de brouillage à l'aide dudit nombre.
11. Système selon la revendication 10, dans lequel l'uni-té de désembrouillage (310) reçoit le nombre, la fonction de désembrouillage étant prévue capable de manipuler l'entrée d'unité de désembrouillage à l'aide dudit nom- bre.
12. Système selon la revendication 11, comprenant en outre un générateur de nombres {505), prévu capable de générer le nombre, et une unité de mémorisation (510) pré- vue capable de mémoriser ledit nombre pour l'unité de désembrouillage (310).
13. Système selon la revendication 12, dans lequel le générateur de nombres (505) est un générateur de séquences aléatoires.
14. Système selon la revendication 12, dans lequel l'uni-té de mémorisation (510) est un multiplexeur (530) couplé à une bascule de type D (540).
15. Système selon la revendication 12, dans lequel la cellule séquentielle reçoit un signal d'horloge (118) et est prévue capable de recevoir des données à des intervalles définis par ledit signal {118), dans lequel l'uni- té de mémorisation (510) et le générateur de nombres (505) reçoivent ledit signal (118) et dans lequel l'unité de brouillage (300) est prévue capable de transmettre la sortie d'unité de brouillage à la cellule séquentielle à des intervalles définis par le signal d'horloge {118) et une réception de données.
16. Système selon la revendication 11, dans lequel l'uni-té de brouillage (300) comporte en outre des moyens de multiplexage prévus capables de recevoir l'entrée d'unité de brouillage et la sortie d'unité de désembrouillage.
2857535 2.d
17. Système selon la revendication 16, comprenant en outre un générateur de nombres (505) prévu capable de générer le nombre ainsi qu'une unité de mémorisation (510) prévue capable de mémoriser ledit nombre pour l'unité de désembrouillage (310).
18. Système selon la revendication 17, dans lequel le générateur de nombres (505) est un générateur de séquences 10 aléatoires.
19. Système selon la revendication 17, caractérisé en ce que l'unité de mémorisation (510) est une bascule de type D (540).
20. Système selon la revendication 17, comprenant en outre un moyen de diriger la sortie de l'unité de désembrouillage (310) vers l'entrée de l'unité de brouillage (300), dans lequel la cellule séquentielle reçoit un si- gnal d'horloge (118) et est prévue capable de recevoir des données à des intervalles définis par le signal d'horloge (118), dans lequel l'unité de mémorisation (510) et le générateur de nombres (505) reçoivent le signal d'horloge (118) et l'unité de brouillage (300) est prévue capable de transmettre la sortie d'unité de brouillage à la cellule séquentielle à des intervalles définis par le signal d'horloge (118), l'unité de brouillage (300) utilisant la sortie d'unité de désembrouillage comme entrée d'unité de brouillage s'il n'y a pas d'en- trée d'unité de brouillage provenant du bus de données (116).
21. Système selon la revendication 20, dans lequel le moyen de diriger la sortie de l'unité de désembrouillage t1 (310) vers l'entrée de l'unité de brouillage (300) consiste en un multiplexeur (600).
22. Microcontrôleur (100) possédant une cellule séquen- tielle prévue capable de recevoir des données à partir d'un bus de données (116), un système pour brouiller les données dans la cellule séquentielle, comprenant: une unité de brouillage (300) couplée à la cel- Iule séquentielle et au bus de données {116), ladite uni-té (300) étant prévue capable de recevoir une entrée d'unité de brouillage à partir du bus de données (116) et de produire une sortie d'unité de brouillage qui diffère de l'entrée d'unité de brouillage, dans laquelle la sor- tie d'unité de brouillage est transmise à la cellule séquentielle, et une unité de désembrouillage (310) couplée au registre et prévue capable de recevoir une entrée d'unité de désembrouillage à partir de la cellule séquentielle et de produire une sortie d'unité de désembrouillage qui diffère de l'entrée d'unité de désembrouillage, dans la-quelle la sortie d'unité de désembrouillage est égale à l'entrée d'unité de brouillage.
23. Microcontrôleur (100) selon la revendication 22, comprenant en outre un module périphérique (108) couplé au microcontrôleur (100), dans lequel la cellule séquentielle est un registre de configuration (202) dans le moÉdule périphérique (108).
24. Microcontrôleur (100) selon la revendication 22, dans lequel la cellule séquentielle mémorise un paramètre d'un algorithme de traitement de signal numérique.
25. Microcontrôleur (100) selon la revendication 22, dans lequel la cellule séquentielle est une clé d'un algorithme de cryptage.
26. Microcontrôleur (100) selon la revendication 22, dans lequel la cellule séquentielle est une valeur temporaire d'un bus système.
27. Micro-ordinateur possédant un registre, ledit regis- tre étant prévu capable de recevoir des données à partir d'un bus de données (116), et un système pour brouiller des données dans le registre, comprenant: une unité de brouillage (300) couplée au regis- tre et au bus de données (116), l'unité de brouillage (300) étant prévue capable de recevoir une entrée d'unité de brouillage provenant du bus de données {116) et de produire une sortie d'unité de brouillage qui diffère de l'entrée d'unité de brouillage, dans laquelle la sortie d'unité de brouillage est transmise au registre, et une unité de désembrouillage (310) couplée au registre et prévue capable de recevoir une entrée d'unité de désembrouillage à partir de la cellule séquentielle et de produire une sortie d'unité de désembrouillage qui diffère de l'entrée d'unité de désembrouillage, dans la-quelle la sortie d'unité de désembrouillage est égale à l'entrée d'unité de brouillage.
28. Procédé de brouillage de données d'une cellule séquentielle dans un circuit intégré comprenant les étapes: brouiller les données (700), charger les données brouillées dans la cellule séquentielle (710), décharger les données brouillées à partir de ladite cellule séquentielle (720), et désembrouiller les données {730).
29. Procédé selon la revendication 28, dans lequel la cellule séquentielle est un registre et le circuit intégré un microcontrôleur (100).
30. Procédé selon la revendication 28, dans lequel le brouillage comporte l'étape: exécuter la fonction mathématique "+ 1 modulo N" sur les données, N étant un nombre entier.
31. Procédé selon la revendication 28, comprenant en ou- tre l'étape: générer un nombre; et dans lequel le brouillage des données (700) comprend en outre la manipulation des données à l'aide dudit nombre.
32. Procédé selon la revendication 31, dans lequel le chargement des données brouillées dans la cellule séquentielle (710) survient à chaque cycle d'horloge.
33. Procédé selon la revendication 31, dans lequel le chargement des données brouillées dans la cellule séquentielle (710) survient à chaque cycle d'horloge dans le-quel il y a de nouvelles données à brouiller.
FR0308405A 2003-07-09 2003-07-09 Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre. Withdrawn FR2857535A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
FR0308405A FR2857535A1 (fr) 2003-07-09 2003-07-09 Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre.
US10/861,683 US20050033961A1 (en) 2003-07-09 2004-06-04 Method and apparatus for scrambling cell content in an integrated circuit
PCT/US2004/022146 WO2005008729A2 (fr) 2003-07-09 2004-07-08 Procede et appareil d'embrouillage de contenu de cellule dans un circuit integre
EP04777926A EP1652217A4 (fr) 2003-07-09 2004-07-08 Procede et appareil d'embrouillage de contenu de cellule dans un circuit integre
CNB2004800240438A CN100561443C (zh) 2003-07-09 2004-07-08 用于对集成电路中的单元内容进行加扰的方法及装置
TW093120553A TW200514401A (en) 2003-07-09 2004-07-09 Method and apparatus for scrambling cell content in an integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0308405A FR2857535A1 (fr) 2003-07-09 2003-07-09 Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre.

Publications (1)

Publication Number Publication Date
FR2857535A1 true FR2857535A1 (fr) 2005-01-14

Family

ID=33522901

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0308405A Withdrawn FR2857535A1 (fr) 2003-07-09 2003-07-09 Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre.

Country Status (4)

Country Link
US (1) US20050033961A1 (fr)
CN (1) CN100561443C (fr)
FR (1) FR2857535A1 (fr)
TW (1) TW200514401A (fr)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010266417A (ja) * 2009-05-18 2010-11-25 Sony Corp 半導体集積回路、情報処理装置、および情報処理方法、並びにプログラム
DE112012006172B4 (de) * 2012-03-30 2020-12-03 Intel Corporation Generischer Adressen-Scrambler für Speicherschaltungs-Testengine
CN105471849A (zh) * 2015-11-17 2016-04-06 中国科学院上海高等研究院 一种数据交换服务与传输过程的安全控制方法
CN105512573B (zh) * 2015-11-24 2019-02-05 深圳国微技术有限公司 一种抗攻击的仲裁器
US11113444B2 (en) * 2018-06-27 2021-09-07 Taiwan Semiconductor Manufacturing Co., Ltd. Machine-learning based scan design enablement platform

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6068441A (ja) * 1983-09-22 1985-04-19 Fujitsu Ltd ワンチツプ・マイクロ・コンピユ−タ
FR2656939B1 (fr) * 1990-01-09 1992-04-03 Sgs Thomson Microelectronics Verrous de securite pour circuit integre.
JPH0476749A (ja) * 1990-07-19 1992-03-11 Toshiba Corp セキュリティ回路
US5251304A (en) * 1990-09-28 1993-10-05 Motorola, Inc. Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory
KR940005696B1 (ko) * 1991-11-25 1994-06-22 현대전자산업 주식회사 보안성 있는 롬(rom)소자
US5349249A (en) * 1993-04-07 1994-09-20 Xilinx, Inc. Programmable logic device having security elements located amongst configuration bit location to prevent unauthorized reading
US5333198A (en) * 1993-05-27 1994-07-26 Houlberg Christian L Digital interface circuit
US5442628A (en) * 1993-11-15 1995-08-15 Motorola, Inc. Local area network data processing system containing a quad elastic buffer and layer management (ELM) integrated circuit and method of switching
JP3520102B2 (ja) * 1993-12-28 2004-04-19 株式会社東芝 マイクロコンピュータ
US5452355A (en) * 1994-02-02 1995-09-19 Vlsi Technology, Inc. Tamper protection cell
US5745479A (en) * 1995-02-24 1998-04-28 3Com Corporation Error detection in a wireless LAN environment
JPH0922385A (ja) * 1995-07-05 1997-01-21 Rohm Co Ltd データセキュリティ装置および方法
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US5898776A (en) * 1996-11-21 1999-04-27 Quicklogic Corporation Security antifuse that prevents readout of some but not other information from a programmed field programmable gate array
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6321247B1 (en) * 1998-12-28 2001-11-20 Compaq Computer Corporation System and method for multiplication modulo (2N+1)
US6857076B1 (en) * 1999-03-26 2005-02-15 Micron Technology, Inc. Data security for digital data storage
US6499124B1 (en) * 1999-05-06 2002-12-24 Xilinx, Inc. Intest security circuit for boundary-scan architecture
US6397301B1 (en) * 1999-12-29 2002-05-28 Intel Corporation Preventing access to secure area of a cache
JP3872626B2 (ja) * 2000-02-14 2007-01-24 シャープ株式会社 メモリ装置
US7068788B2 (en) * 2001-01-04 2006-06-27 Maxim Integrated Products, Inc. Data encryption for suppression of data-related in-band harmonics in digital to analog converters
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US20030223581A1 (en) * 2002-05-30 2003-12-04 Bedros Hanounik Cipher block chaining unit for use with multiple encryption cores
US7336666B1 (en) * 2002-09-25 2008-02-26 Cypress Semiconductor Corporation Data transport for bit-interleaved streams supporting lane identification with invalid streams
US20040085445A1 (en) * 2002-10-30 2004-05-06 Park Ho-Sang Apparatus for secured video signal transmission for video surveillance system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KUHN M: "The TrustNo 1 Cryptoprocessor Concept", THE TRUSTNO 1 CRYPTOPROCESSOR CONCEPT, 30 April 1997 (1997-04-30), XP002265827 *
LIE D ET AL: "ARCHITECTURAL SUPPORT FOR COPY AND TAMPER RESISTANT SOFTWARE", ASPLOS. PROCEEDINGS. INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, NEW YORK, NY, US, vol. 34, no. 5, 12 November 2000 (2000-11-12), pages 168 - 177, XP001018164 *
MENEZES, VANSTONE, OORSCHOT: "Handbook of Applied Cryptography", 1997, CRC PRESS LLC, USA, XP002351019 *

Also Published As

Publication number Publication date
US20050033961A1 (en) 2005-02-10
CN100561443C (zh) 2009-11-18
CN101065733A (zh) 2007-10-31
TW200514401A (en) 2005-04-16

Similar Documents

Publication Publication Date Title
EP0402210B1 (fr) Procédé pour vérifier l'intégrité d'un logiciel ou de données, et système pour la mise en oeuvre de ce procédé
EP0826169B1 (fr) Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
FR2638869A1 (fr) Dispositif de securite contre la detection non autorisee de donnees protegees
EP0626662B1 (fr) Puce de carte à puce munie d'un moyen de limitation du nombre d'authentifications
EP0720098B1 (fr) Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs
EP0875830B1 (fr) Circuit testable à faible nombre de broches
EP1107503B1 (fr) Composant électronique de sécurité
EP0920660B1 (fr) Microprocesseur ou microcalculateur imprévisible
FR2857535A1 (fr) Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre.
FR2903497A1 (fr) Circuit electronique comprenant un mode de test securise par insertion de donnees leurres dans la chaine de test,procede associe.
EP1821111B1 (fr) Circuit électronique comprenant un mode de test sécurisé par l'utilisation d'un identifiant, et procédé associé.
EP0314530A1 (fr) Dispositif à mémoire de controle de l'utilisation d'un logiciel du type clé
EP2336931B1 (fr) Procédé de vérification de signature
FR2832231A1 (fr) Procede pour generer des nombres aleatoires
EP2471210B1 (fr) Procédé et dispositif de contre-mesure pour protéger des données circulant dans un composant électronique
EP1109103B1 (fr) Procédé de transfert sécurisé de données
EP1109089B1 (fr) Procédé non déterministe de transfert sécurisé de données
EP1652217A2 (fr) Procede et appareil d'embrouillage de contenu de cellule dans un circuit integre
Valea Security Techniques for Test Infrastructures
EP1742075B1 (fr) Procédé de test d'un circuit électronique comprenant un mode de test sécurisé par l'utilisation d'une signature, et circuit électronique associé.
FR2751461A1 (fr) Dispositif de controle de finalite de test
FR2867286A1 (fr) Machine d'etats a logique cablee protegee contre le deraillement par injection de faute

Legal Events

Date Code Title Description
ST Notification of lapse
RN Application for restoration
FC Decision of inpi director general to approve request for restoration
ST Notification of lapse

Effective date: 20110331