Brevet FR3052280A1 — publié le 20171208

B14781 - 15-ZV2-0672 1 AUTHENTIFICATION D'UNE CARTE PAR LECTURE SANS CONTACT Domaine La présente description concerne de façon générale les circuits électroniques et, plus particulièrement, les circuits de communication sans contact. La présente description vise plus particulièrement l'authentification d'un circuit de communication sans contact par un terminal de communication sans contact. Exposé de l'art antérieur La communication par une liaison sans contactfentre un dispositif de couplage en champ proche (Proximity Coûpling Device - PCD), par exemple un terminal sans contact (Contactless Reader), et un dispositif sans contact (Proximity Device - PD), notamment un circuit intégré sans contact (Proximity Integrated Circuit PIC) ou une carte à circuit intégré sans contact (Proximity Integrated Circuit Card - PICC), commence généralement par une opération d'authentification mutuelle du dispositif sans contact et du dispositif de couplage en champ proche. L'opération d'authentification comprend une succession d'étapes d'échange de données entre le dispositif de couplage en champ proche et le dispositif sans contact et d'étapes de calcul par le dispositif de couplage en champ proche et le dispositif sans contact. Certaines de ces étapes peuvent présenter des vulnérabilités à des attaques visant notamment à récupérer des 3052280 B14781 - 15-ZV2-0672 2 informations concernant le procédé de cryptage mis en oeuvre par le dispositif sans contact. Résumé Il serait souhaitable de protéger davantage les étapes 5 d'une opération d'authentification d'un dispositif sans contact par un dispositif de couplage en champ proche. Ainsi, un mode de réalisation prévoit un procédé d'authentification d'un circuit de communication sans contact par un terminal de communication sans contact, comprenant 10 successivement : une première phase comprenant la détermination par le circuit de communication sans contact d'un premier nombre, la première phase se terminant par la transmission du premier nombre par le circuit de communication sans contact au terminal de 15 communication sans contact ; une deuxième phase comprenant la détermination par le terminal de communication sans contact d'un deuxième nombre, par décryptage du premier nombre en utilisant une première clé, la détermination par le terminal de communication sans contact d'un 20 troisième nombre à partir du deuxième nombre et la détermination par le terminal de communication sans contact d'un quatrième nombre par cryptage du troisième nombre en utilisant la première clé, la deuxième phase se terminant par la transmission du quatrième nombre par le terminal de communication sans contact au circuit de communication sans contact ; et une troisième phase comprenant le décryptage par le circuit de communication sans contact du quatrième nombre en utilisant la première clé pour obtenir le troisième nombre et l'interruption par le circuit de communication sans contact de 30 l'authentification si un sixième nombre obtenu à partir du troisième nombre est différent d'un septième nombre, la première phase ne comprenant pas d'opération de cryptage utilisant la première clé. Selon un mode de réalisation, le septième nombre -est 35 déte miné par le circuit de communication sans contact à partir 3052280 B14781 - 15-ZV2-0672 3 d'un huitième nombre obtenu par décryptage par le circuit de communication sans contact du premier nombre en utilisant la première clé. Selon un mode de réalisation, le procédé comprend, à la 5 première phase, la détermination d'un neuvième nombre, le neuvième nombre étant aléatoire, sans opération de cryptage par le circuit de communication sans contact. Selon un mode de réalisation, à la première phase, le premier nombre est égal au neuvième nombre. 10 Selon un mode de réalisation, à la première phase, le premier nombre est obtenu par cryptage par le circuit de comuunication sans contact du neuvième nombre en utilisant une deuxième clé différente de la première clé, la deuxième clé ayant la même taille que la première clé, l'algorithme de cryptage 15 utilisant la deuxième clé étant le même que l'algorithme de cryptage utilisant la première clé. Selon un mode de réalisation, à la première phase, le premier nombre est obtenu par cryptage par le circuit de communication sans contact d'un dixième nombre non aléatoire en 20 utilisant une troisième clé qui est aléatoire, la troisième clé ayant la même taille que la première clé, l'algorithme de cryptage utilisant la troisième clé étant le même que l'algorithme de cryptage utilisant la première clé. Selon un mode de réalisation, à la première phase, le 25 circuit de communication sans contact réalise de façon aléatoire les étapes suivantes : a) la détermination du premier nombre comme étant égal au résultat du cryptage du neuvième nombre en utilisant la première clé ; b) la détermination du premier nombre comme étant égal au huitième nombre. Selon un mode de réalisation, le procédé comprend en outre à l'étape a) la détermination du huitième nombre comme étant égal au neuvième nombre et à l'étape b) la réalisation d'une 35 opération de cryptage utilisant une quatrième clé différente de 3052280 B14781 - 15-ZV2-0672 4 la première clé, la quatrième clé ayant la même taille que la première clé, l'algorithme de cryptage utilisant la quatrième clé étant le même que l'algorithme de cryptage utilisant la première clé. 5 Selon un mode de réalisation, le procédé comprend, en outre, à la troisième phase, la réalisation d'une étape c) par le circuit de communication sans contact, l'étape c) comprenant, lorsque l'étape a) est réalisée, la réalisation d'une opération de décryptage utilisant une cinquième clé différente de la 10 première clé, la cinquième clé ayant la même taille que la première clé, l'algorithme de décryptage utilisant la cinquième clé étant le même que l'algorithme de cryptage utilisant la première clé et l'étape c) comprenant, lorsque l'étape b) est réalisée, la détermination du huitième nombre par décryptage par le circuit de 15 communication sans contact du premier nombre en utilisant la première clé. Selon un mode de réalisation, le procédé comprend successivement à la première phase, si une variable booléenne est vraie, la détermination par le circuit de communication sans 20 contact du premier nombre comme étant égal au résultat du cryptage du neuvième nombre en utilisant la première clé et, si la variable booléenne est fausse, la réutilisation par le circuit de communication sans contact de la dernière valeur déterminée du premier nombre et comprenant la mise de la variable booléenne à 25 l'état faux. Selon un mode de réalisation, le procédé comprend, en outre, à la troisième phase, la mise par le circuit de communication sans contact de la variable booléenne à l'état vrai si le sixième nombre obtenu à partir du quatrième nombre est égal 30 au septième nombre. Selon un mode de réalisation, le procédé comprend, dans la seconde phase, la détermination par le terminal de communication sans contact d'un onzième nombre, le onzième nombre étant aléatoire, et la détermination par le terminal de 35 communication sans contact d'un douzième nombre basé sur le 3052280 B14781 - 15-ZV2-0672 5 deuxième nombre, le troisième nombre correspondant à la juxtaposition du onzième nombre et du douzième nombre. Selon un mode de réalisation, le procédé comprend en outre, dans la troisième phase, la détermination par le circuit 5 de communication sans contact d'un treizième nombre basé sur le troisième nombre, la détermination d'un quatorzième nombre par cryptage du treizième nombre en utilisant la première clé, la troisième phase se terminant avec la transmission du quatorzième nombre par le circuit de communication sans contact au terminal 10 de conununication sans contact. Un mode de réalisation prévoit également un procédé d'authentification d'un circuit de communication sans contact par un terminal de communication sans contact, comprenant successivement : 15 une première phase comprenant la détermination par le circuit de communication sans contact d'un premier nombre égal au résultat du cryptage d'un deuxième nombre avec une première clé, le deuxième nombre étant un nombre aléatoire, la première phase se terminant par la transmission du premier nombre par le circuit 20 de communication sans contact au terminal de communication sans contact ; une deuxième phase comprenant la détermination par le terminal de communication sans contact d'un troisième nombre par décryptage du premier nombre en utilisant la première clé, la 25 détermination par le terminal de communication sans contact d'un quatrième nombre à partir du troisième nombre et la détermination par le terminal de communication sans contact d'un cinquième nombre par cryptage du quatrième nombre en utilisant la première clé, le cinquième nombre comprenant au moins des première et 30 deuxième parties juxtaposées, la deuxième phase se terminant par la transmission du cinquième nombre par le terminal de communication sans contact au circuit de communication sans contact ; et une troisième phase comprenant la détermination d'un sixième nombre par le circuit de communication sans contact à 3052280 B14781 - 15-ZV2-0672 6 partir du deuxième nombre, la détermination d'un septième nombre par cryptage par un mode d'opération par enchaînement des blocs du sixième nombre en utilisant la première clé et un vecteur d'initialisation égal à la première partie du cinquième nombre et 5 l'interruption par le circuit de communication sans contact de l'authentification si le septième nombre est différent de la deuxième partie du cinquième nombre. Selon un mode de réalisation, le procédé comprend, en outre, à la troisième phase, le décryptage par le circuit de 10 communication sans contact du cinquième nombre en utilisant la première clé pour fournir le quatrième nombre. Selon un mode de réalisation, le procédé comprend, en outre, à la troisième phase, la détermination par le circuit de communication sans contact d'un huitième nombre à partir du 15 quatrième nombre, la détermination d'un neuvième nombre par cryptage du huitième nombre avec la première clé, la troisième phase se terminant par la transmission du neuvième nombre par le circuit de communication sans contact au terminal de communication sans contact. 20 Selon un mode de réalisation, chaque opération de cryptage réalisée par le circuit de communication sans contact comprend la fourniture d'au moins un premier bloc de message et d'un deuxième bloc de message, la fourniture d'un premier bloc de message chiffré par cryptage en utilisant la première clé du 25 résultat de la fonction XOR appliquée entre le premier bloc de message et un vecteur d'initialisation et la fourniture d'un deuxième bloc de message chiffré par cryptage en utilisant la première clé du résultat de la fonction XOR appliquée entre le deuxième bloc de message et le premier bloc de message chiffré. 30 Selon un mode de réalisation, le procédé comprend, à la deuxième phase, la détermination par le terminal de communication sans contact d'un dixième nombre, le dixième nombre étant aléatoire, et la détermination par le terminal de communication sans contact d'un onzième nombre à partir du troisième nombre, le 3052280 B14781 - 15-ZV2-0672 7 quatrième nombre correspondant à la juxtaposition du dixième nombre et du onzième nombre. Selon un mode de réalisation, la première phase ne comprend pas d'opération de cryptage utilisant la première clé. 5 Un mode de réalisation prévoit également un circuit de comnunication sans contact comportant un microprocesseur programmé pour la mise en oeuvre du procédé tel que défini précédemment. Un mode de réalisation prévoit également une carte à 10 microcircuit comportant un circuit programmé pour la mise en oeuvre du procédé tel que défini précédeunlent. Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modès de 15 réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente, de façon très schématique, un mode de réalisation d'un système de communication en champ proche ; 20 la figure 2 est un schéma-bloc simplifié d'un exemple usuel d'un procédé d'authentification mutuelle d'un dispositif sans contact et d'un dispositif de couplage en champ proche ; les figures 3 à 5 sont des schémas-blocs simplifiés de modes de réalisation d'un procédé d'authentification mutuelle d'un 25 dispositif sans contact et d'un dispositif de couplage en champ proche ; les figures 6 à 8 sont des schéma-blocs simplifiés de circuits de cryptage adaptés à la mise en oeuvre d'une opération de cryptage selon un mode d'opération par enchaînement de blocs ; 30 et la figure 9 est un schéma-bloc simplifié d'un autre mode de réalisation d'un procédé d'authentification mutuelle d'un dispositif sans contact et d'un dispositif de couplage en champ proche. 3052280 B14781 - 15-ZV2-0672 8 Description détaillée De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls les éléments qui sont utiles à la compréhension des modes de 5 réalisation décrits ont été représentés et sont détaillés. En particulier, les échanges entre le dispositif de couplage en champ proche et un circuit intégré sans contact une fois l'opération d'authentification réalisée n'ont pas été détaillés, les modes de réalisation décrits étant compatibles avec les échanges usuels. 10 Sauf précision contraire, les expressions "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Des modes de réalisation sont décrits en prenant pour exemple une carte sans contact constituant une carte à circuit 15 intégré sans contact (PICC) et un lecteur sans contact constituant un dispositif de couplage en champ proche (PCD). Ils s'appliquent toutefois plus généralement à tout dispositif utilisé en dispositif de couplage en champ proche et à tout circuit intégré de communication sans contact dans lesquels des problèmes 20 similaires se posent. La figure 1 représente, de façon très schématique, un système de communication sans contact du type auquel s'appliquent les modes de réalisation décrits. Un terminal 10 de communication sans contact ou lecteur 25 sans contact (READER) génère un champ électromagnétique. Une carte 12 (CARD) sans contact se trouvant à portée du lecteur capte ce champ et est alors capable d'échanger des informations avec le lecteur 10. La carte 12 peut héberger une ou plusieurs applications. 30 A titre d'exemple, ces applications peuvent exploiter une technologie connue sous la dénomination MIFARE. L'application qui doit être lancée par la carte peut dépendre du lecteur avec lequel elle communique. En effet, un lecteur est généralement dédié à une application (par exemple, bancaire, de-transport, de contrôle 3052280 B14781 - 15-ZV2-0672 9 d'accès, etc.) et l'activation d'une carte dans le champ du lecteur dépend du protocole que la carte accepte. La technologie MIFARE® se décline selon différentes variantes notamment les variantes MIFARE DESFire® ou MIFARE 5 Plus®. MIFARE®, MIFARE DESFire® et MIFARE Plus® sont des marques de NXP B.V. enregistrées aux USA. Ces variantes se distinguent notamment par les procédés de cryptage mis en oeuvre. Selon un exemple, le procédé de cryptage correspond à un algorithme de chiffrement symétrique, par exemple l'algorithme AES (acronyme 10 anglais pour Advanced Encryption Standard) ou l'algorithme DES (acronyme anglais pour Data Encryption Standard) utilisant une clé, deux clés ou trois clés de chiffrage. La figure 2 est un schéma-bloc simplifié d'un exemple usuel d'un procédé d'authentification mutuelle d'un lecteur et 15 d'une carte à puces sans contact mettant en oeuvre la technologie MIFARE DESFire ou MIFARE Plus. Le procédé d'authentification de la carte PICC débute lorsque le lecteur a détecté la présence de la carte et veut authentifier la carte. D'autres commandes peuvent être envoyées 20 avant le début de l'authentification. Le procédé d'authentification comprend des phases successives S1 , S2, S3 et S4 comprenant chacune des étapes successives. Le PCD et le PD partagent la connaissance d'un nombre de valeurs de clés. A la phase S1, le lecteur (PCD) sélectionne 25 une clé (étape 20) et transmet son identifiant Idk à la carte (PICC) avec une commande d'authentification. La longueur de la clé k dépend notamment de l'algorithme de cryptage mis en oeuvre. A titre d'exemple, la longueur de la clé peut être de 8, 16 ou 24 bits. 30 La carte génère un nombre aléatoire Rb de longueur RL (étape 22). La longueur RL du nombre aléatoire Rb dépend de l'algorithme de cryptage mis en oeuvre. A titre d'exemple, la longueur RL peut être de 8 ou 16 bits. La carte détermine alors un message chiffré Al par cryptage du nombre aléatoire Rb en 3052280 B14781 - 15-ZV2-0672 10 utilisant la clé k avec l'identifiant Idk (étape 24) et transmet le message chiffré Al au lecteur. A la phase S2, le lecteur décrypte le message chiffré Al en utilisant la même clé k et obtient un nombre aléatoire 5 Rb pcd (étape 26). Le lecteur détermine alors un nombre aléatoire R'b pcd (étape 28) à partir du nombre aléatoire Rb_ pcd en décalant de façon circulaire à gauche, en représentation binaire, les bits du nombre aléatoire Rb_ pcd de plusieurs bits, par exemple de 8 bits. Le lecteur génère un nouveau nombre aléatoire Ra pcd de 10 longueur RL (étape 30). Le lecteur détermine un message Ra pcd11Rib pcd par concaténation du nombre aléatoire Ra_ pcd et du nombre aléatoire R' bpcd et détermine un message chiffré B1 par cryptage du message Ra pcdIIR'bpcd en utilisant la clé k (étape 32) et transmet le message chiffré B1 à la carte. 15 A la phase S3, la carte décrypte le message chiffré B1 en utilisant la clé k pour obtenir le message Ra_p cdlIR'b pcd (étape 36). La carte détermine alors un nombre aléatoire R'b (étape 38) à partir du nombre aléatoire Rb en décalant de façon circulaire vers la gauche, en représentation binaire, les bits du 20 nombre aléatoire Rb de plusieurs bits, par exemple de 8 bits. La carte compare les nombres aléatoires R'b pcd et R'b. (étape 40). Si les deux nombres aléatoires R'b pcd et R'b ne sont pas identiques, la carte interrompt l'opération d'authentification qui échoue (étape 42). Ceci correspond à l'authentification du 25 PCD par le PICC. Si les deux nombres aléatoires R'b_ pcd et R'b sont identiques, la carte détermine alors un nombre aléatoire R'a (étape 44) à partir du nombre aléatoire Ra_p cd en décalant de façon circulaire vers la gauche les bits du nombre aléatoire Ra pcd de plusieurs bits, par exemple de 8 bits. La carte détermine 30 un message chiffré A2 par cryptage du nombre aléatoire R'a en utilisant la clé k (étape 46) et transmet le message chiffré A2 au lecteur. A la phase S4, le procédé peut comprendre des étapes supplémentaires (étape 48), notamment l'authentification du PICC 35 par le PCD par la vérification du message A2, la détermination 3052280 B14781 - 15-ZV2-0672 11 d'une clé de session utilisée pour les opérations ultérieures de cryptage et de décryptage par le lecteur et la carte. La clé de session peut être obtenue à partir des nombres aléatoires Ra et Rb. 5 Pour les procédés d'authentification de carte par lecture avec contact, il est connu de prévoir le comptage par la carte du nombre de tentatives d'authentification infructueuses et d'arrêter l'opération d'authentification lorsque le nombre de tentatives infructueuses dépasse un seuil. Toutefois, le comptage 10 par la carte du nombre de tentatives d'authentification infructueuses, opération coûteuse en temps, n'est généralement pas prévu lors d'un procédé d'authentification d'une carte sans contact. En effet, une personne détenant un PCD frauduleux près du PICC pourrait transmettre des authentifications invalides 15 jusqu'à ce que la carte soit bloquée. Pour des technologies qui ne prévoient pas un mécanisme de déblocage, ceci entraîne une destruction permanente de la carte. En outre, les échanges de signaux entre la carte et le lecteur n'ayant lieu que pendant la brève durée pendant laquelle la carte est à proximité du lecteur, 20 l'opération d'authentification doit être la plus rapide possible. Un attaquant peut donc réaliser autant de tentatives d'authentification qu'il le souhaite. Une faiblesse du procédé d'authentification décrit précédemment est qu'un attaquant peut répéter les étapes décrites 25 précédemment réalisées par la carte à la phase S1 de la même clé k. A chaque fois, un nouveau nombre aléatoire Rb et un nouveau message chiffré Al sont déterminés. L'analyse d'un nombre limité de traces d'attaques par canaux auxiliaires et les messages chiffrés Al obtenus permet de réduire considérablement l'espace 30 des clés k possibles sans qu'il y ait besoin alors d'exécuter à chaque répétition les autres phases du procédé d'authentification. Le fait que le PD génère des nouveaux nombres aléatoires fournit à l'attaquant une distribution intéressante de traces. L'attaquant peut ensuite réaliser une attaque par force brute sur l'espace 35 réduit des clés. L'attaquant sait que l'attaque a réussi lorsque 3052280 B14781 - 15-ZV2-0672 12 la comparaison réalisée par la carte à l'étape 40 de la phase S3 n'aboutit pas à un échec. Une autre faiblesse du procédé d'authentification décrit précédemment est que le message chiffré B1 utilisé par la carte à 5 la phase S3 peut être imposé par l'attaquant. Un attaquant peut donc répéter autant de fois que souhaité l'étape 36 de décryptage en imposant un message chiffré B1 de son choix, obtenant ainsi des traces d'attaques par canaux auxiliaires. Toutefois, une attaque utilisant cette faiblesse prend plus de temps dans la 10 mesure où les étapes des phases S1 et S2 doivent être réalisées avant chaque tentative. Des modes de réalisation d'un procédé d'authentification vont être décrits dans lesquels les étapes exécutées à la phase S1 par la carte sont modifiées pour empêcher un attaquant 15 d'utiliser ces étapes pour obtenir des informations suffisantes sur la clé k. La faiblesse décrite précédemment concernant les étapes réalisées par la carte à la phase S1 ne peut alors plus être utilisée par un attaquant. La figure 3 est un schéma-bloc simplifié d'un mode de 20 réalisation d'un procédé d'authentification d'une carte PICC par un lecteur PCD. Le présent mode de réalisation du procédé d'authentification comprend les étapes du procédé d'authentification décrit précédemment en relation avec la figure 2 à la différence que les étapes 22 et 24 sont remplacées par une 25 étape 50 dans laquelle le nombre Al est obtenu directement par génération d'un nombre aléatoire de longueur RL. Le présent mode de réalisation comprend, en outre, à la phase S3, avant l'étape 36, une étape 52 de détermination du nombre aléatoire Rb par décryptage du nombre Al en utilisant la clé k par la carte. 30 Selon une variante, l'étape 50 décrite précédemment est remplacée par une étape de détermination du message chiffré Al par le cryptage du nombre aléatoire en utilisant une clé dummy différente de la clé k. 3052280 B14781 - 15-ZV2-0672 13 Selon une autre variante, à l'étape 50, le message chiffré Al est obtenu par cryptage d'un nombre donné, par exemple 0, avec une clé égale à un nombre aléatoire de longueur RL. La faiblesse décrite précédemment concernant les étapes 5 réalisées par la carte à la phase S1 ne peut plus être utilisée par un attaquant puisque ces étapes ne comprennent plus d'étape de cryptage utilisant la clé k. La figure 4 est un schéma-bloc simplifié d'un autre mode de réalisation d'un procédé d'authentification d'une carte par un 10 lecteur. Dans le présent mode de réalisation, il est mis en oeuvre de façon aléatoire le procédé décrit précédemment en relation avec la figure 2 ou le procédé décrit précédeitunent en relation avec la figure 3. Plus précisément, le mode de réalisation du procédé 15 d'authentification comprend les étapes du procédé d'authentification décrit précédemment en relation avec la figure 2 à la différence que les étapes 22 et 24 sont remplacées par les étapes 60, 62, 64 et 66 décrites ci-après. La carte génère un nombre aléatoire R1 de longueur RL (étape 60). La carte détermine 20 un bit aléatoire c (étape 62) et le compare à "0" (étape 64). Si le bit c est égal à "0", la carte détermine le message chiffré Al par cryptage du nombre aléatoire R1 en utilisant la clé k (étape 66) et transmet le message chiffré Al au lecteur. Le nombre aléatoire Rb utilisé à la phase S3 est alors égal au nombre 25 aléatoire R1. Si le bit c est égal à "1", le nombre Al transmis par la carte au lecteur est égal à R1 et la carte réalise une opération de cryptage en attribuant au nombre Rb le résultat du cryptage du nombre aléatoire R1 en utilisant une clé dummy différente de la clé k (étape 68). Le résultat de ce cryptage 30 n'est pas utilisé mais assure qu'en utilisant une attaque par canaux auxiliaires, le cas dans lequel c est égal à "1" fournit la même trace que le cas dans lequel c est égal à "0". Le présent mode de réalisation du procédé d'authentification comprend, en outre, à la phase S3, avant 35 l'étape 36, les étapes supplémentaires 70, 72 et 74 décrites ci- 3052280 B14781 - 15-ZV2-0672 14 après. La carte compare le bit aléatoire c à "0" (étape 70). Si le bit c est égal à "0", c'est-à-dire lorsque l'étape 66 a été exécutée à la phase Sl, la carte exécute une opération de décryptage en attribuant à Al le résultat d'un décryptage du 5 nombre aléatoire R1 en utilisant une clé dummy différente de la clé k (étape 72). Le résultat de ce décryptage n'est pas utilisé mais assure qu'en utilisant une attaque par canaux auxiliaires, le cas dans lequel c est égal à "1" fournit la même trace que le cas dans lequel c est égal à "0". 10 Si le bit c est égal à "0", c'est-à-dire lorsque l'étape 68 a été exécutée à la phase Sl, la carte détermine le nombre aléatoire Rb par le décryptage du nombre Al en utilisant la clé k (étape 74). La faiblesse décrite précédemment concernant les étapes 15 réalisées par la carte à la phase S1 ne peut plus être utilisée par un attaquant puisque ces étapes ne comprennent plus d'étape de cryptage utilisant la clé k. En outre, une étape de cryptage est toujours réalisée à la phase S1 et une étape de décryptage est toujours réalisée à la phase S2 même si ces étapes ne sont 20 pas nécessairement utiles selon la valeur du bit c. Ceci permet d'empêcher une attaque par canaux auxiliaires dans la mesure où un attaquant ne peut pas différencier les étapes de cryptage/décryptage utiles et non utiles. La figure 5 est un schéma-bloc simplifié d'un autre mode 25 de réalisation d'un procédé d'authentification d'une carte par un lecteur. Dans le présent mode de réalisation, la carte réalise les étapes 22 et 24 décrites précédemment seulement si la dernière procédure d'authentification s'est déroulée correctement. Lorsque la dernière procédure d'authentification ne s'est pas déroulée 30 correctement, le nombre aléatoire Rb et le message chiffré Al utilisés à la dernière procédure d'authentification qui s'est déroulée correctement sont à nouveau utilisés. Plus précisément, le présent mode de réalisation du procédé d'authentification comprend les étapes du procédé 35 d'authentification décrit précédemment en relation avec la figure 3052280 B14781 - 15-ZV2-0672 15 2 et comprend, en outre, une étape 80 à laquelle la carte détermine si une variable booléenne ok est vraie, la variable ok étant initialisée à la valeur vraie à la première tentative d'authentification de la carte. Si la variable ok est à l'état 5 vrai, les étapes 22 et 24 sont exécutées par la carte. Si la variable ok est à l'état faux, la carte réutilise les valeurs Rb et Al déterminées à la procédure d'authentification précédente (étape 82). Après avoir exécuté les étapes 22 et 24 ou l'étape 82, la carte met la variable ok à l'état faux (étape 84). Le 10 présent mode de réalisation comprend, en outre, après les étapes 36 à 46, une étape 86 à laquelle la carte met la variable ok à l'état vrai. Le présent mode de réalisation permet qu'une étape de cryptage à la phase Si ne soit réalisée par la carte que lorsque 15 la procédure d'authentification précédente s'est déroulée correctement. Une attaque dans laquelle la phase 51 serait répétée sans toutefois aboutir à une authentification réussie, notamment pour déterminer des informations sur la clé k, n'entraînerait pas à chaque répétition de la phase S1 la réalisation d'une nouvelle 20 étape de cryptage, ce qui réduit les informations utiles que peut espérer récupérer l'attaquant. Une opération de cryptage/décryptage est effectuée en utilisant au moins un module de cryptage/décryptage. Un mode de cryptage/décryptage a une longueur de bloc de chiffrement, BL, et 25 est adapté à crypter/décrypter des messages de la même longueur que la longueur de bloc de chiffrement. A titre d'exemple, pour l'algorithme DES, BL peut être de 8 bits et pour l'algorithme AES, BL peut être de 16 bits. Pour les messages qui sont plus longs que BL et correspondant à un multiple de BL, l'opération de 30 cryptage/décryptage peut être effectuée par enchaînement des blocs de chiffrement (CBC). Un autre mode de réalisation va maintenant être décrit qui est adapté au cas où le procédé de cryptage ou de décryptage utilisé pour déterminer les messages chiffrés Al et B1 met en oeuvre un mode d'opération par enchaînement des blocs (CBC 35 pour Cipher Block Chaining). 3052280 B14781 - 15-ZV2-0672 16 La figure 6 est un schéma-blocs d'un circuit de cryptage 90 illustrant le principe d'une opération de cryptage selon un mode d'opération CBC. Le circuit 90 comprend des modules MOD1, MOD2, MOD3 de cryptage, trois modules étant représentés en figure 5 6. Chaque module de cryptage MOD1, MOD2, MOD3 peut effectuer une opération de cryptage avec la même clé k. Le circuit 90 reçoit, pour chaque module MOD1, MOD2, MOD3, un bloc de message à chiffrer E1, E2, E3 et fournit, pour chaque module MOD1, MOD2, MOD3, un bloc de message chiffré 01, 02 et 03. Chaque module MOD1, MOD2, 10 MOD3 reçoit un nombre IN1, IN2, IN3 et fournit le bloc de message chiffré 01, 02, 03 par cryptage du nombre IN1, IN2, IN3 en utilisant une clé key qui est la même pour tous les modules MOD1, MOD2, MOD3. Le mode d'opération est dit par enchaînement des blocs 15 dans la mesure où chaque nombre qui est crypté par un module correspond au résultat de la fonction XOR appliquée entre le nombre d'entrée du module et le bloc de message crypté fourni par le module précédent. Comme cela est représenté en figure 6, le nombre IN3 est le résultat de la fonction XOR appliquée entre les 20 nombres E3 et 02 et le nombre IN2 est le résultat de la fonction XOR appliquée entre les nombres E2 et 01. Pour le premier module MOD1, le nombre IN1 est obtenu par addition binaire du nombre E1 et d'un nombre VI appelé vecteur d'initialisation. La figure 7 est un schéma-blocs d'un circuit de cryptage 25 92 du type représenté en figure 6 pouvant être mis en oeuvre dans les modes de réalisation décrits précédemment dans le cas où le procédé de cryptage correspond à l'algorithme AES ou l'algorithme DES utilisant une clé ou deux clés. La longueur de chaque nombre aléatoire utilisé par le lecteur ou la carte est alors égale à la 30 longueur du nombre pouvant être crypté par un module de cryptage, c'est-à-dire la longueur de bloc de chiffrement. En figure 7, à titre d'exemple, on a représenté l'opération de cryptage pour l'obtention du message chiffré Bi à partir des nombres aléatoires Ra_ pcd et Rb pcd- Le message chiffré 35 Bl a deux fois la longueur RL et se divise en deux blocs 3052280 B14781 - 15-ZV2-0672 17 juxtaposés, un premier bloc B1,1 et un deuxième bloc B1,2, chacun ayant une longueur RL. Le module MOD1 reçoit le résultat de la fonction XOR appliquée entre le nombre aléatoire Ra_p cd et un vecteur d'initialisation IV et fournit le premier bloc B1,1 du 5 message chiffré B1. Le module MOD2 reçoit le résultat de la fonction XOR appliquée entre le nombre aléatoire Rb pcd et le bloc de message crypté B1,1 et fournit le deuxième bloc B1,2 du message chiffré B1. A la première opération de cryptage, le vecteur d'initialisation IV est, par exemple, égal à "0". Le deuxième bloc 10 B1,2 est utilisé, par exemple, comme vecteur d'initialisation IV lors de la prochaine opération de cryptage. A titre de variante, IV est pris égal à "0" pour chaque opération de cryptage. La figure 8 est un schéma-blocs d'un circuit de cryptage 94 du type représenté en figure 6 pouvant être mis en oeuvre dans 15 les modes de réalisation décrits précédemment dans le cas où le procédé de cryptage correspond à l'algorithme DES utilisant trois clés. La longueur RL, en représentation binaire, de chaque nombre aléatoire utilisé par le lecteur ou la carte est alors égale au double de la longueur BL. 20 En figure 8, à titre d'exemple, on a représenté l'opération de cryptage pour l'obtention du message chiffré B1 à partir des nombres aléatoires Ra_ pcd et Rb_ pcd- Le message chiffré B1 a quatre fois la longueur BL et se divise en quatre blocs juxtaposés B1, 1a, B1,1b, B1,2a et B1, 2b de longueur BL. Le nombre 25 aléatoire Ra_ pcd se divise en deux blocs juxtaposés Ra pcd,1 et Ra pcd,2 de longueur BL et le nombre aléatoire Rb pcd se divisé en deux blocs juxtaposés Rb pcd,1 et Rb pcd,2 de longueur BL. Le module MOD1 reçoit le résultat de la fonction XOR appliquée entre le bloc Ra_ pcd,1 et le vecteur d'initialisation IV et fournit le 30 premier bloc B1, la du message chiffré B1. Le module MOD2 reçoit le résultat de la fonction XOR appliquée entre le bloc Ra_p cd,2 et le bloc de message chiffré Bila et fournit le deuxième bloc B1,1b du message chiffré B1. Le module MOD3 reçoit le résultat de la fonction XOR appliquée entre le nombre aléatoire Rb p cd,1 et 35 le bloc de message chiffré Bi, lb et fournit le troisième bloc 3052280 B14781 - 15-ZV2-0672 18 B1,2a du message chiffré B1. Le module MODO reçoit le résultat de la fonction XOR appliquée entre le bloc Rb_ pcd,2 et le bloc Bi, 2a et fournit le quatrième bloc Bi, 2b du message chiffré B. Le quatrième bloc Bi, 2b est utilisé, par exemple, comme vecteur 5 d'initialisation IV lors de la prochaine opération de cryptage. Les premier et deuxième blocs juxtaposés Bi, la et Bi, lb forment un premier bloc B1,1 de longueur RL du message chiffré B1 et les troisième et quatrième blocs juxtaposés B1,2a et Bi, 2b forment un deuxième bloc B1,2 de longueur RL du message chiffré B1. 10 La figure 9 est un schéma-bloc simplifié d'un mode de réalisation d'un procédé d'authentification d'une carte par un lecteur. Dans le présent mode de réalisation, à la phase S3, des étapes supplémentaires sont prévues de façon qu'un attaquant ne 15 puisse plus coituuander le nombre utilisé pour une opération de cryptage ou de décryptage. Plus précisément, le mode de réalisation du procédé d'authentification comprend les étapes du procédé d'authentification décrit précédemment en relation avec la figure 20 2 à la différence que, à la phase S3, l'étape 38 n'est pas présente et que la carte réalise à la phase S3 des étapes supplémentaires 100, 102, 104 et 106, avant l'étape 36, décrites ci-après. La carte détermine le nombre aléatoire R'b (étape 100) à partir du nombre aléatoire Rb en décalant de façon circulaire vers la 25 gauche, en représentation binaire, les bits du nombre aléatoire Rb de plusieurs bits, par exemple de 8 bits. La carte met en oeuvre le procédé de cryptage (étape 102) en utilisant la clé-k et le nombre aléatoire R'b qui est fourni, selon sa longueur, au premier module ou aux premiers modules du circuit de cryptage. 30 Pour l'exemple de procédé de cryptage illustré en figure 7 dans lequel chaque module de cryptage peut recevoir un nombre ayant la même longueur RL que le nombre aléatoire R'b, le nombre aléatoire R'b est fourni au premier module de cryptage. Pour l'exemple de procédé de cryptage illustré en figure 8 dans lequel chaque module 35 de cryptage peut recevoir un nombre ayant la moitié de la longueur 3052280 B14781 - 15-ZV2-0672 19 RL du nombre aléatoire R'b, le premier bloc du nombre aléatoire R'b est fourni au premier module de cryptage et le deuxième bloc du nombre aléatoire R'b est fourni au deuxième module de cryptage. En outre, le procédé de cryptage est réalisé en utilisant comme 5 vecteur initial IV le dernier bloc du message chiffré B1 qui est associé au nombre aléatoire Ra pcd' c'est-à-dire le bloc B1,1 du message chiffré B1 pour l'exemple de procédé de cryptage illustré en figure 7 et le bloc Bi, lb du message chiffré B1 pour l'exemple de procédé de cryptage illustré par la figure 8. Le premier module 10 ou les premiers modules du circuit de cryptage fournissent alors un bloc de message chiffré B1, 2_picc de longueur RL. La carte compare alors le deuxième bloc B1,2 du message chiffré B1 avec le bloc de message chiffré B1,2 picc (étape 104). Si le deuxième bloc du message chiffré B1 est différent du nombre B1,2_ picc, la carte 15 interrompt la phase d'authentification (étape 106). Si les deux nombres sont identiques, la carte continue à l'étape 36 décrite précédemment. A titre de variante, les étapes 40 et 42 peuvent ne pas être présentes. 20 Un attaquant souhaitant réaliser une attaque à la phase S3, peut imposer le message chiffré B1 utilisé par la carte à la phase S3. Toutefois, l'attaquant n'a pas accès au nombre aléatoire R'b. Comme une fonction XOR est appliquée entre le nombre aléatoire R'b et un bloc du message chiffré B1, l'attaquant ne 25 commande pas le nombre utilisé par les modules de cryptage lors de l'opération de cryptage. Les modes de réalisation décrits précédemment sont mis en oeuvre côté carte et sont transparents pour le lecteur. Ils ne demandent aucune modification côté lecteur. Les cartes ainsi 30 réalisées (programmées) sont donc compatibles avec les lecteurs existants. Divers modes de réalisation ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, bien que les modes de réalisation aient été décrits 35 en relation avec une carte à microcircuit, ils sont compatibles 3052280 B14781 - 15-ZV2-0672 20 avec une réalisation dans tout dispositif de communication en champ proche dans lequel des problèmes similaires se posent, par exemple un téléphone mobile équipé d'un routeur NFC opérant en mode carte. Par ailleurs, bien que les modes de réalisation aient 5 été plus particulièrement décrits en relation avec un exemple d'application à des transactions MIFARE, ils se transposent à d'autres applications dans lesquelles des problèmes similaires se posent. En outre, la mise en oeuvre pratique des modes de réalisation qui ont été décrits est à la portée de l'homme du 10 métier à partir des indications fonctionnelles données ci-dessus et en utilisant ou programmant des circuits en eux-mêmes usuels. En particulier, un circuit intégré de communication sans contact auquel s'appliquent ces modes de réalisation comporte généralement au moins un microprocesseur, une ou plusieurs unités de mémoire 15 volatile et non volatile, une interface de communication en champ proche et, souvent, d'autres circuits en fonction des applications hébergées. Divers modes de réalisation avec diverses variantes ont été décrits ci-dessus. On note que l'homme de l'art peut combiner 20 divers éléments de ces divers modes de réalisation et variantes sans faire preuve d'activité inventive. En particulier, le mode de réalisation décrit précédemment en relation avec la figure 9 peut être mis en oeuvre avec l'un quelconque des modes de réalisation décrits précédemment en relation avec les figures 3, 25 4 et 5. REVENDICATIONS1. Procédé d'authentification d'un circuit de communication sans contact (PICC) par un terminal de communication sans contact (PCD), comprenant successivement : une première phase (S1) comprenant la détermination par 5 le circuit de communication sans contact d'un premier nombre (A1) égal au résultat du cryptage d'un deuxième nombre (Rb) avec une première clé (k), le deuxième nombre (Rb) étant un nombre aléatoire, la première phase se terminant par la transmission du premier nombre (A1) par le circuit de communication sans contact 10 au terminal de communication sans contact ; une deuxième phase (S2 ) comprenant la détermination par le terminal de communication sans contact d'un troisième nombre (Rb pcd) par décryptage du premier nombre (A1) en utilisant la première clé (k), la détermination par le terminal de 15 communication sans contact d'un quatrième nombre (RapcdlIR'bpcd) à partir du troisième nombre (Rb_p cd) et la détermination par le terminal de communication sans contact d'un cinquième nombre (B1) par cryptage du quatrième nombre (Ra pcdlIR'bpcd) en utilisant la première clé (k), le cinquième 20 nombre (B1) comprenant au moins des première et deuxième parties (B1,1, B1,2 ; B1,la, B1,1b, B1,2a, B1,2b) juxtaposées, la deuxième phase se terminant par la transmission du cinquième nombre (B1) par le terminal de communication sans contact au circuit de communication sans contact ; et 25 une troisième phase (S3) comprenant la détermination d'un sixième nombre (R'b) par le circuit de communication sans contact (PICC) à partir du deuxième nombre (Rb), la détermination d'un septième nombre (B1,2 picc ) par cryptage par un mode d'opération par enchaînement des blocs du sixième nombre (R'b) en 30 utilisant la première clé (k) et un vecteur d'initialisation égal à la première partie (B1,1 ; B1, lb) du cinquième nombre (B1) et l'interruption par le circuit de communication sans contact de l'authentification si le septième nombre (B1,2_ picc) est différent de la deuxième partie (B1,2) du cinquième nombre (B1). 3052280 B14781 - 15-ZV2-0672 22 2. Procédé selon la revendication 1, comprenant, en outre, à la troisième phase (S3), le décryptage par le circuit de communication sans contact du cinquième nombre (B1) en utilisant la première clé (k) pour fournir le quatrième nombre (RapcdilRib pcd)- 3. Procédé selon la revendications 1 ou 2, comprenant, en outre, à la troisième phase, la détermination par le circuit de communication sans contact d'un huitième nombre (R'a) à partir du quatrième nombre (Rap cd1IR'bpcd), la 10 détermination d'un neuvième nombre (A2) par cryptage du huitième nombre (R'a) avec la première clé (k), la troisième phase (S3) se terminant par la transmission du neuvième nombre (A2) par le circuit de communication sans contact (PICC) au terminal de communication sans contact (PCD). 15 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel chaque opération de cryptage réalisée par le circuit de communication sans contact (PICC) comprend la fourniture d'au moins un premier bloc de message (E1) et d'un deuxième bloc de message (E2), la fourniture d'un premier bloc de 20 message chiffré (01) par cryptage en utilisant la première clé (k) du résultat de la fonction XOR appliquée entre le premier bloc de message et un vecteur d'initialisation (IV) et la fourniture d'un deuxième bloc de message chiffré (02) par cryptage en utilisant la première clé (k) du résultat de la fonction XOR 25 appliquée entre le deuxième bloc de message (E2) et le premier bloc de message chiffré (01). 5. Procédé selon l'une quelconque des revendications 1 à 3, comprenant, à la deuxième phase, la détermination par le terminal de communication sans contact (PCD) d'un dixième nombre 30 (Ra pcd), le dixième nombre étant aléatoire, et la détermination par le terminal de communication sans contact (PCD) d'un onzième nombre (R' b_pcd) à partir du troisième nombre (Rb p cd), le quatrième nombre (Rapcd1IR'bpcd) correspondant à la juxtaposition du dixième nombre (Ra_p cd) et du onzième nombre 35 (Ribpcd)- 3052280 B14781 - 15-ZV2-0672 23 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel la première phase (Si) ne comprend pas d'opéràtion de cryptage utilisant la première clé (k). 7. Circuit de communication sans contact (PICC) 5 comportant un microprocesseur programmé pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 6. 8. Carte à microcircuit comportant un circuit programmé pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 6.10