Brevet FR2612315A1 — publié le 19880916

-- 1 -- PROCEDE POUR SIMULTANEMENT LIRE A DISTANCE ET CERTIFIER UNE INFORMATION PRESENTE DANS UNE MEMOIRE D'UN SUPPORT ELECTRONIQUE". La présente invention a pour objet un procédé pour simultanément lire et certifier, à partir d'un appareil de traitement, une information présente à une adresse dans une mémoire d'un support électronique notamment amovible et portatif tel qu'une carte à mémoire, aussi appelée carte à micro-processeur ou carte à puce. L'invention se situe dans le domaine du contrôle de la véracité des informations enregistrées dans une telle mémoire dans le but d'empêcher un fraudeur d'intervenir trompeusement dans l'échange d'informations entre la dite carte à mémoire et un appareil de trait ment permettant de traiter cette carte soit localement soit à distance. On sait que pour chaque application envisagée, des échanges d'information s'effectuent entre la carte et l'appareil de traitement pour habiliter des personnes à effectuer des opérations protégées. La plupart des applications ont besoin, à un moment quelconque, de lire et/ou d'écrire de l'information dans la mémoire de la carte, par exemple pour garder une trace de l'opération effectuée; il est dès lors primordial de pouvoir vérifier avec certitude l'existence de l'information présente dans la mémoire de la carte; pour faciliter ce contrôle, il est connu que l'appareil de traitement sache à quelle adresse, dans la mémoire de la carte, se situe la dite information. Dans le brevet EP O 096 599 il est nécessaire que l'appareil de traitement sache par avance le contenu de l'information à vérifier; ainsi l'objet du contrôle est de vérifier la conformité de l'information. Cette connaissance préalable du contenu de l'information est un inconvénient lorsque l'appareil de traitement ne connait pas l'information à lire, ce qui est - 2 - notamment le cas lorsqu'il n'est pas celui qui a provoqué l'écriture de la dite information. La présente invention a pour but de supprimer cet inconvénient. A cet effet un procédé pour, simultanément, lire et certifier l'information s'effectue par l'exécution successive des étapes suivantes: 1. Un générateur de nombre aléatoire prévu dans l'appareil de traitement délivre un nombre aléatoire X, 2. Un algorithme réversible E prévu dans l'appareil de traitement chiffre le nombre aléatoire X avec la clé secrète SK propre à la carte à traiter d'o la valeur Xc, 3. La valeur Xc est transmise à la carte ainsi que l'adresse Q à partir de laquelle on veut lire, 4. Le même algorithme réversible E, prévu dans la carte, déchiffre, avec la même clé secrète SK, la valeur Xc, d'o la valeur X, 5. La carte utilise l'adresse @ pour lire l'information INF, 6. La carte chiffre au moyen de la clé X, l'adresse @ et l'information INF, d'o un résultat R, 7. Le résultat R est transmis à l'appareil de traitement, 8. L'appareil de traitement déchiffre le résultat R puis compare l'adresse ainsi déchiffrée avec la dite adresse @, de sorte que, en cas d'égalité des adresses, l'information INF reçue et déchiffrée par l'appareil de traitement est certifiée. Dans le cadre de la présente invention, il est clair que l'appareil de traitement peut indifféremment être situé en local, par exemple un terminal point de vente un lecteur de carte..., ou bien être situé à distance, par exemple un ordinateur central relié au(x) lecteur(s) de carte par un réseau de communication. La lecture d'information, objet de la présente invention, se situe, dans le temps, après une phase préalable de reconnaissance mutuelle entre la carte et l'appareil de traitement; cette phase préalable s'effectue généralement immédiatement après l'introduction physique de la carte dans -3- le lecteur de carte, et elle a notamment pour but de transférer à l'appareil de traitement l'identification de la carte; c'est à partir de cet identificateur que l'appareil de traitement est capable de connaître, par exemple au moyen d'une table interne, la clé secrète SK propre à la carte. La présente invention sera mieux comprise à l'aide d'un exemple, non limitatif, de réalisation décrite avec les dessins suivants: La figure 1 représente succinctement un appareil de traitement connecté à une carte à mémoire. La figure 2 retrace schématiquement les étapes du procédé objet de l'invention. Sur la figure 1 sont représentés une carte C connectée à un appareil de traitement AP au moyen d'un dispositif de connexion temporaire CXT. La connexion temporaire met en communication l'unité de traitement de l'appareil UAP et l'unité de traitement de la carte UC; d'une manière connue, le dispositif de connexion est conçu au moins pour transmettre une tension d'alimentation aux circuits électroniques de la carte et pour transmettre des informations entre les deux unités de traitement au moyen, par exemple, d'une ligne de communication série. Dans la carte C un bus BC est représenté; il met en communication l'unité de traitement UC avec une mémoire de programme PGC, par exemple une ROM, et avec une mémoire de données MDC, par exemple une EPRON; la donnée INF à lire à l'adresse @ se trouve dans la mémoire de donnée MDC; cette architecture montre que la donnée INF n'est pas accessible directement par l'appareil de traitement AP: ce dernier doit transmettre une demande de lecture à l'unité de traitement de la carte UC. Dans l'appareil de traitement un bus BAP est représenté; il met en communication l'unité de traitement UAP avec une mémoire de programme PGAP, par exemple une ROM, et -4- avec une mémoire de données MDAP, par exemple une EPROM. Au moment de la connexion de la carte C avec l'appareil de traitement AP, une procédure de reconnaissance mutuelle est effectuée; c'est une procédure connue de laquelle il résulte que, au moins une clé secrète propre à chaque carte est maintenant aussi disponible dans l'appareil de traitement; par exemple, la clé secrète SK est alors mémorisée d'une part dans la mémoire de donnée de la carte MDC d'autre part dans la mémoire de donnée de l'appareil MDAP. En cours de dialogue, il convient de se prémunir contre toute tentative de fraude laquelle consisterait, par exemple, à transmettre de fausses informations avec une ligne de dérivation connectée abusivement sur les moyens de connexions. Ainsi lors d'une demande de lecture d'une information INF formulée par l'appareil de traitement, une procédure de contrôle doit être prévue. Selon la présente invention la lecture et la procédure de contrôle s'effectuent simultanément au sein d'un même procédé; ce procédé utilise un nombre aléatoire généré par un générateur GEN situé dans l'appareil de traitement AP; ce procédé utilise aussi un algorithme réversible E de chiffrement (déchiffrement) mémorisé d'une part dans la mémoire de programme PGAP de l'appareil de traitement, et d'autre part dans la mémoire du programme PGC de la carte. Dans la suite du texte, la notation suivante est adoptée: Dc = Ek(D) ou D = Ek -l(Dc) sa signification est: La donnée en clair D est chiffrée par l'algorithme E et la clé K pour fournir la donnée chiffrée Dc; inversement la donnée chiffrée Dc est déchiffrée par l'algorithme E-1 et la clé K pour fournir la donnée en clair D. Les étapes successives du procédé sont représentées sur la figure 2 dans laquelle les étapes situées à gauche sont - 5 - effectuées dans l'appareil de traitement, les étapes situées à droite sont effectuées dans la carte; chaque flèche horizontale représente une transmission entre l'appareil de traitement et la carte. La première étape consiste à mettre en oeuvre le générateur de nombre aléatoire GEN lequel fournit un nombre X lequel est chiffré avec la clé secrète propre à la carte d'o Xc = ESK(X) La donnée Xc est transmise avec l'adresse de lecture @ à la carte. Dans la carte la donnée Xc est déchiffrée (EsK-1) pour fournir X, et l'adresse @ est utilisée pour lire l'information cherchée INF. Maintenant l'ensemble constitué par l'information INF et l'adresse @ est chiffré avec le même algorithme E mais, cette fois-ci, avec la clé X d'o le l sultat R R = EX (INF, @) Le résultat R est transmis à l'appareil de traitement dans lequel R est déchiffré ce qui fournit INF' et @: INF', @' = Ex-l(R) Si tout c'est déroulé normalement, il est clair que @ doit être égal à @', et, dans ce cas, il est certain que INF' = INF c'est à dire que l'information lue est certifiée comme étant bien celle qui figure dans la carte à l'adresse @. Le procédé présente l'avantage qu'il n'y a pratiquement aucune chance pour que le contenu des messages transmis soit deux fois le même; ceci complique la tâche d'un fraudeur qui observe les signaux au niveau des moyens de connexion (CXT). Dans une forme préférentielle de réalisation, l'algorithme de chiffrement (déchiffrement) est l'algorithme connu sous le nom de Data Encryption Standard ou DES. - 6 - REVENDICATIONS: 1. Procédé pour, simultanément, lire et certifier, à partir d'un appareil de traitement, une information présente à une adresse dans une mémoire d'un support électronique notamment amovible et portatif tel qu'une carte, caractérisé par l'exécution successive des étapes suivantes: 1. Un générateur de nombre aléatoire prévu dans l'appareil de traitement délivre un nombre aléatoire X, 2. Un algorithme réversible E prévu dans l'appareil de traitement chiffre le nombre aléatoire X avec la clé secrète SK propre à la carte à traiter d'o la valeur Xc, 3. La valeur Xc est transmise à la carte ainsi que l'adresse @ à partir de laquelle on veut lire, 4. Le même algorithme réversible E, prévu dans la carte, déchiffre, avec la même clé secrète SK, la valeur Xc, d'o la valeur X, 5. La carte utilise l'adresse @ pour lire l'information INF, 6. La carte chiffre au moyen de la clé X, l'adresse @ et l'information INF, d'o un résultat R, 7. Le résultat R est transmis à l'appareil de traitement, 8. L'appareil de traitement déchiffre le résultat R puis compare l'adresse ainsi déchiffrée avec la dite adresse 6, de sorte que, en cas d'égalité des adresses, l'information INF reçue et déchiffrée par l'appareil de traitement est certifiée. 2. Procédé selon la revendication 1, caractérisé en ce que l'algorithme E de chiffrement déchiffrement est le DES, Data Encryption Standard.