[0001] La présente invention a pour objet un procédé d'échange de droits entre cartes à
microprocesseur.
[0002] Les droits dont il est question dans l'invention 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.
[0003] 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.
[0004] Le recours à la technologie des cartes à mémoire est justifié dans la mesure où cette
technologie 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, 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.
[0005] Le premier niveau de sécurité à assurer porte sur l'échange de droits entre cartes
afin qu'il soit impossible de simuler un rechargement de sa propre carte, ce qui reviendrait
à créer de la fausse monnaie.
[0006] 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éditrice.
[0007] 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", n° 134, 4ème trimestre 1988, pages 15-24.
[0008] 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'identité (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 calculé est bien le montant demandé (M), si
l'identité calculée est bien la sienne (b) et si le nombre calculé est bien le nombre
qu'elle 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.
[0009] 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.
[0010] Sur le Schéma illustré, La banque 20 est supposée avoir chargé la carte 25 d'un montant
de 100F (opération 1) ; la carte 25 a été débitée de 50F (opération 2) au profit de
la carte 35. Cette dernière a été débitée de 200F au profit de sa banque 30 (opération
3).
[0011] 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.
[0012] 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) secrète(s), de façon qu'il soit impossible d'effectuer
une transaction sans la connaissance de cette (ou de ces) clé(s).
[0013] 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.
[0014] 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.
[0015] 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 de transactions déjà effectuées)
et le certificat C=F
K(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.
[0016] Dans l'affirmative, le secret serait percé et il serait possible de simuler des rechargements
de toute carte (b), puisque le calcul F
K(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 toute
carte.
[0017] Ce logiciel et l'ordinateur le mettant en oeuvre constituerait donc un "clone" de
carte utilisable pour recharger toute carte en simulant le débit d'une fausse carte
(a′) et le crédit d'une vraie carte (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.
[0018] 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 preuves) produits par la carte débitée,
en espérant, à l'aide des plus gros ordinateurs connus, résoudre l'équation C=FK(M,b,N) où C, P, b, N sont connus et K inconnu.
[0019] 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.
[0020] 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'apprécier
la dureté d'une fonction cryptographique,
- 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).
[0021] 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.
[0022] 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 suivantes :
- on définit préalablement des clés multiples de cryptage (K1, K2, ..., 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 Ka1, Ka2, ..., Kan, ...
qui sont chacune une fonction des clés multiples K1, K2, ... 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.
[0023] 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 Kb1,
Kb2, ..., 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.
[0024] 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.
[0025] Sur la figure 3, est représentée une situation symétrique où chaque carte (A ou B)
peut effectuer une transaction avec l'autre (B ou A).
[0026] On suppose qu'on a choisi dix clés K1, K2, ..., K10, 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 K1, K2, ..., K10 pour obtenir dix clés diversifiées Ka1, Ka2, ..., Ka10.
[0027] De la même manière, la carte B étant repérée par une identité (b), on constitue dix
clés diversifiées Kb1, Kb2, ..., Kb10.
[0028] 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é K3.
[0029] De la même maniére, l'identité (b) définit un rang u(b) qui,dans l'exemple illustré,
est supposé égal à 5. Cela signifie que la carte B se voit affecter la clé K5.
[0030] 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 Ka5.
[0031] 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 Kb3.
[0032] De maniére plus générale, pour des transactions à effectuer avec d'autres cartes
que B, il faudrait écrire dans la carte A d'autres clés diversifiées Ka1, Ka2, ...
soit dix clés au maximum.
[0033] 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 Kb1, Kb2, ... soit dix clés au maximum.
[0034] 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
[0035]
- 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 Ka5 pour calculer le certificat C ;
- la carte A transmet le certificat C à la carte B ;
- à partir de l'identité (a) de A et de la clé K5 qu'elle possède, la carte B calcule
Ka5 ce qui lui permet de décrypter le certificat C.
2) DEBIT DE B AU PROFIT DE A
[0036]
- 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 Kb3 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é K3 qu'elle posséde, la carte A calcule
Kb3, ce qui lui permet de décrypter le certificat C.
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 montant
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 certificat 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é calculée (b) est bien la sienne et si le nombre calculé (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 fonction F servant à calculer 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 (K1, K2, ..., 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 Ka1, Ka2, ..., Kan,
... qui sont chacune une fonction des clés multiples K1, K2, ... 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 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.
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 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),
- la carte (B) contient des clés diversifiées Kb1, Kb2, ..., 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.