FR 2671889 A1 19920724 FR 9100680 A 19910122 DESCRIPTION PROCEDE D'ECHANGE DE DROITS ENTRE CARTES A MICROPROCESSEUR La présente invention a pour objet un procédé d'échange de droits entre cartes à microprocesseur. Les droits dont i L est question dans l'inven- tion peuvent être de nature quelconque et donner accès à des services divers Ils sont le plus souvent liés à des transactions financières (crédit, débit). L'invention trouve donc une application privilégiée dans ce qu'il est convenu d'appeler le "paiement électronique" Dans le cas de telles transactions, les cartes constituent des "porte-monnaie" électroniques. L'utilisation de tels porte-monnaie n'est possible que si certaines conditions sont remplies: la sécurité de l'échange doit être totale, les cartes doivent être infalsifiables, quelles que soient les manipulations qu'elles subissent et enfin de faux porte-monnaie doivent être impossibles à fabriquer. Le recours à la technologie des cartes à mémoire est justifié dans la mesure o cette tech- nologie emploie des composants spécialement conçus pour offrir un très haut niveau de sécurité Ces composants sont constitués d'une puce "mono-chip" comprenant un microprocesseur avec ses programmes,30 ses mémoires et ses moyens d'entrée-sortie Mémoires et moyens d'entrée-sortie sont sous le contrôle du microprocesseur et de son programme, lequel ne peut être modifié extérieurement. Le premier niveau de sécurité à assurer porte sur l'échange de droits entre cartes afin qu'il 2 soit impossible de simuler un rechargement de sa propre carte, ce qui reviendrait à créer de la fausse monnaie. La sécurité de l'échange s'appuye sur des techniques classiques en sécurité informatique IL s'agit de garantir l'intégrité et l'authenticité du message envoyé par la carte débitrice à la carte crédi- trice. La figure 1 illustre un exemple de procédure connue pour assurer un échange en toute sécurité. Une telle procédure est décrite par exemple dans l'article de P REMERY, J C PAILLES, F LAY intitulé "Le paiement électronique" publié dans la revue "L'écho des Recherches", no 134, 4 ème trimestre 1988, pages 15-24. Dans la transaction illustrée sur la figure 1, on a les opérations suivantes: la carte A à débiter est définie par une identité (a) et elle présente un solde créditeur; la carte B à créditer est définie par une identité (b) et par un nombre N qui est, par exemple, le nombre de transactions qu'elle a déjà effectuées; la carte B commence par s'identifier auprès de la carte à débiter A en lui adressant son identité (b) et le nombre N; elle indique également le montant M qu'elle désire recevoir; la carte A vérifie si son solde est au moins égal au montant demandé M; dans la négative, l'ordre de débit serait refusé; dans l'affirmative, la carte A diminue son solde de la quantité M et calcule un certificat C (ou preuve), qui est une fonction F du montant M, de l'iden- tité (b) de La carte à créditer B et du nombre N, soit F(M,b,N); la carte A envoie ce certificat F(M,b,N) à La carte B; cette dernière reçoit le certificat F(M,b,N) et, par la fonction inverse de la fonction F, calcule un montant M, une identité (b) et un nombre N; la carte B vérifie si le montant ainsi calcu Lé est bien Le montant demandé (M), si l'identité ca Lcu Lée est bien la sienne (b) et si le nombre calculé est bien le nombre qu'e L Le avait choisi (N); dans L'affirmative, la carte B incrémente d'une unité le nombre N en vue de la prochaine transaction et augmente son solde du montant M en question. La figure 2 illustre comment la monnaie électronique peut circuler dans un système équipé de cartes aptes à mettre en oeuvre le procédé qui vient d'être décrit Un émetteur de monnaie 10 a autorisé des banques 20 et 30, chacune contenant des comptes d'utilisation (a) et (b) Les utilisateurs possèdent des cartes 25, 35 capables d'échanger des droits avec les banques. Sur le schéma illustré, La banque 20 est supposée avoir chargé la carte 25 d'un montant de F (opération 1); la carte 25 a été débitée de 50 F (opération 2) au profit de la carte 35 Cette dernière a été débitée de 200 F au profit de sa banque (opération 3). Si cette procédure donne déjà satisfaction à certains égards, il reste à résoudre le problème du choix de la fonction F servant à calculer le certificat C. IL est clair que cette fonction ne doit pouvoir être calculée que par des cartes porte-monnaie, et non par un ordinateur de type PC par exemple, sinon la simulation d'un rechargement de sa propre carte serait facile Une première solution consiste à prendre une fonction F qui est secrète Une seconde solution consiste à définir F par une (ou plusieurs) clé(s)10 secrète(s), de façon qu'il soit impossible d'effectuer une transaction sans la connaissance de cette (ou de ces) clé(s). C'est vers cette seconde solution que s'oriente l'invention, la première étant peu fiable, pour la raison que le secret F ne peut être garanti, en raison notamment de la nécessité d'écrire et de tester le programme permettant de calculer F lors du développement d'une telle carte. Avec la seconde solution, la sécurité du système va dépendre de l'aptitude de la fonction F à résister aux tentatives de fraudes. De façon plus précise, la question est de savoir si, connaissant les paramètres M (montant), b (identité de la carte à créditer), N (nombre de25 transactions déjà effectuées) et le certificat C=FK(M,b,N), o la fonction F dépend d'une clé K, on peut remonter à la clé K utilisée par la carte d'identité a. Dans l'affirmative, le secret serait percé et il serait possible de simuler des rechargements de toute carte (b), puisque le calcul FK(M,b,N) serait possible quelque soit (b) Concrètement, il serait possible de réaliser un logiciel sur ordinateur PC et un lecteur de carte permettant de recharger toute35 carte. Ce logiciel et l'ordinateur le mettant en oeuvre constituerait donc un "clone" de carte utilisa- ble pour recharger toute carte en simulant le débit d'une fausse carte (a') et le crédit d'une vraie carte 5 (b) La fausse monnaie ainsi créée serait en quelque sorte "blanchie" après cette opération et rien ne permettrait plus de distinguer, dans la carte b, ce qui provient de tel ou tel rechargement. Un fraudeur voulant découvrir une clé K a deux possibilités: a) soit l'investigation physique de la mémoire de la carte au moyen d'instruments tels que le microscope électronique, b) soit la crypto-analyse des certificats (ou preu- ves) produits par la carte débitée, en espérant, à l'aide des plus gros ordinateurs connus, résou- dre l'équation C=FK(M,b,N) o C, P, b, N sont connus et K inconnu. Pour éviter le premier type de fraude, il n'y a pas d'autres solutions que de cacher les parties sensibles du composant (mémoire, bus) par des écrans métalliques Par ailleurs, il ne faut pas que l'investigation d'une carte donne tous les secrets du système, donc permette de simuler toute carte débitrice, car alors il n'y aurait plus de moyens de détecter les fraudes. Pour éviter le second type de fraude, on peut penser à deux parades: choisir une fonction F "dure" à décrypter, la difficulté est qu'il est malaisé d'ap- précier la dureté d'une fonction cryptogra- phique, changer régulièrement (tous les mois par exemple) la clé des cartes, notamment au moment o elles sont rechargées; dans ce cas, la vie d'un clone est limitée, (à un mois dans l'exemple pris). La présente invention propose un autre procé- dé, plus efficace, fondé sur un système à clés mutiples diversifiées Selon l'invention, la clé utilisée pour constituer le certificat est obtenue à partir d'une des clés d'un ensemble, cette clé étant diversifiée en fonction de l'identité de la carte à créditer. Ainsi, la clé utilisée change avec l'identité de la carte à créditer Constituer un appareil susceptible de simuler une opération de débit en liaison avec une carte à créditer nécessiterait la connaissance de toutes les clés de l'ensemble La difficulté de la fraude est donc considérablement augmentée par rapport aux méthodes à clé unique. De façon précise, la présente invention a pour objet un procédé d'échange de droits entre cartes à microprocesseur du genre de ceux qui viennent d'être définis et qui est caractérisé par le fait que la fonction F servant à calculer le certificat C est définie et utilisée par les opérations suivan- tes: on définit préalablement des clés multiples de cryptage (K 1, K 2, , Km,, Kn, la carte à créditer (B) contient l'une de ces clés multiples, soit (Kn), o le numéro de clé N est une fonction (u) de l'identité (b) de la carte (B), (u(b)=n), la carte à débiter (A) contient certaines clés diversifiées Kal, Ka 2,, Kan, qui sont chacune une fonction des clés multiples K 1, K 2, et de l'identité (a) de La carte à débiter (A), ces clés diversifiées étant chargées dans la carte (A) lors de sa personnalisation, la carte à débiter (A) recevant L'identité (b) de la carte à créditer (B) calcule Le rang N de la clé diversifiée à utiliser par La fonction u(b) et en déduit celle des clés diversifiées Kan, avec laquelle elle doit calculer le certificat (C), la carte à créditer (B) calcule la clé diversifiée Kan qui a servi au calcul du certificat qu'elle a reçu et cela à l'aide de sa propre clé (Kn) et de l'identité (a) correspondant à la carte à débiter (A), la carte à créditer (B) pouvant alors décrypter le certificat (C) à l'aide de cette clé diversifiée Kan. De préférence, le système est symétrique, en ce sens que chaque carte peut être soit débitée, soit créditée Dans ce cas, la carte (A) contient en outre l'une des clés multiples, soit Km, o le numéro de clé m est une fonction (u) de l'identité de la carte (u(a)=m) et, symétriquement, la carte (B) contient des clés diversifiées Kbl, Kb 2,, Kbm lui permettant de calculer un certificat destiné notamment à une carte A d'identité m à l'aide de la clé diversifiée Kbm, la carte A recevant un tel certificat reconstituant cette clé à l'aide de sa clé Km et de b. De toute façon, les caractéristiques et avantages de l'invention seront mieux comprises à la lumière de la description qui va suivre Cette description porte sur un exemple de réalisation donné à titre explicatif et nullement limitatif et elle se réfère à des dessins annexés sur lesquels: la figure 1, déjà décrite, illustre un procédé selon l'art antérieur, la figure 2, déjà décrite, illustre la circulation de monnaie électronique, la figure 3 illustre le contenu des cartes dans un procédé selon l'invention dans une variante symétrique, la figure 4 illustre deux transactions symétriques, l'une de débit de A vers B, l'autre de débit de B vers A. Sur la figure 3, est représentée une situa- tion symétrique o chaque carte (A ou B) peut effectuer une transaction avec l'autre (B ou A). On suppose qu'on a choisi dix clés K 1, K 2, , K 10, ce nombre 10 étant naturellement arbitraire et ne limitant en rien l'invention La carte A est repérée par une identité (a) Il est possible de constituer une fonction de cette identité (a) et de chacune des clés K 1, K 2,, K 10 pour obtenir dix clés diversifiées Kal, Ka 2,, Ka 10. De la même manière, la carte B étant repérée par une identité (b), on constitue dix clés diversifiées Kbl, Kb 2,, Kb 10. Par ailleurs, à l'identité (a) correspond, par une fonction u donnée, un rang dans l'ordre des clés Dans l'exemple illustré u(a) est supposé égal à 3 Cela signifie que la carte A se voit affecter la clé K 3. De la même manière, l'identité (b) définit un rang u(b) qui,dans L'exemp Le illustré, est supposé égal à 5 Cela signifie que la carte B se voit affecter la clé K 5. Pour travailler avec la carte B, dont le rang de la clé est 5, la carte A est pourvue de la cinquième clé diversifiée propre à A soit Ka 5. Pour travailler avec la carte A, dont le rang de la clé est 3, la carte B est pourvue de la troisième clé diversifiée propre à B, soit Kb 3. De manière plus générale, pour des trans- actions à effectuer avec d'autres cartes que B, il faudrait écrire dans la carte A d'autres clés diversi- fiées Kal, Ka 2, soit dix clés au maximum. De même, dans la carte B, o, pour travailler avec d'autres cartes que A, il faudrait prévoir d'autres clés diversifiées Kbl, Kb 2, soit dix clés au maximum. Munies de ces diverses clés, les cartes A et B peuvent effectuer des transactions dans les deux sens comme illustré sur la figure 4 Sur cette figure, les opérations connues de vérification du solde, de diminution de celui-ci dans la carte débitée, d'augmentation du solde dans la carte créditée, de vérification des paramètres et d'incrémentation du nombre N ne sont pas représentées parce qu'elles sont effectuées comme dans l'art antérieur (cf figure 1). Les deux opérations symétriques propres à l'invention sont alors: 1) DEBIT DE A AU PROFIT DE B La carte B transmet à la carte A sa demande avec le montant M, l'identité (b), le nombre N; la carte A utilise la clé diversifiée Ka 5 pour calculer le certificat C; 1 O la carte A transmet le certificat C à la carte B; à partir de l'identité (a) de A et de la c Lé K 5 qu'elle possède, la carte B calcule Ka 5 ce qui lui permet de décrypter le certificat C. 2) DEBIT DE B AU PROFIT DE A la carte A transmet à la carte B sa demande avec le montant M, l'identité (a) et le nombre N; la carte B utilise la clé diversifiée Kb 3 pour calculer le certificat C; la carte B transmet le certificat C à la carte A; à partir de l'identité (b) de B et de la clé K 3 qu'elle possède, la carte A calcule Kb 3, ce qui lui permet de décrypter le certificat C. 1 1 REVENDICATIONS 1 Procédé d'échange de droits entre cartes à microprocesseur consistant à débiter une première carte (A) d'un certain montant (M) et à créditer une seconde carte (B) de ce même montant (M), procédé dans Lequel: Les cartes (A) et (B) sont repérées par des identités, respectivement (a) et (b), la carte à créditer (B) s'identifie auprès de la carte à débiter (A) en lui adressant son identité (b) et un nombre (N) qu'elle a choisi et elle indique le montant (M) des droits à échanger, la carte à débiter (A) vérifie si son solde de droits est au moins égal au mon- tant demandé (M), dans l'affirmative, la carte à débiter (A) diminue son solde du montant (M) et calcule un certificat, qui est une fonction F du montant (M), de l'identité (b) de la carte à créditer (B) et du nombre (N), soit F(M,b,N), la carte à débiter (A) envoie ce certificat F(M,b,N) à la carte à créditer (B), la carte à créditer (B) reçoit ce certifi- cat F(M,b,N), et en déduit le montant (M), l'identité (b) et le nombre (N), la carte à créditer (B) vérifie si le montant calculé (M) est bien le montant demandé (M), si L'identité calcu Lée (b) est bien la sienne et si Le nombre calcu Lé (N) est bien le nombre (N) qu'elle avait choisi, dans L'affirmative, La carte à créditer (B) change le nombre (N) en vue d'un prochain échange et échange son solde du montant en question (M), ce procédé étant caractérisé par le fait que la fonc- tion F servant à calcu Ler Le certificat C est définie et utilisée par les opérations suivantes: on définit préalablement des clés multiples de cryptage (K 1, K 2,, Km,, Kn, la carte à créditer (B) contient l'une de ces clés multiples, soit (Kn), o le numéro de clé N est une fonction (u) de l'identité b de la carte (B), (u(b)=n), la carte à débiter (A) contient certaines clés diversifiées Kal, Ka 2,, Kan, qui sont chacune une fonction des clés multiples K 1, K 2, et de l'identité (a) de La carte à débiter (A), ces clés diversifiées étant chargées dans la carte (A) lors de sa personnalisation, la carte à débiter (A) recevant l'identité (b) de la carte à créditer (B) calcule le rang N de la c Lé diversifiée par la fonction u(b) et en déduit celle des clés diversifiées Kan avec laquelle elle doit calculer le certificat (C), la carte à créditer (B) calcule la clé diversifiée Kan qui a servi au calcul du certificat qu'elle a reçu et cela à l'aide de sa propre c Lé (Kn) et de l'iden- tité (a) correspondant à la carte à débiter (A), la carte à créditer (B) pouvant alors décrypter le certificat C à l'aide de cette c Lé diversifiée Kan. 2 Procédé selon la revendication 1, dans lequel chaque carte (A) ou (B) doit être soit débitée soit créditée: la carte (A) contient en outre l'une des c Lés multiples, soit Km, o le numéro de clé m est une fonction (u) de l'identité de la carte (u(a)=m), la carte (B) contient des clés diversifiées Kbl, Kb 2,, Kbm, lui permettant de calculer un certificat destiné notamment à une carte (A) d'identité m à l'aide de la c Lé diversifiée Kbm, la carte (A) recevant un tel certificat reconstituant cette clé à l'aide de sa clé Km et de b.