FR 3059123 A1 20180525 FR 1661231 A 20161118 1 Procédé de mise à jour d'une valeur d'une donnée d'une puce dans un environnement réseau contraint. DOMAINE DE L'INVENTION L'invention a pour objet un procédé de mise à jour d'une valeur d'une donnée d'une puce dans un environnement réseau contraint. Le domaine de l'invention est principalement celui de l'utilisation de puces, comportant des données et utilisables au sein d'un lieu ou d'un territoire défini, pour effectuer des transactions commerciales ou pour valider un droit d'accès. Un lieu ou un territoire défini rassemble sur un même site une pluralité de personnes venues pour interagir. Cette notion de territoire défini se réfère à toute situation de type « circuit fermé » aussi appelée « closed loop system ». On parle encore d'écosystème autonome ou privatif. Des lieux utilisés dans de telles circonstances sont, par exemple, un parc, un stade, un camping, une maison de retraite, un réseau de transport, une base militaire, un festival, une cantine, une station de ski. On est donc dans des schémas ponctuels, cycliques (saisonnier, scolaire, mensuel, annuel ou autre) ou durables L'invention s'applique particulièrement lorsque que le lieu où le territoire défini est difficilement connecté et/ou connectable à un réseau global de type internet. Dans l'invention la contrainte prise en compte est la bande passante disponible. ETAT DE L'ART Dans les lieux et territoires définis où des biens et services sont disponibles, il est fréquent de prévoir que des transactions électroniques puissent être effectuées à des fins de validations de droits d'usage ou de droits d'appropriation. Un droit d'usage est le droit d'entrer, d'utiliser, ou de participer à une activité ou d'avoir accès à une consommation. Le droit d'appropriation est le droit d'obtenir un bien ou un service. Ces transactions électroniques s'appuient : - côté utilisateur sur une puce. L'utilisateur est ici celui qui souhaite obtenir un bien, un service ou un droit, - côté prestataire sur l'exploitation des données de la puce via une chaîne incluant au moins : un lecteur, un réseau et un serveur central distant. 3059123 2 La transaction électronique se conclut par une mise à jour de données sur le serveur central distant et l'émission par ce dernier d'un message de libération indiquant la validité des droits d'usage ou d'appropriation. 5 Un problème dans de nombreux lieux et territoires est la couverture réseau seule et/ou rapportée aux nombres de personnes simultanées sur le lieu. Dans de telles circonstances il est impossible d'utiliser des moyens de transactions classiques, c'est-à-dire des moyens requérant une connexion à un serveur central, par exemple : - un serveur bancaire du type serveur d'autorisation pour paiement par carte 10 bancaire, - un serveur de régie de bicyclette pour la gestion d'un parc de bicyclettes dans une agglomération, - un serveur de la sécurité sociale pour permettre le paiement et le contrôle d'une prestation médicale ou l'achat de médicament 15 - ... les exemples ne manquent pas. Chacun des exemples précédents met en oeuvre une puce qui est présentée à une borne elle-même connectée à un serveur central via un réseau à haut débit. Cela permet d'effectuer des transactions en temps réel, lesdites transactions incluant le serveur central. 20 Dans l'état de la technique, après analyse, on constate que la puce est utilisée à des fins d'authentification et de sécurisation. Les données de références, c'est-à-dire celles faisant fois, sont enregistrées sur un serveur central et distant. Ces situations se retrouvent également indépendamment d'un isolement en fonction de l'infrastructure de communication qui peut être insuffisante relativement à une 25 fréquentation ponctuelle. Ces situations se retrouvent également en fonction de la qualité de l'infrastructure de communication. SOLUTION PROPOSEE PAR L'INVENTION 30 Dans l'invention on résout ces problèmes par une combinaison d'étapes qui mise en oeuvre ensembles permettent de s'affranchir d'une quasi absence de réseau. La mise en oeuvre de l'invention permet également de s'affranchir d'un réseau instable ou intermittent. 3059123 3 Dans l'invention on utilise une puce pré-chargée. Ici par pré-chargé il faut comprendre que la puce est configurée pour stocker des données correspondant à un crédit et ou à une autorisation. Ce stockage est réalisé avec une structure de données, et des valeurs, prédéfinies. 5 Dans l'invention une puce est présentée à un terminal qui établit un dialogue avec la puce. Le résultat du dialogue est une mise à jour des données de crédit enregistrées sur la puce. De manière à rentre le procédé encore plus tolérant, la mise à jour des données peut se faire depuis une pluralité de terminaux réparti sur le site de la manifestation. En 10 effet au moins un terminal est en connaissance d'une mise à jour à effectuer. Une mise à jour à effectuer est associée à un numéro de version. Une donnée dans la puce est elle aussi associée à un numéro de version. A la fin de la mise à jour le numéro de version de la donnée de la puce est lui aussi mis à jour ce qui permet de ne pas rejouer plusieurs fois une mise à jour : seule les mises à jours ayant des 15 numéros de version supérieurs au numéro de version de la donnée sont mise en oeuvres. Dans ce dessein, un aspect de l'invention se rapporte à un procédé de mise à jour d'au moins une valeur d'une donnée d'une puce, la puce comportant un identifiant, 20 par un terminal, la donnée mise à jour étant associée à une valeur de numéro de version, la mise à jour comportant les étapes suivantes : - sollicitation sans contact du terminal par la puce en vue de la réalisation d'une action locale, - authentification de la puce, 25 - sélection d'ordres parmi une liste d'ordres enregistrés dans une mémoire d'ordres du terminal, chaque ordre de la liste d'ordres étant associé à un numéro de version et à un identifiant de puce, la sélection produisant une sous-liste comportant les ordres dont l'identifiant de puce est égal à l'identifiant de la puce et dont la valeur de numéro de version est supérieure au à la valeur de 30 numéro de version de la donnée à mettre à jour, - calcul d'une valeur de version maximale, la valeur de version maximale étant la valeur la plus grande dans l'ensemble formé de la valeur du numéro de version associé à la donnée à mettre à jour et des valeurs de numéro de version des ordres sélectionnés, 3059123 4 - calcul d'une nouvelle valeur de donnée, la nouvelle valeur étant la résultante de la liste d'ordres sélectionnés, de l'action locale et de la valeur de la donnée à mettre à jour, une action locale étant assimilable à un ordre, - mise à jour de la donnée de la puce par l'écriture de la nouvelle valeur 5 résultante et de la valeur de version maximale. Outre les caractéristiques principales qui viennent d'être mentionnées dans le paragraphe précédent, le procédé selon l'invention peut présenter une ou plusieurs lo caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon les combinaisons techniquement possibles: - la donnée, et donc les ordres, sont également associé à une valeur d'identifiant de donnée. - une valeur de donnée est un compteur numérique. 15 - la puce comporte trois valeurs à mettre à jour. BREVE DESCRIPTION DES FIGURES D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit, en référence aux figures annexées, qui illustrent : 20 - La figure 1 : une illustration de moyens pour la mise en oeuvre du procédé selon l'invention. - La figure 2 : une illustration d'étape du procédé selon l'invention. Pour plus de clarté, les éléments identiques ou similaires sont repérés par des 25 signes de référence identiques sur l'ensemble des figures. L'invention sera mieux comprise la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci sont présentées à titre indicatif et nullement limitatif de l'invention. 30 DESCRIPTION DETAILLEE La figure 1 montre un dispositif 100 carte à puce comportant une puce 105. La carte 100 est essentiellement un support pour la puce. Dans la présente description on utilise indifféremment les termes puce et carte à puce pour désigner la puce, étant entendu qu'une puce a besoin d'un support 3059123 5 physique qui peut être différent d'une carte. Un tel support peut être, par exemple non limitatif : - un bracelet, - un téléphone mobile, 5 - une carte, - -... La figure 1 illustre que la puce 105 comporte : - Un microprocesseur 110, 10 - Une mémoire 120. Dans la pratique il s'agit d'une ou plusieurs mémoires intégrées sur la puce. Pour la description on considère qu'il s'agit d'une mémoire unique. La mémoire 120 comporte au moins trois zones : o Une zone 120.1 comportant des codes instructions d'un système d'exploitation de la puce, 15 o Une zone 120.2 de données comportant des données manipulées par le procédé selon l'invention, o Une zone 120.3 identifiant comportant un identifiant unique de la puce. - Une interface radio 130. Dans le cadre de l'invention il s'agit d'une interface apte à supporter des communications sans contact. Une telle interface est 20 aussi appelée une interface RFID (Radio Frequency Identification pour identification radio fréquence) ou encore NFC (Near Field Communication pour communication en champ proche). En générale il s'agit de communication dans une bande de fréquence proche des 13.56Mhz, mais cela n'est pas limitatif. Il peut aussi s'agir d'une communication ZigBee. 25 Le microprocesseur 110 de la puce 105 et la mémoire 120 de la puce 105 sont interconnectés par un premier bus 150. Le microprocesseur 110 de la puce 105 et l'interface 130 radio de la puce 105 sont interconnectés par un deuxième bus 160. 30 La figure 1 montre que la zone 120.2 de données de la puce 105 est structurée pour permettre la gestion d'enregistrements. Dans l'exemple de la figure la zone de données est structurée en table. Dans la pratique on peut utiliser un autre mode de matérialisation d'une structure. Ces modes sont connus comme au moins : - enregistrement à longueur fixe, 3059123 6 - enregistrement délimité, - fichier XML, - fichier JSON, 5 Cette liste n'est pas limitative. Dans l'exemple de la figure 1 une ligne correspond à un enregistrement, une colonne correspond à une propriété de l'enregistrement. On dit aussi que les valeurs d'un même enregistrement sont associées ou encore en relation. La zone 120.2 de données de la puce 105 permet d'enregistrer des données chaque 10 donnée est un enregistrement de droit. Un enregistrement de droit comporte au moins les propriétés suivantes : - Une propriété 120.2.1 de valeur qui permet d'enregistrer une valeur, - Une propriété 120.2.2 de version qui permet d'enregistre un numéro de version. 15 Dans une variante de l'invention un enregistrement comporte aussi la propriété suivante : - Une propriété 120.2.3 d'identifiant de donnée qui permet d'enregistre un identifiant unique pour l'enregistrement. Grace à la valeur de cette propriété on peut désigner sans ambiguïté un enregistrement dans la collection 20 d'enregistrement que peut stocker la zone 120.2 de données de la puce 105. La valeur d'un tel identifiant peut être numérique ou alphanumérique sans que cela impacte l'invention. Ici on note que le recours à une propriété identifiant n'est qu'une option possible pour la désignation sans ambiguïté d'un enregistrement. Une autre possibilité est que ce 25 soit la position dans la collection qui identifie l'enregistrement. On parle alors aussi d'un indice, ou d'un index, dans un tableau. Dans un tel cas de figure on dit aussi que l'on a procédé à un « codage en dur ». La figure 1 montre un terminal 200 apte à communiquer avec la puce 105. Un tel 30 terminal est, par exemple : - Une téléphone intelligent ou smartphone, - Une tablette, - Un ordinateur portable, - Un appareil spécialisé de type terminal de paiement, 3059123 7 La figure 1 montre que le terminal 200 comporte : - Un microprocesseur 210, - Une mémoire 220. La mémoire 200 comporte au moins les zones suivantes : 5 o Une zone 220.1 application qui comporte des codes instructions correspondant à la mise en oeuvre du procédé selon l'invention. o Une zone 220.2 d'ordres qui comporte des ordres de mise à jour pour des puces. - Une interface 230 radio compatible avec l'interface de la puce 105. 10 Le microprocesseur 210 du terminal 200 et la mémoire 220 du terminal 200 sont interconnectés par un premier bus 250. Le microprocesseur 210 du terminal 200 et l'interface 230 radio du terminal 200 sont interconnectés par un deuxième bus 260. 15 La figure 1 montre que la zone 220.2 d'ordres du terminal 200 est structurée pour permettre la gestion d'enregistrement, chaque enregistrement étant un ordre. Un ordre comporte au moins les propriétés suivantes : - Une propriété 220.2.1 identifiant de puce, - Une propriété 220.2.2 ordre comportant une description formel d'un ordre à 20 exécuter relativement à une donnée de la puce identifié. - Une propriété 220.2.3 version de l'ordre Dans une variante de l'invention un enregistrement d'ordre comporte aussi les propriétés suivantes : - Une propriété 220.2.4 identifiant de données permettant de désigner une 25 donnée à mettre à jour sur la puce identifiée par la propriété 220.2.1 identifiant de puce. Dans l'exemple de l'invention on considère que les propriétés valeur des enregistrements de données d'une puce sont de type décimal et assimilable à des 30 compteurs. Dans ce cas un ordre est un nombre décimal signé qu'il faut ajouter à la valeur courante de la propriété valeur de l'enregistrement de données à mettre à jour. 3059123 8 Lorsque l'on prête une action à un dispositif celle-ci est en fait effectuée par un microprocesseur du dispositif commandé par des codes instructions enregistrés dans une mémoire du dispositif. Si l'on prête une action à une application, celle-ci est en fait effectuée par un microprocesseur du dispositif dans une mémoire duquel les 5 codes instructions correspondant à l'application sont enregistrés. Lorsqu'un dispositif, ou une application émet ou reçoit un message, ce message est émis ou reçu via une interface de communication dudit dispositif ou du dispositif mettant en oeuvre la dite application. 10 La figure 2 montre une étape 500 initiale de sollicitation sans contact du terminal 200 par la puce 105. Dans la pratique un utilisateur du terminal 200 a agi sur le terminal pour le mettre dans un état de mise en oeuvre d'une action local. Une telle action est par exemple un ordre de débit à effectuer sur la puce car le porteur de la puce vient de commander un bien, par exemple une boisson. A ce stade le terminal est en 15 attente de la détection d'une puce. La puce est alors approchée, par son porteur, du terminal de manière à permettre l'établissement d'une communication sans contact. Une fois la communication établie on passe à une étape 510 d'authentification dont la finalité est de permettre au terminal d'obtenir l'identifiant de la puce. Les processus d'authentification sont classiques et par exemple basé sur l'obtention d'une preuve 20 mutuelle de la connaissance d'un secret. Cette preuve est obtenue en utilisant des moyens de chiffrements, par exemple 3DES. Un tel secret est, par exemple, configuré en usine pour la puce, et lors d'un enrôlement de la carte pour le terminal. Ces processus sont documentés par les fabricants de carte à puce. A cours de l'authentification la puce produit et émet vers le terminal un message 25 comportant : - l'identifiant 120.3 de la puce, - une liste d'anciennes valeurs associée à des numéros de version, chaque numéro de version étant associé à un identifiant de données. On rappel ici qu'un identifiant de données peut être un indice dans la liste de numéros de 30 version. On passe alors à une étape 520 de sélection d'ordres parmi ceux enregistrés dans la zone 220.5 d'ordres du terminal 200. Cette sélection se fait en fonction de l'identifiant de puce obtenu à l'étape d'authentification. Le terminal 200 produit une sous liste 3059123 9 comportant les ordres de la zone 220.2 d'ordres dont la valeur de la propriété identifiant de puce est égale à la valeur de l'identifiant obtenu lors de l'étape d'authentification. Pour chaque ordre de la zone 220.2 d'ordres on ne sélectionne aussi que ceux dont le numéro de version est supérieur au numéro de version relatif 5 reçu lors de l'étape d'authentification. Autrement dit si on considère un cas avec 3 données, les données étant identifiées par les clés 1, 2, et 3 : - lors de l'étape d'authentification le la puce émet un message comportant : o pld : identifiant de la puce 10 o V1 : version de la première donnée o v2 : version de la deuxième donnée o v3 : version de la troisième donnée - lors de l'étape de sélection, le terminal sélectionne tous les ordres tels que : o identifiant de la puce est égal à pld, et 15 ^ identifiant de la donnée égale 1 et version supérieur à v1, ou ^ identifiant de la donnée égale 2 et version supérieur à v2, ou ^ identifiant de la donnée égale 3 et version supérieur à v3. On passe à une étape 530 de calcul d'une valeur de version maximale pour chaque donnée à mettre à jour. On obtient ainsi des paires clés de données, numéro 20 maximal de version. Pour une donnée à mettre à jour, la valeur de version maximale est la valeur la plus grande dans l'ensemble formé de la valeur du numéro de version associé à la donnée à mettre à jour et des valeurs de numéro de version des ordres sélectionnés et correspondant à la donnée à mettre à jour. Avec ce mode de sélection d'un numéro de version maximal on obtient que, si la liste 25 d'ordres est vide, alors le numéro de version de la donnée à mettre à jour ne change pas. On passe à une étape 540 de de calcul d'une nouvelle valeur de donnée pour chaque donnée à mettre à jour. Pour une donnée la nouvelle valeur est la résultante 30 des ordres sélectionnés et de l'action locale. Par exemple pour la donnée identifiée par la clé 1 supposons que l'on ait : - action local : -10 - premier ordre sélectionné : +50 - deuxième ordre sélectionné : -4. 3059123 10 Dans ce cas on aura : nouvelle valeur = ancienne valeur -10 + 50 -4 On passe alors à une étape 550 de mise à jour de la puce. Cette mise à jour se fait 5 en écrivant, pour chaque donnée à mettre à jour : - la nouvelle valeur de la donnée - le numéro de version maximale correspondant à la donnée à mettre à jour. On note que le résultat de l'invention est également obtenu si la puce émet en bloc 10 toute sa zone de données et si en retour le terminal met à jour toute la zone de données de la puce. Le terminal analyse dans ce cas le bloc de données reçu pour en tirer les données structurées et effectuer ses traitements. On appelle une telle opération une réévalutation car elle a pour but de mettre à jour 15 au moins une valeur sur la puce. Dans l'invention le schéma de principe, pour une valeur, est donc qu'un terminal écrit dans une puce un identifiant de la dernière réévaluation qu'il a fait. Lorsque l'utilisateur, porteur de la puce, se présente à un autre terminal, cet autre terminal sait que tous les ordres de réévaluation antérieurs à celui inscrit dans la puce ont été effectués, et qu'il doit effectuer tous ceux qui lui sont 20 postérieurs. Le schéma de réévaluation est donc le suivant : - Lecture de la dernière réévaluation effectuée (elle est inscrite dans la puce). - Consultation des réévaluations en attente dans la base de données 25 locale du terminal. - Les ordres de réévaluation antérieurs à ceux déjà exécutés dans la puce sont supprimés de la base de données locale. - Les ordres postérieurs donnent lieu à une mise à jour de la puce. - La dernière mise à jour est inscrite dans la puce, sous forme d'un 30 numéro de version. - Le terminal efface ces ordres de sa base de données locale et communique ce qu'elle a fait à la base de données globale, si celle-ci est joignable. 3059123 n Dans ce schéma, toute fraude est impossible car la puce porte l'information avant même qu'elle ne soit rendue à l'utilisateur. On comprend que les effacements sont optionnels mais de bonne pratique si on envisage des bases de données de taille conséquente. La taille conséquente d'une 5 base de données est variable en fonction des moyens d'exploitation de la base de données. En pratique on considère qu'il ne faut pas qu'une requête d'interrogation ou de mise à jour de la base de données requiert plus d'une seconde. Avec le procédé selon l'invention il est donc possible de gérer des transactions 10 électroniques sans connexion à un serveur central et avec des mises à jour épisodiques d'un terminal pour y pousser des ordres relatifs à une puce. En effet le terminal n'a pas besoin d'une connexion à un serveur central pour gérer la transaction. Le terminal et la puce forme un système autonome c'est à dire non connecté. 15 Dans une variante la plus dynamique possible de l'invention, avec rechargement possible de puces par exemple, seul les terminaux, ou un terminal dédié, a besoin d'une connexion à un serveur central apte à valider une transaction bancaire. 20 Par souci de concision et de clarté la description ne s'étend pas sur les mécanismes d'authentification entre le terminal et la puce car ils sont nombreux et bien connu de l'homme du métier. Ils sont de plus sans effet synergique sur l'invention. Dans le même souci on n'a pas décrit les détails de la transaction relativement à sa 25 validation. On pourrait par exemple bloquer la transaction si la nouvelle valeur calculée est inférieure à un seuil prédéterminé. Les applications et utilisations de l'invention sont nombreuses. REVENDICATIONS1. Procédé de mise à jour d'au moins une valeur d'une donnée (120.2) d'une puce (105), la puce comportant un identifiant (120.3), par un terminal (200) caractérisé en ce que la donnée mise à jour est associée à une valeur (120.2.2) de numéro de version, la mise à jour comportant les étapes suivantes : - sollicitation (500) sans contact du terminal par la puce en vue de la réalisation d'une action locale, - authentification (510) de la puce, - sélection (520) d'ordres parmi une liste d'ordres enregistrés dans une mémoire d'ordres du terminal, chaque ordre de la liste d'ordres étant associé à un numéro de version et à un identifiant de puce, la sélection produisant une sous-liste comportant les ordres dont l'identifiant de puce est égal à l'identifiant de la puce et dont la valeur de numéro de version est supérieure au à la valeur de numéro de version de la donnée à mettre à jour, - calcul (530) d'une valeur de version maximale, la valeur de version maximale étant la valeur la plus grande dans l'ensemble formé de la valeur du numéro de version associé à la donnée à mettre à jour et des valeurs de numéro de version des ordres sélectionnés, - calcul (540) d'une nouvelle valeur de donnée, la nouvelle valeur étant la résultante de la liste d'ordres sélectionnés, de l'action locale et de la valeur de la donnée à mettre à jour, une action locale étant assimilable à un ordre, - mise à jour (550) de la donnée de la puce par l'écriture de la nouvelle valeur résultante et de la valeur de version maximale. 2. Procédé de mise à jour d'au moins une valeur d'une donnée d'une puce selon la revendication 1, caractérisé en ce que la donnée, et donc les ordres, sont également associé à une valeur d'identifiant de donnée. 3. Procédé de mise à jour d'au moins une valeur d'une donnée d'une puce selon l'une des revendications précédente, caractérisé en ce que une valeur de donnée est un compteur numérique. 3059123 13 4. Procédé de mise à jour d'au moins une valeur selon les revendications 2 et 3, caractérisé en ce que la puce comporte trois valeurs à mettre à jour.