MEMOIRE NON-VOLATILE SECURISEE Domaine technique de l'invention L'invention est relative à des cellules mémoire non-volatiles programmées lors des étapes finales de réalisation d'un circuit, et plus particulièrement à une mémoire non-volatile sécurisée, c'est-à-dire dont le contenu est difficile à retrouver par une analyse du circuit finalisé. État de la technique De nombreux circuits peuvent embarquer un micrologiciel programmé dans une mémoire non-volatile. Dans la plupart des applications, la mémoire non-volatile est une mémoire ROM. Un inconvénient d'une mémoire ROM est que son contenu est relativement facile à reconstituer par une analyse structurelle du circuit, ce qui la rend peu adaptée aux applications de cryptographie. La figure 1 représente schématiquement une cellule mémoire non-volatile, telle que décrite dans le brevet US7697319, dont le contenu est rendu difficile à retrouver par des moyens d'analyse courants. La cellule a pour base une bascule bistable de type RS, réalisée, par exemple, avec deux portes NON-OU 10 et 11. La sortie Q de chaque porte est reliée à une première entrée de l'autre porte. Les deuxièmes entrées des portes 10 et 11 reçoivent un même signal de réinitialisation RST, ce qui est inhabituel pour une bascule RS qui doit normalement recevoir des états complémentaires sur ces deux entrées pour régler son état. En fonctionnement normal, le signal RST est à 0, d'où il résulte que les portes 10 et 11 se comportent en inverseurs rebouclés. Elles fournissent des états complémentaires sur leurs sorties QO et Q1. Ainsi, chaque porte confirme l'état de l'autre porte. L'état stocké dans la cellule est prélevé sur l'une des sorties Q, par exemple Q0. Lorsque le signal RST passe à 1, les sorties des portes 10 et 11 sont toutes deux forcées à 0, ce qui correspond normalement à un état « interdit ». En effet, lorsque les signal RST repasse à 0, la bascule est dans un état métastable ; les portes 10 et 11 tendent toutes les deux à passer à 1 - la première qui y parvient empêche l'autre de passer à 1. Lorsque les portes sont identiques, on ne peut pas prévoir laquelle des deux passera à 1. On retrouve cette incertitude à la mise sous tension du circuit incorporant la bascule. Dans le brevet susmentionné, on propose de déséquilibrer les portes 10 et 11 pour favoriser le basculement de la cellule vers un état prévisible lorsqu'elle transite par un état métastable, à la mise sous tension ou à la suite d'une réinitialisation. La figure 2 permet d'illustrer comment cela est fait. Elle représente un schéma de porte NON-OU. La porte comprend deux transistors MOS de type P, MP1 et MP2, reliés en série à une ligne d'alimentation haute Vdd. Deux transistors MOS de type N, MN1 et MN2, sont connectés en parallèle et relient les transistors MP1 et MP2 à une ligne d'alimentation basse Vss. Le noeud de connexion entre les sources des transistors MP2, MN1 et MN2 forme la sortie Q de la porte. Les grilles des transistors MP1 et MN1 sont reliées ensemble et forment une première entrée A de la porte. La deuxième entrée B de la porte est formée par les grilles des transistors MP2 et MN2. Afin de déséquilibrer la porte représentée par rapport à l'autre porte de la bascule, sans modifier sa structure physique, on modifie la tension seuil des transistors P (ou N) de la porte en modifiant le dopage de canal (ou de drain et source) par implantation ionique. Dans le cas où on augmente la tension seuil des transistors P, ces transistors cessent de conduire, donc de tirer la sortie vers 1, plus tôt que les transistors P de l'autre porte. Par conséquent, l'autre porte l'emporte systématiquement pour passer à l'état 1 lorsque la bascule est dans un état métastable. Ainsi, on programme, de façon non-volatile, un 1 ou un 0 dans la cellule en choisissant l'une ou l'autre porte pour faire l'implantation ionique. Cette programmation est faite à l'aide d'un masque dans les dernières étapes de fabrication du circuit. Une telle cellule mémoire présente strictement la même structure physique, qu'elle soit programmée à 1 ou à 0. Il n'est donc pas possible de retrouver sa programmation par des moyens d'analyse structurelle. II existe néanmoins d'autres techniques d'analyse qui permettraient, dans un circuit en fonctionnement, de détecter l'état stocké dans une telle cellule.
Résumé de l'invention On souhaite donc disposer d'une cellule mémoire non-volatile dont la programmation est difficilement détectable dans un circuit en fonctionnement. On tend à satisfaire ce besoin en prévoyant une mémoire non-volatile sécurisée comprenant une cellule bistable ayant un état d'initialisation préprogrammé, et des moyens pour basculer l'état de la cellule en réponse à un signal de basculement. La mémoire est de préférence utilisée en combinaison avec une horloge qui génère le signal de basculement avec une période inférieure au temps 10 d'acquisition d'un microscope à émission de photons. Selon un mode de réalisation, la cellule comprend deux éléments inverseurs rebouclés, semblables par la structure physique de leurs transistors, mais différents par les caractéristiques des transistors. Selon un mode de réalisation, la cellule comprend une bascule connectée pour 15 mémoriser l'état de la cellule en réponse à un état actif du signal de basculement, et un multiplexeur connecté pour écrire le complément de l'état de la bascule dans la cellule mémoire en réponse à l'état actif du signal de basculement. Description sommaire des dessins 20 D'autres avantages et caractéristiques ressortiront plus clairement de la description qui va suivre de modes particuliers de réalisation donnés à titre d'exemples non limitatifs et illustrés à l'aide des dessins annexés, parmi lesquels : la figure 1, précédemment décrite, représente une configuration de 25 bascule RS servant de base à une cellule mémoire sécurisée classique ; la figure 2, précédemment décrite, représente la structure d'une porte NON-OU utilisée dans la bascule de la figure 1 ; la figure 3 représente un mode de réalisation de cellule permettant de réaliser une mémoire sécurisée dont la programmation est difficile à 30 détecter par microscopie à émission de photons ; et 3 la figure 4 est un chronogramme illustrant un exemple de fonctionnement de la cellule de la figure 3. Description d'un mode de réalisation préféré de l'invention On a trouvé qu'il était possible, par microscopie à émission de photons (PEM, 5 du terme anglais « photon emission microscopy »), de déduire les états stockés dans des cellules du type de la figure 1 d'un circuit en fonctionnement. Un microscope à émission (couramment désigné par l'acronyme « EMMI ») permet de détecter, en face arrière du circuit, des photons générés par le courant de canal des transistors MOS. Comme dans les technologies récentes 10 tous les transistors ont tendance à fuir, il s'établit un courant de repos dans le canal des transistors de la porte de la figure 1. Les courants de fuite des transistors P étant différents de ceux des transistors N, indépendamment des implantations, une porte à 1 (dont les transistors N - en parallèle - sont bloqués mais fuient) présente un courant de repos différent de celui d'une porte à o 15 (dont les transistors P - en série - sont bloqués mais fuient). Cette différence de courants de repos étant détectable par PEM, on peut en théorie retrouver la programmation de ces cellules. Un microscope à émission, généralement utilisé pour détecter des défaillances permanentes, est plutôt prévu pour mesurer un état statique, car il a besoin d'un 20 temps relativement long pour acquérir une mesure exploitable des photons émis par le circuit. Le temps est d'autant plus long que les écarts de courant à discriminer sont faibles. En fonctionnement, les cellules du type de la figure 1 formant une mémoire restent à un état statique, c'est-à-dire qu'elles ne sont pas sollicitées en 25 basculement, mis à part sporadiquement lors d'une réinitialisation. Ces conditions sont idéales pour une analyse sous microscope à émission. Afin de réaliser une mémoire sécurisée dont le contenu est difficile à détecter en fonctionnement par PEM, on exploite la caractéristique du temps d'acquisition des microscopes à émission et la caractéristique bistable d'une 30 cellule du type de la figure 1. Plus spécifiquement, une fois que le contenu de la mémoire a été exploité, ce qui a lieu généralement dès la mise sous tension ou immédiatement après une réinitialisation, on bascule régulièrement chaque cellule, de sorte qu'un microscope à émission n'ait pas le temps d'acquérir une mesure stable. Dans ces conditions, le microscope fournira une mesure moyenne pour chaque porte de la cellule et, chaque porte passant sensiblement autant de temps à l'état 1 qu'à l'état 0, les moyennes des deux portes sont sensiblement égales, ou du moins trop proches pour qu'on puisse mesurer une différence. La figure 3 représente schématiquement un exemple de réalisation de cellule mémoire permettant de mettre en oeuvre cette procédure. La cellule est construite autour d'une bascule RS du type de la figure 1.
Cette structure permet de sauvegarder l'état de la cellule dans une bascule D 12 et d'écrire son complément dans la cellule en réponse à un signal de basculement FLP généré par une horloge 13. Plus précisément, la sortie QO de la porte 10 est transmise à l'entrée D de la bascule 12 par un inverseur 14. L'entrée de commande G de la bascule 12 reçoit le complément du signal FLP. La bascule 12 peut, le cas échéant, être réinitialisée par un signal RST. La sortie Q de la bascule 12 est reliée à une première entrée d'un multiplexeur SO par l'intermédiaire d'un inverseur 16, et à une première entrée d'un multiplexeur S1. Ces multiplexeurs sont représentés sous forme de commutateurs.
Les sorties des multiplexeurs SO et S1 sont fournies respectivement aux entrées des portes 10 et 11 qui recevaient le signal de réinitialisation RST dans la figure 1. Le signal RST est fourni ici à une deuxième entrée de chacun des multiplexeurs SO et S1. Les multiplexeurs SO et S1 sont commandés en synchronisme par le signal de basculement FLP.
Lorsque le signal FLP est inactif, en fonctionnement normal, les multiplexeurs sont positionnés pour fournir le signal RST aux portes 10 et 11, comme cela est représenté. La figure 4 est un chronogramme illustrant le fonctionnement de la cellule mémoire de la figure 3. II représente un exemple d'évolution des sorties QO et Q1 des portes 10 et 11 en fonction des signaux de réinitialisation RST et de basculement FLP. 2967522 s
Avant un instant t0, le signal de basculement FLP est inactif : les multiplexeurs SO et S1 relient le signal RST aux portes 10 et 11. L'entrée de commande G de la bascule D 12 est active, mettant la bascule dans son état « transparent » : la bascule 12 recopie son entrée D vers sa sortie Q. Cela n'a aucune influence sur 5 les portes 10 et 11, puisque les multiplexeurs SO et S1 ne leur transmettent pas la sortie de la bascule 12. Les sorties QO et Q1 des portes 10 et 11 sont respectivement à 1 et à 0, correspondant à un exemple d'état par défaut programmé. A l'instant t0, le signal RST présente une impulsion à 1. Pendant cette 10 impulsion la sortie QO est forcée de 1 à 0, tandis que la sortie Q1 reste à 0. Lorsque le signal RST repasse à 0, les sorties QO et Q1 tendent toutes deux vers 1. Le déséquilibre des portes 10 et 11 est tel que la sortie QO l'emporte, forçant la sortie Q1 à redescendre à 0. Un fonctionnement similaire se produit lors de la mise sous tension de la 15 cellule, où tous les niveaux des signaux partent de 0. Si pour une raison quelconque la cellule ne se stabilise pas à son état programmé, ce qui peut en effet arriver si la mise sous tension est brutale et génère des parasites qui font basculer la cellule, c'est le signal RST, systématiquement généré peu après chaque mise sous tension, qui s'en charge. 20 A un instant t1, après que le contenu de la mémoire a été exploité, par exemple recopié dans une mémoire volatile où il sert de données ou d'instructions de programme, on procède à un premier basculement par une impulsion à 1 du signal FLP. L'état 1 du signal FLP verrouille la bascule 12 qui mémorise le dernier état, 1, du signal QO (en fait son complément 0 par l'inverseur 14). 25 Le signal FLP commute en outre les multiplexeurs SO et S1 vers la sortie de la bascule 12. La porte 10 reçoit ainsi un « 1 » et la porte 11 un « 0 » - cela fait basculer les portes 10 et 11 à 0 et 1, respectivement. Lorsque le signal FLP repasse à 0, la cellule retourne à sa configuration normale, et conserve de manière stable son nouvel état, malgré le déséquilibre 30 programmé entre les portes 10 et 11. Les impulsions FLP se succèdent ensuite de manière régulière. A chaque impulsion FLP, comme cela est représenté, les sorties QO et Q1 des portes basculent.
La période des impulsions FLP est de préférence inférieure au temps d'acquisition d'un microscope à émission, de sorte que le microscope ne puisse, à aucun moment, fournir une mesure stable. L'écart entre les instants t1 et t0 est, de préférence, également inférieur au temps d'acquisition. Le temps s d'acquisition de ce type de microscope est de l'ordre de la seconde, ce qui laisse une grande marge de manoeuvre pour l'exploitation puis le « brouillage » de la donnée stockée (l'exploitation de la donnée peut être réalisée en moins de 10 ns). Il est rare qu'on ait besoin de relire le contenu de la mémoire non-volatile au io cours du fonctionnement du circuit. Si pour une raison quelconque on souhaite le faire, il convient de tenir compte de la parité des impulsions FLP pour savoir si la mémoire contient les données d'origine ou bien leur complément logique. Un diviseur par 2 du signal FLP indiquera à tout instant, par un état 0 ou 1, la parité de ce signal et s'il faut inverser ou non les données contenues dans la 15 mémoire à la lecture. Comme on l'a précédemment indiqué, le déséquilibre entre les portes 10 et 11, permettant la stabilisation de la bascule RS à un état par défaut prévisible, peut être obtenu en modifiant les dopages des transistors P (ou N) de l'une des portes par implantation ionique, ce qui modifie les tensions seuil. Pour 20 accentuer le déséquilibre, on peut envisager d'appliquer la même opération d'implantation sur tous les transistors d'une même porte. En effet, dans le cas où une implantation ionique augmente la tension seuil des transistors P, la même implantation ionique diminue la tension seuil des transistors N, favorisant davantage la stabilisation à l'état 0 de la porte. 25 De nombreuses techniques alternatives existent pour provoquer un déséquilibre entre les portes, par exemple réaliser des transistors de tailles différentes, connecter les substrats des transistors à des potentiels différents... Ces techniques alternatives, outre le fait qu'elles sont plus difficiles à mettre en oeuvre dans une programmation par masque, modifient également la structure 3o physique des transistors. II en résulte que le contenu de la mémoire programmé selon ces techniques alternatives peut être retrouvé par une analyse structurelle. Ainsi, on souhaite plutôt utiliser des techniques qui modifient les caractéristiques des transistors sans modifier leur structure physique. 2967522 s
De nombreuses variantes et modifications des principes décrits ici apparaîtront à l'homme du métier. Bien que la description se fonde à titre exemple sur une cellule bistable de type RS à base de portes NON-OU, ces principes s'appliquent à tout type de cellule bistable ayant un état d'initialisation s préprogrammé, par exemple une cellule de type SRAM comprenant deux inverseurs semblables rebouclés. Par ailleurs, les niveaux logiques des divers signaux ont été décrits en relation avec des exemples particuliers - l'homme du métier saura adapter ces niveaux logiques aux besoins particuliers des applications et structures qu'il envisage. 10