<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.0//EN" "ep-patent-document-v1-0.dtd">
<ep-patent-document id="EP03292709A1" file="03292709.xml" lang="fr" country="EP" doc-number="1420373" kind="A1" date-publ="20040519" status="n" dtd-version="ep-patent-document-v1-0">
<SDOBI lang="fr"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHU..SK................</B001EP><B005EP>J</B005EP><B007EP>DIM360 (Ver 1.5  21 Nov 2005) -  1100000/0</B007EP></eptags></B000><B100><B110>1420373</B110><B120><B121>DEMANDE DE BREVET EUROPEEN</B121></B120><B130>A1</B130><B140><date>20040519</date></B140><B190>EP</B190></B100><B200><B210>03292709.7</B210><B220><date>20031030</date></B220><B250>fr</B250><B251EP>fr</B251EP><B260>fr</B260></B200><B300><B310>0214481</B310><B320><date>20021118</date></B320><B330><ctry>FR</ctry></B330></B300><B400><B405><date>20040519</date><bnum>200421</bnum></B405><B430><date>20040519</date><bnum>200421</bnum></B430></B400><B500><B510><B516>7</B516><B511> 7G 07F   7/02   A</B511><B512> 7H 03M  13/09   B</B512></B510><B540><B541>de</B541><B542>Kodeskontroll für virtuelle vorausbezahlte Karte</B542><B541>en</B541><B542>Code control for virtual prepaid card</B542><B541>fr</B541><B542>Contrôle de code de carte pré-payée virtuelle</B542></B540><B590><B598>4</B598></B590></B500><B700><B710><B711><snm>FRANCE TELECOM</snm><iid>01334140</iid><irf>MD/CNET04413</irf><syn>TELECOM, FRANCE</syn><adr><str>6, Place d'Alleray</str><city>75015 Paris</city><ctry>FR</ctry></adr></B711></B710><B720><B721><snm>Frisch, Laurent</snm><adr><str>27 avenue d'Italie</str><city>75013 Paris</city><ctry>FR</ctry></adr></B721><B721><snm>Macario-Rat, Gilles</snm><adr><str>52 rue Jean-Jaurès</str><city>92170 Vanves</city><ctry>FR</ctry></adr></B721><B721><snm>Mouton, Dimitri</snm><adr><str>11 rue Antoine Bourdelle</str><city>75015 Paris</city><ctry>FR</ctry></adr></B721></B720><B740><B741><snm>Cabinet Martinet &amp; Lapoux</snm><iid>00100923</iid><adr><str>43, boulevard Vauban,
B.P. 405 Guyancourt</str><city>78055 St. Quentin Yvelines Cédex</city><ctry>FR</ctry></adr></B741></B740></B700><B800><B840><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LU</ctry><ctry>MC</ctry><ctry>NL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>TR</ctry></B840><B844EP><B845EP><ctry>AL</ctry></B845EP><B845EP><ctry>LT</ctry></B845EP><B845EP><ctry>LV</ctry></B845EP><B845EP><ctry>MK</ctry></B845EP></B844EP></B800></SDOBI><!-- EPO <DP n="8000"> -->
<abstract id="abst" lang="fr">
<p id="pa01" num="0001">Lors de la fabrication d'une carte pré-payée, un premier code (COD1) est appliqué au moins partiellement à un algorithme de redondance produisant une unité de redondance d'un ou deux symboles. Le premier code et l'unité de redondance sont appliqués à un algorithme de mélange, comme une concaténation, produisant un deuxième code (COD2) identifiant la carte. Lors de l'utilisation de la carte, un serveur de service (SS) exécute un algorithme (MG<sup>-1</sup>) inverse de l'algorithme de mélange sur le deuxième code saisi dans un terminal (TE) et produit une deuxième unité de redondance (UR2) et un troisième code (COD3) appliqué à l'algorithme de redondance (AR) produisant une troisième unité de redondance (UR3). Si les deuxième et troisième unités diffèrent par erreur de saisie ou fraude, le troisième code, normalement égal au premier code, n'est pas vérifié ce qui écourte le contrôle de code.<img id="iaf01" file="imgaf001.tif" wi="110" he="93" img-content="drawing" img-format="tif"/></p>
</abstract><!-- EPO <DP n="1"> -->
<description id="desc" lang="fr">
<p id="p0001" num="0001">La présente invention concerne le contrôle d'un code saisi lors de l'utilisation d'une carte pré-payée virtuelle.</p>
<p id="p0002" num="0002">Les cartes pré-payées virtuelles sont des cartes gérées par un serveur de service centralisé. Une carte pré-payée permet à son porteur de recevoir un service de la part d'un fournisseur de service, ce service étant payé par avance lors de l'achat de la carte.</p>
<p id="p0003" num="0003">Le porteur-utilisateur de la carte se connecte au serveur par n'importe quel terminal, comme un téléphone fixe ou mobile, un ordinateur personnel à travers le réseau internet, un terminal vidéotex, etc. L'utilisateur est authentifié par un code d'identification de la carte transmis par le terminal afin que le serveur géré par le fournisseur de service débite un compte correspondant de la carte. En général, le code d'identification de la carte est un numéro à une dizaine de chiffres. Toutes les caractéristiques de la carte, en particulier son crédit, sont gérées par le serveur de service centralisé.</p>
<p id="p0004" num="0004">A la différence des cartes pré-payées non virtuelles qui comprennent nécessairement un moyen électronique constitué par un circuit intégré avec un microcontrôleur et enregistrant toutes les caractéristiques de la carte, y compris par exemple un crédit restant, les cartes pré-payées virtuelles auxquelles se réfère l'invention peuvent être de deux sortes :<!-- EPO <DP n="2"> -->
<ul id="ul0001" list-style="dash" compact="compact">
<li>les cartes pré-payées virtuelles immatérielles, qui sont constituées d'un code d'identification, tel qu'un simple numéro, qui est par exemple lisible sur la carte après grattage ;</li>
<li>les cartes pré-payées virtuelles matérielles, qui sont constituées d'un dispositif physique, par exemple une mémoire, dans lequel le code d'identification a été pré-enregistré et qui généralement génère un code à chaque session d'utilisation de la carte.</li>
</ul></p>
<p id="p0005" num="0005">Le code d'une carte pré-payée virtuelle est préconçu avant la mise en service de la carte généralement selon le procédé montré à la figure 1 mis en oeuvre chez le fabricant de la carte. Un numéro de série NS fourni par le fournisseur de service au fabricant de la carte est choisi parmi un ensemble de numéros de série possibles. Un algorithme A qui peut être symétrique à clé secrète KA, reçoit en tant que données le numéro de série NS et fournit un certificat CERT0. Puis le numéro de série NS et le certificat CERT0 sont appliqués en tant que données à un algorithme de mélange M de préférence symétrique (ou asymétrique) à clé secrète KM pour fournir un code d'identification COD1 de la carte pré-payée virtuelle.</p>
<p id="p0006" num="0006">Le code d'identification COD1 est ainsi produit dans un environnement sécurisé chez le fabricant de cartes de manière à garantir le secret des algorithmes A et M et des clés internes utilisées KA et KM. Aucune redondance de code n'est prévue au cours de cette production de code pour vérifier ultérieurement le code saisi par l'utilisateur.</p>
<p id="p0007" num="0007">Pour obtenir un service de la part du fournisseur de service, l'utilisateur doit d'abord<!-- EPO <DP n="3"> --> prouvé qu'il est en possession de la carte pré-payée. A cet effet, l'utilisateur transmet à travers l'un des terminaux précités le code de la carte pré-payée au serveur centralisé du fournisseur de service qui authentifie la carte en effectuant une opération de "vérification de validité".</p>
<p id="p0008" num="0008">La validité d'une carte pré-payée est vérifiée dans le serveur selon le procédé montré à la figure 2. Le code saisi COD1 est appliqué en tant que données à un algorithme M<sup>-1</sup> qui peut être symétrique ou asymétrique avec clé secrète KM, en tant que algorithme de "démélange" inverse de l'algorithme M. L'algorithme M<sup>-1</sup> fournit deux paramètres NS1 et CERT1. Ces deux paramètres sont potentiellement un numéro de série et un certificat codé tels que ceux déterminés dans la phase de production du code COD1 de la carte. Après séparation des paramètres NS1 et CERT1, le numéro NS1 est appliqué en tant que données à l'algorithme A qui produit un deuxième certificat codé CERT2 de manière analogue à la phase de production de code. Finalement, une comparaison C compare les certificats CERT1 et CERT2 et produit un signal logique "Oui" ou "Non" selon que les deux certificats sont égaux ou différents. Si les deux certificats CERT1 et CERT2 sont égaux, la carte est alors réputée valide et acceptée pour accéder à un service, par exemple après composition d'un mot de passe par l'utilisateur. Cette vérification de validité est effectuée dans un environnement sécurisé de manière à garantir le secret des algorithmes A et M et des clés internes de ceux-ci.</p>
<p id="p0009" num="0009">A cause de l'environnement sécurisé nécessaire à l'exécution de la fonction de vérification, l'opération de vérification est coûteuse. La sécurisation évite que les algorithmes A et M ne<!-- EPO <DP n="4"> --> soient divulgués, ce qui permettrait de produire de vrais codes de carte valides et ainsi de frauder.</p>
<p id="p0010" num="0010">Or la vérification de validité est la seule opération qui vérifie la saisie du code de la carte. Quand bien même il y aurait une erreur de saisie ou une fraude, la vérification de validité coûteuse est encore effectuée.</p>
<p id="p0011" num="0011">L'objectif principal de l'invention est d'empêcher la vérification coûteuse de validité du code saisi d'une carte pré-payée virtuelle dans la majorité des cas où cette vérification rapide et efficace ne s'avère pas nécessaire à la suite notamment d'une erreur de saisie du code par l'utilisateur. Plus généralement, la vérification de code est empêchée lorsqu'un facteur de bruit, y compris d'origine humaine, perturbe le code depuis la saisie de celui-ci via la transmission de celui-ci jusqu'à la réception de celui-ci dans un moyen de traitement de code de carte, tel qu'un serveur, un terminal ou une borne de service. L'invention vise ainsi à détecter et signaler une erreur de saisie du code avant une vérification telle que celle montrée à la figure 2, sans corriger les erreurs de saisie de code.</p>
<p id="p0012" num="0012">Pour atteindre cet objectif, un procédé pour contrôler un premier code d'identification pour carte pré-payée, est caractérisé en ce qu'il comprend les étapes suivantes :
<ul id="ul0002" list-style="dash" compact="compact">
<li>lors de la fabrication de la carte, application au moins d'une partie du premier code à un algorithme de redondance pour produire une première unité de redondance, et application du premier code et de la première unité de redondance à<!-- EPO <DP n="5"> --> un algorithme de mélange produisant un deuxième code, et</li>
<li>lors de l'utilisation de la carte, après saisie du deuxième code, application du deuxième code à un algorithme inverse de l'algorithme de mélange pour produire un troisième code et une deuxième unité de redondance, application du troisième code à l'algorithme de redondance pour produire une troisième unité de redondance, comparaison des deuxième et troisième unités de redondance, et vérification du troisième code seulement lorsque les deuxième et troisième unités de redondance sont égales.</li>
</ul></p>
<p id="p0013" num="0013">Ainsi, le troisième code susceptible d'être identique au premier code d'identification de la carte selon la technique antérieure, c'est-à-dire à ladite partie du premier code, n'est pas vérifié selon l'invention lorsque les deuxième et troisième unités de redondance sont différentes, c'est-à-dire dans la majorité des tentatives de fraude et essais systématiques ou aléatoires de codes. Le contrôle de code est alors écourté.</p>
<p id="p0014" num="0014">Par exemple, l'algorithme de redondance est un codage linéaire en blocs de symboles et l'unité de redondance comprend un nombre de symboles inférieur à celui de ladite partie de premier code ; typiquement, l'unité de redondance peut comprendre un ou au plus deux symboles alphanumériques afin de limiter la longueur du deuxième code à saisir lorsque par exemple celui-ci contient l'unité de redondance.</p>
<p id="p0015" num="0015">Initialement lors de la fabrication de la carte, selon une première réalisation de l'invention, le procédé comprend en outre, une application d'un numéro de série de la carte à un algorithme prédéterminé pour produire un certificat codé et une<!-- EPO <DP n="6"> --> application du numéro de série et du certificat codé en tant que données à un deuxième algorithme de mélange qui produit le premier code. La vérification du troisième code consiste alors en une application du troisième code à un algorithme inverse dudit deuxième algorithme de mélange pour produire un premier numéro de série et un premier certificat codé, une application dudit premier numéro de série à l'algorithme prédéterminé qui produit un deuxième certificat codé, et une comparaison des premier et deuxième certificats codés afin de valider la carte lorsque les deux certificats comparés sont égaux.</p>
<p id="p0016" num="0016">Selon une deuxième réalisation de l'invention, le procédé comprend initialement lors de la fabrication de la carte, une application d'un numéro de série initial de la carte à un algorithme prédéterminé pour produire un certificat codé initial, ladite partie du premier code appliquée à l'algorithme de redondance étant constituée par le numéro de série initial et/ou le certificat codé initial, et le premier code étant constitué par la concaténation du numéro de série initial et du certificat codé initial. La vérification du troisième code comprend alors une segmentation de celui-ci en un premier certificat codé et un premier numéro de série, une application du premier numéro de série à l'algorithme prédéterminé pour produire un deuxième certificat codé, et une comparaison des premier et deuxième certificats codés afin de valider la carte lorsque les deux certificats codés comparés sont égaux.</p>
<p id="p0017" num="0017">Simplement, l'algorithme de mélange peut être une concaténation du premier code et de la première unité de redondance, et l'algorithme inverse de l'algorithme de mélange peut être une segmentation du<!-- EPO <DP n="7"> --> deuxième code saisi en le troisième code et la deuxième unité de redondance.</p>
<p id="p0018" num="0018">En pratique, lors de l'utilisation de la carte, le deuxième code peut être saisi dans un terminal qui le transmet à un serveur de service dans lequel l'algorithme inverse de l'algorithme de mélange, l'algorithme de redondance, la comparaison et la vérification du troisième code sont exécutés.</p>
<p id="p0019" num="0019">D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs réalisations préférées de l'invention en référence aux dessins annexés correspondants dans lesquels :
<ul id="ul0003" list-style="dash" compact="compact">
<li>la figure 1 est un algorithme de production de code de carte pré-payée selon la technique antérieure déjà commentée ;</li>
<li>la figure 2 est un algorithme de vérification de code selon la technique antérieure déjà commentée ;</li>
<li>la figure 3 est un algorithme de production de codes de carte pré-payée dépendant d'une unité de redondance selon l'invention ;</li>
<li>la figure 4 est un algorithme de vérification de codes de carte pré-payée avec vérification d'unité de redondance selon l'invention ;</li>
<li>la figure 5 est un algorithme de production de codes de carte pré-payée combinant les figures 1 et 3 selon une deuxième réalisation de l'invention ; et</li>
<li>la figure 6 est un algorithme de vérification de codes de carte pré-payée produit selon la figure 5 et combinant les figures 2 et 4 selon la deuxième réalisation de l'invention.</li>
</ul><!-- EPO <DP n="8"> --></p>
<p id="p0020" num="0020">Selon la première réalisation de l'invention montrée à la figure 1, l'amélioration apportée par l'invention intervient dans un ordinateur programmé à cet effet chez un fabricant de carte, après la production du premier code COD1 lors de la fabrication d'une carte pré-payée virtuelle immatérielle ou matérielle.</p>
<p id="p0021" num="0021">Le code COD1 est par exemple fourni par exécution de l'algorithme A et de l'algorithme M selon la figure 1 à partir du numéro de série NS de la carte, constituant un code initial COD0. Selon un autre exemple, le premier code COD1 est choisi aléatoirement au moyen d'un générateur pseudo-aléatoire et stocké dans une base de données pour une éventuelle comparaison chez le fournisseur de service ou chez le fabricant de carte. Selon encore un autre exemple, le code COD1 est généré dynamiquement dans un petit dispositif électronique portable, tel qu'un jeton électronique portable doté d'un transducteur électro-acoustique miniature et constituant un moyen de paiement électronique de service par l'intermédiaire d'un téléphone, de manière à transmettre le code COD1 avec une unité de redondance correspondante selon l'invention, par voie téléphonique vers un serveur de service, pour chaque action sur un bouton de commande du jeton électronique.</p>
<p id="p0022" num="0022">En général, le premier code COD1 est constitué d'une dizaine de symboles alphanumériques qui seront codés, lors de l'utilisation de la carte, en code binaire par un terminal du type ordinateur personnel ou téléphone numérique, ou en code à multifréquence DTMF (Dual Time MultiFrequency) dans un téléphone ou jeton électronique avec générateur à multifréquence.<!-- EPO <DP n="9"> --></p>
<p id="p0023" num="0023">L'invention ajoute deux étapes pour produire un deuxième code COD2 qui constitue maintenant le code de la carte pré-payée virtuelle.</p>
<p id="p0024" num="0024">Tout d'abord, après l'étape initiale P1 montrée à la figure 1, le premier code COD1 est appliqué, en tant que données, à un algorithme de redondance prédéterminé AR à une étape P2. L'exécution de l'algorithme de redondance AR produit une première unité de redondance UR1 dont le nombre de symboles alphanumériques codés en code binaire est inférieur à celui du premier code COD1, ou du code initial NS = COD0. L'unité de redondance UR1 comporte typiquement un ou deux symboles.</p>
<p id="p0025" num="0025">L'unité de redondance constitue un code de correction d'erreurs qui permet de vérifier l'intégrité de la suite des symboles composant le premier code COD1 lorsque celui-ci a été saisi avec des erreurs. Par exemple, l'algorithme de redondance AR est basé sur un codage linéaire en blocs de symboles du type Reed-Solomon, Luhn ou Hamming. L'algorithme AR impose une corrélation élevée entre le code COD1 et l'unité de redondance UR1 de manière à assurer que toute légère modification dans le code COD1, tel qu'au moins un symbole erroné, voire un ou plusieurs bits erronés dans un ou plusieurs symboles codés dans le code COD1, modifient le résultat UR1 de l'algorithme AR. Comparativement à l'algorithme A selon la technique antérieure montrée à la figure 1, une modification d'un bit dans le code initial NS = COD0 ne modifie pas obligatoirement le résultat CERT de l'algorithme A.</p>
<p id="p0026" num="0026">Puis le code COD1 et l'unité de redondance UR1 sont concaténés selon cet ordre pour être appliqués en tant que données à un algorithme de mélange MG à l'étape P3. L'exécution de l'algorithme MG fournit un<!-- EPO <DP n="10"> --> deuxième code COD2 qui constitue le code de la carte pré-payée virtuelle, à la place du premier code COD1 selon la technique antérieure. Le code COD2 est gravé sur la carte lorsqu'elle est immatérielle, ou est mémorisé dans la carte lorsqu'elle est matérielle.</p>
<p id="p0027" num="0027">L'algorithme MG peut être un algorithme symétrique à clé secrète ou un algorithme asymétrique à clé publique et clé privée ; de préférence, la clé publique est appliquée à l'algorithme MG et fournie par le fournisseur de service gérant le serveur vérifiant la validité de la carte. Selon un exemple simple, l'algorithme de mélange MG est constitué simplement par la concaténation du code COD1 et de l'unité de redondance UR1. Selon un autre exemple, l'algorithme de mélange MG est une permutation prédéterminée entre des symboles ou des bits du code COD1 et de l'unité de redondance UR1 concaténés.</p>
<p id="p0028" num="0028">Lors de l'utilisation de la carte pré-payée virtuelle, le deuxième code COD2 est lu sur la carte et saisi sur le clavier d'un terminal TE tel qu'un téléphone ou un radiotéléphone, un ordinateur personnel ou un terminal vidéotex si la carte est du type immatériel. Le deuxième code COD2 est saisi par un lecteur de carte dans une mémoire incluse dans la carte sous la commande du terminal doté du lecteur de carte, si la carte est du type matériel. Puis, le code saisi COD2 est transmis depuis le terminal TE vers le serveur de service SS, ou en variante vers un terminal ou une borne publique de service.</p>
<p id="p0029" num="0029">Dans le serveur de service SS est ensuite exécutée la vérification du code COD2 comprenant des étapes V1 à V4 montrées à la figure 4. En variante, la fonction de vérification est implémentée dans le terminal lui-même, à la place du serveur de service,<!-- EPO <DP n="11"> --> lorsque le terminal donne accès lui-même à un service.</p>
<p id="p0030" num="0030">A l'étape V1, le code saisi COD2 reçu par le serveur SS est appliqué en tant que données à un algorithme de "démélange" MG <sup>-1</sup> inverse de l'algorithme de mélange MG. Cependant l'algorithme MG<sup>-1</sup> est l'algorithme MG lui-même lorsque celui-ci est symétrique, ou bien asymétrique. L'algorithme de mélange exécuté produit un troisième code COD3 qui est susceptible d'être identique au premier code COD1 et qui est appliqué à l'algorithme de redondance AR à l'étape V2. Puis à l'étape V3, une deuxième unité de redondance UR2 séparée du code COD3 en sortie de l'algorithme MG<sup>-1</sup> est comparée à une troisième unité de redondance UR3 produite par l'algorithme de redondance AR à l'étape V2. Si les unités de redondance comparées UR2 et UR3 sont différentes, alors il est certain que le code COD2 qui a été saisi est erroné et n'est pas un code de carte pré-payée valide. Cette invalidité de code COD2 résulte par exemple d'une erreur de saisie de celui-ci ou d'une tentative de fraude par saisie aléatoire d'un code. Dans ce cas, la carte pré-payée virtuelle est refusée et le serveur SS arrête la vérification de code sans procéder à la vérification du code COD3 en tant que premier code COD1. Le serveur SS signale alors une erreur au terminal TE invitant l'utilisateur de la carte à saisir le code COD2 à nouveau.</p>
<p id="p0031" num="0031">En revanche, si les deuxième et troisième unités de redondance UR2 et UR3 sont égales, le serveur SS poursuit la vérification de code à l'étape V4 en appliquant le code COD3, en tant que code COD1, à l'algorithme de "démélange" M<sup>-1</sup> selon la figure 2. Une identité des certificats codés comparés CERT1 et CERT2 valide ensuite le code COD3, et par suite le<!-- EPO <DP n="12"> --> code saisi COD2, et le serveur SS accepte la carte pré-payée virtuelle.</p>
<p id="p0032" num="0032">Selon une deuxième réalisation de l'invention montrée aux figures 5 et 6, les figures 1 et 3 sont imbriquées lors de la fabrication de la carte afin que l'algorithme de redondance ARa soit appliqué sur le numéro de série initial NS et/ou sur le certificat codé CERT0 dépendant du numéro de série initial NS, et après la saisie du deuxième code COD2a, la vérification de celui-ci résulte d'une imbriquation des vérifications selon les figures 2 et 4.</p>
<p id="p0033" num="0033">Comme montré à la figure 5, le numéro de série initial NS est appliqué à l'algorithme A à une étape P1a de manière à produire le certificat codé CERT0, comme selon la figure 1.</p>
<p id="p0034" num="0034">Puis à une étape P2a, le numéro de série initial NS et le certificat codé CERT sont concaténés et appliqués à l'algorithme de redondance ARa afin de produire une unité de redondance UR1a. Lorsque l'algorithme de mélange M dans la figure 1 est réduit à une concaténation, l'unité UR1a est égale à l'unité UR1 selon la figure 3. En variante, seulement le numéro de série initial NS est appliqué à l'algorithme ARa, ou seulement le certificat codé CERT0 est appliqué à l'algorithme ARa.</p>
<p id="p0035" num="0035">Le numéro de série initial NS et le certificat codé CERT0 produit à l'étape P1a sont concaténés pour former ensemble un premier code COD1a et sont appliqués avec l'unité de redondance UR1a, en tant que données, à un algorithme de mélange MGa à l'étape P3a. L'algorithme MGa peut être de l'un des types définis pour les algorithmes M et MG. Cependant, tout autre ordre dans la concaténation des variables NS, CERT0 et UR1a peut être sélectionné lors de leur<!-- EPO <DP n="13"> --> application à l'algorithme MGa. L'exécution de l'algorithme MGa produit un deuxième code COD2a qui constitue le code d'identification de la carte pré-payée virtuelle et qui est gravé ou mémorisé dans la carte selon le type de celle-ci. L'algorithme de mélange M est ainsi supprimé dans la figure 5 comparativement à la figure 1.</p>
<p id="p0036" num="0036">Selon un exemple de réalisation, le numéro de série est une suite de 23 symboles alphanumériques en code binaire, le certificat codé CERT0 est une suite de 22 symboles en code binaire, et le deuxième code COD2 généré par l'algorithme montré à la figure 5 est une suite de 9 symboles en code binaire. L'algorithme de redondance ARa ou AR est un algorithme de détection d'erreur tel que si dans un groupe de 3 symboles consécutifs dans les données appliquées telles que le numéro de série NS et/ou le certificat codé CERT0, ou bien telles que le premier code COD1, il y a une, deux ou trois erreurs, ces erreurs sont systématiquement détectées au cours de la vérification du code saisi COD2a ou COD2. L'unité de redondance UR1a, ou UR1, est composée de deux symboles alphanumériques. L'algorithme de mélange MGa, ou MG, est une simple concaténation, l'unité de redondance UR1a étant accolée à la fin de la concaténation des paramètres NS et CERT0 pour former le code COD2a selon la figure 5, ou l'unité de redondance UR1 étant accolée à la fin du premier code COD1 pour former le code COD2 selon la figure 3.</p>
<p id="p0037" num="0037">En référence maintenant à la figure 6, après la saisie du deuxième code COD2a, analogue à la saisie du code 2, le code COD2a est par exemple transmis depuis le terminal TEa de l'utilisateur de la carte dans le serveur de service SSa dans lequel des étapes V1a à V4a sont exécutées.<!-- EPO <DP n="14"> --></p>
<p id="p0038" num="0038">A l'étape V1a, le deuxième code saisi COD2a est appliqué à un algorithme MGa<sup>-1</sup> inverse de l'algorithme de mélange MGa de manière à produire un troisième code COD3a concaténé avec une deuxième unité de redondance UR2a. Le code COD3a est segmenté en un certificat codé CERT1a qui est susceptible d'être égal au certificat codé initial CERT0 et en un numéro de série NS1a qui est susceptible d'être égal au numéro de série initial NS. Les paramètres CERT1a et NS1a concaténés sont appliqués en tant que données à l'algorithme de redondance ARa à l'étape V2a. L'unité de redondance UR2a fournie par l'algorithme MGa<sup>-1</sup> et une troisième unité de redondance UR3a produite par l'algorithme ARa sont comparées à l'étape V3a. Si les unités de redondance UR2a et UR3a ne sont pas égales, la vérification du code saisi COD2a est arrêtée, la carte est refusée et une erreur de saisie ou une tentative de fraude est signalée par le serveur SSa au terminal TEa sans que le code COD3a (CERT1a, NS1a) soit vérifié.</p>
<p id="p0039" num="0039">Par contre, si les unités de redondance UR2a et UR3a sont égales, la vérification de code est poursuivie dans le serveur SSa à l'étape V4a. Le numéro de série NS1a produit par l'algorithme MGa<sup>-1</sup> est appliqué à l'algorithme A qui fournit un deuxième certificat codé CERT2a qui est comparé au certificat codé CERT1a, d'une manière analogue à la figure 2. La carte est validée lorsque les deux certificats comparés CERT1a et CERT2a sont égaux. Le serveur de service SSa donne alors accès à un service demandé par l'utilisateur de la carte, par exemple après vérification d'un mot de passe.</p>
</description><!-- EPO <DP n="15"> -->
<claims id="claims01" lang="fr">
<claim id="c-fr-0001" num="0001">
<claim-text>Procédé pour contrôler un premier code d'identification pour carte pré-payée, <b>caractérisé en ce qu'</b>il comprend les étapes suivantes :
<claim-text>- lors de la fabrication de la carte, application (P2, P2a) au moins d'une partie (COD0, CERT0) du premier code (COD1, COD1a) à un algorithme de redondance (AR, ARa) pour produire une première unité de redondance (UR1, UR1a), et application (P3, P3a) du premier code et de la première unité de redondance à un algorithme de mélange (MG, MGa) produisant un deuxième code (COD2, COD2a), et</claim-text>
<claim-text>- lors de l'utilisation de la carte, après saisie du deuxième code (COD2, COD2a), application (V1, V1a) du deuxième code à un algorithme (MG<sup>-1</sup>, MGa<sup>-1</sup>) inverse de l'algorithme de mélange pour produire un troisième code (COD3, COD3a) et une deuxième unité de redondance (UR2, UR2a), application du troisième code à l'algorithme de redondance (AR, ARa) pour produire une troisième unité de redondance (UR3, UR3a), comparaison (V3, V3a) des deuxième et troisième unités de redondance, et vérification (V4, V4a) du troisième code (COD3, COD3a) seulement lorsque les deuxième et troisième unités de redondance sont égales.</claim-text></claim-text></claim>
<claim id="c-fr-0002" num="0002">
<claim-text>Procédé conforme à la revendication 1, selon lequel la première unité de redondance (UR1, UR1a) comprend un nombre de symboles inférieur à celui de ladite partie de premier code.</claim-text></claim>
<claim id="c-fr-0003" num="0003">
<claim-text>Procédé conforme à la revendication 2, selon lequel la première unité de redondance (UR1, UR1a) comprend au plus deux symboles alphanumériques.<!-- EPO <DP n="16"> --></claim-text></claim>
<claim id="c-fr-0004" num="0004">
<claim-text>Procédé conforme à l'une quelconque des revendications 1 à 3, selon lequel ladite partie du premier code est confondue avec le premier code (COD1) .</claim-text></claim>
<claim id="c-fr-0005" num="0005">
<claim-text>Procédé conforme à la revendication 4, comprenant<br/>
   initialement (P1) lors de la fabrication de la carte, une application d'un numéro de série (NS) de la carte à un algorithme prédéterminé (A) pour produire un certificat codé (CERT0) et une application du numéro de série et du certificat codé en tant que données à un deuxième algorithme de mélange (M) qui produit le premier code (COD1), et<br/>
   la vérification (V4) du troisième code (COD3) consiste en une application du troisième code (COD3) à un algorithme (M <sup>-1</sup>) inverse dudit deuxième algorithme de mélange pour produire un premier numéro de série (NS1) et un premier certificat codé (CERT1), une application dudit premier numéro de série à l'algorithme prédéterminé (A) qui produit un deuxième certificat codé (CERT2), et une comparaison des premier et deuxième certificats codés (CERT1, CERT2) afin de valider la carte lorsque les deux certificats comparés sont égaux.</claim-text></claim>
<claim id="c-fr-0006" num="0006">
<claim-text>Procédé conforme à l'une quelconque des revendications 1 à 3, selon lequel le premier code (COD1) est généré aléatoirement.</claim-text></claim>
<claim id="c-fr-0007" num="0007">
<claim-text>Procédé conforme à l'une quelconque des revendications 1 à 3, comprenant<br/>
   initialement lors de la fabrication de la carte, une application (P1a) d'un numéro de série initial<!-- EPO <DP n="17"> --> (NS) de la carte à un algorithme prédéterminé (A) pour produire un certificat codé initial (CERT0), ladite partie du premier code (COD1a) appliquée à l'algorithme de redondance (ARa) étant constituée par le numéro de série initial (NS) et/ou le certificat codé initial (CERT0), et le premier code (COD1a) étant constitué par la concaténation du numéro de série initial (NS) et du certificat codé initial (CERT0), et<br/>
   la vérification du troisième code (COD3a) comprenant une segmentation de celui-ci en un premier certificat codé (CERT1a) et un premier numéro de série (NS1a), une application du premier numéro de série à l'algorithme prédéterminé (A) pour produire un deuxième certificat codé (CERT2a), et une comparaison des premier et deuxième certificats codés (CERT1a, CERT2a) afin de valider la carte lorsque les deux certificats codés comparés sont égaux.</claim-text></claim>
<claim id="c-fr-0008" num="0008">
<claim-text>Procédé conforme à 'une quelconque des revendications 1 à 7, selon lequel l'algorithme de mélange (MG, MGa) est une concaténation du premier code (COD1, COD1a) et de la première unité de redondance (UR1, UR1a), et l'algorithme (MG<sup>-1</sup>, MGa<sup>-1</sup>) inverse de l'algorithme de mélange est une segmentation du deuxième code saisi (COD2, COD2a) en le troisième code (COD3, COD3a) et la deuxième unité de redondance (UR2, UR2a).</claim-text></claim>
<claim id="c-fr-0009" num="0009">
<claim-text>Procédé conforme à l'une quelconque des revendications 1 à 8, selon lequel, lors de l'utilisation de la carte, le deuxième code (COD2, COD2a) est saisi dans un terminal (TE1, TEa) qui le transmet à un serveur de service (SS, SSa) dans lequel l'algorithme (MG<sup>-1</sup>, MGa<sup>-1</sup>) inverse de<!-- EPO <DP n="18"> --> l'algorithme de mélange, l'algorithme de redondance (AR, ARa), la comparaison (V3, V3a) et la vérification (V4, V4a) du troisième code sont exécutés.</claim-text></claim>
</claims><!-- EPO <DP n="19"> -->
<drawings id="draw" lang="fr">
<figure id="f0001" num=""><img id="if0001" file="imgf0001.tif" wi="134" he="214" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="20"> -->
<figure id="f0002" num=""><img id="if0002" file="imgf0002.tif" wi="164" he="226" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="21"> -->
<figure id="f0003" num=""><img id="if0003" file="imgf0003.tif" wi="161" he="230" img-content="drawing" img-format="tif"/></figure>
</drawings><!-- EPO <DP n="9000"> -->
<search-report-data id="srep" lang="fr" srep-office="EP" date-produced=""><doc-page id="srep0001" file="srep0001.tif" wi="151" he="229" type="tif"/><!-- EPO <DP n="9001"> --><doc-page id="srep0002" file="srep0002.tif" wi="156" he="231" type="tif"/></search-report-data>
</ep-patent-document>
