Brevet FR2606530A1 — publié le 19880513

CIRCUIT INTEGRE POUR LA MEMORISATION ET LE TRAITEMENT D'INFORMATIONS DE MANIERE CONFIDENTIELLE COMPORTANT UN DISPOSITIF ANTI-FRAUDE La présente invention a pour objet un circuit intégré pour la mémorisation et le traitement d'informations de manière confidentielle comportant un dispositif anti-fraude. Elle concerne plus particulièrement, mais non exclusivement, les circuits intégrés du type ci-dessus connus sous la dénomination de cartes à mémoire. Les cartes à mémoire sont réalisées avec un circuit intégré électronique comportant essentiellement une mémoire non volatile programmable électriquement comprenant souvent des données confidentielles nonmodifiables, des moyens d'entrée/sortie permettant d'accoupler le circuit à un dispositif de transfert de données et des moyens de traitement Interconnectés entre les moyens d'entrée-sortie et la mémoire. Dans certaines applications des cartes à mémoire, il est impératif de protéger l'accès à certaines zones de la mémoire non volatile par une clé d'accès telle qu'un code confidentiel associé à certains droits de lecture ou d'écriture dans ces zones spécifiques. Il existe de nombreux dispositifs permettant de dissuader les fraudeurs qui cherchent à découvrir le code secret ou la clé d'accès à une mémoire par essais successifs. Parmi ces dispositifs, le plus connu est sans doute celui qui mémorise d'une façon permanente les erreurs de présentation de clé et bloque le fonctionnement du circuit dès que le nombre des erreurs dépasse une valeur prédéterminée. A de tels dispositifs on ajoute généralement une logique qui empêche de contrôler le passage d'une clé bonne par observation des variations des courants d'alimentation du circuit. Le fraudeur ne peut donc pas être informé du résultat des essais qu'il entreprend. Or de tels dispositifs nécessitent une place en mémoire relativement importante pour enregistrer les tentatives correctes qui sont en fait les plus féquentes. Dans le cas o la carte a des fonctions relativement simples, un traitement aussi complexe et qui demande beaucoup de place sur le composant, ne se justifie pas. On hésite donc, à utiliser un tel dispositif antl-fraude. Par ailleurs il est demandé dans certaines applications, au contraire, de renforcer le dispositif -de protection anti-fraude. Le dispositif selon la présente invention permet d'apporter une solution simple à ces problèmes, il permet donc dans le cas d'applications simples de la carte, de se substituer aux dispositifs de l'art connu, o d'être combiné à ces dispositifs dans le cas d'applications plus complexes. La présente invention a donc pour objet un circuit intégré pour la mémorisation et le traitement d'informations de manière confidentielle comprenant des moyens de contrôle d'accès aux fonctions dudit circuit par l'introduction d'un code confidentiel, caractérisé en ce que ces moyens de contrôle comprennent un dispositif de temporisation imposant un délai minimum prédéterminé entre deux tentatives d'introduction d'un code confidentiel. La présente invention a également pour objet un circuit intégré comprenant au moins: - une mémoire non volatile programmable électriquement contenant entre autres des données d'habilitation; - des moyens d'entrée/sortie permettant d'accoupler le circuit à un dispositif de transfert de données; - des moyens de traitement interconnectés entre les moyens d'entrée/sortie et la mémoire non volatile, lesdits moyens comportant des moyens de contrôle d'accès dans lesquels un comparateur est apte à comparer les données d'habilitation au code confidentiel introduit par l'intermédiaire des moyens d'entrée/sortie, caractérisé en ce que les moyens de contrôle comportent le dispositif de temporisation et en ce que ce dispositif est apte à provoquer un verrouillage des moyens d'entrée/sortie pendant le délai minimum prédéterminé entre deux tentatives d'introduction d'un code confidentiel même dans le cas de coupures de la tension d'alimentation du circuit entre chaque tentative. Dans la définition de la présente invention, on précisera pour l'homme de l'art les points ci-après: Par traitement d'informations, on entend soit le simple transfert de données entre le circuit intégré et un système extérieur, soit le transfert et l'exécution d'un certain nombre d'opérations à l'intérieur du circuit lui-même. Par comparateur, on entend non seulement un simple comparateur effectuant la comparaison entre les données d'habilitation et le code confidentiel ou clé d'accès, mais aussi tout système qui, à partir des données d'habilitation ou du code confidentiel ou clé d'accès, effectue un certain nombre d'opérations en vue d'autoriser la poursuite des opérations. Par moyen de traitement, on entend tous les circuits nécessaires à l'écriture et la lecture des données dans la mémoire ainsi qu'au traitement de ces données et au contrôle d'accès aux fonctions du circuit intégré. De manière générale, les moyens de traitement sont constitué par un microprocesseur muni de ses circuits annexes bien connus de l'homme de l'art. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit et qui se réfère aux dessins annexés, donnés uniquement à titre d'exemple non limitatif et dans lesquels: - la figure 1, représente le schéma du circuit intégré selon la présente invention, - la figure 2, représente un exemple de réalisation du circuit selon la figure 1, - la figure 3, représente un exemple de réalisation du circuit de temporisation selon la figure 2. Sur la figure 1, on a représenté à titre d'exemple, une carte à mémoire 1, utilisant un circuit intégré mettant en oeuvre la présente invention. La carte -à mémoire représentée sur la figure i comporte essentiellement un dispositif d'entrée/sortie 2 permettant d'accoupler la carte à un dispositif de transfert de données extérieur; des moyens de traitement 3 comprenant entre autre un dispositif de contrôle d'accès 30 aux fonctions de la carte; une mémoire non volatile programmable électriquement 4. Les moyens de traitement 3 sont interconnectés entre le dispositif d'entrée/sortle 2 et la mémoire 4. Le dispositif de contôle d'accès 30 comporte un dispositif de temporisation 31 qui permet d'imposer un délai minimum prédéterminé entre deux tentatives d'introduction d'un code confidentiel même si la tension d'alimentation du circuit est coupée entre ces deux essais. Le délai est choisi de sorte que la probabilité d'obtenir ce code pour un utilisateur qui ne le connaîtrait pas, soit quasiment nulle. Sur la figure 2, on a représenté un exemple particulier de réalisation d'une carte dans laquelle l'organe de traitement 3 comporte entre autre un circuit d'adressage des points mémoires, ce circuit étant constitué par un compteur 35. Cet organe 31 comporte également un circuit logique de commande de lecture et/ou d'écriture 36 de la mémoire 4. Le circuit. 36 permet sur un ordre logique provenant du décodeur, de lire dans la mémoire le bit adressé ou d'écrire dans cette mémoire à l'adresse prévue un bit de donnée. Les entrées et sorties I/O sont reliées au circuit de transfert pour, respectivement, recevoir des données à écrire ou transmettre des données lues. L'organe de contrôle d'accès 30 comporte un décodeur de signaux de commande A et B transmis par le dispositif d'entrée/sortie. L'organe de contrôle comporte également un comparateur 33 relié au décodeur 32 et à la sortie de données S de la mémoire 4. La sortie du comparateur 33 est reliée à l'entrée d'un bascule 34. La sortie de la bascule 34 est reliée à une entrée du circuit de temporisation 31 et à une entrée du circuit logique de lecture/écriture 36. Le circuit de temporisation 31 est relié par une autre entrée à une sortie du compteur 35 et est relié par sa sortie à une entrée du décodeur 32. Selon que le signal A, correspond pour le décodeur à un état logique i ou O, le décodeur 32 effectue soit une remise à zéro RAZ du compteur 35 soit une incrémentation INC de ce compteur. Le signal B correspond au code confidentiel introduit. La détection du premier bit du code confidentiel, traduite par un état logique O ou 1 du signal A, déclenche le comptage. A chaque incrémentation, l'état logique des sorties du compteur permet d'adresser dans la zone de la mémoire dans laquelle le code d'habilitation a été stocké, un bit de ce code d'habilitation. Le décodeur envoie un ordre logique CL (ou CE) qui est traduit par la logique 36 par un ordre de lecture CL, (CE étant traduit par un ordre d'écriture). Le bit lu à l'adresse présentée est transmis à une entrée d'un comparateur 33 qui reçoit à une autre entrée le bit correspondant du code confidentiel provenant du décodeur 32. Si les deux bits sont identiques la sortie du comparateur ne modifie pas l'état de la bascule 34. La détection du dernier bit du code confidentiel par le compteur 35 provoque un état logique à l'une de ses sortie (signal C) qui déclenche le chargement du circuit de temporisation 31. Si aucun changement d'état n'a eu lieu dans la bascule pour un mot donné, c'est-à-dire si l'état logique de la sortie de la bascule est resté le même pour chaque bit du mot, cet état provoque un déchargement (signal D) simultané au chargement. Lorsque deux bits présents aux entrées du comparateur sont différents, la bascule change d'état. Le changement d'état de sa sortie empêche le déchargement qui s'opérait simultanément au chargement dans le circuit de temporisation 35. Le circuit 35 se charge par conséquent, des détections du dernier bit du code confidentiel et ne se déchargera qu'au bout d'un durée d prédéterminée. Pendant toute cette durée, le décodeur qui reçoit le signal V de sortie du circuit de temporisation est bloqué par l'état de ce signal. Ainsi pendant toute cette durée d aucun code confidentiel ne pourra être pris en compte pour être comparé au code d'habilitation stocké dans la mémoire même si la tension d'alimentation du circuit est coupée pendant le tempsd. Sur la figure 3, on a représenté un exemple de réalisation particulier du circuit de temporisation 31. Ce circuit comporte avantageusement deux transistors 310,320 à effet de champ à technologie CMOS ou NMOS. Les transistors sont en série. Le transistor 310 est relié à un niveau de tension Vcc et le transistor 320 est relié à un niveau de tension VSS. Une diode 330 dont la cathode est reliée au point de jonction des deux transistors et dont l'anode est reliée au potentiel Vss permet d'introduire la temporisation. La diode a été représentée en traits pointillés car il ne s'agit pas d'un composant spécifique. La diode qui existe intrinsèquement et qui est constituée par exemple par la Jonction entre le drain du transistor 320 et le substrat permet d'obtenir la temporisation désirée. Lorsque le compteur 35 arrive à la valeur 2n(soit 32 pour donner un exemple de code sur 32 bits), quelque soit la succession de commandes qui aient été représentées à l'entrée du décodeur 32, le noeud N est chargé par la mise en conduction du transistor 310 à la tension d'alimentation VCC, la grille de ce transistor ayant été activée par le signal C. Lorsque la bascule 34 a conservé un même état, par exemple un état de repos, pendant les comparaisons successives de chaque bit du code confidentiel avec chaque bit du code d'habilitation, le transistor 320 qui est activé par le signal D, conduit. Le noeud N est donc déchargé par conduction à Vssdu transistor 320. Lorsque la bascule 34 a changé d'état en cours d'opération de comparaison, le transistor 320 n'est pas activé par le signal D car celui-ci n'a pas le niveau requis et le noeud N reste donc chargé. L'état logique du noeud N lorsqu'il est chargé permet par l'intermédiaire d'une porte inverseuse 340 qui applique un signal V de niveau logique requis, de bloquer le décodeur 32. Le noeud N se décharge alors par les fuites de la diode 330 vers le substrat sur lequel les transistors ont été Implantés. La décharge s'effectue pendant une durée qui est fonction de la technologie des composants utilisés, elle peut varier entre 0,1 seconde et 1 seconde et n'est pas influencé par une mise hors tension sous tension du circuit. Lorsque le courant passant dans la diode devient suffisamment faible, le noeud est déchargé, et le niveau logique à l'entrée de la porte permet, par l'intermédiaire de la porte 340, d'envoyer un signal V apte à déverrouiller le décodeur 32. La temporisation obtenue, qui peut donc être de l'ordre de 0,1 à 1 seconde, impose dans le cas o on utilise un code sur 32 bits, 13 à 130 ans pour passer tous les codes possibles soit 4.294.967.296 codes. Dans le cas o cette temporisation est 0,1s (cas le plus favorable pour un fraudeur), le fraudeur ne pourra présenter que 86 400 codes par jour ce qui représente une chance sur 49.710 de trouver le code correct. Il faut donc 5 jours de présentation ininterrompue pour voir cette probabilité tomber à une chance sur 10 000. Il est évident qu'un code sur 64 bits rend encore moins probable la probabilité de découverte de ce code par un éventuel fraudeur. REVENDICATIONS 1. Circuit intégré pour la mémorisation et le traitement d'informations de manière confidentielle comprenant des moyens de contrôle d'accès aux fonctions dudit circuit par l'introduction d'un code confidentiel; caractérisé en ce que ces moyens de contrôle (30) comprennent un dispositif de temporisation (31) Imposant un délai minimum prédéterminé entre deux tentatives d'introduction d'un code confidentiel même dans le cas de coupures de la tension d'alimentation du circuit entre chaque tentative. i0 2. Circuit intégré selon la revendication 1, comprenant au moins: - - une mémoire (4) non volatile programmable électriquement, contenant entre autre des données d'habilitation; - des moyens d'entrée/sortie (2) permettant d'accoupler le circuit à un dispositif de transfert de données; - des moyens de traitement (3) interconnectés entre les moyens d'entrée/sortie (2) et la mémoire (4) non volatile, lesdits moyens comportant les moyens de contrôle d'accès (31) dans lesquels un comparateur (33) est apte à comparer les données d'habilitation au code confidentiel introduit par l'intermédiaire des moyens d'entrée/sortie (2), caractérisé en ce que les moyens de contrôle (31) comporte le dispositif de temporisation (31) et en ce que ce dispositif est apte à provoquer un verrouillage des moyens d'entrée/sortie (2) pendant le délai minimum prédéterminé entre deux tentatives d'introduction d'un code confidentiel même dans le cas de coupures de la tension d'alimentation du circuit en ces deux tentatives. 3. Circuit intégré selon la revendication 2, caractérisé en ce que: - les moyens d'entrée/sortie (2) comprennent un décodeur (32) des codes introduits; - les moyens de contrôle d'accès (31) comprennent un compteur d'adresse (35), le comparateur (33), une bascule (34), le dispositif de temporisation (31); - et caractérisé en ce que le dispositif de temporisation 31 est chargé par un signal C émis par le compteur d'adresse (35) à la réception du dernier bit de codage du code confidentiel; ce dispositif étant susceptible d'être déchargé par le signal D de sortie de la bascule (34) qui traduit le résultat de comparaison entre chaque bit de codage du code confidentiel et chaque bit des données d'habilitation dans la mémoire; ledit dispositif étant susceptible d'émettre un signal de verrouillage V au codeur (32), de durée prédéterminée même dans le cas de coupures du courant d'alimentation du circuit entre deux tentatives. 4. circuit intégré selon la revendication 3, caractérisé en ce que le dispositif de temporisation (31) comporte un premier (310) et un deuxième (320) transistors à effet de champ, la grille du premier transistor étant activé par le signal de charge C, la grille du deuxième transistor étant activée par le signal de décharge D, deux électrodes principales étant reliées entre-elles, tandis que les autres électrodes principales sont reliées l'une à un premier potentiel VCC, l'autre à un deuxième potentiel VS S le dispositif comportant également une diode (330) dont la cathode est reliée au point commun (N) des deux électrodes principales et l'anode est reliée au deuxième potentiel VSS. 5. Circuit intégré selon la revendication 4, caractérisé en ce que la diode (330) est constituée par jonction intrinsèque existant entre le drain (ou la source) du deuxième transistor (320) et le substrat. 6. Circuit intégré selon la revendication 4, caractérisé en ce que les deux transistors (310,320) sont de type NMOS. 7. Circuit intégré selon la revendication 4, caractérisé en ce que les deux transistors (310,320) sont de type CMOS. 8. Circuit Intégré selon la revendication 4, caractérisé en ce que le dispositif de temporisation comporte un inverseur (340)dont l'entrée est relié au point de connexion (N) des deux électrodes princiaples