FR2973138A1 - SECURE MEMORY ELEMENT - Google Patents
SECURE MEMORY ELEMENT Download PDFInfo
- Publication number
- FR2973138A1 FR2973138A1 FR1100889A FR1100889A FR2973138A1 FR 2973138 A1 FR2973138 A1 FR 2973138A1 FR 1100889 A FR1100889 A FR 1100889A FR 1100889 A FR1100889 A FR 1100889A FR 2973138 A1 FR2973138 A1 FR 2973138A1
- Authority
- FR
- France
- Prior art keywords
- flip
- flop
- signal
- clock
- memory element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006870 function Effects 0.000 claims description 6
- 230000000630 rising effect Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 101100041125 Arabidopsis thaliana RST1 gene Proteins 0.000 description 1
- 101100443250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DIG1 gene Proteins 0.000 description 1
- 101100443251 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DIG2 gene Proteins 0.000 description 1
- 101100041128 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rst2 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
- G06K19/07309—Means for preventing undesired reading or writing from or onto record carriers
- G06K19/07363—Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
- H03K3/0372—Bistable circuits of the master-slave type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Logic Circuits (AREA)
Abstract
L'élément mémoire comprend une horloge, une première bascule (8a) de type D maître-esclave cadencée par l'horloge et une seconde bascule (8b) de type D maître-esclave, structurellement identique à la première bascule, cadencée par l'horloge et connectée à la première bascule (8a) de sorte que la seconde bascule (8b) commute à chaque front actif de l'horloge où la première bascule ne commute pas.The memory element comprises a clock, a first master-slave D-type flip-flop (8a) clocked by the clock, and a second master-slave D-type flip-flop (8b), structurally identical to the first flip-flop, clocked by the master. clock and connected to the first flip-flop (8a) so that the second flip-flop (8b) switches to each active edge of the clock where the first flip-flop does not switch.
Description
ELEMENT MEMOIRE SECURISE Domaine technique de l'invention L'invention est relative aux circuits intégrés sécurisés, et plus particulièrement à une bascule de type D maître-esclave résistante aux attaques par canaux 5 cachés. État de la technique Les circuits électroniques sécurisés sont destinés à traiter des données secrètes ou confidentielles. Ils sont, par exemple, utilisés dans les cartes à puce pour effectuer des transactions bancaires. De manière générale, ce type 10 de circuit est construit autour d'un microprocesseur associé à une mémoire. Le microprocesseur met en oeuvre des algorithmes de cryptographie pour chiffrer ou déchiffrer des messages, ou bien utilise un certificat pour authentifier un utilisateur. Une donnée secrète, telle qu'une clé de cryptographie, peut transiter entre le 15 microprocesseur et la mémoire par un registre. Un registre est une mémoire tampon formée de bascules, généralement de type D maître-esclave (flipflop D). A chaque bascule correspond un bit du registre. La figure 1 représente le symbole d'une bascule D maître-esclave classique. La bascule comprend une entrée de données D, une entrée d'horloge H et une 20 sortie Q. Un signal RST permet d'initialiser l'état de la bascule lors de la mise sous tension, c'est-à-dire la valeur du bit mémorisé dans la bascule. A chaque front montant du signal d'horloge H, la sortie Q recopie la valeur d'entrée D. La bascule maintient ensuite cette valeur jusqu'au prochain front montant. Ainsi, lorsque la donnée présentée en entrée D est identique à la 25 valeur stockée dans la bascule, l'état de la sortie Q ne varie pas. Par contre, lorsque l'entrée D diffère de la valeur stockée, la sortie Q change d'état. On parle alors de commutation ou de basculement. La figure 2 représente la consommation en courant d'une telle bascule. La courbe en traits pointillés correspond au courant consommé par la bascule lors 30 d'une commutation, tandis que la courbe en trait plein représente la consommation de la bascule en absence de commutation. TECHNICAL FIELD OF THE INVENTION The invention relates to secure integrated circuits, and more particularly to a master-slave type D flip-flop resistant to concealed channel attacks. State of the art Secure electronic circuits are intended to process secret or confidential data. They are, for example, used in smart cards to carry out banking transactions. In general, this type of circuit is built around a microprocessor associated with a memory. The microprocessor implements cryptographic algorithms to encrypt or decrypt messages, or uses a certificate to authenticate a user. Secret data, such as a cryptographic key, may pass between the microprocessor and the memory by a register. A register is a buffer formed of flip-flops, generally of master-slave type D (flipflop D). Each flip-flop corresponds to a bit of the register. Figure 1 shows the symbol of a conventional master slave D flip-flop. The flip-flop includes a data input D, a clock input H, and a Q output. An RST signal is used to initialize the state of the flip-flop when power is turned on, i.e. the value bit memorized in the flip-flop. At each rising edge of the clock signal H, the output Q copies the input value D. The flip-flop then maintains this value until the next rising edge. Thus, when the data presented at input D is identical to the value stored in the flip-flop, the state of output Q does not vary. On the other hand, when the input D differs from the stored value, the output Q changes state. This is called switching or switching. Figure 2 shows the current consumption of such a rocker. The dotted line curve corresponds to the current consumed by the flip-flop when switching, while the solid line represents the consumption of the flip-flop in the absence of switching.
On distingue donc deux profils de consommation selon que la donnée mémorisée dans la bascule change ou ne change pas. Ainsi, la consommation de la bascule dépend de l'état de la donnée en entrée et de l'état courant dans la bascule. There are therefore two consumption profiles depending on whether the data stored in the flip-flop changes or does not change. Thus, the consumption of the flip-flop depends on the state of the input data and the current state in the flip-flop.
Les attaques par canaux cachés (« Side Channel Attacks » en anglais), et plus particulièrement les attaques de type analyse différentielle (« Differential Power Analysis », DPA) et en corrélation (« Correlation Power Analysis », CPA) de puissance ou des émissions électromagnétiques, exploitent cette différence de consommation pour retrouver la clé cryptographique stockée dans le circuit sécurisé. Les fabricants de circuits sécurisés prévoient des systèmes de contre-mesure pour protéger les registres contre les attaques DPA. En particulier, la demande de brevet FR2802733 vise à masquer la différence de consommation d'une bascule D maître-esclave. Hidden channel attacks ("Side Channel Attacks" in English), and more particularly the differential analysis ("Differential Power Analysis" (DPA) and correlation ("Correlation Power Analysis", CPA) type of power or emissions electromagnetic, exploit this difference in consumption to find the cryptographic key stored in the secure circuit. Secure circuit manufacturers provide countermeasure systems to protect registers against DPA attacks. In particular, the patent application FR2802733 aims to mask the consumption difference of a master-slave D flip-flop.
La figure 3 représente schématiquement la bascule D décrite dans cette demande. La bascule comprend classiquement un étage maître 2M et un étage esclave 2S, de structure identique et connectés en série. La bascule comprend en outre un circuit de masquage de la consommation. Le circuit de masquage se compose d'un étage témoin 4M monté en parallèle de l'étage maître 2M et d'un étage témoin 4S monté en parallèle de l'étage esclave 2S. Le fonctionnement de cette bascule est en bref le suivant. Lorsque la donnée en entrée D est identique à la donnée en mémoire, les étages maître et esclave ne commutent pas. Par contre, les deux étages témoins commutent. Lorsque la donnée en entrée diffère de celle en mémoire, l'un des étages maître et esclave commute, ainsi que l'un des étages témoins. En d'autres termes, il y a toujours deux des quatre étages qui commutent à chaque front d'horloge. On observe cependant que la différence de consommation n'est pas suffisamment réduite et on parvient encore à distinguer l'état dans lequel se trouve la bascule. Cela est dû au fait que l'étage témoin n'est pas rigoureusement identique à l'étage correspondant de la bascule (maître ou esclave). En effet, un noeud des étages témoins est déconnecté, comme cela est visible sur la figure 3. La consommation due au basculement d'un étage témoin est alors différente de celle de l'étage maître ou esclave. Figure 3 schematically shows the flip-flop D described in this application. The flip-flop conventionally comprises a master stage 2M and a slave stage 2S, of identical structure and connected in series. The flip-flop further includes a consumption masking circuit. The masking circuit consists of a 4M control stage connected in parallel with the master stage 2M and a control stage 4S connected in parallel with the slave stage 2S. The operation of this rocker is in short the following. When the input data D is identical to the data in memory, the master and slave stages do not switch. On the other hand, the two control stages switch. When the input data differs from that in memory, one of the master and slave stages switches, as well as one of the control stages. In other words, there are always two of the four stages that switch at each clock edge. However, it is observed that the difference in consumption is not sufficiently reduced and it is still possible to distinguish the state in which the flip-flop is located. This is because the control stage is not strictly identical to the corresponding stage of the flip-flop (master or slave). Indeed, a node of the control stages is disconnected, as can be seen in FIG. 3. The consumption due to the tilting of a control stage is then different from that of the master or slave stage.
En outre, la consommation électrique de cette bascule est fortement augmentée, en raison du basculement systématique de deux étages. Résumé de l'invention On constate qu'il existe un besoin de prévoir un élément mémoire robuste aux 5 attaques, tout en ayant une consommation électrique maîtrisée. On tend à satisfaire ce besoin en prévoyant une horloge, une première bascule de type D maître-esclave cadencée par l'horloge et une seconde bascule de type D maître-esclave, structurellement identique à la première bascule, cadencée par l'horloge et connectée à la première bascule de sorte que la 1 o seconde bascule commute à chaque front actif de l'horloge où la première bascule ne commute pas. Dans un mode de réalisation, l'élément mémoire comprend un circuit logique configuré pour détecter une commutation de la première bascule et pour commander la commutation de la seconde bascule lorsque la première bascule 15 ne commute pas. Selon un développement, le circuit logique reçoit en entrée un signal d'entrée de la première bascule, un signal de sortie de la première bascule et un signal de sortie de la seconde bascule, le circuit logique étant configuré pour faire commuter la seconde bascule lorsque aucun des trois signaux est dans un état 20 actif ou lorsque deux des trois signaux sont dans un état actif. Dans un autre mode de réalisation, l'élément mémoire comprend un circuit générateur de l'horloge à partir d'un signal externe, configuré pour introduire un retard aléatoire entre chaque front actif de l'horloge et un front actif associé du signal externe. 25 Selon un développement, l'horloge est générée à l'aide d'une pluralité d'inverseurs à partir du signal externe et le circuit générateur comprend un circuit de modulation du nombre d'inverseurs. Description sommaire des dessins D'autres avantages et caractéristiques ressortiront plus clairement de la 30 description qui va suivre de modes particuliers de réalisation donnés à titre d'exemples non limitatifs et illustrés à l'aide des dessins annexés, dans lesquels : la figure 1, précédemment décrite, est une représentation symbolique d'une bascule D maître-esclave ; la figure 2, précédemment décrite, représente la consommation en courant d'une bascule selon la figure 1, avec et sans commutation ; la figure 3, précédemment décrite, est un schéma synoptique d'une bascule D maître-esclave sécurisée selon l'art antérieur ; la figure 4 représente un mode de réalisation d'un élément mémoire 10 sécurisé muni de deux bascules D maître-esclave interconnectées par un circuit logique ; les figures 5 à 9 sont des chronogrammes illustrant un fonctionnement global de l'élément mémoire de la figure 4 ; la figure 10 représente des profils de consommation en courant de 15 l'élément mémoire selon la figure 4 ; la figure 11 est un schéma synoptique d'un élément mémoire muni d'un arbre d'horloge interne ; les figures 12 à 18 sont des chronogrammes de signaux internes de l'élément mémoire de la figure 11 ; 20 - la figure 19 représente des profils de consommation en courant de l'élément mémoire selon la figure 11 ; et la figure 20 représente un mode de réalisation du circuit logique de la figure 4. Description d'un mode de réalisation préféré de l'invention 25 On propose ici de dupliquer une bascule de type D maître-esclave classique pour former un élément mémoire sécurisé. Les deux bascules sont interconnectées de manière à obtenir la commutation d'une seule de ces bascules à chaque front actif d'un signal d'horloge. Ainsi, la consommation électrique de l'élément mémoire est sensiblement constante. Cela permet de contrer efficacement les attaques faisant appel à une analyse de puissance. On définit un front actif comme étant le front, ou la transition, d'un signal qui déclenche la commutation d'une des bascules. Dans la description qui suit, on a choisi de façon arbitraire le front montant comme front actif du signal d'horloge. De façon similaire, l'état actif d'un signal correspondra à l'état logique haut ou niveau logique '1'. Le fonctionnement de l'élément mémoire serait toutefois similaire à celui décrit ci-dessous en considérant le front descendant comme front actif et l'état bas comme état actif. In addition, the power consumption of this rocker is greatly increased, due to the systematic switching of two floors. SUMMARY OF THE INVENTION It will be seen that there is a need to provide a robust memory element for attacks while having controlled power consumption. This need is satisfied by providing a clock, a first master-slave D-type flip-flop clocked by the clock and a second master-slave D-type flip-flop, structurally identical to the first flip-flop, clocked and connected. to the first flip-flop so that the 1 o second flip-flop switches to each active edge of the clock where the first flip-flop does not switch. In one embodiment, the memory element comprises a logic circuit configured to detect switching of the first flip-flop and to control the switching of the second flip-flop when the first flip-flop 15 does not switch. According to a development, the logic circuit receives as input an input signal of the first flip-flop, an output signal of the first flip-flop and an output signal of the second flip-flop, the logic circuit being configured to switch the second flip-flop when none of the three signals is in an active state or when two of the three signals are in an active state. In another embodiment, the memory element comprises a clock generating circuit from an external signal, configured to introduce a random delay between each active edge of the clock and an associated active edge of the external signal. According to one development, the clock is generated using a plurality of inverters from the external signal and the generator circuit includes a number of inverter modulation circuit. BRIEF DESCRIPTION OF THE DRAWINGS Other advantages and features will become more clearly apparent from the following description of particular embodiments given by way of nonlimiting examples and illustrated with the aid of the appended drawings, in which: FIG. previously described, is a symbolic representation of a master-slave D flip-flop; FIG. 2, previously described, represents the current consumption of a flip-flop according to FIG. 1, with and without switching; FIG. 3, previously described, is a block diagram of a secure master-slave D flip-flop according to the prior art; FIG. 4 shows an embodiment of a secure memory element 10 provided with two master-slave D flip-flops interconnected by a logic circuit; Figures 5 to 9 are timing diagrams illustrating an overall operation of the memory element of Figure 4; Fig. 10 shows current consumption profiles of the memory element according to Fig. 4; Fig. 11 is a block diagram of a memory element provided with an internal clock tree; Figures 12 to 18 are timing diagrams of internal signals of the memory element of Figure 11; FIG. 19 represents current consumption profiles of the memory element according to FIG. 11; and FIG. 20 shows an embodiment of the logic circuit of FIG. 4. DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION It is proposed here to duplicate a conventional master-slave D-type flip-flop to form a secure memory element. . The two flip-flops are interconnected so as to obtain the switching of only one of these flip-flops to each active edge of a clock signal. Thus, the power consumption of the memory element is substantially constant. This effectively counter attacks using power analysis. An active edge is defined as the edge, or transition, of a signal that triggers the switching of one of the flip-flops. In the following description, the rising edge has been arbitrarily chosen as the active edge of the clock signal. Similarly, the active state of a signal will correspond to the logic high or logic '1' state. The operation of the memory element would, however, be similar to that described below, considering the falling edge as the active edge and the low state as the active state.
La figure 4 représente un mode de réalisation d'un élément mémoire 6 ayant une consommation équilibrée. L'élément mémoire 6 comprend une entrée de données D, une entrée d'horloge H et une sortie Q connectées respectivement aux entrées-sorties D1, H1 et QI d'une première bascule 8a de type D maître-esclave. L'élément comprend en outre une seconde bascule 8b, structurellement identique à la bascule 8a et cadencée par la même horloge H. Les entrées H1 et H2 des bascules 8a et 8b sont donc reliées à l'entrée H de l'élément mémoire. Les entrées d'initialisation RST1 et RST2 des bascules 8a et 8b sont reliées à une entrée RST de l'élément 6. Pour des raisons de commodité, les signaux des bascules ont ci-après le même nom que les entrées-sorties auxquelles ils sont affectés. La bascule 8b est reliée à la bascule 8a par l'intermédiaire d'un circuit logique 10. Le circuit 10 reçoit en entrée le signal d'entrée D1 de la bascule 8a, le signal de sortie QI de la bascule 8a et le signal de sortie Q2 de la bascule 8b. La sortie du circuit 10 est connectée à l'entrée D2 de la bascule 8b. Ainsi, le signal D2 est une fonction logique des signaux D1, QI et Q2 dont le calcul est effectué de manière décalée par rapport au front actif de l'horloge. Dans cette configuration, les entrées D et D1 reçoivent le même signal. La bascule 8a réalise la fonction mémoire de l'élément 6 et la bascule 8b permet d'équilibrer la consommation électrique. En fait, l'élément mémoire a la même fonction que celle d'une bascule D maître-esclave. Le circuit 10 est configuré pour détecter une commutation de la bascule 8a et provoquer la commutation de la bascule 8b lorsque la bascule 8a ne commute pas. Figure 4 shows an embodiment of a memory element 6 having a balanced consumption. The memory element 6 comprises a data input D, a clock input H and an output Q respectively connected to the inputs-outputs D1, H1 and Q1 of a first master-slave type D flip-flop 8a. The element further comprises a second latch 8b, structurally identical to the latch 8a and clocked by the same clock H. The inputs H1 and H2 of the latches 8a and 8b are connected to the input H of the memory element. The initialization inputs RST1 and RST2 of the flip-flops 8a and 8b are connected to an input RST of the element 6. For reasons of convenience, the signals of the flip-flops have hereinafter the same name as the input-outputs to which they are connected. affected. The flip-flop 8b is connected to the flip-flop 8a via a logic circuit 10. The circuit 10 receives as input the input signal D1 of the flip-flop 8a, the output signal QI of the flip-flop 8a and the signal of Q2 output of the flip-flop 8b. The output of the circuit 10 is connected to the input D2 of the flip-flop 8b. Thus, the signal D2 is a logical function of the signals D1, Q1 and Q2, the calculation of which is carried out offset from the active edge of the clock. In this configuration, the inputs D and D1 receive the same signal. The flip-flop 8a performs the memory function of the element 6 and the flip-flop 8b makes it possible to balance the power consumption. In fact, the memory element has the same function as that of a master-slave D flip-flop. The circuit 10 is configured to detect a switching of the flip-flop 8a and cause switching of the flip-flop 8b when the flip-flop 8a does not switch.
La fonction logique du circuit 10 correspond à celle d'une porte NON-OU exclusif à trois entrées. En considérant D1, QI et Q2 comme les entrées du circuit 10 et D2 sa sortie, on obtient : D2= D1OQ10Q2 La table de vérité du circuit logique 10 est donnée ci-dessous : D1 QI Q2 D2 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 On constate que la sortie D2 du circuit 10 passe à l'état haut lorsque aucune des entrées Dl, QI et Q2 est à l'état haut ou lorsque deux de ces trois entrées sont à l'état haut. Les figures 5 à 9 représentent, de manière simplifiée, des chronogrammes de 1 o signaux de l'élément mémoire de la figure 4. Le tracé de la figure 5 correspond au signal d'horloge H qui cadence les bascules 8a et 8b. Les tracés des figures 6 à 9 représentent les signaux en entrées et sorties des bascules 8a et 8b, respectivement D1, QI, D2 et Q2. Les bascules sont préalablement initialisées à l'aide du signal RST. Les 15 signaux QI et Q2, qui correspondent aux données mémorisées dans les bascules, sont initialement à l'état bas (ou niveau logique `0'). The logic function of circuit 10 corresponds to that of an exclusive three-input NOR gate. Considering D1, Q1 and Q2 as the inputs of the circuit 10 and D2 its output, we obtain: D2 = D1OQ10Q2 The truth table of the logic circuit 10 is given below: D1 QI Q2 D2 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 It can be seen that the output D2 of the circuit 10 goes high when none of the inputs D1, Q1 and Q2 are at the high state or when two of these three inputs are in the high state. Figures 5 to 9 show, in a simplified manner, timing diagrams of 1 o signals of the memory element of Figure 4. The plot of Figure 5 corresponds to the clock signal H which rates flip-flops 8a and 8b. The plots of FIGS. 6 to 9 represent the input and output signals of flip-flops 8a and 8b, respectively D1, Q1, D2 and Q2. The flip-flops are initially initialized using the RST signal. The signals QI and Q2, which correspond to the data stored in the flip-flops, are initially in the low state (or logic level `0 ').
Lors d'un premier front montant d'horloge, à l'instant t1, l'entrée D1 est à l'état bas (Fig.6 : D1='0'). Ainsi, conformément au fonctionnement d'une bascule D maître-esclave décrit en relation avec la figure 1, la sortie QI reste à l'état bas (Fig.7 : Q1='0'). 11 n'y a donc pas de commutation dans la bascule 8a. During a first rising clock edge, at time t1, the input D1 is in the low state (FIG. 6: D1 = '0'). Thus, in accordance with the operation of a master-slave D flip-flop described in connection with FIG. 1, the output QI remains in the low state (FIG. 7: Q1 = '0'). There is therefore no switching in the flip-flop 8a.
Les signaux D1, Q1, et Q2 étant initialement tous à '0', le signal D2 vaut '1' (Fig.8) d'après la table de vérité du circuit logique 10. Au front montant, la sortie Q2 recopie l'entrée D2 de la bascule 8b. Le signal Q2 passe donc de '0' à '1' (Fig.9), ce qui signifie que la bascule 8b commute. A l'instant t2, l'entrée Dl étant maintenue à l'état bas, la bascule 8a ne commute toujours pas. Le signal D2 vaut '0' à l'instant t2 car une seule des entrées du circuit 10 est à l'état haut (D1='0', Q1='0', Q2='1'). De ce fait, la bascule 8b commute et le signal Q2 retombe à '0'. A l'instant t3, le signal d'entrée Dl de la bascule 8a vaut '1' alors que la valeur précédemment stockée dans la bascule 8a est '0' (Fig.7 ; Q1(t2)='0'). On observe donc la commutation de la bascule 8a (Q1(t3)='1'). A cet instant, le signal D2 vaut '0' car seule l'entrée Dl est à l'état haut. En conséquence, la bascule 8b ne commute pas (Fig.9 : Q2(t3) = Q2(t2) ='O'). Au quatrième front montant (t4), le signal Dl se maintient à '1' donc la bascule 8a ne commute pas. Par contre, le signal D2 est passé à 1', ce qui provoque la 20 commutation de la bascule 8b. Ainsi, on peut montrer qu'on a systématiquement un seul basculement par front montant de l'horloge, quel que soit l'état de l'entrée D et l'état courant des bascules 8a et 8b. En effet, on constate sur les figures 7 et 9 qu'un seul des signaux QI et Q2 change de niveau à chaque front montant. 25 Le signal D2 tient compte du signal Dl (ou D) et de l'état en sortie de la bascule 8a (QI) pour savoir s'il y aura une commutation de la bascule 8a. Il tient également compte de l'état de la sortie de la bascule 8b (Q2) pour générer, le cas échant, la commutation de la bascule 8b. La mise à jour du signal D2 est réalisée à un instant différent de celui des 30 bascules 8a et 8b, par exemple sur les fronts descendants de l'horloge H (Fig.8). On évite ainsi des aléas dans la bascule 8b qui provoqueraient une surconsommation. Since the signals D1, Q1, and Q2 are initially all '0', the signal D2 is '1' (FIG. 8) according to the truth table of the logic circuit 10. At the rising edge, the output Q2 copies the signal D2 input of the flip-flop 8b. The signal Q2 thus goes from '0' to '1' (FIG. 9), which means that the flip-flop 8b switches. At time t2, the input D1 being kept low, the flip-flop 8a still does not switch. The signal D2 is '0' at time t2 because only one of the inputs of the circuit 10 is in the high state (D1 = '0', Q1 = '0', Q2 = '1'). As a result, flip-flop 8b switches and signal Q2 drops back to '0'. At time t3, the input signal D1 of flip-flop 8a is '1' while the value previously stored in flip-flop 8a is '0' (Fig.7; Q1 (t2) = '0'). We observe the switching of the flip-flop 8a (Q1 (t3) = '1'). At this moment, the signal D2 is '0' because only the input D1 is in the high state. As a result, flip-flop 8b does not switch (Fig.9: Q2 (t3) = Q2 (t2) = '0'). At the fourth rising edge (t4), the signal D1 remains at '1' so the flip-flop 8a does not switch. On the other hand, the signal D2 has passed to 1 ', which causes switching of the flip-flop 8b. Thus, it can be shown that there is systematically only one flip-flop on the rising edge of the clock, regardless of the state of the input D and the current state of the flip-flops 8a and 8b. Indeed, it can be seen in FIGS. 7 and 9 that only one of the signals QI and Q2 changes level at each rising edge. The signal D2 takes into account the signal D1 (or D) and the output state of the flip-flop 8a (QI) to know whether there will be a switching of the flip-flop 8a. It also takes into account the state of the output of the flip-flop 8b (Q2) to generate, if necessary, the switching of the flip-flop 8b. The updating of the signal D2 is carried out at a different time from that of the flip-flops 8a and 8b, for example on the falling edges of the clock H (FIG. 8). This avoids hazards in the latch 8b which would cause overconsumption.
La figure 10 représente l'enveloppe de la consommation en courant définie à partir de tous les modes de fonctionnement de l'élément mémoire 6. La courbe en trait plein représente la limite inférieure de l'enveloppe de consommation, c'est-à-dire la consommation minimale quel que soit le mode de fonctionnement de l'élément 6. La courbe en traits pointillés correspond à la limite supérieure de l'enveloppe de consommation, c'est-à-dire la consommation maximale quel que soit le mode de fonctionnement. L'écart entre les deux courbes correspond à la différence maximale de consommation (dans le pire des cas) selon que la donnée mémorisée dans l'élément 6 change d'état ou non. Cette différence de consommation, inévitable, est attribuable à la polarisation des noeuds internes des bascules. On constate que, par rapport à la figure 2, cet écart est considérablement réduit, ce qui rend plus difficiles les attaques DPA. La figure 11 est une vue détaillée de certains constituants de l'élément mémoire 6 : les bascules 8a et 8b, ainsi qu'un arbre d'horloge interne 20. Le circuit logique 10 n'est pas représenté sur cette figure. Chaque bascule 8a, 8b comprend un étage maître 2M et un étage esclave 2S. Les étages maître et esclave sont de structure identique et connectés en série. Dans l'exemple de réalisation de la figure 11, chaque étage maître 2M (respectivement esclave 2S) comprend un inverseur 12 suivi d'une première porte de transfert TM (respectivement TS), et une boucle de mémorisation 14. La boucle de mémorisation 14 comprend deux autres inverseurs 16, 18 et une seconde porte de transfert TM' (respectivement TS') en série. Les portes de transfert sont par exemple formées de deux transistors MOS connectées en parallèle, l'un de type N et l'autre de type P. La porte de transfert TM relie la sortie de l'inverseur 12 à un noeud de stockage de la boucle de mémorisation 14 situé entre la porte de transfert TM' et l'inverseur 16. Le noeud de stockage est noté NM1 dans l'étage maître de la bascule 8a, NS1 dans l'étage esclave de la bascule 8a, NM2 dans l'étage maître de la bascule 8b et NS2 dans son étage esclave. La sortie de l'inverseur 16 de l'étage maître est connectée à l'entrée de l'inverseur 12 de l'étage esclave. FIG. 10 shows the envelope of the current consumption defined from all the operating modes of the memory element 6. The solid line represents the lower limit of the consumption envelope, that is, say the minimum consumption regardless of the operating mode of element 6. The dotted line curve corresponds to the upper limit of the consumption envelope, ie the maximum consumption regardless of the mode of operation. operation. The difference between the two curves corresponds to the maximum consumption difference (in the worst case) depending on whether the data stored in the element 6 changes state or not. This difference in consumption, inevitable, is attributable to the polarization of the internal nodes of the flip-flops. It can be seen that, compared with FIG. 2, this difference is considerably reduced, which makes the DPA attacks more difficult. Figure 11 is a detailed view of some components of the memory element 6: the latches 8a and 8b, and an internal clock shaft 20. The logic circuit 10 is not shown in this figure. Each flip-flop 8a, 8b comprises a master stage 2M and a slave stage 2S. The master and slave stages are identical in structure and connected in series. In the embodiment of FIG. 11, each master stage 2M (respectively slave 2S) comprises an inverter 12 followed by a first transfer gate TM (respectively TS), and a storage loop 14. The storage loop 14 comprises two other inverters 16, 18 and a second transfer gate TM '(respectively TS') in series. The transfer gates are, for example, formed of two MOS transistors connected in parallel, one of the N type and the other of the P type. The transfer gate TM connects the output of the inverter 12 to a storage node of the storage loop 14 located between the transfer gate TM 'and the inverter 16. The storage node is denoted NM1 in the master stage of the flip-flop 8a, NS1 in the slave stage of the flip-flop 8a, NM2 in the master stage of the flip-flop 8b and NS2 in its slave stage. The output of the inverter 16 of the master stage is connected to the input of the inverter 12 of the slave stage.
On notera que les signaux aux noeuds NM1 et NM2 des étages maîtres correspondent respectivement aux compléments des signaux d'entrée Dl et D2. En outre, les signaux aux noeuds NS1 et NS2 des étages esclaves correspondent respectivement aux signaux Q1 et Q2. On ajoute alors dans chaque bascule 8a, 8b un inverseur 19 en parallèle avec l'étage esclave 2S pour obtenir les sorties QI et Q2 de la figure 4. Les bascules 8a et 8b, et plus particulièrement les portes de transfert TM, TM', TS et TS', sont commandées par des signaux d'horloge interne CPI et CPN. Ces signaux sont affectés sur les grilles des transistors NMOS et PMOS de chaque porte de transfert. Les signaux CPI, CPN sont complémentaires. Ainsi, les deux transistors d'une porte sont simultanément bloqués ou passants. Les signaux CPI, CPN proviennent de l'arbre d'horloge 20 intégré à chaque élément mémoire. Ils sont générés à l'aide d'une pluralité d'inverseurs à partir de l'horloge externe H. It will be noted that the signals at the nodes NM1 and NM2 of the master stages respectively correspond to the complements of the input signals D1 and D2. In addition, the signals at the nodes NS1 and NS2 of the slave stages respectively correspond to the signals Q1 and Q2. Then, in each flip-flop 8a, 8b, an inverter 19 is added in parallel with the slave stage 2S to obtain the outputs QI and Q2 of FIG. 4. The flip-flops 8a and 8b, and more particularly the transfer gates TM, TM ', TS and TS 'are controlled by internal clock signals CPI and CPN. These signals are assigned to the gates of the NMOS and PMOS transistors of each transfer gate. The CPI, CPN signals are complementary. Thus, the two transistors of a door are simultaneously blocked or passersby. The CPI, CPN signals come from the clock tree 20 integrated in each memory element. They are generated using a plurality of inverters from the external clock H.
L'arbre d'horloge 20 est habituellement constitué de deux inverseurs 22 et 24 connectés en série. Le signal d'horloge externe H se propage au travers des deux inverseurs. Le signal CPN est récupéré en sortie du premier inverseur 22 et le signal CPI est récupéré en sortie du deuxième inverseur 24. Ainsi, le signal CPN correspond au complément du signal externe H et le signal CPI correspond au signal H. Les portes de transfert TM et TM' sont commandées en opposition de phase : lorsque la porte TM est passante, la porte TM' est bloquée, et inversement. Pour cela, on inverse l'affectation des signaux CPI et CPN entre les portes de transfert TM et TM'. De même, les portes TS et TS' sont commandées en opposition de phase. Par contre, les portes TM et TS' sont commandées simultanément, ainsi que les portes TM' et TS. Les figures 12 à 18 représentent, de manière simplifiée, des chronogrammes de signaux internes des bascules 8a et 8b. Les tracés des figures 12 à 14 représentent respectivement les signaux d'horloge interne, CPI et CPN, et l'entrée Dl de la bascule 8a (équivalant à l'entrée D de l'élément mémoire). Les tracés des figures 15 à 18 représentent les signaux aux noeuds de stockage NM1, NS1, NM2 et NS2 des bascules 8a et 8b. The clock shaft 20 usually consists of two inverters 22 and 24 connected in series. The external clock signal H propagates through the two inverters. The signal CPN is recovered at the output of the first inverter 22 and the signal CPI is recovered at the output of the second inverter 24. Thus, the signal CPN corresponds to the complement of the external signal H and the signal CPI corresponds to the signal H. The transfer gates TM and TM 'are controlled in phase opposition: when the gate TM is busy, the gate TM' is blocked, and vice versa. For this purpose, the assignment of the CPI and CPN signals between the transfer gates TM and TM 'is reversed. Similarly, the TS and TS 'gates are controlled in phase opposition. On the other hand, the doors TM and TS 'are controlled simultaneously, as well as the doors TM' and TS. Figures 12 to 18 show, in a simplified manner, timing of internal signals flip-flops 8a and 8b. The plots of FIGS. 12 to 14 respectively represent the internal clock signals CPI and CPN and the input D1 of the flip-flop 8a (equivalent to the input D of the memory element). The plots of FIGS. 15 to 18 represent the signals at the storage nodes NM1, NS1, NM2 and NS2 of the flip-flops 8a and 8b.
Le fonctionnement des bascules 8a et 8b est décrit en détail ci-dessous, en relation avec le schéma synoptique de la figure 11 et les chronogrammes des figures 12 à 18. Entre les instants tl et t2, la donnée présentée en entrée Dl (ou D) correspond déjà à celle stockée dans la bascule 8a, au noeud NM1 (NM1=1= D1). Il n'a donc pas de commutation de la bascule 8a, ni dans l'étage maître (NM1 : Fig.15), ni dans l'étage esclave (NS1 : Fig.16) pendant cette période. Par contre, on observe la commutation de la bascule 8b. Au front descendant du signal CPI (ou front montant du signal CPN), la porte de transfert TM de la 1 o bascule 8b devient passante et le noeud NM2 change d'état (Fig.17). Au front suivant, c'est-à-dire au front montant du signal CPI, la porte TS devient passante. L'étage esclave recopie alors la valeur du noeud NM2 dans le noeud NS2 (Fig.18). A l'instant t2, l'entrée Dl de la bascule 8a change d'état (D1='1'). Cela 15 occasionne d'abord le basculement de l'étage maître 2M de la bascule 8a. En effet, en activant la porte TM au front descendant du signal CPI, le signal au noeud NM1 passe à '0' (Fig.15). Puis, l'étage esclave 2S bascule au front montant suivant du signal CPI (à l'instant t3). La porte TS est activée et le noeud NS1 recopie la valeur du noeud NM1 (Fig.16). 20 Puisque la commutation de la bascule 8a a eu lieu, le circuit 10 ne provoque aucun changement du signal D2 (non représenté) de la bascule 8b entre les instants t2 et t3. On n'observe donc aucun basculement dans les étages maître et esclave associés. Entre les instants t3 et t4, l'entrée Dl reste à '1'. Lors de l'activation des portes 25 TM et TS, il n'y a donc pas d'évolution dans l'état des noeuds NM1 et NS1 de la bascule 8a. Le circuit 10 commande alors la commutation de la bascule 8b, avec une nouvelle valeur de l'entrée D2. Le noeud NM2 passe à '0' au front descendant du signal CPI, suite à l'activation de la porte TM, puis le noeud NS2 recopie 3o cette valeur lors de l'activation de la porte TS, au front montant du signal CPI (instant t4). The operation of the flip-flops 8a and 8b is described in detail below, in connection with the block diagram of FIG. 11 and the timing diagrams of FIGS. 12 to 18. Between the times t1 and t2, the data presented at the input D1 (or D) ) already corresponds to that stored in the flip-flop 8a, the node NM1 (NM1 = 1 = D1). It therefore has no switching of the flip-flop 8a, neither in the master stage (NM1: Fig.15), nor in the slave stage (NS1: Fig.16) during this period. On the other hand, we observe the switching of the flip-flop 8b. At the falling edge of the signal CPI (or rising edge of the signal CPN), the transfer gate TM of the 1 o flip-flop 8b becomes conducting and the node NM2 changes state (FIG. 17). At the next edge, that is to say at the rising edge of the signal CPI, the gate TS becomes busy. The slave stage then copies the value of the node NM2 in the node NS2 (FIG. 18). At time t2, the input D1 of flip-flop 8a changes state (D1 = '1'). This first causes the tilting of the master stage 2M of the flip-flop 8a. Indeed, by activating the TM gate at the falling edge of the signal CPI, the signal at the node NM1 goes to '0' (Fig.15). Then, the slave stage 2S switches to the next rising edge of the signal CPI (at time t3). The TS gate is activated and the node NS1 copies the value of the node NM1 (FIG. Since switching of flip-flop 8a has occurred, circuit 10 does not cause any change of signal D2 (not shown) of flip-flop 8b between times t2 and t3. There is therefore no tilting in the associated master and slave stages. Between instants t3 and t4, entry D1 remains at '1'. When the gates TM TM and TS are activated, there is therefore no change in the state of the nodes NM1 and NS1 of the flip-flop 8a. The circuit 10 then controls the switching of the flip-flop 8b, with a new value of the input D2. The node NM2 goes to '0' at the falling edge of the signal CPI, following the activation of the gate TM, then the node NS2 copies this value during the activation of the gate TS, to the rising edge of the signal CPI ( moment t4).
Ainsi, on peut montrer qu'à chaque front descendant du signal H (ou front descendant du signal CPI), seul l'un des étages maîtres commute. Au front montant du signal H (ou front montant du signal CPI), seul l'un des étages esclaves commute. Pour résumer, un seul des quatre étages de l'élément mémoire bascule à chaque front du signal d'horloge H, contrairement à la bascule D maître-esclave sécurisée de l'art antérieur. Il n'y a donc pas d'augmentation de la consommation instantanée relative à la commutation systématique de deux étages. L'élément mémoire consomme moins d'énergie qu'une bascule sécurisée classique. Thus, it can be shown that at each falling edge of the signal H (or falling edge of the signal CPI), only one of the master stages switches. At the rising edge of the signal H (or rising edge of the signal CPI), only one of the slave stages switches. To summarize, only one of the four stages of the memory element switches at each edge of the clock signal H, unlike the master-slave D flip-flop secure of the prior art. There is therefore no increase in the instantaneous consumption relative to the systematic switching of two floors. The memory element consumes less power than a conventional secure flip-flop.
Dans un mode de réalisation préférentiel représenté par des pointillés sur la figure 11, on modifie l'arbre d'horloge 20 pour former un générateur de délai aléatoire entre le signal d'horloge externe H et les signaux d'horloge interne CPI et CPN qui commandent les bascules 8a, 8b. Le générateur de délai aléatoire 20 comporte, en plus des inverseurs 22 et 24 de l'arbre d'horloge, deux inverseurs 26 et 28 connectés en série et disposés entre les inverseurs 22 et 24. Le générateur comprend également deux portes de transfert 30 et 32. La porte 30 relie la sortie de l'inverseur 22 à l'entrée de l'inverseur 24 et la porte 32 relie la sortie de l'inverseur 28 à l'entrée de l'inverseur 24. Chaque inverseur est caractérisé par un temps de propagation du signal d'horloge externe H au travers de l'inverseur. On distingue deux états de fonctionnement du générateur 20, selon l'état des portes 30 et 32. Celles-ci sont commandées en opposition de phase par un signal DJIT. Lorsque le signal DJIT est à l'état bas (DJIT='0'), la porte 30 est passante et le signal d'horloge H traverse les inverseurs 22 et 24. Le signal CPN est alors inversé et décalé du temps de propagation de l'inverseur 22 par rapport au signal H. De la même manière, le signal CPI est inversé et décalé du temps de propagation de l'inverseur 24 par rapport au signal CPN. Le signal CPI correspond donc au signal H décalé de deux temps de propagation. Cet état de fonctionnement correspond en fait à celui d'un arbre d'horloge classique. Par contre, lorsque la porte 36 est passante (DJIT='1'), le signal H traverse deux inverseurs supplémentaires, 26 et 28. Les retards appliqués aux signaux CPN et CPI sont alors augmentés du temps de propagation de l'inverseur 26 et du temps de propagation de l'inverseur 28. On peut donc, à l'aide du signal DJIT, moduler le retard temporel entre chaque front montant du signal de commande CPI et un front montant associé du signal externe H. Ce retard peut prendre deux valeurs distinctes, selon le nombre d'inverseurs utilisés pour générer le signal CPI, deux ou quatre dans l'exemple de la figure 11. Le retard est largement inférieur à la durée d'une période du signal H. II est de l'ordre de la moitié du délai de propagation du signal entre l'entrée H et la sortie Q de la bascule de la figure 1, c'est-à-dire entre 50 ps et 100 ps en technologie 130 nm. Le générateur 20 peut également comprendre des inverseurs et portes de transfert additionnels, agencé de manière à former d'autres boucles de propagation du signal H. On augmente ainsi le nombre de valeurs de retard possibles. Le signal DJIT est alors codé sur plusieurs bits. In a preferred embodiment represented by dotted lines in FIG. 11, the clock tree 20 is modified to form a random delay generator between the external clock signal H and the internal clock signals CPI and CPN which control flip-flops 8a, 8b. The random delay generator 20 comprises, in addition to the inverters 22 and 24 of the clock shaft, two inverters 26 and 28 connected in series and arranged between the inverters 22 and 24. The generator also comprises two transfer gates 30 and 32. The gate 30 connects the output of the inverter 22 to the input of the inverter 24 and the gate 32 connects the output of the inverter 28 to the input of the inverter 24. Each inverter is characterized by a propagation time of the external clock signal H through the inverter. There are two operating states of the generator 20, according to the state of the gates 30 and 32. These are controlled in phase opposition by a DJIT signal. When the DJIT signal is in the low state (DJIT = '0'), the gate 30 is on and the clock signal H passes through the inverters 22 and 24. The signal CPN is then inverted and offset from the propagation time of the inverter 22 with respect to the signal H. In the same way, the signal CPI is inverted and offset from the propagation time of the inverter 24 with respect to the signal CPN. The signal CPI therefore corresponds to the signal H shifted by two propagation times. This operating state corresponds in fact to that of a conventional clock tree. On the other hand, when the gate 36 is on (DJIT = '1'), the signal H passes through two further inverters, 26 and 28. The delays applied to the signals CPN and CPI are then increased by the propagation time of the inverter 26 and the delay of propagation of the inverter 28. It is therefore possible, by means of the signal DJIT, to modulate the time delay between each rising edge of the control signal CPI and an associated rising edge of the external signal H. This delay can take two distinct values, depending on the number of inverters used to generate the signal CPI, two or four in the example of FIG. 11. The delay is much shorter than the duration of a period of the signal H. It is of the order half the delay of the signal propagation between the H input and the Q output of the flip-flop of FIG. 1, that is to say between 50 ps and 100 ps in 130 nm technology. The generator 20 may also comprise additional inverters and transfer gates, arranged to form other propagation loops of the signal H. The number of possible delay values is thus increased. The DJIT signal is then encoded on several bits.
Le signal DJIT correspond, de préférence, à la sortie d'un générateur de nombre aléatoire (non représenté). Le générateur de délai 20 est alors commandé de manière stochastique. Le temps de propagation du signal H dans un inverseur varie en fonction de la taille des transistors qui constituent l'inverseur, typiquement un transistor MOS de type N et un transistor MOS de type P connectés en série. En jouant sur la taille des transistors, par exemple ceux des inverseurs 26 et 28, il est possible de faire varier les retards appliqués aux signaux CPI et CPN d'un élément mémoire à l'autre. Dans un mode de réalisation préférentiel, un registre comprend plusieurs 25 éléments mémoire et au moins une des deux valeurs de retard diffère d'un élément mémoire à l'autre. La figure 19 représente l'enveloppe du courant électrique consommé par un élément mémoire 6 muni du générateur de délai aléatoire 20. On constate que l'écart entre la limite supérieure et la limite inférieure de l'enveloppe est plus 30 faible que sur la figure 10, mais aussi que cette enveloppe s'étale sur une durée plus grande. The DJIT signal preferably corresponds to the output of a random number generator (not shown). The delay generator 20 is then stochastically controlled. The propagation time of the signal H in an inverter varies as a function of the size of the transistors constituting the inverter, typically an N-type MOS transistor and a P-type MOS transistor connected in series. By varying the size of the transistors, for example those of the inverters 26 and 28, it is possible to vary the delays applied to the CPI and CPN signals from one memory element to the other. In a preferred embodiment, a register comprises a plurality of memory elements and at least one of the two delay values differs from one memory element to another. FIG. 19 represents the envelope of the electric current consumed by a memory element 6 equipped with the random delay generator 20. It can be seen that the difference between the upper limit and the lower limit of the envelope is lower than in FIG. 10, but also that this envelope spreads over a longer period.
En fait, le délai aléatoire, introduit sur les signaux CPI et CPN, retarde la mise à jour du signal QI (ou du signal Q2) par rapport au front de l'horloge externe H. La consommation électrique moyenne de la bascule est donc étalée sur une période de temps plus grande. In fact, the random delay, introduced on the CPI and CPN signals, delays the update of the signal QI (or signal Q2) with respect to the front of the external clock H. The average power consumption of the rocker is therefore spread over a longer period of time.
En d'autres termes, la consommation en courant de l'élément mémoire est moyennée sur plusieurs cycles ou calculs cryptographiques. Cela a pour effet de réduire encore la différence moyenne de consommation entre tous les modes de fonctionnement de l'élément mémoire. Il devient donc difficile de distinguer l'état de l'élément mémoire à partir des relevés de consommation. In other words, the current consumption of the memory element is averaged over several cycles or cryptographic calculations. This has the effect of further reducing the average consumption difference between all modes of operation of the memory element. It thus becomes difficult to distinguish the state of the memory element from the consumption records.
Pour mener des attaques par canaux cachés sur un registre, la commutation des bascules et leurs consommations associées doivent être synchronisées par rapport au signal d'horloge externe H. Lorsque ce n'est pas le cas, l'attaquant effectue une opération dite de resynchronisation. Or, dans le cas d'éléments mémoire selon la figure 11, chaque élément est légèrement désynchronisé de l'horloge H grâce au générateur 20 intégré dans chaque bascule. Cette désynchronisation est d'une part variable au sein d'une même bascule, entre deux basculements successifs, grâce au signal DJIT. D'autre part, elle peut différer d'un élément mémoire à l'autre en adaptant le générateur 20, par exemple en modifiant la taille des transistors des inverseurs. La resynchronisation de tous les éléments mémoire est dès lors impossible, ce qui améliore davantage la robustesse aux attaques par canaux cachés. En outre, le générateur de délai aléatoire 20 a pour effet de limiter les fuites d'informations des circuits logiques situées en aval de l'élément mémoire. En effet, les calculs de ces circuits sont retardés, ce qui réduit également leur différence moyenne de consommation. L'élément mémoire est non seulement sécurisé, mais les circuits logiques placés en sortie sont également plus robustes aux attaques. Dans un circuit logique simple rail, une valeur binaire est codée sur un fil, ce qui correspond à deux états distincts : '0' et '1'. En logique double rail, la valeur binaire est codée sur deux fils. Il est alors possible de coder jusqu'à quatre états : '00', '01', '10' et '11'. Le codage double rail est intrinsèquement plus robuste aux attaques car il permet un premier équilibrage de la consommation. To carry out hidden channel attacks on a register, the switching of the flip-flops and their associated consumption must be synchronized with respect to the external clock signal H. When this is not the case, the attacker performs a so-called resynchronization operation. . However, in the case of memory elements according to FIG. 11, each element is slightly out of synchronization with the clock H thanks to the generator 20 integrated in each flip-flop. This desynchronization is on the one hand variable within the same rocker, between two successive failovers, thanks to the signal DJIT. On the other hand, it may differ from one memory element to another by adapting the generator 20, for example by changing the size of the transistors of the inverters. Resynchronization of all memory elements is therefore impossible, which further improves the robustness to hidden channel attacks. In addition, the random delay generator 20 has the effect of limiting information leaks logic circuits located downstream of the memory element. Indeed, the calculations of these circuits are delayed, which also reduces their average difference in consumption. The memory element is not only secure, but the logic circuits at the output are also more robust to attacks. In a single rail logic circuit, a binary value is coded on a wire, which corresponds to two distinct states: '0' and '1'. In double rail logic, the binary value is coded on two wires. It is then possible to code up to four states: '00', '01', '10' and '11'. Double rail coding is intrinsically more robust to attack because it allows a first balancing of the consumption.
L'élément mémoire sécurisé décrit ci-dessus peut être utilisé dans un circuit logique simple rail, en exploitant seulement le signal Dl en sortie de l'élément mémoire. Toutefois, on remarque que l'élément mémoire est aussi adapté au codage double rail avec retour à état invalide. Il suffit pour cela d'utiliser la sortie Q2 de la seconde bascule 8b. On peut ainsi combiner, de façon simple et sécurisée, des registres simple rail et des registres double rail dans un même circuit, en utilisant un seul type d'élément mémoire. Comme cela a été décrit précédemment, le signal D2 de la bascule 8b est mis à jour avant la mise à jour des bascules 8a et 8b, c'est-à-dire avant chaque 1 o front montant du signal CPI, par exemple sur chaque front descendant. La figure 20 représente un mode de réalisation préférentiel de circuit logique 10 dans lequel le signal D2 est synchronisé sur les fronts descendants du signal CPI. On souhaite dans un premier temps synchroniser le signal D1 sur les fronts 15 descendants du signal CPI. Pour cela, on a reproduit une portion du schéma synoptique de la bascule 8a (Fig.11). Cette portion en entrée de la bascule 8a comprend successivement l'inverseur 12, la porte de transfert TM et l'inverseur 16. Le signal Dl', en sortie de l'inverseur 16, correspond au signal Dl synchronisé sur les fronts descendants du signal CPI. En effet, la porte TM est 20 passante lors d'un état bas du signal CPI. Dans l'exemple des figures 12 à 18, le signal Dl est synchronisé sur les fronts montants du signal CPI. Le signal Dl' sera alors décalé d'une moitié de cycle d'horloge par rapport au signal Dl. Le signal Dl' correspond en fait au complément du signal au noeud NM1 (Fig.15). 25 Sur la figure 20, deux portes de transfert TG et TG' permettent d'obtenir les signaux QI' et Q2' à partir des signaux QI et Q2. Les signaux QI' et Q2' correspondent respectivement aux signaux QI et Q2 synchronisés sur les fronts montants du signal CPI et dont les valeurs sont maintenues sur l'état bas du signal CPI. 30 La fonction NON-OU exclusif du circuit 10 est réalisée par une pluralité d'inverseurs et de portes de transfert agencés de manière à définir différents chemins de propagation du signal Dl'. The secure memory element described above can be used in a single rail logic circuit, exploiting only the signal D1 at the output of the memory element. However, it is noted that the memory element is also suitable for double-rail coding with invalid state feedback. It suffices for this to use the output Q2 of the second flip-flop 8b. It is thus possible to combine, in a simple and secure manner, single rail registers and double rail registers in the same circuit, using a single type of memory element. As previously described, the signal D2 of the flip-flop 8b is updated before the update of the flip-flops 8a and 8b, that is to say before each rising edge of the signal CPI, for example on each falling edge. FIG. 20 represents a preferred embodiment of logic circuit 10 in which the signal D2 is synchronized on the falling edges of the signal CPI. In the first place, it is desired to synchronize the signal D1 on the falling edges of the signal CPI. For this, we reproduced a portion of the block diagram of the flip-flop 8a (Fig.11). This input portion of the flip-flop 8a successively comprises the inverter 12, the transfer gate TM and the inverter 16. The signal D1 ', at the output of the inverter 16, corresponds to the signal D1 synchronized on the falling edges of the signal ICC. Indeed, the gate TM is busy during a low state of the signal CPI. In the example of FIGS. 12 to 18, the signal D1 is synchronized on the rising edges of the signal CPI. The signal D1 'will then be shifted by one half of a clock cycle with respect to the signal D1. The signal D1 'corresponds in fact to the complement of the signal at the node NM1 (FIG. In FIG. 20, two transfer gates TG and TG 'make it possible to obtain the signals QI' and Q2 'from the signals QI and Q2. The signals QI 'and Q2' respectively correspond to the signals QI and Q2 synchronized on the rising edges of the signal CPI and whose values are maintained on the low state of the signal CPI. The exclusive NOR function of the circuit 10 is performed by a plurality of inverters and transfer gates arranged to define different propagation paths of the signal D1 '.
Le circuit 10 comprend un premier inverseur 34 recevant en entrée le signal Dl' et connecté en série à une première branche 36a munie d'une porte de transfert 38a. Une seconde branche 36b, en parallèle de la branche 36a, comprend une porte de transfert 38b et un inverseur 34b. Les portes 38a et 38b sont commandées en opposition de phase par les signaux QI' et Q1'. Une troisième branche 36c est connectée en série avec les branches 36a et 36b. Elle comprend une porte de transfert 38c. Connectée en parallèle de la branche 36c, une branche 36d comprend une porte de transfert 38d et un inverseur 34d. Les portes 38c et 38d sont commandées en opposition de phase par les signaux Q2' et Q2'. Le signal Dl' se propage systématiquement au travers deux des quatre branches, l'une des branches 36a et 36b, puis l'une des branches 36c et 36d, selon l'état des portes 38a-d. Ainsi, le signal D' traverse un, deux ou trois inverseurs selon l'état des signaux QI', Q2', Q1' et Q2'. A titre d'exemple, lorsque les signaux QI' et Q2' sont à l'état bas ('0'), le signal Dl' se propage au travers des branches 36a et 36c et ne traverse qu'un seul inverseur (34). Le signal D2 vaut alors '1' si le signal Dl' est à '0' et '0' si le signal Dl' est à '1'. Avec cette configuration, on parvient à associer une valeur du signal D2 à chaque combinaison de valeurs des signaux Dl, QI et Q2, selon la table de vérité du circuit logique 10. Le signal D2 évolue en même temps que le signal Dl', c'est-à-dire en synchronisme avec les fronts montants du signal d'horloge CPI. De nombreuses variantes et modifications de l'élément mémoire apparaîtront à l'homme du métier. En particulier, d'autres implémentations de bascule D maître-esclave, de porte NON-OU exclusif et d'inverseur que celles qui sont décrites ici peuvent être employées. The circuit 10 comprises a first inverter 34 receiving the signal D1 'as input and connected in series with a first branch 36a provided with a transfer gate 38a. A second branch 36b, in parallel with the branch 36a, comprises a transfer gate 38b and an inverter 34b. The doors 38a and 38b are controlled in phase opposition by the signals QI 'and Q1'. A third branch 36c is connected in series with the branches 36a and 36b. It includes a transfer gate 38c. Connected in parallel with the branch 36c, a branch 36d comprises a transfer gate 38d and an inverter 34d. The doors 38c and 38d are controlled in phase opposition by the signals Q2 'and Q2'. The signal D1 'propagates systematically through two of the four branches, one of the branches 36a and 36b, then one of the branches 36c and 36d, depending on the state of the doors 38a-d. Thus, the signal D passes through one, two or three inverters depending on the state of the signals QI ', Q2', Q1 'and Q2'. By way of example, when the signals QI 'and Q2' are in the low state ('0'), the signal D1 'propagates through the branches 36a and 36c and passes through only one inverter (34). . The signal D2 is then '1' if the signal D1 'is at' 0 'and' 0 'if the signal D1' is at '1'. With this configuration, it is possible to associate a value of the signal D2 with each combination of values of the signals D1, Q1 and Q2, according to the truth table of the logic circuit 10. The signal D2 evolves at the same time as the signal D1 ', c i.e. in synchronism with the rising edges of the clock signal CPI. Many variations and modifications of the memory element will occur to those skilled in the art. In particular, other implementations of master-slave D-flip-flop, exclusive NOR gate, and inverter than those described herein can be employed.
Claims (8)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1100889A FR2973138B1 (en) | 2011-03-24 | 2011-03-24 | SECURE MEMORY ELEMENT |
PCT/FR2012/000103 WO2012127135A1 (en) | 2011-03-24 | 2012-03-23 | Secure memory element |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1100889A FR2973138B1 (en) | 2011-03-24 | 2011-03-24 | SECURE MEMORY ELEMENT |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2973138A1 true FR2973138A1 (en) | 2012-09-28 |
FR2973138B1 FR2973138B1 (en) | 2013-04-12 |
Family
ID=45974372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1100889A Expired - Fee Related FR2973138B1 (en) | 2011-03-24 | 2011-03-24 | SECURE MEMORY ELEMENT |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2973138B1 (en) |
WO (1) | WO2012127135A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3166143A1 (en) | 2015-11-05 | 2017-05-10 | Gemalto Sa | Method for manufacturing a device with an integrated circuit chip by direct deposition of conductive material |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000026746A2 (en) * | 1998-11-03 | 2000-05-11 | Koninklijke Philips Electronics N.V. | Data carrier with obscured power consumption |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2802733B1 (en) | 1999-12-21 | 2002-02-08 | St Microelectronics Sa | SECURE MASTER-SLAVE LOCK |
-
2011
- 2011-03-24 FR FR1100889A patent/FR2973138B1/en not_active Expired - Fee Related
-
2012
- 2012-03-23 WO PCT/FR2012/000103 patent/WO2012127135A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000026746A2 (en) * | 1998-11-03 | 2000-05-11 | Koninklijke Philips Electronics N.V. | Data carrier with obscured power consumption |
Also Published As
Publication number | Publication date |
---|---|
WO2012127135A1 (en) | 2012-09-27 |
FR2973138B1 (en) | 2013-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dobraunig et al. | Isap v2. 0 | |
US8427194B2 (en) | Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram | |
EP1993057B1 (en) | Detection of a status disruption of a flip-flop of an electronic circuit | |
US20110260749A1 (en) | Synchronous logic system secured against side-channel attack | |
TW200541279A (en) | Integrated decision feedback equalizer and clock and data recovery circuit | |
US20110285421A1 (en) | Synchronous logic system secured against side-channel attack | |
Suresh et al. | Entropy extraction in metastability-based TRNG | |
FR3051084B1 (en) | OSCILLATION NUMBER GENERATOR | |
JP2011520178A (en) | Bit sequence generation method and apparatus | |
TWI748285B (en) | Random number generator based on meta-stability of shorted back-to-back inverters | |
EP2131495A1 (en) | Asynchronous circuit not sensitive to delays with delay insertion circuit | |
EP2803161A1 (en) | Method of encryption protected against side channel attacks | |
EP2257904B1 (en) | Method for protecting a programmable cryptography circuit, and circuit protected by said method | |
TW201014284A (en) | Decision feedback equalizer having clock recovery circuit and method for recovering clock | |
FR2973138A1 (en) | SECURE MEMORY ELEMENT | |
EP1111783B1 (en) | Protected D-type master-slave flip-flop | |
FR3051085A1 (en) | MULTIPLEXER STRUCTURE | |
FR3051086A1 (en) | PULSE COUNTING CIRCUIT | |
Drucker et al. | Continuous key agreement with reduced bandwidth | |
Luo et al. | Faulty clock detection for crypto circuits against differential fault analysis attack | |
Lin et al. | Overcoming glitches and dissipation timing skews in design of DPA-resistant cryptographic hardware | |
Yuen et al. | On the security of Y-00 under fast correlation and other attacks on the key | |
FR2986679A1 (en) | True random number generator for use in digital electronic circuit e.g. field programmable gate array, has sampling unit sampling signals delivered on outputs of preceding stage of oscillator with specific integer values | |
JP2009290775A (en) | Re-timing circuit and frequency dividing system | |
KR102340775B1 (en) | Synchronization circuit for threshold implementation of s-box |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20141128 |