Brevet FR2651347A1 — publié le 19910301

"Procédé de génération de nombre unique pour carte à microcir- cuit et application à la coopération de la carte avec un sys- tème hôte". Description La présente invention concerne un procédé de géné- ration de nombre unique (NU), pseudo-aléatoire, chaque nombre NU étant destiné à individualiser, lors d'une utilisation spé- cifique d'une carte à microcircuit, la coopération, par l'in- termédiaire de ladite carte, avec un système hôte, ladite car- te comportant au moins les mémoires suivantes:une mémoire vive RAM, une mémoire programme ROM, et une mémoire de donnée de type EPROM, ou E2PROM, incorporant une clé de fabrication (PK), une clé émetteur (MK), un code porteur (CP) et un numéro de série (NS). L'invention concerne aussi des applications du pro- cédé de génération de nombre unique, notamment pour l'authen- tification d'un système hôte coopérant, par l'intermédiaire d'un lecteur, avec une carte à microcircuit ou pour la réhabi- litation, par un système hôte habilité, d'une carte à micro- circuit qui aurait été bloquée suite à plusieurs (trois) pré- sentations consécutives fausses du code porteur. Un nombre aléatoire ou pseudo-aléatoire est généra- lement utilisé dans des protocoles cryptographiques afin d'em- pêcher la réutilisation (le rejeu) de données chiffrées (sur- tout par une personne non autorisée), ou tout simplement en tant qu'élément d'authentification. D'une manière générale, l'élaboration d'un algorithme visant à générer un nombre pseu- do-aléatoire est complexe, ce qui pose le problème technique de concevoir un tel algorithme lorsque ce dernier doit être exécuté dans un composant à microprocesseur ayant des capaci- tés de mémoire vive RAM et de mémoire morte ROM réduites comme c'est le cas dans une carte à microcircuit. La génération d'un nombre aléatoire s'effectue de façon connue dans un appareil électronique qui coopère avec une carte à microcircuit comme décrit par exemple dans le brevet européen 0 096 599, o un générateur de nombres aléatoires (GNA) est prévu dans un appa- reil de transaction, dans le but d'authentifier ou certifier une information contenue dans une mémoire d'un support élec- tronique. Pour des applications d'une carte à microcircuit qui requièrent un degré élevé de sécurité et de confidentialité, il est souhaitable que la carte à microcircuit engendre elle- même les nombres (pseudo) aléatoires précités (nombres uni- ques), ce qui a pour effet de mettre cette dernière sur un pied d'égalité par rapport aux appareils électroniques qui coopèrent avec elle (lecteur proche, système hôte distant) en lui permettant d'effectuer elle-même de façon interne, inac- cessible, des calculs cryptographiques suivis de comparaisons de cryptogrammes, pour validation éventuelle de telle ou telle utilisation spécifique. Les propriétés caractéristiques requises de chaque nombre unique émis par la carte sont les suivantes: - le nombre généré ne doit pas être prévisible quel que soit le nombre généré précédemment et quel que soit le type de carte utilisé, - le nombre généré doit être différent à chaque mise sous ten- sion, - le nombre généré doit être indépendant du moment de sa re- quête, - le nombre généré.n'est utilisable qu'une fois (nombre uni- que). Un but de l'invention est la génération, dans une carte à microcircuit, d'un nombre pseudo-aléatoire par un pro- gramme spécifique de la carte. Un autre but de l'invention est la génération, dans une carte à microcircuit, d'un nombre pseudo-aléatoire par cryptage réversible d'un message d'entrée unique engendré par la carte. Encore un autre but de l'invention est la généra- tion, dans une carte à microcircuit, d'un nombre pseudo-aléa- toire par cryptage réversible d'un message d'entrée unique en- gendré par la carte, sous une clé de présentation résultant d'une opération logique entre deux clés de présentation préa- lablement introduites dans la carte. Ces buts sont atteints grâce au fait que le procédé indiqué en préambule est remarquable en ce que ledit nombre NU est engendré et stocké en mémoire RAM dans ladite carte après exécution successive des étapes suivantes d'un programme spé- cifique de la carte: a - une opération logique, notamment l'addition modulo 2 des clés PK et MK et le stockage en mémoire RAM du résultat de l'addition, KMP: PKDMK = KMP b - le chiffrement en ledit nombre unique NU d'un message d'entrée ME, unique, engendré par la carte, qui se modifie à chaque utilisation spécifique, au moyen d'un algorithme réversible (ALG, ALG-1) sous la clé KMP: NU = ALGKMp(ME) De préférence, l'algorithme de cryptage réversible utilisé est le système de chiffrement à clé secrète dit: Data Encryption Standard (noté DES pour sa fonction de chiffrement et DES-1 pour sa fonction de déchiffrement) décrit dans la pu- blication "Federal Information Processing Standards Publica- tion" (FIPS PUB46) du 15 janvier 1977 du Bureau National des Standards du Ministère du Commerce américain. Cet algorithme est naturellement présent dans la carte à microcircuit pour réaliser des fonctions cryptographiques et protéger des don- nées (voir à ce sujet le brevet FR 2 611 962 au nom de la de- manderesse. La propriété du nombre pseudo-aléatoire ainsi obte- nu d'être unique avec les propriétés caractéristiques préci- sées ci-dessus résulte en partie de propriétés que doivent posséder le message d'entrée ME et la clé KMP. Selon un mode de réalisation préféré de l'invention pour ce qui est de la génération du message d'entrée, le procédé de génération de nombre unique NU est remarquable en ce que ladite carte com- porte en outre un compteur RAM contenant le nombre CTRAM, un compteur PROM contenant le nombre CTROM et que ledit message d'entrée ME est constitué par la juxtaposition des trois nom- bres: NS, CTRAM, CTROM, ledit compteur RAM étant initialisé à 00...0 à chaque mise sous tension de la carte et incrémenté à chaque génération de nombre unique NU, et le compteur PROM étant incrémenté lors d'une utilisation spécifique après cha- que mise sous tension ou remise à zéro de la carte (RESET) si le code porteur CP n'a pas été présenté ou si le compteur RAM passe en débordement. Selon un mode de réalisation préféré de l'invention pour ce qui est de la génération de la clé KMP, le procédé est remarquable en ce que la clé PK n'est connue que du fabricant de carte et que la clé MK n'est connue que de l'émetteur de la carte et que, par conséquent, la clé KMP qui se trouve en mé- moire RAM et, bien sûr, inaccessible de l'extérieur, ne peut être connue d'aucune des deux parties, ce qui est conforme à la première propriété de la génération du nombre unique. L'incrémentation des compteurs RAM et PROM ainsi réalisée est telle qu'il n'est pas possible d'obtenir deux fois le même message d'entrée pendant la durée de vie de la carte à microcircuit. De plus, ce message d'entrée est unique pour chaque carte étant donné que son numéro de série est uni- que. Une application préférée du procédé de génération de nombre unique selon l'invention concerne l'authentification d'un système hôte coopérant, par l'intermédiaire d'un lecteur, avec une carte à microcircuit en utilisant un mode de fonc- tionnement du DES qui est le M.A.C. décrit notamment dans le document ANSI X9.9 publié en 1982 par l'American Bankers Asso- ciation; cette application est caractérisée par les étapes suivantes: a - le système hôte envoie à la carte à microcircuit une ins- truction de génération de nombre unique NU, b - la carte engendre un nombre unique NU, le stocke dans sa mémoire RAM et l'envoie au système hôte. c - la carte et le système hôte calculent au moyen dudit algo- rithme de cryptage (chiffrent), sous la même clé maître KAC de la carte, une valeur d'authentification VAE pour le système hôte et VAC pour la carte respectivement: VAE = ALGKAC(NU) VAC = ALGKAC(NU) d - le système hôte envoie la valeur d'authentification VAE à la carte, e - la carte compare les valeurs d'authentification VAE et VAC et valide pour la suite des opérations sa coopération avec le système hôte si et seulement si l'identité suivante est vérifiée à l'intérieur de la carte: VAE _ VAC Dans ce contexte de coopération carte-système hôte, l'authentification du système hôte par la carte permet de prouver que l'on possède la bonne clé sans risque de divulga- tion de la clé, ceci étant dû au fait que c'est la carte el- le-même qui effectue le calcul cryptographique VAC et non le lecteur, ce qui impliquerait, dans ce dernier cas, l'extrac- tion de la clé KAC en clair de la carte vers le lecteur et donc un risque de divulgation afférent. Une autre application préférée du procédé de géné- ration de nombre unique selon l'invention concerne la réhabi- litation de carte à microcircuit après plusieurs, notamment trois présentations consécutives fausses dudit code porteur CP, la carte étant connectée à un système hôte, situé à dis- tance, au moyen d'un lecteur, et ledit système hôte comportant une clé maître de la carte KEC, nécessaire à ladite réhabili- tation; cette application est caractérisée par les étapes suivantes: a - le lecteur envoie à la carte à microcircuit une instruc- tion de génération de nombre unique NU, b - le lecteur stocke le nombre unique NU en provenance de la carte, ainsi que les paramètres d'erreur (triple consécu- tive PE) et effectue la saisie du code porteur CP intro- duit par le porteur de la carte, c - le lecteur calcule un message de réhabilitation MR par ad- dition modulo 2: MR = CP, PE, PE JNU d - le lecteur envoie au système hôte le message de réhabili- tation MR accompagné d'une instruction de demande d'au- thentification du message MR, e - le système hôte chiffre sous la clé KEC le message MR: RES = ALGKEC(MR) et envoie le cryptogramme RES au lecteur, f - le lecteur transmet le cryptogramme RES à la carte, g - la carte exécute, sous la clé KEC, le chiffrement inverse du cryptogramme RES: ALG-1KEC(RES) = MR' h - la carte effectue l'addition modulo 2: MR' NU = CP', PE', PE" i - la carte annule le paramètre d'erreur PE si et seulement si les identités suivantes sont vérifiées à l'intérieur de la carte: CP' _ CP PE' - PE" _ PE La carte est ainsi rétablie dans un état actif après être restée bloquée suite à un nombre préétabli de pré- sentations consécutives fausses du code porteur, encore appelé code utilisateur, code confidentiel ou, en langue anglaise Personal Identification Number (PIN). Cette réhabilitation de la carte s'effectue à nouveau avec une parfaite confidentiali- té étant donné que le code porteur CP n'est pas transmis en ligne entre le lecteur et le système hôte, et que la clé mai- tre KEC n'est pas communiquée au lecteur. La description suivante, en regard des dessins an- nexés, le tout donné à titre d'exemple, fera bien comprendre comment l'invention peut être réalisée. La figure 1 représente une carte à microcircuit in- troduite dans un lecteur, le tout relié à un système hôte, se- lon l'invention. La figure 2 est le schéma d'un processus d'authen- tification entre une carte et un système hôte, selon l'inven- tion. La figure 3 est le schéma d'un processus de réhabi- litation de carte bloquée par un système hôte habilité, selon l'invention. Sur la figure 1 est représenté un support électro- nique amovible et portatif 1 appelé carte à microcircuit ou carte dans la suite du texte. Le microcircuit 2 de la carte présente une architecture connue pour l'essentiel. Cette ar- chitecture consiste en un microprocesseur 8 bits 3 qui peut incorporer une mémoire RAM 10, deux mémoires vives RAM montées en tampon 4 et 5, une mémoire de programme ROM 6 et une mémoi- re de données de type EPROM ou E2PROM 7. La mémoire RAM 4 est reliée au microprocesseur 3 par un bus d'adresses bidirection- nel 8 et la mémoire RAM 5 est reliée au microprocesseur par un bus de données bidirectionnel 9. Par ailleurs, chaque RAM 4,5 est reliée aux mémoires 6,7 chaque fois par un bus bidirec- tionnel (non référencés). La mémoire 7 est, d'un point de vue technologique, une EPROM mais qui, après inscription de cer- taines données comme notamment des clés, comme indiqué ci-des- sous, est agencée de façon à n'être ni effaçable ni réinscrip- tible, c'est-à-dire de façon à fonctionner comme une PROM dans le cas d'une EPROM. La carte 1 est représentée symboliquement introdui- te dans un lecteur 11. La carte possède 6 contacts qui, dans cette position d'introduction, coopérent avec 6 contacts homo- logues du lecteur et qui sont, en allant du bas vers le haut sur la figure, représentés d'une manière schématique sans res- pecter un ordre particulier: le contact d'entrée-sortie série I1/0O le contact de masse GND, l'alimentation du microcircuit VCC (5V), l'alimentation de programmation VPP, l'horloge CLK et la remise à zéro, RESET. Certains de ces 6 contacts sont reliés au microcircuit par l'intermédiaire de ports (non réfé- rencés). Au moyen d'une interface 12 et d'une liaison de com- munication, par exemple une ligne de transmission 13, le lec- teur communique à distance avec un système hôte 14 qui compor- te lui aussi une interface 15. La ligne de transmission 13 a été représentée symboliquement par deux fils, le fil 16 qui transmet de l'information du lecteur 11 vers le système hôte 14 et le fil 17 qui transmet l'information en sens inverse. La mémoire 7 incorpore des clés de présentation ou clés maîtres et des clés de calcul. Parmi les clés de présen- tation on distingue notamment une clé de fabrication PK intro- duite par le fabricant en phase de prépersonnalisation et que le fabricant est seul à connaître, et une clé émetteur MK in- troduite en phase de personnalisation par l'organisme émetteur de la carte, dit: l'émetteur, par exemple une banque, et que l'émetteur est seul à connaître. La clé PK protège la carte contre des personnalisations non autorisées; elle est générée à partir d'une carte lot du fabricant. Une autre clé de pré- sentation est le code porteur CP qui est relatif au détenteur de la carte. Ce code porteur doit rester confidentiel. La mémoire 7 comporte aussi un numéro de série NS qui a les propriétés d'être lisible sur la carte, donc non confidentiel, et propre à chaque carte. L'invention se propose d'engendrer de façon simple, au moyen d'un programme spécifique contenu dans la mémoire programme 6, un nombre pseudo-aléatoire dit nombre unique. Pour cela, trois moyens sont appliqués: le premier moyen con- siste à combiner en mémoire RAM 10 de la carte les deux clés PK et MK en effectuant entre elles une opération logique, de préférence l'addition bit à bit OU exclusif (addition modulo 2): PK MK = KMP (PK, MK et KMP comportant le même nombre de bits, par exemple 64). On obtient ainsi la clé KMP qui ne peut ni être ex- traite du microcircuit 2 ni être altérée par l'extérieur et n'est donc connue de personne. Selon le deuxième moyen, la clé KMP est combinée avec un message (nombre) ME engendré par la carte, dit message d'entrée, qui a la propriété principale d'être unique, en se modifiant à chaque utilisation spécifique, et qui ne peut ni être extrait du microcircuit 2 ni être altéré par l'exté- rieur. Cette combinaison consiste en le chiffrement par un al- gorithme réversible ALG, ALG-1, sous la clé KMP, du message ME: ALGKMp(ME) = NU NU: nombre unique (pseudo-aléatoire). De préférence, l'algorithme de cryptage réversible utilisé est le système de chiffrement à clé secrète bien con- nu, dit: Data Encryption Standard (DES, DES-1) dont une réfé- rence est déjà indiquée ci-dessus, ou Data Encryption Algorythm (DEA, DEA-1). Le troisième moyen utilisé pour le procédé de géné- ration du nombre unique NU consiste en l'étape préalable de génération du message d'entrée ME. Ce message ME doit posséder les propriétés suivantes: il doit être différent à chaque mi- se sous tension, être indépendant du moment de sa requête et être luimême un nombre unique, c'est-à-dire n'être utilisable qu'une fois, ne jamais se répéter. Parmi de nombreuses solu- tions qui sont à la portée de l'homme de l'art pour la généra- tion du nombre M selon les critères précités, on choisit de préférence la solution suivante qui implique la création d'un compteur RAM référencé 18 en trait interrompu dans la mémoire RAM 10 par exemple incorporée dans le microprocesseur 3 et dont l'état de chargement est désigné par CTRAM, et d'un comp- teur PROM 19 en trait interrompu dans la mémoire PROM 7 et dont l'état de chargement est désigné par CTROM: le message d'entrée ME est constitué de trois éléments juxtaposés, en al- lant des poids forts vers les poids faibles, qui sont: - Le numéro de série de la carte NS, unique en ce qu'il permet de différencier une carte de toutes les autres, et qui est introduit en phase de prépersonnalisation (par le fabri- cant). - CTRAM, incrémenté à chaque génération de nombre unique NU, le compteur RAM 18 étant initialisé à O O...0 à chaque mise sous tension de la carte ou à chaque remise à zéro (RESET). - CTROM, incrémenté après chaque mise sous tension ou remise à zéro (RESET) si le code confidentiel du porteur CP n'a pas été présenté ou si le compteur RAM 18 passe en débordement. Le message d'entrée ME se présente donc sous la forme: NS, CTRAM, CTROM L'incrémentation (de une ou plusieurs unités) du compteur RAM à chaque génération de nombre unique NU assure que le message d'entrée ME varie d'une utilisation spécifique de la carte à l'utilisation suivante, le microcircuit 2 étant supposé sous tension. Le but recherché étant que des séquences identiques de valeurs consécutives du nombre ME ne puissent se produire et étant donné que CTRAM reprend périodiquement la valeur zéro, l'incrémentation (de une ou plusieurs unités) du compteur PROM 19, notamment lors de la mise sous tension, per- met d'éviter cette répétition de séquences identiques indési- rable. Par ailleurs, des modes d'incrémentation spécifi- ques du compteur ROM sont prévus pour contrecarrer des agisse- ments frauduleux éventuels par un manipulateur de la carte non habilité. Il s'agit là de l'incrémentation du compteur PROM suite à un défaut de présentation du code porteur CP. De plus, si un fraudeur essaie d'épuiser les possibilités de comptage du compteur RAM en faisant engendrer systématiquement par la carte des nombres NU successifs sans débranchement ni remise à zéro du microcircuit, lorsque le compteur RAM 18 revient à zé- ro après débordement (overflow), suite à plusieurs dizaines de milliers d'essais, une séquence de nombre ME différente de celle correspondant aux premiers essais apparaît à cause de l'incrémentation du compteur PROM lors du passage en déborde- ment de la RAM. De cette manière, il est impossible pour qui- conque de prévoir et donc d'engendrer de l'extérieur du micro- circuit un nombre NU identique à un nombre NU déjà engendré par la carte, lors d'une utilisation spécifique de cette der- nière, ce qui empêche toute possibilité de fraude, pour celles parmi les applications qui sont nécessairement liées à la fourniture par la carte elle-même du nombre unique NU et à son utilisation ultérieure combinée à des opérations de chiffre- ment et de vérification d'identité(s) mathématique(s). Deux applications majeures du procédé de génération de nombre unique NU tel que décrit ci-dessus, sont à présent décrites en référence aux figures 2 et 3 sur lesquelles les flèches en trait interrompu indiquent des étapes optionnelles de la coopération entre la carte, CD, et le système hôte, HS, par l'intermédiaire du lecteur de carte, RD. Le procédé d'identification de la figure 2 résume la situation suivante: un lecteur dans lequel a été introdui- te une carte, vérifie en utilisant cette dernière, que le sys- tème hôte à distance est bien celui avec lequel la carte est censée être connectée. Sur la figure, la colonne entre traits interrompus verticaux, référencée 16, 17, symbolise la ligne de transmission 13 de la figure 1. D'une façon générale, connue, pour le type d'appli- cations envisagées ici, le système hôte est censé connaître ou reconnaître une clé maître de présentation de la carte, réfé- rencée KAC (respectivement KEC) au moyen de laquelle des chif- frements sont effectués dans la carte et dans le système hô- te (système hôte qui peut d'ailleurs posséder lui-même une carte pour effectuer lesdits chiffrements). De préférence, un chiffrement préalable de la clé KAC est effectué, toujours de façon connue, sous la forme d'un cryptogramme ID, dit code d'identification, pour éviter la transmission en ligne en clair de la clé KAC. Cette étape optionnelle est utilisée de * préférence en début de processus des figures 2 et 3. Pour l'authentification, figure 2, le lecteur en- voie, en 21, une instruction de lecture du code d'identifica- tion ID par la carte. Le code ID est transmis en 22 de la car- te au lecteur puis, en 23 du lecteur au système hôte. La flè- che 24 indique une instruction optionnelle de demande de nom- bre unique (pseudo-aléatoire) NU par le système hôte et la flèche 25, la même instruction relayée ou initiée par le lec- teur. La carte génère un nombre NU comme indiqué ci-dessus, nombre qu'elle conserve en mémoire RAM 10. En 26, le nombre NU est transmis au lecteur, puis, en 27, du lecteur au système hôte. En premier lieu, le système hôte calcule alors par chif- frement inverse de ID la clé maître de présentation KAC de la carte (à moins que selon une variante, elle lui ait été préa- lablement transmise par la carte et reconnue dans une table interne au système hôte): KAC = DES-1KA (ID) KA La clé KA étant une clé d'application, utilisée no- tamment dans un contexte (environnement) M.A.C. décrit dans le document ANSI X9.9 publié par l'American Bankers Association et qui implique l'usage de l'algorithme DES plusieurs fois en cascade dans le cas de messages comportant plus de 64 bits. Puis le système hôte calcule une valeur d'authentification sous la forme du cryptogramme VAE: VAE = DESKAC(NU) En 28, VAE est transmis au lecteur et mémorisée par celui-ci pour une opération ultérieure. En 29, le lecteur en- voie à la carte une instruction de calcul de valeur d'authen- tification VAC. La carte effectue alors un cryptage (chiffre- ment) analogue à celui effectué pour VAE dans le système hâte. VAC = DESKAC(NU) On notera que, dans ce mode de fonctionnement, la valeur d'authentification VAC ne peut pas être extraite de la carte. En 32, le lecteur envoie une instruction de compa- raison entre VAC et VAE qu'il transmettra en même temps, en 31 (VAE ayant été mémorisée par le lecteur à l'étape 28). La car- te effectue cette comparaison: VAE - VAC Dans le cas de l'identité (Y) la carte valide la suite des opérations prévues pour l'application envisagée en- tre la carte et le système hôte. Si non (N) la carte signale son désaccord pour la suite des opérations. Dans cette appli- cation d'authentification entre une carte à microcircuit et un système hôte, le nombre pseudo-aléatoire NU engendré par la carte a pour fonction principale d'éviter le réemploi (le re- jeu) de la valeur d'authentification VAE ou VAC. Le principe de réhabilitation à distance représenté à la figure 3 sous la forme schématique d'échanges entre qua- tre intervenants, les mêmes qu'à la figure 2, à savoir HD, RD, CD et le porteur de la carte, consiste à remettre dans un état actif une carte en étatbloqué, suite à trois présentations consécutives de code confidentiel porteur CP faux, ce qui est supposé être le cas d'une manipulation de la carte par une personne non habilitée ou résulter de plusieurs essais erronés du porteur lui-même. On suppose à titre d'exemple dans ce qui -,., suit, que la mémoire ROM 7 comporte entre autres une zone de contrôle connue, présentant plusieurs lignes de bits vierges (à l'état 1) dans laquelle une inscription est effectuée cha- que fois que le code porteur de la carte CP a été présenté. Une présentation correcte de CP se traduit par un bit fondu (passage irréversible de l'état 1 à l'état 0), de la gauche vers la droite dans la ligne et du haut vers le bas des li- gnes. Une présentation fausse se traduit par un bit non fondu, dit bit B (état 1), avec autorisation de fondre le bit suivant pour les deux presentations consécutives suivantes soit par exemple, successivement: 1 erreur 0 0 0 0 1 0 1 1 1 1 2erreurs 0 0 0 1 0 0 1 1 1 1 présentation bonne 0 0 0 0 0 0 1 1 1 1 erreur 0 0 0 0 0 1 0 1 1 2erreurs 0 0 0 0 0 1 0 0 1 1 1 3 erreurs (blocage) 0 0 0 0 0 1 0 0 0 1 1 1 B Le programme en mémoire 6 est conçu pour reconnai- tre la configuration fautive 1000 dans cette zone et bloquer en conséquence la carte. L'adresse du bit B à l'état 1, qui est désignée sous le vocable de: paramètre en erreur PE, re- père le bit B par son numéro de ligne et par son rang dans la ligne, l'adresse PE étant conservée en mémoire RAM 10. Dans l'application de la figure 3, la carte CD est connectée à un système hôte HS situé à distance par l'intermédiaire du lec- teur RD. Cette connection est obligatoire car le système hôte possède la clé maître KEC nécessaire à la réhabilitation de la carte, c'est-à-dire son déblocage, obtenue par la fonte auto- risée du bit B. De préférence, comme dans l'application de la figure 2, la clé KEC n'est pas transmise en clair et les pre- miers échanges s'effectuent sensiblement comme dans cette pre- mière application. Les échanges sont les suivants: Le système hôte HS envoie, en 35, une instruction de lecture du code d'identification ID au lecteur RD et cette instruction est relayée en 36 du lecteur à la carte CD. Le co- de ID est transmis en 37 de CD à RD puis, en 38, de RD à HS. Le système hôte calcule la clé KEC sous forme d'un cryptogram- me: KEC=DESK1 (ID) K K étant une clé maître et KEC une clé dérivée de cette premiè- re, qui est contenue dans la carte et vue comme clé maître pour l'application considérée. En 39, RD envoie une instruc- tion de demande de paramètre en erreur PE à la carte. CD transmet PE à RD en 42. La flèche 44 indique une instruction de demande de nombre unique (pseudo-aléatoire) NU de RD à CD, ce nombre NU est calculé par la carte, conservé en mémoire RAM et aussi transmis, en 45, à RD. Le lecteur RD invite le por- teur à présenter (ou introduire) son code porteur en 43 et ef- fectue, par addition modulo 2 bit à bit, le calcul d'un messa- ge de réhabilitation MR: MR=CP, PE, PE + NU Puis RD envoie au système hôte HS le message MR (flèche 46), accompagné d'une instruction de demande d'authen- tification de ce message. HS chiffre MR sous la clé KEC: RES=DESKEc(MR) et envoie, en 47, le cryptogramme résultant RES à RD qui, à son tour, le transmet à CD (en 48). Finalement, la carte exé- cute successivement trois calculs. Le premier calcul est le chiffrement inverse, sous la clé KEC, du cryptogramme RES: DESKEC(RES)= MR' KEC( puis le cryptogramme obtenu MR' est combiné avec NU par addi- tion modulo 2: MR'+ NU = CP', PE', PE" On utilise ici la propriété de l'addition modulo 2 de donner comme résultat un premier opérande après que ce der- nier a été additionné modulo 2 deux fois successivement avec un deuxième opérande. Le troisième et dernier calcul consiste à effectuer la comparaison entre PE', PE" et PE d'une part, d'autre part à vérifier que CP' est bien identique au code porteur CP stocké dans la carte, soit: CP' CP PE' E PE" PE' _ PE Au cas o les trois identités existent (Y,Y), le bit B à l'adresse PE est fondu et la carte ainsi réhabilitée. Si par contre l'une au moins des identités n'existe pas (N,N), le bit B reste à la valeur 1 et la carte à l'état de blocage. Des problèmes de formatage de nombres peuvent se poser pour les calculs décrits ci-dessus. Par exemple, l'algo- rithme DES nécessite des clés de 64 bits; en conséquence, les données à crypter (chiffrer) doivent avoir une longueur de 64 bits. Si la donnée à chiffrer a une taille inférieure à 64 bits il faut la combler avec des "O" ou des "1" pour la ra- mener à 64 bits. Lorsque la carte a, dans la deuxième application, déchiffré le message RES en effectuant: -1 DESKEC (RES) = MR' puis combiné le cryptogramme résultant avec NU par addition modulo 2, elle obtient: CP', PE', PE". Si la carte vérifie une redondance sur PE', c'est- à-dire que PE' = PE", elle aura alors la certitude que le sys- tème hôte est bien authentique car il possédait la bonne clé pour chiffrer le message. Ainsi, la redondance permet de véri- fier dans ce cas l'authenticité de l'émetteur. Revendications: 1. Procédé de génération de nombre unique (NU), pseu- do-aléatoire, chaque nombre NU étant destiné à individualiser, lors d'une utilisation spécifique d'une carte à microcircuit, la coopération, par l'intermédiaire de ladite carte, avec un système hôte, ladite carte comportant une mémoire vive RAM, et une mémoire morte PROM incorporant une clé de fabrication (PK), une clé émetteur (MK), un code porteur (CP) et un numéro de série (NS), caractérisé en ce que ledit nombre NU est en- gendré et stocké en mémoire RAM dans ladite carte après exécu- tion successive des étapes suivantes d'un programme spécifique de la carte: a - une opération logique, notamment l'addition modulo 2 des clés PK et MK et le stockage en mémoire RAM du résultat de l'addition, KMP: PK MK = KMP b - le chiffrement en ledit nombre unique NU d'un message d'entrée ME, unique, engendré par la carte, qui se modifie à chaque utilisation spécifique, au moyen d'un algorithme réversible (ALG, ALG-1) sous la clé KMP: NU = ALGKMP(ME) 2. Procédé de génération de nombre unique NU selon la revendication 1, caractérisé en ce que ledit algorithme de cryptage réversible est le système de chiffrement à clé secrè- te dit: Data Encryption Standard (DES, DES-1). 3. Procédé de génération de nombre unique NU selon la revendication 1 ou 2, caractérisé en ce que ladite carte com- porte en outre un compteur RAM contenant le nombre CTRAM, un compteur PROM contenant le nombre CTROM et que ledit message d'entrée ME est constitué par la juxtaposition des trois nom- bres: NS, CTRAM, CTROM, ledit compteur RAM étant initialisé à 00...0 à chaque mise sous tension de la carte et incrémenté à chaque génération de nombre unique NU, et le compteur ROM étant incrémenté lors d'une utilisation spécifique après cha- que mise sous tension ou remise à zéro de la carte (RESET) si le code porteur CP n'a pas été présenté ou si le compteur RAM passe en débordement. 4. Application du procédé de génération de nombre uni- que NU selon l'une des revendications 1 à 3 à l'authentifica- tion d'un système hôte coopérant, par l'intermédiaire d'un lecteur, avec une carte à microcircuit, caractérisée par les étapes suivantes en utilisant le principe du M.A.C.: a - le système hôte envoie à la carte à microcircuit une ins- truction de génération de nombre unique NU, b - la carte engendre un nombre unique NU, le stocke dans sa mémoire RAM et l'envoie au système hôte. c - la carte et le système hôte calculent au moyen dudit algo- rithme de cryptage (chiffrent), sous la même clé maître KAC de la carte, une valeur d'authentification VAE pour le système hôte et VAC pour la carte respectivement: VAE = ALGKAC(NU) VAC = ALGKAC(NU) d - le système hôte envoie la valeur d'authentification VAE à la carte, e - la carte compare les valeurs d'authentification VAE et VAC et valide pour la suite des opérations sa coopération avec le système hôte si et seulement si l'identité suivante est vérifiée à l'intérieur de la carte: VAE E VAC 5. Application du procédé de génération de nombre uni- que NU selon l'une des revendications 1 à 3 à la réhabilita- tion de carte à microcircuit après plusieurs, notamment trois présentations consécutives fausses dudit code porteur CP, la carte étant connectée à un système hôte, situé à distance, au moyen d'un lecteur, et ledit système hôte comportant une clé maître de la carte KEC, nécessaire à ladite réhabilitation; cette application est caractérisée par les étapes suivantes: a - le lecteur envoie à la carte à microcircuit une instruc- tion de génération de nombre unique NU, b - le lecteur stocke le nombre unique NU en provenance de la carte, ainsi que les paramètres d'erreurs et effectue la saisie du code porteur CP introduit par le porteur de la carte, c - le lecteur calcule un message de réhabilitation MR par ad- dition modulo 2: MR = CP, PE, PE NU d - le lecteur envoie au système hôte le message de réhabili- tation MR accompagné d'une instruction de demande d'au- thentification du message MR, e - le système hôte chiffre sous la clé KEC le message MR: RES = ALGKEC(MR) et envoie le cryptogramme RES au lecteur, f - le lecteur transmet le cryptogramme RES à la carte, g - la carte exécute, sous la clé KEC, le chiffrement inverse du cryptogramme RES: ALG-1KEC(RES) = MR' h - la carte effectue l'addition modulo 2: MR'ONU = CP', PE', PE" i - la carte annule le paramètre d'erreur PE si et seulement si les identités suivantes sont vérifiées à l'intérieur de la carte: CP' - CP PE' - PE" PE' - PE..