FR 2646263 A1 19901026 FR 8905394 A 19890424 La présente invention concerne un dispositif de paiement par carte bancaire comportant un système electronique d'authentification de la carte et de reconnaissance du porteur. Le système de paiement par carte bancaire en service actuellement ne présente pas toutes les garanties attendues. En effet, de nombreuses réplications de cartes magnétiques ont été possibles sur simple vision du numéro et du nom figurant sur la carte. De plus, le vol d'une carte permet encore de faire des achats dans les heures suivantes chez les commerçants non équipés en terminaux électroniques ou la frappe du code confidentiel restreint la fraude. L'apparition des cartes à puce permet de réduire quasiment à néant la reproduction de carte. Mais ceci n'exclut pas la possibilité restante pour un fraudeur d'observer le code confidentiel d'un individu pour ensuite lui dérober sa carte et ensuite faire des achats, si ce n'est retirer de l'argent, car la sortie de la carte à puce s'accompagne de terminaux indépendants de paiement placés chez les commerçants. Or ceux-ci n'étant plus reliés à un ordinateur central, l'information sur les cartes dérobées ne circule plus et libre alors au fraudeur d'opérer pendant un certain temps. Le dispositif selon l'invention permet de remédier à tous ces inconvénients. En effet, cette carte électronique identifie son porteur devant le commerçant et s'authentifie elle-m#me. De plus, elle exclut la nécessité d'un quelconque appareillage -électronique à placer chez les commerçants. La reproduction de cette nouvelle carte est par ailleurs impossible car elle demande au moins l'ouverture du boitier carte électronique et ceci provoque la destruction partielle des circuits internes. Cette carte électronique est du type calculette avec écran à cristaux liquides sur une face et présente sur l'autre face la carte à puce habituelle. Elle contient un circuit permettant d'effectuer les opérations de validation. Ce circuit est alimenté par une pile interchangeable et une autre pile insérée à l'intérieur du boitier à la fabrication. Le procédé de validation comporte deux étapes - la reconnaissance du porteur - l'authentification de la carte Le coté présentant la carte à puce habituelle permet l'enregistrement du débit chez le commerçant avec la "raclette traditionnelle et le papier carbone ainsi que le retrait d'argent dans les guichet automatique grace à la puce électronique. Lorsque le client perçoit sa carte bancaire, un couple# de codes à quatre chiffres Ct et C2 lui est transmis. Ce client commence par taper le code C1 puis le code C2; si les codes C1 et C2 correspondent via un algotithme ALGO1 alors C1 et C2 rentrent respectivement dans deux mémoires Meml et Mem2 qui se ferment aussitot après et définitivement. Dés lors, le porteur de la carte devra s'identifier comme étant le vrai propriétaire en tapant les codes C1 et C2 qui sont alors comparés au deux codes en mémoire. Si la correspondance est bonne, l'écran affiche "VALID" comme signe de reconnaissance. Le commerçant doit alors vérifier qu'il s'agît d'une carte émise par le groupement habilité et non pas d'une réplique ayant une fonction permettant dttafficher "VALID". Pour ce faire, le commerçant dispose personnellement de quatre codes à quatre chiffres Vo ,V1, Va, et V3.Il commence par taper Vo et Vl, V1 rentre dans l'algorithme ALGO2 oct le calcul de la transformation se fait en fonction du paramètre Vo. Le commerçant tape alors VS qui doit corespondre avec le code transformé de V1 via ALGO2 paramétré par Vo. Si la correspondance est bonne, l'écran affiche le nombre à quatre chiffres V3 transformé de V2 par ALGO2 toujours paramétré avec Vo. Ceci prouve alors que la carte contient bien l'algorithme voulu dont l'organisme metteur est le seul détenteur. Lors de la reconnaissance du porteur, ou de l'authentification de la carte, chaque essai infructueux est comptabilisé dans un registre â décalage et cinq mauvais essais consécutifs actionnent un coupe~circuit mettant la carte hors-service Si une bonne validation apparait avant la cinqieme erreur, la comptabilisation des erreurs précédentes retombe à zéro. Les principaux éléments du circuit sont - Deux algorithmes ALGO1 et ALGO2 de type cryptosystème à base de clées révélées. - Un additionneur ADD sur nombre compléméntés à deux ajoutant un nombre compris entre O et 9999.Cfigure 13) - Des bascules Li. (figure 5) - Des bascules LA et LB. (figure 2) - Des comparateurs CMPi. (figure 9) - Des registres a décalage DLTi du type indiqué figure 8 - Un circuit de commandes générale (figure 10) - Des bascules RS.(figure 4 et figure 10) - Un coupe circuit CpCi. (figure 11) - Un relai d'alimentation ReAl. figure 3) - Un multiplexeur MULTI2 de commande d'entrée dans AL6O2.(figure 12) - Une mémoire tampon Bw pour l'affichage (figure 7) - Un bloc de commande COM1.( figure 6) - Le bus de données BuDo.Cfigure 1) Les éléments ALGOl, et ALGO2 ne peuvent entre développés ici Si l'on veut préserver l'efficacité du système ce qui ne gène en rien par ailleurs l'articulation bique de l'ensemble qui se présente de la façon suivante (cf figure l). Après avoir mis la carte sur ON pour la première fois, l'utilisateur rentre son premier code C1 puis appuie sur C1 - C1 est saisi par Li et LA. - C1 passe de LA dans ADD puis dans ALGO1 et enfin dans COMPO. - C1 passe de LA dans CMPI. L'utilisateur rentre son deuxieme code C2 puis appuie sur C2 - C2 passe dans L2 et dans Lg. - C2 passe dans CMPO. - C2 passe de Lg dans CMP2. Les sorties f de CMP1, 9 de CMP2 et k de CMP0 sont reliées par un OU et donnent z. Si les codes C1 et C2 correspondent bien via ALGO1 alors la sortie k de CMP0 vaut zéro et active la fermeture de LA et LB via j. Ainsi, à la prochaine opération de reconnaissance, les codes Cl et C2 rentrent respectivement dans L1 et L2 seulement et sont comparés aux codes en mémoire dans LA et Lg. Les résultats f et g des deux comparaisons valent alors zéro ou un et sont toujours combinés avec la sortie k de CMP0 bloqué à zéro. Si la reconnaissance est bonne, le résultat donne -zéro ce qui commande l'affichage "VALID" sur l'écran. Si à- l'initialisation, les deux codes C1 et C2 ne correspondent pas, alors la sortie k de CMP0 vaut un et empêche la fermeture des bascules LA et LB. Ceci permet de nouveaux essais mais l'information de chaque essai mauvais est enregistré dans le registre à décalage DLT1. Ainsi au bout de cinq essais infructueux la carte est mise hors-service par le coupe circuit CpCi. De même, en usage courant,( la mise en mémoire de C1 et C2 ayant été faite), chaque essai de ~reconnaissance infructueux (zri) est enregistré dans le registre à décalage DLT1. Au bout du cinquième essai toujours mauvais, la sortie t de DLT1 passe à un ce qui actionne le coupe circuit CpCi. Si les bons codes apparaissent avant une cinquième tentative infructueuse consécutive, alors t vaut zéro et les erreurs précédentes ne sont plus prises en compte. Cependant même à la mise hors-tension, des essais infructueux restent comptabilisés en mémoire dans le registre à décalage DLT1 En usage courant, l'utilisateur s'étant fait reconnaître comme étant le propriétaire de la carte en tapant les codes C1 et C2, un -message "VALID" s'affiche à l'écran. Dès lors, la sortie z=O permet l'activation du second processus de controle opéré par le commerçant. Le commerçant rentre son code paramètre VO, puis appuie sur la touche Vo. ,VC) rentre dans la bascule LVo puis dans la mémoire du paramètre de calcul de ALGO. la sortie s' de CMP3 étant initialement à 1 à la mise sous tensîon,s=s'+z vaut 1 donc la commande e de multi2 est à 1,le multiplexeur MULTI2 laisse passer le code V1 à venir vers ALGD2 (la fonction de multi2 est:av2+av1). Le commerçant tape ensuite V1 puis appuie sur la touche V1. VI rentre dans la bascule -LVî puis dans MULTI2 qui laisse passer V1 dans ALGO. ~V1 est transformé par ALGOL paramétré avec VO pour donner V2 qui rentre dans le comparateur CMP3. Le commerçant tape ensuite V2 puis appuie sur la touche V2. ~V2 rentre dans la bascule LV2 puis dans CMP3. Si les codes V1 et V2 rentrés correspondent bien via ALGO2 paramétré avec VO alors la sortie s' de CMP3 vaut O et donc s=s'+z vaut O,ce qui commande au multiplexeur MULTI2 via e de laisser passer V2. ~V2 passe de MULTI2 vers ALGO2 paramétré avec VO pour donner V3 en sortie de ALGO2. La mémoire tampon Sw laisse passer V3 vers le bus de données. Entre temps la validation de V1 et V2, en faisant passer s de l'état 1 à l'état O a agit sur la bascule RS qui donne alors un état e=O en sortie.Cette sortie, lorsau'elle vaut 0, commande l'affichage du dernier nombre rentré, en l'occurence ici V3. ~V3 rentre alors dans CMP3 qui donne alors en sortie s' =1. La commande e=O due au passage précédent de s à l'état 0, permet l'affichage direct de V3. Le passage de s a l'état haut ne change pas pour autant l'état de e qui reste à O grace a la bascule RS. Le commerçant n'a plus alors qu'a vérifier que le nombre- V3 affiché correspond bien avec celui attendu.Si c'est le cas la carte contient bien l'algorithme voulu donc provient bien d'un organisme habilité à la délivrer. La carte présente un système défensif contre les tentatives de fraude concernant la recherche des codes C1 et C2 qui peuvent entre une utilisation intempestive avec recherche des codes C1 et C2 en mémoire en rentrant des codes au hasard.Chaque code rentré ne correspondant pas avec Cl ou C2 en mémoire donne un état haut en sortie de CMP1 ou CMP2, cet état donne z=1 qui rentre alors dans DLT1.A chaque fois qu'un couple de code (Cî,C2) est rentré, le décalage est opéré dans DLT1 et cinq erreurs consécutives, soit cinq fois z=1, entraînent t=1, lequel état haut pour t actionne le coupe-circuit CpCi qui condamne alors la carte en empêchant l'entrée des données.La probabilité de trouver (C1FC2) fortuitement est donc de 5/100 000 000 c'est-å-dire quasi nulle. pour empêcher la déduction du code Cl connaissant C2 ou viceversa, un additionneur ADD+ est placé avant l'entrée dans ALGO1 et permet l'addition d'un nombre compris entre O et 9999 a Cl. Pour une série de 10 000 cartes bancaires on insère un additionneur ajoutant un nombre donné, ce qui pour un même algorithme ALGO1 donnera des couples CC1,C2) différents pour chaque additionneur. Ainsi le porteur de la carte pourra toujours taper un des deux codes étant exposé aux vues de l'entourage sans que l'on puisse pour autant déduire l'autre code, et ce meme en connaissant l'algorithme ALGO1. toute tentative de remise à zéro des circuits est rendue impossible par la mise en place d'une pile à l'intérieur du boitier à la fabrication. L'alimentation courante est fournie par une pile interchangeable. Lorsque cette dernière est usée et passe en deça d'un certain seuil de tension, la pile interne prend le relaiçvoir ReAl) et l'usure est notifiée par un symbole sur l'écran à cristaux liquides. de même , si la pile interchangeable n'est pas remplacée l'usure de la pile interne au dela d'un certain seuil actionne le coupe-circuit CpCi.Autrement, une fois la pile interne déchar~gée, il suffirait d'oser la pile interchangeable pour obtenir une remise à zéro et effacer les erreurs enregistrées. La carte pvésenteaussi une protection contre les tentatives de piratage de l'algorithme d'authentification ALGO2. en effet, le circuit dans sa globalité présentera des contacts résine qui rendent vaine l'ouverture du boitier -pour un examen des circuits s'y trouvant. l'authentification de la carte faite par le commerçant necessite trois codes VO,Vî,V2 dont l'un VO sert de paramètre de calcul à ALGO2.Ce procédé permet d'avoir 100 000 000 de combinaisons à fournir aux commerçants, c'est dire qu'une petite partie seulement des combinaisons leur est fournie et celles restantes peuvent leur titre données ultérieurement.On évite ainsi une tentative de collecte massive des combinaisons suivie de la fabrication de cartes contenant un algorithme adéquat puisque ces combinaisons peuvent très bien varier du jour au lendemain pour un commerçant donne dernier vérifiera alors que cette éventuelle fausse carte ne sort pas le nouveau code V3' correspondant aux nouveaux codes VO',V1',V2' qu'il aura dernièrement reçu. par ailleurs, une tentative de collecte des combinaisons en rentrant des codes VO,V1,V2 au hasard qui donnent un certain nombre V3 à l'affichage si la correspondance est bonne est possible.Mais elle est rendue extr#mement difficile par le fait que cette recherche représente 1000 000 000 000 de possibilités à examiner.De plus , chaque éssai infructueux donne un état 5=1 qui rentre dans DLT2, lequel registre à décalage au bout de cinq- mauvais essais sort un état haut qui actionne le coupe circuit.#Ceci oblige d'éventuels fraudeurs à retaper une bonne combinaison tous les cinq éssais. on pourra aussi, à titre de remarque, adapter un compteur qui limite le nombre de validations avec VO,Vl,V2 à environ 5000 par an ce qui obligerait un éventuel fraudeur à trouver 200 000 000 d'acolytes pour examiner les 1000 000 000 000 de possibilités. La partie authentification opéré par ALGO2 prdsente donc une garantie quasi-totale car si l'on peut connaitre un certain nombre de combinaisons (V0,V1,V2), obtenir l'ensemble complet est impossible. Or une connaissance partielle de l'ensemble des combinaisons n'apporte rien aux fraudeurs. Revendications 1) Dispositif de paiement par carte bancaire comportant un système électronique d'authentification de la carte et de reconnaissance du porteur caractérisé par un circuit comportant Deux algorithmes ALGO1 et ALGO2, un additionneur ADD, un multiplexeur MULTI2, une mémoire tampon Bw, des bascules Li, des comparateurs CMPI, des registres à décalage DLTi, une bascule RS, un relai d'alimentation, un coupe-circuit CpCi, des blocs de commandes, le bus de données BuDo, le tout alimenté par pile interchangeable et pile interne au boitier servant de relai.Ce circuit permet de comparer deux codes C1 et C2 entrés par l'utilisateur à deux codes déja en mémoire pour valider la reconaisance alors signifiée par l'affichage à cran de "VALID" si la correspondance est bonne etpermet l'authentification de la carte par le commerçant en affichant un certain nombre V3 si trois codes Vg, V1, V2 rentrés correspondent bien via l'algorithme ALGO2. 2) Dispositif selon la revendication 1) caractérisés en ce que les codes CI et C2 ne sont mis définitivement en mémoire que si la correspondance entre C1 et C2 via ALGO1 est bonne. (sortie de CMP0 à zéro). 3) Dispositif selon la revendication 1) et la revendication 2) caractérisé en ce que l'additionneur ajoute un nombre-compris entre O et 9999 non connu au code C1 empêchant une déduction systématique de C1 en fonction de C2 et vice-versa. 4) Dispositif selon la revendication 1) caractérisé en ce que le code Vo sert de paramètre de calcul pour la transformation de V1 par ALGO2 avant la comparaison avec le code Vz, laquelle comparaison, si elle est bonne, permet l'affichage d'un nombre V3 tranformé de V2 par ALGO2 toujours paramétré par Vo. 5) Dipositif selon la revendications 1), la revendication 2) et la revendication 4) caractérisé en ce que cinq essais consécutifs non corrects de couples (C1,C2), tout comme cinq essais consécutifs non corrects de triplets (Vo,V1tV2) actionnent le coupe-circuit CpCi par l'intermédiaire de registres décalage. 6) Dispositif selon la revendication 1) caractérisé en ce que le boitier de la carte contient une pile interne servant de relai à la pile interchangeable et en ce que cette même pile interne actionne le coupe circuit CpCi lorsqu'elle passe en dessous d'un seuil de tension, afin d'éviter une remise à zéro possible du circuit. 7) Dispositif selon la revendication 1) caractérisé en ce que le circuit comporte des contacts résine qui se détruisent à l'ouverture du boitier pour éviter tout piratage électronique