Brevet FR2844409A1 — publié le 20040312

Protection d'une clé secrète pour algorithme d'authentification dans un radiotéléphone mobile La présente invention concerne d'une manière 5 générale l'authentification d'un premier moyen terminal par un deuxième moyen terminal à travers un réseau de télécommunications afin d'autoriser le premier moyen terminal à communiquer avec le deuxième terminal. Plus particulièrement, le premier moyen 10 terminal est un radiotéléphone mobile dans un réseau de radiotéléphonie cellulaire numérique, et le deuxième moyen terminal est un enregistreur de localisation des visiteurs associé à un enregistreur de localisation nominal et un centre d'authentification dans le réseau fixe du réseau de radiotéléphonie. Comme il est connu, un module d'identité d'usager, dit carte SIM (Subscriber Identity Module), 20 contient un algorithme d'authentification dont la clé secrète est pré-mémorisée dans la carte SIM avant la mise en service de celle-ci. La clé est sujette à de nombreuses attaques afin qu'un imposteur se substitue à l'usager possesseur de la carte SIM pour 25 communiquer à travers le réseau de radiotéléphonie. La clé secrète permet au réseau fixe, et plus particulièrement à l'enregistreur de localisation des visiteurs, d'identifier la carte SIM et donc l'usager possesseur de celle-ci. L'une des attaques connues pour récupérer la clé secrète dans la carte à puce SIM est une mesure de consommation de courant de la carte SIM par analyse DPA (Differential Power Analysis). Au cours de cette analyse en sortie de la carte à puce devant le 35 lecteur du terminal dans lequel elle est insérée, le courant consommé par la carte est observé pour de nombreux différents nombres aléatoires, en tant que clé secrète, à appliquer au début de l'algorithme d'authentification implémenté dans la carte. 5 L'observation de la consommation de courant dans la carte fait apparaître des biais lorsque l'un des nombres aléatoires est identique à la clé secrète ce qui permet à un imposteur d'utiliser la carte SIM à la place de l'usager possesseur de celle-ci. Pour se protéger contre une telle attaque, le déroulement du code à chaque activation de l'algorithme d'authentification peut être désynchronisé en y introduisant un code mort aléatoire. Cependant cette désynchronisation peut 15 être insuffisante si l'attaquant utilise des moyens statistiques pour inhiber les effets liés à l'aléa ainsi introduit. L'invention vise à modifier l'algorithme 20 d'authentification dans un premier moyen terminal du type carte SIM de manière à supprimer les biais qui peuvent être observés par une analyse DPA, tout en garantissant que le résultat de l'algorithme d'authentification n'est pas modifié malgré les 25 adjonctions apportées par l'invention. A cette fin, un procédé pour protéger une clé secrète pré-mémorisée dans un premier moyen terminal recevant un nombre aléatoire transmis par un deuxième 30 moyen terminal fait appel à un algorithme implémenté dans le premier moyen terminal comprenant au moins J boucles itératives, avec l'entier J au moins égal à 2, portant chacune sur deux mots numériques entrants respectifs de longueur prédéterminée et comportant 35 une combinaison linéaire des deux mots entrants respectifs en deux mots numériques intermédiaires respectifs et une substitution aux deux mots intermédiaires de deux mots de substitution qui sont lus dans une table de substitution respective pré5 mémorisée dans le premier moyen terminal et qui constituent les mots entrants dans la boucle suivante, les deux mots entrants dans la première boucle étant le nombre aléatoire et la clé secrète. Le procédé est caractérisé, selon l'invention, 10 en ce qu'il comprend préalablement la détermination d'une fonction aléatoire affine de la combinaison, et l'application de la fonction à la table de substitution respective de la première boucle pour établir une deuxième 15 table, une substitution dans la première boucle à la place de la substitution respective pour substituer aux deux mots intermédiaires deux mots de substitution qui sont lus dans la deuxième table, et 20 une application de la fonction réciproque de la fonction aléatoire aux mots intermédiaires respectifs, exécutée dans la deuxième boucle après la combinaison respective et avant la substitution respective, afin de produire des mots intermédiaires 25 à substituer selon la table de substitution respective de la deuxième boucle. Selon la technique antérieure, pour un nombre aléatoire déterminé en tant que l'un des deux mots entrants dans la première boucle, l'exécution de la 30 combinaison et de la substitution pour chaque octet de la clé secrète en un octet stocké en mémoire RAM du premier moyen terminal, tel que carte à puce, produisait un biais observable. Les biais résultaient en particulier des tables de substitution qui sont fixées une fois pour toute et mémorisées dans la carte. Selon l'invention, la table de substitution dans la première boucle n'est plus constante d'une 5 exécution à la suivante de l'algorithme grâce à la transformation de la table de substitution connue par une table de substitution aléatoire dépendant de la fonction aléatoire f qui n'est pas figée mais au contraire change en réponse à chaque nombre aléatoire 10 transmis par le deuxième moyen terminal. De cette manière, les opérations effectuées dans la première boucle sont masquées puisque le résultat produit par celle-ci est complètement aléatoire. Puis dans la deuxième boucle, l'application de la fonction 15 réciproque aux mots intermédiaires respectifs permet de retrouver le cycle normal de l'algorithme dont le résultat final n'est pas modifié et peut être comparé à celui résultant de l'exécution de l'algorithme implémenté dans le deuxième moyen terminal. La fonction aléatoire est affine de la combinaison, c'est-à-dire la fonction et la combinaison présentent des caractéristiques de transformation similaires appliquées aux mots traités dans l'algorithme. De préférence, la fonction aléatoire est linéaire lorsque la combinaison est linéaire. La fonction linéaire peut comprendre au moins un coefficient qui est déterminé aléatoirement avant le déclenchement de l'algorithme en réponse au nombre 30 aléatoire transmis par le deuxième moyen terminal. Toutefois, si de la place en mémoire dans le premier moyen terminal est disponible, la fonction linéaire peut comprendre un autre coefficient prédéterminé aléatoirement en réponse au nombre aléatoire transmis 35 par le deuxième moyen terminal. Selon un autre exemple, la fonction est logarithmique ou exponentielle lorsque la combinaison est logarithmique ou exponentielle. D'autres caractéristiques et avantages de 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 d'une zone de localisation dans un réseau de radiotéléphonie cellulaire numérique o se trouve un radiotéléphone mobile à carte SIM, en tant que premier moyen terminal selon l'invention; et - la figure 2 est un algorithme d'authentification implémenté dans la carte SIM du radiotéléphone et protégeant une clé secrète conformément à l'invention. Selon la réalisation préférée, le premier moyen terminal est constitué par un radiotéléphone mobile MS, et plus particulièrement par une carte à microcontrôleur du type carte à puce CS, dite carte SIM (Subscriber Identity Module), contenue d'une 25 manière amovible dans le radiotéléphone MS. Comme montré à la figure 1, le radiotéléphone mobile MS est inclus dans un réseau de radiotéléphonie cellulaire numérique RR de type GSM dont la partie fixe est schématisée par la zone de localisation o le 30 radiotéléphone mobile MS se trouve momentanément. La partie fixe comprend une station de base BTS reliée par voie radio au radiotéléphone MS et un commutateur du service mobile MSC relié à la station de base BTS par un contrôleur de station de base BSC. Le 35 commutateur du service mobile MSC est associé à un enregistreur de localisation des visiteurs VLR et est relié au moins à un commutateur d'un réseau téléphonique commuté RTC. Des communications pour les radiotéléphones mobiles visiteurs, y compris le 5 radiotéléphone MS se trouvant momentanément dans la zone de localisation desservie par le commutateur MSC, sont gérées par celui-ci. Le réseau de radiotéléphonie RR comprend également un enregistreur de localisation nominal HLR 10 relié à des commutateurs du service mobile MSC ainsi qu'un centre d'authentification AUC à travers le réseau de signalisation du réseau de radiotéléphonie. L'enregistreur HLR comprend essentiellement une base de données, comme dans un enregistreur VLR, qui 15 contient diverses caractéristiques relatives à chaque usager, possesseur d'une carte SIM CS, telles qu'une identité internationale IMSI, un numéro d'annuaire, un profil d'abonnement, etc. Le centre d'authentification AUC contient un 20 algorithme d'authentification A3 et un algorithme A8 de détermination de clé de chiffrement qui sont parfois combinés en un seul algorithme A38 (COMP128) selon la norme GSM. Le centre d'authentification AUC génère plusieurs nombres aléatoires C (Challenges) et 25 détermine plusieurs réponses signées SRES résultant de l'application des nombres aléatoires successivement à l'algorithme d'authentification A3 avec une clé secrète attribuée K à l'usager de la carte SIM. Le centre d'authentification détermine 30 également plusieurs clés de chiffrement Kc résultant respectivement de l'application des nombres aléatoires choisis C et de la clé K appliquée à l'algorithme de détermination de clé A8. Des triplets comportant chacun un nombre aléatoire C, une réponse 35 signée SRES et une clé de chiffrement Kc sont -7 transmis par le centre d'authentification AUC à l'enregistreur de localisation HLR lors de la souscription de l'usager à l'abonnement au service de radiotéléphonie mobile du réseau RR. Dès qu'une authentification est nécessaire par exemple pour une mise à jour de la localisation du radiotéléphone mobile MS, ou pour l'établissement d'un appel sortant ou entrant avec le radiotéléphone MS, l'enregistreur de localisation des visiteurs VLR 10 auquel le radiotéléphone est rattaché momentanément, est sollicité par la carte CS dans le radiotéléphone pour une authentification de la carte par la partie fixe du réseau radiotéléphonique RR. L'enregistreur HLR fournit alors à l'enregistreur VLR un triplet de 15 nombre aléatoire C, réponse de signature SRES et clé de chiffrement Kc. Le nombre aléatoire C et la clé de chiffrement Kc dans le triplet sont transmis à travers le réseau fixe respectivement à la carte SIM CS dans le radiotéléphone mobile MS pour y déterminer 20 une réponse signée SRES à transmettre à l'enregistreur VLR et à la station de base BTS pour déchiffrer des données transmises par voie radio depuis le terminal MS. La carte à microcontrôleur SIM CS contient 25 essentiellement un microprocesseur PR, une mémoire Ml de type ROM dans laquelle sont implémentés un système d'exploitation de la carte, des algorithmes de communication et d'application ainsi que des algorithmes d'authentification AL de type A3 ou A8 30 selon l'invention, une mémoire non volatile M2 de type EEPROM contenant toutes les caractéristiques de l'usager, et une mémoire M3 stockant des données notamment à échanger entre le microcontrôleur inclus dans le radiotéléphone MS et la carte CS. Lors de la procédure d'authentification, par exemple pour un établissement d'appel sortant ou entrant, le processeur PR dans la carte CS applique le nombre aléatoire C transmis par l'enregistreur VLR 5 à travers la station de base BTS et lu dans la mémoire M3 et la clé secrète K attribuée à l'usager possesseur de la carte CS et écrite initialement dans la mémoire M2, à l'algorithme d'authentification AL=A3 implémenté également dans la carte CS. Le 10 résultat de cette application est constitué par une réponse signée SRES qui est retransmise par la carte CS à travers la radiotéléphone mobile MS et la station de base BTS à l'enregistreur VLR qui compare la réponse signée SRES à celle incluse dans le 15 triplet contenant le nombre aléatoire transmis C. Si les réponses signées sont identiques, la carte CS est authentifiée par l'enregistreur VLR du réseau RR. Le nombre aléatoire transmis C peut également servir à générer une clé de chiffrement Kc résultant de 20 l'application du nombre aléatoire C et de la clé secrète K à l'algorithme de chiffrement AL=A8 également implémenté dans la carte CS. La clé de chiffrement Kc qui est également générée de la même façon dans l'enregistreur VLR et qui est communiquée 25 à la station de base BTS, permet de chiffrer les données échangées entre le réseau de radiotéléphonie RR et le radiotéléphone mobile MS à l'interface radio entre celui-ci et la station de base BTS. La protection de la clé secrète K attribuée à 30 l'usager et prémémorisée dans la carte CS en tant que premier moyen terminal concerne aussi bien l'algorithme d'authentification A3 que l'algorithme de chiffrement A8. Ils seront indifféremment désignés dans la suite par l'algorithme AL dont les principales étapes connues sont illustrées par des blocs en trait continu dans la figure 2. Les étapes spécifiques à la protection de la clé 5 secrète K introduites selon l'invention dans l'algorithme AL sont repérées par des blocs en trait pointillé à la figure 2. L'algorithme AL comprend essentiellement B 10 super-boucles itératives composées chacune de J boucles itératives (rounds), les entiers B et J étant typiquement égal 8 et 5. Initialement, à une étape E01, la mémoire EEPROM M2 dans la carte CS a mémorisé des tables de 15 substitution connues T0 à Tj-j qui sont respectivement utilisées dans les boucles itératives successives désignées par l'indice j variant de 0 à J-1. Chaque table de substitution Ti contient 2 Nj octets, N étant un entier plus grand que J et typiquement égal à 9. 20 La mémoire M2 contient également I octets KO à KI-1 composant la clé secrète de l'usager, l'entier I étant typiquement égal à 16. L'algorithme AL comprend également des étapes initiales E02 à E05 avant de déclencher la première 25 super-boucle d'indice b=0, c'est-à-dire l'algorithme AL proprement dit. En réponse à un nombre aléatoire C composé de I octets C0 à CI-1 = C15 transmis par l'enregistreur de localisation des visiteurs VLR, à l'étape E02, le microprocesseur PR détermine une 30 fonction aléatoire f affine de la combinaison d'octets à une étape intermédiaire E3 dans les boucles de l'algorithme AL. En l'occurrence, la combinaison intermédiaire E3 étant linéaire, la fonction f est linéaire du type f(TO) = cxTo + Y, a et 35 D étant des coefficients déterminés aléatoirement. Puis à l'étape E03, le microprocesseur PR transforme tout nombre du type To(Yi), TO(z1) lu en correspondance avec un nombre entrant respectif yi, zi dans la table To, en un nombre correspondant 5 f(To(yi>) = T' (yi), f(TO(zi)) = T'o(zi) d'une table de substitution T'o qui ne sera utilisée que dans la première boucle d'indice b = 0. La table supplémentaire T'o est écrite de préférence dans la mémoire RAM M3, et non dans la mémoire EEPROM M2, 10 pour accélérer les opérations à une étape ultérieure E51 utilisant les octets dans la table T'o. De préférence, l'un des coefficients aléatoires a, a dans la fonction linéaire f est déterminé en fonction du nombre aléatoire transmis C par le processeur PR. 15 Cependant le processeur PR peut contenir sous forme logicielle ou matérielle un générateur aléatoire pour générer les coefficients a et P. Afin de réduire la taille occupé en mémoire, l'un des coefficients ax et P peut être constant. Par exemple, le coefficient a 20 est égal à 1, soit la fonction linéaire f(TO) = To + f. Egalement comme montré à l'étape E04 en réponse au nombre aléatoire transmis C, les octets C0 à CI-, du nombre aléatoire C sont écrits respectivement dans 25 un registre interne à la mémoire M2 pour constituer des octets Ro à RI-1 qui formeront après chaque boucle les I premiers octets du résultat produit par celleci. A la dernière étape initiale E05, l'indice de 30 super-boucle b est mis à zéro. Après une mise à zéro de l'indice de boucle j ainsi que de variables entières de décalage dl et d2 à une étape E10, la première boucle itérative j = 0 dans la première super-boucle b=O est exécutée avec 35 les octets KO à KI-1 de la clé secrète K constituant des octets RI à R2I-1 qui formeront les I octets restants du résultat de chaque boucle dans le registre interne, comme indiqué aux étapes Ell à E13. Le processeur PR lit les deux mots numériques 5 entrants respectifs RO = CO à RI-1 = CI-1 et RI = Ko à \2 I-1 = KI-1,. A l'étape suivante E2, un indice i est mis égal à 0, cet indice variant de O à I-1, afin de déterminer des paires d'octets de résultat Ri et Ri+i 10 à chacune des I sous-boucles d'étapes E3 à E62 comprises dans une boucle d'indice j. Comme il est connu, chaque sous-boucle d'indice i comprend essentiellement une combinaison linéaire intermédiaire E3 de deux octets Ri et RI+i ayant le 15 même rang i dans les deux mots numériques entrants respectifs et une substitution E52 dans deux mots intermédiaires yi et zi à au plus M bits résultant de la combinaison linéaire précédente de deux octets de substitution lus dans la table de substitution 20 respective Ti. Cependant selon l'invention, comme on le verra ci-après, la première boucle d'indice b = O comprend à la place de la substitution normale E52 une substitution particulière E51 qui dépend de la table 25 supplémentaire T'O = f(TO) établie à l'étape E03, et la deuxième boucle d'indice b = 1 comprend une étape supplémentaire relative à l'application E41 de la fonction f 1 réciproque de la fonction linéaire f. L'étape de substitution E51 et l'étape d'application 30 de fonction réciproque E41 particulières à l'invention sont répétées respectivement au moins dans les première et deuxième boucles d'indice j = O et j = 1 dans la première super-boucle d'indice b = O, et de préférence, respectivement dans les 35 premières et deuxièmes boucles d'indice j = O et j = 1 de toutes les super-boucles d'indice b = 0 à b = B1. En revenant au déroulement de chaque sous-boucle 5 désignée par l'indice i qui est incrémenté d'une unité tout en étant inférieur à l'entier I, comme indiqué aux étapes E61 et E62 à la fin de la boucle d'indice j = 0, le processeur PR combine à l'étape E3 les octets Ri = Ci et RI+i = Ki en des mots 10 intermédiaires yi et zi selon les relations suivantes i= Ri+ dl + 2 Ri+d2 (modulo 2N) zi = Ri+d2 + 2 Ri+dl (modulo 2) Puisque l'indice j est égal à 0, des indices de 15 décalage dl et d2 étant respectivement égaux à 0 et I = 16 pour la première boucle, l'étape suivante E4 relie directement l'étape E3 à l'étape E50 qui est poursuivie par l'étape de substitution E51. La substitution des mots yi et zi est effectuée en 20 faisant correspondre les octets respectifs Ri = f(To(yi)) = T'o (yi) et RI+i _= f(To(zi)) = T' (zi) aux mots intermédiaires Yi et zi dans la table T'o. Après que chaque paire d'octets de même rang i ait subi la combinaison linéaire à l'étape E3 et la substitution 25 à l'étape E51, on passe comme indiqué aux étapes E61 et E62 à la deuxième boucle d'indice j = 1 dans la première super-boucle b = 0 par incrémentation de l'indice j qui est toujours inférieur à l'entier J = , comme indiqué aux étapes E71 et E72. Dans la deuxième boucle d'indice j = 1, l'étape E3 combine encore linéairement des octets de même rang dans les deux mots entrants RO à RI1 et RI à R2I-1 qui résultent respectivement des paires d'octets déterminés dans la première boucle et écrits dans le 35 registre interne à la mémoire M2, comme indiqué aux étapes E12 et E13. Toutefois, à l'étape E4 dans chacune des sous-boucles d'indice i de la boucle d'indice j = 1, l'étape E4 est suivie par l'étape supplémentaire E41. A cette étape E41, la fonction 5 réciproque f- 1 est appliquée aux mots intermédiaires déterminés à l'étape précédente E3 dans la boucle j = 1, suivant les relations suivantes: -1 Yi f (Yi) Zi M f- (zi) 1010 La fonction réciproque f 1 est déduite de la fonction f selon la relation suivante: (f(x)-P)/c = x, soit pour f(x) = yi: f-1 (yi) = (Yi -)/; ce qui permet de vérifier: 15 f -(yi) = f -(Ri+dl + 2 Ri+d2) f1 (f(T0(zi))) + 2 f (f(T0(Yi))), f -(f(T0(Ci+2Ki))) + f (f(T0(Ki+2Ci))), T0(Ci + 2 Ki) + 2 T0(Ki + 2 Ci). Des relations analogues peuvent être écrites 20 pour zi en remplaçant Yi par zi. Ainsi grâce à l'étape E51 dans la première boucle j = 0 et à l'étape E41 dans la deuxième boucle j = 1, l'opération de substitution qui était normalement effectuée à l'étape E52 dans la première 25 boucle est masquée, tout en ne modifiant pas le résultat de la deuxième boucle et des suivantes. Ainsi, l'étape E41 est suivie par l'étape de substitution normale E52 comme indiqué à l'étape E52, puisque l'indice j É 0. Lorsque la clé secrète K est bien appliquée à l'étape Eli de la première boucle j = 0, les biais qui pouvaient être observés par analyse DPA après l'exécution de l'étape normale E52 dans la première boucle connue et de l'étape E3 dans la deuxième 35 boucle connue sont supprimés puisqu'ils sont masqués par un traitement aléatoire grâce à l'application de la fonction f à l'étape E51. L'étape E41 démasque les valeurs retrouvées des mots yi et zi comme si l'étape normale E52 avait été appliquée dans la première boucle. L'étape de substitution E52 consiste à faire correspondre les mots Yi et Zi résultant de l'application de la fonction réciproque f1 à des octets Rj+dl et Ri+d2 lus dans la table respective T1, 10 avec les indices de décalage i+dl et i+d2 calculés modulo I = 16 et modulo 2I = 32. Les indices dl et d2 sont modifiés à une étape E30 précédant l'étape de combinaison linéaire intermédiaire E3, à l'aide de deux fonctions gl et g2 qui ont pour entrées les 15 variables j et i; pour la première boucle j = 0 et pour tout i on a dl = 0 et d2 = I = 16. Les valeurs des indices dl et d2 sont donc modifiées à chaque boucle d'indice j et expriment un décalage sur les octets dans les registres aux étapes E12 et E13. Puis les boucles suivantes d'indice j = 2 à j = J = 4 sont réalisées normalement en reliant directement les étapes de combinaison E3 et de substitution E52, comme indiqué aux étapes E71 et E72. Dans chaque boucle en faisant abstraction du 25 détail des sous-boucles, deux mots entrants Ro à RI-1 et RI à R2I-1 sont combinés linéairement en deux mots intermédiaires yo à Y,-, et zo à z-1j qui subissent une substitution dans la table respective Ti. Après l'exécution des J = 5 boucles de la 30 première super-boucle désignée par l'indice b = 0, des bits de rang prédéterminés dans le résultat RO à R2I-1 sont permutés à l'étape E81. Puis I = 16 octets de rang prédéterminés dans le résultat avec les bits permutés sont sélectionnés à l'étape E82 pour 35 constituer des octets RO à RI-1 = R15 qui sont écrits dans le registre interne pour être lus à l'étape E12, en tant qu'octets de nombre aléatoire, dans la première boucle d'indice j = 0 de la super-boucle suivante, les octets RI à R2I-1 étant constitués par 5 les octets KO à KI-1 de la clé secrète à l'étape Ell de la première boucle de la prochaine super-boucle. Chacune des boucles d'indice b = 1 à b = B-1 = 7 est exécutée comme décrit précédemment et indiqué aux étapes E83 et E84. Dans le résultat à I octets Ro à 10 RI-1 = R15 de l'algorithme AL à la fin de la dernière super-boucle d'indice b = 7 sont effectués des décalages supplémentaires et un nombre d'octets inférieur à I sont sélectionnés dans les octets décalés pour constituer la réponse signée SRES qui 15 est transmise par la carte CS à l'enregistreur de localisation des visiteurs VLR. L'enregistreur VLR compare la réponse signée transmise à la réponse signée résultant de l'algorithme AL exécuté dans le centre d'authentification AUC et lue en mémoire de 20 l'enregistreur VLR, afin d'authentifier l'usager possesseur de la carte CS et de l'autoriser à accéder au réseau RR lorsque lesdits résultats sont identiques. Lorsque les résultats comparés sont différents, l'enregistreur VLR refuse toute 25 communication provenant du radiotéléphone mobile MS incluant la carte CS de l'usager. L'invention n'est pas limitée à la réalisation décrite ci-dessus relative à un radiotéléphone mobile 30 ou à une carte à microcontrôleur du type SIM, en tant que premier moyen terminal, et au réseau fixe du réseau de radiotéléphonie RR comportant principalement les enregistreurs VLR et HLR et le centre d'authentification AUC constituant ensemble un 35 deuxième moyen terminal. Le premier moyen terminal peut être également constitué par d'autres cartes à microcontrôleur, telle qu'une carte de crédit incluse dans un terminal bancaire, ou une carte de portemonnaie électronique incluse dans un terminal point 5 de vente, ou bien encore une carte additionnelle du type par exemple carte de crédit ou carte de portemonnaie électronique qui peut être introduite dans un radiotéléphone mobile et qui est distincte de la carte SIM dans celui-ci. Dans tous les cas, le 10 deuxième moyen terminal communiquant avec la carte à microcontrôleur contient un algorithme d'authentification dont le résultat n'est pas modifié malgré les étapes ajoutées E51 et E41 dans l'algorithme d'authentification implémenté dans la 15 carte. 1 7 REVENDICATIONS 1 - Procédé pour protéger une clé secrète (K) pré-mémorisée dans un premier moyen terminal (MS, CS) 5 recevant un nombre aléatoire (C) transmis par un deuxième moyen terminal (VLR, HLR, AUC), selon lequel un algorithme (AL) implémenté dans le premier moyen terminal comprend au moins J boucles itératives, avec J 2 2, portant chacune sur deux mots numériques 10 entrants respectifs (Ri; Ri+i) de longueur prédéterminée et comportant une combinaison (E3) des deux mots entrants respectifs en deux mots numériques intermédiaires respectifs (Yi, Zi) et une substitution (E52) aux deux mots intermédiaires de 15 deux mots de substitution qui sont lus dans une table de substitution respective (Tj) pré-mémorisée dans le premier moyen terminal et qui constituent les mots entrants dans la boucle suivante, les deux mots entrants dans la première boucle étant le nombre 20 aléatoire (C) et la clé secrète (K), caractérisé en ce qu'il comprend préalablement la détermination (E02) d'une fonction aléatoire (f) et affine de la combinaison et l'application (E03) de la fonction à la table de substitution respective (T0) de la 25 première boucle pour établir une deuxième table (T'O), une substitution (E51) dans la première boucle remplaçant la substitution respective (E52) pour substituer aux deux mots intermédiaires (yi, zi) deux mots de substitution (T'o(yi), T'o(zi)) qui sont lus 30 dans la deuxième table (TT0), et une application (E41) de la fonction (f) réciproque de la fonction aléatoire aux mots intermédiaires respectifs, exécutée dans la deuxième boucle après la combinaison respective et avant la substitution respective, afin 35 de produire des mots intermédiaires (yi f 1(Yi); zi f (Zi)) à substituer selon la table de substitution respective de la deuxième boucle. 2 - Procédé conforme à la revendication 1, selon 5 lequel la fonction (f) est linéaire lorsque la combinaison (E3) est linéaire. 3 - Procédé conforme à la revendication 2, selon lequel la fonction linéaire (f) comprend un 10 coefficient (a; 3) qui est déterminé aléatoirement avant le déclenchement de l'algorithme en réponse au nombre aléatoire (C) transmis par le deuxième moyen terminal (VLR, HLR, AUC). 4 - Procédé conforme à la revendication 2 ou 3, selon lequel le coefficient (a; 3) est déterminé en fonction du nombre aléatoire transmis (C). - Procédé conforme à l'une quelconque des 20 revendications 2 à 4, selon lequel la fonction linéaire prédéterminée comprend un autre coefficient déterminé aléatoirement (a; ô). 6 - Procédé conforme à l'une quelconque des 25 revendications 1 à 5, comprenant plusieurs superboucles itératives (b) comportant chacune des boucles itératives (j), caractérisé en ce que les première et deuxième boucles (b = 0, b = 1) dans chaque superboucle comprennent respectivement une substitution 30 (E51) et une application de la fonction réciproque (E41) selon la revendication 1. 7 - Procédé conforme à l'une quelconque des revendications 1 à 6, selon lequel le deuxième moyen 35 terminal est un radiotéléphone mobile (MS). 8 - Procédé conforme à l'une quelconque des revendications 1 à 6, selon lequel le deuxième moyen terminal est un module d'identité d'abonné (CS) inclus dans un radiotéléphone mobile (MS).