Brevet FR2810481A1 — publié le 20011221

Contrôle d'accès à un moyen de traitement de données présente invention concerne de manière générale tout moyen électronique de traitement de données dont les fonctionnalités, ou des services y sont liés, sont accessibles par un code confidentiel, dit également mot de passe ou code secret, qui est le plus souvent reçu par le moyen traitement à la suite d'une composition sur le clavier d'un moyen d'accueil du moyen de traitement. exemple, le moyen de traitement de données est une carte à microcontrôleur, dite également carte à circuit intégré ou carte à puce (Smart Card), telle qu'une carte de crédit pour terminal bancaire ou une carte de porte-monnaie électronique pour terminal de point de vente, ou pour tout autre terminal tel qu terminal radiotéléphonique mobile doté d'un lecteur de carte additionnelle, ou bien telle qu'une carte d'identité SIM (Subscriber Identity Mobile) dans terminal radiotéléphonique mobile. Plus particulièrement l'invention a trait à la sécurité du contrôle d'accès aux fonctionnalités de la carte à puce par un code confidentiel reçu par celle-ci de manière à le comparer à un code confidentiel secret associé à 1a carte à puce et actuellement pré-mémorisé dans celle-ci. Un attaquant, une personne malintentionnée, souhaitant connaître ',e code confidentiel secret d'une carte à puce peut procéder à une analyse de consommation électrique (en anglais, Single Power Analysis SPA) en connectant un appareil de mesure de tension à l'interface électrique entre la carte à puce et son terminal d'accueil. Dans une carte à puce selon la technique antérieure, le code confidentiel secret pré-mémorisé dans une mémoire non volatile de la carte à puce est manipulé au cours de la vérification de tout code confidentiel présenté en vue d'authentifier le véritable possesseur de la carte à puce. En particulier, le processeur dans la carte lit le code secret dans la mémoire non volatile et compare au code reçu écrit temporairement en mémoire RAM de la carte à puce. Les cartes à puce actuelles présentent ainsi des possibilités de fuites d'information resultant de l'enregistrement de caractéristiques de consommation énergétique de la carte à puce. La présente invention vise à accroître la sécurité du contrôle du code confidentiel reçu par un moyen de traitement de données, tel que carte à puce, et à éviter toute manipulation du code secret dans le moyen de traitement de données. A cette fin, un procédé pour accéder à un moyen de traitement de données associé a un code confidentiel secret et accessible en lui appliquant un code confidentiel présenté par un moyen d'accueil, est caractérisé en ce qu'il comprend les étapes suivantes - préalablement, implémentation d'une fonction de transformation de code dans le moyen de traitement, puis transformation du code secret en un code secret transformé selon la fonction de transformation et mémorisation du code secret transformé dans le moyen de traitement ; et - à chaque utilisation du moyen de traitement, transformation du code présenté en un code presenté transformé selon la fonction de transformation implémentée dans le moyen de traitement, et comparaison du code secret transformé code présenté transformé dans le moyen de traitement. Ainsi, au cours de l'utilisation du moyen de traitement, tel que carte à puce, le code secret n'y est pas mémorisé et n'est donc pas manipulé dans la carte lors de toute présentation du code confidentiel présenté. Comme on le verra en détail dans la suite, la fonction de transformation peut être irréversible, un hachage, liée à un nombre aléatoire fixé lors de la création de la carte ou bien dépendante d'un deuxième nombre aléatoire variable à chaque présentation du code présenté, appliquée itérativement en fonction du nombre de présentations précédentes du code présenté, une permutation prédéterminée de parties de code, ou une fonction homomorphique. Certaines ces caractéristiques de fonction de transformation peuvent être combinées entre elles. D'autres caractéristiques et avantages la présente invention apparaîtront plus clairement ' la lecture de la description suivante de plusieurs réalisations préférées de l'invention en référence aux dessins annexés correspondants dans lesquels - la figure 1 est un bloc-diagramme schématique montrant un système de mise en oeuvre du procédé de contrôle d'accès selon l'invention dans le contexte d'une carte à puce ; et - la figure 2 est un algorithme des étapes principales du procédé de contrôle d'accès selon plusieurs réalisations de l'invention. Selon la réalisation illustrée à la figure 1, un moyen de traitement de données électronique est constitué par une carte à puce CA dont la "puce" est composée d'un microcontrôleur. Schématiquement, le microcontrôleur comporte une unité de traitement centrale CPU formée par un microprocesseur PR, une mémoire MO de type ROM incluant un système d'exploitation OS de la carte et notamment des algorithmes d'application de communication d'authentification spécifiques, une mémoire volatile MNV de type programmable et effaçable, comme une mémoire EEPROM, qui contient des données notamment liées au possesseur de la carte et au fournisseur de la carte, et une mémoire MA de type RAM destinée à recevoir notamment des données d'un terminal d'accueil TE de la carte. Tous composants PR, MO, MNV et MA sont reliés entre par un bus interne BU. Le terminal d'accueil TE, tel qu'un terminal bancaire ou un terminal téléphonique, est équipé d'un clavier CL pour notamment composer un code confidentiel CP, dit également code soumis, à présenter à la carte. Dans un lecteur LE du terminal TE est introduite une partie de la carte CA contenant le microcontrôleur et supportant typiquement huit contacts électriques d'une liaison électrique LI entre le lecteur LE et le bus BU interne à la carte CA lorsque la carte est du type à contact. En référence maintenant à la figure 2, le procédé de contrôle d'accès selon une réalisation préférée de l'invention pour la carte à puce CA montrée à la figure 1 comprend essentiellement sept étapes E1 à E7. Les premières étapes E1 à E3 sont préalablement réalisées, chez le fournisseur de carte, lors de la fabrication de la carte puis lors de l'acquisition de la carte CA, par exemple lors de l'abonnement à un service accessible par les fonctionnalités de la carte. Lors de la fabrication de la carte, une fonction de transformation de code confidentiel prédéterminée FT pour transformer ultérieurement le code confidentiel présenté CP dans la carte en un code présenté transformé CPT, comme on le verra dans la suite est implémentée dans la mémoire MO de la carte. La carte CA est remise avec la fonction de transformation implémentée FT par le fabricant de la carte au fournisseur de carte. En fonction de données du fabricant de carte notamment, le fournisseur de carte attribue un code confidentiel secret CS de préférence chiffré, par exemple à quatre chiffres, à la carte CA, qui est déchiffré à l'étape El. Aussitôt, le processeur PR de carte transforme le code confidentiel secret CS un code secret transformé CST = FT(CS) selon la fonction de transformation prédéterminée FT dont plusieurs exemples seront décrits en détail dans la suite de la description. A l'étape E3, le code secret transformé CST est écrit dans la mémoire non volatile de la carte CA. Le code secret CS n'est pas ainsi conservé en clair dans la carte. Ainsi, la transformation du code confidentiel secret, lequel était constamment contenu en mémoire non volatile dans les cartes à puce de la technique antérieure, en le code secret transformé CST est exécutée avant toute présentation du code présenté CP à la carte, et le code secret transformé CST, et non le code secret, est conservé en mémoire non volatile Les étapes E4 à E7 sont effectuées après 'introduction de la carte CA dans le lecteur LE du terminal d'accueil TE qui est ainsi relié par liaison électrique LI et le bus interne BU microcontrôleur de la carte CA. Lors de chaque utilisation de la carte, un code présenté CP qui doit être normalement identique au code secret, est composé sur le clavier CL du terminal TE à l'étape E4 afin de vérifier le code présenté dans la carte CA. Soit au fur et à mesure de la composition des chiffres du code présenté, par exemple au nombre de quatre, soit en bloc, le terminal TE transmet le code présenté CP à la carte CA à travers la liaison LI et le bus BU afin qu'il soit écrit dans la mémoire RAM MA, à l'étape E5. A l'étape suivante E6, le processeur PR transforme le code présenté CP inscrit dans la mémoire MA en un code présenté transformé CPT selon fonction de transformation ET implémentée dans la carte CA. Finalement, le processeur PR lit le code secret transformé CST dans la mémoire MNV et le compare au code présenté transformé CPT qui vient d'être déterminé, à l'étape E7. Si les codes comparés CST et sont identiques, les fonctionnalités de la carte CA sont accessibles, par exemple pour accéder à un service, tel qu'un service de paiement ou un service téléphonique. Sinon, lorsque les codes comparés CST et CPT sont différents, d'autres tentatives de composition d'un autre code présenté en nombre limité peuvent être effectuées. Selon une première réalisation, la fonction de transformation de code FT est un hachage Par exemple, le mot à quatre bits de chacun des quatre chiffres, ou plus généralement de l'octet de l'un des caractères, du code confidentiel CS, CP est transformé par hachage en plusieurs octets, typiquement quelques dizaines d'octets, et le code transformé CST, CPT comprend quatre ensembles de quelques dizaines d'octets. En outre, la fonction de hachage H ne comporte pas de fonction réciproque, c'est-à-dire est irréversible. Une telle fonction est dite également "fonction à sens unique" qui est une fonction relativement aisée à calculer mais considérablement plus difficile à inverser. En d'autres termes, il n'existe aucune fonction H 1, ou il est très difficile de trouver une fonction H 1 telle CF = H 1 jH(CF)], où CF représente code confidentiel quelconque. Le caractère à sens unique de la fonction de hachage interdit ainsi de déchiffrer le code transformé CST = H(CS) mémorisé dans la carte CA pour retrouver le code secret d'origine CS. Le hachage permet de s'affranchir notamment d'une recherche d'un code confidentiel caractère par caractère, c'est-à-dire octet par octet. La connaissance d'un caractère haché ne permet pas de déduire les autres caractères du code secret. Selon une deuxième réalisation, la fonction de transformation de code FT s'applique sur 1e code confidentiel CS, CP et un nombre aléatoire NA. La fonction de transformation est par exemple une fonction logique, telle que la fonction OU-Exclusif (XOR). Le code transformé CST, CPT résulte de l'application du code confidentiel respectif CS, CP et d'un nombre aléatoire NA à la fonction de transformation FT. Le nombre aléatoire NA est produit un générateur aléatoire associé au processeur PR, fois pour toute à la création de la carte CA, lors de l'attribution et de l'écriture du code secret CS à l'étape El. Le processeur PR transforme le code secret CS en un code secret transformé CST = FT(CS, à l'étape E2 pour le mémoriser avec nombre aleatoire NA dans la mémoire MNV. Par exemple, la fonction de transformation FT peut être une combinaison du code confidentiel CS, CP et du nombre aléatoire NA. Le nombre aléatoire NA peut être un élément de diversification code secret CS. A l'étape E6, le processeur PR lit non seulement le code présenté CP dans 1a mémoire MA mais également le nombre aléatoire NA dans la mémoire MNV de manière à produire le code présenté transformé CPT = FT(CP, Selon cette deuxième réalisation, deux cartes à puce associées à des codes confidentiels secrets identiques sont associés à des nombres aléatoires différents. Les nombres aléatoires étant a priori différents pour les deux cartes, les effets de la manipulation de ces nombres aléatoires ne peuvent servir à la caractérisation des cartes. En effet, l'analyse de la consommation électrique de la carte à puce n'est pas représentative du code secret en clair, mais est représentative du code secret transformé selon une transformation connue de 1 attaquant. A partir du code secret transformé CST peut être déduite l'information sur le code secret CS parce que l'élément de diversification NA est méconnu de l'attaquant. De préférence, à chaque code secret CS correspond un nombre aléatoire respectif NA. Ainsi avantageusement, lorsque le code secret associé à une carte est modifié, le nombre aléatoire NA est également modifié. Par exemple si deux chiffres d'un code secret sont inversés, les deux nombres aléatoires correspondant à ces deux versions de code secret sont différents. Cette variante permet d'éviter de reconnaître un nombre aléatoire dans premiere carte grâce à la manipulation du nombre aléatoire dans une autre carte associée à un code confidentiel commun avec la première carte. Selon une troisième réalisation, le nombre est généré initialement et un deuxième nombre aléatoire NA' est produit par le générateur aléatoire associé au processeur PR dans la carte CA, avant transformation du code présenté CP, à chaque vérification du code présenté CP. Les étapes E6 et E7 sont alors remplacées par des étapes E6a et E7a montrees également à la figure 2. D'une part, la fonction de transformation est appliquée au code secret transformé CST mémorisé préalablement et au deuxieme nombre aléatoire NA' pour déterminer un deuxième code secret transformé CST' = FT(CST, NA'). D'autre part, la fonction de transformation est appliquée une première fois au code présenté reçu CP et au premier nombre aléatoire produit préalablement NA pour produire un code présenté transformé intermédiaire CPT' = FT(CP, NA), puis est appliquée une deuxième fois au code présenté transformé intermédiaire CPT et au deuxième nombre aléatoire pour produire le code présenté transformé CPT' FT(FT(CP, NA), NA') = FT(CPT, NA'). Puis les codes CST' et CPT' sont comparés à l'étape E7a. La troisième réalisation du procédé selon l'invention garantit qu'au sein de la carte ' puce, il n y a jamais la même valeur de code confidentiel transformé CST', et donc que la vérification code confidentiel présenté CP ne s'exécute jamais de la même manière dans la carte à puce CA. Par exemple, la fonction de transformation FT est un opérateur arithmétique simple tel que l'addition, soit CST' = CST + NA' avec CST = CS + NA NA en mémoire MNV, et CPT = (CP + NA) + NA'. Une quatrième réalisation proche de la dernière variante exposée ci-dessus consiste après la première vérification du code présenté CP résultant de la comparaison du code secret transformé CST = FT(CS) et du code présenté transformé CPT = FT(CP), à memoriser le code secret transformé CST et à appliquer pour chaque présentation du code présenté, la fonction de transformation de code FT au code secret transformé précedemment mémorisé. Ainsi pour une deuxième présentation, le processeur PR compare les codes transformés CST2 = FT(CST), qui est mémorisé, CPT2 _ (CPT), puis pour une troisième présentation succedant à une deuxième vérification positive compare les codes transformés CST3 = FT(CST2 , qui est mémorisé, et CPT3 = FT(CPT2) = FT(FT(CPT)) = FT( (FT(CP))), et ainsi de suite à chaque présentation du code présenté, le code secret transformé CSTi est mémorisé et est comparé au code présenté transformé CPTi = FTi(CP) résultant des applications précédentes. Après chaque vérification, la valeur du code secret transformé qui est memorisée dans la mémoire MNV est différente de celle qui était mémorisée à la vérification précédente. Dans la quatrième réalisation, comme montré aux étapes E6b et E7b remplaçant les étapes E6 et E7 dans la figure 2 à partir de la deuxième présentation, le processeur PR à la ième présentation du code dans la carte CA applique i fois la fonction ET code présenté CP ce qui peut être relativement long ; par exemple la fonction ET est une fonction modulo d'un nombre premier P. Afin de réduire le temps de calcul la fonction ET 1, la fonction ET peut être la fonction exposant modulo le nombre entier prédéterminé P. Ainsi, à chaque présentation du code présente, les applications précédentes de la fonction de transformation au code présenté CP sont remplacées dans le processeur PR par une application de la fonction de transformation au dernier code présenté CPTi-1 et au code présenté CP afin de produire le code présenté transformé CPTi = FT(CPTi-1, CP) _ FT[(CPT)1 1, CP] modulo P, au lieu d'appliquer ' fois la fonction ET au code présenté CP. Puis lorsqu'à l'issue de la comparaison (étape E7b) les codes transformés comparés CSTi et CPTi sont identiques, ceux-ci sont mémorisés dans la mémoire MNV à place des codes précédents CSTi-1 et CPTi_1. Selon un autre exemple, la fonction de transformation de code ET peut être une fonction arithmétique simple, telle qu'addition CPTi - (CP + CPTi_1) modulo P. En variante, au lieu de mémoriser code présenté transformé CPTi, les applications de la fonction de transformation au code présenté sont remplacées par une application d'une fonction de transformation équivalente à la ième itération 1 de la fonction de transformation afin de produire un code présenté transformé CPTi. Cette variante concerne ainsi une fonction ET 1 dépendante directement de l'indice i et du code présenté. Par exemple, la fonction ET est l'addition d'un nombre aléatoire NA, soit CSTi = CSTi_1 + NA, et CPTi = CP + i.NA. A l'issue de ces deux transformations, le nombre i d'itérations est mémorisé avec le code secret transformé CPTi résultant de l'application precédente dans la mémoire MAT, et le code présenté transformé CPTi est comparé au code secret transformé mémorisé CSTi. Comme pour la production d'un nombre aléatoire à chaque présentation du code CP, la détermination des codes transformés CPTi et CSTi de manière différente de celle des codes transformés CPTi_1 et CSTi à la présentation précédente annihile toute déduction du code transformé à partir du code transformé precédent qui dépend du nombre de présentations code présenté. Ainsi, à chaque présentation, le code secret transformé mémorisé est différent de celui mémorisé à la présentation précédente. Selon une cinquième réalisation, chaque code est considéré comme partagé en plusieurs parties, telles que quatre octets de chiffre par exemple. Au debut du procédé, le code secret CS est transformé lui appliquant une fonction de transformation de code ET de manière à changer l'ordre successif de ses octets, soit par exemple le code secret transformé CST résultant de la permutation prédéterminée suivante . CST=FT [CS (OS 1, OS 2, 0S3, OS 4) 1 = (OS 2, 0S4, OS 1, OS 3) Lors de la première présentation du code présenté CP, la même permutation est appliquée au code CP en modifiant l'ordre de ses octets OP1 à OP4 CPT=FT[CP(OP1, 0P2, 0P3, OP4)]=(OP2, 0P4, 0P1, 0P3). Au cours de la première comparaison à l'étape E7, les deuxièmes octets 0S2 et 0P2 sont comparés, puis les quatrièmes octets OS4 et 0P4 sont comparés, les premiers octets OS1 et 0P1 sont comparés et enfin les troisièmes octets OS3 et OP3 sont comparés. Si l'une des quatre comparaisons d'octets est négative, l'accès au service de la carte est refusé. Lors d'une deuxième vérification du code présenté succédant à une première utilisation de la carte, la fonction de transformation ET modifie à nouveau l'ordre des octets transformé en commençant par les quatrièmes octets 0S4. Ainsi le code secret transformé lors de cette deuxième présentation devient le suivant CST=FT[CST(OS2, 0S4, 0S1, 0S3) ]=(0S4, OS3, 0S2 0S1) . Le code présenté subit alors deux permutations pour obtenir le code présenté transformé suivant CPT=FT [ FT [CP (0P1, 0P2, OP3, OP4) ] ] = (0P4, 0P3, , 0P1) . Ainsi, à chaque présentation du code présenté CP, la permutation est appliquée au code secret transformé CST résultant de la dernière présentation, et la permutation est également appliquée au code présenté CP, mais un nombre de fois égal au nombre de permutations/présentations précédentes du code présenté. Les parties correspondantes des codes secret et présenté permutés CST, CPT sont comparées deux à deux et le code secret permuté CST est mémorisé dans la carte CA lorsque les codes comparés CST et CPT sont identiques. Les octets OSl à 0S4 du code secret ne sont jamais ainsi manipulés dans le même ordre lors de deux vérifications successives du code présenté. Afin d'augmenter la sécurité, la fonction de transformation FT à laquelle est applique le code secret CS à l'étape E2 ou CST à l'étape ou bien à laquelle est appliqué tout autre code secret transformé CSTi-1 à l'étape E6b selon les réalisations précédentes, est homomorphique de la fonction FT, notée ci-après FT', à laquelle est appliqué le code présenté CP à l'étape E6 ou à l'étape E6a, ou CPTi-1 à l'étape E6b. Chaque fournisseur de carte peut choisir sa propre fonction de transformation FT homomorphia_ue d'une fonction prédéterminée FT', ou bien couple de fonctions [FT, FT' ] , ce qui le protège contre des attaques. Selon un premier exemple, les fonctions FT et FT' sont des élévations au carré de la somme d'un code confidentiel et d'un nombre aléatoire Lors de la mise en service de la carte à l'étape E2 ou E62, ou lors d'un changement du code secret associé à la carte, le code secret CS subit la transformation FT suivante CST = FT(CS, NA) = CS2 + 2 CS.NA + NA2, c'est-à-dire le code secret transforme CST résulte des calculs successifs suivants : calcul de CS au carré, calcul du double produit 2 CS.NA, calcul de NA au carré, et addition des trois produits précédents. La fonction FT' appliquée au code présenté CP est également une élévation au carré de la somme de ce code avec le nombre aléatoire NA. Toutefois, le calcul du code présenté transformé CPT suit un processus différent du calcul du code secret par la transformation FT. Ainsi le code présenté CP est calculé selon la formule CPT = FT' (CP, NA) = (CP + NA) 2, en commençant à calculer la somme CP + NA, puis en multipliant cette somme par elle-même pour obtenir le code présenté CPT. Ainsi le processus de calcul du code présenté CPT à l'étape E6 est différent de celui code secret CST à l'étape E2 et donc les vaguelettes correspondant à ces deux transformations sont différentes. Selon un deuxième exemple, la fonction FT appliquée sur le code secret CS est telle CST = NB cs x NB NA, c'est-à-dire est appliquée en calculant le produit du nombre NB par lui-même CS fois et le produit de NB par lui-même NA fois, et en multipliant les deux produits précédents. Le code présenté transformé CPT est calculé selon la formule CPT = FT'(CP, NA) = NB CP+NA, c'est-à-dire en calculant le produit de NB par lui-même CP+NA fois. NB désigne un nombre quelconque qui est transmis avec le code secret CS et le nombre aléatoire NA à la carte CA pour y être écrit dans la mémoire Nue, à l'étape E3. Dans la description ci-dessus, il sera compris que la carte à puce recouvre tous les types connus de carte à puce, dites également cartes à microcontrôleur, comme les cartes à contact ou sans contact énoncées ci-après à titre d'exemple non limitatif : cartes de crédit (Carte Bleue), cartes de paiement, cartes téléphoniques, cartes SIM, cartes "additionnelles", cartes de centrale d'achat, cartes de jeu, etc. Plus généralement, l'invention concerne non seulement des cartes à puce mais également d'autres objets électroniques portables désignés indifféremment par moyens de traitement de données électroniques, tels que assistants ou organiseurs électroniques, porte-monnaie électroniques, jetons, calculettes, etc. terminal d'accueil du moyen de traitement de données électronique peut être par exemple du type terminal informatique, ordinateur personnel notamment portable, terminal bancaire, terminal de point de vente, terminal radiotéléphonique, dispositif de controle d'accès à un local ou à une armoire forte, etc. Le moyen d'accueil peut être éloigné du moyen traitement de données, ceux-ci étant reliés par tout moyen de transmission de données. Le code confidentiel au sens de l'invention également désigné dans certains contextes comme mot de passe (password), ou code secret, ou bien numéro d'identité personnel PIN (Persona. Identification Number) ou CHV (Card Holder Verification) identificateur PTI (Personai Teleco,=unicaticn Identifier) notamment pour des cartes SIM de terminal radiotéléphonique. Le code confidentiel reçu est en général un code alphanumérique. I1 peut être appliqué au moyen traitement de données, carte à puce ou objet électronique portable, par tout moyen de saisie code connu, autre qu'un clavier à touches, par exemple par la voix et reconnaissance vocale, ou bien par reconnaissance d'une signature biométrique, exemple au moins une empreinte digitale. REVENDICATIONS 1 - Procédé pour accéder à un moyen de traitement de données (CA) associé à un code confidentiel secret (CS) et accessible en appliquant un code confidentiel présenté (CP) par moyen d'accueil (TE), caractérisé en ce qu'il comprend les étapes suivantes - préalablement, implémentation (E1) d'une fonction de transformation de code (FT) dans le moyen de traitement (CA), puis transformation (E2) du code secret (CS) en un code secret transformé (CST) selon la fonction de transformation (FT) et mémorisation. (E3) du code secret transformé (CST) dans 1e moyen traitement ; et - à chaque utilisation du moyen de traitemea (CA), transformation. (E6) du code présenté (CP) en un code présenté transformé (CPT) selon la fonction de transformation implémentée dans le moyen traitement, et comparaison (E7) du code transformé au code présenté transformé dans le moyen de traitement. 2 - Procédé conforme à la revendication 1, selon lequel la fonction de transformation irréversible. 3 - Procédé conforme à la revendication 1 ou selon lequel la fonction de transformation est hachage. 4 - Procédé conforme à l'une quelconque des revendications 1 à 3, selon lequel chaque code transformé (CST, CPT) résulte de l'application du code confidentiel respectif (CS, CP) et d'un nombre aléatoire (NA) à la fonction de transformation (FT), le nombre aléatoire (NA) étant pré-mémorise avec le code secret transformé (CST) dans le moyen de traitement (CA). 5 - Procédé conforme à la revendication 4, selon lequel deux moyens de traitement de données (CA) associés à des codes confidentiels secrets (CS) identiques sont associés à des nombres aléatoires différents (NA). 6 - Procédé conforme à la revendication 4 ou 5, selon lequel le nombre aléatoire (NA) modifié lorsque le code secret (CS) associé moyen de traitement (CA) est modifié. 7 - Procédé conforme à l'une quelconque des revendications 1 à 3, selon lequel le code secret transformé (CST) mémorisé préalablement résulte de l'application du code secret (CS) et d'un premier nombre aléatoire (NA) à la fonction de transformation (FT), un deuxième nombre aléatoire (NA') est produit (E6a) dans le moyen de traitement (CA) avant chaque transformation du code présenté, puis' un deuxième code secret transformé (CST') est déterminé en appliquant 1e code secret transformé mémorisé (CST) et le deuxième nombre aléatoire (NA') à la fonction de transformation, et le code présenté transformé (CPT') est déterminé en appliquant le code présenté (CP) et le premier nombre aléatoire (NA) à 1a fonction. de transformation pour produire un code présenté transformé intermédiaire (CPT) et en appliquant le code présenté transformé intermédiaire (CPT) et le deuxième nombre aléatoire à la fonction de transformation, le deuxième code secret transformé (CST') étant comparé au code présenté transformé (CPT'). 8 - Procédé conforme à l'une quelconque des revendications 1 à 6, selon lequel pour chaque présentation du code présenté, les étapes suivantes sont exécutées - application (E6b) de la fonction de transformation (FT) au code secret transformé précédemment mémorisé (CSTi_1), - applications (E6b) de la fonction de transformation (FT) au code présenté (CP) autant de fois que le nombre présentations précédentes du code présenté, - comparaison (E7b) du code secret transformé (CSTi) et du code présenté transformé (CPTi) résultant des applications précédentes, et - mémorisation code secret transformé (CSTi) dans le moyen de traitement (CA). 9 - Procédé conforme à la revendication 8, selon lequel les applica.ions de la de transformation. au code présenté (CP) sont remplacées par une application une fonction de transformation équivalente à la i` itération de la fonction de transformation (FT) afin de produire un code présenté transformé (CPTi) a comparer (E7b) avec le code secret transformé (CSTi), et le nombre i d'itérations est mémorisé avec code secret transformé (CPTi) résultant de l'application. précédente dans le moyen de traitement (CA). 10 - Procédé conforme à l'une quelconque des revendications 1 à selon lequel la fonction de transformation (FT) consiste à partager chaque code (CS, CP) en plusieurs parties et à appliquer une permutation prédéterminée sur des parties du code, selon lequel à chaque présentation du code présenté (CP), la permutation est appliquée au code secret transformé (CST) résultant de la dernière présentation, la permutation est appliquée au code présenté un nombre de fois égal au nombre permutations précédentes du code présenté,- les parties correspondantes des codes secret et présenté permutés (CST, CPT) sont comparées deux à deux, et le code secret permuté (CST) est mémorisé dans le moyen de traitement (CA). 11 - Procédé conforme à l'une quelconque des revendications 1 à 10, selon lequel la fonction de transformation (FT) à laquelle est appliqué le code secret (CS) est homomorphique de la fonction de transformation (FT') à laquelle est appliqué le code présenté (CP).