Brevet FR2971905A1 — publié le 20120824

La présente invention a pour objet un procédé d'authentification d'au moins un tag par un système d'authentification ainsi qu'un système d'authentification et un tel tag. On désigne par « tag » un dispositif pouvant être identifié par radiofréquence selon la technologie RFID, encore appelé « marqueur » ou « étiquette ». Un tag comprend des moyens de traitement des données tels qu'un microprocesseur ou autres circuits électroniques programmés et/ou programmables, et comprend une ou plusieurs mémoires électroniques. L'adoption de la technologie RFID à grande échelle se heurte notamment au problème de sécurité et de respect de la vie privée des utilisateurs. Pour remédier à ces problèmes, il est connu d'utiliser des fonctions de hachage, ces dernières exigeant une quantité de ressources très importante sur le tag, notamment en termes de taille de la mémoire du tag et en termes de capacités de traitement de données. Un exemple d'une telle fonction de hachage est la fonction Secure Hash Algorithm, SHA-1, conçue par la National Security Agency des Etats Unis. L'implémentation d'une telle fonction nécessite des ressources importantes sur le tag, à savoir 8100 portes logiques et 1228 cycles d'horloge. D'autres solutions reposent sur la cryptographie légère qui requiert également des capacités importantes pour le tag. Lorsque ces solutions utilisent par exemple le protocole EMAP (Efficient Mutual Authentification Protocol), la taille de la mémoire nécessaire pour un tag est de l'ordre de 480 bits. Les solutions ci-dessus ne conviennent ainsi que pour des tags dont la mémoire a une taille importante. En outre, ces solutions peuvent être vulnérables aux attaques par rejeu et à l'analyse de trafic. On désigne par « attaque par rej eu » une attaque résultant de l'espionnage des échanges entre un tag et un lecteur, et consistant à retransmettre les informations ainsi obtenues pour tromper le lecteur et/ou le tag dans des opérations non autorisées. On désigne par « analyse de trafic » l'attaque consistant à intercepter le trafic échangé entre le tag et le lecteur sans que les parties concernées n'en aient conscience. Il existe un besoin pour remédier aux inconvénients précités, et notamment pour des tags dont la mémoire a une taille relativement réduite. L'invention vise à répondre en tout ou partie à ce besoin et elle y parvient, selon l'un de ses aspects, grâce à un procédé d'authentification d'au moins un tag par un système d'authentification, chaque tag comprenant une mémoire dans laquelle au moins une valeur courante de clé est enregistrée et le système d'authentification comprenant une mémoire dans laquelle au moins une valeur de la clé de chaque tag est enregistrée, la valeur de ladite clé étant repérée dans la mémoire du système d'authentification par une valeur d'index calculée au moins en partie en fonction de ladite valeur de la clé, le tag et le système d'authentification étant configurés pour appliquer une même fonction de calcul, procédé dans lequel : - le tag envoie au système d'authentification, après réception d'un message d'initiation envoyé par le système d'authentification et comprenant un premier nombre, un 10 message d'authentification, comprenant : - une valeur courante d'index générée au moins en partie sur la base de la valeur courante de la clé, - un deuxième nombre différent du premier nombre, et - un troisième nombre généré par application de la fonction de calcul à 15 la valeur courante de la clé, au premier et au deuxième nombre, - le système d'authentification recherche dans sa mémoire la valeur de la clé associée à la valeur courante d'index reçue et compare le troisième nombre avec le résultat de l'application de la fonction de calcul à ladite valeur de la clé enregistrée dans la mémoire du système, au premier et au deuxième nombre, 20 - en cas d'égalité à l'issue de cette comparaison, le système d'authentification génère un quatrième nombre, - le système d'authentification transmet au tag le quatrième nombre et un cinquième nombre calculé par application de la fonction de calcul à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre, 25 - le tag compare le cinquième nombre avec le résultat de l'application de la fonction de calcul à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre et, - en cas d'égalité, le tag met à jour dans sa mémoire la valeur de la clé. La mise à jour de la clé correspond au calcul d'une nouvelle valeur de la clé en 30 remplacement de la valeur courante de la clé. Le terme « nombre » ne doit pas être compris limitativement et englobe toute séquence de chiffres, caractères ou bits, étant par exemple une valeur exprimée en base décimale, hexadécimale ou binaire. De tels nombres peuvent être différents de codes dits CRC (Cyclic Redundancy Codes). La façon de mettre à jour la clé, l'utilisation de différents nombres générés pour les uns par le système d'authentification et pour les autres par le tag et le choix de la fonction de calcul permettent que le procédé d'authentification soit très résistant aux attaques par rejeu et aux attaques par analyse de trafic. La comparaison effectuée par le système d'authentification entre le troisième nombre et le résultat de l'application de la fonction de calcul à ladite valeur de la clé enregistrée dans la mémoire du système, au premier et au deuxième nombre permet l'authentification du tag par le système. La comparaison effectuée par le tag entre le cinquième nombre et le résultat de l'application de la fonction de calcul à ladite valeur de la clé, au premier, au deuxième et au quatrième nombre permet l'authentification par le tag du système d'authentification. Selon l'invention, le tag peut être authentifié par le système avant que le système ne soit authentifié par le tag. En outre, le procédé selon l'invention peut s'appliquer avec un grand nombre de systèmes d'authentification, indépendamment de la capacité de calcul de ce dernier et du nombre de tags à gérer. En effet, la mise en oeuvre du procédé ci-dessus n'exige pas une grande quantité de ressources en termes de coûts, à savoir en termes de bande passante, de processeur et de mémoire, au niveau du système d'authentification. L'authentification peut mettre en oeuvre une analyse de la valeur de clé associée à cette valeur d'index dans la mémoire du système d'authentification. Le coût en mémoire du système d'authentification peut être d'autant plus réduit que ce dernier ne comprend avantageusement qu'une entrée par tag, au moins une valeur de clé courante étant enregistrée dans cette mémoire pour chaque tag. Un tel système d'authentification peut ainsi procéder aux opérations d'authentification avec un temps de réponse relativement faible. La mémoire du système d'authentification peut conserver, après enregistrement de la nouvelle valeur de la clé, la valeur courante de la clé utilisée pour calculer la nouvelle valeur de la clé, cette valeur courante étant associée à la nouvelle valeur d'index générée au moins en partie sur la base de la nouvelle valeur de la clé et associée à ladite nouvelle valeur de la clé. Ainsi, une valeur d'index peut être associée dans la mémoire du système d'authentification à deux valeurs de clé pour chaque tag. Lorsque la nouvelle valeur de la clé est enregistrée dans la mémoire du système d'authentification, la valeur d'index précédemment utilisée peut être effacée et seule la valeur d'index générée au moins en partie sur la base de la nouvelle valeur de la clé peut être enregistrée dans la mémoire du système d'authentification. Si, à l'issue d'une itération précédente du procédé d'authentification, le tag n'a pas mis à jour sa valeur de clé, lors d'une itération suivante, il générera le troisième nombre sur la base de la valeur courante de la clé selon cette précédente itération et non sur la base de la nouvelle valeur de la clé résultant de la mise à jour de la valeur de la clé. Comme cette valeur courante selon l'itération précédente est enregistrée dans la mémoire du système d'authentification, ce dernier pourra authentifier le tag même dans ce cas. La valeur courante de la clé peut être effacée de la mémoire du tag une fois que la nouvelle valeur de la clé est enregistrée dans celle-ci, ce qui permet d'appliquer le procédé avec des tags ayant une mémoire de taille réduite. Une variable dont la valeur traduit l'état de synchronisation du tag par rapport au système d'authentification peut être enregistrée dans la mémoire du tag. L'évolution de la valeur de cette variable lors d'une itération du procédé permet au tag de mettre à jour son état de synchronisation par rapport au système d'authentification. Après envoi par le tag du message d'authentification, ladite variable passe par exemple d'une valeur de synchronisation à une valeur de désynchronisation et, en cas d'égalité du cinquième nombre avec le résultat de l'application par le tag de la fonction de calcul à la valeur ultérieure de la clé, aux premier, deuxième et quatrième nombres, ladite variable passe alors de la valeur de désynchronisation à la valeur de synchronisation. En cas d'inégalité entre le cinquième nombre avec le résultat de l'application par le tag de la fonction de calcul à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre, ladite variable peut rester à la valeur de désynchronisation et le tag peut ne pas mettre à jour sa valeur de clé de manière à générer lors d'une itération suivante le troisième nombre sur la base de la valeur courante de la clé. La clé peut comporter deux sous-clés de trente deux bits chacune et la taille de la mémoire du tag peut être de soixante cinq bits. L'invention peut ainsi s'appliquer à des tags ayant une mémoire de taille réduite, et notamment à des tags passifs tels que définis par le standard EPCGen2 approuvé en 2004 et ratifié par l'ISO comme amendement au standard 18000-6 en 2006. Chaque sous-clé peut être formée par un ou plusieurs blocs. L'invention peut ainsi s'appliquer à des tags nécessitant peu de ressources en termes de capacité de calcul, et à des tags dépourvus de source d'énergie électrique autonome et ayant une mémoire de taille réduite. La mémoire peut ne pas comporter d'autre donnée permettant d'authentifier le tag que la clé. Les premier, deuxième et quatrième nombres peuvent être des nombres pseudo-aléatoires. Les premier, deuxième, troisième, quatrième et cinquième nombres peuvent être codés en bits. Le système d'authentification peut calculer une nouvelle valeur de la clé préalablement à la génération du quatrième nombre. Le quatrième nombre est de préférence généré de manière à ce que la nouvelle valeur de clé calculée par le système d'authentification aboutisse à une nouvelle valeur des blocs des sous-clés unique dans le système d'authentification. Le système d'authentification vérifie par exemple si les valeurs de ces blocs sont uniques en parcourant la base de données du système d'authentification. Dans le cas où des blocs existants ont des valeurs identiques, le système d'authentification régénère le quatrième nombre jusqu'à ce que la valeur de ces blocs soit unique. La fonction de calcul peut mettre en oeuvre l'opérateur « ou exclusif» et une fonction de permutation au sein d'une liste, étant par exemple une chaine binaire. Cette fonction de permutation génère par exemple une unique permutation au sein de la liste et a par exemple pour paramètres un nombre permettant de définir la permutation elle-même dans la liste, notamment la chaîne binaire, et la liste, notamment la chaîne binaire, dans laquelle les permutations doivent être effectuées. Cette fonction de permutation peut permettre de mettre en oeuvre une authentification plus performante que d'autres techniques telles que le chiffrement symétrique et asymétrique, les fonctions de hachage ou les courbes elliptiques. Elle peut nécessiter moins de ressources au niveau du tag et permettre un temps de mise en oeuvre du procédé beaucoup plus faible. Le système d'authentification peut comporter un lecteur et un dispositif comprenant une base de données, le dispositif communiquant notamment avec le tag par l'intermédiaire du lecteur. Le dispositif et le lecteur peuvent être distincts, étant notamment situés à des emplacements géographiques différents. L'invention a encore pour objet, selon un autre de ses aspects, un tag, notamment pour la mise en oeuvre du procédé ci-dessus, comportant : - des moyens de traitement, notamment un circuit électronique tel qu'un microprocesseur, configurés pour générer des nombres et pour appliquer une fonction de calcul à des nombres, ladite fonction de calcul mettant notamment en oeuvre une fonction de permutation dans une liste, notamment une chaîne binaire, et l'opérateur logique « ou exclusif », et - une mémoire dans laquelle est enregistrée au moins une valeur d'une clé 15 permettant l'authentification du tag. La taille de la mémoire du tag peut être de soixante cinq bits. Soixante quatre bits de cette mémoire peuvent être dédiés au codage de la valeur de la clé du tag et le bit restant peut donner la valeur de la variable de synchronisation entre le tag et un système d'authentification de ce dernier. 20 L'invention a encore pour objet, selon un autre de ses aspects, un système d'authentification d'au moins un tag, le système étant notamment configuré pour interagir avec le tag défini ci-dessus, notamment pour mettre en oeuvre le procédé ci-dessus, le système d'authentification comprenant : - des moyens de traitement, notamment un circuit électronique tel qu'un 25 microprocesseur et des circuits périphériques tels qu'une mémoire ou des circuits de calcul spécialisés, configurés pour appliquer une fonction de calcul à des nombres, ladite fonction de calcul mettant notamment en oeuvre une fonction de permutation dans une liste, notamment une chaîne binaire, et l'opérateur logique « ou exclusif», les moyens de traitement étant également configurés pour générer des nombres, et 30 - une mémoire dans laquelle sont enregistrées pour chaque tag une valeur d'un index et au moins une valeur de clé, ladite clé étant spécifique au tag, ladite valeur d'index référençant la valeur de clé dans la mémoire du système d'authentification. Pour chaque tag, deux valeurs de clé peuvent être enregistrées dans la mémoire et associées à une même valeur d'index, et le système peut être configuré pour que, lorsqu'une nouvelle valeur de clé est calculée, seule la valeur de clé immédiatement précédemment utilisée reste enregistrée dans la mémoire du système. On désigne par « valeur de clé immédiatement précédemment utilisée » la valeur de clé utilisée lors d'une tentative d'authentification immédiatement précédente du tag par le système d'authentification ou un autre système d'authentification. Les moyens de traitement du système d'authentification peuvent comporter un générateur pseudo-aléatoire de nombres. Il peut s'agir d'un générateur pseudo-aléatoire 10 unidirectionnel de nombres. Dans la mémoire du système d'authentification, une seule entrée peut être dédiée à un tag. Le tag est par exemple porté par un article lors de son traitement par une chaine logistique dans le cadre de la livraison d'articles. Il peut par exemple remplacer un code à 15 barres ou être disposé sur l'article en complément de ce dernier. En variante, le tag est porté par un document de sécurité et permet d'authentifier une personne et/ou d'autoriser son accès à une zone à accès restreint, par exemple des espaces privés ou des espaces pour lesquels un contrôle de sécurité est nécessaire, tel que dans des aéroports par exemple. 20 En variante encore, le tag est porté par un objet réservé à la location ou au prêt, par exemple dans des bibliothèques, médiathèques, vidéothèques ou autres. En variante, le tag est porté par des objets mis en vente dans des magasins de manière à permettre de faciliter l'inventaire de ces derniers et d'éviter leur vol. Dans les exemples ci-dessus, le tag peut inclure des métadonnées relatives à 25 l'objet sur lequel il est disposé, par exemple des propriétés de cet objet. Dans d'autres variantes, le tag est porté par ou attaché à des bagages, faisant par exemple partie d'étiquettes utilisées dans le transport aérien. En variante encore, le tag est porté par un être humain dans un but de surveillance de ce dernier. Le tag est par exemple intégré à un collier, un bracelet ou tout 30 autre accessoire ou vêtement pouvant être porté par un être humain afin de pouvoir surveiller ou repérer ce dernier. L'invention pourra être mieux comprise à la lecture de la description qui va suivre d'exemples non limitatifs de mise en oeuvre de celle-ci et à l'examen du dessin annexé sur lequel : - la figure 1 représente de façon schématique un exemple d'ensemble au sein duquel peut être mis en oeuvre le procédé selon l'invention et, - la figure 2 est un schéma représentant différentes étapes entre le système d'authentification et le tag dans un exemple de mise en oeuvre du procédé selon l'invention. On a représenté à la figure 1 un ensemble 1 au sein duquel le procédé selon l'invention peut être mis en oeuvre. Cet ensemble 1 comprend un système d'authentification 2 et au moins un tag 3 disposé sur un objet 4. Bien qu'un seul tag ait été représenté sur la figure 1, l'invention s'applique à l'authentification d'un nombre quelconque de tags. Le système d'authentification 2 comprend dans l'exemple illustré un dispositif d'identification 6 comprenant une base de données 7. Le système d'authentification 2 comprend également un lecteur 8 communiquant avec le tag 3 par l'intermédiaire d'une antenne 9. Dans l'exemple illustré, le dispositif d'identification 6 et le lecteur 8 sont des éléments distincts, communiquant entre eux par une liaison 11 qui peut être filaire ou non. Le dispositif d'identification 6 et le lecteur 8 peuvent être situés à des emplacements géographiques différents. Dans l'exemple de la figure 1, le tag 3 est supporté par un contenant d'un article 4, par exemple une caisse, destiné à être acheminé par une chaine logistique. L'invention n'est pas limitée à l'application à une authentification d'articles dans une chaine logistique, comme on le verra par la suite. Le dispositif d'identification 6 comporte dans l'exemple considéré des moyens de traitement qui sont configurés pour générer des nombres, notamment des nombres pseudo-aléatoires. Ces moyens de traitement comprennent par exemple un générateur pseudo-aléatoire, qui peut être unidirectionnel, c'est-à-dire que la connaissance de sa valeur de sortie ne permet pas de déterminer la valeur de sa ou ses entrées. Les moyens de traitement peuvent également être configurés pour appliquer une fonction de calcul à des nombres. Cette fonction de calcul met par exemple en oeuvre l'opérateur « ou exclusif » et une fonction de permutation définie ainsi : value =[171, b2, bj, blength(valuej int K function_7ermutation F(K, value) { For J=2 To length(value) { K: floor(K/(J-1)); swap(value[(K mod J) + If value [Ji) //le vecteur est indexé a partir de 1 } return F(K, value) ; } La base de données 7 peut enregistrer pour chaque tag 3 deux valeurs différentes d'une même clé, ces deux valeurs de clé étant associées dans la base de données 7 à une même valeur d'index. Pour chaque tag, une des valeurs de la clé correspond à la valeur actuellement enregistrée dans la mémoire du tag et l'autre valeur de la clé correspond à la valeur de la clé qui était enregistrée dans la mémoire du tag lors de l'itération précédente du procédé d'authentification du tag. Une seule entrée peut être associée à un tag 3 donné dans la base de données 7 utilisée par le système d'authentification 2. Dans l'exemple considéré, le tag 3 comporte des moyens de communication avec l'antenne 9 du système d'authentification 2. Ce tag 3 comporte également une mémoire qui a, dans l'exemple considéré, une taille de soixante cinq bits. Soixante quatre bits de la mémoire sont dédiés au codage d'une clé se présentant sous la forme de deux sous-clés keyi et key2 codées sur trente deux bits chacune. Le bit restant peut coder la valeur d'une variable de synchronisation entre le tag 3 et le système d'authentification 2, comme on le verra par la suite. La taille de la mémoire ne permet d'enregistrer pour chaque sous-clé qu'une seule valeur de clé, keyicurr et key2curr dans la mémoire du tag 3. Ces sous-clés sont par exemple obtenues comme suit : keylcurr=A1 1C key2curr =D11B A, B, C et D sont ici des blocs de seize bits et « II » désigne l'opérateur « concaténation ». 930 Ces valeurs keyicurr et keyzcurr sont également enregistrées dans la base de données 7 du dispositif 6 et associées à une valeur d'index calculée sur la base de ces valeurs keyicurr et keyzcurr. Le tag 3 peut encore comporter des moyens de traitement qui, similairement à ceux décrits en référence au dispositif d'identification 6, peuvent être configurés pour générer des nombres pseudo-aléatoires et pour appliquer la même fonction de calcul que celle précédemment mentionnée. On va maintenant décrire, en référence à la figure 2, un premier exemple d'itération du procédé d'authentification selon l'invention. Lors d'une étape 100 d'initiation, le lecteur 8 envoie au tag 3 via l'antenne 9 un message d'initiation comprenant un premier nombre qui est ici un nombre pseudo-aléatoire Rsi. Ce premier nombre peut être codé en bits, par exemple sur 16 bits. Ce message d'initiation est analysé par les moyens de traitement du tag 3 qui répond en envoyant au lecteur 8, lors d'une étape 101, un message d'authentification comprenant par exemple un deuxième nombre, notamment un nombre pseudo-aléatoire, RT, différent du premier nombre, et un autre nombre qui correspond à une valeur courante d'index dans la base de données 7 du système d'authentification 2, cette valeur courante d'index étant générée au moins en partie sur la base de la valeur courante de la clé enregistrée dans la mémoire du tag 3 et dans la base de données 7 du dispositif d'authentification 6. Cette valeur courante d'index est par exemple générée selon l'équation suivante : PRNG(AoBoD), PRNG étant le générateur pseudo-aléatoire des moyens de traitement du tag 3, et A, B et D étant certains des blocs codant la valeur courante des sous-clés keyi curr et keyzcurr, 25 comme mentionné ci-dessus. « o » désigne l'opérateur logique « ou exclusif ». Le message d'authentification comprend également dans l'exemple considéré un troisième nombre Mi généré par application de la fonction de calcul : - à la valeur courante de la clé, 30 - au premier nombre, et - au deuxième nombre. La génération de ce troisième nombre M1 peut mettre en oeuvre l'équation MI = F(AoRT BIIRT)°F(B°RT Dl IRsl)- Lors de l'étape 101, le bit codant la valeur de la variable de synchronisation peut passer de la valeur 1 à la valeur 0, c'est-à-dire d'une valeur traduisant la synchronisation entre le tag 3 et le système d'authentification 2 à une valeur traduisant la désynchronisation entre le tag 3 et le système d'authentification 2. Ce message d'authentification transmis lors de l'étape 101 au lecteur 8 est alors transmis par ce dernier à une étape 102 au dispositif d'identification 6. Lors de cette étape 102, le lecteur 8 transmet également le premier nombre Rsi qui avait été envoyé au tag 3 lors de l'étape 100. Les moyens de traitement du dispositif d'identification 6 analysent alors les informations reçues lors de l'étape 102. La valeur d'index envoyée par le tag 3 est utilisée en entrée de la base de données 7 et la valeur courante de la clé enregistrée dans la base de données et associée à cette valeur courante d'index est recherchée dans la base de données 7. Le dispositif d'identification 6 accède à la valeur courante de clé enregistrée dans la base de données 7 et peut calculer, connaissant Rsi et RT, F(AoRT, BIIRT)oF(BoRT, DIIRsi). Les moyens de traitement du dispositif d'identification 6 procèdent alors à la comparaison entre Mi tel qu'il a été calculé par le tag 3 et le nombre résultant du calcul ci- dessus. En cas d'égalité à l'issue de cette comparaison, le dispositif d'identification 6 peut générer une nouvelle valeur de la clé, qui sera la valeur courante de la clé lors de l'itération suivante, en fonction : - de la valeur courante de la clé selon l'itération actuelle, - du deuxième nombre, et - d'un quatrième nombre Rsz qu'il génère. Ce quatrième nombre peut être un nombre pseudo-aléatoire. La génération de la nouvelle valeur de la clé peut être effectuée en utilisant les équations ci-dessous : Anew = PRNG(CcurroRT), Dnew = PRNG(BcurroRsz), Cnew = PRNG(AcurroRT), Bnew = PRNG(DcurroRsz), suivante où le suffixe « new » se rapporte aux nouvelles valeurs à utiliser lors d'une itération suivante et le suffixe « curr » se rapporte aux valeurs utilisées lors de l'itération se terminant. Le quatrième nombre Rsz peut être calculé de manière à ce que ces valeurs Anew, Cnew et Dnew soient uniques dans le système d'authentification. Une nouvelle valeur d'index, qui sera la valeur courante d'index lors de la prochaine itération, peut également être calculée par le dispositif 6 et la nouvelle valeur de la clé ainsi que la valeur courante de la clé peuvent être associées à cette nouvelle valeur d'index dans la base de données. Notons qu'un même index peut référencer plusieurs entrées de la base de données, même si cette probabilité est faible. Dans ce cas, le dispositif d'identification 6 calcule un premier résultat en fonction de la valeur d'index et, en cas d'inégalité avec la valeur Mi, il exécute les mêmes calculs et comparaisons sur l'entrée suivante de même valeur d'index. A l'issue de cette mise à jour de la valeur de la clé, le dispositif d'identification 6 peut appliquer à nouveau la fonction de calcul pour déterminer un cinquième nombre M2, selon l'équation ci-dessous : Mz = F(CoRsl, AI I RT)°F(D°RT CI I Rsz). Lors d'une étape 103, le cinquième nombre Mz ainsi que le quatrième nombre Rsz sont envoyés au lecteur 8, ce dernier les transmettant au tag 3 lors d'une étape 104. Après réception de ce message à l'étape 104, les moyens de traitement du tag 3 analysent ce message. Les moyens de traitement du tag 3 peuvent comparer le cinquième nombre avec le résultat de l'application par ces moyens de traitement de la fonction de calcul F(CoRsi, AIIRT)oF(DoRT, CIIRsz). Similairement au calcul effectué par le dispositif d'identification 6, le tag 3 peut ensuite calculer sur la base des mêmes équations une nouvelle valeur de la clé. En cas d'égalité entre le résultat de l'application de cette fonction de calcul et le cinquième nombre M2, le tag 3 peut enregistrer dans sa mémoire la nouvelle valeur de la clé et effacer la valeur courante utilisée jusque là lors de l'itération actuelle du procédé. A l'issue de cette étape 104, le bit traduisant l'état de synchronisation du tag 3 et du système d'authentification 2 change de la valeur 0 à la valeur 1. Dans le cas où, lors de l'itération immédiatement précédente, l'authentification ne s'est pas produite correctement, par exemple dans le cas où à l'issue de l'étape 104, le tag 3 n'a pas modifié la valeur courante de la clé, le bit traduisant l'état de synchronisation reste à la valeur de désynchronisation 0. Lors d'une itération ultérieure du procédé, le tag 3, après réception, à une étape d'initiation similaire à l'étape 100 décrite ci-dessus, du message d'initiation, renvoie un message d'authentification différant du message envoyé à l'étape 101 décrite précédemment par le fait qu'il ne comporte pas de valeur d'index. Ce message est transmis au dispositif d'identification 6. Les moyens de traitement de ce dispositif d'identification détectent l'absence de valeur d'index et en déduisent que le tag 3 n'a pas été authentifié lors de l'itération immédiatement précédente. L'ensemble de la base de données 7 est alors parcouru et, pour chaque entrée de celle-ci, la valeur F(AoRT, BlIRT)oF(BoRT, DIIRsi) est calculée. RT et Rsi ayant été transmis par le lecteur 8 et, A, B et D étant les blocs formant la valeur de la clé enregistrée dans la mémoire du tag lors de l'itération immédiatement précédente du procédé d'authentification du tag et non les blocs formant la nouvelle valeur de la clé. Lorsque l'application de la fonction de calcul au nombre ci-dessus fournit le même résultat que le troisième nombre Mi envoyé par le tag 3, le tag 3 est authentifié par le dispositif d'identification 6. Dans la négative, l'authentification échoue. En cas de réussite de l'authentification, la valeur courante de la clé utilisée lors de l'itération immédiatement précédente du procédé est utilisée et le cinquième nombre Mz F(CoRsi, AlIRT)oF(DoRT, ClIRsz) est calculé sur la base des blocs formant cette valeur courante utilisée lors de l'itération immédiatement précédente. Les étapes suivantes du procédé sont similaires aux étapes 103 et 104 précédemment décrites. Si le cinquième nombre Mz est égal à celui calculé par le tag 3 sur la base de la valeur de la clé enregistrée dans sa mémoire, ce dernier a la preuve de l'authenticité du système 2 et peut mettre à jour sa clé en utilisant les équations mentionnées précédemment. L'invention n'est pas limitée aux exemples qui viennent d'être décrits. Selon un deuxième exemple d'itération du procédé d'authentification selon l'invention, lors de l'étape 104, la nouvelle valeur de clé n'est calculée par le tag qu'après que la comparaison portant sur Mz a été effectuée avec succès. Dans une variante non représentée, l'étape 100 peut être précédée par une étape lors de laquelle le tag 3 envoie au système d'authentification 2 un message d'activation provoquant l'envoi par ce dernier du premier nombre selon l'étape 100 précédemment décrite. En particulier, bien que dans l'exemple décrit ci-dessus, le lecteur 8 et le dispositif d'identification 6 aient été décrits sous la forme d'éléments distincts, en variante, une seule et même entité pourrait englober ces deux éléments. En outre, l'invention peut permettre d'obtenir les avantages suivants. La façon de mettre à jour les clés, l'utilisation des nombres pseudo- aléatoires RT, Rsi et Rsz et la fonction de permutation peuvent rendre ce protocole résistant aux attaques par rejeu. Ces attaques visent à aboutir à une mauvaise identification ou authentification, ou à la duplication d'une transaction. Par exemple, les messages échangés entre un tag 3 et un lecteur 8 légitimes peuvent être interceptés par un intrus qui peut se servir de ces messages pour tenter de s'authentifier auprès du lecteur 8 même si les messages sont chiffrés. Si un intrus intercepte le message comprenant le troisième nombre Mi, il a très peu de chances de pouvoir réutiliser ce troisième nombre pour s'authentifier auprès d'un lecteur. En effet, ce troisième nombre Mi est généré en utilisant le premier nombre Rsi, il y a donc une probabilité 2le, h(Rai) que le nombre pseudo-aléatoire R'si généré par ce lecteur soit égal à Rsi. Pour une fonction PRNG de 16 bits par exemple, cette probabilité est de 1/216 En outre, le deuxième nombre RT généré par le tag 3 peut empêcher le rejeu du cinquième nombre M2. En effet, la probabilité est faible que le tag 3 génère cette même valeur de nombre lors des authentifications suivantes. Le tag 3 a donc de faibles chances de se faire abuser par un lecteur illégitime. La mise à jour systématique des clés dans le tag 3 et dans le dispositif d'identification 6 peut empêcher le rejeu des messages d'authentification après une authentification réussie. L'invention peut également être résistante aux dénis de services, qui se produisent en cas de désynchronisation entre le tag 3 et le dispositif d'identification 6, par exemple à cause d'un signal de brouillage généré par un intrus à l'étape 104 pour empêcher le tag 3 de recevoir les quatrième et cinquième nombres Rsz et M2. L'intrus se fait ensuite passer pour un lecteur légitime pour tenter de tracer le tag 3 ou de lui soutirer des informations. Lors du procédé d'authentification selon l'invention, après l'étape 104, le tag 3 n'est pas en mesure de constater l'authenticité du cinquième nombre M2. Il ne met donc pas à jour la valeur de la clé et garde en mémoire la valeur courante de la clé selon l'itération précédente. Lors d'une tentative d'authentification suivante, le tag 3 utilise cette valeur courante de la clé et le dispositif d'identification 6 reconnaît la session comme valide, comme expliqué ci-dessus. Grâce à la politique de mise à jour de la valeur de clé utilisée, il est impossible de désynchroniser le tag 3 et le dispositif d'identification 6 sans compromettre le tag. En outre, un intrus peut scanner un tag 3 pour obtenir des informations sur le porteur du tag ou bien tracer le tag entre deux itérations successives du procédé d'authentification dans le cas où les messages échangés comportent certains mêmes éléments. Dans les chaînes logistiques par exemple, un intrus peut utiliser cette technique pour obtenir des informations sur le produit. L'invention peut s'avérer résistante contre ce type d'attaques, la réponse du tag 3, caractérisée par le deuxième nombre RT et par le troisième nombre M1, étant différente à chaque itération du procédé d'authentification, ce qui peut empêcher l'intrus de tracer le tag ou d'obtenir des informations sur le porteur du tag. L'invention peut également permettre d'assurer le respect de la vie privée des utilisateurs et par conséquent d'éviter la traçabilité des utilisateurs et des objets. En effet, la réponse du tag 3 est différente à chaque itération du procédé d'authentification, et l'identifiant réel de l'objet n'est pas transmis sur l'interface définie par le lecteur et le tag. Par ailleurs, pendant l'itération du procédé d'authentification, l'analyse du trafic par un intrus ne lui apporterait rien, car le lecteur 8 ne fournit à l'intrus qu'un nombre pseudo-aléatoire et les messages échangés n'ont aucune signification pour lui. L'invention peut encore offrir une bonne résistance à la compromission physique et au clonage du tag. Généralement, les dispositifs RFID sont placés dans des environnements ouverts. Ils ne bénéficient d'aucune protection physique et sont donc exposés à des compromissions physiques. Un intrus peut lire le tag et le cloner si la mémoire n'est pas sécurisée par écriture de toutes les données obtenues dans un tag vide. Par conséquent, comme pour les autres solutions de sécurité adaptées aux RFID, pour se prémunir de cette attaque, il est recommandé l'utilisation de mémoires sécurisées. A la différence de la plupart des autres solutions, grâce à l'invention, la compromission physique du tag ne permet pas à l'intrus de prendre connaissance de l'identifiant réel du tag, ce qui peut être un gage d'un meilleur respect de la vie privée. Le procédé d'authentification selon l'invention peut être vérifié par application de la logique BAN décrite dans « A logic of authentification, M. Burrows, M. Abadi and R. Needham» dans ACM Transactions on Computer Systems, 8(1) :18-36, 1990. L'expression « comportant un » doit être comprise comme étant synonyme de « comportant au moins un », sauf si le contraire est spécifié.10 REVENDICATIONS1 Procédé d'authentification d'au moins un tag (3) par un système d'authentification (2), chaque tag (3) comprenant une mémoire dans laquelle au moins une valeur courante de clé est enregistrée et le système d'authentification (2) comprenant une mémoire dans laquelle au moins une valeur de la clé de chaque tag (3) est enregistrée, la valeur de ladite clé étant repérée dans la mémoire du système d'authentification (2) par une valeur d'index calculée au moins en partie en fonction de la valeur de la clé,' le tag (3) et le système d'authentification (2) étant confzgurés pour appliquer une même fonction de calcul, procédé dans lequel : le tag (3) envoie au système d'authentification (2), après réception d'un message d'initiation envoyé par le système d'authentification (2) et comprenant un premier nombre, un message d'authentification, comprenant : - une valeur courante d'index générée au moins en partie sur la base de la valeur courante de la clé,' un deuxième nombre différent du premier nombre, et un troisième nombre généré par application de la fonction de calcul à la valeur courante de la clé, au premier et au deuxième nombre, le système d'authentification (2) recherche dans sa mémoire la valeur de la clé associée à la valeur courante d'index reçue et compare le troisième nombre avec le résultat de l'application de la fonction de calcul à ladite valeur de la clé enregistrée dans la mémoire du système (2), au premier et au deuxième nombre, - en cas d'égalité à l'issue de cette comparaison, le système d'authentification 25 (2) génère un quatrième nombre, - le système d'authentification (2) transmet au tag (3) le-quatrième nombre et un cinquième nombre calculé par application de la fonction de calcul à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre, le tag (3) compare le cinquième nombre avec le résultat de l'application dé 30 la fonction de calcul à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre, et - en cas d'égalité, le tag (3) met à jour dans sa mémoire la valeur de la clé. 2. Procédé selon la revendication 1, dans lequel la mémoire du système d'authentification (2) conserve, après enregistrement de la nouvelle valeur de la clé, la valeur courante de la clé utilisée pour calculer la nouvelle valeur de la clé, cette valeur courante étant associée à la nouvelle valeur courante d'index associée à ladite nouvelle valeur de la clé. 3. Procédé selon l'une des revendications précédentes, dans lequel la valeur courante de la clé est effacée de la mémoire du tag (3) une fois que la nouvelle valeur de la clé est enregistrée dans celle-ci. 4. Procédé selon l'une quelconque des revendications précédentes, dans 10 lequel une variable dont la valeur traduit l'état de synchronisation du tag (3) par rapport au système d'authentification (2) est enregistrée dans la mémoire du tag (3). 5. Procédé selon la revendication 4, dans lequel après envoi par le tag (3) du message d'authentification, ladite variable passe d'une valeur de synchronisation à une valeur de désynchronisation et dans lequel, en cas d'égalité entre le cinquième nombre 15 avec le résultat de l'application par le tag (3) de la fonction de calcul à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre, ladite variable passe de la valeur de désynchronisation à la valeur de synchronisation. 6. Procédé selon la revendication 4 ou 5, dans lequel en cas d'inégalité entre le cinquième nombre avec le résultat de l'application par le tag (3) de la fonction de calcul 20 à la valeur courante de la clé, au premier, au deuxième et au quatrième nombre, ladite variable reste à la valeur de désynchronisation et le tag ne met pas à jour sa valeur dé clé de manière à générer lors d'une itération suivante le troisième nombre sur la base de la valeur courante de la clé. ?. Procédé selon l'une quelconque des revendications précédentes, dans 25 lequel la clé comporte deux sous-clés de 32 bits chacune et dans lequel la mémoire du tag (3) a un espace mémoire de 65 bits. 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel le quatrième nombre est généré de manière à ce que la nouvelle valeur de la clé soit unique. 30 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel la fonction de calcul met en oeuvre l'opérateur«