Brevet FR3052279A1 — publié le 20171208

B14780 - 15-ZV2-0622 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 contact entre un dispositif de couplage en champ proche (Proximity Coupling 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 3052279 B14780 - 15-ZV2-0622 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 qùatriè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 circuit de communication sans contact du quatrième nombre utilisant la première clé pour obtenir le troisième nombre l'interruption par le circuit de communication sans contact 30 l'authentification si un sixième nombre obtenu à partir 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éterminé par le circuit de communication sans contact à partir le en et de du 3052279 B14780 - 15-ZV2-0622 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 communication 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 3052279 B14780 - 15-ZV2-0622 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 collununication sans contact d'un douzième nombre basé sur le 3052279 B14780 - 15-ZV2-0622 5 deuxième nombre, le troisième nombre correspondant à 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 communication 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 35 sixième nombre par le circuit de communication sans contact à 3052279 B14780 - 15-ZV2-0622 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 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 comaunication 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 3052279 B14780 - 15-ZV2-0622 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 conutunication 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édemment. 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 modes 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. 3052279 B14780 - 15-ZV2-0622 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 connunication 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 3052279 B14780 - 15-ZV2-0622 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 DESFiree 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é OL'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 3052279 B14780 - 15-ZV2-0622 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 p cd 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 Rap cd de 10 longueur RL (étape 30). Le lecteur détermine un message Ra pcdlIR'bpcd 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 cdIIR'bpcd (é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' bpcd 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_ pcd 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 3052279 B14780 - 15-ZV2-0622 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édeamtent 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 3052279 B14780 - 15-ZV2-0622 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é Bi 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. 3052279 B14780 - 15-ZV2-0622 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édemment 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- 3052279 B14780 - 15-ZV2-0622 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 Si, 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 Si, 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 3052279 B14780 - 15-ZV2-0622 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 S1 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 S1 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). 3052279 B14780 - 15-ZV2-0622 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 El, 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. Conumie 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 'Ni 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é B1 à partir des nombres aléatoires Ra pcd et Rb pcd- Le message chiffré 35 B1 a deux fois la longueur RL et se divise en deux blocs 3052279 B14780 - 15-ZV2-0622 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_ pcd 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_p cd 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 Bi, la, B1,1b, B1,2a et Bi, 2b de longueur BL. Le nombre 25 aléatoire Ra_p cd se divise en deux blocs juxtaposés Ra pcd,i et Ra pcd,2 de longueur BL et le nombre aléatoire Rb_ pcd se divise 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, 1a 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é Bi, la 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 3052279 B14780 - 15-ZV2-0622 18 31,2a du message chiffré Bl. 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 B1,2b du message chiffré B1. Le quatrième bloc B1,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 R -1,1a 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 B1,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 commander 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édeunent 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 3052279 B14780 - 15-ZV2-0622 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 B111 du message chiffré B1 pour l'exemple de procédé de cryptage illustré en figure 7 et le bloc Bl, ib 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é Bi avec le bloc de message chiffré 21,2_ picc (étape 104). Si le deuxième bloc du message chiffré Bi 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é Bi, 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 3052279 B14780 - 15-ZV2-0622 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 trànsactions 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), la première phase se terminant par la transmission du premier nombre (A1) par le circuit de communication sans contact au terminal de communication sans contact ; une deuxième phase (S2) comprenant la détermination par 10 le terminal de communication sans contact d'un deuxième nombre (Rb_pcd), par décryptage du premier nombre en utilisant une première clé (k), la détermination par le terminal de coi imunication sans contact d'un troisième nombre (RapcdIIR'bpcd) à partir du deuxième nombre (Rb_p cd) et la 15 détermination par le terminal de communication sans contact d'un quatrième nombre (B1) par cryptage du troisième nombre (Ra_pcdIIR'bpcd) en utilisant la première clé (k), la deuxième phase se terminant par la transmission du quatrième nombre (B1) par le terminal de communication sans contact au circuit de 20 communication sans contact ; et une troisième phase (S3) comprenant le décryptage par le circuit de communication sans contact du quatrième nombre (B1) en utilisant la première clé (k) pour obtenir le troisième nombre (Ra_pcdIIR'bpcd) et l'interruption par le circuit de 25 communication sans contact de l'authentification si un sixième nombre (R' b_pcd) obtenu à partir du (Ra pcdlIR'b pcd) est différent d'un septième dans lequel la première phase d'opération de cryptage utilisant la première 30 2. Procédé selon la revendication troisième nombre nombre (R'b), ne comprend pas clé (k). 1, dans lequel le septième nombre (R'b) est déterminé par le circuit de communication sans contact (PICC) à partir d'un huitième nombre (Rb) obtenu par décryptage par le circuit de communication sans 3052279 B14780 - 15-ZV2-0622 22 contact (PICC) du premier nombre (A1) en utilisant la première clé (k). 3. Procédé selon la revendication 1 ou 2, comprenant, à la première phase (Si), la détermination d'un neuvième nombre 5 (R1), le neuvième nombre étant aléatoire, sans opération de cryptage par le circuit de communication sans contact (PICC). 4. Procédé selon la revendication 3, dans lequel, à la première phase (Si), le premier nombre (Al) est égal au neuvième nombre. 10 5. Procédé selon la revendication 3, dans lequel, à la première phase (Si), le premier nombre (A1) est obtenu par cryptage par le circuit de communication sans contact (PICC) du neuvième nombre en utilisant une deuxième clé différente de la première clé (k), la deuxième clé ayant la même taille que la 15 première clé, l'algorithme de cryptage utilisant la deuxième clé étant le même que l'algorithme de cryptage utilisant la première clé. 6. Procédé selon la revendication 1 ou 2, dans lequel, à la première phase, le premier nombre (Al) est obtenu par cryptage 20 par le circuit de communication sans contact (PICC) d'un dixième nombre non aléatoire en 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é. 25 7. Procédé selon la revendication 3, dans lequel, à la première phase (51), le circuit de communication sans contact (PICC) réalise de façon aléatoire les étapes suivantes : a) la détermination du premier nombre (Al) comme étant égal au résultat du cryptage du neuvième nombre (R1) en utilisant 30 la première clé (k) ; b) la détermination du premier nombre (A1) comme étant égal au huitième nombre (R1). 8. Procédé selon la revendication 7, comprenant en outre à l'étape a) la détermination du huitième nombre (Rb) comme 35 étant égal au neuvième nombre (R1) et à l'étape b) la réalisation 3052279 B14780 - 15-ZV2-0622 23 d'une opération de cryptage utilisant une quatrième clé (dummy) différente de la première clé (k), 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é. 9. Procédé selon la revendication 7 ou 8, comprenant, en outre, à la troisième phase (S3), la réalisation d'une étape c) par le circuit de communication sans contact (PICC), l'étape c) comprenant, lorsque l'étape a) est réalisée, la réalisation 10 d'une opération de décryptage utilisant une cinquième clé (dummy) différente de la première clé (k), 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 15 l'étape b) est réalisée, la détermination du huitième nombre (Rb) par décryptage par le circuit de communication sans contact (PICC) du premier nombre (A1) en utilisant la première clé (k). 10. Procédé selon la revendication 3, comprenant successivement à la première phase (S1), si une variable booléenne 20 (ok) est vraie, la détermination par le circuit de communication sans contact (PICC) du premier nombre (A1) comme étant égal au résultat du cryptage du neuvième nombre (Rb) en utilisant la première clé (k) et, si la variable booléenne (ok) est fausse, la réutilisation par le circuit de communication sans contact (PICC) 25 de la dernière valeur déterminée du premier nombre (A1) et comprenant la mise de la variable booléenne (ok) à l'état faux. 11. Procédé selon la revendication 10, comprenant, en outre, à la troisième phase (S3), la mise par le circuit de communication sans contact (PICC) de la variable booléenne (ok) à 30 l'état vrai si le sixième nombre (R 'bpcd) obtenu à partir du quatrième nombre (B1) est égal au septième nombre (R'b). 12. Procédé selon l'une quelconque des revendications 1 à 11, comprenant, dans la seconde phase, la détermination par le terminal de communication sans contact (PCD) d'un onzième nombre 35 (Rapcd), le onzième nombre étant aléatoire, et la détermination 3052279 B14780 - 15-ZV2-0622 24 par le terminal de communication sans contact (PCD) d'un douzième nombre (R' b_pcd) basé sur le deuxième nombre (Rb_p cd), le troisième nombre (Ra pcdlIR'b pcd) correspondant à la juxtaposition du onzième nombre (R a_pcd) et du douzième nombre 5 (Rib pcd)- 13. Procédé selon l'une quelconque des revendications 1 à 12, comprenant en outre, dans la troisième phase, la détermination par le circuit de communication sans contact d'un treizième nombre (R'a) basé sur le troisième nombre (Ra_pcdIIR'b_pcd), la détermination d'un quatorzième nombre (A2) par cryptage du treizième nombre (R'a) en utilisant la première clé (k), la troisième phase (S3) se terminant avec la transmission du quatorzième nombre (A2) par le circuit de communication sans contact (PICC) au terminal de communication sans contact (PCD). 14. Circuit de communication sans contact (PICC) comportant un microprocesseur programmé pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 13. 15. Carte à microcircuit comportant un circuit programmé pour la mise en oeuvre du procédé selon l'une quelconque des 20 revendications 1 à 13.