Brevet FR2760583A1 — publié le 19980911

La présente invention concerne des procédés et un appareil de transfert et d'authentification de données dans un système de transactions électroniques et, plus particulièrement, des systèmes de transactions électroniques qui utilisent des cartes intelligentes. Il est maintenant largement accepté d'effectuer électroniquement des transactions comme des transactions financières ou des échanges de documents. Des machines automatisées de guichets ou ATM selon les initiales du terme anglo-saxon Automated teller machines, et des cartes de crédit sont largement utilisées pour des transactions personnelles et le besoin de vérifier ces transactions augmente au fur et à mesure que leur utilisation se développe. Une carte intelligente est quelque peu semblable à une carte de crédit et inclut certaines capacités de traitement et de mémoire. Des cartes intelligentes tendent à être utilisées de façon frauduleuse, par exemple par un terminal factice qui est utilisé pour glaner des informations d'un utilisateur qui ne le suspecte pas. Ainsi, avant que tout échange d'informations critiques ne s'effectue entre un terminal et une carte intelligente ou vice versa, il faut vérifier l'authenticité du terminal ainsi que celle de la carte. L'une de ces vérifications peut prendre la forme d'une "signature" numérique de transactions initiales afin que l'authenticité de la transaction puisse être vérifiée par les deux parties impliquées dans la session ultérieure. La signature est effectuée selon un protocole qui utilise un message aléatoire, c'est-à- dire la transaction et une clé secrète associée à la partie signataire. La signature doit être effectuée d'une manière telle que la clé secrète de la partie signataire ne puisse pas être déterminée. Afin d'éviter la complexité associée à une distribution de clés secrètes, il est commode d'utiliser pour la génération de la signature une méthode de chiffrage à clés publiques. De telles capacités sont disponibles lorsque la transaction est effectuée entre des parties qui peuvent accéder à des ressources de calcul relativement importantes, mais il est tout aussi important de faciliter de telles transactions à un niveau individuel o des ressources de calcul plus limitées sont disponibles, comme dans la carte intelligente. On dispose maintenant de cartes de transactions, ou cartes intelligentes, à capacités limitées de calcul, mais ces dernières ne sont pas suffisantes pour mettre en oeuvre, d'une manière commercialement viable, des protocoles existants de signatures numériques. Comme noté ci-dessus, il faut utiliser une méthode de chiffrage à clés publiques pour engendrer une signature de vérification. La plupart des méthodes à clés publiques sont actuellement basées sur la méthode RSA, mais la méthode DSS et les exigences d'un système plus compact sont en train de modifier ceci rapidement. La méthode DSS, qui est une mise en oeuvre d'un protocole à clés publiques de Diffie-Hellman, utilise l'ensemble des entiers Z o p est un grand nombre premier. Pour atteindre une sécurité appropriée, p doit être de l'ordre de 512 bits, bien que la signature résultante puisse être réduite mod q, o q divise p - 1, et puisse être de l'ordre de 160 bits. Une variante de méthode de chiffrage, qui a été l'un des premiers algorithmes à clés publiques totalement développés et qui fonctionne aussi bien pour un chiffrage que pour des signatures numériques, est appelé l'algorithme RSA. La sécurité de l'algorithme RSA résulte de la difficulté de mettre des grands nombres en facteurs. Les clés publiques et privées sont des fonctions d'une paire de grands nombres premiers à 100 à 200 chiffres ou même davantage. La clé publique de chiffrage de RSA est n, le produit des deux nombres premiers p et q o p et q doivent rester secrets et e qui est premier par rapport à (p - 1) x (q - 1). La clé de chiffrage d est égale à e-1 (mod (p - 1) x (q - 1)). On notera que d et n sont premiers entre eux. Pour chiffrer un message m, on le divise d'abord en un certain nombre de blocs numériques tels que chaque bloc numérique soit une représentation unique modulo n, le bloc ci de message chiffré étant alors simplement mie (mod n). Pour déchiffrer un message, on prend chaque bloc chiffré ci et on calcule mi = cid (mod n). Une autre méthode de chiffrage qui apporte une sécurité accrue à module relativement petit est celle qui utilise des courbes elliptiques dans le champ fini 2m. Une valeur de m de l'ordre de 155 offre une sécurité comparable à un module DSS à 512 bits et offre donc des avantages significatifs de mise en oeuvre. Le chiffrage à clés publiques de DiffieHellman utilise les propriétés de logarithmes discrets selon laquelle la valeur de k ne peut pas être déterminée, même si un générateur 13 et la valeur élevée à la puissance Bk sont connus. I1 existe pour les courbes elliptiques une propriété similaire selon laquelle l'addition de deux points sur une courbe quelconque produit un troisième point sur la courbe. De même, la multiplication d'un point P sur la courbe par un entier k produit un autre point de la courbe. Pour une courbe elliptique, le point kP est simplement obtenu en ajoutant ente eux k exemplaires du point P. Cependant, la connaissance du point initial et du point final ne révèle pas la valeur de l'entier k qui peut ensuite être utilisé comme clé de session pour chiffrage. La valeur kP, o P est un point initial connu, est donc équivalente à l'élévation à la puissance Bk. En outre, des segments de chiffrage à courbes elliptiques offrent des avantages par rapport à d'autres systèmes de chiffrage lorsqu'une efficacité de largeur de bande, un calcul réduit et un espace minimisé de code sont des buts de l'application. En outre, dans le contexte d'une transaction entre une carte intelligente et une machine automatique de guichet, il existe deux étapes majeures impliquées dans l'authentification des deux parties. La première est l'authentification du terminal par la carte intelligente, et la deuxième est l'authentification de la carte intelligente par le terminal. Cette authentification implique généralement la vérification d'un certificat engendré par le terminal et reçu par la carte intelligente et la vérification d'un certificat signé par la carte intelligente et vérifié par le terminal. Dès lors que les certificats ont été vérifiés positivement, la transaction entre la carte intelligente et le terminal peut continuer. Compte tenu des capacités limitées de traitement de la carte intelligente, les traitements de vérifications et de signature effectués sur la carte intelligente sont généralement limités à de simples algorithmes de chiffrage. Un algorithme plus sophistiqué de chiffrage dépasse généralement le cadre des capacités de traitement contenues à l'intérieur de la carte intelligente. C'est donc le but de la présente invention de répondre à ce besoin d'un procédé de vérification et de génération de signatures qui puisse être mis en oeuvre sur une carte intelligente et qui soit relativement sûr, ou en d'autres termes, sécurisé. Selon un premier aspect, la présente invention atteint ce but en fournissant un procédé de vérification d'une paire de correspondants dans une transaction électronique, lesdits correspondants incluant chacun une première et une deuxième méthodes de signature, caractérisé en ce qu'il comprend les étapes suivantes: 1) ledit premier correspondant signe une information conformément à ladite première méthode de signature et transmet ladite première signature audit deuxième correspondant; 2) ledit deuxième correspondant vérifie ladite première signature reçue dudit premier correspondant, ladite vérification étant effectuée conformément à ladite première méthode de signature; 3) ledit deuxième correspondant signe une information conformément à une deuxième méthode de signature et transmet ladite deuxième signature audit premier correspondant; 4) ledit premier correspondant vérifie ladite deuxième signature reçue dudit deuxième correspondant, ladite vérification étant effectuée conformément à ladite deuxième méthode de signature; et ) la transaction est rejetée si l'une ou l'autre des vérifications n'est pas satisfaisante. De préférence, les calculs sont plus difficiles, dans la première méthode de signature, pour la signature que pour la vérification, tandis que les calculs sont plus difficiles, dans la deuxième méthode de signature, pour la vérification que pour la signature, ce qui permet à l'un des correspondants de participer au moyen d'une puissance de calcul relativement faible tout en maintenant la sécurité de ladite transaction. On peut prévoir que ladite première méthode de signature numérique est une méthode du type RSA et ladite deuxième méthode de signature est une méthode du type à courbe elliptique, ou encore, en variante, que ladite première méthode de signature numérique est une méthode du type DSS et ladite deuxième méthode de signature est une méthode du type à courbe elliptique. Selon un deuxième aspect, l'invention fournit in procédé de vérification d'une paire de correspondants dans une transaction électronique, lesdits correspondants incluant chacun une première et une deuxième méthodes de signature, caractérisé en ce qu'il comprend les étapes suivantes: 1) ledit premier correspondant transmet audit deuxième correspondant un certificat incluant une clé publique et une information d'identification dudit premier correspondant; 2) ledit deuxième correspondant vérifie ledit certificat et en extrait ladite clé publique et ladite information d'identification; 3) ledit deuxième correspondant engendre une première interrogation R1 et transmet ladite interrogation audit premier correspondant; 4) ledit premier correspondant signe ladite interrogation reçue R1 conformément à ladite première méthode de signature; ) ledit premier correspondant engendre une deuxième interrogation et transmet audit deuxième correspondant ladite deuxième interrogation accompagnée de ladite signature C2; 6) ledit deuxième correspondant vérifie ladite signature C2 conformément à ladite première méthode de signature; 7) ledit deuxième correspondant signe ladite deuxième interrogation R2 conformément à ladite deuxième méthode de signature et transmet ladite deuxième signature audit premier correspondant; 8) ledit premier correspondant vérifie ladite deuxième signature conformément à ladite deuxième méthode de signature, et 9) ladite transaction est rejetée si, soit ladite première signature, soit ladite deuxième signature n'est pas vérifiée. Selon un troisième aspect, l'invention réalise une carte intelligente à utiliser dans une transaction électronique avec un deuxième correspondant, caractérisée en ce qu'elle comprend une mémoire incluant une première méthode de signature consistant en un premier algorithme de génération de signature et un algorithme associé de vérification; une deuxième méthode de signature consistant en un deuxième algorithme de génération de signature et un algorithme associé de vérification; un programme d'appel desdits algorithmes; et un moyen processeur qui met en oeuvre le premier algorithme de vérification pour vérifier ladite première information reçue dudit deuxième correspondant et met en oeuvre ledit deuxième algorithme de signature pour signer une deuxième information en vue de sa transmission audit deuxième correspondant. Les buts, particularités et avantages de la présente invention exposés ci-dessus, ainsi que d'autres, ressortiront davantage de la lecture de la description qui suit, en se référant aux dessins annexes dans lesquels: la Figure la est une représentation schématique d'une carte intelligente et d'un terminal; la Figure lb est un schéma logique du déroulement des événements pendant le processus de vérification dans le système de transactions à carte intelligente; et la Figure 2 est une représentation détaillée d'un protocole spécifique. En se référant à la Figure l(a), un terminal 100 est apte à recevoir une carte intelligente 102. Typiquement, une insertion de la carte 102 dans le terminal lance une transaction. Une authentification mutuelle entre le terminal et la carte est ensuite effectuée comme représenté à la Figure lb. En termes très généraux, cette authentification mutuelle est effectuée selon un protocole "interrogation-réponse". Généralement, une carte transmet au terminal une information, le terminal 100 signe l'information au moyen d'un algorithme 112 à base de RSA, et ceci est envoyé à la carte 102, qui vérifie l'information au moyen d'un algorithme 114 à base de RSA. L'échange 116 d'information entre la carte et le terminal inclut également le fait que l'information engendrée par la carte et envoyée au terminal, pour être signée par le terminal au moyen d'un algorithme RSA, est renvoyée par celui-ci à la carte pour être vérifiée en utilisant un algorithme RSA. Dès lors que la vérification appropriée a été effectuée en 118, une autre étape est mise en oeuvre dans laquelle l'information est signée en 120 par la carte en utilisant un protocole de chiffrage à courbe elliptique, ou ECC, selon les initiales du terme anglo-saxon et est soumise au terminal pour être vérifiée en 124 par le terminal en utilisant un protocole à base de courbe elliptique. De même, l'échange 122 d'information entre la carte et le terminal peut inclure le fait que l'information engendrée par le terminal et envoyée à la carte, pour être signée par la carte, est renvoyée au terminal pour vérification. Dès lors que l'information appropriée a été vérifiée en 126, les transactions ultérieures entre le terminal et la carte peuvent être effectuées en 128. En se référant maintenant à la Figure 2, une mise en oeuvre détaillée de l'authentification mutuelle du terminal et de la carte, selon le protocole "interrogation-réponse" y est désigné généralement par la référence numérique 200. Le terminal 100 est vérifié en premier lieu par la carte 102 et la carte est ensuite vérifiée par le terminal. Le terminal envoie en premier lieu à la carte un certificat C1 désigné par 20 qui contient son identification ou ID, TID, et une information publique incluant la clé publique. Le certificat 20 peut également être signé par une autorité de certification, ou CA selon les initiales du terme anglo-saxon Certifying authority, afin que la carte puisse vérifier l'association de l'identification TID du terminal avec la clé publique reçue du terminal. Les clés utilisées par le terminal et par l'autorité de certification dans ce mode de réalisation peuvent être toutes deux basées sur l'algorithme RSA. Dans le cas de l'algorithme RSA, chaque partie ou participant possède une clé publique et une clé privée, et chaque clé comprend deux éléments. La signature est de la forme: S = md (mod n) ou: m est le message à signer, n est une clé publique et est le module, et est le produit de deux nombres premiers p et q; e est la clé de chiffrage, choisie de manière aléatoire, qui est elle aussi publique et est un nombre choisi pour être premier par rapport à (p - 1) x (q - 1); et d est la clé privée qui est congruente à e-1 (mod (p - 1 x (q - 1)). Pour l'algorithme RSA, la paire d'entiers (n, e) constitue l'information de clé publique qui est utilisée pour la signature. D'autre part, la paire d'entiers (d, n) peut être utilisée pour déchiffrer un message qui a été chiffré au moyen de la formation de clé publique (n, e). En revenant à la Figure 2, les nombres n et e sont les clés publiques de l'autorité de certification et peuvent être fixés comme paramètres du système. La clé publique e peut, soit être mémorisée dans la carte intelligente, soit en variante être câblée physiquement dans un circuit logique de la carte. En outre, choisir e pour qu'il soit relativement petit assure que l'élévation à la puissance peut être effectuée de façon relativement rapide. Le certificat C1 désigné par 20 est signé par l'autorité de certification, et ses paramètres sont (n, e). Le certificat contient l'identification Tid du terminal et l'information de clé publique Tn et Te qui est basée sur l'algorithme RSA. Le certificat C1 est vérifié en 24 en amenant la carte à extraire TID, Tnt Te, Cette information est extraite simplement en réalisant Cle mod n. La carte authentifie ensuite le terminal en engendrant en 26 un nombre aléatoire Ri qui est transmis au terminal. Le terminal signe le message Ri en utilisant sa clé secrète Td en effectuant RlTd mod Tn pour engendrer en 28 la valeur C2. Ici aussi, la clé utilisée par le terminal est une clé RSA qui a été créée à l'origine d'une manière telle que la clé publique Tc consiste en un paramètre petit, éventuellement valable dans tout le système, d'une valeur de 3 tandis que l'autre élément de la clé publique est le module Tn qui serait associé au terminal. La clé privée Tn de terminal ne peut pas être petite si elle correspond à une clé publique Tc petite. Dans le cas du terminal, il est sans importance que la clé privée Td soit choisie grande puisque le terminal possède la puissance de calcul nécessaire pour effectuer de façon relativement rapide l'élévation à la puissance. Dès lors que le terminal a calculé en 28 la valeur C2, il engendre en 29 un nombre aléatoire secret, R2, et il envoie tant R2 que C2 en 32 à la carte. La carte effectue ensuite en 34 sur la valeur signée C2 une élévation modulaire à la puissance au moyen du petit exposant Tc, en utilisant le module Tn du terminal. Ceci est effectué en calculant Ri' = C2Tc mod Tn. Si RI' est égal à RI, en 36, la carte sait qu'elle traite avec le terminal dont l'identification TID est associée en 38 au module Tn- La carte contient généralement un processeur arithmétique modulo (non représenté) pour effectuer l'opération précédente. Le nombre aléatoire secret R2 est signé en 40 par la carte et renvoyé au terminal en même temps qu'un certificat signé par l'autorité de certification qui associe l'identification de carte à son information publique. La signature par la carte est effectuée selon un algorithme de signature à courbe elliptique. La vérification de la carte s'effectue sur une base semblable à celle de la vérification du terminal, mais la signature par la carte utilise un système de chiffrage à courbe elliptique. Typiquement, pour une mise en oeuvre de courbe elliptique, un composant de signature s est de la forme s = ae = k (mod n) o P est un point de la courbe qui est un paramètre prédefini du système; k est un entier aléatoire sélectionné pour être une clé privée à court terme ou clé de session, et il lui correspond une clé publique à court terme R = kP; a est la clé privée à long terme de l'émetteur (carte) et il lui correspond une clé publique aP = Q; e est un hachage sécurisé, par exemple une fonction de hachage SHA, d'un message m (R2 dans ce cas) et de la clé publique à court terme R; et n est l'ordre de la courbe. Pour simplifier, on suppose que le composant de signature s est de la forme s = ae + k comme décrit ci-dessus, bien que l'homme de l'art comprenne que d'autres protocoles de signatures peuvent être utilisés. Pour vérifier la signature, l'expression sP - eQ doit être calculée et comparée à R. La carte engendre R en utilisant par exemple un processeur arithmétique de champ (non représenté). La carte envoie au terminal un message incluant m, s et R, comme représenté à la case 44 de la Figure 2, et la signature est vérifiée par le terminal en calculant en 46 la valeur (sP - eQ) qui doit correspondre à kP. Si les valeurs calculées correspondent en 48, la signature est vérifiée et la carte est donc vérifiée et la transaction peut continuer. Le terminal contrôle le certificat, puis contrôle la signature des données de transaction qui contiennent R2, ce qui authentifie la carte pour le terminal. Dans le présent mode de réalisation, la signature engendrée par la carte est une signature à courbe elliptique, qui est plus facilement engendrée par la carte, mais qui exige du terminal davantage de calculs pour la vérification. Comme on le voit de l'équation ci-dessus, le calcul de s est relativement simple et n'exige aucune puissance significative de calcul. Pour effectuer la vérification, il faut en revanche, pour obtenir sP et eQ, calculer un certain nombre de multiplications ponctuelles qui demandent chacune des calculs complexes. D'autres protocoles, comme les protocoles MQV exigent des calculs similaires lorsqu'ils sont mis en oeuvre sur les courbes elliptiques, de sorte que la vérification peut être lente lorsque la puissance de calcule est limitée. Mais ce n'est généralement pas le cas pour un terminal. Bien qu'un mode de réalisation de l'invention ait été décrit en se référant à un protocole spécifique pour la vérification du terminal et pour la vérification de la carte, d'autres protocoles peuvent aussi être utilises. REVENDICATIONS 1. Procédé de vérification d'une paire de correspondants (100, 102) dans une transaction électronique, lesdits correspondants incluant chacun une première (RSA ou DSS) et une deuxième (ECC) méthodes de signature, caractérisé en ce qu'il comprend les étapes suivantes: 1) ledit premier correspondant (100) signe (112) une information conformément à ladite première méthode (RSA ou DSS) de signature et transmet (116) ladite première signature audit deuxième correspondant (102); 2) ledit deuxième correspondant (102) vérifie (114) ladite première signature revue dudit premier correspondant (100), ladite vérification étant effectuée conformément à ladite première méthode (RSA ou DSS) de signature; 3) ledit deuxième correspondant (102) signe (120) une information conformément à une deuxième méthode (ECC) de signature et transmet (122) ladite deuxième signature audit premier correspondant (100); 4) ledit premier correspondant (100) vérifie (124) ladite deuxième signature reçue dudit deuxième correspondant (102), ladite vérification étant effectuée conformément à ladite deuxième méthode (ECC) de signature; et ) la transaction est rejetée si l'une ou l'autre des vérifications (118, 126) n'est pas satisfaisante. 2. Procédé selon la revendication 1, caractérisé en ce que les calculs sont plus difficiles, dans la première méthode (RSA ou DSS) de signature, pour la signature que pour la vérification, tandis que les calculs sont plus difficiles, dans la deuxième méthode (ECC) de signature, pour la vérification que pour la signature, ce qui permet à l'un des correspondants (102) de participer au moyen d'une puissance de calcul relativement faible tout en maintenant la sécurité de ladite transaction. 3. Procédé selon la revendication 1, caractérisé en ce que ladite première méthode de signature numérique est une méthode du type RSA et ladite deuxième méthode de signature est une méthode du type à courbe elliptique. 4. Procédé selon la revendication 1, caractérisé en ce que ladite première méthode de signature numérique est une méthode du type DSS et ladite deuxième méthode de signature est une méthode du type à courbe elliptique. 5. Procédé de vérification d'une paire de correspondants(100, 102) dans une transaction électronique, lesdits correspondants incluant chacun une première et une deuxième méthodes de signature, caractérisé en ce qu'il comprend les étapes suivantes: 1) ledit premier correspondant (100) transmet audit deuxième correspondant (102) un certificat (C1) incluant une clé publique (Tn, Te) et une information d'identification (TID) dudit premier correspondant (100); 2) ledit deuxième correspondant (102) vérifie (24) ledit certificat (Cl) et en extrait ladite clé publique (Tn, Te) et ladite information d'identification (TID); 3) ledit deuxième correspondant (102) engendre (26) une première interrogation (R1) et transmet ladite interrogation audit premier correspondant (100); 4) ledit premier correspondant (100) signe (28) ladite interrogation reçue (R1) conformément à ladite première méthode de signature; ) ledit premier correspondant (100) engendre (29) une deuxième interrogation (R2) et transmet (32) audit deuxième correspondant (102) ladite deuxième interrogation (R2) accompagnée de ladite signature (C2); 6) ledit deuxième correspondant (102) vérifie (34 à 38) ladite signature (C2) conformément à ladite première méthode de signature; 7) ledit deuxième correspondant (102) signe (40, 42) ladite deuxième interrogation (R2) conformément à ladite deuxième méthode de signature et transmet (44) ladite deuxième signature audit premier correspondant (100); 8) ledit premier correspondant (100) vérifie (46, 48) ladite deuxième signature conformément à ladite deuxième méthode de signature, et 9) ladite transaction est rejetée si, soit ladite première signature, soit ladite deuxième signature n'est pas vérifiée. 6. Une carte intelligente (102) à utiliser dans une transaction électronique avec un deuxième correspondant (100), caractérisée en ce qu'elle comprend une mémoire incluant une première méthode (RSA ou DSS) de signature consistant en un premier algorithme de génération de signature et un algorithme associé de vérification; une deuxième méthode (ECC) de signature consistant en un deuxième algorithme de génération de signature et un algorithme associé de vérification; un programme d'appel desdits algorithmes; et un moyen processeur qui met en oeuvre le premier algorithme (RSA) de vérification pour vérifier (114) ladite première information reçue dudit deuxième correspondant (100) et met en oeuvre ledit deuxième algorithme (ECC) de signature pour signer (120) une deuxième information en vue de sa transmission audit deuxième correspondant (100).