Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TOKEN SEQUENCE PAYMENT SYSTEM
Document Type and Number:
WIPO Patent Application WO/2006/005838
Kind Code:
A1
Abstract:
The invention concerns a remote payment method between a payment terminal (4) and a goods and services terminal (4), the payment terminal (2) communicating with a payment server (3), comprising the following steps: a) the payment terminal (2) holds a certain amount (n) of units of account for payment in the form of a sequence of tokens (wo, n), a token being equal to a unit of account, and b) the payment terminal (2) issues the token (wi+p) of the sequence, such that its serial number (i +p) is equal to the sum of the serial number (i) of the token (wi) sent during the previous transaction and the number (p) of units of account of the transaction, as well as the number (p) of units of account of the transaction to the payment server (3).

Inventors:
SIBERT HERVE (FR)
CALMELS BENOIT (FR)
CANARD SEBASTIEN (FR)
PICQUENOT DAVID (FR)
SAIF AHMAD (FR)
Application Number:
PCT/FR2005/001477
Publication Date:
January 19, 2006
Filing Date:
June 14, 2005
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
SIBERT HERVE (FR)
CALMELS BENOIT (FR)
CANARD SEBASTIEN (FR)
PICQUENOT DAVID (FR)
SAIF AHMAD (FR)
International Classes:
G06Q20/00; G07F17/24; G07F19/00; (IPC1-7): G07F19/00; G07F17/24
Domestic Patent References:
WO2001046920A12001-06-28
WO2002097736A12002-12-05
Foreign References:
US6467685B12002-10-22
EP0833285A21998-04-01
Other References:
ELLIS CHI: "Evaluation of Micropayment Schemes", HP LABORATORIES TECHNICAL REPORT, no. 97-14, 13 January 1997 (1997-01-13), PALO ALTO, CA, USA, XP002183855
Attorney, Agent or Firm:
Habasque, Etienne (2 place d'Estienne d'Orves, PARIS CEDEX 09, FR)
Download PDF:
Description:
Système de paiement par suite de jetons La présente invention concerne un procédé de paiement à distance ainsi qu'un système, un terminal de paiement et un serveur centralisé de paiement pour la mise en œuvre de ce procédé. Dans le domaine du paiement électronique, les systèmes se décomposent, du point de vue de leur utilisation, en deux phases. La première consiste à l'acquisition ou la recharge du moyen de paiement auprès du fournisseur de ce moyen. La seconde correspond à l'utilisation proprement dite de ce moyen de paiement pour acquérir un bien ou un service. Dans l'état de l'art actuel, on trouve essentiellement les moyens de paiement suivants : - l'utilisation de comptes prépayés conservés sur des serveurs, accessibles par un réseau de communication (internet, liaison spécialisée,...). Ces comptes ne font qu'associer l'identité de l'utilisateur (identifiant+mot de passe) au solde de leur compte, et en cas de contestation par l'utilisateur, rien ne permet de prouver que, par exemple, le serveur a débité le compte de l'utilisateur sans le consentement de celui-ci. De plus, l'accès à ces serveurs nécessite un navigateur internet sur le terminal de l'utilisateur même dans le cadre d'une utilisation mobile, et le paiement d'un bien ou d'un service se fait via le réseau internet, ne mettant ainsi pas à profit la proximité physique possible entre l'utilisateur et le point de délivrance du bien ou du service ; - l'utilisation de codes de paiement temporaires tels que ceux délivrés par e-Carte Bleue nécessite un accès à internet, et possède les mêmes limitations que les comptes prépayés décris précédemment ; - l'utilisation de cartes de paiement, telles que les porte-monnaie électroniques ou les cartes bancaires : le principal inconvénient est, pour l'utilisateur, la contrainte de posséder et transporter une telle carte. De plus, le coût du déploiement des cartes doit être supporté. En pratique, ce sont les utilisateurs (sous forme d'un abonnement) et les fournisseurs de services adhérents au système qui supportent ces coûts. Dans le cas des cartes bancaires, ces coûts ne sont pas adaptés au paiement de petites sommes. Dans le cas de porte-monnaie électroniques, ces coûts sont moins élevés, mais aucune protection n'empêche un voleur d'utiliser le porte-monnaie à la place de l'utilisateur légitime ; - l'utilisation de cartes prépayées physiques : ce système pose essentiellement le problème de la distribution des cartes du point de vue juridique en raison de l'anonymat de leur utilisateur, et logistique pour ce qui est de leur distribution. De plus, de même que pour les comptes prépayés, rien ne permet de résoudre un conflit entre l'utilisateur et le fournisseur du moyen de paiement ; - l'utilisation de cartes prépayées électroniques : de même que pour les cartes physiques, rien ne permet de résoudre un conflit entre l'utilisateur et le fournisseur du moyen de paiement ; - l'utilisation de porte-monnaie électroniques logiciels : les systèmes existants utilisent des fonctions de cryptographie très coûteuses (signatures simples, signatures aveugles...) qui doivent être exécutées à chaque paiement, et sont donc incompatibles avec des terminaux ayant des capacités de calcul limitées ; - l'utilisation de systèmes de paiement par agrégation sur facture : ces systèmes lient l'identification de l'utilisateur à l'identification de son terminal mobile au sein d'un réseau (numéro de téléphone fixe ou mobile, adresse internet), et sont donc peu portables. Certains de ces systèmes possèdent une interface de type compte prépayé, avec les inconvénients décrits ci-dessus. De plus, la plupart de ces systèmes ne garantissent aucune confidentialité pour l'utilisateur, dans le sens où, lors de la phase d'acquisition ou de recharge du moyen de paiement, tous lient le moyen de paiement à un compte dont le détenteur est connu du fournisseur de la solution de paiement. Les seules exceptions sont, d'une part, les cartes prépayées, dont les inconvénients ont été décrits et, d'autre part, certains porte-monnaie. Mais les protocoles cryptographiques de ces derniers utilisés pour assurer cette confidentialité sont lourds et doivent être exécutés à chaque acte de paiement, ce qui, d'un point de vue pratique, est trop coûteux, voire inaccessible pour des terminaux aux capacités de calcul limitées. Le but de l'invention est donc de pallier ces inconvénients en proposant un système et un procédé de paiement fonctionnant avec un terminal de paiement ayant des capacités de calcul limitées mais pouvant communiquer aussi bien avec le serveur centralisé de paiement qu'avec le fournisseur du bien ou du service. Un autre but de l'invention est de permettre au client de réfuter un paiement vis-à-vis du serveur de paiement si ce paiement n'a effectivement jamais eu lieu. Et un autre but de l'invention est de faire que le paiement effectif d'un bien ou d'un service par le client puisse être prouvé par le serveur de paiement. L'objet de l'invention est donc un procédé de paiement à distance entre un terminal de paiement utilisé par un utilisateur pour effectuer la transaction d'un bien ou d'un service délivré par une borne de biens et services, le terminal de paiement étant en communication avec un serveur centralisé de paiement, caractérisé en ce qu'il comporte les étapes suivantes : a) le terminal de paiement possède préalablement une certaine quantité d'unités de compte de paiement sous forme d'une suite de jetons telle que la connaissance d'un jeton donné ne permet que la connaissance des jetons précédents, un jeton étant égal à une unité de compte, et - le serveur centralisé de paiement mémorise le premier jeton de la suite et le nombre de jetons, puis b) le terminal de paiement et la borne de biens et services définissent le montant de la transaction sous la forme d'un nombre entier d'unités de compte, puis c) le terminal de paiement émet le jeton de la suite, tel que son numéro d'ordre soit égal à la somme du numéro d'ordre du jeton envoyé lors de la transaction précédente et du nombre d'unités de compte de la transaction, ainsi que le nombre d'unités de compte de la transaction en direction du serveur centralisé de paiement, puis d) le serveur centralisé de paiement vérifie la validité du jeton émis en déduisant, à partir de celui-ci, le jeton initial de la liste et en comparant la valeur obtenue avec celle mémorisée préalablement, e) si ces deux valeurs sont égales, la transaction est validée et le serveur centralisé de paiement émet en direction du terminal de paiement une autorisation de transaction, puis f) le terminal de paiement transmet à la borne de biens et services l'autorisation de transaction, ce qui déclenche la délivrance du bien ou service. D'autres caractéristiques sont : - les étapes e) et f) sont remplacées par l'étape e') si ces deux valeurs sont égales, la transaction est validée et le serveur centralisé de paiement émet en direction de la borne de biens et services l'autorisation de transaction, ce qui déclenche la délivrance du bien ou du service ; - la suite de jetons est telle qu'un jeton précédent se déduit du jeton suivant par une fonction de hachage ; - le dernier jeton de la suite de jetons est en outre un nombre aléatoire ; - l'étape a) comporte les étapes de : a-i) création d'une suite de jetons par le terminal de paiement, ai) création d'un message par le terminal de paiement comportant au moins le premier jeton de la suite et le nombre de jetons, &z) envoi du message au serveur centralisé de paiement, a_t) stockage d'au moins une partie du message par le serveur centralisé de paiement afin de suivre et valider les transactions effectuées par le terminal de paiement ; - le message possède en outre une signature électronique ; - les étapes a-i) à a3) sont effectuées par un terminal de gestion de comptes différent du terminal de paiement et alors, le procédé comporte en outre une étape de as) transfert sécurisé du nombre de jetons et du dernier jeton de la suite de jetons du terminal de gestion de compte au terminal de paiement ; Suivant d'autres caractéristiques, l'invention concerne un système de paiement à distance entre un terminal de paiement utilisé par un utilisateur pour effectuer la transaction d'un bien ou d'un service délivré par une borne de biens et services, le terminal de paiement étant en communication avec un serveur centralisé de paiement, caractérisé en ce que le terminal de paiement comporte des moyens de stockage d'une certaine quantité d'unités de compte de paiement sous forme d'une suite de jetons telle que la connaissance d'un jeton donné ne permet que la connaissance des jetons précédents, un jeton étant égal à une unité de compte, et le serveur centralisé de paiement comporte des moyens de stockage du premier jeton de la suite et du nombre de jetons, et le terminal de paiement et la borne de biens et services comportent des moyens de communication et de transaction apte à définir le nombre de jetons correspondant à la transaction, et les moyens de communication du terminal de paiement sont adaptés pour transmettre au serveur centralisé de paiement le jeton de la suite, tel que son numéro d'ordre soit égal à la somme du numéro d'ordre du jeton envoyé lors de la transaction précédente et du nombre d'unités de compte de la transaction, ainsi que le nombre d'unités de compte de la transaction, et le serveur centralisé de paiement comporte des moyens de calcul du jeton initial à partir du jeton reçu et du nombre d'unités de compte de la transaction et des moyens de comparaison du résultat de ce calcul avec la valeur du premier jeton stocké dans les moyens de stockage, et si les deux valeurs sont égales, les moyens de transmission du serveur centralisé de paiements sont adaptés pour transmettre une autorisation de transaction au terminal de paiement, et les moyens de communication du terminal de paiement sont adaptés pour transmettre l'autorisation de transaction reçue à la borne de biens et services pour déclenchement de la délivrance du bien ou service. Le terminal de paiement pour la mise en œuvre du procédé se caractérise en ce qu'il comporte au moins : des moyens de transmission pour communiquer avec une borne de biens et services et un serveur centralisé de paiement, les dits moyens de transmission étant connectés à des moyens de stockage d'une suite de jetons, chaque jeton représentant une valeur de compte de paiement, et telle que la connaissance d'un jeton donné ne permet que la connaissance des jetons précédents. des moyens de transmission pour communiquer avec un terminal de paiement et, optionnellement une borne de biens et services, connectés à des moyens de stockage d'au moins le premier élément d'une suite de jetons et du nombre de jetons de cette suite, chaque jeton représentant une valeur de compte de paiement, et telle que la connaissance d'un jeton donné ne permet que la connaissance des jetons précédents, et à des moyens de calcul du premier élément de la suite à partir de la connaissance d'un jeton quelconque de cette liste, autre que le premier, et du numéro d'ordre dans la liste de celui-ci, et des moyens de comparaison du résultat obtenu par les moyens de calcul avec la valeur du premier jeton stocké par les moyens de stockage, connectés à des moyens de création d'une autorisation de transaction lors d'une comparaison positive. L'invention sera mieux comprise à la lumière de la description qui va suivre donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés dans lesquels : - la figure 1 est un schéma synoptique du système de paiement selon un mode de réalisation. - la figure 2 est un schéma synoptique de système de paiement selon un deuxième mode de réalisation général, - la figure 3 est un schéma synoptique d'un mode de réalisation détaillé, et - la figure 4 est un schéma synoptique d'un second mode de réalisation détaillé. Le système de paiement figure 1 , comporte quatre entités : - un terminal 1 client de gestion de compte, noté aussi TCGC, représente le client utilisant le terminal à l'aide duquel il crée ou recherche son compte, - un terminal 2 client de paiement, noté TCP, représente le client utilisant le terminal à l'aide duquel il effectue un paiement, - un serveur 3 centralisé de paiement, noté SCP, qui conserve les données relatives aux comptes des clients, - une borne 4 de biens et services, noté BBS, représente l'entité fournissant le(s) bien(s) / service(s) en échange du paiement. Le terminal 1 client de gestion de compte et le terminal 2 client de paiement peuvent être combinés dans un même dispositif physique à la disposition du client. Cependant, pour faciliter la lecture de la description, les deux terminaux seront représentés comme des entités séparées afin de faciliter la compréhension des différents flux d'informations. II doit être compris également que les différents équipements peuvent être des équipements dédiés à cette application ou des équipements multifonctionnels capables d'exécuter cette application. Par exemple, le TCGC peut être un ordinateur de bureau et le TCP un téléphone mobile. Le système, et le procédé, décrits utilisent une suite de jetons (w0, W-],... Wn) ayant les propriétés suivantes : - à partir d'un terme wi de la suite, il est facile de calculer tous les termes précédents Wj, j ≤ i, - à partir d'un terme wi de la suite, il est pratiquement impossible de calculer les termes suivants Wj, j > i. Grâce à ces propriétés, seul le créateur de la suite peut prouver à quelqu'un qu'il connaît le jeton WM alors qu'il n'a divulgué que le jeton w,- et des jetons Wj avec j ≤ i.

Notons que dans la suite de n jetons se trouvent en fait n+1 éléments : ceci est dû au fait que divulguer W0 ne prouve rien sur la connaissance de la suite, puisqu'il ne permet de calculer aucun autre jeton de la suite que lui-même. Dans les utilisations usuelles des suites de jetons, l'élément W0 sert de point de départ dans l'utilisation de la suite, afin d'enregistrer ou d'identifier celle-ci.

Lorsque des jetons d'une suite de jetons (w0, Wi Wn) ont été divulgués, alors, en notant w,- le jeton de plus haut indice déjà divulgué, on peut calculer uniquement les jetons (w0, Wi, ..., wj) de la suite. Si un nouveau jeton de cette suite est divulgué, on donne une valeur à ce jeton, qui est proportionnelle au nombre de jetons de la suite qu'on peut déduire facilement et qui sont autres que W0, Wi,... et w,-. Par exemple, si le jeton w,+i est divulgué, il ne permet de déduire aucun jeton non déjà connu autre que lui-même. On attribue donc à la divulgation de ce jeton une valeur, qu'on appelle une unité. Si c'est le jeton Wi+2 qui est divulgué, les nouveaux jetons de la suite qu'on peut déduire sont lui- même et le jeton w,+i. On attribue donc une valeur de 2 unités à la divulgation de W/+2 si seuls Wo, w-i,...et w,- étaient connus. Si un jeton Wj est divulgué, avec y ≤ /, alors cette divulgation n'a aucune valeur, car le jeton était déjà connu. La valeur des nouveaux jetons vient du fait qu'on peut vérifier que ces jetons sont corrects en les corrélant aux jetons déjà connus. Par conséquent, la divulgation d'un jeton d'une suite dont on ne connaît aucun autre jeton n'a pas de valeur. C'est pour cette raison que la divulgation de W0 n'a pas de valeur, comme nous l'avons dit.

Il est aussi possible de considérer que chaque jeton représente une unité de compte. Ainsi, si le jeton w,- a déjà été divulgué / dépensé, la divulgation du jeton Wj+i correspond à la dépense d'une unité de compte puisque cette divulgation permet de déduire un jeton supplémentaire. Et, pour reprendre l'exemple ci-dessus, la divulgation du jeton Wi+2 correspond à la dépense de deux unités de compte puisqu'il est alors possible de déduire deux jetons supplémentaires. Les suites de jetons ayant les propriétés indiquées ci-dessus peuvent être construites de différentes façons. Un mode de réalisation privilégié est le suivant. Puisqu'il est facile de calculer tout jeton d'indice précédant l'indice d'un jeton donné, il faut commencer par calculer le jeton Wn, puis générer consécutivement les jetons wn-i W0. Pour cela, le jeton Wn est un nombre aléatoire qui doit être cryptographiquement sûr, c'est-à-dire qu'il faut que la probabilité de réussite de la recherche exhaustive soit quasi nulle. Pour créer les n autres éléments wn-i,...,wo de la suite de jetons on utilise une fonction de hachage. Une fonction de hachage h possède les propriétés suivantes : - h opère sur un message M de longueur arbitraire, - le résultat /7(M) possède une longueur /fixe, - étant donné M, il est facile de calculer /7(M), - étant donné M, il est difficile de trouver un autre message M0 tel que /7(M) = /7(M0) Parmi les fonctions de hachage, nous pouvons citer MD5 ("Message Digest 5") ou SHA-1 ("Secure Hash Algorithm"). SHA-1 produit une sortie de 160 bits appelée message abrégé. La fonction de hachage appliquée au nombre aléatoire Wn permet d'obtenir un résultat wn.i (c'est-à-dire un nouveau jeton) auquel on applique à nouveau la fonction de hachage pour obtenir un jeton Wn-2 et ainsi de suite pour obtenir les n éléments wn.1:... ,w0 : h(wn) = wn-i, ..., In(W1) - W0 La suite de jetons est donc (wn, wn-i, wn.2, ..., Wi, W0). Du fait des propriétés des fonctions de hachage, les propriétés des suites de jetons telles que définies plus haut sont vérifiées. Dans le mode de réalisation décrit, seuls le TCGC, le TCP et le SCP manipulent des jetons. Dans un mode de réalisation préféré, le procédé se déroule en 2 phases principales, figure 1. Chacune de ces phases est elle-même divisée en plusieurs étapes. Phase 1 : la phase 1 est exécutée une seule fois par suite de jetons créée : elle correspond à la création et à l'enregistrement de la suite de jetons. Elle comporte au moins les 5 étapes suivantes : - étape 1.1 : le TCGC crée une suite de n jetons (wn, ...,Wi,w0). Il crée un message m contenant Wo et n. Il obtient éventuellement une signature S du message m, qui peut être soit sa propre signature, soit la signature de m par une entité tierce qui l'autorise à créer un compte de n jetons auprès du SCP. Cette signature peut être, par exemple, une signature de type Schnorr, une signature RSA, ou une signature partiellement aveugle. - étape 1.2 : le TCGC envoie des données, dont le message m et la signature S éventuelle, au SCP, en utilisant un canal de communication (par exemple le réseau internet). - étape 1.3 : si le SCP reçoit une signature, il associe la signature à l'entité qui a signé (ce peut être le client dans le cas d'une signature habituelle, ou bien une entité qui certifie l'authentification). Après d'éventuelles vérifications (par exemple, des vérifications liées au débit du Client de la somme de n unités), le SCP conserve en mémoire au moins une partie du message m, qui lui permet de suivre et d'effectuer les modifications du compte du Client : par exemple, le jeton Wo peut lui servir à identifier le compte du Client. - étape 1.4 : le TCGC envoie, à l'aide d'un protocole de communication (par exemple, Bluetooth, IrDA, NFC, WiFi), des données comprenant le jeton Wn et le nombre n au TCP. Il est important de noter que cette étape doit prévoir les mesures de sécurité nécessaires pour qu'un tiers ne puisse pas avoir accès à Wn puisque l'efficacité du procédé dépend du maintien au secret de cette valeur Wn. - étape 1.5 : le TCP stocke tout ou partie des données reçues du TCGC afin de pouvoir effectuer les actes de paiement ultérieurs, qui font l'objet de la phase 2. Dans le cas où le TCGC et le TCP sont une seule et même entité, les étapes 1.4 et 1.5 n'ont pas lieu. Phase 2 : la phase 2 décrit le déroulement de l'acte de paiement faisant intervenir le TCP, le BBS et le SCP. Cette phase est répétée à chaque acte de paiement. Elle comporte au moins les 7 étapes suivantes : - étape 2.1 : cette étape consiste en l'acquisition par le TCP des données nécessaires pour effectuer l'acte de paiement. Cette acquisition peut se faire de plusieurs manières : par exemple, le TCP peut envoyer une requête au BBS contenant des informations sur le bien ou le service désiré, ou bien le Client lui-même peut avoir accès à des informations disponibles directement sur le BBS (par exemple, par une interface écran-clavier sur le BBS). Cette étape comprend l'initialisation d'une communication entre le TCP et le BBS à l'aide d'un protocole de communication qui peut-être sans fil (par exemple, Bluetooth, IrDA, NFC, WiFi), et elle s'achève par l'envoi du BBS au TCP, par exemple sur le même canal de communication, des modalités du paiement (par exemple un identifiant du BBS, un identifiant de transaction, le montant du paiement à effectuer...). Au moins un envoi du BBS vers le TCP est effectué à cette étape, qui peut aussi comprendre plusieurs échanges entre le TCP et le BBS, - étape 2.2 : le TCP calcule le jeton nécessaire au paiement du bien ou du service, en fonction des modalités de paiement reçues à l'étape 1.4, et de l'unité (valeur d'un jeton) : si le montant est de k unités, alors le TCP calcule le jeton Wj+k, où W/ est le dernier jeton envoyé au SCP par le TCP (lors du premier acte de paiement, ce jeton est W0), - étape 2.3 : le TCP envoie (par exemple, par GSM) une requête au SCP contenant le jeton de paiement Wj+k ainsi que d'autres informations, par exemple l'identifiant du BBS, le montant, la nature du bien ou du service, le jeton W0... , - étape 2.4 : le SCP vérifie la validité du jeton reçu, par exemple en vérifiant, la relation Wj est le dernier jeton reçu correspondant à la transaction précédente, - étape 2.5 : le SCP renvoie (par exemple, par GSM) une autorisation de la transaction, qui peut être signée, par exemple à l'aide du mécanisme cryptographique de signature à clé publique, au BBS, - étape 2.6 : le BBS vérifie l'autorisation reçue du SCP (par exemple, grâce au mécanisme de signature à clé publique), - étape 2.7 : le BBS délivre le bien ou le service demandé. Dans le cas où seul le TCP peut établir un canal de communication directe (par exemple, par GSM) avec le SCP, l'étape 2.5 est divisée en 2 étapes 2.5.1 et 2.5.2 : - étape 2.5.1 : le SCP renvoie (par exemple, par GSM) une autorisation de la transaction, qui peut être signée, par exemple à l'aide du mécanisme cryptographique de signature à clé publique, au TCP, - étape 2.5.2 : le TCP transmet l'autorisation au BBS à l'aide d'un protocole de communication qui peut être sans fil (par exemple, Bluetooth, IrDA, NFC, WiFi), et la phase 2 comporte ainsi au moins les étapes 2.1 , 2.2, 2.3, 2.4, 2.5.1, 2.5.2, 2.6 et 2.7. Ayant décrit l'architecture et les différentes étapes d'un mode de réalisation générique, deux modes de réalisation détaillés, dont la différence essentielle réside dans l'utilisation de protocoles de communication différents entre le TCP et le BBS, vont maintenant être décrits. DESCRIPTION DETAILLEE DU MODE DE REALISATION 1 Le premier mode de réalisation, figure 3, est caractérisé par l'utilisation des protocoles suivant entre les entités :

Les entités considérées dans ce mode de réalisation peuvent être : - TCGC : un ordinateur muni d'une interface Bluetooth et d'un accès internet, - SCP : un serveur relié à l'intemet, au réseau GSM - TCP : un téléphone mobile possédant une interface Bluetooth et une interface IrDA ou NFC, GSM - BBS : une borne de paiement de parcmètre possédant une interface IrDA ou NFC (la même que pour le téléphone mobile). Les étapes détaillées sont les suivantes : Phase 1 : - étape 1.1 : le TCGC crée une suite de n jetons (wn, ...,Wi,wo). Pour initialiser la suite, c'est-à-dire calculer Wn, il fait appel à une action du Client (entrée d'une suite de caractères sur un clavier, ou mouvement d'une souris). Les jetons wn.i,..., W0 sont calculés comme indiqué précédemment à l'aide d'une fonction de hachage, par exemple SHA-1. Le TCGC crée le message m=(w0, n). Le TCGC demande à une entité tierce (par exemple, une banque) de signer le message m à l'aide d'une clé privée de signature de cette entité. Le protocole de signature employé est de type Schnorr. On note S la signature de m. - étape 1.2 : le TCGC envoie Reg=(\d, m, S), où Id est l'identité de l'entité qui a signé m, au SCP. La transmission se fait par une liaison sécurisée via internet (par exemple, en utilisant le protocole Secure HTTP). Le TCGC conserve (Id, m, S) en mémoire, - étape 1.3 : le SCP reçoit Reg=(\ά, m, S). Il récupère, grâce à la connaissance de Id, la clé publique de signature de l'entité tierce, et vérifie la validité de S à l'aide de cette clé. Le SCP conserve (wo, n, W0, n, S). Ce quintuplet va lui servir à mémoriser le compte du client. Les deux premiers éléments (w0 et n), ainsi que le dernier (S) du quintuplet restent fixes et vont servir pour identifier le compte du Client, tandis que le troisième et le quatrième, initialisés à W0 et n, seront modifiés suivant le dernier jeton divulgué et la valeur des jetons restants, pour donner l'état courant du compte du Client, - étape 1.4 : le TCGC envoie, via le protocole de communication Bluetooth, le message m'=(wnι n) au TCP, - étape 1.5 : le TCP conserve le couple (wn, n). Phase 2 : Dans cette phase, on suppose que le SCP a conservé un quintuplet (W0, n, w, p, S) et que le TCP a conservé un couple (wn, q). C'est le cas en fin de Phase 1 avec w≈Wo, p=n et q≈n. q représente donc le nombre d'unités de compte disponibles. - étape 2.1.1 : le Client muni du terminal mobile (TCP) désire acheter un bien au BBS. On prend l'exemple de l'achat d'un ticket de stationnement à un parcmètre. Le TCP envoie au BBS un message durée), où ldappii est un identifiant de l'application de paiement utilisée (par exemple, une application de paiement de parcmètre), en utilisant le protocole de communication IrDA (infrarouge), - étape 2.1.2 : le BBS calcule le montant nécessaire au paiement suivant les données du message infoReq. Il attribue un identifiant de transaction Idtransaction à la transaction initialisée avec le TCP. Cet identifiant est obtenu par le BBS en incrémentant le dernier identifiant de transaction qu'il a attribué. Il renvoie au TCP le message lnfoResp=(ldappij, IdBBS, Idtransaction, montant), où IdBBS est un identifiant qui permet au SCP de reconnaître le BBS, par le protocole de communication IrDA. Le BBS conserve InfoResp en mémoire pour identifier la transaction, - étape 2.2 : le TCP rappelle le couple (wn, q) qu'il a conservé en mémoire. Il calcule le nombre k d'unités correspondant au montant contenu dans InfoResp. Si k est strictement plus grand que q, alors Ia transaction est interrompue, car le Client ne possède plus assez de jetons pour payer. Sinon, il calcule w'=hn'q'k(wn) et w=hk(w'), où w=hn'q (wn) est le jeton dévoilé \ors de Ja transaction précédente. - étape 2.3 : le TCP envoie le message Idtransaction, montant, w, q, w', k) au SCP par message SMS sur le réseau GSM, et remplace dans sa mémoire le couple (wn, q) par (wn, q-k), - étape 2.4 : grâce à la donnée de w et q contenus dans PayReq, le SCP retrouve le quintuplet (wo, n, w, q, S). Il vérifie que k correspond au montant contenu dans PayReq et que k est inférieur ou égal à q. Le SCP calcule hk(w') et compare le résultat avec w. S'il y a égalité, le SCP valide le paiement et remplace dans sa mémoire le quintuplet (Wo, n, w, q, S) par le quintuplet (W0, n, w', q-k, S), - étape 2.5.1 : le SCP crée le message auth≈{\dBBs, Idtransaction, montant), et calcule la signature A de auth avec la clé privée de signature du SCP dans un protocole de signature à clé publique de type Schnorr. Il envoie par SMS sur le réseau GSM l'autorisation de transaction PayAuth≈(auth, A) au TCP, - étape 2.5.2 : le TCP transmet PayAuth au BBS par le protocole de communication IrDA, - étape 2.6 : le BBS s'assure que l'identifiant Idées est le sien, puis il vérifie la validité de la signature A à partir de la clé publique du SCP, - étape 2.7 : le BBS délivre le bien demandé correspondant au montant (dans l'exemple du ticket de stationnement, il calcule la durée correspondant au montant indiqué dans PayAuth) et conserve les données de transaction. Il marque la transaction InfoResp comme effectuée. DESCRIPTION DETAILLEE DU MODE DE REALISATION 2 Le second mode de réalisation, figure 4, est caractérisé par l'utilisation des protocoles suivant entre les entités :

Les entités considérées dans ce mode de réalisation peuvent être : - TCGC : un ordinateur muni d'une interface Bluetooth et d'un accès internet, - SCP : un serveur relié à l'internet, - TCP : un téléphone mobile possédant une interface Bluetooth, - BBS : une borne de paiement de parcmètre possédant une interface Bluetooth. Les étapes détaillées sont les suivantes : Phase 1 : - étape 1.1 : le TCGC crée une suite de n jetons (wn,...,wi,wo). Pour initialiser la suite, c'est-à-dire calculer Wn, il fait appel à une action du Client (entrée d'une suite de caractères sur un clavier, ou mouvement d'une souris). Les jetons wn.i, ..., W0 sont calculés, comme indiqué précédemment, à l'aide d'une fonction de hachage, par exemple SHA-1. Le TCGC crée le message m=(w0, n). Le TCGC demande à une entité tierce (par exemple, une banque) de signer le message m à l'aide d'une clé privée de signature de cette entité. Le protocole de signature employé est une signature partiellement aveugle. On note S la signature de m, - étape 1.2 : le TCGC envoie Reg=(ld, m, S), où Id est l'identité de l'entité qui a signé m, au SCP. La transmission se fait par une liaison sécurisée via internet (par exemple, en utilisant le protocole Secure HTTP). Le TCGC conserve (Id, m, S) en mémoire, - étape 1.3 : le SCP reçoit Reg=(ld, m, S). Il récupère, grâce à la connaissance de Id, la clé publique de signature de l'entité tierce, et vérifie la validité de S à l'aide de cette clé. Le SCP conserve (w0, n, W0, n, S). Ce quintuplet va lui servir à mémoriser le compte du client. Les deux premiers éléments (w0 et n), ainsi que le dernier (S) du quintuplet restent fixes et vont servir pour identifier le compte du Client, tandis que le troisième et le quatrième, initialisés à W0 et n, seront modifiés suivant le dernier jeton divulgué et la valeur des jetons restants, pour donner l'état courant du compte du Client, - étape 1.4 : le TCGC envoie, via le protocole de communication Bluetooth, le message m'=(wn, n) au TCP, - étape 1.5 : le TCP conserve le couple {wn, n). Phase 2 : Dans cette phase, on suppose que le SCP a conservé un quintuplet (W0, n, w, p, S) et que le TCP a conservé un couple {wn, q). C'est le cas en fin de Phase 1 avec w=w0, p=n et q=n. - étape 2.1.1 : le Client muni du terminal mobile (TCP) désire acheter un bien au BBS (on peut prendre comme exemple l'achat d'un ticket de stationnement à un parcmètre). Le TCP envoie au BBS un message lnfoReq=(\dappw, durée, c), où ldappii est un identifiant de l'application de paiement utilisée (par exemple, une application de paiement de parcmètre), et c un nombre pseudo-aléatoire calculé par le TCP. La transmission se fait par Bluetooth, - étape 2.1.2 : le BBS calcule le montant nécessaire au paiement suivant les données du message InfoReq. Il attribue un identifiant de transaction Idtransaction à la transaction initialisée avec le TCP. Cet identifiant est obtenu par le BBS en incrémentant le dernier identifiant de transaction qu'il a attribué. Le BBS signe c à l'aide de sa clé secrète dans un protocole de signature à clé publique de type Schnorr. La signature obtenue est notée T, - étape 2.1.3 : le BBS renvoie au TCP le message IdβBs, Idtransaction, montant, c, T), où Idées est un identifiant qui permet au SCP de reconnaître Ie BBS, par le protocole de communication Bluetooth. Le BBS conserve InfoResp en mémoire pour identifier la transaction, - étape 2.2 : le TCP rappelle le couple (wn, q) qu'il a conservé en mémoire. Il calcule le nombre k d'unités correspondant au montant contenu dans InfoResp. Si k est strictement plus grand que q, alors la transaction est interrompue, car le Client ne possède plus assez de jetons pour payer. Sinon, il calcule w'≈lf^fwn) et w=hk(w'), - étape 2.3 : le TCP envoie le message Pay/?eq=(ldBBs, Idtransaction, montant, w, q, w', k, c, T) au SCP par message SMS sur le réseau GSM, et remplace dans sa mémoire le couple (wn, q) par (wn> q-k), - étape 2.4 : le SCP vérifie la validité de T à partir de c et de la clé publique de la borne qu'il connaît grâce à Id6Bs- Grâce à la donnée de w et q contenus dans PayReq, le SCP retrouve le quintuplet {wo, n, w, q, S). Il vérifie que k correspond au montant contenu dans PayReq et que k est inférieur ou égal à q. Le SCP calcule hk(w') et compare le résultat avec w. S'il y a égalité, le SCP valide le paiement et remplace dans sa mémoire le quintuplet (Wo, n, w, q, S) par le quintuplet (w0, n, w', q-k, S), étape 2.5.1 : le SCP crée le message auth=(\άBBs, Idtransaction, montant, c, T), et calcule la signature A de auth avec la clé privée de signature du SCP dans un protocole de signature à clé publique de type Schnorr. Il envoie par SMS sur le réseau GSM l'autorisation de transaction PayAuth=(auth, A) au TCP, - étape 2.5.2 : le TCP transmet PayAuth au BBS par le protocole de communication IrDA, - étape 2.6 : le BBS s'assure que l'identifiant ldBBs est le sien, puis il vérifie la validité de la signature A à partir de la clé publique du SCP, - étape 2.7 : le BBS délivre le bien demandé correspondant au montant (dans l'exemple du ticket de stationnement, il calcule la durée correspondant au montant indiqué dans PayAuth) et conserve les données de transaction. Il marque la transaction InfoResp comme effectuée. Ainsi, le système de paiement à distance permet l'utilisation de terminaux ayant une capacité de calcul limitée, puisque la fonction utilisée pour le calcul des jetons est une fonction arithmétiquement simple et bien connue. De plus, si un paiement n'a jamais eu lieu, le serveur SCP n'est pas en mesure de connaître les jetons correspondants et donc le client garde la maîtrise de ses actes de paiements. Mais, réciproquement, le client ne peut pas réfuter un paiement ayant effectivement eu lieu. En effet, le SCP connaissant les jetons correspondants, cette connaissance est un moyen de preuve que le terminal a bien exécuté une transaction.