Brevet FR3010822A1 — publié le 20150320

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 à 35 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é à l'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 35 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 15 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 l'invention. 20 Un mode de réalisation d'un circuit à mémoire MEM1 selon l'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 REG1, un 25 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 (Wo, W1,... Wi-i) et à des lignes de bits Bi (Bo, BJ-1). Les cellules mémoires sont ici des 30 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 35 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 V± (Vo, V1-1) 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 REG1 assure par ailleurs l'application aux lignes de bits Bi des bits de la donnée DT. Lors d'une opération de lecture, le tampon REG2 reçoit, via les lignes de bits Bi, 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, A1-1) donnant une indication sur la valeur des signaux de sélection V± (Vo, V1-1) que le décodeur RDEC applique au plan mémoire. 5 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 V± sur la ligne de mot est égal à la tension de sélection Vsel. 10 Le circuit LCT comprend par exemple des verrous ("latches") en nombre égal aux lignes de mot soit ici I verrous Li (Lo, L1-1), ayant chacun une entrée connectée à une ligne de mot Wi pour recevoir un signal de sélection et une sortie fournissant le signal Ai. 15 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 Le codeur RCOD reçoit les signaux Ai et est configuré 20 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 V± à partir de l'adresse AD1. Ainsi, quand la combinaison de signaux Ai est identique en valeur logique à la combinaison de 25 signaux Vi fournis par le décodeur RDEC, l'adresse AD2 fournie par le codeur RCOD est identique à l'adresse AD1 reçue par le décodeur RDEC. L'organigramme de la figure 2 décrit une opération 30 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 35 processeur (Fig. 3A), l'adresse AD1 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 REG1 (Fig. 2, étape S1), lequel applique ensuite les bits de la donnée aux lignes de bits Bi. 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 AD11 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 à O. 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, AD13, 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.35 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 N1, N2 de type NON ET et d'une porte inverseuse II recevant le signal La sortie de la porte II est appliquée sur une entrée de la 5 porte N1 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 Nl. Dans ce mode de réalisation, le signal RST ne force pas les sorties Ai à zéro et son passage à 1 10 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. 15 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 20 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 à O. Les verrous sont donc forcés à zéro en dehors des périodes d'écriture et la mise à 1 25 du signal RST à l'instant TO, 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. 30 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 à Wis, que le circuit LCT fournit donc 16 signaux correspondant Ao à 35 A15, 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 W1 ayant l'adresse 1, etc., la ligne de mot W15 ayant l'adresse 15). Le codeur RCOD réalise un encodage simple de l'adresse AD2, sur 4 bits d'adresse AD2o, AD2, AD22, AD23, à partir des signaux Ao à A15, 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 : AD2o = i=0 1=1+2 AD2 1 = [41+2 + 4+3 i=0 1=1-E4 AD22 = + [A1+4 Ai+5 + Ai" + A1+7] 1=0 1=1+8 AD23 = [A1+8+ Ai+9 + A1+10 + A1+11 + A1+12 + 4+13 Ai+14 Ai+15] 1=0 1=1+16 AD2 i 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 S1 à 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.35 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 35 la donnée DT. 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 semiconducteur, conçu pour fournir, sur deux bits de comptage bis et ais, 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 à Wis et que le circuit LCT fournit seize signaux logiques Ao à Ais. Le circuit CPT comprend dans ce cas 15 modules de comptage en cascade Ci à Cis. Le premier module Ci reçoit les bits Ao et Ai et fournit des bits de comptage bi et ai. Chaque module de comptage suivant Ci (C2 à Cis) reçoit un bit Ai et les bits de comptage et du module de comptage précédent. Le dernier module de comptage Cis fournit les bits bis, ais 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 25 Exclusif configurées de manière que : ai = Ao 0 Ai bi = Ao A Ai 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 A bi-i) + (Ai 0 ai-i) bi = bi-i + (Ai A ai-i) La table de vérité ci-après illustre la propagation de la valeur de comptage NSi d'un module à l'autre en fonction de la valeur de comptage NSi-i du module précédent et de 15 la valeur du bit Ai, et montre que NSi est plafonné à 3 : NS1-1 bi-i al-i AI bi al NS1 (décimal) (décimal) 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 2 2 1 0 0 1 0 2 2 1 0 1 1 1 3 3 1 1 1 1 1 3 3 1 1 1 1 1 3 Les modes de réalisation du circuit à mémoire MEM1, MEM2 20 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 à A1-1 fournis par le circuit de capture LCT sont envoyés sur des ports Po à P1-1 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 20 oeuvre 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 l'adresse AD1 étant l'adresse d'une page. Dans des variantes de réalisation, le plan mémoire peut comprendre 25 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 oeuvre de l'invention peut inclure la 30 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 35 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 REG1 sous forme de signaux haute tension, et le tampon REG2 peut comporter des amplificateurs de lecture ("sense 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é.35 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 5 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 10 de cellules mémoire. Un circuit à mémoire selon l'invention est également susceptible de diverses applications, notamment des applications à des composants mémoire ou à des mémoires 15 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 20 externe, le circuit à mémoire MEM1 ou MEM2 fournissant seulement l'adresse AD1 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 25 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 30 parallèle. Il envoie au processeur PRC1 des commandes CMD d'écriture comprenant des données DT et des adresses AD1. 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 35 charge de vérifier que l'adresse d'écriture AD2 correspond à l'adresse AD1 qu'il a fournie dans la commande. Dans les revendications, on entend par "adresse appliquée 5 au décodeur" l'adresse présumée appliquée au décodeur, soit l'adresse de référence AD1 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 10 en cas d'injection d'erreur. REVENDICATIONS1. 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-V-1_1, 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-L1_1) pour capturer, pendant une opération d'écriture ou de lecture de cellules mémoire, des signaux (Vo-VI-1f Vsel) de sélection de cellules mémoire apparaissant dans le plan mémoire, - des moyens (RCOD, PRC1), pour reconstituer, à partir 15 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 20 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 25 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 30 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 15 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 20 comprennent des verrous logiques (LCT, Lo-L1_1) reliés chacun à une ligne de mot (Wo-W1-1) du plan mémoire et fournissant des signaux logiques (A0-A1-1) qui changent de valeur logique lorsqu'un signal de sélection (Vsel) apparaît sur la ligne de mot. 25 8. Circuit à mémoire selon la revendication 7, comprenant un codeur (RCOD) à logique câblée configuré à l'inverse du décodeur (RDEC) pour fournir une adresse (AD2) d'un groupe de cellules mémoire à partir des signaux logiques 30 (A0-A1-1) 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 35 des signaux logiques (A0-A1-1) 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 (A0-A1-1) 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 (A0-A1-1) 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 à 15 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 (Vo-V1-1, Vsel) de sélection d'un groupe de cellules mémoire en fonction d'une adresse (AD1) 20 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-V-1_1, Vsel) de sélection de cellules mémoire apparaissant dans le 25 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. 30 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.