Brevet FR2870956A1 — publié le 20051202

Dispositif de traitement de données à neutralité de charge commutable et procédé pour faire fonctionner un composant de circuit à Dual-Rail L'invention concerne un dispositif de traitement de données comportant au moins un composant de circuit Dual-Rail et une unité de commande destinée à générer des signaux d'attaque des composants de circuit Dual-Rail. En outre, l'invention concerne un procédé d'exploitation d'un composant de circuit Dual-Rail. La technique de circuit dite Dual-Rail est une structure améliorée, du point de vue de la sécurité, de circuits, en particulier de dispositifs de traitement de données." Habituellement, les circuits sont réalisés dans la technique de circuit dite Single-Rail . Des réseaux de commutation sont alors réalisés dans le domaine de la micro- électronique de sorte que chaque bit de l'information à traiter est physiquement représentée par un n ud électrique. De tels réseaux de commutation sont relativement peu sûrs en ce qui concerne ce que l'on appelle l'analyse différentielle de profil de courant qui est souvent utilisée lorsqu'un tiers non autorisé tente d'accéder à des informations secrètes. L'analyse différentielle de profil de courant, en anglais Differential Power Analysis (DPA), est l'un des procédés les plus importants d'attaque de cartes à puce, par exemple, pour des applications de sécurité. Pour un programme donné ou un algorithme donné, on exploite des profils de courant, mesurés par des procédés statistiques, de la carte à puce ou leur intégrales de charge calculées sur un ou plusieurs cycles; pour un grand nombre de réalisation de programme, on peut déduire les informations à protéger à partir de la corrélation entre la variation de données systématiques et l'intégrale de charge respective. 2870956 2 Une possibilité pour compliquer au moins sensiblement les attaques par DPA consiste à échanger ou transférer des données entre. des sous-systèmes d'un circuit intégré autant que possible seulement codées. Un système cryptographique approprié est le codage One-Time-Pad. Des clés obtenues de suites aléatoires sont combinées bit par bit par une logique combinatoire XOR à des textes à transmettre. Pour effectuer le décodage, on utilisent là encore une logique combinatoire XOR: Dans le cas du système cryptographique One-Time-Pad, il est important que chaque suite de clés ne soit utilisée qu'une fois pour effectuer le codage et le décodage car sinon on peut obtenir par des procédés statistiques des informations sur les textes en clair. Ce calcul codé de la technique de circuit Single-Rail implique cependant une dépense très grande en matière de circuits et donc de surface et par conséquent a besoin de beaucoup d'énergie. Pour éviter les exigences du codage, on utilise la technique de circuit Dual-Rail. On conclut de ce qui a été dit ci-dessus sur l'analyse différentielle du profil de courant que, dans le cas idéal, les composants de circuit présents dans un circuit intégré doivent être étudiés vis-à- . vis des attaques PDA de façon à toujours présenter le même profil de courant indépendamment des données à traiter. Ce n'est certainement pas le cas du Single-Rail, car l'intégrale de charge associée à la courbe de variation dans le temps des états d'un circuit est fonction des noeuds ou des capacités électriques qui sont rechargées électriquement, et est donc fortement liée aux variations dans le temps des données à traiter. Dans le cas de la technique de circuit Dual-Rail, contrairement à la technique de circuit Single-Rail classique, chaque bit est représenté par deux noeuds k et kq; chaque bit transmis a une valeur logique valide lorsque k correspond à la valeur logique vraie b. de. ce, bit et kq correspond à la valeur logique inverse bn = non(b). Donc, lorsqu'il faut transmettre la valeur b = 1, ceci se fait par un 1 dans - le noeud k. Cependant, la valeur 0 est en même temps transmise au noeud kq de sorte que l'on transmet dans l'ensemble aussi bien un 1 qu'un 0 . Lorsqu'il faut transmettre la valeur b = 0, on transmet en même temps la valeur 1 au noeud kq. Dans les deux cas, on transmet donc un 1 et un 0 . L'équivalence physique des n uds suppose que l'analyse différentielle de profil de courant ne permet plus de déterminer si la donnée. transmise est un 1 ou 0 . Cependant. ceci n'est valable que lorsqu'il y réellement un échange de signal à chaque donnée transmise, donc lorsque l'information 1 et l'information 0 alternent. Si on transmet successivement plusieurs données identiques, les propriétés concernant la capacité d'attaque par l'analyse différentielle de profil de courant se dégradent. L'invariance souhaitée des intégrales de charge est alors. obtenue en introduisant entre deux états ayant des valeurs logiques (b, bn) = (1,0) ou (0,1) un état de précharge, appelé également Precharge en anglais, pour lequel k et kq sont chargés au même potentiel électrique, et prennent donc des valeurs logiques non valides (1,1) ou (0,0). Pour l'état de précharge (1,1), on pourrait avoir la série d'états suivants: (1,1) --> (0,1) -(1,1) .> (1,0) --4 (1;1) -> (1,0) --> (1,1) (0 Pour toute série de caractères quelconques de telles séries de caractères,. il faut que à chaque transition 30 (1,1) -4 (b,bn) un seul n ud passe de 1 à 0 , et pour tous les (b, bn) -4 (1,1) un seul n ud passe de 0 à 1 , indépendamment de la valeur logique valide b du bit d'état en question. On procède de manière analogue pour -les séries d'état avec l'état de précharge (0,0). Il s'ensuit que les intégrales. de charge correspondant à ces séries d'état sont indépendantes de la succession (b,bn) des valeurs logiques valides dans le cas où l'on prend soin que les noeuds aient des capacités électriques identiques. Le profil de courant d'un chemin de. données ainsi mis en oeuvre ne dépend donc pas des variations dans le temps des données à traiter et résiste donc à l'analyse différentielle de profil de courant Un exemple d'une implantation Dual-Rail d'un composant.de 'circuit est enseigné dans le document DE 102 02 726 Al. Le circuit intégré proposé dans ce document est un registre dans un chemin de données. L'agencement de circuit proposé est donc structuré dans la technique Dual-Rail et forme par conséquent un registre neutre du point de vue de la charge. Le problème. posé lors de la réalisation des composants de circuit dé la technique de circuit Dual-Rail est qu'il apparaît une conversion d'énergie nettement plus grande. Le but de l'invention est de proposer un dispositif de traitement de données qui est d'une part sécurisé vis-à-vis des attaques DPA et qui d'autre part a une petite. conversion d'énergie. En.outre, il est proposé un procédé permettant d'exploiter de façon efficace du point de vue énergétique un composant de circuit Dual-Rail. Ce but est. atteint par un. dispositif de traitement de données de la technique mentionnée au début qui est caractérisé en ce que l'unité de commande est destinée à recevoir un signal de sélection de mode de fonctionnement, en ce que des signaux de commande des composants de circuit Dual- Rail raccordés sont générés en fonction du signal de sélection de mode de fonctionnement et en ce que les composants de circuit peuvent être exploités en fonction des signaux... de commande en mode de sécurité ou en mode d'économie de courant, les. mesures de sécurité étant désactivées en mode économie de courant. 2870956 En ce qui concerne le procédé, le but est atteint par un procédé de la technique mentionnée au début qui est caractérisé en ce que le composant de circuit Dual-rail est exploité alternativement en mode de sécurité ou en mode d'économie de courant, les mesures de sécurité étant désactivées en mode d'économie de courant. Par conséquent, une énergie importante n'est donc nécessaire que lorsqu'il y a des opérations critiques et que la sécurité est nécessaire vis-à-vis des attaques. La consommation moyenne en courant diminue donc considérablement sans nuire à la sécurité. Dans les dispositifs de traitement de données de l'invention, les composants de circuit sensibles au SPA et DPA sont réalisés dans une forme étendue de la technique de circuit Dual-rail. Dans ce mode de réalisation étendu, les composants peuvent être exploités dans différents modes de fonctionnement, à savoir dans un mode dit de sécurité et dans un mode dit d'économie de courant. Dans le mode de sécurité, l'activité des sous-systèmes d'un dispositif de traitement de données destiné à des applications de sécurité ne dépend pas des données à. traiter et i], est prévu des phases périodiques de précharge ou de décharge. Avantageusement, les phases de précharge ou de décharge sont également prévues dans des parties de circuit dont la fonction ne nécessite pas ces phases de précharge ou 25- de décharge. En conséquence, en mode d'économie d'énergie, tous les sous-systèmes qui n'ont pas précisément besoin de la fonction du dispositif de traitement de données sont désactivés, par exemple sont déconnectés de l'alimentation d'horloge. Dans l'état inactif, les composants ne consomment qu'une énergie minimale. Les processus de précharge ou de décharge typiques de Dual-Rail ne sont réalisés que dans des parties de circuit dont la fonction nécessite les phases de précharge ou de décharge. Dans les autres parties de circuit, 6 2870956 on économise l'énergie nécessaire, à la précharge ou à la décharge. Dans un mode de réalisation avantageux d'un dispositif de traitement de données de l'invention, le composant de circuit Dual-Rail est un dispositif de mémorisation comportant une unité de précharge qui peut être désactivée lors de la lecture de données. Dans..une autre conformation avantageuse, le composant de circuit DualRail est un registre de chemin de données qui est destiné à effectuer un gel dynamiquement des états de registre, l'unité. de commande étant destinée à générer une combinaison, de signaux de commande dans laquelle il est effectué un gel statique à la place du gel dynamique.' D'autres conformations avantageuses de l'invention sônt présentées dans les sous-revendications. L'invention est expliquée en détail dans la suite en se référant à des exemples de réalisation et aux dessins dans lesquels: la figure. 1 est. un synoptique d'un dispositif de 20 traitement de données de l'invention, la figure 2 est un premier exemple de réalisation d'un dispositif de traitement de données de l'invention comportant une mémoire pouvant être exploitée dans deux modes de fonctionnement, la figure 3 est un chronogramme des signaux de l'agencement de circuit de la figure 2, la figure 4 est une représentation schématique d'un registre de chemin de données selon l'état de la technique, la figure 5 est une implémentation Dual-Rail de 30 l'agencement de circuit de la figure 4, la.. figure 6 est un chronogramme des signaux de l'agencement de circuit de la figure 6 en mode de sécurité et la figure 7 est un chronogramme des signaux de l'agencement de circuit de la figure 6 en mode de sécurité. figure 1 représente un synoptique d'un agencement de circuit de l'invention. L'agencement de circuit représenté comporte un composant, de circuit Dual-Rail 1 et une unité de commande 2. L'unité de commande 1 comporte du côté de l'entrée 5. une première entrée 3 destinée à un signal de commande ctrlext et une deuxième entrée 4 destinée à un signal de sélection de mode de fonctionnement. Le signal de commande ctrlext comporte par. exemple des signaux d'horloge, d'initialis_ation/réinitilisation, d'adresse et de commande. Le signal de commande supplémentaire sm à la deuxième entrée 4 indique le mode de fonctionnement à. régler, donc un mode de sécurité ou un mode d'économie de courant. De plus, il est généré des signaux de commande ctrlsm qui sont directement appliqués au composant de circuit Dual-Rail; il s'agit ici par exemple d'un circuit de chemin de données ou de mémoire. Les signaux de commande sont alors générés soit pour le fonctionnement en mode d'économie de courant soit pour le. fonctionnement en mode de sécurité. Dans le cas où sm = 0, le ctrlsm est généré pour le fonctionnement en mode d'économie de courant, dans le cas où sm = 1,. il est généré pour le fonctionnement en mode de sécurité_ Il est avantageux de générer souvent pour des composants de circuit Dual- Rail simplement des signaux. de commande. C'est pourquoi, dans le cas le plus approprié, aucune modification de la configuration matérielle des composants de circuit Dual-Rail..n'est nécessaire, mais la conversion de mode de fonctionnement souhaitée peut être obtenue en générant de façon appropriée des signaux de commande pour les composants de circuit Dual- Rail en. fonction du signal de sélection de mode de fonctionnement. Pour générer le ctrl.sm , il peut alors êt-r'e avantageux d'utiliser également des rétroactions ctrl fb du circuit de chemin de données et/ou de mémoire à commander avec les signaux de commande ctrl_sm . 8 2870956 Un premier exemple. de réalisation concret est représenté dans la figure 3. Il s'agit ici d'une Dual-Mode-SRAM , donc d'une RAM qui peut être utilisée. soit en mode de sécurité soit, en mode d'économie de courant. Lé moyen particulier en mode Éd'économie de courant consiste à réaliser la précharge des 'lignes de bit, à prévoir dans la technique Dual-Rail avec précharge, seulement les accès en lecture car ce n'est nécessaire que. dans' ce cas- pour la fonction du circuit mais avant. les accès en écriture. En conséquence, la précharge est effectuée en mode de sécurité avant chaque accès. Une- . Dual-Mode-SRAM .de ce genre est représentée. dans la figure 2. L'agencement de circuit représenté comporte une unité de commande 2, un registre maître-esclave' 5 destiné à une entrée de données 6 à laquelle. est appliqué un signal de' données d i, une porte _XQR 7 destinée au décodage des données reçues avec une clé k, kn. Les données appliquées à l'entrée de données 6 sont tout d'abord amenée au registre maître-esclave 5 qui sert de tampon, puis à la porte XOR 7. Dans le registre maîtreesclave 5, il est généré à partir du signal de données appliqué d i un signal Dual-Rail qui est appliqué aux entrées b, bq'de la porte XOR. La clé k kn est également amenée sous la forme d'un signal Dual-Rail aux entrées a, aq de la porte XOR 7.. La porte XOR 7 dispose en outre d'une entrée de validation.enq.Le signal de sortie de. la porte XOR 7 est disponible aux sorties z, zq. Un circuit d'attaque 8 destiné aux accès en écriture est monté en aval de la porte XOR 7. Ce circuit sert principalement à former une sécurité contre des courants transversaux. En aval du circuit d'attaque 8 est montée une cellule de mémoire commutable 9 comportant des transistors à canal n NO, N3 et N4 qui peuvent être commandés par un signal de commande provenant de l'unité de commande 2. La cellule de mémoire 9 a pour but de conserver une information se trouvant sur les lignes bl, blq à la sortie 9 2870956 du circuit d'attaque 8 pour. le cas- où ni une précharge ni un accès en lecture ou écriture ne sont activés. En aval de la cellule de mémoire 9 est disposée une unité de précharge 10 qui est constituée de deux transistors à canal p.P4 et P5. L'unité de précharge 10 peut être commandée par un signal de commande de précharge prq provenant de l'unité de commande 2. En aval de l'unité, de précharge 10 est montée une cellule SRAM à 6 transistors 11.. Cette cellule est constituée -de transistors. à canal n, N5 et. N6 ainsi que d'inverseurs INO et IN1. La cellule de mémoire représentée 11 représente un nombre quelconque de cellules de mémoire qui peuvent être placés le long de la paire de lignes de bit bl, blq. Les cellules de mémoire 11 et les composants montés en amont sont commandés par._. plusieurs signaux provenant de - l'unité de commande 2. , Le signal de commande externe ctrl ext de la figure 1, qui est appliqué à la première entrée de commande 3, - correspond dans la figure 2 aux signaux rst, clk, wr i et rd i, rst étant un signal de réinitialisation, clk étant un signal d'horloge et wr_i et rd i étant des signaux d'activation des accès en écriture ou en lecture. L'unité decommande 2 possède des sorties a_wrq, a bllen, a prq et a wl permettant de délivrer des signaux prq, bllen, prq et wl au dispositif de mémoire SRAM. Lesdits signaux correspondent au signal de commande ctrlsm qui est représenté dans la figure 1: Les lignes de bit bl, blq sont ramenées par d'autres.. liaisons à l'unité de commande 2. Les signaux. transmis ici correspondent au signal ctrl_fb. qui est. représenté sous la forme d'un signal de rétroaction. L'unité de commande 2 est conçue de telle sorte que les signaux prq, bllen,. prq _et wl sont générés en fonction du signal de commande sm de. sorte que, dans le cas. où sm = 0, le dispositif. de mémoire SRAM fonctionne en mode d'économie de courant, c'est-à-dire que l'unité de précharge 10 n'est activée que lorsque c'est.- nécessaire pour la fonction du dispositif de mémoire 1. Dans le cas où sm = 1, le dispositif de mémoire est par contre commandée de sorte qu'une précharge est réalisée à chaque processus d'écriture et de lecture. Pour lire les données, les lignes de bit bl, ,blq sont liées aux entrées b,bq d'un circuit d'attaque 12 qui génère à partir. du signal Dual-Rail appliqué aux entrées b, bq un signal de_ sortie d_0 qui est disponible à une sortie -z du circuit d'attaque.12. Le circuit d'attaque 12 comporte également, dans le mode de réalisation représenté, une porte XORpour pouvoir coder les données à délivrer. Pour effectuer le codage, une. clé, k, kn est amenée aux entrées a, aq du circuit d'attaque 12. La figure.3 représente le chronogramme des signaux générés 15 dans, l'agencement de circuit de la figure 2. Dans le cas où sm = 1, le signal de commande de précharge prq est activé par. le front montant du signal d'horloge clk lorsqu'il y a eu auparavant un accès en écriture ou en lecture de façon synchronisée. Lorsqu'il n'y a eu auparavant aucun accès en écriture ou -en lecture de façon. synchronisée, le signal de commande de précharge prq reste actif. Après avoir désactivé la précharge, la donnée à écrire est délivrée sur les lignes bl,. blq. lors d'un accès en écriture puis le signal wl est activé sur la ligne de mot a wl. Dans le cas d'un accès en lecture, le signal wl est immédiatement activé. Dans le cas où sm = 0, lé mode d'économie de courant est connecté et la précharge est activée par le signal de commande de précharge prq seulement pour des accès en lecture dans le même cycle d'horloge avec le front montant du signal d'horloge clk. Après avoir désactivé la précharge, les signaux sont ensuite immédiatement activés sur les lignes de mot a _wl. Dans le cas d'un accès en écriture, les données sont écrites sur bl, blq puis les lignes de mot a._wl sont activées. La 11 2870956 précharge, non effectuée. ici, avant l'accès entraîne l'économie d'énergie souhaitée. Un deuxième exemple de réalisation d'un agencement de circuit de l'invention des figures 4 à 7 concerne des registres dans les chemins de données pour des applications de sécurité. Les registres, neutres du point de vue de la charge, sont connus par exemple par le document DE 102 02 726. - Dans tout microprocesseur ou microcontrôleur moderne, des états rendant nécessaire une ".interruption momentanée du 10. déroulement du programme apparaissent pendant le déroulement pas à pas d'un algorithme. La cause peut être par exemple des données ou des instructions non encore disponibles. L'interruption peut être effectuée si possible de sorte que l'information présente au moment de l'interruption ou les données présentes restent _totalement conservées. Les états obtenus pendant le déroulement du programme, y compris les résultats de calcul intermédiaires, doivent donc être gelés pour chacune des étapes successives de l'algorithme de sorte que le déroulement du programme puisse être poursuivi 2G avec un retard. minimum dès que l'information nécessaire, à savoir l'instruction auparavant manquante ou la donnée manquante, est disponible. Une représentation. schématique de cette situation, du point de vue de la technique des circuits, est illustrée dans la figure 4. Un seul bit d'un chemin de données et une seule étape partielle... (k) Éd'un déroulement de programme sont représentés. Les états correspondant aux étapes partielles k 1, 2, du:traitement du programme ou des résultats intermédiaires Zk sont calculés dans des circuits logiques arithmétiques à partir de zk-1 ainsi que des signaux de commande ctlk (signal de données ak ) ou sont pris en charge par des bits voisins du chemin de données ou sont amenés de' l'extérieur (ak puis sont mémorisés dans des circuits de registre associés qui disposent chacun d'une entrée d'horloge. 12 2870956 Le gel .décri.t du contenu zk des registres correspondant aux états est réalisé par une rétroaction dans laquelle la sortie de données du registre k est liée aux circuits de multiplexage se trouvant en. amont de l'entrée des. registres. Chacun des circuits de multiplexage dispose alors d'une entrée de commande- à laquelle est appliqué un signal de commandé selk . La combinaison du multiplexage et du registre est réalisée dans la figure 4 par une ligne en pointillés. Un agencement de circuit concret dans la technique des circuits Dual-Rail ayant cette fonctionnalité est représenté dans la figure 5. Les, références TP, TN près de transistors respectifs désignent des transistors à canal p ou des transistors à canal n. La référence , ... désigne chacune un chemin de données. La valeur indiquée entre. crochets représente le. j-ième bit, j = 1, n. L'agencement de circuit peut être utilisé en mode de sécurité ou en mode d'économie de courant. La commande du mode de fonctionnement actif est effectuée simplement par des signaux de commande.'à prévoir d'une unité de commande 22. Le mode de fonctionnement pour lequel les signaux de commande sont générés dépend du. signal de sélection de mode de fonctionnement sm (voir: la figure 1.). Le comportement. dans le temps des signaux de données: et de commande est représenté dans les figures.6 et.7; le comportement en mode de sécurité, donc pour sm = 1, est représenté dans la figure 6,. et le comportement en. mode d'économie de courant, pour sm = O, est représenté dans la figure 7. Le circuit intégré comporte des bornes d'entrée EA1 , EA2 , avec j = 1..n. Il est prévu pour chaque bit ou chaque chemin de données deux bornes d'entrée EA1 , EA2 . Le signal logique valide. a est appliqué à la borne d'entrée EA1, tandis que le signal, complémentaire aq est appliqué à la borne d'entrée EA2. Les bornes d'entrée EA1 et EA2 13 2870956 sont respectivement reliée à des bornes de commande de transistors TNj2, TNJ1. Ceux-ci forment, conjointement à un transistor de sélection TNj3 à la borne d'entrée ES duquel peut être appliqué un signal de sélection s ,-un agencement de circuit qui délivre les signaux d'entrée a , aq à des premières lignes AL1, AL2. Les transistors de sélection TNj3 sont connectés entre une borne de potentiel de référence BP et -les bornes de source respectives des transistors:TNj1, TNj2. Les signaux ne sont délivrés en sortie que lorsque le transistor TNj3 est commuté en mode passant. Étant donné que l'agencement forme un multiplexeur,. on ne peut dans tous les cas commuter en mode passant qu'un seul des n transistors TNj3. Un signal est appliqué. aux autres transistors et les commute en mode bloqué. Les premières lignes ou lignes de sortie ALI, AL2 sont reliées à des premières bornes AA1, AA2 au niveau desquelles peut être prélevé le signal d'entrée a , aq appliqué aux bornes d'entrée EA1 , EA2 . Ce signal Dual-Rail, qui peut être prélevé sur les premières bornes ou bornes de sortie AA1, AA2 est désigné par z, zq, Une cellule de mémoire SZ1 est. reliée aux premières bornes AA1, AA2. La cellule de mémoire SZ1 est constituée de deux inverseurs montés en opposition. Le premier inverseur est formé par les transistors TNz2, TPz2. Le deuxième inverseur 25. est formé par 'les transistors TPz1, TNz1.. La cellule de mémoire SZ1 comporte en outre un transistor de sélection TNz3 à la borne de commande duquel peut être appliquée un signal d'horloge h. Le transistor de sélection TNz3 est monté entre la borne de potentiel de référence BP et les inverseurs. Les sorties des inverseurs sont reliées aux premières lignes AL1, AL2, Si le signal d'horloge h a la valeur logique 0, la valeur appliquée aux premières lignes AL1, AL2 est alors écrite dans la cellule de mémoire SZ1. Si le signal d'horloge passe de 0 14 2870956 logique,..à 1 logique, la valeur est alors conservée dans la cellule de mémoire SZ1 car les inverseurs sont reliés au potentiel de référence par le transistor de sélection connecté TNz3. Dans un mode de sécurité, le circuit fonctionne '.à pleine fonctionnalité Dual-Rail y compris l'utilisation par la suite des états de précharge. De façon correspondante, les premières lignes AL1, AL2 sont amenées après un état logique valide dans un état de précharge dans lequel les premières lignes AL1, AL2 sont portées au même potentiel. Dans le présent circuit intégré, ceci est effectué par le moyen VE1 qui peut être désigné par dispositif de précharge. La précharge des première et deuxième lignes AL1, AL2 est déclenchée dès que la valeur du signal d'horloge passe de 1 logique 1 à o logique. 'Le moyen VE1 est constitué de deux transistors TPP1, TPP2 qui sont sollicités chacun par le même signal de commande pq. Le signal de commande pq est un signal périodique qui est couplé en permanence au signal d'horloge h. Les transistors TPP1, TPP2 du moyen VE1 sont commutés à une borne de potentiel d'alimentation VP par les. premières lignes AL1, AL2. Les premières lignes AL1, AL2 reçoivent donc dans leur état de précharge la valeur (1,1). Un dispositif 'de transmission de données DEi, constitué des transistors TPO1, TP02 et du transistor de sélection TP03, 25.. transmet, les signaux appliqués.._ sur les premières lignes AL1, AL2 aux deuxièmes. lignes.ZL1, ZL2; Pour cela, le dispositif de transmission de données DEI doit être commuté en mode actif par le transistor de sélection TP03. Le signal de sélection sq appliqué au transistor de sélection TP03 est synchrone du signal d'horloge h de sorte que l'on a une transmission de données périodique. Les données sont ainsi transmises de la première cellule de mémoire. SZ1 dans une deuxième cellule de mémoire SZ2. 2870956 La deuxième cellule de mémoire SZ2 est également constituée d'inverseurs montés en opposition. Le premier inverseur est formé par les. transistors TPy1, TN1. Le. deuxième inverseur est formé par les transistors TPy2, TNy2. La sortie des inverseurs est reliée aux deuxièmes lignes ZL1, ZL2. Une mémorisation intermédiaire dans la deuxième cellule de mémoire SZ2 n'est effectuée.-que lorsque cette cellule de mémoire est commutée en mode actif par un transistor de sélection TPy3 auquel est appliqué le signal d'horloge h. Le transistor de sélection TPy3 est dans le cas présent commuté entre la borne Éde potentiel d'alimentation VP et les inverseurs montés en opposition. Pour obtenir également sur les deuxièmes lignes ZL1, ZL2 la neutralité decharge souhaitée, un moyen VE2 destiné_. à la précharge de ces lignes est également associé aux deux lignes 1,2 et peut également être désigné par dispositif de précharge. Le moyen VE2 comporte les transistors TNP1, TNP2 qui sont chacun sollicités. par le même signal de commande p.. Le moyen VE2 est commuté entre les deux lignes ZL1, ZL2 et la borne de potentiel de référence BP. Comme déjà expliqué ci-dessus, des états qui rendent nécessaire une interruption momentanée du déroulement du programme apparaissent. dans des processeurs modernes pendant le déroulement pas à pas d'un algorithme. L'information présente au moment de l'interruption doit alors être totalement conservée, Pour.. cela, on utilise la deuxième cellule de mémoire SZ2 qui veille à ce que les états obtenus dans le déroulement du programme puissent être gelés. Si le déroulement du programme peut être poursuivi, les données mémorisées dans la deuxième_. cellule de mémoire SZ2 peuvent.. alors être de nouveau transmis aux premières bornes.AA1-, AA2 par le deuxième dispositif de transmission de données DE2 qui 16 2870956 est commuté entre la sortie. de_ la deuxième cellule de mémoire SZ2 et les premières lignes AL1, AL2. La structure du deuxième dispositif de transmission de données DE2 est: fondamentalement similaire au' premier dispositif de transmission de données DEI. Un transistor de sélection TNO3, auquel peut être appliqué un signal de commande s , est commuté entre la borne de potentiel de référence BP et deux éléments de commutation TNO1,. TNO2. Les bornes de. commande des transistors TNO1, TNO2 sont reliées aux deuxièmes lignes ZL1, ZL2. Les bornes de drain des transistors TN01, TNO2 comportent une liaison respective aux premières lignes AL1, AL2. Le gel du contenu d'un registre de chemin de données est en conséquence effectué" par une rétroaction. Le signal' de données appliqué_ aux premières. bornes, les bornes de sortie, est alors 'fondamentalement mémorisé provisoirement dans une deuxième cellule de mémoire. La valeur. mémorisée dans la deuxième cellule de mémoire SZ2 peut être renvoyée par rétroaction aux premières bornes à un instant quelconque par le deuxième dispositif de transmission de données DE2 En se référant à la figure 6, il sera expliqué plus précisément dans ce qui suit le mode de fonctionnement du circuit intégré en mode de 'sécurité. Le chronogramme des signaux de données et de commande est divisé en six intervalles de_ temps ZIl à ZI6 Les signaux h (signal d'horloge) pq, s , s ., p, et. sq désignent des signaux de commande qui sont appliqués à des blocs de circuit respectifs visible dans la figure 5. Les signaux de commande sont générés par le dispositif de commande 22. Les signaux de données, appliqués aux bornes d'entrée, aux premières bornes et aux deuxièmes bornes, sont désignées. par. a/aq , z/zq et /yq.." En ce qui concerne le premier intervalle de temps indiqué ZII, il faut tout d'abord, lorsque h = 1, conserver dans la cellule de mémoire SZ1 une valeur (z, zq) = (dO, d0q) = dO* transmise par l'une. des. entrées de multiplexeur (EA1 , EA2 ) aux premières bornes AA1, AA2. On suppose pour cela que le signal de commande pq, qui doit être associé au moyen de précharge des lignes de sortie AL1, AL2, a 'la valeur logique 1: et que tous les signaux de commande.s , avec j = 1, n, ainsi que s ont la valeur logique O. Par conséquent, ni le moyen de précharge des lignes de sortie VE1 ni. les:entrées de multiplexeur ne sont actifs. Au début de l'intervalle de temps ZI1, les deuxièmes lignes ZL1, ZL2 sont préchargées. par la deuxième unité de précharge VE2 (signal de commande p = 1) à la valeur (0,0). Après que le signal de commande p a pris sa valeur et que, simultanément, le signal de commande sq a pris la valeur logique 0 par le flanc montant du signal de commande p, la valeur d0* est écrite par la première unité de transmission de données DEI suivant (y, yq). Dans l'intervalle de temps suivant ZI2, cette valeur,, qui. est désormais mémorisée dans la deuxième cellule de mémoire SZ2, est conservé avec sq = 1, p = 0 et h = O. Simultanément, au début de l'intervalle de temps Z:I2, les premières lignes AL1; AL2 sont préchargées par pq = 0. à (z, zq) = (1,1). Ensuite, avec pq = 1 et s = 1, la valeur dl* . = . (a , aq ) =. (d1, dl q) , appliquée entre-temps aux bornes d'entrée EA1 , EA2 , est écrite suivant (z,. zq). Étant donné que le circuit est réalisé dans la technologie:Dual-Rail,: les lignes d'entrée, reliées aux bornes d'entrée EA1, EA2, disposent d'une unité de précharge. Par conséquent, on a pour le chronogramme du signal d'entrée (a ,. aq ) deux variantes possibles dont la première est représentée dans l'intervalle de temps ZI2 et la deuxième est représentée dans l'intervalle de temps ' Z 1 6. . . . ' : Avant d'ouvrir l'une des entrées de multiplexeur j avec: le signal de commande s = 1, (c'est-à-dire tant que s 0), les lignes d'entrée reliées aux bornes d'entrée EA1, EA2, qui 18 2870956 se trouvent en amont de l'entrée du registre (non visible dans la figure 5) sont préchargées à une valeur (0, 0). Les signaux d'entrée (a ; aq ) prennent la valeur logique valide dl*. donc avant ou après l'activation de l'entrée de multiplexeur. Dans. la deuxième variante, les lignes d'entrée reliées aux bornes d'entrée EA1, .EA2 ne sont pas préchargées. Les signaux d'entrée (a , aq ) doivent cependant avoir dé façon stable la valeur logique valide (ici d3*) avant d'ouvrir l'une des entrées de multiplexeur.ES avec s = 1. L'intervalle de temps.Z13 correspond à l'intervalle de temps ZI1 Tant que le signal d'horloge h a la valeur logique 1, la. valeur dl* dans la première cellule de mémoire SZ1 est conservée. à la valeur (z/zq). La deuxième cellule de mémoire SZ2 est écrite, comme décrit ci-dessus, avec la valeur dl*.. L'intervalle de temps_ ZI4 correspond à l'intervalle de temps ZI2.. Tant que le signal d'horloge h a la valeur logique 0, la valeur dl* est conservée dans la deuxième cellule de mémoire SZ2, c'est-à-dire que l'on a D1* _ (y, yq). Étant donné que la valeur logique du signal de commande passe à 0 en raison du flanc montant de l'horloge h, les lignes de sortie AL1, AL2 =reliées aux premières bornes AA1, AA2 sont p'réchargée à (z, zq) . Après commutation de la première unité de précharge VE1 en mode inactif par: sq.= 1, un nouveau signal peut être appliqué aux premières bornes AA1, AA2. 25. Contrairement à l'intervalle de temps SZ2, on commute maintenant- en mode _actif non pas l'une des entrées de multiplexeur EA1, EA2, mais la deuxième unité de transmission de données DE2 au moyen du signal de sélection s . Par conséquent,. la valeur d1* est transmise aux bornes de sortie AA1, AA2 par l'unité de transmission de données DE2, ce qui signifie (z, zq) = dl*. Dans l'intervalle de temps ZI4, il est donc représenté le cas d'une rétroaction de données. La donnée dl* est donc gelée. Cela signifie que la valeur dl*, transmise tout d'abord dans l'intervalle de. temps Z12 de la première cellule de mémoire SZ1 à la deuxième cellule de mémoire SZ2, est réécrite dans l'intervalle de temps Z14 dans la première cellule de mémoire. Etant donné que, entre deux processus d'écriture de (z, zq) respectivement (y, yq), les paires de n uds, c'est='àdire des lignes respectives AL1, AL2 respectivement ZL1, ZL2 sont préchargées à (1, 1) respectivement (0,0), les intégrales de charge sont non seulement indépendantes des variations de données à 1/entrée de données mais également indépendantes du passage de nouvelles données de= l'entrée de données dans la première cellule de mémoire SZ1 ou du renvoi par rétroaction de la deuxième cellule de mémoire SZ2 dans la première cellule de mémoire SZ1. Cette situation n'est cependant valable que pour le cas, représenté dans les intervalles de temps ZI1 et ZI4, dans lequel la pré.charge.-a été effectuée par lesbornes d'entrée EA1 , EA2 à la valeur (0,0) avant de prendre leur valeur logique valide_. Dans le cas représenté dans l'intervalle de temps Z16, l'intégrale de charge est indépendante du passage de données de la première cellule de mémoire SZ1 dans la deuxième cellule de mémoire SZ2,. mais pas du passage de données aux bornes d'entrée EA1 , EA2 . Dans l'agencement de circuit représenté dans la figure 5, les groupes de transistors, responsables du signal de données (y, yq), de la deuxième cellule de mémoire SZ2, du deuxième dispositif de précharge VE2 et du deuxième dispositif de transmission de données DE2 sont complémentaires du groupe de transistors qui concerne le signal de données. (z, zq). Complémentaire signifie ici que l'on peut intervertir les transistors de canal n et de canal p. Lorsque le signal de commande au niveau de la deuxième entrée 4 du dispositif de commande 22 est sm = 0, le registre de chemin de données 21 sera utilisé en mode d'économie de courant. Le gel dynamique . décrit ci-dessus de l'état des registres, c'est-à-dire la copie variant périodiquement de (z, zq) vers.,.(.y, yq) et inversement de (y, yq) vers (z; zq) est remplacé par un gel statique de l'état de (z, zq). Ceci est obtenu en raison du fait que les signaux de commande s , h, pq, sq et p sont sollicités par. une combinaison de signaux prédéterminés.. Dans l'exemple de réalisation décrit, la combinaison de signaux est la suivante: s = 0 pour tous les. j = 0, 1 n, h = 1, pq = 1, sq = 1 et p = 0. On obtient ainsi que, pour. sm 0, ni. on écrit (y, yq) ni on copie vers (z, zq). Aux. moment. où l'on charge des données, l'un des s. , ke{1, 2, ...n} devient actif. Lorsque- l'état du système est donc 'gelé; (z zq) reste, comme représenté dans la figure 7, dans l'état qui a été' écrit pour la dernière fois par l'une des entrées de données a , 'aq Les chronogrammes pour Sm 0 sont Éreprésentés dans la figure 7. s- est toujours à 0 dans le casdu gel statique , p est toujours à 0 et sq est toujours à 1. Le passage selon l'invention entre deux modes de fonctionnement, le mode de sécurité et le mode d'économie de courant, est donc effectué de façon simple en raison du faite que l'unité de commande 22 génère les signaux de commande pour le" registre de chemin de données de façon à effectuer une copie variant périodiquement ou bien de façon à n'effectuer aucune copie variant périodiquement. La fonctionnalité logique, visible de l'extérieur, du registre est dans les deux cas la même mais la consommation de courant du circuit diffère. Alors que le profil de courant de l'agencement de circuit dans le mode d'économie de courant est indépendant des données traitée et peut être déduit des données traitées par analyse différentielle. du profil de courant, le profil de courant en mode de sécurité ne peut être déduit des données traitées et est donc résistant à DPA'. L'invention a été décrite en se référant à l'applicationa une unité de' mémoire SRAM et à' un registre de chemin de données. Un autre exemple d'application de l'idée de 21 2870956 L'invention d'une neutralité de charge commutable est ce que l'on appelle des Register Files . Un Register File sert en général à. des buts différents. D'une part, il sert à la mémorisation provisoire d'adresses et de données qui, sont nécessaires à des. tâches traitées précisément -:par la.CPU. D'autre part, il est destiné à l'accès en lecture, simultanée, rapide et libre à généralement au moins deux opérandes. De même,. il peut être utilisé à des accès en écriture rapide, 'libre et en même temps que des accès en lecture. Il- s'agit alors de ce que l'on appelle des Write-Back=Ports du Register File qui servent à réécrire des résultats ou des résultats intermédiaires d'opérations de calcul. Pour pouvoir apprécier toutes ces exigences, les Register Files sont réalisées sous - forme de Multi-PortRAM. Ce sont des registres commutés 15.__, ensemble _-par leurfaisceau_,de lignes de bit, l'unité fonctionnelle Registre étant définie ici comme étant un ensemble de cellules de registre de un bit de même type présentant les propriétés susmentionnées. Le nombre de bits, qui peut être mémorisé dans un registre, correspond en général à la longueur binaire du chemin de données. Le nombre de ports correspond au nombre maximum d'accès différents qui seront possible simultanément sur différents registres Dans, un mode de sécurité, on utilise les Multi- Port-RAM selon l'invention de façon à toujours recharger toutes les paires de lignes de bit associées à tous les ports à chaque cycle de =T. Dans le mode.: d'économie de. courant, on ne trouve par contre à un cycle d'horloge donné que des processus de rechargement des paires de lignes de bit. qui supporte la fonction de l'information. justement nécessaire à aCPU. L'application de changement de mode de fonctionnement de l'invention à d'autres composants decircuit est du domaine de compétence de l'homme du métier références " Liste des 1 4 -g écriture 9 10 11 12 15. 21 22 NO, N3, N4, N5, P4, P5 INO, IN1 a, aq, b, bq z, zq a brg; a bllen, abl, ablq bl; blq d i d o wrq, bllen, prq, k, kn rst clk sm: fonctionnement wr 1 rd iCellule de mémoire commutable Unité de précharge Cellule RAM Circuit d'attaque de sortie Registre de chemin de données Unité de commande N6 Transistors NMOS Transistors PMOS Inverseurs Entrées Sorties aprq, awl Sorties de commande Entrées de rétroaction Lignes/signal sur ces lignes Signal d'entrée de données Signal de sortie de données wl Signaux clé Initialisation/réinitialisàtion Signal d'horloge Signal de 'sélection de mode de Signal d'écriture Signal de lecture Composant de circuit DualRail Unité de commande Première entrée Deuxième entrée Registre maitre-, esclave Entrée de données Porte XOR Circuit d'attaque pour des accès en VP BP E EA1 EA2 ES a aq ... A: AA1 AA2 AL1 AL2É 1 5., zq MUX TN1 1, TN12, TN1 3, TNn3 s 20:SZ1 TPz1, TPz2, TNz3 h ZA1 ZA2 ZL1 ZL2 Y :Yq. TPy1, TPy2, TNy3.: . h VE1 TPp1, TPp2Borne de potentiel 3'a.limentation Borne de potentiel de référence Entrée de données Borne d'entrée Borne d'entrée Borne de commande Signal d'entrée Signal d'entrée complémentaire: Sortie de données Borne Borne Ligne Ligne Signal de sortie Signal de sortie complémentaire Multiplexeur TNn1, TNn2 Transistors Transistors (de sélection) Signal de sélection Cellule de mémoire TNz1, TNz2 Transistors Transistor (de sélection) Signal de sélection Borne Borne Ligne Ligne Signal de sortie Signal de sortie complémentaire TNy1, TNy2 Transistors Transistor (de sélection) Signal de sélection Unité de précharge Transistors pq Signal de sélection VE2 Unité de précharge Transistors Signal de sélection Dispositif de transmission de données TNp1,TNp2 p - DEI TP01, TP02 Transistors TP03 Transistor (de sélection) sq DE2É Signal de sélection Dispositif de transmission de données TN01, TNO2 Transistors TNO3 Transistor (de sélection) s Signal de sélection Revendications Dispositif de traitement de données comportant - au moins un composant de circuit Dual-Rail (1; 21) et 5 - une unité de commande (2 22) destinée à générer des signaux de commande pour les composants de circuit Dual-Rail (1; 21), caractérisé en ce que - l'unité de commande (2; 22) est destinée à recevoir un 10' s'ignal de séléctiôri dé mode dé fonctionne-ment (sm) des signaux de commande (ctrl_sm) destinés aux composants de circuit Dual-Rail raccordés sont générés en fonction du signal de sélection de mode de fonctionnement (sm) et - les composants de circuit (1; 21) sont utilisés en fonction des signaux de commande dans un mode de sécurité ou dans un mode d'économie de courant, les moyens de sécurité étant désactivés en mode d'économie de courant. 2. Dispositif de traitement de données selon la revendication 1, caractérisé en ce que la même fonctionnalité des composants de circuit Dual-Rail (1; 21) est donnée dans le mode d'économie de courant et dans le mode de sécurité. 3. Dispositif de traitement de données selon la revendication 1 ou 2, caractérisé en ce que le composant de circuit Dual Rail est un dispositif de mémoire (1) comportant une mémoire de précharge (10), montée en amont, qui peut être désactivé lors de la lecture de données par un signal de commande de précharge. 4. Dispositif de traitement de données selon la revendication 1 ou 2, caractérisé en ce que le composant de circuit Dual Rail est un registre de chemin de données (21) qui est destiné à geler dynamiquement des états de registre, l'unité de commande (22) étant destinée à générer une combinaison de signaux de commande dans laquelle un gel statique est effectué dans le mode d'économie de courant à la place du gel dynamique. 5. Dispositif de traitement de données selon la revendication 4, caractérisé en ce que le gel dynamique est effectué par une copie, variant périodiquement, d'états de signaux entre 'deux cellules de mémoire (SZ1, SZ2), et la copie, variant périodiquement, entre les cellules de mémoire étant empêchée dans le cas du gel statique. 6. Utilisation du dispositif de traitement de données selon l'une des revendications 1 à 5 dans une carte à puce. 15.7. Procédé d'utilisation d'un composant de circuit Dual-Rail (1; 21), caractérisé en ce que le composant de circuit Dual-Rail (1; 21) est utilisé alternativement dans un mode de sécurité ou dans un mode d'économie de courant, les moyens de sécurité étant désactivés dans le mode d'économie de courant. 8. Procédé selon la revendication 7, dans lequel le composant de circuit Dual-Rail (1) est commandé par des signaux de. commande et dans lequel: des signaux de commande sont amenés dans un mode de sécurité et permettent, dans le cas de. signaux Dual-Rail (bl, blq), d'insérer des états de précharge entre des états de signaux Dual-Rail valides à l'intérieur du composant de circuit Dual Rail, et - des signaux de commande (ctrlsm) sont amenés dans un mode d'économie de courant. et permettent, dans le cas de signaux Dual-Rail (bl, blq), d'insérer des états de précharge entre des états de signaux Dual-Rail valides à l'intérieur du composant de circuit Dual-Rail seulement c'est nécessaire à la fonction du composant (11) sollicité par le signal Dual- Rail (bl, blq).