FR2919448B1 - Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre - Google Patents

Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre Download PDF

Info

Publication number
FR2919448B1
FR2919448B1 FR0803936A FR0803936A FR2919448B1 FR 2919448 B1 FR2919448 B1 FR 2919448B1 FR 0803936 A FR0803936 A FR 0803936A FR 0803936 A FR0803936 A FR 0803936A FR 2919448 B1 FR2919448 B1 FR 2919448B1
Authority
FR
France
Prior art keywords
signal
integrated circuit
state transition
voltage pulse
pseudo
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.)
Expired - Fee Related
Application number
FR0803936A
Other languages
English (en)
Other versions
FR2919448A1 (fr
Inventor
Alexander Klimov
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.)
ARM Ltd
Original Assignee
ARM Ltd
Discretix Tech 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 ARM Ltd, Discretix Tech Ltd filed Critical ARM Ltd
Publication of FR2919448A1 publication Critical patent/FR2919448A1/fr
Application granted granted Critical
Publication of FR2919448B1 publication Critical patent/FR2919448B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Power Sources (AREA)

Abstract

Dispositif, système, et procédé de masquage de toute trace de consommation. Dans certains modes de réalisation, un circuit intégré peut inclure un modificateur de signal permettant d'introduire une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'au moins un signal, qui est lié au traitement interne de la donnée dans le circuit intégré. D'autres modes de réalisation sont décrits et revendiqués.

Description

Dispositif, système, et procédé de masquage de données traitées dans un circuit intégré
Renvoi
Cette demande revendique la priorité et les droits de la demande de brevet américain provisoire 60/929,784, intitulée « Method and device for power trace obfuscation >>, qui a été déposée le 12 juillet 2007 et dont la description complète est incorporée ici par référence. État de la technique
Un dispositif de cryptographie, par exemple un circuit intégré cryptographique (IC), peut recevoir des données d'entrée et générer des données de sortie en traitant en interne de données secrètes, par exemple, une clé de chiffrement, une clé secrète, une information secrète déchiffrée à partir des données d'entrée, et/ou toutes autres données appropriées.
Un ou plusieurs paramètres, représentant des « effets de bord » qui sont liés à un fonctionnement du dispositif cryptographique, peuvent être corrélés aux données secrètes. Par exemple, une variation de la consommation et/ou du rayonnement électromagnétique (EM) du dispositif cryptographique peut être corrélée aux données secrètes traitées par le dispositif. Par conséquent, une tentative de détection des données secrètes (« attaque ») peut inclure la mesure d'un ou plusieurs effets de bord du dispositif afin de déduire et/ou de découvrir les données secrètes. Par exemple, une attaque par canal auxiliaire, par exemple une attaque par analyse de puissance différentielle auxiliaire, par exemple une attaque par analyse de puissance différentielle (DPA : Differential Power Analysis), peut inclure l'analyse de la consommation du dispositif cryptographique afin de découvrir les données secrètes.
Un moyen pour s’opposer à une attaque par DPA consiste à utiliser une logique de précharge double rail (dual-rail préchargé), comme c’est décrit dans « Masked Dual-Rail Pre-Charge Logic : DPA-Resistance without Routing Constraints », Tomas Popp and Stefan Mangard, Cryptographie Hardware and Embedded Systems (CHES) 2005. Cependant, cette mise en oeuvre entraîne une augmentation importante de la surface.
Un autre moyen de s’opposer consiste à masquer les données secrètes. Cependant, une telle mise en oeuvre peut être insuffisante si des pointes de tension surviennent à l'intérieur des circuits logiques du dispositif cryptographique, comme cela a été décrit dans « Successfully Attacking Masked AES Hardware Implémentation », Stefan Mangard, Norbert Pramstaller and Elisabeth Oswald, CHES 2005. Résumé
Certains modes de réalisation incluent, par exemple des dispositifs, des systèmes et des procédés de masquage de données, par exemple de données secrètes, traitées dans un circuit intégré ou analogue.
Dans certains modes de réalisation, une modification sélectionnée de façon pseudo-aléatoire peut être appliquée à un modèle de transition d'état d'au moins un signal, qui est lié à, et/ou impliqué dans, le traitement des données secrètes. Dans un mode de réalisation, le signal peut inclure les données secrètes ou en faire partie.
Dans un autre mode de réalisation, le signal peut ne pas faire partie des données secrètes, mais peut être traité conjointement avec les données secrètes, et/ou peut affecter le traitement des données secrètes par tout moyen approprié.
Dans certains modes de réalisation, la modification sélectionnée de façon pseudo-aléatoire peut imposer des variations de la consommation et/ou du rayonnement électromagnétique (EM) du circuit intégré, ce qui peut se traduire par des lignes de puissance du circuit intégré, d'une manière qui ne peut pas être prédite par un observateur extérieur, par exemple un observateur extérieur malveillant ou un pirate. En conséquence, il peut être pratiquement impossible pour l'observateur extérieur de déduire et/ou de découvrir les données secrètes en mesurant et/ou en interprétant les variations de la consommation et/ou du rayonnement EM.
Certains modes de réalisation incluent un circuit intégré qui contient un modificateur de signal permettant d'introduire une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'au moins un signal, ce qui est lié au traitement interne de données dans les circuits intégrés.
Dans certains modes de réalisation, le modificateur de signal va générer au moins un signal modifié en introduisant la modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'un signal d'entrée. Le circuit intégré peut inclure un circuit logique permettant d'effectuer une opération logique sur le signal modifié.
Dans certains modes de réalisation, le modificateur de signal va introduire une modification sélectionnée de façon pseudo-aléatoire dans au moins une transition d'état parmi un certain nombre de transitions d'état et dans le déroulement d’une ou plusieurs transitions d’état du signal pendant un cycle d'horloge.
Dans certains modes de réalisation, pendant le cycle d'horloge, un certain nombre de transitions d'état dans le signal modifié et un certain nombre de transition d'état dans le signal d'entrée ont la même parité.
Dans certains modes de réalisation, le modificateur de signal va retarder le signal d'entrée avec un retard prédéfini, et va réaliser une opération logique XOR sur le signal retardé et sur un signal d’impulsion de tension transitoire sélectionné de façon pseudo-aléatoire parmi au moins des premier et deuxième signaux d’impulsion de tension prédéfinis de durées différentes.
Dans certains modes de réalisation, une première transition d'état du premier signal d’impulsion de tension et une première transition d'état du deuxième signal d’impulsion de tension surviennent sensiblement en même temps ; une deuxième transition d'état du premier signal d’impulsion de tension survient avant une deuxième transition d'état du deuxième signal d’impulsion de tension ; et la durée du retard prédéfini dépend de la deuxième transition d’état du deuxième signal d’impulsion de tension.
Dans certains modes de réalisation, le modificateur de signal va masquer le résultat de l'opération XOR conformément à un signal de masquage, qui est fondé sur la durée du retard prédéfini et sur la deuxième transition d’état du deuxième signal d’impulsion de tension.
Dans certains modes de réalisation, le modificateur de signal peut inclure deux ou plusieurs modules de fonctions destinés à générer au moins un ensemble de deux ou plusieurs signaux intermédiaires respectifs en appliquant à au moins un signal d'entrée deux ou plusieurs fonctions logiquement identique qui ont au moins deux retards différents, respectivement ; et au moins un sélectionneur permettant de générer au moins un signal modifié, respectivement, en sélectionnant de façon pseudoaléatoire l’un des deux ou plusieurs signaux intermédiaires.
Dans certains modes de réalisation, le circuit intégré peut inclure un circuit intégré cryptographique destiné à recevoir des données d'entrée et à générer des données de sortie en traitant les données en interne. La consommation du circuit intégré cryptographique est statistiquement indépendante des données.
Dans certains modes de réalisation, un procédé de masquage des données traitées en interne dans un circuit intégré peut inclure l'introduction d'une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d’état d'au moins un signal, ce qui est lié au traitement des données.
Dans certains modes de réalisation, le procédé peut inclure la réalisation d'une opération logique sur un signal modifié résultant de l'introduction de la modification sélectionnée de façon pseudo-aléatoire.
Dans certains modes de réalisation, l'introduction peut inclure l'introduction d'une modification sélectionnée de façon pseudo-aléatoire dans au moins une transitions d'état parmi un certain nombre de transitions d'état et dans le déroulement d’une ou plusieurs transitions d'état du signal pendant un cycle d'horloge.
Dans certains modes de réalisation, l'introduction peut inclure le retardement du signal avec un retard sélectionné de façon pseudo-aléatoire.
Dans certains modes de réalisation, pendant le cycle d'horloge, un certain nombre d'états de transition d’état dans un signal modifié dû à l'introduction et un certain nombre de transitions d'état dans le signal ont la même parité.
Dans certains modes de réalisation, l'introduction peut inclure le retardement du signal avec un retard prédéfini ; et la réalisation d'une opération logique XOR sur le signal retardé et sur un signal d’impulsion de tension transitoire sélectionnée de façon pseudo-aléatoire parmi au moins des premier et deuxième signaux d’impulsion de tension transitoires prédéfinis de durées différentes.
Dans certains modes de réalisation, une première transition d’état du premier signal d’impulsion de tension et une première transition d’état du deuxième signal d’impulsion de tension surviennent sensiblement en même temps ; une deuxième transition d’état du premier signal d’impulsion de tension survient avant une deuxième transition d’état du deuxième signal d’impulsion de tension ; et la durée du retard prédéfini dépend de la deuxième transition d’état du deuxième signal d’impulsion de tension.
Dans certains modes de réalisation, l'introduction peut inclure le masquage du résultat de l'opération XOR conformément à un signal de masquage, qui est fondé sur la durée du retard prédéfini et sur la deuxième transition d’état du deuxième signal d’impulsion de tension.
Dans certains modes de réalisation, le procédé peut inclure l'application à au moins un signal de deux ou plusieurs fonctions logiquement identiques qui ont au moins deux retards différents, respectivement, ce qui permet de générer au moins un ensemble de deux ou plusieurs signaux intermédiaires respectifs ; et la génération d'au moins un signal modifié en sélectionnant de façon pseudo-aléatoire l'un des deux ou plusieurs signaux intermédiaires.
Dans certains modes de réalisation, la consommation du circuit intégré est statistiquement indépendante des données.
Certains modes de réalisation peuvent présenter d'autres intérêts et/ou avantages et/ou des intérêts et/ou avantages supplémentaires.
Description sommaire des dessins
Pour des raisons de simplicité et de clarté d'illustration, les éléments représentés dans les figures ne sont pas nécessairement dessinés à l'échelle. Par exemple, les dimensions de certains des éléments peuvent être exagérées par rapport à d'autres éléments pour des raisons de clarté de présentation. De plus, les références numériques peuvent être répétées d'une figure à l'autre pour indiquer des éléments correspondants ou analogues. La liste des figures est donnée ci-dessous.
La figure 1 représente un synoptique schématique d'un système, selon certains modes de réalisation démonstratifs.
La figure 2 est une représentation schématique d'un procédé de modification de signal, conformément à certains modes de réalisation démonstratifs.
La figure 3 est une représentation schématique d'un circuit incluant un modificateur de signal permettant de modifier un signal appliqué à un circuit logique ET, conformément à certains modes de réalisation démonstratifs.
La figure 4 est une représentation schématique d'une courbe de consommation de puissance résultant de l’absence d’application d'un retard à un signal d'entrée du circuit logique de la figure 3 ; et de deux courbes de consommation de puissance résultant de l’application de premier et deuxième retards respectifs au signal d'entrée, conformément à un mode de réalisation démonstratif.
Les figures 5, 6, 7 et 8 sont des représentations schématiques de quatre ensembles respectifs de premier et deuxième modèles de transition d'un signal modifié résultant de l'application de premier et deuxième procédés de modification à quatre modèles de transition d’état respectifs d'un signal pendant un cycle d'horloge, conformément à certains modes de réalisation démonstratifs.
La figure 9 est une représentation schématique d'un modificateur de signal, conformément à certains modes de réalisation démonstratifs.
Les figures 10, 11, 12 et 13 sont des représentations schématiques de modèles de transition d’état résultant de l'application à des modèles de transition d’état du signal des figures 5, 6, 7 et 8, respectivement, d'un retard prédéfini, d’un premier signal d’impulsion de tension transitoire, d'un deuxième signal d’impulsion de tension transitoire, et d’un signal de masquage, conformément à certains modes de réalisation démonstratifs.
La figure 14 représente un organigramme schématique d'un procédé de masquage de données traitées en interne dans un circuit intégré, conformément à certains modes de réalisation démonstratifs.
Description d’un mode préférentiel de l’invention
Dans la description détaillée suivante, il est donné de nombreux détails spécifiques permettant une compréhension exhaustive de certains modes de réalisation. Cependant, des hommes du métier auront à l'esprit que certains modes de réalisation peuvent être mis en pratique sans ces détails spécifiques. Dans d'autres exemples, des procédés, procédures, composants, unités et/ou circuits bien connus n’ont pas été décrits en détail afin de ne pas alourdir la présentation.
Les discussions qui utilisent ici des termes tels que, par exemple, « traitement », « calcul », « détermination », « établissement », « analyse », « vérification », ou analogue, font référence à une ou des opérations et/ou un ou des traitements effectués par un ordinateur, une plate-forme informatique, un système informatique, ou d'autres dispositifs de calcul électronique, qui manipulent et/ou transforment des données représentées sous forme de quantités physiques (par exemple électroniques) dans les registres et/ou mémoires de l'ordinateur en d’autres données représentées de façon similaire sous forme de quantités physiques dans les registres et/ou mémoires de l'ordinateur ou d’autres supports de stockage d'informations qui peuvent stocker des instructions permettant d'effectuer des opérations et/ou des traitements.
Les termes « pluralité » et « une pluralité », tels qu'ils sont utilisés ici, signifient, par exemple, « multiple » ou « deux ou plusieurs ». Par exemple, une « pluralité d'article » signifie « deux ou plusieurs articles ».
Les termes « aléatoire » et « pseudo-aléatoire » peuvent être utilisés ici de façon interchangeable pour signifier, par exemple, aléatoire, pseudoaléatoire, imprévisible et/ou désordonné. Par exemple, les termes « aléatoire » et/ou « pseudo-aléatoire », tels qu'ils sont utilisés ici de façon interchangeable, peuvent concerner un ou plusieurs éléments qui n’ont pas, ou semblent ne pas avoir, par exemple, pour un observateur manquant d'informations sur un procédé utilisé pour générer des éléments, d’ordre et/ou de structure, de caractère prévisible, une structure définie, qui sont, ou semblent être, désordonnés, chaotiques, désorganisés ; et un ou plusieurs éléments qui sont générés ou produits par un processus dont la grandeur de sortie ne suit pas, ou ne semble pas suivre, un modèle et/ou une règle descriptible, prévisible, défini et/ou déterministe. Les termes « sélection aléatoire » ou « sélection pseudo-aléatoire », tels qu'ils sont utilisés ici en relation avec un élément, signifient choix et/ou sélection de l’élément parmi deux ou plusieurs éléments selon un procédé de sélection aléatoire ou pseudo-aléatoire, par exemple, fondé sur un nombre ou un signal généré de façon aléatoire ou pseudo-aléatoire.
Le terme « donnée secrète », tel qu'il est utilisé ici, signifie toute information et/ou donnée appropriée, qui peut être traitée, stockée, conservée, manipulée, et/ou utilisée en interne par un dispositif, et qui n’est pas destinée à être révélée, divulguée, communiquée, exposée, fournie et délivrée en sortie par le dispositif. Le dispositif peut traiter la donnée secrète, par exemple, pour générer une donnée de sortie, fondée sur la donnée d'entrée reçue par le dispositif. Dans un exemple, la donnée secrète peut inclure une donnée cryptographique conservée ou stockée dans un dispositif de cryptographique, par exemple, une clé secrète, une clé de chiffrement, et analogue. Dans un autre exemple, la donnée secrète peut être fondée sur la donnée d'entrée, par exemple, si la donnée d'entrée inclut une donnée chiffrée, et la donnée secrète inclut une donnée déchiffrée résultant du déchiffrement de la donnée d'entrée.
Le terme « transition d’état », tel qu'il est utilisé ici en référence à un signal, peut inclure un passage entre des premier et deuxième états logiques possibles du signal. Dans un mode de réalisation, la transition d’état peut inclure soit une transition de l'état logique « 0 » à l’état logique « 1 », ou une transition de l'état logique « 1 » à l'état logique « 0 ».
Le terme « modèle de transition d’état », tel qu'il est utilisé ici en référence à un signal, peut concerner un certain nombre, par exemple zéro ou tout entier positif approprié, de transitions d'état du signal pendant un cycle d'horloge ; et/ou un déroulement des transitions d'état.
La figure 1 est une représentation schématique d’un synoptique d'un système 100 incluant un circuit intégré (IC) 102, conformément à certains modes de réalisation démonstratifs.
Dans certains modes de réalisation, le système 100 peut inclure un système informatique, ou faire partie de celui-ci, qui comprend un processeur 114, une mémoire 116, une unité de stockage 118, une unité d'entrée 120, une unité de sortie 122, une unité de communication 124 et/ou tout autre composant approprié. Le processeur 114 comprend, par exemple, un processeur à noyaux multiples (multicore process, « CMP » en anglais), un multiprocesseur, une unité centrale de traitement (CPU), un processeur de signal numérique (DSP), un microprocesseur, un processeur hôte, un contrôleur, une pluralité de processeurs ou de contrôleurs, une puce, une micropuce, des éléments de circuit, une unité logique, un circuit intégré (IC), un circuit intégré spécifique à une application (ASIC), ou tout autre processeur ou contrôleur approprié spécifique ou polyvalent. La mémoire 116 inclut, par exemple, une mémoire à accès aléatoire (RAM), une RAM dynamique (DRAM), une DRAM synchrone (SD-RAM), une mémoire flash, une mémoire volatile, ou toute autre unité de mémorisation appropriée. L'unité de stockage 118 inclut, par exemple, une unité de disques durs, une unité de disquettes, une unité de disques compacts (CD), une unité de CD-ROM, une unité de disque numérique polyvalent (DVD), ou toutes autres unités de stockage appropriées amovibles ou non amovibles. L'unité d'entré 120 inclut, par exemple, un clavier, un bloc touches, une souris, un pavé tactile, un crayon, un microphone, ou tout autre dispositif de pointage ou dispositif d'entrée approprié. L'unité de sortie 122 inclut, par exemple, un moniteur ou une unité de présentation à tube cathodique (CRT), un moniteur ou une unité de présentation à cristaux liquides (LCD), un écran, un moniteur, un haut-parleur, ou toute autre unité de présentation ou dispositif de sortie appropriée. L'unité de communication 124 ou l’unité de communication 116 comprend, par exemple, une carte d'interface réseau filaire ou sans fil (NIC), un modem filaire ou sans fil, un récepteur et/ou émetteur filaire ou sans fil, un émetteur/récepteur filaire ou sans fil, une unité de communication ou émetteur-récepteur radiofréquence (RF), et toutes autres unités aptes à transmettre et/ou recevoir des signaux, des blocs, des trames, des flux de transmission, des paquets, des messages et/ou des données. L'unité de communication 116 peut inclure en option, ou peut être associée en option à, par exemple une ou plusieurs antennes, par exemple une antenne dipolaire, une antenne unipolaire, une antenne omnidirectionnelle, une antenne à alimentation d’extrémité, une antenne à polarisation circulaire, une antenne microstrip, antenne à rayonnement zénithal réduit, ou analogue.
Dans certains modes de réalisation, le système 100 peut comprendre, ou peut être, un ordinateur personnel (PC) ; un ordinateur de bureau ; un ordinateur mobile ; un ordinateur portable ; un notebook ; un ordinateur Tablet ; un ordinateur serveur ; un dispositif portable ; un assistant numérique personnel (PDA) ; un dispositif embarqué ; un dispositif non embarqué ; un dispositif hybride ; un dispositif embarqué sur véhicule ; un dispositif non embarqué sur véhicule ; un dispositif mobile ou portable ; un dispositif non mobile ou non portable ; une station de communication sans fil ; un dispositif de communication sans fil ; un point d’accès sans fil (AP) ; un routeur filaire ou sans fil ; un modem filaire ou sans fil ; une unité ou un dispositif d’un réseau filaire ou sans fil, un réseau local (LAN) un LAN sans fil (WLAN), un réseau urbain (MAN), un MAN sans fil, un réseau mondial (WAN), un WAN sans fil (WWAN), un réseau personnel (PAN), un PAN sans fil (WPAN), un système de radiocommunication à deux voies, et/ou un système de communication par radiotéléphone cellulaire ; un téléphone cellulaire ; un téléphone sans fil ; un dispositif de système de communication personnel (PCS) ; un dispositif PDA qui incorpore un dispositif de communication sans fil ; un système de positionnement mondial mobile ou portable (GPS) ; un dispositif qui incorpore un récepteur ou émetteur-récepteur ou puce GPS ; un dispositif qui incorpore un élément RFID ou puce ; un dispositif ou émetteur-récepteur à entrée multiple/sortie multiple (ΜΙΜΟ) ; un dispositif ou émetteur-récepteur à entrée simple/sortie multiple (SIMO) ; un dispositif ou émetteur-récepteur à entrée multiple/sortie simple (MISO) ; un dispositif radio multi-standard, un dispositif portable filaire ou sans fil (par exemple, BlackBerry, Palm Treo), un dispositif à protocole d’application sans fil (WAP), ou analogue.
Dans certains modes de réalisation, le circuit intégré 102 peut inclure un circuit intégré cryptographique capable de recevoir des données d'entrée 168, par exemple, d'un processeur 114, d'une mémoire 116, d'un dispositif de stockage 118, d'une unité d'entrée 120, d'un dispositif de communication 124, et/ou de tout autre élément du système 100, par exemple, une application (non représentée) ou un système d'exploitation (OS) (non représenté), qui peut être exécuté par le système 100. En se fondant sur les données d'entrée 168, le circuit intégré 102 peut générer une donnée de sortie 169 en traitant une donnée secrète 109. La donnée de sortie 169 peut être fournie, par exemple, à un processeur 114, une mémoire 116, un dispositif de stockage 118, une unité de sortie, un dispositif de communication 124, et/ou tout autre élément du système 100, par exemple, l'application ou l’OS.
La donnée secrète 109 peut inclure toute information et/ou donnée appropriée, qui peut être traitée, stockée, conservée, manipulée, et/ou utilisée en interne par le IC 102, et qui n’est pas destinés à être révélée, divulguée, communiquée, exposée, fournie et/ou délivrée en sortie à l'extérieur au circuit intégré 102, par exemple, en tant que partie de la donnée de sortie 169. Dans un mode de réalisation, la donnée secrète 169 peut inclure une donnée cryptographique conservées ou stockées en interne à l'intérieur du circuit intégré 102, par exemple, une clé secrète, une clé de chiffrement, et analogue. Dans un autre mode de réalisation, la donnée secrète 109 peut être fondée sur la donnée d'entrée 168, par exemple, si la donnée d'entrée 168 inclut une donnée chiffrée, et la donnée secrète 109 inclut une donnée déchiffrée résultant du déchiffrement de la donnée d'entrée 168.
Dans certains modes de réalisation, le circuit intégré 102 peut introduire une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d’état d’au moins un signal, ce qui est lié au traitement de la donnée secrète 109, par exemple, comme cela est décrit ci-dessous.
Dans certains modes de réalisation, le traitement de la donnée secrète 109 par le circuit intégré 102 peut impliquer, inclure ou être associé à un ou plusieurs signaux traités par au moins un circuit logique 108. Par exemple, le circuit logique 108 peut générer un ou plusieurs signaux de sortie 112 en réalisant une opération logique sur un ou plusieurs signaux d'entrée, par exemple, au moins un signal 110 et au moins un signal 111. Dans un exemple, le signal 111 et/ou le signal 110 peut inclure au moins une partie de la donnée secrète 109. Dans un autre exemple, le signal 112 peut être impliqué dans le traitement d'au moins une partie de la donnée secrète 109 ; par exemple, le signal 112 peut être introduit dans un autre circuit logique conjointement avec un ou plusieurs autres signaux incluant au moins une partie de la donnée secrète 109.
Dans certains modes de réalisation démonstratifs, une attaque, par exemple, une attaque de canal auxiliaire, par exemple une attaque DPA, peut être effectuée sur l’IC 102 afin de tenter de découvrir la donnée secrète 109 ou tout ou partie de celle-ci en observant les variations de la consommation du circuit intégré 102, par exemple sur une ligne d'alimentation du circuit intégré 102. De telles variations peuvent être déterminées, par exemple, en surveillant un courant fourni au circuit intégré 102, une chute de tension au niveau de l’IC 102, ou par tout autre procédé approprié.
Dans certains modes de réalisation, le circuit intégré 102 peut inclure au moins un modificateur de signal 104 permettant de générer au moins un signal modifié 110 en introduisant une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d’état d'un signal d'entrée 106, qui sera fournie au circuit logique 108. En conséquence, la consommation en puissance du circuit intégré 102 peut être statistiquement indépendante de la donnée secrète 109. Par exemple, un déroulement des transitions dans le circuit logique 108, et par conséquent un déroulement des pointes de consommation résultant du fonctionnement du circuit logique 108, peut être considéré comme distordu et/ou randomisé par un pirate.
Dans certains modes de réalisation, le modificateur de signal 104 peut introduire une modification sélectionnée de façon pseudo-aléatoire dans au moins une transition d'état parmi un certain nombre de transitions d’état, et dans un déroulement d'une ou plusieurs transitions d’état, du signal 106 pendant un cycle d'horloge, par exemple, comme cela est décrit ci-dessous.
On fera maintenant référence à la figure 2, qui représente schématiquement un procédé de modification de signal 200 conformément à certains modes de réalisation démonstratifs. Dans un mode de réalisation, le procédé de modification de signal 200 peut jouer le rôle de modificateur de signal 104 (figure 1).
Dans certains modes de réalisation, le procédé de modification de signal 200 peut être mis en oeuvre pour introduire un retard sélectionné de façon pseudo-aléatoire dans un ou plusieurs signaux de sortie modifiés, ce qui peut entraîner l'application d'au moins une fonction prédéfinie à un ou plusieurs signaux d'entrée. Par exemple, le procédé de modification de signal 200 peut introduire un retard sélectionné de façon pseudo-aléatoire dans un premier signal de sortie 220, appelé B1, et un deuxième signal de sortie 222, appelé B2, qui peut résulter de l'application d'une fonction prédéfinie, appelée F, à un premier signal d'entrée 210, appelé A1, un deuxième signal d'entrée 212, appelé A2, et un troisième signal d'entrée 214, appelé A3.
Dans certains modes de réalisation, le procédé de modification de signal 200 peut inclure au moins deux modules de fonction permettant de générer au moins un ensemble de deux ou plusieurs signaux intermédiaires respectifs en appliquant à un ou plusieurs signaux d'entrée deux ou plusieurs fonctions logiquement identiques présentant au moins deux retards différents, respectivement. Par exemple, le procédé de modification de signal 200 peut inclure un premier module de fonction 204 permettant de générer un premier ensemble de premier et deuxième signaux intermédiaires C11 et C12 en appliquant aux signaux 210, 212, et 214 une première fonction, appelée F1, qui peut être logiquement identique à la fonction F, et qui peut présenter un premier retard ; et un deuxième module de fonction 202 permettant de générer un deuxième ensemble de premier et deuxième signaux intermédiaires C21 et C22 en appliquant aux signaux 210, 212, et 214 une deuxième fonction, appelée F2, qui peut être logiquement identique à la fonction F1, et qui peut présenter un deuxième retard différent du premier retard de la fonction F1. Les signaux C11 et C12 peuvent être logiquement identiques l’un à l'autre, et logiquement identiques à un premier signal de sortie d'application de la fonction F aux signaux d'entrée ; et les signaux C12 et C22 peuvent être logiquement identiques l’un à l'autre, et logiquement identiques à un deuxième signal de sortie d'application de la fonction F aux signaux d'entrée. Les signaux C11 et C12 peuvent présenter le premier retard associé à la fonction F1, tandis que les signaux C21 et C22 peuvent présenter le deuxième retard associé à la fonction F2.
Dans certains modes de réalisation, le procédé de modification de signal 200 peut également inclure un ou plusieurs sélecteurs permettant de générer un ou plusieurs signaux de sortie, respectivement, en sélectionnant de façon pseudo-aléatoire l'un des deux ou plusieurs signaux intermédiaires. Par exemple, le procédé de modification de signal 200 peut inclure un premier sélectionneur 206, appelé S1, permettant de générer le signal de sortie 220 en sélectionnant de façon pseudo-aléatoire l'un des signaux intermédiaires C11 et C21, par exemple, en se fondant sur la valeur d'un signal pseudoaléatoire R1 ; et un deuxième sélectionneur 208, appelé S2, permettant de générer le signal de sortie 222 en sélectionnant de façon pseudo-aléatoire l'un des signaux intermédiaires C12 et C22, par exemple, en se fondant sur la valeur d'un signal pseudo-aléatoire R2. En conséquence, les signaux B1 et B2 peuvent être logiquement identiques aux premier et deuxième signaux de sortie résultant de l'application de la fonction F aux signaux d'entrée A1, A2, et A3, tandis que chacun des signaux B1 et B2 peut être retardé avec un retard sélectionné de façon pseudo-aléatoire, par exemple, l'un des retards des fonctions F1 et F2.
Dans certains modes de réalisation, le procédé de modification de signal 200 peut être configuré pour permettre toute introduction d'un retard sélectionné de façon pseudo-aléatoire dans un nombre approprié quelconque de signaux de sortie modifiés, ce qui peut entraîner l'application d’un nombre approprié quelconque de fonctions prédéfinies à un nombre approprié quelconque de signaux d'entrée. Dans un exemple, le procédé de modification de signal 200 peut être configuré pour introduire un retard sélectionné de façon pseudoaléatoire dans un signal d'entrée. Par exemple, les fonctions F1 et F2 peuvent être configurées pour inclure deux fonctions d'identité respectives présentant des retards différents, ayant chacune un signal d'entrée unique et un signal de sortie unique ; et le procédé de modification de signal 200 peut inclure un sélecteur unique permettant de choisir de façon pseudo-aléatoire entre les signaux de sortie des fonctions F1 et F2, ce qui permet de générer un signal de sortie modifié retardé avec un retard pseudo-aléatoire par rapport au signal d'entrée.
On se référera maintenant à la figure 3, qui représente schématiquement un circuit 300 incluant un modificateur de signal 302 permettant de modifier une entrée de signal d'un circuit logique ET 304, conformément à certains modes de réalisation démonstratifs. Dans un mode de réalisation, le modificateur de signal 302 et le circuit logique 304 peuvent jouer le rôle du modificateur de signal 104 (figure 1) et du circuit logique 108 (figure 1), respectivement.
Dans certains modes de réalisation, le modificateur de signal 302 peut introduire un retard sélectionné de façon pseudo-aléatoire dans un premier signal d’entrée 306, appelé B, pour générer ainsi un signal modifié 310, appelé B’, qui sera fourni comme première entrée au circuit ET 304. Un deuxième signal d'entrée 308, appelé A, peut être fourni comme deuxième entrée au circuit ET 304. Le circuit logique 304 peut effectuer une opération logique ET sur les première et deuxième entrées, ce qui permet de générer un signal de sortie 312, appelé C’, avec C’=(A)ET(B’).
Dans un mode de réalisation, le modificateur de signal 302 peut être implémenté en utilisant un procédé de modification de signal 200 (figure 1) dans la configuration adaptée pour introduire un retard sélectionné de façon pseudo-aléatoire dans un signal d'entrée unique, par exemple, comme c'est décrit ci-dessus. Dans d'autres modes de réalisation, le modificateur de signal 302 peut mettre en oeuvre tout autre procédé approprié apte à introduire un retard sélectionné de façon pseudo-aléatoire dans le signal 306.
Il sera maintenant fait référence à la figure 4, qui représente schématiquement une courbe de consommation de puissance 408 résultant de l'absence d'introduction de retard dans le signal d'entrée B ; et deux courbes de consommation 414 et 420 résultant de l'introduction de premier et deuxième retards respectifs dans le signal d'entrée B, conformément à un mode de réalisation démonstratif.
Comme c’est représenté dans la figure 4, la courbe de consommation 408 correspond à un modèle de transition d’état 406 d'un signal de sortie C résultant de l'application de l'opération ET à un modèle de transition d’état 402 du signal d'entrée A et à un modèle de transition d’état 404 du signal d'entrée B pendant un cycle d'horloge.
Comme c'est représenté dans la figure 4, l'introduction du premier retard dans le signal B peut donner le signal modifié B’ comportant un premier modèle de transition d’état modifié 410 ; et l'introduction du deuxième retard, qui peut être plus long que le premier retard, dans le signal B peut donner le signal modifié B’ comportant un deuxième modèle de transition d’état modifié 416. En conséquence, une courbe de consommation 414 correspond à un modèle de transition d’état 412 du signal de sortie & résultant de l'introduction du premier retard, la courbe de consommation 420 correspond à un modèle de transition d’état 418 du signal de sortie C’ résultant de l'introduction du deuxième retard.
Comme c'est représenté dans la figure 4, la sélection pseudo-aléatoire du retard introduit dans le signal d'entrée B, par exemple, la sélection pseudoaléatoire entre les premier et deuxième retards donnant des modèles de transition d’état 410 et 416, respectivement, peut entraîner une consommation agissant de façon pseudo-aléatoire conformément à une courbe parmi une pluralité de courbes, par exemple, l'une des deux courbes 414 et 420. En conséquence, on peut réduire une corrélation entre la consommation du circuit 300 (figure 3) et les signaux A et/ou B et/ou de tout traitement de données lié au signal C’.
En se référant de nouveau à la figure 1, dans certains modes de réalisation démonstratifs, le modificateur de signal 104 est capable de modifier le signal 106 pour générer un signal modifié 110 de sorte qu'un état logique du signal modifié 110 au début d'un cycle d'horloge est le même qu'un état logique du signal 106 au début du cycle d'horloge, et un certain nombre de transitions d’état dans le signal modifié 110 et un certain nombre de transitions d’état dans le signal d'entrée 106 peuvent avoir la même parité, par exemple, comme cela est écrit ci-dessous. Le nombre 0 peut être considéré comme pair.
Le terme « consommation moyenne » de puissance tel qu'il est utilisé ici en liaison avec le traitement d'un signal modifié de façon pseudo-aléatoire, par exemple le signal modifié 110, peut concerner une moyenne d'une pluralité de courbes de consommation résultant d'une pluralité de modèles de transition possible du signal modifié. Par exemple, si le signal modifié résultant d'un certain modèle de transition d’état du signal d'entrée a pu sélectionné de façon pseudo-aléatoire l'un des n modèles de transitions d’état, la consommation moyenne de puissance correspondant au signal modifié peut alors être déterminée en effectuant la moyenne des n courbes de consommation correspondant aux n modèles de transition d’état.
Dans certains modes de réalisation, une consommation moyenne résultant du traitement du signal modifié 110 peut être statistiquement indépendante du modèle de transition d’état du signal 106. Par exemple, la même consommation moyenne correspondant au signal modifié 110 peut être effectuée pour une pluralité de modèles de transition d’état possibles différents du signal 106, par exemple, comme cela est écrit ci-dessous.
On se référera aux figures 5, 6, 7 et 8, qui représentent schématiquement quatre ensembles respectifs de premier et deuxième modèles de transition du signal modifié 110 résultant de l'application de premier et deuxième procédés de modification à quatre modèles de transition d’état respectifs du signal 106 pendant un cycle d'horloge, conformément à certains modes de réalisation démonstratifs.
Comme c'est représenté dans la figure 5, un premier modèle de transition d’état 502 du signal 106 peut inclure une transition d'état unique de l'état logique « 0 » à l’état logique « 1 » ; un premier modèle de transition d’état 504 du signal modifié 110 résultant du modèle 502 peut inclure trois transitions d’état de l'état logique « 0 » à l'état logique « 1 » ; et un deuxième modèle de transition d’état 506 du signal modifié 110 résultant du modèle 502 peut inclure une transition d’état de l'état logique « 0 » à l'état logique « 1 », qui peut être retardé en comparaison avec la transition d’état du signal 106. Une courbe de consommation moyenne 508 peut correspondre aux modèles 504 et 506.
Comme c'est représenté dans la figure 6, un deuxième modèle de transition d'état 602 du signal 106 peut inclure une transition d'état unique de l'état logique « 1 » à l'état logique « 0 » ; un premier modèle de transition d'état 604 du signal modifié 110 résultant du modèle 602 peut inclure trois transitions d'état de l'état logique « 1 » à l'état logique « 0 » ; et un deuxième modèle de transition d'état 606 du signal modifié 110 résultant du modèle 602 peut inclure une transition d'état de l'état logique « 1 » à l'état logique « 0 », qui peut être retardé en comparaison avec la transition d'état du signal 106. La courbe de consommation moyenne 608 correspondant aux modèles 604 et 606 peut être sensiblement identique à la courbe de consommation moyenne 508.
Comme c’est représenté dans la figure 7, un troisième modèle de transition d'état 702 du signal 106 peut inclure l'état logique «0» sans aucune transition d'état ; un premier modèle de transition d'état 704 du signal modifié 110 résultant du modèle 702 peut inclure deux transitions d'état de l'état logique « 0 » de nouveau vers l'état logique « 0 » ; et un deuxième modèle de transition d'état 706 du signal modifié 110 résultant du modèle 702 peut inclure deux transitions d'état de l'état logique « 0 » de nouveau vers l'état logique « 0 ». Une première transition d'état des modèles 704 et 706 peut être sensiblement simultanée, et une deuxième transition d'état du modèle 706 peut être retardée par rapport à une deuxième transition du modèle 704. Une courbe de consommation moyenne 708 correspondant aux modèles 704 et 706 peut être sensiblement identique aux courbes de consommation moyenne 508 et 608.
Comme c’est représenté dans la figure 8, un quatrième modèle de transition d'état 802 du signal 106 peut inclure l'état logique « 1 » sans aucune transition d'état ; un premier modèle de transition d'état 804 du signal modifié 110 résultant du modèle 802 peut inclure deux transitions d'état de l'état logique « 1 » de nouveau vers l'état logique « 1 » ; et un deuxième modèle de transition d'état 806 du signal modifié 110 résultant du modèle 802 peut inclure deux transitions d’état de l'état logique « 1 » de nouveau vers l'état logique « 1 ». Une première transition d'état des modèles 804 et 806 peut être sensiblement simultanée, et une deuxième transition d'état du modèle 806 peut être retardée par rapport à une deuxième transition du modèle 804. Une courbe de consommation moyenne 808 correspondant aux modèles 804 et 806 peut être sensiblement identique aux courbes de consommation moyenne 508, 608 et 708.
Dans certains modes de réalisation, le modificateur de signal 104 est apte à générer le signal modifié 110 comportant l’un des premier et deuxième modèles de transition des figures 5, 6, 7 et 8 en retardant le signal d'entrée 106 avec un retard prédéfini, et en réalisant une opération logique XOR sur le signal retardé et sur un signal d’impulsion de tension transitoire de durées différentes, comme cela est décrit en détail ci-dessous. Le terme « signal d’impulsion de tension transitoire » tel qu'il est utilisé ici peut désigner un signal présentant au moins une paire constituée d'une première transition d'un premier état logique vers un deuxième état logique et d'une deuxième transition du deuxième état logique de nouveau vers le premier état logique.
On se référera à la figure 9, qui représente schématiquement un modificateur de signal 900, conformément à certains modes de réalisation démonstratifs.
Dans un mode de réalisation, le modificateur de signal 900 peut jouer le rôle du modificateur de signal 104 (figure 1).
Dans certains modes de réalisation, le modificateur de signal 900 peut générer un signal modifié 924, par exemple, le signal 110 (figure 1), en introduisant une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'un signal d'entrée 902, par exemple le signal 106 (figure 1).
Dans certains modes de réalisation, le modificateur de signal 900 peut inclure un module de retard 904 permettant de générer un signal retardé 906 en retardant le signal d'entrée 902 avec un retard prédéfini, par exemple, comme cela est décrit ci-dessous. Le module de retard 904 peut inclure une mémoire tampon appropriée quelconque, une chaîne d'inverseurs quelconque, et/ou tout autre élément approprié apte à retarder le signal 902 avec le retard prédéfini.
Dans certains modes de réalisation, le modificateur de signal 900 peut inclure un sélecteur 908, par exemple, un multiplexeur (MUX), permettant de sélectionner de façon pseudo-aléatoire, en se fondant sur un signal pseudoaléatoire 910, un signal d’impulsion de tension transitoire 911 provenant d'un premier signal d’impulsion de tension transitoire 912 (« impulsion de tension brève ») d'une première durée et un deuxième signal d’impulsion de tension transitoire 914 («impulsion de tension longue») d’une deuxième durée supérieure à la première durée, par exemple comme cela est décrit ci-dessous.
Dans certains modes de réalisation démonstratifs, le modificateur de signal 900 peut inclure un module XOR 916 permettant d'appliquer une opération logique XOR au signal retardé 906 et au signal d’impulsion de tension transitoire 911, sélectionné de façon pseudo-aléatoire, pour générer ainsi un signal 918.
Dans certains modes de réalisation, une première transition d'état du signal 912 et une première transition d'état du signal 914 peuvent survenir sensiblement simultanément, une deuxième transition d'état du signal 912 peut survenir avant une deuxième transition d'état du signal 914 ; et une durée du retard prédéfini peut dépendre de la deuxième transition d'état du signal 914, par exemple, de telle sorte que la transition d'état du signal retardé 906 peut être prévue pour survenir sensiblement simultanément à la deuxième transition d'état du signal 914, par exemple, comme c’est représenté dans les figures 10, 11, 12 et 13 décrites ci-dessous.
Dans certains modes de réalisation, le modificateur de signal 900 peut inclure un verrou 920 permettant de générer le signal modifié 924 à l'aide d'un signal de masquage 918 conformément à un signal de masque 922. Le signal de masque 922 peut être mis en œuvre, par exemple, pour éliminer une impulsion de tension transitoire qui peut être introduite dans le signal 918 si la transition d'état du signal retardé 906 et la deuxième transition d'état du signal 914 ne surviennent pas sensiblement simultanément. Par exemple, le masque 922 peut être fondé sur la durée du retard prédéfini et sur la deuxième transition d'état du signal 914. Le verrou 920 peut être ouvert, par exemple, seulement lorsque le signal de masque 918 est dans un état logique prédéfini, par exemple l'état logique « 1 ».
On se référera également aux figures 10, 11, 12 et 13, qui représentent schématiquement des modèles de transition d'état résultant de l'application aux signaux 502 (figure 5), 602 (figure 6), 702 (figure 7), et 802 (figure 8), respectivement, d’un retard prédéfini, d'un premier signal d’impulsion de tension transitoire 1004, d’un second signal d’impulsion de tension transitoire 1006, et d’un signal de masque 1012, conformément à certains modes de réalisation démonstratifs. Dans un mode de réalisation, les signaux 1004, 1006 et 1012 peuvent inclure les signaux 912, 914 et 922, respectivement.
Comme c'est représenté dans la figure 10, le signal retardé 906 peut comporter un modèle de transition d'état 1002 si le retard prédéfini est appliqué au signal 502 (figure 5). Le signal 918 peut comporter un modèle de transition d'état 1008, si le signal d’impulsion de tension transitoire 1004 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906 ; ou un modèle de transition d'état 1010, si le signal d’impulsion de tension transitoire 1006 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906. Le signal modifié 924 peut comporter un modèle de transition d'état 1014, si le signal de masque 1012 est appliqué au modèle de transition d'état 1008 ; ou un modèle de transition d'état 1016 si le signal de masque 1012 est appliqué au modèle de transition d'état 1010. Les modèles de transition d'état 1014 et 1016 peuvent être sensiblement identiques aux modèles de transition d'état 504 (figure 5) et 506 (figure 5), respectivement.
Comme c'est représenté dans la figure 11, le signal retardé 906 peut comporter un modèle de transition d'état 1102 si le retard prédéfini est appliqué au signal 602 (figure 6). Le signal 918 peut comporter un modèle de transition d'état 1108, si le signal d’impulsion de tension transitoire 1004 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906 ; ou un modèle de transition d'état 1110, si le signal d’impulsion de tension transitoire 1006 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906. Le signal modifié 924 peut comporter un modèle de transition d'état 1114, si le signal de masque 1012 est appliqué au modèle de transition d'état 1108 ; ou un modèle de transition d'état 1116 si le signal de masque 1012 est appliqué au modèle de transition d’état 1110. Les modèles de transition d’état 1114 et 1116 peuvent être sensiblement identiques aux modèles de transition d'état 604 (figure 6) et 606 (figure 6), respectivement.
Comme c'est représenté dans la figure 12, le signal retardé 906 peut comporter un modèle de transition d'état 1202 si le retard prédéfini est appliqué au signal 702 (figure 7). Le signal 918 peut comporter un modèle de transition d'état 1208, si le signal d’impulsion de tension transitoire 1004 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906 ; ou un modèle de transition d'état 1210, si le signal d’impulsion de tension transitoire 1006 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906. Le signal modifié 924 peut comporter un modèle de transition d'état 1214, si le signal de masque 1012 est appliqué au modèle de transition d'état 1208 ; ou un modèle de transition d'état 1216 si le signal de masque 1012 est appliqué au modèle de transition d'état 1210. Les modèles de transition d'état 1214 et 1216 peuvent être sensiblement identiques aux modèles de transition d'état 704 (figure 7) et 706 (figure 7), respectivement.
Comme c'est représenté dans la figure 13, le signal retardé 906 peut comporter un modèle de transition d'état 1302 si le retard prédéfini est appliqué au signal 802 (figure 8). Le signal 918 peut comporter un modèle de transition d'état 1308, si le signal d’impulsion de tension transitoire 1004 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906 ; ou un modèle de transition d'état 1310, si le signal d’impulsion de tension transitoire 1006 est sélectionné par le sélecteur 908 pour être soumis à une opération XOR avec le signal retardé 906. Le signal modifié 924 peut comporter un modèle de transition d'état 1314, si le signal de masque 1012 est appliqué au modèle de transition d'état 1308 ; ou un modèle de transition d'état 1316 si le signal de masque 1012 est appliqué au modèle de transition d'état 1310. Les modèles de transition d'état 1314 et 1316 peuvent être sensiblement identiques aux modèles de transition d'état 804 (figure 8) et 806 (figure 8), respectivement.
On se référera maintenant à la figure 14, qui représente schématiquement un procédé de masquage de données traitées en interne dans un circuit intégré, conformément à certains modes de réalisation démonstratifs. Dans un mode de réalisation, une ou plusieurs opérations du procédé de la figure 14 peuvent être réalisées par un ou plusieurs éléments du circuit intégré 102 (figure 1), par exemple, le modificateur de signal 104 (figure 1).
Comme c'est indiqué au bloc 1402, le procédé peut inclure l'introduction d'une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'au moins un signal, ce qui revient à traiter la donnée. Par exemple, le modificateur de signal 104 (figure 1) peut introduire une modification sélectionnée de façon aléatoire dans un modèle de transition d'état du signal 106 (figure 1), comme cela a été décrit ci-dessus.
Comme c’est indiqué au bloc 1404, le procédé peut inclure la réalisation d'une opération logique sur un signal modifié résultant de l'introduction de la modification. Par exemple, le circuit logique 108 (figure 1) peut réaliser une opération logique sur le signal modifié 116 (figure 1), comme cela a été décrit ci-dessus.
Comme c'est indiqué au bloc 1406, l'introduction peut inclure l'introduction d'une modification sélectionnée de façon pseudo-aléatoire dans au moins une transition d’état parmi un certain nombre de transitions d'état, ou le déroulement d'une ou plusieurs transitions d'état, du signal pendant un cycle d'horloge.
Comme c'est indiqué au bloc 1408, dans certains modes de réalisation, l'introduction peut inclure le retardement du signal avec un retard sélectionné de façon pseudo-aléatoire, par exemple, comme cela a été décrit ci-dessus en se référant aux figures 3 et/ou 4.
Dans certains modes de réalisation, un certain nombre de transitions d'état dans le signal modifié résultant de l'introduction et un certain nombre de transitions d'état dans le signal peuvent avoir la même parité. Par exemple, l’introduction peut inclure le retardement du signal avec un retard prédéfini, comme c'est indiqué au bloc 1410 ; et la réalisation d'une opération logique XOR sur le signal retardé et un signal d’impulsion de tension transitoire sélectionnée de façon pseudo-aléatoire parmi au moins des premier et deuxième signaux d’impulsion de tension transitoires prédéfinis de durées différentes, comme c'est indiqué au bloc 1412.
Dans certains modes de réalisation, une première transition d'état du premier signal d’impulsion de tension et une première transition d'état du deuxième signal d’impulsion de tension surviennent sensiblement simultanément ; une deuxième transition d'état du premier signal d’impulsion de tension survient avant une deuxième transition d'état du deuxième signal d’impulsion de tension ; et la durée du retard prédéfini dépend de la deuxième transition d'état du deuxième signal d’impulsion de tension, par exemple, comme cela a été décrit ci-dessus.
Comme c'est indiqué au bloc 1414, l'introduction peut inclure le masquage du résultat de l'opération XOR conformément à un signal de masque, qui est fondé sur la durée du retard prédéfini et sur la deuxième transition d'état du deuxième signal d’impulsion de tension, par exemple, comme cela a été décrit ci-dessus.
Les fonctions, opérations, composants et/ou caractéristiques, décrits ici en se référant à un ou plusieurs modes de réalisation, peuvent être combinés, ou utilisés en combinaison, avec un ou plusieurs autres fonctions, opérations, composants et/ou caractéristiques décrits ici en se référant à un ou plusieurs autres modes de réalisation, ou vice versa.
Bien que l’on ait illustré et décrit ici certaines caractéristiques, bon nombre de modifications, substitutions, changements, et équivalents peuvent ressortir à l'homme du métier. Il faut donc avoir à l'esprit que les revendications jointes sont destinées à couvrir toutes les modifications et tous les changements tombant dans le cadre réel de l'invention.

Claims (7)

  1. Revendications
    1. Circuit intégré comprenant : un modificateur de signal pour introduire une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'au moins un signal, concernant le traitement en interne de données secrètes dans ledit circuit intégré, le modificateur de signal étant configuré pour masquer lesdites données secrètes dans un dispositif du circuit intégré et pour protéger lesdites données secrètes d’une attaque par canal auxiliaire, le modificateur de signal étant configuré de manière à introduire une nouvelle modification sélectionnée de façon pseudo-aléatoire par intermittence, les données secrètes masquées dans le dispositif du circuit intégré comprenant au moins une clé de chiffrement ou au moins une donnée déchiffrée, le modificateur de signal étant configuré pour distordre un déroulement des pointes de consommation d’un circuit logique du circuit intégré.
  2. 2. Circuit intégré selon la revendication 1, dans lequel ledit modificateur de signal va générer au moins un signal modifié en introduisant ladite modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'un signal d’entrée, et dans lequel ledit circuit intégré comprend un circuit logique pour effectuer une opération logique sur ledit signal modifié. 3. Circuit intégré selon la revendication 2, dans lequel ledit modificateur de signal va introduire une modification sélectionnée de façon pseudo-aléatoire dans au moins une transition d'état parmi un certain nombre de transitions d'état, et le déroulement d'une ou plusieurs transitions d'état, dudit signal pendant un cycle d'horloge. 4. Circuit intégré selon la revendication 3, dans lequel ledit modificateur de signal va retarder ledit signal avec un retard sélectionné de façon pseudoaléatoire. 5. Circuit intégré selon la revendication 3, dans lequel, pendant ledit cycle d'horloge, un certain nombre de transitions d'état dans ledit signal modifié et un certain nombre de transitions d'état dans ledit signal d'entrée ont la même parité. 6. Circuit intégré selon la revendication 3, dans lequel ledit modificateur de signal va retarder ledit signal d'entrée avec un retard prédéfini, et réaliser une opération logique XOR sur le signal retardé et sur le signal d’impulsion de tension transitoire sélectionné de façon pseudo-aléatoire parmi au moins des premier et deuxième signaux d’impulsion de tension transitoires prédéfinis de durées différentes, 7. Circuit intégré selon la revendication 6, dans lequel une première transition d'état dudit premier signal d’impulsion de tension et une première transition d'état dudit deuxième signal d’impulsion de tension surviennent sensiblement simultanément, dans lequel une deuxième transition d'état dudit premier signal d’impulsion de tension survient avant une deuxième transition d'état dudit deuxième signal d’impulsion de tension et dans lequel la durée dudit retard prédéfini dépend de la deuxième transition d'état dudit deuxième signal d’impulsion de tension. 8. Circuit intégré selon la revendication 7, dans lequel ledit modificateur de signal va masquer le résultat de ladite opération XOR conformément à un signal de masque, qui est fondé sur la durée dudit retard prédéfini et sur la deuxième transition d'état dudit deuxième signal d’impulsion de tension. 9. Circuit intégré selon la revendication 1, dans lequel ledit modificateur de signal comprend : deux ou plusieurs modules de fonctions pour générer au moins un ensemble de deux ou plusieurs signaux intermédiaires respectifs en appliquant à au moins un signal d'entrée deux ou plusieurs fonctions logiquement identiques présentant au moins deux retards différents, respectivement ; et au moins un sélecteur permettant de générer au moins un signal modifié, respectivement, en sélectionnant de façon pseudo-aléatoire l'un desdits deux ou plusieurs signaux intermédiaires.
  3. 10. Circuit intégré selon la revendication 1, comprenant un circuit intégré cryptographique pour recevoir une donnée d'entrée et générer une donnée de sortie en traitant en interne de ladite donnée, et dans lequel la consommation dudit circuit intégré cryptographique est statistiquement indépendant de ladite donnée. 11. Procédé de masquage d'une donnée secrète traitée en interne dans un circuit intégré, le procédé comprenant : l'introduction d'une modification sélectionnée de façon pseudo-aléatoire dans un modèle de transition d'état d'au moins un signal, ce qui est lié au traitement de ladite donnée secrète, la modification introduite étant configurée pour masquer ladite donnée secrète dans un dispositif du circuit intégré et pour protéger ladite donnée secrète d’une attaque par canal auxiliaire, ladite donnée secrète masquée dans le dispositif du circuit intégré comprenant au moins une clé de chiffrement ou au moins une donnée déchiffrée, la modification introduite étant configurée pour distordre un déroulement des pointes de consommation d’un circuit logique du circuit intégré, l’introduction d’une nouvelle modification sélectionnée de façon pseudoaléatoire par intermittence.
  4. 12. Procédé selon la revendication 11, comprenant la réalisation d'une opération logique sur un signal modifié résultant de ladite introduction. 13. Procédé selon la revendication 11, dans lequel ladite introduction comprend l'introduction d'une modification sélectionnée de façon pseudoaléatoire dans au moins une transition d'état parmi un certain nombre de transitions d'état et un déroulement d'une ou plusieurs transitions d'état dudit signal pendant un cycle d’horloge. 14. Procédé selon la revendication 13, dans lequel ladite introduction comprend le retardement dudit signal avec un retard sélectionné de façon pseudo-aléatoire. 15. Procédé selon la revendication 13, dans lequel, pendant ledit cycle d'horloge, un certain nombre de transitions d'état dans un signal modifié résultant de ladite introduction et un certain nombre de transitions d'état dans ledit signal ont la même parité. 16. Procédé selon la revendication 13, dans lequel ladite introduction comprend : le retardement dudit signal avec un retard prédéfini ; et la réalisation d'une opération logique XOR sur ledit signal retardé et sur le signal d’impulsion de tension transitoire sélectionné de façon pseudoaléatoire parmi au moins des premier et deuxième signaux d’impulsion de tension transitoires prédéfinis de durées différentes.
  5. 17. Procédé selon la revendication 16, dans lequel une première transition d'état dudit premier signal d'impulsion de tension et une première transition d'état dudit deuxième signal d’impulsion de tension surviennent sensiblement simultanément, dans lequel une deuxième transition d'état dudit premier signal d’impulsion de tension survient avant une deuxième transition d'état dudit deuxième signal d’impulsion de tension, et dans lequel la durée dudit retard prédéfini dépend de la deuxième transition d'état dudit deuxième signal d’impulsion de tension.
  6. 18. Procédé selon la revendication 17, dans lequel ladite introduction comprend le masquage du résultat de l'opération XOR conformément à un signal de masque, qui est fondé sur la durée du retard prédéfini et sur la deuxième transition d'état dudit deuxième signal d’impulsion de tension. 19. Procédé selon la revendication 11 comprenant : l'application audit au moins un signal de deux ou plusieurs fonctions logiquement identiques présentant au moins deux retards différents, respectivement, afin de générer au moins un ensemble de deux ou plusieurs signaux intermédiaires respectifs ; et la génération d'au moins un signal modifié en sélectionnant de façon pseudoaléatoire l'un desdits deux ou plusieurs signaux intermédiaires.
  7. 20. Procédé selon la revendication 11, dans lequel la consommation dudit circuit intégré est statistiquement indépendante de ladite donnée.
FR0803936A 2007-07-12 2008-07-10 Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre Expired - Fee Related FR2919448B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92978407P 2007-07-12 2007-07-12
US60/929784 2007-07-12

Publications (2)

Publication Number Publication Date
FR2919448A1 FR2919448A1 (fr) 2009-01-30
FR2919448B1 true FR2919448B1 (fr) 2019-10-11

Family

ID=40210615

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0803936A Expired - Fee Related FR2919448B1 (fr) 2007-07-12 2008-07-10 Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre

Country Status (3)

Country Link
US (1) US7895327B2 (fr)
DE (1) DE102008032550B4 (fr)
FR (1) FR2919448B1 (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2487901B (en) * 2011-02-03 2019-12-04 Advanced Risc Mach Ltd Power signature obfuscation
WO2013172913A2 (fr) * 2012-03-07 2013-11-21 The Trustees Of Columbia University In The City Of New York Systèmes et procédés pour contrer des attaques de canaux latéraux
US11333560B2 (en) * 2013-06-04 2022-05-17 Commissariat A L'energie Atomique Et Aux Energies Alternatives Temperature sensor with heat-sensitive paste
US9569616B2 (en) 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
DE102014105360A1 (de) * 2014-04-15 2015-10-15 Infineon Technologies Ag Schaltungsanordnung
DE102015211108A1 (de) * 2015-06-17 2016-12-22 Robert Bosch Gmbh Vorrichtung und Verfahren zur Ausführung eines Rechenverfahrens
WO2022133165A1 (fr) * 2020-12-18 2022-06-23 Agita Labs, Inc. Calcul à confidentialité améliorée par chiffrement séquestré
US20230116607A1 (en) * 2021-10-07 2023-04-13 Duke University Integrated circuit protections against removal and oracle-guided attacks

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881287A (en) * 1994-08-12 1999-03-09 Mast; Michael B. Method and apparatus for copy protection of images in a computer system
US6338142B1 (en) * 1997-12-16 2002-01-08 Intel Corporation Method and apparatus for providing secure lockout in electronic devices
US6320965B1 (en) * 1998-10-14 2001-11-20 Liquid Audio, Inc. Secure watermark method and apparatus for digital signals
EP1158384B1 (fr) 2000-05-22 2005-04-27 Infineon Technologies AG Unité de traitement de données et méthode associée
US7007025B1 (en) * 2001-06-08 2006-02-28 Xsides Corporation Method and system for maintaining secure data input and output
US6870090B2 (en) * 2001-11-01 2005-03-22 International Business Machines Corporation System for protecting against leakage of sensitive information from compromising electromagnetic emissions from computing systems
US7454323B1 (en) * 2003-08-22 2008-11-18 Altera Corporation Method for creation of secure simulation models
US7610628B2 (en) * 2005-03-01 2009-10-27 Infineon Technologies Ag Apparatus and method for calculating a representation of a result operand

Also Published As

Publication number Publication date
DE102008032550A1 (de) 2009-04-02
US7895327B2 (en) 2011-02-22
US20090016528A1 (en) 2009-01-15
FR2919448A1 (fr) 2009-01-30
DE102008032550B4 (de) 2022-03-24

Similar Documents

Publication Publication Date Title
FR2919448B1 (fr) Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre
US10742405B2 (en) Method and system for generation of cipher round keys by bit-mixers
EP2280364B1 (fr) Détecteur d'injection de fautes dans un circuit intégré
US9904804B2 (en) Layout-optimized random mask distribution system and method
US20170154193A1 (en) Gate-level masking
EP3332504B1 (fr) Procédé de sécurisation d'une transaction a partir d'un terminal non sécurise
EP2803161A1 (fr) Procede de chiffrement protege contre des attaques par canaux auxiliaires
US8924740B2 (en) Encryption key transmission with power analysis attack resistance
FR3078464A1 (fr) Procede et circuit de mise en oeuvre d'une table de substitution
US11328097B2 (en) Encryption circuit for performing virtual encryption operations
FR2950721A1 (fr) Procede d'execution d'un algorithme de protection d'un dispositif electronique par masquage affine et dispositif associe
FR2989504A1 (fr) Registre protege contre des attaques par injection de fautes
FR2952735A1 (fr) Procede et dispositif de detection d'attaques par injection de fautes
FR2984553A1 (fr) Procede et dispositif de detection de fautes
US20200235910A1 (en) Lightweight mitigation against first-order probing side-channel attacks on block ciphers
EP2284748B1 (fr) Procédé de contremesure pour protéger des données mémorisées
FR3056322A1 (fr) Procede de chiffrement ou de dechiffrement protege contre des attaques par canaux caches
EP2336931B1 (fr) Procédé de vérification de signature
EP1119939B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
EP2315388A1 (fr) Procédé sécurisé de calcul cryptographique et composant électronique correspondant.
EP2471210B1 (fr) Procédé et dispositif de contre-mesure pour protéger des données circulant dans un composant électronique
FR3078419A1 (fr) Procede et circuit de realisation d'une operation de substitution
FR3078463A1 (fr) Procede et dispositif de realisation d'operations en table de substitution
EP3809303B1 (fr) Procédé d'authentification d'un circuit sur puce et système sur puce associé
Novotný Cryptanalytic attacks on cyber-physical systems

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 8

CD Change of name or company name

Owner name: ARM TECHNOLOGIES ISRAEL LTD., IL

Effective date: 20160224

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

TP Transmission of property

Owner name: ARM, GB

Effective date: 20180319

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

RM Correction of a material error

Effective date: 20190909

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

ST Notification of lapse

Effective date: 20230305