EP3047486A1 - Circuit a mémoire comprenant des moyens de détection d'une injection d'erreur - Google Patents

Circuit a mémoire comprenant des moyens de détection d'une injection d'erreur

Info

Publication number
EP3047486A1
EP3047486A1 EP14796156.9A EP14796156A EP3047486A1 EP 3047486 A1 EP3047486 A1 EP 3047486A1 EP 14796156 A EP14796156 A EP 14796156A EP 3047486 A1 EP3047486 A1 EP 3047486A1
Authority
EP
European Patent Office
Prior art keywords
address
memory
decoder
signals
selection signals
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.)
Ceased
Application number
EP14796156.9A
Other languages
German (de)
English (en)
Inventor
Sébastien Faivre
Salwa BOUZEKRI ALAMI
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.)
Rambus Inc
Original Assignee
Inside Secure 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 Inside Secure SA filed Critical Inside Secure SA
Publication of EP3047486A1 publication Critical patent/EP3047486A1/fr
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Definitions

  • the present invention relates to a memory circuit comprising a memory array comprising memory cells, and an address decoder configured to apply to the memory plane electrical signals for selecting a group of memory cells according to an address applied to the decoder. address.
  • an area particularly exposed to error injection attacks is the memory itself, especially when writing data.
  • the attacks generally target the entry of the address decoder, at the moment when writing data is initiated, to modify the address received by the decoder and cause the circuit to write the data in a different group of memory cells. the one designated by the assumed address applied to the decoder. It is also conceivable that an error injection targets the memory plane itself, downstream of the decoder, to modify the memory cell selection signals provided by the decoder.
  • the secure programs handling sensitive data take this risk into account and usually include, after each writing of a data item, a verification step which consists in reading the memory at the address where it is supposed to have been written, and checking that the given at this address is the one that was to be written there.
  • This verification makes it possible to initiate a defensive action when the data read is not identical to the data that is supposed to be written.
  • an attack is detected a posteriori, such a verification does not make it possible to know where the data was written.
  • Embodiments of the invention provide a memory circuit comprising a memory array having memory cells, and an address decoder configured to apply to the memory plane selection signals of a group of memory cells according to a memory address applied to the address decoder, the circuit also comprising means for capturing, during a write or read operation of memory cells, memory cell selection signals appearing in the memory plane, and means for reconstituting, at from the selection signals captured in the memory plane, an address of a group of memory cells selected for writing or reading.
  • the circuit is configured to compare the reconstituted address with the address applied to the address decoder.
  • the memory circuit also comprises means for counting the captured selection signals.
  • the circuit is configured to determine if the number of captured selection signals is greater than the maximum number of selection signals that can be applied to the memory plane by the decoder.
  • the memory circuit comprises means for determining the address of a group of memory cells selected for writing from the reconstituted address and the address applied to the address decoder, when the number of captured selection signals is greater than the maximum number of selection signals that can be applied to the memory plane by the decoder.
  • the circuit is configured to carry out a defensive action against an external attack when the reconstituted address is different from the address applied to the decoder, according to the location of the memory plane corresponding to the reconstituted address.
  • the means for capturing memory cell selection signals in the memory plane comprise logic locks each connected to a word line of the memory plane and providing logical signals that change their logical value when a selection signal appears on the word line.
  • the memory circuit comprises a hard-wired logic encoder configured opposite the decoder to provide an address of a group of memory cells from the logic signals provided by the latches.
  • the memory circuit comprises a processor configured to reconstruct an address of a group of memory cells from the logic signals provided by the latches.
  • the memory circuit comprises a wired logic counting circuit receiving the logic signals provided by the latches and providing a number indicative of the number of selection signals captured by the latches.
  • the memory circuit comprises a processor configured to receive the logic signals provided by the latches and to count the number of selection signals captured by the latches.
  • Embodiments of the invention also relate to a method of writing data in a memory circuit comprising a memory array comprising memory cells and an address decoder configured to apply to the memory plane selection signals of a group memory cells according to an address applied to the address decoder, the method comprising the steps of capturing, during a write or read operation of memory cells, memory cell selection signals appearing in the memory memory plane, and reconstruct, from the selection signals captured in the memory plane, an address of a group of memory cells selected for writing or reading.
  • the method comprises a step of comparing the reconstructed address with the address applied to the address decoder. According to one embodiment, the method also comprises a step of counting the captured selection signals.
  • the method comprises a step of driving, when the reconstituted address is different from the address applied to the decoder, a defensive action chosen according to the memory area designated by the reconstituted address.
  • FIGS. 3A to 3D are timing diagrams showing control signals appearing in the circuit of FIG. 1 during the write operation
  • FIGS. 4A and 4B show two exemplary embodiments of locks represented in the form of blocks in FIG. 1
  • FIG. 5 shows an exemplary embodiment of an encoder represented in block form in FIG. 1
  • FIG. 6 shows the architecture of a second embodiment of a memory circuit according to the invention
  • FIG. 7 is a flowchart describing a secure operation of writing data in the memory circuit of FIG. 6
  • FIG. 8 shows an exemplary embodiment of a counting circuit represented in block form in FIG. 6,
  • FIGS. 9 and 10 show exemplary embodiments of counting modules represented in block form in FIG. 8,
  • FIG. 11 shows the architecture of a third embodiment of a memory circuit according to the invention.
  • FIG. 12 schematically shows an electronic device comprising a memory circuit according to the invention.
  • the circuit MEM1 comprises a memory plane MA, a line address decoder RDEC, a data write buffer REGI, a REG2 data read buffer and an AREG address buffer.
  • the memory plane MA comprises memory cells MC accessible in reading and writing, connected to word lines Wi (W 0 , Wi, ... Wi_i) and bit lines B j (B 0 , ⁇ , .. Bj_i).
  • the memory cells here are random memory cells of RAM ("Random Access Memory") type, controlled in writing and reading by WR and RD signals provided by the processor.
  • the processor loads in the AREG buffer an address AD1 which is found at the input of the decoder.
  • the decoder RDEC then applies to the word lines Wi of the memory plane selection signals Vi (Vo, Vi, ... Vi-i) which are a function of the address AD1.
  • the AREG buffer presented here as a separate element of the RDEC decoder can be considered as included in the decoder if it incorporates a function of locking the address AD1.
  • Each selection signal Vi may be equal to a selection voltage Vsel, for example between 1 and 5 V according to the memory cell technology used, or to a non-selection voltage, for example 0 V.
  • the designated Wi word line by the address ADI receives the selection voltage Vsel while the other word lines receive the non-selection voltage.
  • the buffer REGI also ensures the application to the bit lines Bj bits of the data D.
  • the buffer REG2 receives, via the bit lines B, the bits of the data DT read in memory cells selected by the decoder.
  • PRC1 of the wired logic (state machine) or microprocessor type.
  • the processor PRC1 provides control signals such as the signals WR, RD, as well as various unrepresented signals for controlling the buffer registers and the decoder.
  • the circuit MEM1 also comprises a circuit LCT for capturing the selection signals Vi, and a coder RCOD providing a reconstituted address AD2.
  • the circuit LCT is configured to provide logic capture signals Ai (A 0 , Ai, ... Ai_i) giving an indication on the value of the selection signals Vi (Vo, Vi, ... Vi-i) that the decoder RDEC applies to the memory plane.
  • Each signal Ai of rank i is associated with a word line Wi of the same rank and has an initial value equal to 0, then switches to 1 when the signal Vi on the word line is equal to the selection voltage Vsel.
  • the circuit LCT comprises for example latches ("latches") in a number equal to the word lines Wi, here I locks L ⁇ (L 0 , Li, ... Li_i), each having an input connected to a word line Wi to receive a selection signal Vi, and an output providing the signal Ai.
  • An RST signal provided by the processor makes it possible to reset all the locks Li before a step of capturing the selection signals Vi.
  • the RCOD coder receives the signals Ai and is configured to produce, from these signals, an address encoding which is the inverse of the decoding performed by the RDEC decoder to supply the signals Vi from the address AD1.
  • the address AD2 provided by the coder RCOD is identical to the address AD1 received by the decoder RDEC.
  • the flowchart of FIG. 2 describes a secure write operation of a data item DT in the memory plane MA involving the capture circuit LCT and the coder RCOD.
  • the timing diagrams of Fig. 3 show signals participating in the write operation, respectively a clock signal CK applied to the processor (Fig. 3A), the address AD1 applied to the decoder (Fig. 3B), write signal WR (Fig. 3C) and signal RST (Fig. 3D).
  • the processor PRC1 first loads the data DT into the buffer REGI (Fig. 2, step S1), which then applies the bits of the data to the bit lines Bj.
  • the processor applies the reset signal RST to the circuit LCT (Fig. 2, step S2, Fig. 3D). It is assumed here that the signal RST is active on the rising edge.
  • the processor loads a value ADli of the address AD1 in the AREG buffer (FIG.2, step S3, FIG.3B), then applies the write signal WR. to all the memory cells of the memory array MA (FIG 2, step S4, FIG 3C).
  • the address AD1 is found at the input of the decoder RDEC which, in response to the write signal WR, supplies the selection voltage Vsel to the word line Wi designated by the address AD1, the other signals Vi being at 0
  • the memory cells connected to the selected word line react with the write signal WR and store the bits of the data item DT.
  • This write operation lasts, for example, 1 clock cycle and may be followed by similar operations for writing other data to addresses AD1 2 , ADI 3 , at the following clock fronts (FIG 3B).
  • the capture signal Ai associated with the word line having received the selection voltage Vsel passes to 1, the other signals Ai remaining equal to zero.
  • the RCOD coder then provides, from the set of signals Ai, an address AD2 corresponding to the address of the selected word line. This address must be read before the next write cycle, which causes a new erasure of the signals Ai. Under normal operating conditions, the reconstituted address AD2 is equal to the address AD1.
  • the write operation according to the invention comprises a verification step S6 (FIG.2) where the processor PRC1 compares the address AD1 and the reconstituted address AD2. It is assumed here that the value of the address AD1 is kept intact and unassailable by the processor, for example in an RBK register bank. This address can also be present in a non-erasable program memory (ROM) containing a program that the processor executes.
  • ROM non-erasable program memory
  • FIG. 4A shows an exemplary embodiment of the locks Li, from two NOR gate N1, N2 and an inverting gate II receiving the signal Vi.
  • the output of the gate II is applied to an input of the gate NI which provides the signal Ai.
  • the gate N2 receives the signal RST on one input, the signal Ai on another input and has its output connected to the other input of the gate NI.
  • the RST signal does not force the outputs Ai to zero and changing it to 1 only allows the latch to go from a transparent mode to a latch mode.
  • the signal RST must be set at time T1 (see Fig. 3D) at the same time as the write signal WR.
  • FIG. 4B shows an exemplary embodiment of the latches Li, from a synchronous D flip-flop referenced D1, receiving the signal Vi on its clock input H (trigger input), the signal RST on its input R (input of reset to 0), the logic 1 on its input D (data input), and supplying the signal Ai on its output Q.
  • the signal RST is not active on edge and keeps the output of the locks at 0 as long as it is itself equal to 0. The locks are therefore forced to zero outside the write periods and setting the signal RST at time T0, as described above, has the effect of releasing the forcing 0 locks to register the selection signals Vi during the writing phase.
  • FIG. 5 shows an exemplary embodiment of the simple and space-saving RCOD encoder in terms of semiconductor surface.
  • the memory array MA includes 16 word lines Wi Wo to 5
  • the LCT circuit therefore provides corresponding signals Ao to 16 i s
  • the decoder RDEC sends a decoding linear without address interleaving (ie word line Wo having address 0, word line Wi having address 1, etc., word line Wi 5 having address 15).
  • the RCOD coder performs a simple encoding of the address AD2, on 4 address bits AD2o, AD2i, AD2 2 , AD23, from the signals Ao to Ai 5 , by means of 28 OR logic gates 1 to 28.
  • this coding is defined by the following general relations, in which "+” designates the logical operator OR, "i” is an iteration index designating the rank of a signal Ai taken from the memory array , “j” denotes the rank of any bit of address AD2 other than the bits of rank 0, 1, 2 and 3, and "n” is the number of signals Ai taken from the memory plane:
  • AD2- i 0 + i + 2 J + k
  • the embodiment of the memory circuit MEM1 which has just been described makes it possible to counter an attack on the address AD1 intervening upstream of the decoder and to know which memory cells have been accessed in writing. It remains the hypothesis of an error injection attack in the memory plane itself, downstream of the decoder. If the attack relates to a Wi word line different from that receiving the voltage Vsel supplied by the decoder, and consists in the injection of a transient electrical pulse having the same effect on the memory cells as the Vsel signal, two groups memory plane memory cells can store the data DT: the group designated by the address AD1 and the group activated in writing by the error injection. In this case, the corresponding latch of the circuit LCT captures this transient electrical pulse and its output Ai goes to 1. The circuit LCT thus has two outputs at 1 instead of just one. In the less likely assumption of several simultaneous attacks on Wi word lines different from that selected by the decoder, the LCT circuit has three or more outputs to 1 instead of one.
  • FIG. 6 represents an embodiment MEM2 of a memory circuit according to the invention which differs from the circuit MEM1 in that it comprises, in addition to the RCOD encoder, a counting circuit CPT of the signals Ai equal to 1.
  • the circuit CPT has N inputs connected to the N outputs of the circuit LCT, in parallel with the inputs of the encoder RCOD, and provides the processor PRC1 a binary number NS indicating the number of signals Ai to 1.
  • the security of the write operation can in this case be improved as shown by the flowchart of FIG. 7.
  • the processor PRC1 conducts a step S5 for testing the count value NS, to determine whether NS is greater than or equal to 1.
  • the case where NS is equal to 0 may reflect a failure of the counting circuit or a lack of electrical continuity in the memory plane, or between the memory plane and the counting circuit. This case can optionally be taken into account by a particular defensive action DAO, the nature of which is to be determined by the designer of the program executed by the processor, depending on the intended application and the hardware configuration of the circuit.
  • NS NS 1
  • the processor can in this case drive the comparison step S6 and drive the defensive action DA1 if the addresses DA1 and DA2 are different.
  • the case where NS is equal to 2 indicates the existence of an attack on a Wi word line different from that receiving the signal Vsel.
  • the processor is able to determine, during a step S7, the address AD3 of the additional memory cell group where the data DT has been written, in addition to that designated by the address AD1. subtracting the address AD1 from the AD2 address provided by the RCOD encoder.
  • the processor drives a defensive action DA2 which takes into account the address AD3 where the data DT has been written.
  • NS is greater than or equal to 3 reflects the existence of a multiple attack of the memory plane, having led several groups of memory cells to memorize the data D.
  • the address AD2 does not allow find the various addresses activated by the injection of multiple errors and the processor drives a suitable defensive action DA3.
  • 8 shows an embodiment of the counting circuit CPT simple and inexpensive surface semi ⁇ conductor, adapted to provide two-bit counting bis and A i s a number NS between 0 and 3, the value 3 being a ceiling value meaning that NS is equal to or greater than 3.
  • the memory plane MA contains sixteen word lines Wo to Wi 5 and that the circuit LCT provides sixteen logic signals Ao to Ai 5 .
  • the circuit CPT comprises 15 cascading counting modules Ci to Ci 5 .
  • the first module Ci receives the bits A 0 and A i and provides counting bits bi and ai.
  • Each following counting module Ci (C 2 to C 15 ) receives a bit A 1 and the counting bits b i and i 1 -i of the preceding counting module.
  • the last metering module C15 supplies bits bis i s forming the number NS.
  • FIG. 9 shows an exemplary embodiment of the module Ci.
  • the truth table below illustrates the propagation of the counting value Si from one module to another as a function of the count value Si-i of the preceding module and the value of the bit Ai, and shows that Si is capped at 3:
  • the embodiments of the memory circuit MEM1, MEM2 which have just been described use wired circuit circuits with a low semiconductor surface, for a consequent improvement of the security of the write operations.
  • the RCOD encoder and the counting circuit CPT are deleted and the signals Ao to Ai_i provided by the capture circuit LCT are sent on ports Po to Pi-i of the processor PRC1.
  • the latter itself determines the AD2 address and can also count the number of signals Ai equal to 1, and more particularly identify the word lines for which these signals are equal to 1.
  • the processor can then handle cases of complex attacks where two or more word lines Wi are subject to an error injection. By identifying each word line object of an attack, he can identify each group of memory cells involved in the attack and initiate relevant defensive actions.
  • the memory plane may comprise, in addition to the line decoder, a column decoder and be accessible in word writing, a word corresponding to a group of memory cells connected to the same word line and to the bit lines. of the same column.
  • the implementation of the invention may include the provision of locks on the bit lines to identify the column concerned by a write operation.
  • a column encoder may also be provided in addition to the RCOD word line coder, to provide a reconstructed column address. The combination of the reconstituted word line address AD2 and the reconstituted column address gives the complete address of a group of memory cells in the memory plane.
  • embodiments of the present invention have been described in connection with the securing of a write operation, the monitoring of the word lines (and possibly the bit lines) proposed in the foregoing may also be applied reading operations, to detect an error injection attack when reading a data.
  • embodiments of the invention may also relate to securing the erasure operations.
  • embodiments of the invention may relate to circuits comprising an electrically erasable and electrically programmable nonvolatile memory array, in particular EEPROM or FLASH, comprising, for example, floating gate transistors.
  • the Vsel signal for selecting a word line can be a high voltage signal Vpp (for example 10 to 15 V) in writing, and low voltage reading.
  • the data to be written may be provided by the REGI buffer as high voltage signals, and the REG2 buffer may include sense amplifiers.
  • the error injection detection method described in the above is applicable to this type of memory with only one adaptation of the capture means.
  • the locks Li must be provided to detect, in writing, the presence of the high voltage signal Vpp, and provide a low voltage logic signal Ai when this signal is detected.
  • Embodiments of the invention may also utilize means other than latches for capturing memory cell selection signals including signals injected by an attacker.
  • they may be voltage or current sensors providing analog voltage or current values that are digitized and analyzed by the processor to determine whether these values can be considered as signals. error injection sufficient to cause the selection of memory cells.
  • a memory circuit according to the invention is also capable of various applications, including applications to memory components or so-called “Embedded memories” that is to say embedded in microcontrollers.
  • the control steps S5, S6, S7 as well as the defensive actions DA0, DA1, DA2, DA3 described above can be conducted by an external processor, the memory circuit MEM1 or MEM2 providing only the address ADl and optionally the number NS.
  • FIG. 12 shows a memory circuit MEM1, MEM2 according to the invention integrated on a semiconductor chip to form an integrated circuit IC which is arranged in an electronic device DV comprising a processor PRC2.
  • the processor PRC2 is connected to the processor PRC1 of the circuit MEM1 or MEM2 via a serial or parallel communication port. It sends the PRC1 processor write CMD commands including DT data and ADl addresses. After each write, the processor PRC1 returns to the processor PRC2 the address AD2 provided by the encoder RDEC and, optionally, the number NS. The processor PRC2 is responsible for verifying that the write address AD2 corresponds to the address AD1 that it has provided in the command.
  • the term "address applied to the decoder” the presumed address applied to the decoder, the reference address ADl known to the processor and assumed confidence. Indeed, it goes without saying that the address that the decoder actually receives as input may be different from the assumed AD1 address applied in case of error injection.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

L'invention concerne un circuit à mémoire (MEM1) comprenant un plan mémoire (MA) comportant des cellules mémoire (MC), et un décodeur d'adresse (RDEC) configuré pour appliquer au plan mémoire des signaux (V0-VI-1, Vsel) de sélection d'un groupe de cellules mémoire en fonction d'une adresse (AD1). Selon l'invention, le circuit à mémoirecomprenddes moyens (LCT) pour capturerdes signaux (Vsel) de sélection de cellules mémoire apparaissant dans le plan mémoire,et des moyens (RCOD), pour reconstituer, à partir des signaux de sélection capturés, une adresse (AD2) d'un groupe de cellules mémoire sélectionné.

Description

CIRCUIT A MÉMOIRE COMPRENANT DES MOYENS DE DETECTION D'UNE INJECTION D'ERREUR
La présente invention concerne un circuit à mémoire comprenant un plan mémoire comportant des cellules mémoire, et un décodeur d'adresse configuré pour appliquer au plan mémoire des signaux électriques de sélection d'un groupe de cellules mémoire en fonction d'une adresse appliquée au décodeur d'adresse.
Il est connu que les circuits intégrés peuvent faire l'objet d'attaques visant à découvrir les données sensibles et/ou à modifier des opérations en cours d'exécution. Certaines attaques dites par injection d'erreurs consistent à cibler une zone du circuit intégré avec un faisceau laser ayant une longueur d'onde et une profondeur de pénétration contrôlées, pour injecter une impulsion électrique transitoire appelée "glitch" ayant le même effet sur la circuiterie du circuit intégré qu'un signal logique généré par des organes de ce celui-ci.
Dans les circuits intégrés équipés d'une mémoire, une zone particulièrement exposée aux attaques par injection d'erreur est la mémoire elle-même, notamment lors de l'écriture d'une donnée. Les attaques visent généralement l'entrée du décodeur d'adresse, au moment où l'écriture d'une donnée est initiée, pour modifier l'adresse reçue par le décodeur et conduire le circuit à écrire la donnée dans un groupe de cellules mémoire différent de celui désigné par l'adresse supposée appliquée au décodeur. Il est également envisageable qu'une injection d'erreur vise le plan mémoire lui-même, en aval du décodeur, pour modifier les signaux de sélection de cellules mémoire fournis par le décodeur. Les programmes sécurisés manipulant des données sensibles prennent en compte ce risque et comportent généralement, après chaque écriture d'une donnée, une étape de vérification qui consiste à relire la mémoire à l'adresse où elle est supposée avoir été écrite, et vérifier que la donnée présente à cette adresse est bien celle qui devait y être écrite. Cette vérification permet d'initier une action défensive lorsque la donnée lue n'est pas identique à la donnée supposée écrite. Cependant, même si une attaque est détectée a posteriori, une telle vérification ne permet pas de savoir où la donnée a été écrite. Or, il pourrait être souhaité de le savoir, par exemple pour sélectionner une action défensive en fonction de la zone mémoire ayant été corrompue par l'attaque. Par exemple, si la zone mémoire comporte des données confidentielles nécessaires à la réalisation d'un processus essentiel pour la sécurité, par exemple un calcul cryptographique, l'attaque peut être considérée comme majeure et une action défensive appropriée peut être initiée.
Des modes de réalisation de l'invention concernent un circuit à mémoire comprenant un plan mémoire comportant des cellules mémoire, et un décodeur d'adresse configuré pour appliquer au plan mémoire des signaux de sélection d'un groupe de cellules mémoire en fonction d'une adresse appliquée au décodeur d'adresse, le circuit comprenant également des moyens pour capturer, pendant une opération d'écriture ou de lecture de cellules mémoire, des signaux de sélection de cellules mémoire apparaissant dans le plan mémoire, et des moyens pour reconstituer, à partir des signaux de sélection capturés dans le plan mémoire, une adresse d'un groupe de cellules mémoire sélectionné en écriture ou lecture. Selon un mode de réalisation, le circuit est configuré pour comparer l'adresse reconstituée à l'adresse appliquée au décodeur d'adresse. Selon un mode de réalisation, le circuit à mémoire comprend également des moyens pour compter les signaux de sélection capturés.
Selon un mode de réalisation, le circuit est configuré pour déterminer si le nombre de signaux de sélection capturés est supérieur au nombre maximal de signaux de sélection pouvant être appliqué au plan mémoire par le décodeur . Selon un mode de réalisation, le circuit à mémoire comprend des moyens pour déterminer l'adresse d'un groupe de cellules mémoire sélectionnées en écriture à partir de l'adresse reconstituée et de l'adresse appliquée au décodeur d'adresse, lorsque le nombre de signaux de sélection capturés est supérieur au nombre maximal de signaux de sélection pouvant être appliqué au plan mémoire par le décodeur.
Selon un mode de réalisation, le circuit est configuré pour conduire une action défensive contre une attaque externe lorsque l'adresse reconstituée est différente de l'adresse appliquée au décodeur, en fonction de l'emplacement du plan mémoire correspondant à l'adresse reconstituée .
Selon un mode de réalisation, les moyens pour capturer des signaux de sélection de cellules mémoire dans le plan mémoire comprennent des verrous logiques reliés chacun à une ligne de mot du plan mémoire et fournissant des signaux logiques qui changent de valeur logique lorsqu'un signal de sélection apparaît sur la ligne de mot.
Selon un mode de réalisation, le circuit à mémoire comprend un codeur à logique câblée configuré à 1 ' inverse du décodeur pour fournir une adresse d'un groupe de cellules mémoire à partir des signaux logiques fournis par les verrous. Selon un mode de réalisation, le circuit à mémoire comprend un processeur configuré pour reconstituer une adresse d'un groupe de cellules mémoire à partir des signaux logiques fournis par les verrous. Selon un mode de réalisation, le circuit à mémoire comprend un circuit de comptage à logique câblée recevant les signaux logiques fournis par les verrous et fournissant un nombre indicatif du nombre de signaux de sélection capturés par les verrous.
Selon un mode de réalisation, le circuit à mémoire comprend un processeur configuré pour recevoir les signaux logiques fournis par les verrous et compter le nombre de signaux de sélection capturés par les verrous.
Des modes de réalisation de l'invention concernent également un procédé d'écriture de données dans un circuit à mémoire comprenant un plan mémoire comportant des cellules mémoire et un décodeur d'adresse configuré pour appliquer au plan mémoire des signaux de sélection d'un groupe de cellules mémoire en fonction d'une adresse appliquée au décodeur d'adresse, le procédé comprenant les étapes consistant à capturer, pendant une opération d'écriture ou de lecture de cellules mémoire, des signaux de sélection de cellules mémoire apparaissant dans le plan mémoire, et reconstituer, à partir des signaux de sélection capturés dans le plan mémoire, une adresse d'un groupe de cellules mémoire sélectionné en écriture ou lecture .
Selon un mode de réalisation, le procédé comprend une étape consistant à comparer l'adresse reconstituée à l'adresse appliquée au décodeur d'adresse. Selon un mode de réalisation, le procédé comprend également une étape consistant à compter les signaux de sélection capturés.
Selon un mode de réalisation, le procédé comprend une étape consistant à conduire, lorsque l'adresse reconstituée est différente de l'adresse appliquée au décodeur, une action défensive choisie en fonction de la zone mémoire désignée par l'adresse reconstituée. Ces objets, caractéristiques ainsi que d'autres de la présente invention seront décrits plus en détail dans la description suivante de modes de réalisation de circuits à mémoire selon l'invention, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 montre l'architecture d'un premier mode de réalisation d'un circuit à mémoire selon l'invention, - la figure 2 est un organigramme décrivant une opération sécurisée d'écriture de données dans le circuit à mémoire de la figure 1,
- les figures 3A à 3D sont des chronogrammes montrant des signaux de contrôle apparaissant dans le circuit de la figure 1 pendant l'opération d'écriture,
les figures 4A, 4B montrent deux exemples de réalisation de verrous représentés sous forme de blocs sur la figure 1, la figure 5 montre un exemple de réalisation d'un codeur représenté sous forme de bloc sur la figure 1,
- la figure 6 montre l'architecture d'un second mode de réalisation d'un circuit à mémoire selon l'invention, - la figure 7 est un organigramme décrivant une opération sécurisée d'écriture de données dans le circuit à mémoire de la figure 6,
la figure 8 montre un exemple de réalisation d'un circuit de comptage représenté sous forme de bloc sur la figure 6,
les figures 9 et 10 montrent des exemples de réalisation de modules de comptage représentés sous forme de bloc sur la figure 8,
- la figure 11 montre l'architecture d'un troisième mode de réalisation d'un circuit à mémoire selon l'invention, et
la figure 12 montre schématiquement un dispositif électronique comprenant un circuit à mémoire selon 1 ' invention .
Un mode de réalisation d'un circuit à mémoire MEM1 selon 1 ' invention est représenté sur la figure 1. Le circuit MEM1 comprend un plan mémoire MA, un décodeur d'adresse de ligne RDEC, un tampon d'écriture de données REGI, un tampon de lecture de données REG2 et un tampon d'adresse AREG. Le plan mémoire MA comprend des cellules mémoire MC accessibles en lecture et en écriture, reliées à des lignes de mot Wi ( W0 , Wi , ... Wi_i ) et à des lignes de bits Bj ( B0 , Βι , ... Bj_i ) . Les cellules mémoires sont ici des cellules mémoire volatiles de type mémoire RAM ("Random Access Memory"), commandées en écriture et lecture par des signaux WR et RD fournis par le processeur.
Lors d'une opération d'écriture ou de lecture d'une donnée DT dans le plan mémoire, le processeur charge dans le tampon AREG une adresse AD1 qui se retrouve à l'entrée du décodeur. Le décodeur RDEC applique alors aux lignes de mot Wi du plan mémoire des signaux de sélection Vi (Vo, Vi,... Vi-i) qui sont fonction de l'adresse AD1. Il sera noté que le tampon AREG présenté ici comme un élément distinct du décodeur RDEC peut être considéré comme inclus dans le décodeur si celui-ci incorpore une fonction de verrouillage de l'adresse AD1. Chaque signal de sélection Vi peut être égal à une tension de sélection Vsel, par exemple comprise entre 1 et 5 V selon la technologie de cellule mémoire utilisée, ou à une tension de non sélection, par exemple 0 V. La ligne de mot Wi désignée par l'adresse ADI reçoit la tension de sélection Vsel tandis que les autres lignes de mot reçoivent la tension de non sélection.
Lors d'une opération d'écriture, le tampon REGI assure par ailleurs l'application aux lignes de bits Bj des bits de la donnée D . Lors d'une opération de lecture, le tampon REG2 reçoit, via les lignes de bits B , les bits de la donnée DT lus dans des cellules mémoire sélectionnées par le décodeur.
Ces différents éléments sont contrôlés par un processeur PRC1, du type à logique câblée (machine d'états) ou à microprocesseur. Le processeur PRC1 fournit des signaux de contrôle tels que les signaux WR, RD, ainsi que divers signaux non représentés de contrôle des registres tampons et du décodeur.
Selon l'invention, le circuit MEM1 comprend également un circuit LCT de capture des signaux de sélection Vi, et un codeur RCOD fournissant une adresse reconstituée AD2. Le circuit LCT est configuré pour fournir des signaux logiques de capture Ai (A0, Ai,... Ai_i) donnant une indication sur la valeur des signaux de sélection Vi (Vo, Vi,... Vi-i) que le décodeur RDEC applique au plan mémoire. Chaque signal Ai de rang i est associé à une ligne de mot Wi de même rang et présente une valeur initiale égale à 0, puis bascule à 1 lorsque le signal Vi sur la ligne de mot est égal à la tension de sélection Vsel. Le circuit LCT comprend par exemple des verrous ("latches") en nombre égal aux lignes de mot Wi, soit ici I verrous L± (L0, Li,... Li_i) , ayant chacun une entrée connectée à une ligne de mot Wi pour recevoir un signal de sélection Vi, et une sortie fournissant le signal Ai. Un signal RST fourni par le processeur permet de remettre à 0 l'ensemble des verrous Li avant une étape de capture des signaux de sélection Vi.
Le codeur RCOD reçoit les signaux Ai et est configuré pour réaliser, à partir de ces signaux, un encodage d'adresse qui est l'inverse du décodage réalisé par le décodeur RDEC pour fournir les signaux Vi à partir de l'adresse ADl. Ainsi, quand la combinaison de signaux Ai est identique en valeur logique à la combinaison de signaux Vi fournis par le décodeur RDEC, l'adresse AD2 fournie par le codeur RCOD est identique à l'adresse ADl reçue par le décodeur RDEC.
L'organigramme de la figure 2 décrit une opération d'écriture sécurisée d'une donnée DT dans le plan mémoire MA faisant intervenir le circuit de capture LCT et le codeur RCOD. Les chronogrammes de la figure 3 montrent des signaux participant à l'opération d'écriture, respectivement un signal d'horloge CK appliqué au processeur (Fig. 3A) , l'adresse ADl appliquée au décodeur (Fig. 3B) , le signal d'écriture WR (Fig. 3C) et le signal RST (Fig. 3D) .
Le processeur PRC1 charge tout d'abord la donnée DT dans le tampon REGI (Fig. 2, étape SI), lequel applique ensuite les bits de la donnée aux lignes de bits Bj . A un instant TO, le processeur applique le signal de remise à zéro RST au circuit LCT (Fig. 2, étape S2, Fig. 3D) . On suppose ici que le signal RST est actif sur front montant. A un instant suivant Tl, correspondant au front descendant du signal CK, le processeur charge une valeur ADli de l'adresse AD1 dans le tampon AREG (Fig. 2, étape S3, Fig. 3B) , puis applique le signal d'écriture WR à l'ensemble des cellules mémoire du plan mémoire MA (Fig. 2, étape S4, Fig. 3C) . L'adresse AD1 se retrouve à l'entrée du décodeur RDEC qui, en réponse au signal d'écriture WR, fournit la tension de sélection Vsel à la ligne de mot Wi désignée par l'adresse AD1, les autres signaux Vi étant à 0. Les cellules mémoires reliées à la ligne de mot sélectionnée réagissent au signal d'écriture WR et mémorisent les bits de la donnée DT . Cette opération d'écriture dure par exemple 1 cycle d'horloge et peut être suivie d'opérations similaires d'écriture d'autres données à des adresses AD12, ADI3, aux fronts d'horloge suivants (Fig. 3B) .
Pendant cette opération, le signal de capture Ai associé à la ligne de mot ayant reçu la tension de sélection Vsel passe à 1, les autres signaux Ai restant égaux à zéro. Le codeur RCOD fournit alors, à partir de l'ensemble des signaux Ai, une adresse AD2 correspondant à l'adresse de la ligne de mot sélectionnée. Cette adresse doit être lue avant le prochain cycle d'écriture, qui provoque un nouvel effacement des signaux Ai. Dans des conditions normales de fonctionnement, l'adresse reconstituée AD2 est égale à l'adresse AD1. Si le circuit MEM1 subit une attaque par injection d'erreur à l'entrée du décodeur RDEC, ou sur un bus d'adresse pendant que l'adresse AD1 est fournie au tampon AREG, l'adresse vue par le décodeur RDEC est différente de l'adresse AD1 fournie par le processeur et l'adresse reconstituée AD2 est égale à cette adresse erronée. L'opération d'écriture selon l'invention comporte une étape de vérification S6 (Fig. 2) où le processeur PRC1 compare l'adresse AD1 et l'adresse reconstituée AD2. On suppose ici que la valeur de l'adresse AD1 est conservée intacte et de manière inattaquable par le processeur, par exemple dans une banque de registre RBK. Cette adresse peut aussi être présente dans une mémoire programme non effaçable (mémoire ROM) contenant un programme que le processeur exécute. Si les deux adresses sont identiques, cela signifie que l'opération d'écriture de la donnée DT s'est déroulée normalement ("OK") . Dans le cas contraire, le processeur peut initier une action défensive DA1 qui tient compte de l'adresse AD2, plus particulièrement une action défensive choisie en fonction de la zone mémoire désignée par l'adresse AD2. Par exemple si cette adresse correspond à une zone sensible de la mémoire, le processeur peut décider de mettre hors service définitivement le circuit à mémoire ou d'effacer l'ensemble des données sensibles qu'il contient, tandis que si cette adresse correspond à une zone de la mémoire contenant des données précédemment utilisées et ne devant pas l'être de nouveau, le processeur peut décider de déclencher une simple remise à zéro et un redémarrage du circuit à mémoire. La figure 4A montre un exemple de réalisation des verrous Li , à partir de deux portes NI, N2 de type NON ET et d'une porte inverseuse II recevant le signal Vi . La sortie de la porte II est appliquée sur une entrée de la porte NI qui fournit le signal Ai . La porte N2 reçoit le signal RST sur une entrée, le signal Ai sur une autre entrée et a sa sortie connectée à l'autre entrée de la porte NI. Dans ce mode de réalisation, le signal RST ne force pas les sorties Ai à zéro et son passage à 1 autorise seulement le verrou à passer d'un mode transparent à un mode verrou. Le signal RST doit dans ce cas être mis à 1 à l'instant Tl (Cf. Fig. 3D) en même temps que le signal d'écriture WR. La figure 4B montre un exemple de réalisation des verrous Li , à partir d'une bascule D synchrone référencée Dl, recevant le signal Vi sur son entrée d'horloge H (entrée de déclenchement) , le signal RST sur son entrée R (entrée de remise à 0), le 1 logique sur son entrée D (entrée de donnée), et fournissant le signal Ai sur sa sortie Q . Dans ce mode de réalisation le signal RST n'est pas actif sur front et maintient la sortie des verrous à 0 tant qu'il est lui-même égal à 0. Les verrous sont donc forcés à zéro en dehors des périodes d'écriture et la mise à 1 du signal RST à l'instant T0, telle que décrite plus haut, a pour effet de relâcher le forçage à 0 des verrous pour qu'ils enregistrent les signaux de sélection Vi pendant la phase d'écriture. La figure 5 montre un exemple de réalisation du codeur RCOD simple et peu encombrant en termes de surface de semi-conducteur. On suppose dans cet exemple que le plan mémoire MA contient 16 lignes de mot Wo à Wi5 , que le circuit LCT fournit donc 16 signaux correspondant Ao à Aïs , et le décodeur RDEC réalise un décodage linéaire sans entrelacement d'adresses (i.e. la ligne de mot Wo ayant l'adresse 0, la ligne de mot Wi ayant l'adresse 1, etc., la ligne de mot Wi5 ayant l'adresse 15) . Le codeur RCOD réalise un encodage simple de l'adresse AD2, sur 4 bits d'adresse AD2o, AD2i, AD22, AD23, à partir des signaux Ao à Ai5, au moyen de 28 portes logiques 1 à 28 de type OU. Dans un mode de réalisation, ce codage est défini par les relations générales suivantes, dans lesquelles "+" désigne l'opérateur logique OU, "i" est un indice d'itération désignant le rang d'un signal Ai prélevé dans le plan mémoire, "j " désigne le rang d'un bit quelconque de l'adresse AD2 autre que les bits de rang 0, 1, 2 et 3, et "n" est le nombre de signaux Ai prélevés dans le plan mémoire :
AD2r +
AD2; + k+4 +4 4 4
AD2- + [4 4 4 4 4 4 4 4 i≤n-2(j+l) k=V -\
+ A
AD2- i=0 + i+2J +k
k=k+\
Le mode de réalisation du circuit à mémoire MEM1 qui vient d'être décrit permet de contrer une attaque sur l'adresse AD1 intervenant en amont du décodeur et de savoir quelles cellules mémoire ont été accédées en écriture. Il reste l'hypothèse d'une attaque par injection d'erreur dans le plan mémoire lui-même, en aval du décodeur. Si l'attaque porte sur une ligne de mot Wi différente de celle recevant la tension Vsel fournie par le décodeur, et consiste dans l'injection d'une impulsion électrique transitoire ayant le même effet sur les cellules mémoire que le signal Vsel, deux groupes de cellules mémoire du plan mémoire peuvent mémoriser la donnée DT : le groupe désigné par l'adresse AD1 et le groupe activé en écriture par l'injection d'erreur. Dans ce cas, le verrou correspondant du circuit LCT capture cette impulsion électrique transitoire et sa sortie Ai passe à 1. Le circuit LCT présente donc deux sorties à 1 au lieu d'une seule. Dans l'hypothèse moins vraisemblable de plusieurs attaques simultanées portant sur des lignes de mot Wi différentes de celle sélectionnée par le décodeur, le circuit LCT présente trois sorties ou plus à 1 au lieu d'une seule.
La figure 6 représente un mode de réalisation MEM2 d'un circuit à mémoire selon l'invention qui se distingue du circuit MEM1 en ce qu'il comporte, en sus du codeur RCOD, un circuit de comptage CPT des signaux Ai égaux à 1. Le circuit CPT présente N entrées reliées aux N sorties du circuit LCT, en parallèle avec les entrées du codeur RCOD, et fournit au processeur PRC1 un nombre binaire NS indiquant le nombre de signaux Ai à 1.
La sécurisation de l'opération d'écriture peut dans ce cas être améliorée comme montré par l'organigramme de la figure 7. Après les étapes SI à S4 précédemment décrites, avant d'exécuter l'étape S6 de comparaison des adresses AD1 et AD2, le processeur PRC1 conduit une étape S5 de test de la valeur de comptage NS, pour déterminer si NS est supérieur ou égal à 1. Le cas où NS est égal à 0 peut traduire une défaillance du circuit de comptage ou un défaut de continuité électrique dans le plan mémoire, ou entre le plan mémoire et le circuit de comptage. Ce cas peut optionnellement être pris en compte par une action défensive particulière DAO, dont la nature est à déterminer par le concepteur du programme exécuté par le processeur, en fonction de l'application visée et de la configuration hardware du circuit .
Si NS est égal à 1, cela signifie que le plan mémoire n'a subi aucune attaque ou a subi une injection d'erreur sur la ligne de mot déjà sélectionnée par le décodeur, n'ayant pas modifié la valeur du signal Ai fourni par le circuit LCT (superposition d'une impulsion transitoire au signal Vi=Vsel) . Le processeur peut dans ce cas conduire l'étape de comparaison S6 et conduire l'action défensive DA1 si les adresses DA1 et DA2 sont différentes. Le cas où NS est égal à 2 traduit l'existence d'une attaque sur une ligne de mot Wi différente de celle recevant le signal Vsel. Dans ce cas, le processeur est toutefois en mesure de déterminer, au cours d'une étape S7, l'adresse AD3 du groupe de cellules mémoire supplémentaire où la donnée DT a été écrite, en sus de celui désigné par l'adresse AD1, en soustrayant l'adresse AD1 à l'adresse AD2 fournie par le codeur RCOD. Le processeur conduit ensuite une action défensive DA2 qui tient compte de l'adresse AD3 où la donnée DT a été écrite.
Enfin, le cas où NS est supérieur ou égal à 3 traduit l'existence d'une attaque multiple du plan mémoire, ayant conduit plusieurs groupes de cellules mémoire à mémoriser la donnée D . Dans ce cas, l'adresse AD2 ne permet pas de retrouver les diverses adresses activées par l'injection d'erreurs multiples et le processeur conduit une action défensive appropriée DA3. La figure 8 montre un mode de réalisation du circuit de comptage CPT simple et peu coûteux en surface de semi¬ conducteur, conçu pour fournir, sur deux bits de comptage bis et aïs, un nombre NS compris entre 0 et 3, la valeur 3 étant une valeur plafond signifiant que NS est égal ou supérieur à 3.
On suppose dans cet exemple de réalisation que le plan mémoire MA contient seize lignes de mot Wo à Wi5 et que le circuit LCT fournit seize signaux logiques Ao à Ai5. Le circuit CPT comprend dans ce cas 15 modules de comptage en cascade Ci à Ci5. Le premier module Ci reçoit les bits A0 et Ai et fournit des bits de comptage bi et ai. Chaque module de comptage suivant Ci (C2 à C15) reçoit un bit Ai et les bits de comptage bi-i et ai-i du module de comptage précédent. Le dernier module de comptage C15 fournit les bits bis, aïs formant le nombre NS .
La figure 9 montre un exemple de réalisation du module Ci. Celui-ci comprend une porte ET et une porte OU Exclusif configurées de manière que : Ainsi, si l'un des bits Ao, Ai est à 1, NS = bl al = 01. Si les deux bits sont à 1, NS=10 soit 2 en notation décimale . La figure 10 montre un exemple de réalisation des autres modules Ci. Ceux-ci sont réalisés avec des porte ET, OU et OU Exclusif, de manière que : ai = (Ai Λ bi_i) + (A± 0 ai-i)
La table de vérité ci-après illustre la propagation de la valeur de comptage Si d'un module à l'autre en fonction de la valeur de comptage Si-i du module précédent et de la valeur du bit Ai, et montre que Si est plafonné à 3 :
Les modes de réalisation du circuit à mémoire MEM1, MEM2 qui viennent d'être décrits utilisent des circuits à logique câblée à faible surface de semi-conducteur, pour une amélioration conséquente de la sécurité des opérations d'écriture. Dans un mode de réalisation MEM3 représenté sur la figure 11, le codeur RCOD et le circuit de comptage CPT sont supprimés et les signaux Ao à Ai_i fournis par le circuit de capture LCT sont envoyés sur des ports Po à Pi-i du processeur PRC1. Ce dernier assure lui-même la détermination de l'adresse AD2 et peut aussi compter le nombre de signaux Ai égaux à 1, et plus particulièrement identifier les lignes de mot pour lesquelles ces signaux sont égaux à 1. Le processeur peut alors traiter des cas d'attaques complexes où deux lignes de mot Wi ou plus font l'objet d'une injection d'erreur. En identifiant chaque ligne de mot objet d'une attaque, il peut identifier chacun des groupes de cellules mémoire concerné par l'attaque et initier des actions défensives pertinentes . On a décrit dans ce qui précède des exemples de mise en œuvre de l'invention dans un plan mémoire accessible en lecture et écriture par page, une page incluant toutes les cellules mémoire reliées à une même ligne de mot Wi, l'adresse AD1 étant l'adresse d'une page. Dans des variantes de réalisation, le plan mémoire peut comprendre en sus du décodeur de ligne un décodeur de colonne et être accessible en écriture par mot, un mot correspondant à un groupe de cellules mémoire reliées à une même ligne de mot et aux lignes de bits d'une même colonne. Dans ce cas, la mise en œuvre de l'invention peut inclure la prévision de verrous sur les lignes de bits pour identifier la colonne concernée par une opération d'écriture. Un codeur de colonne peut aussi être prévu en plus du codeur de ligne de mot RCOD, pour fournir une adresse de colonne reconstituée. La combinaison de l'adresse de ligne de mot reconstituée AD2 et de l'adresse de colonne reconstituée donne l'adresse complète d'un groupe de cellules mémoire dans le plan mémoire .
Par ailleurs bien que des modes de réalisations de la présente invention ait été décrits en relation avec la sécurisation d'une opération d'écriture, la surveillance des lignes de mot (et le cas échéant des lignes de bits) proposée dans ce qui précède peut aussi être appliquée aux opérations de lecture, pour détecter une attaque par injection d'erreur lors de la lecture d'une donnée. Dans des circuits à mémoire où l'écriture de cellules mémoire est précédée d'une étape d'effacement, des modes de réalisation de l'invention peuvent aussi concerner la sécurisation des opérations d'effacement.
Également, des modes de réalisation de l'invention peuvent concerner des circuits comprenant un plan mémoire non volatile de type effaçable et programmable électriquement, notamment EEPROM ou FLASH, comprenant par exemple des transistors à grille flottante. Dans ce cas le signal Vsel de sélection d'une ligne de mot peut être un signal haute tension Vpp (par exemple 10 à 15 V) en écriture, et basse tension en lecture. Les données à écrire peuvent être fournies par le tampon REGI sous forme de signaux haute tension, et le tampon REG2 peut comporter des amplificateurs de lecture ("sensé amplifier"). Le procédé de détection d'injection d'erreur décrit dans ce qui précède est applicable à ce type de mémoire avec seulement une adaptation des moyens de capture. Par exemple, les verrous Li doivent être prévus pour détecter, en écriture, la présence du signal haute tension Vpp, et fournir un signal logique Ai basse tension lorsque ce signal est détecté.
Des modes de réalisation de l'invention peuvent également utiliser d'autres moyens que des verrous pour capturer les signaux de sélection de cellules mémoire y compris des signaux injectés par un attaquant. Il peut s'agir par exemple de capteurs de tension ou de courant fournissant des valeurs analogiques de tension ou de courant qui sont numérisées et analysées par le processeur pour déterminer si ces valeurs peuvent être considérées comme des signaux d'injection d'erreur suffisants pour causer la sélection de cellules mémoire.
Un circuit à mémoire selon 1 ' invention est également susceptible de diverses applications, notamment des applications à des composants mémoire ou à des mémoires dites "enchâssées" ("Embedded memories") c'est-à-dire intégrées dans des microcontrôleurs. Dans certains modes de réalisation, les étapes de contrôle S5, S6, S7 ainsi que les actions défensives DAO, DA1, DA2, DA3 décrites plus haut peuvent être conduites par un processeur externe, le circuit à mémoire MEM1 ou MEM2 fournissant seulement l'adresse ADl et optionnellement le nombre NS . A titre d'exemple, la figure 12 montre un circuit à mémoire MEM1, MEM2 selon l'invention intégré sur une puce de semi-conducteur pour former un circuit intégré IC qui est agencé dans un dispositif électronique DV comprenant un processeur PRC2. Le processeur PRC2 est relié au processeur PRC1 du circuit MEM1 ou MEM2 par l'intermédiaire d'un port de communication série ou parallèle. Il envoie au processeur PRC1 des commandes CMD d'écriture comprenant des données DT et des adresses ADl. Après chaque écriture, le processeur PRC1 retourne au processeur PRC2 l'adresse AD2 fournie par le codeur RDEC et, optionnellement, le nombre NS . Le processeur PRC2 se charge de vérifier que l'adresse d'écriture AD2 correspond à l'adresse ADl qu'il a fournie dans la commande .
Dans les revendications, on entend par "adresse appliquée au décodeur" l'adresse présumée appliquée au décodeur, soit l'adresse de référence ADl connue du processeur et supposée de confiance. En effet, il va de soi que l'adresse que le décodeur reçoit effectivement en entrée peut être différente de l'adresse AD1 présumée appliquée en cas d'injection d'erreur.

Claims

REVENDICATIONS
1. Circuit à mémoire (MEM1, MEM2, MEM3, DV, IC) comprenant :
- un plan mémoire (MA) comportant des cellules mémoire (MC) , et
- un décodeur d'adresse (RDEC) configuré pour appliquer au plan mémoire des signaux (Vo -Vi-i , Vsel) de sélection d'un groupe de cellules mémoire en fonction d'une adresse (AD1) appliquée au décodeur d'adresse,
caractérisé en ce qu'il comprend :
- des moyens (LCT, Lo -Li-i ) pour capturer, pendant une opération d'écriture ou de lecture de cellules mémoire, des signaux (V0 -Vi_i , Vsel) de sélection de cellules mémoire apparaissant dans le plan mémoire,
- des moyens (RCOD, PRC1), pour reconstituer, à partir des signaux de sélection capturés dans le plan mémoire, une adresse (AD2) d'un groupe de cellules mémoire sélectionné en écriture ou lecture.
2. Circuit à mémoire (MEM2, MEM3) selon la revendication 1, configuré pour comparer (S6) l'adresse reconstituée
(AD2) à l'adresse (AD1) appliquée au décodeur d'adresse.
3. Circuit à mémoire selon l'une des revendications 1 et 2, comprenant également des moyens (CPT, PRC1) pour compter les signaux de sélection capturés.
4. Circuit à mémoire selon la revendication 3, configuré pour déterminer (S5) si le nombre (NS) de signaux de sélection capturés est supérieur au nombre maximal de signaux de sélection (Vsel) pouvant être appliqué au plan mémoire par le décodeur.
5. Circuit à mémoire selon la revendication 4, comprenant des moyens pour déterminer (S7) l'adresse d'un groupe de cellules mémoire sélectionnées en écriture à partir de l'adresse reconstituée (AD2) et de l'adresse (AD1) appliquée au décodeur d'adresse, lorsque le nombre (NS) de signaux de sélection capturés est supérieur au nombre maximal de signaux de sélection pouvant être appliqué au plan mémoire par le décodeur.
6. Circuit à mémoire selon l'une des revendications 1 à
5, configuré pour conduire une action défensive (DAO, DA1, DA2, DA3) contre une attaque externe lorsque l'adresse reconstituée (AD2) est différente de l'adresse (AD1) appliquée au décodeur, en fonction de l'emplacement du plan mémoire correspondant à l'adresse reconstituée.
7. Circuit à mémoire selon l'une des revendications 1 à
6, dans lequel les moyens pour capturer des signaux de sélection de cellules mémoire dans le plan mémoire comprennent des verrous logiques (LCT, Lo-Li-i) reliés chacun à une ligne de mot (Wo-Wi-i) du plan mémoire et fournissant des signaux logiques (Ao-Ai-i) qui changent de valeur logique lorsqu'un signal de sélection (Vsel) apparaît sur la ligne de mot.
8. Circuit à mémoire selon la revendication 7, comprenant un codeur (RCOD) à logique câblée configuré à 1 ' inverse du décodeur (RDEC) pour fournir une adresse (AD2) d'un groupe de cellules mémoire à partir des signaux logiques (Ao-Ai-i) fournis par les verrous.
9. Circuit à mémoire selon la revendication 7, comprenant un processeur (PRC1) configuré pour reconstituer une adresse (AD2) d'un groupe de cellules mémoire à partir des signaux logiques (Ao-Ai-i) fournis par les verrous.
10. Circuit à mémoire selon l'une des revendications 7 à 9, comprenant un circuit de comptage (CPT) à logique câblée recevant les signaux logiques ( Ao-Ai-i ) fournis par les verrous et fournissant un nombre (NS) indicatif du nombre de signaux de sélection capturés par les verrous.
11. Circuit à mémoire selon l'une des revendications 7 à 9, comprenant un processeur (PRC1) configuré pour recevoir les signaux logiques ( Ao-Ai-i ) fournis par les verrous et compter le nombre de signaux de sélection capturés par les verrous.
12. Procédé d'écriture de données dans un circuit à mémoire (MEM1, MEM2, MEM3) comprenant un plan mémoire
(MA) comportant des cellules mémoire (MC) , et un décodeur d'adresse (RDEC) configuré pour appliquer au plan mémoire des signaux ( V0 -Vi_i , Vsel) de sélection d'un groupe de cellules mémoire en fonction d'une adresse (AD1) appliquée au décodeur d'adresse, procédé caractérisé en ce qu'il comprend les étapes consistant à :
capturer, pendant une opération d'écriture ou de lecture de cellules mémoire, des signaux ( Vo -Vi-i , Vsel) de sélection de cellules mémoire apparaissant dans le plan mémoire, et
reconstituer, à partir des signaux de sélection capturés dans le plan mémoire, une adresse (AD2) d'un groupe de cellules mémoire sélectionné en écriture ou lecture .
13. Procédé selon la revendication 12, comprenant une étape consistant à comparer l'adresse reconstituée (AD2) à l'adresse (AD1) appliquée au décodeur d'adresse.
14. Procédé selon l'une des revendications 12 et 13, comprenant également une étape consistant à compter les signaux de sélection capturés.
15. Procédé selon l'une des revendications 12 à 14, comprenant une étape consistant à conduire, lorsque l'adresse reconstituée (AD2) est différente de l'adresse (AD1) appliquée au décodeur, une action défensive (DAO, DA1, DA2, DA3) choisie en fonction de la zone mémoire désignée par l'adresse reconstituée.
EP14796156.9A 2013-09-17 2014-09-08 Circuit a mémoire comprenant des moyens de détection d'une injection d'erreur Ceased EP3047486A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1358926A FR3010822B1 (fr) 2013-09-17 2013-09-17 Circuit a memoire comprenant des moyens de detection d'une injection d'erreur
PCT/FR2014/052217 WO2015040304A1 (fr) 2013-09-17 2014-09-08 Circuit a mémoire comprenant des moyens de détection d'une injection d'erreur

Publications (1)

Publication Number Publication Date
EP3047486A1 true EP3047486A1 (fr) 2016-07-27

Family

ID=50023667

Family Applications (1)

Application Number Title Priority Date Filing Date
EP14796156.9A Ceased EP3047486A1 (fr) 2013-09-17 2014-09-08 Circuit a mémoire comprenant des moyens de détection d'une injection d'erreur

Country Status (3)

Country Link
EP (1) EP3047486A1 (fr)
FR (1) FR3010822B1 (fr)
WO (1) WO2015040304A1 (fr)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1734536A1 (fr) * 2005-06-15 2006-12-20 STMicroelectronics SA Mémoire protégée contre des attaques par injection d'erreur dans des signaux de sélection de cellules mémoire
WO2008093257A2 (fr) * 2007-01-30 2008-08-07 Nxp B.V. Procédé de protection contre les attaques et circuit apparenté
US8560899B2 (en) * 2010-07-30 2013-10-15 Infineon Technologies Ag Safe memory storage by internal operation verification

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2015040304A1 *

Also Published As

Publication number Publication date
FR3010822A1 (fr) 2015-03-20
FR3010822B1 (fr) 2015-10-02
WO2015040304A1 (fr) 2015-03-26

Similar Documents

Publication Publication Date Title
EP3182292B1 (fr) Procédé de prédiction d'une donnée a précharger dans une mémoire cache
EP1748374A1 (fr) Procédé et dispositif de protection d'une mémoire contre les attaques par injection d'erreur
WO2003038620A2 (fr) Procede de memorisation de donnees avec correction d'erreur
FR2982406A1 (fr) Memoire securisee qui evite la degradation de donnees
FR3003071A1 (fr) Memoire comprenant un circuit pour detecter une impulsion transitoire sur une ligne de memoire
EP0884704B1 (fr) Procédé d'authentification de circuit intégré
EP1772805A2 (fr) Coprocesseur sécurisé comprenant un circuit de détection d' un évènement
EP1630820B1 (fr) Procédé de programmation de cellules mémoire incluant une détection des dégradations de transconductance
EP3047486A1 (fr) Circuit a mémoire comprenant des moyens de détection d'une injection d'erreur
EP1734536A1 (fr) Mémoire protégée contre des attaques par injection d'erreur dans des signaux de sélection de cellules mémoire
EP1712976A1 (fr) Protection de données d'une mémoire associée à un microprocesseur
EP1821111A1 (fr) Circuit électronique comprenant un mode de test sécurisé par l'utilisation d'un identifiant, et procédé associé.
EP0606796B1 (fr) Procédé de programmation en champ uniforme d'une mémoire électriquement programmable et mémoire mettant en oeuvre le procédé
EP1880387B1 (fr) Dispositif de protection d'une memoire contre les attaques par injection d'erreur
EP1710700A2 (fr) Coprocesseur sécurisé comprenant des moyens pour empêcher l'accès à un organe du coprocesseur
FR2851843A1 (fr) Memoire flash comprenant un algorithme de verification d'effacement integre dans un algorithme de programmation
EP3792771B1 (fr) Test de programme
FR2809222A1 (fr) Memoire eeprom comprenant un systeme de correction d'erreur
FR2974648A1 (fr) Protection d'une memoire vive contre des attaques par injection de fautes
FR2867325A1 (fr) Dispositif de protection contre l'injection d'erreur dans un bloc logique asynchrone d'un module logique elementaire
FR3011656A1 (fr) Procede et dispositif de realisation de fonction par un microcircuit
EP1742075B1 (fr) Procédé de test d'un circuit électronique comprenant un mode de test sécurisé par l'utilisation d'une signature, et circuit électronique associé.
EP4089557A1 (fr) Procédé d'exécution d'un code binaire par un microprocesseur
FR2830972A1 (fr) Architecture de circuits protegee contre des perturbations
FR2946815A1 (fr) Procede d'acquisition d'une pluralite de signaux logiques, avec confirmation de validite d'etat

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20160331

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: VERIMATRIX

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: VERIMATRIX

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20200107

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: RAMBUS INC.

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20220623