FR2878633A1 - Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees - Google Patents

Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees Download PDF

Info

Publication number
FR2878633A1
FR2878633A1 FR0511959A FR0511959A FR2878633A1 FR 2878633 A1 FR2878633 A1 FR 2878633A1 FR 0511959 A FR0511959 A FR 0511959A FR 0511959 A FR0511959 A FR 0511959A FR 2878633 A1 FR2878633 A1 FR 2878633A1
Authority
FR
France
Prior art keywords
current
microprocessor card
security operations
dummy
operations
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
FR0511959A
Other languages
English (en)
Inventor
Seung Hyo Noh
Jong Cheol Kim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to FR0511959A priority Critical patent/FR2878633A1/fr
Publication of FR2878633A1 publication Critical patent/FR2878633A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07363Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
    • 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
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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
    • G06F21/77Protecting 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 in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Une carte à microprocesseur (100) peut inclure un circuit (40, 50) configuré pour effectuer des opérations de sécurité sur des données conservées par la carte à microprocesseur (100), et générer des courants représentatifs des opérations de sécurité. Un circuit de transformation de courants (70) est couplé au circuit (40, 50) et est configuré pour consommer des valeurs de courants fictifs basées sur les opérations de sécurité.

Description

La présente invention concerne des cartes à microprocesseur et porte en
particulier sur la sécurité pour des cartes à microprocesseur.
Des cartes à circuit intégré sont habituellement configurées de façon que chacune contienne un dispositif à semiconducteur fixé sur une carte en matière plastique très semblable à une carte de crédit. Des cartes à circuit intégré ont été envisagées pour l'utilisation en tant qu'appareils d'information multimédia, du fait qu'elles peuvent procurer une meilleure rétention de données que des cartes magnétiques classiques, et peuvent procurer une meilleure sécurité. Certaines cartes à circuit intégré peuvent être classées comme des cartes à microprocesseur, avec des microprocesseurs incorporés, et comme des cartes à mémoire "sans contact" qui n'incluent pas de microprocesseurs. Les cartes à microprocesseur peuvent avoir l'avantage d'une sécurité élevée et d'une grande capacité de stockage de données, pouvant convenir pour une large gamme d'applications. Des cartes à microprocesseur ont ainsi été utilisées dans des applications dans des domaines tels que la finance, la distribution, la circulation, la communication mobile, etc. On sait qu'une carte à microprocesseur doit stocker des données d'une manière assurant la sécurité. Si la sécurité de données stockées dans la carte à microprocesseur n'est pas assurée, il peut être indésirable pour un utilisateur ou un opérateur de système de stocker de l'information privée ou secrète dans une carte à microprocesseur. Le mot "intrusion" signifie un accès non autorisé à une carte à microprocesseur. Des techniques d'intrusion comprennent des attaques invasives utilisant des micro-sondes et des attaques non invasives utilisant des outils logiciels. Des attaques non invasives peuvent effectuer une analyse par canal latéral qui décrypte un code de clé d'un algorithme cryptographique (par exemple l'algorithme DES) en utilisant une configuration de consommation de puissance (ou de dissipation de courant) ou de différences de temps dues à un fonctionnement de la carte à microprocesseur. Les techniques d'analyse par canal latéral peuvent être classées en analyse de puissance simple (SPA pour "Simple Power Analysis") et en analyse de puissance différentielle (DPA pour "Differential Power Analysis"). L'analyse SPA est utilisée pour déterminer un code de clé par l'analyse d'une puissance elle-même, étalonnée pendant l'exécution d'un algorithme cryptographique. D'autre part, l'analyse DPA est utilisée pour déterminer un code de clé en appliquant les techniques statistiques et de correction d'erreur à l'analyse SPA.
Des modes de réalisation conformes à la présente invention peuvent procurer des cartes à microprocesseur, des procédés et des produitsprogrammes informatiques pour utiliser des courants fictifs dans le but de masquer des données. Conformément à ces modes de réalisation, une carte à microprocesseur peut inclure un circuit configuré pour effectuer des opérations de sécurité sur des données conservées par la carte à microprocesseur, et pour générer des courants représentatifs des opérations de sécurité. Un circuit de transformation de courants est couplé au circuit et est configuré pour consommer des valeurs de courants fictifs basées sur les opérations de sécurité. Dans certains modes de réalisation conformes à l'invention, les valeurs de courants fictifs sont basées sur des valeurs de courants associées aux opérations de sécurité.
Dans certains modes de réalisation conformes à l'invention, le circuit est une unité centrale (UC) et/ou an circuit d'opération cryptographique. Dans certains modes de réalisation conformes à l'invention, le circuit de transformation de courants est configuré pour générer les valeurs de courants fictifs avant et/ou après une valeur de courant consommée par l'une correspondante des opérations de sécurité.
Dans certains modes de réalisation conformes à l'invention, le circuit de transformation de courant consiste en une multiplicité de circuits de courants fictifs pondérés différemment. Dans certains modes de réalisation conformes à l'invention, la multiplicité de circuits de courants fictifs pondérés différemment sont des blocs actionnés séparément, configurés pour générer un courant respectif qui est différent d'autres courants des blocs actionnés séparément. Dans certains modes de réalisation conformes à l'invention, les blocs actionnés séparément comprennent au moins un étage pouvant être commandé séparément pour fournir des valeurs de courant égales respectives pour un bloc actionné séparément respectif.
Dans certains modes de réalisation conformes à l'invention, la carte à microprocesseur comprend également un circuit de commande couplé au circuit de transformation de courants et configuré pour activer / désactiver une multiplicité de circuits de courants fictifs pondérés différemment, en réponse aux opérations de sécurité. Dans certains modes de réalisation conformes à l'invention, le circuit de commande est en outre configuré pour activer / désactiver la multiplicité de circuits de courants fictifs pondérés différemment sur la base de valeurs prédéterminées associées à des instructions incluses dans les opérations de sécurité.
Dans certains modes de réalisation conformes à l'invention, le circuit de transformation de courants comprend en outre un bloc de référence appliquant un courant de référence constant au circuit de transformation de courants. Dans certains modes de réalisation conformes à _'invention, la multiplicité de circuits de courants fictifs pondérés différemment comprend 2n circuits de courants fictifs pondérés différemment. Dans certains modes de réalisation conformes à l'invention, un procédé pour faire fonctionner une carte à microprocesseur comprend l'accomplissement d'opérations de sécurité sur des données conservées par la carte à microprocesseur, qui génèrent des courants associes représentatifs des opérations de sécurité, et la génération de valeurs de courants fictifs basées sur les opérations de sécurité, pour masquer les opérations de sécurité et/ou les données.
Dans certains modes de réalisation conformes à l'invention, la génération de valeurs de courants fictifs comprend la génération des valeurs de courants fictifs avant une valeur de courant consommée par l'une correspondante des opérations de sécurité. Dans certains modes de réalisation conformes à l'invention, la génération de valeurs de courants fictifs comprend la génération de valeurs de courants fictifs après une valeur de courant consommée par l'une correspondante des opérations de sécurité.
Dans certains modes de réalisation conformes à l'invention, la génération de valeurs de courants fictifs comprend la génération des valeurs de courants fictifs avant et après une valeur de courant consommée par l'une correspondante des opérations de sécurité. Dans certains modes de réalisation conformes à l'invention, les courants fictifs sont générés pendant des opérations arithmétiques.
Dans certains modes de réalisation conformes à l'invention, un procédé pour faire fonctionner une carte à microprocesseur comprend le masquage d'opérations de sécurité sur des données conservées par la carte à microprocesseur, par la génération de valeurs de courants fictifs non associées à des opérations d'une unité centrale dans la carte à microprocesseur. Dans certains modes de réalisation conformes à l'invention, le procédé comprend en outre la génération des valeurs de courants fictifs avant une valeur de courant consommée par l'une correspondante des opérations de sécurité. Dans certains modes de réalisation conformes à l'invention, le procédé comprend en outre la génération des valeurs de courants fictifs après une valeur de courant consommée par l'une correspondante des opérations de sécurité. Dans certains modes de réalisation conformes à l'invention, un produitprogramme informatique est configuré pour mettre en oeuvre les procédés.
Dans les dessins annexés, la figure 1 est un schéma synoptique illustrant une structure interne d'une carte à microprocesseur dans certains modes de réalisation conformes à l'invention.
La figure 2 est un schéma synoptique illustrant des blocs de transformation de courants représentés sur la figure 1.
La figure 3 est un schéma de circuit illustrant une configuration interne du bloc de consommation de courant représenté sur la figure 2.
La figure 4 montre une forme d'onde de courant d'une carte à microprocesseur pendant le fonctionnement.
Les figures 5A et 5B montrent des exemples de formes d'onde que fournissent certains modes de réalisation conformes à la présente invention.
L'invention est décrite ci-après de façon plus complète en référence aux dessins annexés, qui montrent des modes de réalisation de l'invention. Cette invention peut cependant être mise en oeuvre sous de nombreuses formes différentes et on ne doit pas considérer qu'elle est limitée aux modes de réalisation exposés ici. A la place, ces modes de réalisation sont donnés pour que cet exposé soit approfondi et complet, et permette à l'homme de l'art d'apprécier pleinement le cadre de l'invention. Dans les dessins, la taille et les tailles relatives de couches et de régions peuvent être exagérées pour la clarté.
On notera que lorsqu'il est dit qu'un élément ou une couche est "sur", "connectée à" ou "couplée à" un autre élément ou couche, il peut être directement sur, connecté ou couplé à l'autre élément ou couche, ou bien des éléments ou des couches intermédiaires peuvent être présents. Au contraire, lorsqu'il est dit qu'un élément est "directement sur", "directement connecté à" ou "directement couplé à" un autre élément ou couche, aucun élément ou couche intermédiaire n'est présent. Tel qu'il est utilisé ici, le terme "et/ou" englobe n'importe lesquelles ou la totalité de combinaisons d'un ou de plusieurs des éléments listés associés. Des numéros semblables désignent des éléments semblables dans tout l'exposé.
On notera que bien que les termes premier et deuxième soient utilisés ici pour décrire des éléments, ceux-ci ne doivent pas être limités par ces termes. Ces termes sont utilisés seulement pour distinguer un élément d'un autre. Par conséquent, un premier élément envisagé ci-dessous pourrait être appelé un deuxième élément, et un deuxième élément peut être appelé un premier élément, sans s'écarter des enseignements de la présente invention.
La terminologie utilisée ici a seulement pour but de décrire des modes de réalisation particuliers et ne vise pas à limiter l'invention. Dans l'utilisation qui est faite ici, les formes du singulier "un" et "le" visent à inclure également les formes du pluriel, sauf si le contexte indique clairement le contraire. On comprendra en outre que les termes "comprend" et/ou "comprenant", lorsqu'ils sont utilisés dans cette description, spécifient la présence de caractéristiques, nombres entiers, étapes, opérations, éléments et/ou composants mentionnés, mais n'interdisent pas la présence ou l'ajout d'un ou de plusieurs nombres entiers, caractéristiques, étapes, opérations, éléments, composants et/ou groupes de ceux-ci.
Sauf en cas de définition contraire, tous les termes (incluant des termes techniques et scientifiques) utilisés ici ont la signification couramment admise par l'homme de l'art dans le domaine auquel cette invention appartient. On notera en outre que des termes tels que ceux définis dans des dictionnaires couramment utilisés doivent être interprétés comme ayant une signification qui est en accord avec leur signification dans le contexte du domaine pertinent, et ne seront pas interprétés en un sens idéalisé ou excessivement formel, à moins que ceci ne soit expressément défini ici.
Comme l'homme de l'art l'appréciera, la présente invention peut être mise en uvre sous la forme de circuits, procédés et/ou produits-programmes informatiques. Par conséquent, la présente invention peut prendre la forme d'un mode de réalisation entièrement matériel, d'un mode de réalisation entièrement logiciel ou d'un mode de réalisation combinant des aspects logiciel et matériel. En outre, la présente invention peut prendre la forme d'un produit-programme informatique sur un support de stockage utilisable par un ordinateur, ayant un code de programme utilisable par ordinateur incorporé dans le support. On peut utiliser n'importe quel support lisible par ordinateur approprié, incluant une mémoire flash, des disques durs, des CD-ROM, des dispositifs de stockage optiques ou des dispositifs de stockage magnétiques.
Le support utilisable par ordinateur ou lisible par ordinateur peut être par exemple, mais de façon non limitative, un système, appareil, dispositif ou milieu de propagation électronique, magnétique, optique, électromagnétique, infrarouge ou à semiconducteur. Des exemples plus spécifiques (une liste non exhaustive) du support lisible par ordinateur comprendraient ce qui suit: une connexion électrique ayant un ou plusieurs fils, une disquette portable d'ordinateur, une mémoire vive (RAM), une mémoire morte (ROM), une mémoire morte programmable et effaçable (EPROM ou mémoire flash), une fibre optique, et une mémoire morte portable à disque compact (CD-ROM). On notera que le support utilisable par ordinateur ou lisible par ordinateur pourrait même être du papier ou tout autre support approprié sur lequel le programme est imprimé, du fait que le programme peut être capturé de manière électronique, par exemple par analyse optique du papier ou d'un autre support, puis compilé, interprété ou traité autrement d'une manière appropriée, si nécessaire, et ensuite stocké dans une mémoire d'ordinateur.
Un code de programme informatique ou "code" pour accomplir des opérations conformément à la présente invention peut être écrit en un langage de programmation orienté objets, tel que JAVA , Smalltalk ou C++, JavaScript, Visual Basic, TSQL, Perl, ou en divers autres langages de programmation. Des modes de réalisation logiciels de la présente invention ne dépendent pas d'une mise en oeuvre avec un langage de programmation particulier. Des parties du code peuvent être exécutées entièrement sur un ou plusieurs systèmes utilisés par un serveur intermédiaire.
La présente invention est décrite ci-dessous en référence à des illustrations sous forme de schémas synoptiques de circuits, procédés et produits-programmes informatiques conformes à des modes de réalisation de l'invention. On notera que chaque bloc des illustrations, et des combinaisons de blocs dans les illustrations, peuvent être réalisés par des instructions de programmes informatiques. Ces instructions de programmes informatiques peuvent être fournies à un processeur d'un ordinateur universel, d'un ordinateur spécialisé, ou d'un autre appareil de traitement de données programmable, pour produire une machine, de façon que les instructions qui s'exécutent par l'intermédiaire du processeur de l'ordinateur ou d'un autre appareil de traitement de données programmable, créent des moyens pour mettre en uvre les fonctions spécifiées dans le bloc ou les blocs.
Ces instructions de programmes informatiques peuvent être stockées dans une mémoire lisible par ordinateur qui peut commander un ordinateur ou un autre appareil de traitement de données programmable pour fonctionner d'une manière particulière, de façon que les instructions stockées dans la mémoire lisible par ordinateur créent un produit manufacturé incluant des instructions qui mettent en uvre la fonction spécifiée dans les schémas synoptiques et/ou le bloc ou les blocs d'organigramme.
Les instructions de programmes informatiques peuvent être chargées dans un ordinateur ou un autre appareil de traitement de données programmable pour faire en sorte qu'une série d'étapes de fonctionnement soient exécutées sur l'ordinateur ou autre appareil programmable, pour produire un processus mis en uvre par ordinateur, de façon que les instructions qui s'exécutent sur l'ordinateur ou autre appareil programmable procurent des étapes pour mettre en uvre les fonctions spécifiées dans les schémas synoptiques et/ou le bloc ou les blocs d'organigramme.
La figure 1 est un schéma synoptique illustrant des modes de réalisation d'une structure interne d'une carte à microprocesseur en conformité avec la présente invention. La carte à microprocesseur 100 comprend une interface d'émission-réception 10, une mémoire morte (ROM) 20, une mémoire vive (RAM) 30, une unité centrale de traitement (UC) 40, un bloc d'opération cryptographique 50, un bloc de sécurité 60 et un bloc de transformation de courants 70.
L'interface d'émission-réception 10 est incorporée pour transférer des données et des ordres entre la carte à microprocesseur 100 et un dispositif externe. La mémoire morte 20 est utilisée comme une mémoire de programme stockant à l'intérieur un système d'exploitation de carte et des instructions de base. La mémoire vive 30 stocke et gère des données temporaires et des résultats de calculs intermédiaires, en étant utilisée comme un registre de travail. Bien qu'elle ne soit pas représentée dans les dessins, une mémoire morte programmable et effaçable de façon électrique peut leur être ajoutée comme une unité de stockage pour stocker diverses données et divers programmes optionnels, et pour lire, écrire et effacer des données au moyen du système d'exploitation de carte.
L'unité centrale de traitement 40 fonctionne de façon à commander des chemins internes à travers lesquels des signaux de données et d'ordres sont transférés vers les composants, c'est-à-dire la mémoire de données, la mémoire de programme, la mémoire vive, etc. Le bloc de sécurité 60 peut inclure des détecteurs pour détecter des conditions de courant, température, fréquence, lumière ou décapsulation, et il peut être capable de restaurer tous les circuits, ainsi que le microprocesseur incorporé, lorsqu'au moins un des détecteurs émet un signal de détection, ce qui peut éviter la découverte et/ou le transfert d'une information par ailleurs protégée, par une attaque externe, une destruction physique, une modification et/ou un endommagement dû à des conditions de fonctionnement anormales.
Le bloc d'opération cryptographique 50 fonctionne de façon à chiffrer des données d'entrée, pour la protection. Les données protégées peuvent être stockées sous la forme codée, ce qui peut éviter que les données ne soient divulguées (par exemple au moyen d'une attaque). De tels procédés cryptographiques comprennent une technique DES (Data Encryption Standard) en tant que système cryptographique symétrique, et RSA (Rivest, Shamir et Adelman) en tant que système cryptographique asymétrique.
Le DES est un type de système cryptographique à clé secrète, qui peut chiffrer un mot de 64 bits en combinant des caractères codés avec une clé de 64 bits. RSA est basé sur la difficulté arithmétique de l'opération de factorisation pour un très grand nombre entier.
Les présents inventeurs ont apprécié qu'une carte à microprocesseur puisse être attaquée en analysant la configuration de courants dissipés pendant des opérations cryptographiques, qui peut indiquer les valeurs logiques de portes / circuits pendant les opérations. Par conséquent, la carte à microprocesseur peut devoir protéger la configuration de dissipation de courants, pour éviter sa divulgation. Dans certains modes de réalisation conformes à l'invention, des courants fictifs sont générés par le bloc de transformation de courants 70, par lequel les configurations de courant consommé par les circuits dans la carte à microprocesseur peuvent être changées pour masquer les opérations de la carte à microprocesseur, et permettre ainsi une meilleure protection contre des attaques externes.
En se référant à la figure 2, on note que le bloc de transformation de courants 70 comprend un bloc de référence 71, des blocs de consommation de courant 73 et une unité de commande 75. L'unité de commande 75 contrôle des configurations de consommation de puissance dans l'unité centrale de traitement 40 et le bloc d'opération cryptographique 50, qui peuvent effectuer des opérations arithmétiques de base. L'unité de commande 75 commande en outre les blocs de consommation de courant 73 pour changer les configurations du courant consommé par ces opérations, telles qu'elles sont observées par un analyseur externe, comme ceux qu'on peut utiliser pour effectuer des attaques par SPA et/ou DPA. L'unité de commande 75 reçoit en temps réel les ordres (utilisés pour des opérations de la carte à microprocesseur) provenant de l'unité centrale de traitement 40 et du bloc d'opération cryptographique 50, et identifie un type d'opération à effectuer dans la carte à microprocesseur.
Le Tableau 1 suivant résume les nombres d'échelons des blocs de consommation de courant et les valeurs de courants d'échelon dans un exemple de mode de réalisation conforme à l'invention.
Tableau 1
Bloc de consommation Nombre d'échelons Courant d'échelon de courant 1 1 16a pa 2 2 8a pa 3 4 4a pa 4 8 2a pa 16 a pa 6 1 16b pa 7 2 8b pa 8 4 4b pa 9 8 2b pa 16 b pa Le nombre d'échelons signifie le nombre de dispositifs consommant du courant dans le bloc de transformation de courants. Le courant d'échelon signifie la valeur du courant dissipé par chaque dispositif. Dans le Tableau 1, les paramètres a et b désignent des valeurs de courant de référence qui peuvent être fixées dans des plages optimales. Dans certains modes de réalisation conformes à l'invention, les valeurs de courants d'échelons sont donc des valeurs de courants fictifs dissipées (distinctes de celles dissipées par les opérations associées à l'UC 40 / Bloc d'Opération Cryptographique 50) par les dispositifs du bloc de transformation de courants.
La figure 3 est un schéma de circuit illustrant une configuration interne du bloc de consommation de courant sur la figure 2, conforme à certains modes de réalisation de l'invention. Comme représenté dans le Tableau 1, le premier bloc de consommation de courant 74a comprend un seul dispositif de consommation de courant. Dans certains modes de réalisation conformes à l'invention, le dispositif de consommation de courant comprend trois transistors connectés en série entre une tension de source d'énergie et une tension de masse. Le transistor supérieur est un transistor PMOS dont la grille est couplée à la tension de masse. Le deuxième transistor est un transistor NMOS dont la grille réagit à une tension de commande fournie par l'unité de commande. Le troisième transistor est un transistor NMOS dont la grille réagit à une tension de référence fournie par le bloc de référence 71. Avec un tel dispositif de consommation de courant pour un échelon (ou étage) unité, le deuxième bloc de consommation de courant 74b peut inclure deux échelons et le troisième bloc de consommation de courant 74c peut inclure quatre échelons. Le cinquième bloc de consommation de courant 74d peut inclure seize échelons. Bien que la figure 3 illustre quatre blocs de consommation de courant 74a - 74d, d'autres blocs de consommation de courant représentés sur la figure 2 peuvent être établis d'une manière identique à celle illustrée sur la figure 3.
Dans des opérations de certains modes de réalisation conformes à l'invention, le bloc de référence 71 fournit la même tension aux blocs de consommation de courant 73, de façon que la tension provenant du bloc de référence 71 puisse être considérée comme un signal de validation pour activer les blocs de consommation de courant 73 lorsqu'une alimentation de la carte à microprocesseur est dans un état actif. Conformément à certains modes de réalisation de l'unité de commande 75, la tension de commande appliquée au dispositif du bloc de consommation de courant est établie ou coupée pour faire varier la valeur de dissipation de courant que produisent globalement les blocs de consommation de courant 73 et la carte à microprocesseur. L'unité de commande 75 augmente ou diminue la valeur de courant dans le bloc de consommation de courant pour égaliser la valeur de consommation de courant, considérée globalement, en correspondance avec la configuration de consommation de courant conforme à une opération de la carte à microprocesseur. De plus, l'unité de commande 75 peut générer des pointes de courant entre des configurations de consommation de courant, en correspondance avec des conditions temporelles de fonctionnement, ou masquer les pointes de courant en augmentant des niveaux de courant avant et après les pointes de courant. En d'autres termes, l'unité de commande 75 permet aux blocs de consommation de courant 73 de générer des courants fictifs en plus du courant qui circule pendant une opération de la carte à microprocesseur.
La figure 4 montre une forme d'onde de courant de la carte à microprocesseur conforme à certains modes de réalisation de l'invention. Les parties A et B sur la figure 4 forment des configurations de pointes différentes de celles d'autres parties de la forme d'onde, qui pourraient par ailleurs fournir une certaine information à un attaquant externe, concernant la valeur d'une clé utilisée par la carte à microprocesseur. Les configurations de pointes peuvent être générées par exemple pendant une opération cryptographique, par le bloc d'opération cryptographique 50 avec l'unité centrale de traitement 40. D'autre part, parmi des opérations arithmétiques pour la cryptographie, des configurations de consommation de puissance, qui sont générées lorsque des données concernant des valeurs de clé de l'algorithme DES sont traitées, peuvent présenter de petites différences entre elles, conformément à une valeur d'un bit de données à traiter, "0" ou "1". Par conséquent, la présente invention peut permettre de masquer ou de faire varier les configurations de consommation de courant, au moyen des blocs de consommation de courant, afin de masquer des codes de clés, ce qui peut empêcher que les codes ne soient découverts par une analyse des différences dans les configurations de courant de pointe.
Les figures 5A et 5B montrent des exemples de 35 formes d'onde modifiées à partir de la forme d'onde de courant de la figure 4, en utilisant une fonction de sécurité conforme à des modes de réalisation de la présente invention. La figure 5A illustre le cas dans lequel une configuration de pointe supplémentaire est générée entre les parties A et B, conformément à une condition temporelle de fonctionnement, tandis que la figure 5B illustre le cas dans lequel les configurations de pointe sont masquées en augmentant la valeur de consommation de courant dans un ensemble incluant les parties A et B, en bloc. D'autres manières de modifier les configurations de formes d'onde de consommation de courant peuvent exister avec diverses caractéristiques, non limitées à ces exemples.
Conformément à certains des modes de réalisation de l'invention, des courants fictifs peuvent être générés avant, pendant ou après des opérations qui peuvent par ailleurs indiquer les opérations à un dispositif externe, de façon que le courant observable de l'extérieur soit modifié pour masquer ou obscurcir le courant associé seulement à des opérations effectuées par la carte à microprocesseur.
Bien que la présente invention ait été décrite en relation avec le mode de réalisation de la présente invention qui est illustré dans les dessins annexés, elle n'est pas limitée à celui-ci. Il apparaîtra à l'homme del'art que divers changements, modifications et substitutions peuvent y être apportés, sans sortir du cadre et de l'esprit de l'invention.

Claims (20)

REVENDICATIONS
1. Carte à microprocesseur, caractérisée en ce qu'elle comprend: un circuit (40, 50) configuré pour effectuer des opérations de sécurité sur des données conservées par la carte à microprocesseur (100) et qui génère des courants représentatifs des opérations de sécurité ; et un circuit de transformation de courants (70), couplé au circuit (40, 50), configuré pour consommer des valeurs de courants fictifs basées sur les opérations de sécurité.
2. Carte à microprocesseur selon la revendication 1, caractérisée en ce que les valeurs de courants fictifs sont basées sur des valeurs de courants associées aux opérations de sécurité.
3. Carte à microprocesseur selon la revendication 1, caractérisée en ce que le circuit comprend une unité centrale (40) et/ou un circuit d'opération cryptographique (50).
4. Carte à microprocesseur selon la revendication 1, caractérisée en ce que le circuit de transformation de courants (70) est configuré pour générer les valeurs de courants fictifs avant et/ou après une valeur de courant consommée par des opérations de sécurité correspondantes.
5. Carte à microprocesseur selon la revendication 1, caractérisée en ce que le circuit de transformation de courants (70) comprend une multiplicité de circuits de courants fictifs (73) pondérés différemment.
6. Carte à microprocesseur selon la revendication 5, caractérisée en ce que la multiplicité de circuits de courants fictifs pondérés différemment comprend des blocs (74a-74d) actionnés séparément, configurés pour générer un courant respectif qui est différent de ceux d'autres des blocs actionnés séparément.
7. Carte à microprocesseur selon la revendication 6, caractérisée en ce que les blocs actionnés séparément (74a-74d) comprennent au moins un étage pouvant être commandé séparément pour fournir des valeurs de courant égales respectives pour un bloc actionné séparément respectif.
8. Carte à microprocesseur selon la revendication 1, caractérisée en ce qu'elle comprend en outre un circuit de commande (75) couplé au circuit de transformation de courants et configuré pour activer/ désactiver une multiplicité de circuits de courants fictifs (73) pondérés différemment, en réponse aux opérations de sécurité.
9. Carte à microprocesseur selon la revendication 8, caractérisée en ce que le circuit de commande (75) est en outre configuré pour activer/désactiver la multiplicité de circuits de courants fictifs (73) pondérés différemment, sur la base de valeurs prédéterminées associées à des instructions incluses dans les opérations de sécurité.
10. Carte à microprocesseur selon la revendication 1, caractérisée en ce que le circuit de transformation de courants (70) comprend en outre un bloc de référence (71) appliquant un courant de référence constant au circuit de transformation de courants (70).
11. Carte à microprocesseur selon la revendication 8, caractérisée en ce que la multiplicité de circuits de courants fictifs (73) pondérés différemment comprend 2n circuits de courants fictifs pondérés différemment.
12. Procédé de commande d'une carte à microprocesseur (100), caractérisé en ce qu'il comprend: l'accomplissement d'opérations de sécurité sur des données conservées par la carte à microprocesseur (100), qui génèrent des courants représentatifs des opérations de sécurité ; et la génération de valeurs de courants fictifs basées sur les opérations de sécurité, pour masquer les opérations de sécurité et/ou les données.
13. Procédé selon la revendication 12, caractérisé 35 en ce que la génération de valeurs de courants fictifs comprend la génération des valeurs de courants fictifs avant qu'une valeur de courant ne soit consommée par des opérations de sécurité correspondantes.
14. Procédé selon la revendication 12, caractérisé en ce que la génération de valeurs de courants fictifs comprend la génération des valeurs de courants fictifs après qu'une valeur de courant a été consommée par des opérations de sécurité correspondantes.
15. Procédé selon la revendication 12, caractérisé en ce que la génération de valeurs de courants fictifs comprend la génération des valeurs de courants fictifs avant et après la consommation d'une valeur de courant par l'une correspondante des opérations de sécurité.
16. Procédé selon la revendication 12, caractérisé en ce que les courants fictifs sont générés pendant des 15 opérations arithmétiques.
17. Procédé de commande d'une carte à microprocesseur (100), caractérisé en ce qu'il comprend: le masquage d'opérations de sécurité sur des données conservées par la carte à microprocesseur (100), par la génération de valeurs de courants fictifs non associées à des opérations d'une unité centrale (40) dans la carte à microprocesseur (100).
18. Procédé selon la revendication 17, caractérisé en ce qu'il comprend en outre: la génération des valeurs de courants fictifs avant une valeur de courant consommée par des opérations de sécurité correspondantes.
19. Procédé selon la revendication 17, caractérisé en ce qu'il comprend en outre: la génération des valeurs de courants fictifs après une valeur de courant consommée par des opérations de sécurité correspondantes.
20. Produit-programme informatique, caractérisé en ce qu'il est configuré pour mettre en oeuvre le procédé selon la revendication 17.
FR0511959A 2005-11-25 2005-11-25 Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees Withdrawn FR2878633A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0511959A FR2878633A1 (fr) 2005-11-25 2005-11-25 Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0511959A FR2878633A1 (fr) 2005-11-25 2005-11-25 Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees

Publications (1)

Publication Number Publication Date
FR2878633A1 true FR2878633A1 (fr) 2006-06-02

Family

ID=36390121

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0511959A Withdrawn FR2878633A1 (fr) 2005-11-25 2005-11-25 Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees

Country Status (1)

Country Link
FR (1) FR2878633A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2935823A1 (fr) * 2008-09-11 2010-03-12 Oberthur Technologies Procede et dispositif de protection d'un microcircuit contre les attaques.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2935823A1 (fr) * 2008-09-11 2010-03-12 Oberthur Technologies Procede et dispositif de protection d'un microcircuit contre les attaques.
EP2164031A1 (fr) * 2008-09-11 2010-03-17 Oberthur Technologies Procédé et dispositif de protection d'un microcircuit contre des attaques
US8555390B2 (en) 2008-09-11 2013-10-08 Oberthur Technologies Method and device for protection of a microcircuit against attacks

Similar Documents

Publication Publication Date Title
EP2302552B1 (fr) Procédé d'éxecution d'un algorithme de protection d'un dispositif électronique par masquage affiné et dispositif associé
US20140013425A1 (en) Method and apparatus for differential power analysis protection
FR2948795A1 (fr) Detecteur d'injection de fautes dans un circuit integre
EP3117555A1 (fr) Procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie sur une courbe elliptique
FR2952735A1 (fr) Procede et dispositif de detection d'attaques par injection de fautes
FR2935059A1 (fr) Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede
FR2880750A1 (fr) Carte a microprocesseur et procede cryptographique pour proteger une cle secrete
FR2840421A1 (fr) Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d'utilisation de ceux-ci
FR2906665A1 (fr) Systemes cryptographiques pour chiffrer des donnees d'entree en utilisant une adresse aux donnees d'entree, circuits de detection d'erreur et procedes pour les faire fonctionner
FR2997209A1 (fr) Systeme et procede de securisation des echanges de donnees, objet portable utilisateur et dispositif distant de telechargement de donnees
FR3024808A1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d’erreur
FR2878633A1 (fr) Carte a microprocesseur, procede et produit-programme informatique pour utiliser des courants fictifs pour masquer des donnees
FR2949010A1 (fr) Procede de contremesure pour proteger des donnees memorisees
EP1279141B1 (fr) Procede de contre mesure dans un microcircuit et carte a puce comportant ledit microcircuit
CH716295A2 (fr) Procédé de signature multiple d'une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair.
EP2614491A1 (fr) Procede simplifie de personnalisation de carte a puce et dispositif associe
Rose et al. Nanoelectronics and hardware security
FR3069993A1 (fr) Dispositifs et procedes de masquage d'operations de chiffrement rsa
EP2343806B1 (fr) Procédé et dispositif de contremesure pour protéger des données circulant dans un composant électronique
FR3121529A1 (fr) Débogage sécurisé
Bhatta et al. Analyzing aging effects on SRAM PUFs: Implications for security and reliability
FR3078463A1 (fr) Procede et dispositif de realisation d'operations en table de substitution
EP3327985A1 (fr) Brouillage du fonctionnement d'un circuit intégré
EP1530753A2 (fr) Procede de calcul universel applique a des points d'une courbe elliptique
EP3745638A1 (fr) Procedes de mise en uvre et d'obfuscation d'un algorithme cryptographique a cle secrete donnee

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100730