FR2867286A1 - State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder - Google Patents

State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder Download PDF

Info

Publication number
FR2867286A1
FR2867286A1 FR0402161A FR0402161A FR2867286A1 FR 2867286 A1 FR2867286 A1 FR 2867286A1 FR 0402161 A FR0402161 A FR 0402161A FR 0402161 A FR0402161 A FR 0402161A FR 2867286 A1 FR2867286 A1 FR 2867286A1
Authority
FR
France
Prior art keywords
state
code
codes
state machine
current state
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.)
Pending
Application number
FR0402161A
Other languages
French (fr)
Inventor
Pierre Pistoulet
Laurent Sourgen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0402161A priority Critical patent/FR2867286A1/en
Publication of FR2867286A1 publication Critical patent/FR2867286A1/en
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M39/00Tubes, tube connectors, tube couplings, valves, access sites or the like, specially adapted for medical use
    • A61M39/02Access sites
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M39/00Tubes, tube connectors, tube couplings, valves, access sites or the like, specially adapted for medical use
    • A61M39/02Access sites
    • A61M39/0208Subcutaneous access sites for injecting or removing fluids

Abstract

The machine has a flip-flop (31) receiving a following sate code to provide a current state code (CSC) in synchronization with a clock signal. A current state decoder (33) has comparators comparing the code (CSC) and preset codes (SC0-SCk) by full scale decoding to provide identification signals to a NOR gate (35). The gate provides an error signal when the code (CSC) does not correspond to the preset codes having a hamming distance equal to 2. Independent claims are also included for the following: (A) an integrated circuit having state machines (B) a method of manufacturing a state machine of an integrated circuit.

Description

MACHINE D'ETATS A LOGIQUE CABLEE PROTEGEE CONTRE LESTATE MACHINE WITH CABLE LOGIC PROTECTED AGAINST

DERAILLEMENT PAR INJECTION DE FAUTEDERAILMENT BY INJECTION OF FAULT

La présente invention concerne la protection des circuits logiques contre les attaques par injection d'erreur, et plus particulièrement la protection des machines d'états contre le déraillement par injection de faute.  The present invention relates to the protection of logic circuits against error injection attacks, and more particularly the protection of state machines against derailment by fault injection.

Les circuits logiques présents dans les circuits intégrés sécurisés comme les circuits intégrés pour cartes à puce, font l'objet de diverses attaques de la part de fraudeurs qui cherchent à découvrir leur structure et/ou les secrets qu'ils comprennent. Il s'agit généralement de circuits de cryptographie de type DES, AES, RSA,... de microprocesseurs programmés pour exécuter des algorithmes de cryptographie, de banques de registres contenant des clefs secrètes, etc. Or, de tels circuits logiques comprennent généralement de nombreuses machines d'états, qui doivent ainsi être protégées contre de telles attaques.  The logic circuits present in secure integrated circuits such as integrated circuits for smart cards, are the subject of various attacks by fraudsters who seek to discover their structure and / or secrets they understand. They are generally DES, AES, RSA, microprocessor-type cryptography circuits programmed to execute cryptography algorithms, register banks containing secret keys, etc. However, such logic circuits generally include many state machines, which must be protected against such attacks.

La figure 1 représente schématiquement la structure d'une machine d'états classique 10. La machine d'états 10 reçoit des signaux de contrôle INO,... INj,...INn et fournit un code de l'état courant CSC ("current state code") codé sur N bits. Ce code représente l'état en cours de la machine d'états et est fonction de l'état précédent et de la valeur des signaux de contrôle. Il est appliqué à un circuit de commande 20 qui fournit des signaux de commande COM1,...COMi,...COMm dont la valeur est ainsi fonction de l'état courant de la machine d'états.  FIG. 1 schematically represents the structure of a conventional state machine 10. The state machine 10 receives INO control signals, ... INj, ... INn, and provides a code of the current state CSC (FIG. "current state code") encoded on N bits. This code represents the current state of the state machine and is a function of the previous state and the value of the control signals. It is applied to a control circuit 20 which supplies control signals COM1, ... COMi, ... COMm whose value is thus a function of the current state of the state machine.

La machine d'états 10 comprend une bascule synchrone 11 de N bits et un circuit de transition d'état asynchrone 12. La bascule 11 est généralement une bascule Flip-Flop formée par N bascules élémentaires de 1 bit agencées en parallèle. Elle est synchronisée par un signal d'horloge CK1 et reçoit sur son entrée D un code de l'état suivant NSC ("Next State Code") fourni par le circuit de transition d'état 12. A chaque front du signal d'horloge, par exemple à chaque front montant, le code de l'état suivant NSC est recopié par la sortie Q de la bascule 11 et devient le code de l'état courant CSC.  The state machine 10 comprises an N-bit synchronous flip-flop 11 and an asynchronous state transition circuit 12. The flip-flop 11 is generally a Flip-Flop flip-flop formed by N 1-bit elementary flip-flops arranged in parallel. It is synchronized by a clock signal CK1 and receives on its input D a code of the next state NSC ("Next State Code") provided by the state transition circuit 12. At each edge of the clock signal for example, at each rising edge, the next state code NSC is copied by the Q output of flip-flop 11 and becomes the code of the current state CSC.

Le code CSC est renvoyé au circuit de transition d'état 12 qui fournit, en fonction de ce code et des signaux de contrôle INj, le code de l'état suivant NSC. Le circuit de transition d'état 12 comprend classiquement un décodeur de l'état courant 13 ("Curent State Decoder") et un circuit de sélection d'état 14. Le décodeur 13 reçoit le code CSC et fournit un signal ID d'identification de l'état courant. Ce signal d'identification ID est appliqué au circuit de sélection d'état 14, qui reçoit en entrée les signaux de contrôle INO,..INj,...INn et fournit à la bascule 11 le code de l'état suivant NSC.  The CSC code is returned to the state transition circuit 12 which provides, based on this code and control signals INj, the code of the next state NSC. The state transition circuit 12 conventionally comprises a decoder of the current state 13 ("Curent State Decoder") and a state selection circuit 14. The decoder 13 receives the CSC code and provides an identification ID signal of the current state. This identification signal ID is applied to the state selection circuit 14, which receives as input the control signals IN0, .. INj, ... INn and supplies the flip-flop 11 with the code of the next state NSC.

Dans une telle machine d'états, les états sont donc représentés par des codes de N bits. Généralement, le codage des états est assuré par des codes ayant un nombre de bits égal au nombre de bit minimal permettant de coder tous les états, par exemple 2 bits pour 4 états à coder.  In such a state machine, the states are therefore represented by N-bit codes. Generally, the coding of the states is ensured by codes having a number of bits equal to the minimum number of bits making it possible to code all the states, for example 2 bits for 4 states to code.

Le procédé de codage dit "one hot", plus rarement utilisé, consiste à associer à chaque état un code dans lequel un seul bit à la fois est à 1. Par exemple, les codes "one hot" d'une machine d'états à quatre états présentent les valeurs suivantes: Code(état 0) = 0001 Code(état 1) = 0010 Code(état 2) = 0100 Code(état 3) = 1000 Le codage "one hot" permet de décoder rapidement le code de l'état courant, avec un décodeur d'une structure simplifiée ne comprenant que des moyens d'identification du rang du bit unique qui est à 1.  The "one hot" coding method, which is more rarely used, consists of associating with each state a code in which only one bit at a time is at one time. For example, the "one hot" codes of a state machine four states have the following values: Code (status 0) = 0001 Code (status 1) = 0010 Code (status 2) = 0100 Code (status 3) = 1000 The "one hot" coding is used to quickly decode the code of the current state, with a decoder of a simplified structure comprising only means for identifying the rank of the single bit which is 1.

Comme indiqué plus haut, une telle machine d'états est susceptible de diverses attaques. Ces attaques peuvent intervenir pendant des phases de calculs dits sensibles, par exemple pendant les phases de calcul d'un code d'authentification ou pendant la lecture d'une clef de cryptographie dans une mémoire. Parmi les diverses attaques connues, l'attaque par injection de faute, ou injection d'erreur, est souvent utilisée par les fraudeurs. On distingue les attaques localisées, portant sur un ou plusieurs bits, et les attaques de type "tout à 1" ou "tout à 0", qui visent à forcer à une même valeur logique un ensemble de bits en un point déterminé du circuit. Ces attaques sont réalisées en introduisant des perturbations (glitches) dans la tension d'alimentation du circuit, en appliquant un faisceau laser ou un faisceau de rayon X en des points déterminés du circuit, etc. Certaines attaques sont faites sur la face arrière de la microplaquette de silicium du circuit intégré, par application de potentiels électriques déterminés. De telles attaques permettent d'observer le comportement d'un circuit logique, par exemple la modification d'un code de sortie en fonction de l'erreur injectée, et d'en déduire sa structure.  As noted above, such a state machine is susceptible to various attacks. These attacks may occur during so-called sensitive calculation phases, for example during the phases of calculating an authentication code or during the reading of a cryptography key in a memory. Among the various known attacks, the attack by fault injection, or injection of error, is often used by fraudsters. Localized attacks, involving one or more bits, and "all-in-one" or "all-at-0" type attacks, which aim to force a set of bits at a given point in the circuit to a same logical value are distinguished. These attacks are made by introducing disturbances (glitches) into the supply voltage of the circuit, by applying a laser beam or an X-ray beam at certain points of the circuit, etc. Some attacks are made on the rear face of the silicon chip of the integrated circuit, by application of determined electrical potentials. Such attacks make it possible to observe the behavior of a logic circuit, for example the modification of an output code as a function of the error injected, and to deduce its structure.

Si l'on observe le mécanisme d'une telle injection d'erreur au niveau d'une machine d'états, il apparaît qu'une attaque peut porter sur un ou plusieurs bits du code de l'état courant (attaque portant sur la bascule 11) ou sur un ou plusieurs bits du code de l'état suivant (attaque portant sur le circuit de transition d'état 12).  If one observes the mechanism of such an error injection at a state machine, it appears that an attack can relate to one or more bits of the code of the current state (attack on the flip flop 11) or on one or more bits of the next state code (attack on the state transition circuit 12).

Une attaque peut concerner un bit du code, deux bits du code, etc. L'injection d'erreur dans la machine d'états conduit celle-ci à un déraillement au cours duquel elle peut se placer dans un état n'appartenant pas à la liste des états prédéterminés, ou dans un état autorisé mais dans lequel elle n'aurait pas dû basculer compte tenu de la valeur des entrées I0-INn et de la valeur de l'état courant.  An attack can concern a bit of the code, two bits of the code, etc. The injection of error into the state machine leads it to a derailment in which it can be placed in a state not belonging to the list of predetermined states, or in an authorized state but in which it is 'should not have switched, given the value of the inputs I0-INn and the value of the current state.

Pour contrer de telles attaques, on connaît les méthodes de sécurisation par redondance logicielle et de 5 sécurisation par contrôle de parité.  To counter such attacks, the methods of securing by software redundancy and security by parity control are known.

La sécurisation par redondance logicielle nécessite un programme de vérification qui relance l'exécution d'un calcul par la machine d'états et compare le résultat fournit au résultat précédemment obtenu. Cette méthode n'est pas toujours applicable car de nombreuses machines d'états ne sont pas contrôlables par logiciel, le logiciel n'ayant pas la possibilité de relancer l'exécution d'un calcul par la machine d'états.  Securing by software redundancy requires a verification program that restarts the execution of a calculation by the state machine and compares the result provided to the result previously obtained. This method is not always applicable because many state machines are not controllable by software, the software does not have the ability to restart the execution of a calculation by the state machine.

La sécurisation par contrôle de parité consiste à ne prévoir que des codes ayant une parité déterminée, et à contrôler la parité du code de l'état courant de la machine d'états. Par exemple, les codes "one hot" ont une parité égale à 1 car chaque code comprend un nombre impair de bits à 1. Si la parité du code de l'état courant n'est pas égale à 1, le code est considéré comme erroné et la machine d'états revient dans l'un des états prédéterminés. Toutefois, le contrôle de la parité d'un code "one hot" ne permet de détecter que des attaques portant sur 1 bit. En effet, une attaque portant sur deux bits peut forcer la machine d'états dans un état correspondant à un autre code "one hot", de sorte que l'attaque n'est pas détectée par le contrôle de parité. Il s'agit dans ce cas d'un déraillement se caractérisant par une transition d'état non prévue, et non d'un déraillement conduisant à un état n'appartenant pas à la liste des états prédéterminés.  Securing by parity checking consists of only providing codes with a fixed parity, and checking the parity of the code of the current state of the state machine. For example, the codes "one hot" have a parity equal to 1 because each code comprises an odd number of bits to 1. If the parity of the code of the current state is not equal to 1, the code is considered as erroneous and the state machine returns to one of the predetermined states. However, checking the parity of a "one hot" code only detects attacks involving 1 bit. Indeed, a two bit attack can force the state machine into a state corresponding to another "one hot" code, so that the attack is not detected by the parity check. In this case, it is a derailment characterized by an unplanned state transition, and not a derailment leading to a state not belonging to the list of predetermined states.

Par exemple, dans l'exemple de codage "one hot" cité ci-dessus, une attaque sur les deuxième et troisième bits du code "0010" de l'état N 1 conduit au code "0100", soit le code de l'état N 3. Une telle attaque n'est donc pas détectable.  For example, in the "one hot" coding example cited above, an attack on the second and third bits of the code "0010" of the state N 1 leads to the code "0100", ie the code of the state N 3. Such an attack is therefore not detectable.

Ainsi, un objectif général de la présente invention est de prévoir un moyen pour sécuriser une machine d'états contre le déraillement par injection de faute qui soit plus efficace que la méthode de contrôle de parité.  Thus, a general object of the present invention is to provide a means for securing a state machine against fault injection derailment that is more efficient than the parity check method.

A cet effet, une première idée de la présente invention est de coder les états d'une machine d'états au moyen de codes présentant les uns relativement aux autres une distance de Hamming au moins égale à 2, sinon égale à 3 voire plus selon le degré de résistance aux injections d'erreurs recherché, et de déclarer interdits les codes ne répondant pas à ce critère. Il est connu que la distance de Hamming est le nombre de bits différents que présentent deux codes déterminés.  For this purpose, a first idea of the present invention is to code the states of a state machine by means of codes having relative to each other a Hamming distance of at least 2, if not equal to 3 or more according to the degree of resistance to error injections sought, and to declare prohibited codes that do not meet this criterion. It is known that the Hamming distance is the number of different bits that have two specific codes.

Une autre idée de la présente invention est d'assurer un décodage pleine échelle de l'état courant, c'est-à-dire un décodage qui porte sur l'ensemble des bits de code.  Another idea of the present invention is to provide a full scale decoding of the current state, that is to say a decoding which relates to all the code bits.

Encore une autre idée de la présente invention est de prévoir un moyen pour produire un signal d'erreur lorsque le code de l'état courant ne correspond à aucun code autorisé, ce qui signifie que la machine d'états se trouve dans un état interdit.  Yet another idea of the present invention is to provide means for producing an error signal when the current state code does not correspond to any authorized code, which means that the state machine is in a forbidden state. .

Ainsi, la présente invention prévoit une machine d'états à logique câblée présentant un nombre prédéterminé d'états correspondant chacun à un code prédéterminé, et comprenant une bascule synchrone recevant un code de l'état suivant et fournissant un code de l'état courant, en synchronisation avec un signal d'horloge, et un circuit de transition d'état pour fournir à la bascule le code de l'état suivant en fonction du code de l'état courant et de signaux de contrôle, dans laquelle les codes prédéterminés de la machine d'états présentent les uns relativement aux autres une distance de Hamming au moins égale à 2, et le circuit de transition d'état comprend: un décodeur de l'état courant effectuant un décodage pleine échelle du code de l'état courant, et des moyens pour fournir un signal d'erreur ayant une valeur active déterminée lorsqu'un code de l'état courant ne correspond à aucun code prédéterminé.  Thus, the present invention provides a wired logic state machine having a predetermined number of states each corresponding to a predetermined code, and comprising a synchronous flip-flop receiving a code of the next state and providing a code of the current state. in synchronism with a clock signal, and a state transition circuit for supplying the flip-flop the code of the next state according to the code of the current state and control signals, wherein the predetermined codes of the state machine have relative to each other a Hamming distance of at least 2, and the state transition circuit comprises: a decoder of the current state performing a full-scale decoding of the state code current, and means for providing an error signal having a determined active value when a code of the current state does not correspond to any predetermined code.

Selon un mode de réalisation, les codes prédéterminés de la machine d'états présentent les uns relativement aux autres une distance de Hamming au moins égale à 3.  According to one embodiment, the predetermined codes of the state machine have relative to each other a Hamming distance of at least 3.

Selon un mode de réalisation, les codes prédéterminés de la machine d'états présentent les uns relativement aux autres une distance de Hamming au moins égale à 4.  According to one embodiment, the predetermined codes of the state machine have relative to each other a Hamming distance of at least 4.

Selon un mode de réalisation, un code ne comprenant que des bits à 0 ou que des bits à 1 est un code interdit dont l'apparition dans la machine d'états active le signal d'erreur.  According to one embodiment, a code comprising only bits at 0 or bits at 1 is a forbidden code whose appearance in the state machine activates the error signal.

Selon un mode de réalisation, le décodeur de l'état courant comprend des comparateurs recevant chacun le code de l'état courant et l'un des codes prédéterminés, et fournissant un signal d'identification d'état ayant une valeur active déterminée si les deux codes sont identiques, chaque comparateur effectuant une comparaison des deux codes portant sur l'ensemble de leurs bits constitutifs.  According to one embodiment, the current state decoder comprises comparators each receiving the code of the current state and one of the predetermined codes, and providing a state identification signal having a determined active value if the two codes are identical, each comparator making a comparison of the two codes covering all of their constituent bits.

Selon un mode de réalisation, la machine d'états comprend un circuit logique recevant les signaux d'identification d'état fournis par les comparateurs, et fournissant le signal d'erreur si aucun des signaux d'identification ne présente la valeur déterminée.  According to one embodiment, the state machine comprises a logic circuit receiving the state identification signals provided by the comparators, and providing the error signal if none of the identification signals has the determined value.

La présente invention concerne également un circuit intégré comprenant une pluralité de machines d'états selon l'invention, et des portes logiques pour combiner les signaux d'erreurs émis par l'ensemble des machines d'états et fournir un signal d'erreur général.  The present invention also relates to an integrated circuit comprising a plurality of state machines according to the invention, and logic gates for combining the error signals emitted by the set of state machines and to provide a general error signal. .

La présente invention concerne également un procédé de réalisation d'une machine d'états à logique câblée présentant un nombre prédéterminé d'états correspondant chacun à un code prédéterminé, et comprenant une bascule synchrone recevant un code de l'état suivant et fournissant un code de l'état courant, en synchronisation avec un signal d'horloge, et un circuit de transition d'état pour fournir à la bascule le code de l'état suivant en fonction du code de l'état courant et de signaux de contrôle, la procédé comprenant les étapes suivantes. attribuer à la machine d'états des codes prédéterminés présentant les uns relativement aux autres une distance de Hamming au moins égale à 2, prévoir dans le circuit de transition d'état un décodeur de l'état courant effectuant un décodage pleine échelle du code de l'état courant, et prévoir dans la machine d'états des moyens pour fournir un signal d'erreur ayant une valeur active déterminée lorsque le code de l'état courant ne correspond à aucun code prédéterminé.  The present invention also relates to a method for producing a wired logic state machine having a predetermined number of states each corresponding to a predetermined code, and comprising a synchronous flip-flop receiving a code of the next state and providing a code of the current state, in synchronization with a clock signal, and a state transition circuit for supplying the flip-flop the code of the next state according to the code of the current state and control signals, the method comprising the following steps. assigning to the state machine predetermined codes having relative to each other a Hamming distance of at least 2, providing in the state transition circuit a decoder of the current state performing a full-scale decoding of the code of the current state, and providing in the state machine means for providing an error signal having a determined active value when the code of the current state does not correspond to any predetermined code.

Selon un mode de réalisation, le procédé comprend l'attribution à la machine d'états de codes prédéterminés présentant les uns relativement aux autres une distance de Hamming au moins égale à 3.  According to one embodiment, the method comprises assigning to the machine predetermined code states having relative to each other a Hamming distance of at least 3.

Selon un mode de réalisation, le procédé comprend l'attribution à la machine d'états de codes prédéterminés présentant les uns relativement aux autres une distance de Hamming au moins égale à 4.  According to one embodiment, the method comprises assigning to the machine predetermined code states having relative to each other a Hamming distance of at least 4.

Selon un mode de réalisation, le procédé comprend le fait de ne jamais attribuer à un état de la machine d'états un code qui ne comprend que des bits à 0 ou que des bits à 1.  According to one embodiment, the method comprises never assigning to a state of the state machine a code which comprises only bits at 0 or bits at 1.

Selon un mode de réalisation, le procédé comprend la prévision, dans le décodeur de l'état courant, de comparateurs recevant chacun le code de l'état courant et l'un des codes prédéterminés, et fournissant un signal d'identification d'état ayant une valeur active déterminée si les deux codes sont identiques, chaque comparateur effectuant une comparaison des deux codes portant sur l'ensemble de leurs bits constitutifs.  According to one embodiment, the method comprises predicting, in the decoder of the current state, comparators each receiving the code of the current state and one of the predetermined codes, and providing a state identification signal. having a determined active value if the two codes are identical, each comparator making a comparison of the two codes covering all of their constituent bits.

Selon un mode de réalisation, le procédé comprend la prévision d'un circuit logique recevant les signaux d'identification d'état fournis par les comparateurs, et fournissant un signal d'erreur si aucun des signaux d'identification ne présente la valeur déterminée.  According to one embodiment, the method comprises the provision of a logic circuit receiving the state identification signals provided by the comparators, and providing an error signal if none of the identification signals has the determined value.

Selon un mode de réalisation, le procédé comprend la prévision, dans un circuit intégré comprenant une pluralité de machines d'états, de portes logiques pour combiner le signal d'erreur et d'autres signaux d'erreurs envoyés par d'autres machines d'états, et fournir un signal d'erreur général.  According to one embodiment, the method comprises predicting, in an integrated circuit comprising a plurality of state machines, logic gates for combining the error signal and other error signals sent by other signal machines. states, and provide a general error signal.

Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante du procédé de réalisation d'une machine d'états selon l'invention et d'un exemple pratique de réalisation d'une telle machine d'états, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles: - la figure 1 précédemment décrite représente la structure générale d'une machine d'états classique, - la figure 2 représente la structure d'une machine d'états réalisée selon le procédé de l'invention, - les figures 3A, 3B, 3C illustrent un exemple d'application du procédé de l'invention et représentent respectivement un signal d'horloge primaire, un signal d'horloge secondaire, et un signal de comptage, - la figure 4 est le diagramme d'états d'une machine d'états prévue pour fournir le signal d'horloge de la figure 3B, - la figure 5 représente la structure d'une machine d'états correspondant au diagramme de la figure 4, et - la figure 6 représente un circuit logique comprenant une pluralité de machines d'états selon l'invention.  These and other objects, features and advantages of the present invention will be set forth in more detail in the following description of the method of making a state machine according to the invention and a practical example of making a such state machine, made in a non-limiting manner in relation to the attached figures among which: - Figure 1 previously described represents the general structure of a conventional state machine, - Figure 2 shows the structure of a machine of states produced according to the method of the invention, - Figures 3A, 3B, 3C illustrate an example of application of the method of the invention and respectively represent a primary clock signal, a secondary clock signal, and a counting signal; - FIG. 4 is the state diagram of a state machine intended to supply the clock signal of FIG. 3B; FIG. 5 represents the structure of a corresponding state machine; at the d FIG. 6 shows a logic circuit comprising a plurality of state machines according to the invention.

Le procédé de l'invention prévoit de réaliser une machine d'états présentant au moins les trois caractéristiques suivantes: - les codes caractérisant les états de la machine d'états sont choisis dans une liste de codes autorisés qui présentent les uns relativement aux autres une distance de Hamming déterminée égale à H, avec H au moins égal à 2, les autres codes étant déclarés interdits, - le décodage de l'état courant est effectué sur la pleine échelle du code de l'état courant, c'est-à-dire en tenant compte de tous les bits constitutifs du code de l'état courant, et - un signal d'erreur est émis si le code de l'état courant ne correspond à aucun des codes autorisés attribués à la machine d'états.  The method of the invention provides for producing a state machine having at least the following three characteristics: the codes characterizing the states of the state machine are chosen from a list of authorized codes which have relative to each other a determined Hamming distance equal to H, with H at least equal to 2, the other codes being declared forbidden, decoding of the current state is carried out on the full scale of the code of the current state, that is to say ie, taking into account all the bits constituting the code of the current state, and - an error signal is emitted if the code of the current state does not correspond to any of the authorized codes assigned to the state machine.

Une quatrième caractéristique de l'invention, optionnelle mais recommandée, est de n'attribuer à une machine d'états aucun code ne comprenant que des bits à 0 ou ne comprenant que des bits à 1, afin de protéger la machine d'états contre des attaques par injection de faute du type "tout à 1" ou "tout à 0".  A fourth feature of the invention, optional but recommended, is to attribute to a state machine no code comprising only bits at 0 or including only bits at 1, in order to protect the state machine against fault injection attacks of the "all-in-one" or "all-in" type.

Selon la première caractéristique de l'invention, on définit ainsi une liste de codes autorisés présentant les uns relativement aux autres une distance de Hamming au moins égale à 2. Une telle liste comporte, entre chaque code autorisé, des codes interdits. Ceci sera mieux compris à la lumière des exemples suivants.  According to the first characteristic of the invention, a list of authorized codes is thus defined that has a Hamming distance of at least 2 relative to each other. Such a list comprises, between each authorized code, forbidden codes. This will be better understood in light of the following examples.

Exemple N 1: des codes de 4 bits ayant les uns relativement aux autres une distance de Hamming au moins égale à 2 sont au nombre de huit, par exemple: 0001; 0010; 0100; 0111; 1000; 1011; 1101; 1110 et permettent de construire une machine d'états ayant au maximum huit états, tous les autres codes étant des codes 30 interdits.  Example N 1: 4-bit codes having relative to each other a Hamming distance of at least 2 are eight, for example: 0001; 0010; 0100; 0111; 1000; 1011; 1101; 1110 and make it possible to construct a state machine having at most eight states, all the other codes being forbidden codes.

Exemple N 2: des codes de 4 bits ayant les uns relativement aux autres une distance de Hamming au moins égale à 3 sont au nombre de deux, par exemple: 0001; 0110 et permettent de construire une machine d'états à deux états, tous les autres codes étant des codes interdits.  Example N 2: 4-bit codes having relative to each other a Hamming distance of at least 3 are two, for example: 0001; 0110 and make it possible to build a state machine with two states, all the other codes being forbidden codes.

Exemple N 3: des codes de 5 bits ayant les uns relativement aux autres une distance de Hamming au moins égale à 3 sont au nombre de quatre, par exemple: 00001; 00110; 11000; 11111 et permettent de construire une machine d'états ayant au maximum quatre états, tous les autres codes étant des codes interdits, ou une machine d'états ayant au maximum trois états si le code "11111" est déclaré interdit du fait qu'il ne comprend que des bits à 1.  Example N 3: 5-bit codes having a relative Hamming distance of at least 3 to each other are four, for example: 00001; 00110; 11000; 11111 and allow to build a state machine having at most four states, all the other codes being forbidden codes, or a state machine having at most three states if the code "11111" is declared forbidden because it only includes bits at 1.

Exemple N 4: des codes de 6 bits ayant les uns 15 relativement aux autres une distance de Hamming au moins égale à 3 sont au nombre de huit, par exemple: 000001; 000110; 011000; 011111; 101010; 101101; 110011; 110100 et permettent de construire une machine d'états ayant au maximum huit états, tous les autres codes étant des codes interdits.  Example N 4: There are eight 6-bit codes having a relative Hamming distance of at least three in each other, for example: 000001; 000110; 011000; 011111; 101010; 101101; 110011; 110100 and allow to build a state machine having at most eight states, all the other codes being forbidden codes.

De façon générale, des codes ayant une distance de Hamming au moins égale à 2 offrent une protection maximale contre l'injection d'une erreur (1 bit de code erroné) dans la machine d'états, si le décodage de l'état courant est assuré sur la totalité des bits de code. En effet, l'injection d'une seule erreur dans le code de l'état courant (ou dans le code de l'état suivant) entraîne immanquablement l'apparition d'un code interdit.  In general, codes having a Hamming distance of at least 2 provide maximum protection against the injection of an error (1 bit of erroneous code) into the state machine, if the decoding of the current state is ensured on all the code bits. Indeed, the injection of a single error in the code of the current state (or in the code of the next state) inevitably leads to the appearance of a forbidden code.

De même, des codes ayant les uns relativement aux autres une distance de Hamming au moins égale à 3 se distinguent les uns des autres par trois bits différents et offrent une protection contre l'injection de une ou deux erreurs (2 bits de code erronés) dans la machine d'états, si le décodage de l'état courant est assuré sur la totalité des bits de code. En effet, l'injection de une ou deux erreurs dans le code de l'état courant (ou de l'état suivant) entraîne immanquablement l'apparition d'un code interdit.  Similarly, codes having relative to each other a Hamming distance of at least 3 are distinguished from each other by three different bits and offer protection against the injection of one or two errors (2 wrong code bits) in the state machine, if the decoding of the current state is ensured on all the code bits. Indeed, the injection of one or two errors in the code of the current state (or the next state) inevitably leads to the appearance of a forbidden code.

En résumé, le choix d'une distance "H" de Hamming entre les codes d'une machine d'états, qui n'est pas quelconque et est au moins égale à une valeur déterminée, permet d'offrir une résistance absolue à un nombre d'injection d'erreurs allant de 1 à H-1, à la condition que le décodage de l'état courant soit effectué sur l'ensemble des bits de code.  In summary, the choice of a Hamming distance "H" between the codes of a state machine, which is not arbitrary and is at least equal to a given value, makes it possible to offer absolute resistance to a error injection number ranging from 1 to H-1, provided that the decoding of the current state is performed on all the code bits.

La figure 2 représente une structure de machine d'états 30 selon l'invention qui comporte K états stables STO, ST1,...STk. Ces états sont codés, conformément à l'invention, par des codes SCO, SC1,...SCk présentant les uns relativement aux autres une distance de Hamming au moins égale à 2.  FIG. 2 represents a state machine structure 30 according to the invention which comprises K stable states ST0, ST1,... STk. These states are coded, in accordance with the invention, by SCO codes, SC1,... SCk exhibiting relative to each other a Hamming distance of at least 2.

La machine d'états 30 comprend une bascule synchrone 31 de N bits et un circuit de transition d'état 32. La bascule 31, par exemple une bascule Flip-Flop, est synchronisée par un signal d'horloge CK1 et comporte N bascules élémentaires en parallèle (non représentées). Le circuit de transition d'état 32 comprend un décodeur de l'état courant 33 et un circuit de sélection d'état 34 qui fournit un code de l'état suivant NSC à l'entrée D de la bascule 31, dont la sortie Q fournit le code de l'état courant CSC.  The state machine 30 comprises an N-bit synchronous flip-flop 31 and a state transition circuit 32. The flip-flop 31, for example a Flip-Flop flip-flop, is synchronized by a clock signal CK1 and comprises N elementary flip-flops. in parallel (not shown). The state transition circuit 32 comprises a decoder of the current state 33 and a state selection circuit 34 which supplies a code of the following state NSC to the input D of the flip-flop 31, whose output Q provides the code of the current state CSC.

Selon l'invention, le décodeur de l'état courant 33 comprend des comparateurs COMPO, COMP1,...COMPk en nombre égal au nombre d'états autorisés attribués à la machine d'états. Chaque comparateur reçoit en entrée le code de l'état courant CSC ainsi que l'un des codes autorisés SCO, SC1,...SCk, et fournit un signal d'identification de 1 bit, respectivement IDO, IDl,...IDk. Ainsi, le comparateur COMPO reçoit les codes SCO, CSC et fournit le signal IDO, le comparateur COMP1 reçoit les codes SC1, CSC et fournit le signal IDl, etc. , le comparateur COMPk recevant les codes SCk, CSC et fournissant le signal IDk. Lorsque le code de l'état courant CSC est égal à l'un des codes SCO, SC1,...SCk, le comparateur correspondant met à 1 le signal d'identification correspondant. Par exemple, le code IDl passe à 1 à la sortie du comparateur COMP1 si le code CSC est égal au code SC1.  According to the invention, the decoder of the current state 33 comprises comparators COMPO, COMP1, ... COMPk in number equal to the number of authorized states allocated to the state machine. Each comparator receives as input the code of the current state CSC as well as one of the authorized codes SCO, SC1,... SCk, and provides a identification signal of 1 bit, respectively IDO, ID1, ... IDk . Thus, the comparator COMPO receives the codes SCO, CSC and provides the signal IDO, the comparator COMP1 receives the codes SC1, CSC and provides the signal ID1, etc. the comparator COMPk receiving the codes SCk, CSC and providing the signal IDk. When the code of the current state CSC is equal to one of the codes SCO, SC1,... SCk, the corresponding comparator sets to 1 the corresponding identification signal. For example, the code ID1 goes to 1 at the output of the comparator COMP1 if the code CSC is equal to the code SC1.

Les codes SCO, SC1,...SCk appliqués aux comparateurs sont générés de façon hardware à l'intérieur de la machine d'états, par des connexions de pistes conductrices à une tension d'alimentation Vcc (bit à 1) ou par des connexions à la masse (bit à 0).  The SCO, SC1, ... SCk codes applied to the comparators are generated in hardware within the state machine by conductive track connections at a supply voltage Vcc (bit at 1) or by ground connections (0 bit).

Dans chaque comparateur, la comparaison est effectuée sur la pleine échelle de chaque code. A cet effet, chaque comparateur comprend une pluralité de portes logiques (non représentées sur la figure), par exemple des portes OU EXCLUSIF (XOR) dont les sorties sont combinées dans une porte NON OU dont la sortie fournit le signal d'identification. Chaque porte OU EXCLUSIF reçoit un bit du code de l'état courant et un bit du code de l'état autorisé auquel le code de l'état courant est comparé. Si tous les bits sont identiques deux à deux, les sorties des portes OU EXCLUSIF sont toutes à 0 et la sortie de la porte NON OU est à 1 (valeur active du signal d'identification). Si au moins un bit du code de l'état courant est différent du code de l'état auquel l'état courant est comparé, la sortie de la porte XOR correspondante passe à 1 et la sortie de la porte NON OU passe à O. Le circuit de sélection d'état 34 comprend un circuit de décision DCT1 à logique câblée et un multiplexeur MUX1. Le circuit de décision DCT1 reçoit des signaux de contrôle INO, IN1,  In each comparator, the comparison is made on the full scale of each code. For this purpose, each comparator comprises a plurality of logic gates (not shown in the figure), for example EXCLUSIVE OR gates (XOR) whose outputs are combined in a NOR gate whose output provides the identification signal. Each EXCLUSIVE OR gate receives one bit of the current state code and one bit of the authorized state code to which the current state code is compared. If all the bits are identical in pairs, the outputs of the EXCLUSIVE OR gates are all 0 and the output of the NOR gate is at 1 (active value of the identification signal). If at least one bit of the code of the current state is different from the code of the state to which the current state is compared, the output of the corresponding XOR gate goes to 1 and the output of the NOR gate goes to O. The state selection circuit 34 comprises a hard-wired logic decision circuit DCT1 and a multiplexer MUX1. The decision circuit DCT1 receives control signals INO, IN1,

.INn et les signaux d'identification IDO, ID1...IDk fournis par le décodeur de l'état courant 33. Le circuit 34 fournit au multiplexeur MUX1 un signal NSSEL de sélection de l'état suivant. Le multiplexeur MUX1 reçoit en entrée les codes SCO, SC1...SCk attribués à la machine d'états (générés de façon hardware), sélectionne le code de l'état suivant NSC parmi l'un de ces codes en fonction de la valeur du signal NSSEL, et applique le code à l'entrée D de la bascule synchrone 31...DTD: Selon l'invention, la machine d'états 30 comprend en outre une porte NON OU 35 à K entrées qui reçoit les signaux d'identification IDO, ID1...IDk fournis par le décodeur 33. Cette porte logique 35 fournit un signal d'erreur ERS qui passe à 1 si aucun des signaux d'identification n'est à 1, ce qui signifie que l'état courant ne correspond à aucun des états autorisés attribués à la machine d'états. Le signal ERS est valide sur front montant de l'horloge CK1 et doit être verrouillé à cet instant là par tout moyen de verrouillage connu, par exemple une bascule D (non représentée).  .INn and the identification signals IDO, ID1 ... IDk provided by the decoder of the current state 33. The circuit 34 provides the multiplexer MUX1 a NSSEL signal for selecting the next state. The multiplexer MUX1 receives as input the SCO, SC1 ... SCk codes assigned to the state machine (generated in a hardware way), selects the code of the following state NSC from one of these codes as a function of the value signal NSSEL, and applies the code to the input D of the synchronous flip-flop 31 ... DTD: According to the invention, the state machine 30 further comprises a NOR gate 35 to K inputs which receives the signals D identification IDO, ID1 ... IDk provided by the decoder 33. This logic gate 35 provides an error signal ERS which passes to 1 if none of the identification signals is 1, which means that the state current does not match any of the allowed states assigned to the state machine. The ERS signal is valid on the rising edge of the clock CK1 and must be locked at this time there by any known locking means, for example a D flip-flop (not shown).

Une telle machine d'états est résistante à l'injection d'une erreur dans le code de l'état courant CSC (injection d'erreur en sortie de la bascule 31) ou dans le code de l'état suivant NSC (injection d'erreur en sortie du multiplexeur) si la distance de Hamming entre les codes est au moins égale à 2. Elle est résistante à l'injection de une et deux erreurs si la distance de Hamming entre les codes est au moins égale à 3, etc. Par "résistance à l'erreur", on désigne le fait qu'une erreur est immanquablement détectée. Si la distance de Hamming entre les codes est au moins égale à 2, une injection d'erreur sur un bit est immanquablement détectée tandis qu'une injection d'erreur sur deux bits peut être détectée mais ne l'est pas immanquablement, car le code obtenu après injection de l'erreur peut appartenir à la liste des codes autorisés. De même, si la distance de Hamming est au moins égale à 3, une injection d'erreur sur un ou deux bits est immanquablement détectée tandis qu'une injection d'erreur sur trois bits n'est détectée que si le code obtenu après l'injection d'erreur est un code interdit.  Such a state machine is resistant to the injection of an error in the code of the current state CSC (error injection at the output of latch 31) or in the code of the following state NSC (injection of multiplexer output error) if the Hamming distance between the codes is at least 2. It is resistant to the injection of one and two errors if the Hamming distance between the codes is at least 3, etc. . By "error resistance" is meant the fact that an error is invariably detected. If the Hamming distance between the codes is at least 2, an error injection on one bit is inevitably detected while a two-bit error injection can be detected but is not necessarily detected, because the code obtained after injection of the error can belong to the list of authorized codes. Similarly, if the Hamming distance is at least 3, an error injection on one or two bits is inevitably detected while a three-bit error injection is detected only if the code obtained after Error injection is a forbidden code.

Ainsi, une injection d'erreur est immanquablement détectée si elle conduit immanquablement la machine d'états à basculer dans un état interdit, de sorte que le signal d'erreur passe immanquablement à 1.  Thus, an error injection is inevitably detected if it inevitably leads the state machine to switch to a forbidden state, so that the error signal invariably passes to 1.

Le signal d'erreur émis par une machine d'états selon l'invention peut être exploité de diverses manières à la portée de l'homme de l'art afin de prendre des mesures préventives: blocage ou remise à zéro de la machine d'états, blocage général du circuit logique comprenant la machine d'états (microprocesseur, séquenceur, circuit de calcul cryptographique), envoi d'une alerte externe, effacement préventif de données sensibles, etc.. Un compteur d'erreur peut être prévu pour déclencher de telles actions préventives à partir d'un nombre déterminé d'erreurs cumulées, afin de ne pas tenir compte d'une erreur isolée sans rapport avec une injection d'erreur frauduleuse.  The error signal emitted by a state machine according to the invention can be exploited in various ways within the reach of those skilled in the art in order to take preventive measures: blocking or resetting the machine states, general blocking of the logic circuit comprising the state machine (microprocessor, sequencer, cryptographic calculation circuit), sending of an external alert, preventive clearing of sensitive data, etc. An error counter can be provided to trigger such preventive actions from a given number of accumulated errors, so as not to take into account an isolated error unrelated to a fraudulent error injection.

On décrira maintenant un exemple d'application du procédé de l'invention. On suppose ici que l'on dispose d'un signal d'horloge primaire CK1 tel que représenté sur la figure 3A, et que l'on souhaite réaliser un générateur d'horloge fournissant un signal d'horloge secondaire CK2 représenté en figure 3B, ayant un rapport cyclique ("duty cycle") programmable égal à R, avec R au moins égal à 1.  An example of application of the method of the invention will now be described. It is assumed here that a primary clock signal CK1 as shown in FIG. 3A is available, and that it is desired to produce a clock generator supplying a secondary clock signal CK2 represented in FIG. 3B. having a duty cycle programmable equal to R, with R at least equal to 1.

La figure 3B représente l'allure du signal d'horloge CK2 lorsque R est égal à 2. Dans ce cas, le signal d'horloge CK2 est à 1 pendant une période Tl du signal d'horloge CK1 et est à 0 pendant deux périodes du signal d'horloge CK1, soit pendant une durée 2T1, ce qui correspond bien à un rapport cyclique égal à 2 (2T1/Tl).  FIG. 3B shows the shape of the clock signal CK2 when R is equal to 2. In this case, the clock signal CK2 is at 1 during a period T1 of the clock signal CK1 and is at 0 for two periods of the clock signal CK1, ie for a duration 2T1, which corresponds to a duty cycle equal to 2 (2T1 / T1).

Pour réaliser un tel générateur d'horloge, on définit une machine d'états cadencée par le signal d'horloge primaire CK1 dont le diagramme d'états est représenté sur la figure 4. La machine d'états présente  To produce such a clock generator, a state machine is defined which is clocked by the primary clock signal CK1 whose state diagram is represented in FIG. 4. The state machine presents

trois états stables:three stable states:

- un état IDLE dans lequel la machine d'états est désactivée, - un état SETCK2 dans lequel le signal d'horloge CK2 est mis à 1 - un état RSTCK2 dans lequel le signal d'horloge CK2 est mis à O. En sus de ces états, des signaux de contrôle de la machine d'états sont définis afin de contrôler les transitions d'états. Ces signaux de contrôle comprennent un signal de mise en service ON/OFF et une consigne RS codée binaire qui est égale en codage binaire au rapport cyclique souhaité R. Une variable COUNT est également définie afin de contrôler le nombre de cycles du signal d'horloge primaire CK1 (soit le nombre de périodes Tl) pendant lequel la machine d'états reste dans l'état RSTCK2, ce nombre de cycles devant être égal à la consigne RS. La variable COUNT est portée à la valeur de la consigne RS lorsque la machine d'états bascule dans l'état SETCK2, et est décrémentée d'une unité lorsque la machine d'états bascule dans l'état RSTCK2 et/ou lorsqu'elle reste dans l'état RSTCK2 pour un cycle d'horloge CK1 supplémentaire.  an IDLE state in which the state machine is deactivated; a state SETCK2 in which the clock signal CK2 is set; a state RSTCK2 in which the clock signal CK2 is set to O. In addition to these states, control signals of the state machine are defined to control the state transitions. These control signals include an ON / OFF commissioning signal and a binary encoded RS setpoint which is binary coded to the desired duty cycle R. A COUNT variable is also set to control the number of cycles of the clock signal. primary CK1 (the number of periods Tl) during which the state machine remains in state RSTCK2, this number of cycles to be equal to the RS instruction. The variable COUNT is brought to the value of the setpoint RS when the state machine switches to the SETCK2 state, and is decremented by one unit when the state machine switches to the state RSTCK2 and / or when remains in the RSTCK2 state for an additional CK1 clock cycle.

La machine d'états présente ainsi les transitions d'états suivantes: - i) passage de l'état IDLE à l'état SETCK2 lorsque le signal ON/OFF est mis à 1 et si RS est différent de 0 25 (RS > 0), - ii) passage de l'état SETCK2 à l'état RSTCK2 après un cycle du signal d'horloge primaire CK1 (sauf dans le cas visé au point iv), - iii) passage de l'état RSTCK2 à l'état SETCK2 lorsque 30 COUNT=O, - iv) retour à l'état IDLE lorsque RS est porté à 0 et/ou lorsque le signal ON/OFF est porté O. Des signaux internes de contrôle SETCOUNT, DECCOUNT sont également définis afin d'assurer la gestion de la variable COUNT. Par définition, la variable COUNT est portée à la valeur de la consigne RS lorsque SETCOUNT est à 1, et est décrémentée d'une unité lorsque DECCOUNT est égal à 1. Ainsi, le signal SETCOUNT est mis à 1 et le signal DECCOUNT mis à 0 lors du basculement de la machine d'états dans l'état SETCK2, tandis que le signal DECCOUNT est mis à 1 etle signal SETCOUNT mis à 0 lors du basculement de la machine d'états dans l'état RSTCK2 ou lorsque la machine d'états reste dans l'état RSTCK2 pour un cycle d'horloge CK1 supplémentaire.  The state machine thus has the following state transitions: - i) transition from the IDLE state to the SETCK2 state when the ON / OFF signal is set and RS is not equal to 0 25 (RS> 0 ii) transition from the SETCK2 state to the RSTCK2 state after a cycle of the primary clock signal CK1 (except in the case referred to in point iv), iii) transition from the RSTCK2 state to the state SETCK2 when 30 COUNT = O, - iv) return to IDLE state when RS is set to 0 and / or when the ON / OFF signal is carried O. SETCOUNT, DECCOUNT control internal signals are also defined to ensure the management of the COUNT variable. By definition, the variable COUNT is brought to the value of the setpoint RS when SETCOUNT is 1, and is decremented by one unit when DECCOUNT is equal to 1. Thus, the SETCOUNT signal is set to 1 and the DECCOUNT signal set to 0 when the state machine is switched to the SETCK2 state, while the DECCOUNT signal is set to 1 and the SETCOUNT signal is set to 0 when the state machine is switched to the RSTCK2 state or when the state machine is set to 0 The states remain in the RSTCK2 state for an additional CK1 clock cycle.

Les étapes de conception qui viennent d'être décrites sont en soi classiques. Une fois ces étapes réalisées, des codes selon l'invention sont attribués à chacun des trois états définis ci-dessus. On suppose ici que le cahier des charges de la machine d'états exige une résistance totale à l'injection de une ou deux erreurs dans la machine d'états, ainsi que l'interdiction de prévoir des codes n'ayant que des bits à 0 ou que des bits à 1, afin de prémunir la machine d'états contre des attaques de type "tout à 0" ou "tout à 1". Dans ces conditions, la distance de Hamming entre les codes doit être au moins égale à 3. Parmi les exemples de codes selon l'invention décrits ci-dessus, l'exemple N 3 montre que des codes de 5 bits ayant une distance de Hamming au moins égale à 3 sont au nombre de quatre. On choisit par exemple les codes suivants: 00001; 00110; 11000; 11111 Après suppression du code "11111" qui ne contient que des bits à 1, et doit donc être déclaré interdit, il reste trois codes disponibles pour coder les trois états IDLE, SETCK2, RSTCK2. Le codage des trois états de la machine d'états est ainsi réalisé de la manière décrite par le tableau 1 ci-après. Ce tableau représente également la valeur des signaux SETCOUNT et DECCOUNT. Les bits de code sont désignés c0, cl, c2, c3, c4.  The design steps that have just been described are in themselves classic. Once these steps have been performed, codes according to the invention are assigned to each of the three states defined above. It is assumed here that the specifications of the state machine require a total resistance to the injection of one or two errors into the state machine, as well as the prohibition to provide codes having only bits to 0 or bits to 1, to guard the state machine against attacks of type "all to 0" or "all to 1". Under these conditions, the Hamming distance between the codes must be at least equal to 3. Among the examples of codes according to the invention described above, the example N 3 shows that 5-bit codes having a Hamming distance. at least 3 are four in number. For example, the following codes are chosen: 00001; 00110; 11000; 11111 After deleting the code "11111" which contains only bits at 1, and must therefore be declared forbidden, there remain three codes available to code the three states IDLE, SETCK2, RSTCK2. The coding of the three states of the state machine is thus carried out as described in Table 1 below. This table also represents the value of SETCOUNT and DECCOUNT signals. The code bits are designated c0, cl, c2, c3, c4.

Tableau 1Table 1

Etat Code Valeur du code SETCOUNT DECCOUN c4 c3 c2 et cO T IDLE SCO 0 0 0 0 1 0 0 SETCK2 SC1 0 0 1 1 0 1 0 RSTCK2 SC2 1 1 0 0 0 0 1 (interdit) - 1 1 1 1 1 - - La figure 5 représente un exemple de réalisation 40 d'une telle machine d'états, destinée à être implémentée sur une microplaquette de silicium. La machine d'états 40 comprend, comme celle décrite plus haut, une bascule synchrone 41 et un circuit de transition d'état 42 qui comprend un décodeur de l'état courant 43 et un circuit de sélection d'état 44.  State Code Code Value SETCOUNT DECCOUN c4 c3 c2 and cO T IDLE SCO 0 0 0 0 1 0 0 SETCK2 SC1 0 0 1 1 0 1 0 RSTCK2 SC2 1 1 0 0 0 0 1 (prohibited) - 1 1 1 1 1 - FIG. 5 represents an exemplary embodiment 40 of such a state machine, intended to be implemented on a silicon chip. The state machine 40 comprises, as described above, a synchronous flip-flop 41 and a state transition circuit 42 which comprises a current state decoder 43 and a state selection circuit 44.

La bascule synchrone 41, synchronisée par le signal d'horloge primaire CK1, reçoit le code de l'état suivant NSC sur son entrée D et sa sortie Q fournit le code de l'état courant CSC. Le décodeur de l'état courant 43 comprend des comparateurs COMPO, COMP1, COMP2. Le comparateur COMPO reçoit le code CSC et le code SCO et fournit un signal d'identification IDO. Le comparateur COMP1 reçoit le code CSC et le code SC1 et fournit un signal d'identification ID1. Le comparateur COMP2 reçoit le code CSC et le code SC2 et fournit un signal d'identification ID2. Lorsque le code CSC est égal à l'un des codes SCO, SC1, SC2, le comparateur correspondant met à 1 le signal d'identification correspondant. Dans chaque comparateur, la comparaison est effectuée en pleine échelle, en tenant compte des N bits de chaque code. Les codes SCO, SC1, SC2 sont, comme précédemment, générés de façon hardware.  The synchronous flip-flop 41, synchronized by the primary clock signal CK1, receives the code of the next state NSC on its input D and its output Q provides the code of the current state CSC. The current state decoder 43 comprises comparators COMPO, COMP1, COMP2. The comparator COMPO receives the code CSC and the code SCO and provides an identification signal IDO. The comparator COMP1 receives the code CSC and the code SC1 and provides an identification signal ID1. The comparator COMP2 receives the code CSC and the code SC2 and provides an identification signal ID2. When the code CSC is equal to one of the codes SCO, SC1, SC2, the corresponding comparator sets the corresponding identification signal. In each comparator, the comparison is made in full scale, taking into account the N bits of each code. The SCO codes, SC1, SC2 are, as before, generated in hardware.

Le circuit de sélection d'état 44 comprend un circuit de décision DCT2 et un multiplexeur MUX2. Le circuit de décision DCT2 reçoit la consigne RS et le signal ON/OFF, ainsi qu'un signal interne de contrôle COUNTNIL qui est égal à 1 quand la variable COUNT est égale à 0. Le circuit DCT2 fournit un signal NSSEL de sélection de l'état suivant, appliqué au multiplexeur MUX2. Le multiplexeur MUX2 reçoit en entrée les codes SCO, SC1, SC2, sélectionne le code de l'état suivant NSC parmi l'un de ces codes et applique le code sélectionné à l'entrée D de la bascule 41.  The state selection circuit 44 comprises a decision circuit DCT2 and a multiplexer MUX2. The decision circuit DCT2 receives the set point RS and the signal ON / OFF, as well as an internal control signal COUNTNIL which is equal to 1 when the variable COUNT is equal to 0. The circuit DCT2 provides a signal NSSEL for selecting the next state applied to the MUX2 multiplexer. The multiplexer MUX2 receives as input the codes SCO, SC1, SC2, selects the code of the next state NSC from one of these codes and applies the selected code to the input D of the flip-flop 41.

La machine d'états 40 comprend également une porte NON OU 45 qui reçoit les trois signaux d'identification IDO, ID1, ID2 et fournit un signal d'erreur ERS. Ce signal d'erreur passe à 1 si aucun des signaux d'identification n'est à 1, ce qui signifie comme précédemment que l'état courant ne correspond à aucun des trois états autorisés attribués à la machine d'états. Comme indiqué plus haut, le signal ERS est valide sur front montant de l'horloge CK1 et doit être verrouillé à cet instant là.  The state machine 40 also includes a NOR gate 45 which receives the three identification signals IDO, ID1, ID2 and provides an ERS error signal. This error signal goes to 1 if none of the identification signals is 1, which means as before that the current state does not correspond to any of the three authorized states assigned to the state machine. As indicated above, the ERS signal is valid on the rising edge of the clock CK1 and must be locked at that instant.

La machine d'états comprend également un compteur 46 piloté par le signal d'horloge primaire CK1, un comparateur 47 et un décodeur auxiliaire 48. Le compteur 46 présente une entrée IN de chargement de données qui reçoit la consigne RS, une sortie OUT qui fournit la variable COUNT, une entrée LOAD qui reçoit le signal SETCOUNT et déclenche le chargement de la consigne RS dans le compteur, et une entrée DEC de décrémentation de la variable COUNT, qui reçoit le signal DECCOUNT. Le comparateur 47 a une première entrée reliée à la sortie OUT du compteur 46 et reçoit sur une autre entrée une donnée égale à 0. Sa sortie fournit le signal COUNTNIL qui reste à 0 tant que COUNT est différent de O. Le décodeur auxiliaire 48 reçoit le code de l'état suivant NSC et fournit les signaux internes de contrôle SETCOUNT, DECCOUNT, qui sont ainsi mis à jour avant que la machine d'états passe de l'état courant à l'état suivant. Ainsi, lorsque l'état suivant devient l'état courant, c'est-à- dire lorsque la bascule 41 et le compteur 46 reçoivent un front montant du signal d'horloge primaire CK1, les valeurs des signaux SETCOUNT, DECCOUNT sont à jour sur les entrées LOAD et DEC du compteur 46, de sorte que celui-ci charge la consigne RS si SETCOUNT=1 ou décrémente la variable COUNT si DECCOUNT=1 au début du cycle d'horloge. La machine d'états fonctionne ainsi conformément au diagramme de la figure 4.  The state machine also comprises a counter 46 controlled by the primary clock signal CK1, a comparator 47 and an auxiliary decoder 48. The counter 46 has a data loading input IN which receives the setpoint RS, an output OUT which provides the variable COUNT, a LOAD input which receives the SETCOUNT signal and triggers the loading of the RS setpoint into the counter, and a decrement input DEC of the COUNT variable, which receives the DECCOUNT signal. The comparator 47 has a first input connected to the output OUT of the counter 46 and receives on another input a data equal to 0. Its output provides the COUNTNIL signal which remains at 0 as COUNT is different from O. The auxiliary decoder 48 receives the next state code NSC and supplies the internal control signals SETCOUNT, DECCOUNT, which are thus updated before the state machine changes from the current state to the next state. Thus, when the next state becomes the current state, i.e., when the flip-flop 41 and the counter 46 receive a rising edge of the primary clock signal CK1, the values of the signals SETCOUNT, DECCOUNT are up to date. on the LOAD and DEC inputs of the counter 46, so that it loads the RS setpoint if SETCOUNT = 1 or decrements the COUNT variable if DECCOUNT = 1 at the beginning of the clock cycle. The state machine thus operates in accordance with the diagram of FIG.

La production du signal d'horloge secondaire CK2 est assuré par un circuit de commande 50 auquel le code de l'état courant CSC est appliqué. Ce circuit de commande 50 est ici un simple décodeur comprenant une porte 51 de type NON ET à 5 entrées et deux portes inverseuses 52, 53. Les portes inverseuses 52, 53 reçoivent respectivement les bits cl, c2 du code CSC. La porte 51 reçoit sur une première entrée le bit cO du code CSC, sur une deuxième entrée la sortie de la porte 52, sur une troisième entrée la sortie de la porte 53, et sur ses deux autres entrées les bits c3, c4 du code CSC. Ainsi, le signal CK2 passe à 1 quand la machine d'états est dans l'état SETCK2 (code 00110) et passe à 0 dans les autres cas. Le rapport cyclique du signal CK2 est ici égal au nombre de cycles du signal d'horloge primaire CKi pendant lequel la machine d'états est maintenue dans l'état RSTCK2, ce nombre étant fonction de la consigne RS.  The output of the secondary clock signal CK2 is provided by a control circuit 50 to which the current state code CSC is applied. This control circuit 50 is here a simple decoder comprising a gate 51 of the NAND type with 5 inputs and two inverting gates 52, 53. The inverting gates 52, 53 respectively receive the bits c1, c2 of the CSC code. The gate 51 receives on a first input the bit cO of the code CSC, on a second input the output of the gate 52, on a third input the output of the gate 53, and on its other two inputs the bits c3, c4 of the code CCS. Thus, the signal CK2 goes to 1 when the state machine is in the SETCK2 state (code 00110) and goes to 0 in the other cases. The duty cycle of the signal CK2 is here equal to the number of cycles of the primary clock signal CKi during which the state machine is maintained in the state RSTCK2, this number being a function of the setpoint RS.

Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de divers autres modes de réalisation, notamment en ce qui concerne la structure du décodeur de l'état courant, la structure du circuit de sélection d'état, et la structure du. circuit logique fournissant le signal d'erreur, ces éléments étant susceptibles de diverses variantes à la portée de l'homme de l'art. D'autre part, la présente invention est bien évidemment susceptible de diverses autres applications que celle décrite ci-dessus à titre d'exemple non limitatif, notamment des applications bien connues de l'homme de l'art comme la réalisation de circuits de cryptographie, d'unités centrales de microprocesseurs, etc. Dans certaines applications, un circuit intégré selon l'invention peut comprendre des dizaines voire des centaines de machines d'états selon l'invention, chacune fournissant un signal d'erreur. De multiples signaux d'erreur devront donc être gérés collectivement. La figure 6 représente schématiquement un circuit intégré 60 comprenant une pluralité de machines d'états selon l'invention, et montre comment les signaux d'erreur individuels émis par les machines d'états peuvent être gérés collectivement. Les machines d'états sont arrangées en groupes GO..Gn, chaque groupe comprenant des sous-groupes SGO...SGn, chaque sous-groupe comprenant une pluralité de machines d'états SMO...SMn. Dans chaque sous-groupe SGO...SGn les signaux d'erreur ERSO...ERSn fournis par les machines d'états sont collectés par une porte OU 61 pour former un signal d'erreur de sous-groupe ERSO,O...ERSO,n. Dans chaque groupe, les signaux d'erreur de sous-groupes sont collectés par une porte OU 62 pour former un signal d'erreur de groupe GERSO...GESRn. Les signaux d'erreur de groupes sont ensuite collectés par une porte OU 63 qui fournit un signal d'erreur général GERS. Le signal GERS est mémorisé par une bascule synchrone 64pour obtenir un signal d'erreur général synchrone SGERS, qui est renvoyé sur l'entrée D de la bascule 64 par l'intermédiaire d'une porte OU 65 afin d'être rafraîchi à chaque cycle d'horloge. La bascule synchrone 64 est synchronisée par le signal d'horloge CK1 car, comme indiqué plus haut, c'est sur le front montant du signal CK1 que les signaux d'erreur individuels sont valides.  It will be apparent to those skilled in the art that the present invention is susceptible of various other embodiments, particularly with respect to the structure of the current state decoder, the structure of the state selection circuit, and the structure of the. logic circuit providing the error signal, these elements being capable of various variants within the reach of those skilled in the art. On the other hand, the present invention is obviously capable of various other applications than that described above by way of non-limiting example, including applications well known to those skilled in the art such as the realization of cryptography circuits. , central microprocessor units, etc. In some applications, an integrated circuit according to the invention may comprise tens or even hundreds of state machines according to the invention, each providing an error signal. Multiple error signals will therefore have to be managed collectively. FIG. 6 schematically represents an integrated circuit 60 comprising a plurality of state machines according to the invention, and shows how the individual error signals transmitted by the state machines can be managed collectively. The state machines are arranged in groups GO..Gn, each group comprising subgroups SGO ... SGn, each subgroup comprising a plurality of state machines SMO ... SMn. In each subgroup SGO ... SGn the error signals ERSO ... ERSn provided by the state machines are collected by an OR gate 61 to form an error signal of subgroup ERSO, O .. .ERSO, n. In each group, the subgroup error signals are collected by an OR gate 62 to form a GERSO ... GESRn group error signal. The group error signals are then collected by an OR gate 63 which provides a general error signal GERS. The signal GERS is memorized by a synchronous flip-flop 64 to obtain a synchronous general error signal SGERS, which is sent back to the input D of the flip-flop 64 via an OR gate 65 in order to be refreshed at each cycle. clock. The synchronous flip-flop 64 is synchronized by the clock signal CK1 because, as indicated above, it is on the rising edge of the signal CK1 that the individual error signals are valid.

Le signal d'erreur général SGERS peut être utilisé de diverses manières à la portée de l'homme de l'art pour bloquer ou remettre à zéro le circuit intégré 60, ou des parties du circuit intégré, notamment pendant l'exécution d'un calcul ou d'une opération sensible.  The general error signal SGERS can be used in various ways within the reach of those skilled in the art to block or reset the integrated circuit 60, or parts of the integrated circuit, especially during the execution of a calculation or sensitive operation.

Claims (14)

REVENDICATIONS 1. Machine d'états à logique câblée (30, 40) présentant un nombre prédéterminé d'états correspondant chacun à un code prédéterminé (SCO, SC1, SC2, SCk) et comprenant: - une bascule synchrone (31, 41) recevant un code de l'état suivant (NSC) et fournissant un code de l'état courant (CSC), en synchronisation avec un signal d'horloge (CK1), et - un circuit de transition d'état (32, 42) pour fournir à la bascule le code de l'état suivant (NSC) en fonction du code de l'état courant (CSC) et de signaux de contrôle (INO-INn, ON/OFF, RS), caractérisée en ce que les codes prédéterminés (SCO, SC1, SC2, SCk) de la machine d'états présentent les uns relativement aux autres une distance de Hamming au moins égale à 2, et en ce que le circuit de transition d'état comprend: - un décodeur de l'état courant (33, 43) effectuant un décodage pleine échelle du code de l'état courant (CSC), 20 et - des moyens (35, 45) pour fournir un signal d'erreur (ERS) ayant une valeur active déterminée lorsqu'un code de l'état courant ne correspond à aucun code prédéterminé.  A wired logic state machine (30, 40) having a predetermined number of states each corresponding to a predetermined code (SCO, SC1, SC2, SCk) and comprising: - a synchronous latch (31, 41) receiving a next state code (NSC) and providing a current state code (CSC), in synchronism with a clock signal (CK1), and - a state transition circuit (32, 42) for providing toggles the next state code (NSC) according to the current state code (CSC) and control signals (INO-INn, ON / OFF, RS), characterized in that the predetermined codes ( SCO, SC1, SC2, SCk) of the state machine have relative to each other a Hamming distance of at least 2, and in that the state transition circuit comprises: - a decoder of the state current (33, 43) performing full scale decoding of the current state code (CSC), and - means (35, 45) for providing an error signal (ERS) having a value of determined when a code of the current state does not correspond to any predetermined code. 2. Machine d'états selon la revendication 1, dans laquelle les codes prédéterminés (SCO, SC1, SC2, SCk) de la machine d'états présentent les uns relativement aux autres une distance de Hamming au moins égale à 3.  2. State machine according to claim 1, wherein the predetermined codes (SCO, SC1, SC2, SCk) of the state machine have relative to each other a Hamming distance of at least 3. 3. Machine d'états selon la revendication 1, dans laquelle les codes prédéterminés (SCO, SC1, SC2, SCk) de la machine d'états présentent les uns relativement aux autres une distance de Hamming au moins égale à 4.  3. State machine according to claim 1, wherein the predetermined codes (SCO, SC1, SC2, SCk) of the state machine have relative to each other a Hamming distance of at least 4. 4. Machine d'états selon l'une des revendications 1 à 3, dans laquelle un code ne comprenant que des bits à 0 ou que des bits à 1 est un code interdit dont l'apparition dans la machine d'états active le signal d'erreur (ERS).  4. State machine according to one of claims 1 to 3, wherein a code comprising only 0 bits or 1-bit is a forbidden code whose appearance in the state machine activates the signal. error message (ERS). 5. Machine d'états selon l'une des revendications 1 à 4, dans laquelle le décodeur de l'état courant (33, 43) comprend des comparateurs (COMPO, COMP1, COMP2, COMPk) recevant chacun le code de l'état courant (CSC) et l'un des codes prédéterminés (SCO, SC1, SC2, SCk), et fournissant un signal d'identification d'état (IDO, ID1, ID2, IDk) ayant une valeur active déterminée si les deux codes sont identiques, chaque comparateur effectuant une comparaison des deux codes portant sur l'ensemble de leurs bits constitutifs.  5. State machine according to one of claims 1 to 4, wherein the decoder of the current state (33, 43) comprises comparators (COMPO, COMP1, COMP2, COMPk) each receiving the code of the state current (CSC) and one of the predetermined codes (SCO, SC1, SC2, SCk), and providing a state identification signal (IDO, ID1, ID2, IDk) having a determined active value if the two codes are identical, each comparator making a comparison of the two codes covering all of their constituent bits. 6. Machine d'états selon la revendication 5, comprenant un circuit logique (35, 45) recevant les signaux d'identification d'état (IDO, ID1, ID2, IDk) fournis par les comparateurs (COMPO, COMP1, COMP2, COMPk), et fournissant le signal d'erreur (ERS) si aucun des signaux d'identification ne présente la valeur déterminée.  6. State machine according to claim 5, comprising a logic circuit (35, 45) receiving the state identification signals (IDO, ID1, ID2, IDk) provided by the comparators (COMPO, COMP1, COMP2, COMPK ), and providing the error signal (ERS) if none of the identification signals has the determined value. 7. Circuit intégré (60) comprenant une pluralité de machines d'états (SMOSMn) selon l'une des revendications 1 à 6, et des portes logiques (61, 62, 63, 65) pour combiner les signaux d'erreurs émis par l'ensemble des machines d'états et fournir un signal d'erreur général (GERS, SGERS).  An integrated circuit (60) comprising a plurality of state machines (SMOSMn) according to one of claims 1 to 6, and logic gates (61, 62, 63, 65) for combining the error signals transmitted by the set of state machines and provide a general error signal (GERS, SGERS). 8. Procédé de réalisation d'une machine d'états à logique câblée présentant un nombre prédéterminé d'états correspondant chacun à un code prédéterminé (SCO, SC1, SC2, SCk), et comprenant une bascule synchrone (31, 41) recevant un code de l'état suivant (NSC) et fournissant un code de l'état courant (CSC), en synchronisation avec un signal d'horloge (CK1) , et un circuit de transition d'état (32, 42) pour fournir à la bascule le code de l'état suivant (NSC) en fonction du code de l'état courant (CSC) et de signaux de contrôle (INO-INn, ON/OFF, RS), procédé caractérisé en ce qu'il comprend les étapes suivantes: - attribuer à la machine d'états des codes prédéterminés (SCO, SC1, SC2, SCk) présentant les uns relativement aux autres une distance de Hamming au moins égale à 2, - prévoir dans le circuit de transition d'état un décodeur de l'état courant (33, 43) effectuant un décodage pleine échelle du code de l'état courant (CSC), et - prévoir dans la machine d'états des moyens {35, 45) pour fournir un signal d'erreur ayant une valeur active déterminée lorsque le code de l'état courant ne correspond à aucun code prédéterminé (SCO, SC1, SC2, SCk).  8. A method for producing a wired logic state machine having a predetermined number of states each corresponding to a predetermined code (SCO, SC1, SC2, SCk), and comprising a synchronous latch (31, 41) receiving a next state code (NSC) and providing a current state code (CSC), in synchronism with a clock signal (CK1), and a state transition circuit (32, 42) for providing the following status code (NSC) is toggled according to the code of the current state (CSC) and of the control signals (INO-INn, ON / OFF, RS), characterized in that it comprises the following steps: - assigning to the state machine predetermined codes (SCO, SC1, SC2, SCk) having relative to each other a Hamming distance of at least 2, - providing in the state transition circuit a current state decoder (33, 43) performing full-scale decoding of the current state code (CSC), and - providing in the state machine of the means (35,45) for providing an error signal having a determined active value when the code of the current state does not correspond to any predetermined code (SCO, SC1, SC2, SCk). 9. Procédé selon la revendication 8, comprenant l'attribution à la machine d'états de codes prédéterminés (SCO, SC1, SC2, SCk) présentant les uns relativement aux autres une distance de Hamming au moins égale à 3.  9. The method of claim 8, comprising the assignment to the machine of predetermined code states (SCO, SC1, SC2, SCk) having relative to each other a Hamming distance of at least 3. 10. Procédé selon la revendication 8, comprenant l'attribution à la machine d'états de codes prédéterminés (SCO, SC1, SC2, SCk) présentant les uns relativement aux autres une distance de Hamming au moins égale à 4.  10. The method of claim 8, comprising the assignment to the machine of predetermined code states (SCO, SC1, SC2, SCk) having relative to each other a Hamming distance of at least 4. 11. Procédé selon l'une des revendications 8 à 10, comprenant le fait de ne jamais attribuer à un état de la machine d'états un code qui ne comprend que des bits à 0 ou que des bits à 1.  11. The method according to one of claims 8 to 10, comprising never assigning to a state of the state machine a code which comprises only bits at 0 or bits at 1. 12. Procédé selon l'une des revendications 8 à 11, comprenant la prévision, dans le décodeur de l'état courant, de comparateurs (COMPO, COMP1, COMP2, COMPk) recevant chacun le code de l'état courant et l'un des codes prédéterminés (SCO, SC1, SC2, SCk), et fournissant un signal d'identification d'état (IDO, ID1, ID2, IDk) ayant une valeur active déterminée si les deux codes sont identiques, chaque comparateur effectuant une comparaison des deux codes portant sur l'ensemble de leurs bits constitutifs.  12. Method according to one of claims 8 to 11, comprising the prediction, in the decoder of the current state, comparators (COMPO, COMP1, COMP2, COMPk) each receiving the code of the current state and one predetermined codes (SCO, SC1, SC2, SCk), and providing a state identification signal (IDO, ID1, ID2, IDk) having a determined active value if the two codes are identical, each comparator performing a comparison of the two codes covering all of their constituent bits. 13. Procédé selon la revendication 12, comprenant la prévision d'un circuit logique (35, 45) recevant les signaux d'identification d'état (IDO, IDl, ID2, IDk) fournis par les comparateurs (COMPO, COMP1, COMP2, COMPk), et fournissant un signal d'erreur (ERS) si aucun des signaux d'identification ne présente la valeur déterminée.  The method according to claim 12, comprising providing a logic circuit (35, 45) receiving the state identification signals (IDO, ID1, ID2, IDk) provided by the comparators (COMPO, COMP1, COMP2, COMPk), and providing an error signal (ERS) if none of the identification signals has the determined value. 14. Procédé selon l'une des revendications 8 à 13, comprenant la prévision, dans un circuit intégré (60) comprenant une pluralité de machines d'états (SMO-SMn), de portes logiques (61, 62, 63, 65) pour combiner le signal d'erreur (ERS) et d'autres signaux d'erreurs envoyés par d'autres machines d'états, et fournir un signal d'erreur général (GERS, SGERS).  The method according to one of claims 8 to 13, comprising providing, in an integrated circuit (60) comprising a plurality of state machines (SMO-SMn), logic gates (61, 62, 63, 65). to combine the error signal (ERS) and other error signals sent by other state machines, and provide a general error signal (GERS, SGERS).
FR0402161A 2004-03-02 2004-03-02 State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder Pending FR2867286A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0402161A FR2867286A1 (en) 2004-03-02 2004-03-02 State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0402161A FR2867286A1 (en) 2004-03-02 2004-03-02 State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder

Publications (1)

Publication Number Publication Date
FR2867286A1 true FR2867286A1 (en) 2005-09-09

Family

ID=34854990

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0402161A Pending FR2867286A1 (en) 2004-03-02 2004-03-02 State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder

Country Status (1)

Country Link
FR (1) FR2867286A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4059749A (en) * 1976-11-09 1977-11-22 Westinghouse Electric Corporation Digital monitor
US5526486A (en) * 1990-10-22 1996-06-11 Sgs-Thomson Microelectronics S.R.L. Apparatus for detecting undefined states of a finite state machine (FSM) and resetting the FSM upon detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4059749A (en) * 1976-11-09 1977-11-22 Westinghouse Electric Corporation Digital monitor
US5526486A (en) * 1990-10-22 1996-06-11 Sgs-Thomson Microelectronics S.R.L. Apparatus for detecting undefined states of a finite state machine (FSM) and resetting the FSM upon detection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"FAULT-SECURED TEST BUS ARCHITECTURE", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 33, no. 6B, 1 November 1990 (1990-11-01), pages 175 - 178, XP000108834, ISSN: 0018-8689 *

Similar Documents

Publication Publication Date Title
EP0402210B1 (en) Method for verifying the integrity of software or data and system for implementing this method
US8848477B2 (en) Physical unclonable function with improved start-up behavior
EP3457620B1 (en) Method for executing a binary code of a secure function by a microprocessor
EP0826169B1 (en) Improved integrated circuit and method for using same
EP0368727A1 (en) Security device against the unauthorised detection of protected data
FR2941342A1 (en) CRYPTOGRAPHIC CIRCUIT PROTECTED AGAINST ATTACKS IN OBSERVATION, IN PARTICULAR OF HIGH ORDER.
EP0434551A1 (en) Method of generating a pseudo-random number in a dataprocessing-system, and a system for carrying out the method
EP2193626B1 (en) Secure communication between an electronic label and a reader
FR2989504A1 (en) REGISTER PROTECTED FROM FAULT INJECTION ATTACKS
EP2257904B1 (en) Method for protecting a programmable cryptography circuit, and circuit protected by said method
EP3712794B1 (en) Method for executing a binary code of a function secured by a microprocessor
CN107070896A (en) A kind of safe and efficient block chain customization login method and security hardening system
EP1055203A1 (en) Protocol between an electronic key and an lock
Hemavathy et al. Arbiter PUF-a review of design, composition, and security aspects
WO2001071675A1 (en) Cryptographic method for protection against fraud
FR3071122B1 (en) METHOD FOR EXECUTING A BINARY CODE OF A FUNCTION SECURE BY A MICROPROCESSOR
FR3094108A1 (en) PROCESS FOR EXECUTING, BY A MICROPROCESSOR, A BINARY CODE INCLUDING A CALLING FUNCTION AND A CALLING FUNCTION
FR2867286A1 (en) State machine for integrated circuit, has NOR gate providing error signal when current state code does not correspond to preset codes having hamming distance equal to two, where codes are compared by comparators of current state decoder
FR2911979A1 (en) Logic signal's i.e. clock signal, parasite acceleration detecting method for integrated circuit of e.g. chip card, involves determining acceleration when check bits do not have their respective initial or inversed values, simultaneously
EP1721246A2 (en) Method and device for performing a cryptographic operation
EP1571522A1 (en) Device for protecting against error injection in an asynchronous logical block from an elementary logical module
EP1269431B1 (en) Method for protecting an electronic chip against fraud
EP3295297B1 (en) Method of securing a comparison of data during the execution of a program
EP1020800A1 (en) Microprocessor comprising protection circuits for securing access to its registers
FR2831739A1 (en) METHOD FOR THE SECURE IMPLEMENTATION OF A FUNCTIONAL MODULE IN AN ELECTRONIC COMPONENT AND CORRESPONDING COMPONENT