Brevet FR2880750A1 — publié le 20060714

Des exemples de modes de réalisation de la présente invention concernent des cartes à microprocesseur, et plus particulièrement des cartes à microprocesseur capables d'éviter qu'une clé secrète ne soit vulnérable à des attaques externes. On peut protéger des systèmes numériques par des algorithmes de chiffrement utilisant une clé secrète. Une clé secrète peut cependant être vulnérable à des attaques externes du fait qu'un algorithme de chiffrement peut ne pas avoir été conçu pour empêcher une fuite d'information imprévue. La fuite d'information imprévue peut être un problème important pour la sécurité d'un système utilisant les cartes à microprocesseur. Une fuite d'une telle information imprévue peut avoir lieu par l'intermédiaire d'une information de canal secondaire, et des attaques tirant parti de l'information de canal secondaire peuvent être appelées des attaques par canal secondaire. Des attaques par canal secondaire peuvent être classées en attaques temporelles, par insertion de défaut ou par analyse de puissance. Une attaque temporelle peut être utilisée comme un procédé d'obtention d'une clé secrète en analysant une différence de temps dans de l'information de traitement entre une clé secrète et d'autres données. Une attaque par insertion de défaut peut être utilisée comme un procédé d'obtention d'une clé secrète par l'analyse de données après avoir introduit intentionnellement des données de défaut dans la carte à microprocesseur. Une attaque par analyse de puissance peut être utilisée pour obtenir une clé secrète en analysant de façon comparative une quantité de puissance utilisée et non utilisée dans des données de traitement concernant une clé secrète. Une attaque par analyse de puissance peut être classée en une attaque par analyse de puissance simple (SPA pour "Simple Power Analysis") et une attaque par analyse de puissance différentielle (DPA pour "Differential Power Analysis"). On a récemment accordé beaucoup d'intérêt et d'études à une attaque par canal secondaire contre une carte à microprocesseur ayant une unité de calcul de chiffrement par fonction OU-Exclusif, c'est-à-dire une carte à microprocesseur qui peut effectuer un chiffrement en combinant par une fonction OU-Exclusif des données de texte en clair avec une seule clé secrète aléatoire, de longueur fixée. Il peut y avoir une probabilité élevée de fuite d'information dans une attaque par canal secondaire, du fait que de nombreuses cartes à microprocesseur ont une relativement petite mémoire et un processeur ayant de faibles possibilités arithmétiques. Un processeur peut être dans l'obligation de répéter un traitement arithmétique de données secrètes, comme dans un processus d'authentification. Un procédé effectif d'attaque d'un système peut être une attaque par analyse de puissance, qui mesure une quantité de puissance consommée pour trouver une clé secrète. Cette attaque par analyse de puissance peut contrôler une variation de puissance transitoire au moment de l'activation d'un algorithme de chiffrement et d'une clé secrète incorporés dans une carte à microprocesseur, et peut ensuite déchiffrer la clé secrète au moyen d'un procédé statistique utilisant des techniques d'estimation et de correction d'erreur. Une attaque par DPA peut être plus effective qu'un procédé consistant à employer un appareil de déchiffrement exclusif ou un super-ordinateur, du fait qu'il peut être plus aisé d'estimer une clé secrète simplement en utilisant plusieurs dispositifs capables de contrôler une variation de tension. Un processeur d'une carte à microprocesseur utilisant un système cryptographique à clé secrète peut utiliser une clé secrète non manipulée. Une clé secrète non manipulée peut signifier la clé secrète originale avant chiffrement. Par conséquent, la clé secrète peut aisément être obtenue par une attaque par DPA. Par exemple, si un texte chiffré et une clé secrète sont appliqués en entrée d'un processeur d'une carte à microprocesseur, le processeur peut diviser la clé secrète en blocs unités de la taille de mot d'opération. La clé secrète divisée en blocs peut être appliquée dans le décodage (ou le déchiffrement) du texte chiffré, en lisant chaque bit de la clé secrète au moyen d'opérateurs de décalage de bit. En d'autres termes, une opération unité portant sur chaque bit de la clé secrète peut être traitée dans le processeur de la carte à microprocesseur. Par conséquent, une opération de décodage de clé secrète dans un processeur d'une carte à microprocesseur peut présenter un problème, tel que la vulnérabilité à une attaque par DPA. Des exemples de modes de réalisation de la présente invention peuvent porter sur un procédé cryptographique et une carte à microprocesseur utilisant ce dernier. Dans un exemple de mode de réalisation de la présente invention, un procédé cryptographique peut inclure la réception d'un texte chiffré et d'une clé secrète, la génération d'une table à utiliser pour le déchiffrement sur la base du texte chiffré et de la clé secrète, la réception d'au moins une chaîne de nombres aléatoires, l'exécution d'une opération logique avec la clé secrète et l'au moins une chaîne de nombres aléatoires, et le déchiffrement du texte chiffré en utilisant une valeur résultante de l'opération logique, la chaîne de nombres aléatoires et la table. Dans un autre exemple de mode de réalisation de la présente invention, un procédé cryptographique peut inclure la réception d'un texte chiffré et d'une clé secrète, la génération d'une table à utiliser pour le déchiffrement sur la base du texte chiffré et de la clé secrète, la division de la clé secrète en une multiplicité de blocs, la réception d'au moins une chaîne de nombres aléatoires, l'exécution d'une opération OU-EX avec l'un de la multiplicité de blocs et l'au moins une chaîne de nombres aléatoires, et le déchiffrement du texte chiffré. De plus, dans un autre exemple de mode de réalisation de la présente invention, une carte à microprocesseur peut inclure un générateur de nombres aléatoires adapté pour générer une chaîne de nombres aléatoires avec une longueur définie, et un processeur adapté pour recevoir un texte en clair et une clé secrète pour générer une table, et le processeur étant en outre adapté pour recevoir la chaîne de nombres aléatoires, exécuter une opération logique sur la chaîne de nombres aléatoires et la clé secrète, et exécuter une opération de déchiffrement de texte chiffré en utilisant une valeur résultante obtenue par l'opération logique, la table et la chaîne de nombres aléatoires. Les dessins annexés sont inclus pour permettre une compréhension supplémentaire d'exemples de modes de réalisation de la présente invention, et sont incorporés dans cette description et forment une partie de celle-ci. Les dessins illustrent conjointement à la description les exemples de modes de réalisation de la présente invention. Dans les dessins: La figure 1 est un schéma synoptique illustrant une carte à microprocesseur conforme à un exemple de mode de réalisation de la présente invention; La figure 2 est un organigramme illustrant une 25 procédure conforme à un exemple de mode de réalisation de la présente invention; et La figure 3 est un organigramme illustrant une procédure arithmétique conforme à un exemple de mode de réalisation de la présente invention. On décrira ci-dessous de façon plus détaillée des exemples de modes de réalisation de la présente invention, en référence aux dessins annexés. La présente invention peut cependant être mise en oeuvre sous différentes formes et ne doit pas être interprétée comme étant limitée aux exemples de modes de réalisation présentés ici. A la place, ces exemples de modes de réalisation sont fournis en tant qu'exemple de travail. Des numéros semblables peuvent désigner des éléments semblables dans l'ensemble de la description. La terminologie utilisée ici a seulement pour but de décrire des exemples de modes de réalisation particuliers, et ne vise pas à limiter la présente invention. Dans l'utilisation qui en est faite ici, les formes du singulier "un" et "le" peuvent être destinées à inclure également les formes du pluriel, sauf si le contexte indique clairement le contraire. On notera en outre que les termes "comprend" et/ou "comprenant", lorsqu'ils sont utilisés dans cette description, spécifient la présence de caractéristiques, entiers, étapes, opérations, éléments et/ou composants mentionnés, mais n'interdisent pas la présence ou l'ajout d'un ou plusieurs autres caractéristiques, entiers, étapes, opérations, éléments, composants et/ou groupes de ceux-ci. Sauf en cas de définition contraire, tous les termes (incluant des termes techniques et scientifiques) utilisés ici ont la signification communément admise par le spécialiste du domaine auquel cette invention appartient. On notera en outre que des termes tels que ceux définis dans des dictionnaires couramment utilisés doivent être interprétés comme ayant une signification qui est en accord avec leur signification dans le contexte du domaine pertinent, et ne seront pas interprétés en un sens idéalisé ou excessivement formel, sauf si une telle acception est expressément définie ici. La figure 1 est un schéma synoptique illustrant une 30 carte à microprocesseur conforme à un exemple de mode de réalisation de la présente invention. En se référant à la figure 1, on note qu'une carte à microprocesseur 100 peut inclure un processeur 10, un générateur de nombres pseudo-aléatoires 20, une unité d'interface d'entrée/sortie (E/S) 30, une mémoire morte (ROM) 40, une mémoire vive (RAM) 50 et/ou un bus de données 60. Le processeur 10 peut être une unité centrale de traitement (UC), un microprocesseur, et autres. Le processeur 10 peut commander des chemins de données et des signaux internes pour accéder à des composants tels qu'une mémoire de données, une mémoire de programme, la mémoire vive, etc. Le processeur 10 peut accomplir diverses opérations en utilisant un texte chiffré et une clé secrète. Le générateur de nombres pseudo-aléatoires 20 peut inclure un registre à décalage à rétroaction linéaire et un bloc de cryptographie asymétrique, capable de stocker des chaînes de nombres aléatoires. Le générateur de nombres pseudo-aléatoires 20 peut générer des chaînes de nombres aléatoires répétées avec une longueur définie. Les chaînes de nombres aléatoires peuvent être fournies au processeur 10 pour éviter qu'une clé secrète ne soit divulguée au cours d'une opération. Une "opération" peut signifier une opération arithmétique, par exemple une opération de chiffrement ou une opération de déchiffrement, à moins qu'une autre acception ne soit spécifiquement indiquée. L'unité d'interface d'E/S 30 peut être incorporée pour transférer des données, des adresses et des ordres entre la carte à microprocesseur 100 et des appareils externes. La mémoire morte 40 peut être utilisée comme une mémoire de programme et peut contenir un système d'exploitation et des instructions de base pour la carte à microprocesseur 100. La mémoire vive 50 peut être utilisée comme un registre de travail et peut stocker temporairement des données et des résultats calculés de façon intermédiaire. Le bus de données 60 peut être utilisé comme un canal de transfert pour diverses données dans la carte à microprocesseur 100. Le processeur 10 peut fonctionner de façon à accomplir des opérations arithmétiques de chiffrement et de déchiffrement (ou décodage). Un algorithme cryptographique peut être une procédure pour transformer un texte en clair (information originale) en un texte chiffré (information chiffrée) au moyen d'une clé de chiffrement. La procédure de transformation du texte chiffré pour donner le texte en clair original au moyen d'une clé de déchiffrement peut être appelée déchiffrement (ou décodage). La technique cryptographique peut comprendre un cryptosystème symétrique dans lequel une clé de chiffrement peut être identique à une clé de déchiffrement, et un cryptosystème asymétrique dans lequel la clé de chiffrement peut être différente de la clé de déchiffrement. Pour transférer des données avec le cryptosystème symétrique, une clé partagée par un émetteur de données et un récepteur peut être exigée. La clé peut être une clé secrète qui ne doit pas être divulguée à l'extérieur, du fait qu'elle peut être utilisée en commun pour le chiffrement et le déchiffrement. Pour cette raison, le cryptosystème symétrique peut également être appelé un cryptosystème à clé secrète. On peut utiliser pour un cryptosystème symétrique un algorithme DES (Data Encryption Standard), qui est un algorithme cryptographique par blocs. Le DES peut cependant avoir une faible sécurité, à cause d'une longueur de la clé. De ce fait, on a introduit un nouveau standard de système cryptographique par blocs, appelé AES (Advanced Encryption Standard). Un aspect du cryptosystème asymétrique consiste en ce que des valeurs de clés utilisées en chiffrement et en déchiffrement peuvent être mutuellement différentes, et une clé de chiffrement peut être ouvertement publiée, tandis qu'une clé de déchiffrement peut être disponible seulement pour un utilisateur. La clé de déchiffrement ne doit pas pouvoir être trouvée d'après la clé de chiffrement publiée. Pour cette raison, le cryptosystème asymétrique peut être appelé un cryptosystème à clé publique. Les clés publiques peuvent inclure des codes RSA (Rivest-Shamir- Adieman) basés sur la décomposition de nombres composites en facteurs premiers; des codes d'ElGamal basés sur des problèmes d'algèbre discrète pour des objets définis; des codes de type sac à dos basés sur des problèmes de sac à dos; et des codes à courbes elliptiques basés sur des problèmes d'algèbre discrète de courbes elliptiques. L'algorithme de chiffrement à clé publique doit être capable de protéger une clé secrète contre la divulgation pendant une opération, ainsi que d'assurer un stockage fiable de la clé secrète utilisée pour le déchiffrement. Des exemples de modes de réalisation de la présente invention peuvent procurer un procédé pour protéger de façon sûre une clé secrète pendant une opération. La figure 2 est un organigramme illustrant une procédure conforme à un exemple de mode de réalisation de la présente invention. Un processeur 10 peut recevoir un texte chiffré et une clé secrète (S200), et créer une table de référence, qui peut être utilisée dans le déchiffrement du texte chiffré (S210). La table de référence peut être adaptée pour empêcher que la clé secrète ne soit directement utilisée pendant une opération de déchiffrement du texte chiffré. Une longueur de la clé secrète peut être plus longue qu'une taille d'un mot d'opération que le processeur 10 est capable de traiter; par conséquent, le processeur 10 peut diviser la clé secrète en un bloc de taille de mot qu'il peut traiter (S220). Le processeur 10 peut utiliser des chaînes de nombres aléatoires pour protéger la clé secrète contre la divulgation pendant une opération. Le processeur 10 peut recevoir les chaînes de nombres aléatoires à partir d'un générateur de nombres pseudoaléatoires 20 (S230). Une longueur du nombre aléatoire peut être la même que celle du bloc de clé secrète divisée (la taille de mot d'opération du processeur 10). Le processeur peut générer des valeurs aléatoires en exécutant une sommation binaire exclusive, par exemple une opération OU- EX, avec la chaîne de nombres aléatoires reçue et le bloc de clé secrète divisée (S240). La valeur de résultat de l'étape 5240 ne doit pas être liée directement à la clé secrète. Pour réduire notablement le lien entre la clé secrète et la valeur résultante de l'opération OU-EX, on peut augmenter le nombre des chaînes de nombres aléatoires employées dans l'opération OU-EX avec la clé secrète. Il en résulte qu'un système peut être renforcé contre une analyse de puissance. Du fait que les valeurs des chaînes de nombres aléatoires générées par le générateur de nombres pseudo-aléatoires 20 peuvent être variables pour la même valeur de la clé secrète, la valeur résultante de l'opération OU-EX peut être différente chaque fois. Par conséquent, du fait que les valeurs employées dans l'opération effectuée par le processeur 10 peuvent être variables même pour la même valeur de la clé secrète, ceci peut éliminer un risque de divulgation d'une clé secrète sous l'effet d'une attaque externe. Le processeur 10 peut accomplir une opération pour déchiffrer le texte chiffré en référence à la table générée de façon préliminaire au moyen de la clé secrète et des chaînes de nombres aléatoires (S250), sans utiliser la clé secrète originale. Pendant cette procédure, du fait que des valeurs de bits réelles de la clé secrète peuvent ne pas être utilisées dans l'opération, il peut y avoir peu de risques de divulgation de la clé secrète sous l'effet d'une attaque externe. L'opération de déchiffrement du texte chiffré peut employer la valeur résultante obtenue à partir de la clé secrète et des chaînes de nombres aléatoires, et chaque valeur de bit de la chaîne de nombres aléatoires et chaque valeur de bit déterminée par un opérateur de décalage de bits. Cette procédure peut être répétée jusqu'à ce que toutes les valeurs de bit de la clé secrète aient été traitées dans l'opération de déchiffrement du texte chiffré (S260). La figure 3 est un organigramme illustrant une procédure arithmétique qui utilise un texte chiffré et une clé secrète en conformité avec un exemple de mode de réalisation de la présente invention. Un algorithme cryptographique à clé publique générale peut employer une technique d'exponentiation modulaire qui est un processus arithmétique de multiplication successive. La figure 3 illustre une procédure pour obtenir une valeur déchiffrée y = gk à partir d'un texte chiffré g et d'une clé secrète k, par une opération d'exponentiation modulaire. Un processeur 10 peut recevoir un texte chiffré g et une clé secrète k (S300). La clé secrète k peut être transformée en une valeur de bloc unité en la segmentant en une taille de mot d'opération pour le processeur 10. Des valeurs Rp et Ri peuvent être utilisées dans l'opération d'exponentiation modulaire, et Ro et R1 peuvent être initialisées respectivement à des valeurs de "1" et du texte chiffré g (S310). Ensuite, une table Q peut être créée pour l'opération de déchiffrement de texte chiffré (S320). La table Q peut être configurée de façon à empêcher que la clé secrète ne soit directement utilisée pendant l'opération de déchiffrement de texte chiffré. Le processeur 10 peut recevoir des chaînes de nombres aléatoires d'entrée Ti et T2 (S330), qui peuvent être utilisées pour protéger la clé secrète k pendant une opération. Une longueur de la chaîne de nombres aléatoires peut être la même que celle du bloc de clé secrète divisée. Le processeur 10 peut générer un nombre aléatoire D en exécutant une opération OU-EX avec une valeur de bloc Ki de la clé secrète et les chaînes de nombres aléatoires Ti et T2 (S340). Le nombre aléatoire D obtenu par l'opération OU-EX peut être allongé jusqu'à une taille égale à la taille de mot d'opération, à la longueur de la valeur de bloc de clé secrète Ki, ou à la longueur de la chaîne de nombres aléatoires d'entrée T1, T2. Le processeur 10 peut traiter l'opération de déchiffrement de texte chiffré en utilisant les valeurs Ro et R1 en référence à la table Q générée de façon préliminaire, au moyen du nombre aléatoire D obtenu à partir de la clé secrète et des chaînes de nombres aléatoires (S350), pendant l'opération d'exponentiation modulaire pour déchiffrer la clé secrète. Du fait que les valeurs dans la table Q sont "0" ou "1", la valeur de Q[d j] [t_1] [t_2] ou la valeur inversée -,Q[d j] [t 1] [t_2] peut être "0" ou "1". Par conséquent, la valeur de RQ[d j] [t_1] [t_2] ou R-,Q[d j] [t1] [t2] peut être Ro ou Ri. En fournissant en sortie la valeur Rp comme un résultat de l'opération d'exponentiation modulaire pour déchiffrer le texte chiffré en utilisant Ro et R1, on peut obtenir une valeur résultante pour le déchiffrement du texte chiffré (S360). Ces processus peuvent être répétés (par exemple en retournant en boucle à S330), jusqu'à ce que toutes les valeurs de la clé secrète soient traitées dans l'opération de déchiffrement de texte chiffré (S370). Du fait que des valeurs de bit originales ne sont pas utilisées dans l'opération de déchiffrement de texte chiffré, il est possible d'éviter que la clé secrète ne soit divulguée sous l'effet d'une attaque externe, par exemple une attaque DPA. Conformément à la description ci-dessus, des exemples de modes de réalisation de la présente invention peuvent être effectifs pour protéger une clé secrète contre la divulgation sous l'effet d'une attaque externe, par exemple une attaque par analyse de puissance incluant une attaque DPA ou SDA. Dans des exemples de modes de réalisation de la présente invention, un processeur d'une carte à microprocesseur peut utiliser une opération de table et des valeurs combinées avec une clé secrète et des chaînes de nombres aléatoires qui sont fournies par un générateur de nombres pseudo-aléatoires, pendant une opération avec la clé secrète. La sécurité d'un système de carte à microprocesseur peut donc être renforcée. Bien que la présente invention ait été décrite en relation avec des exemples de modes de réalisation de celle-ci, il apparaîtra à l'homme de l'art que divers changements, substitutions et modifications peuvent y être apportés sans sortir du cadre de la présente invention. REVENDICATIONS 1. Procédé cryptographique, caractérisé en ce qu'il comprend: la réception d'un texte chiffré et d'une clé secrète (5200) ; la génération d'une table à utiliser pour le déchiffrement, sur la base du texte chiffré et de la clé secrète (S210) ; la réception d'au moins une chaîne de nombres aléatoires (S230) ; l'exécution d'une opération logique avec la clé secrète et l'au moins une chaîne de nombres aléatoires (S240) ; et le déchiffrement du texte chiffré en utilisant une valeur de résultat de l'opération logique, la chaîne de nombres aléatoires et la table (S250). 2. Procédé selon la revendication 1, caractérisé en ce que la clé secrète est divisée en une multiplicité de blocs (S220) avant l'exécution de l'opération logique (S240). 3. Procédé selon la revendication 2, caractérisé en ce qu'une longueur de l'au moins une chaîne de nombres aléatoires est égale à une longueur de la multiplicité de blocs divisés. 4. Procédé selon la revendication 2, caractérisé en ce que le texte chiffré est déchiffré en utilisant une valeur d'opération de l'un de la multiplicité de blocs divisés, la chaîne de nombres aléatoires et la table. 5. Procédé selon la revendication 2, caractérisé en ce que le déchiffrement du texte chiffré comprend: la détection de chaque bit de la valeur résultante de la multiplicité de blocs divisés, en succession; et le traitement de chacun des bits détectés, de la table et de l'au moins une chaîne de nombres aléatoires. 6. Procédé selon la revendication 1, caractérisé en ce que la valeur de résultat de l'opération logique est faiblement liée à la clé secrète. 7. Procédé selon la revendication 1, caractérisé en ce que l'opération logique (5240) est exécutée de manière à affaiblir ainsi un lien entre la valeur de résultat de l'opération logique et la clé secrète lorsque deux chaînes de nombres aléatoires, ou plus, sont utilisées. 8. Procédé selon la revendication 1, caractérisé en ce que l'opération logique est une opération OU-EX. 9. Procédé cryptographique, caractérisé en ce qu'il comprend: la réception d'un texte chiffré et d'une clé secrète (S200) ; la génération d'une table à utiliser pour le déchiffrement, sur la base du texte chiffré et de la clé secrète (5210) ; la division de la clé secrète en une multiplicité de blocs (S220) ; la réception d'au moins une chaîne de nombres aléatoires (5230) ; l'exécution d'une opération OU-EX avec l'un de la multiplicité de blocs et l'au moins une chaîne de nombres aléatoires (S240) ; et le déchiffrement du texte chiffré (S250). 10. Procédé selon la revendication 9, caractérisé en ce que le déchiffrement du texte chiffré (S250) comprend la détection de chaque bit de la valeur résultante de la multiplicité de blocs, en succession; et le traitement de chacun des bits détectés, de la table et de l'au moins une chaîne de nombres aléatoires. 11. Carte à microprocesseur (100), caractérisée en ce qu'elle comprend. un générateur de nombres pseudoaléatoires (20) adapté pour générer une chaîne de nombres aléatoires avec une longueur définie; et un processeur (10) adapté pour recevoir un texte chiffré et une clé secrète et générer une table, le processeur étant en outre adapté pour recevoir la chaîne de nombres aléatoires, exécuter une opération logique sur la chaîne de nombres aléatoires et la clé secrète, et exécuter une opération de déchiffrement de texte chiffré en utilisant une valeur de résultat obtenue par l'opération logique, la table et la chaîne de nombres aléatoires. 12. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que le processeur (10) 35 est un microprocesseur ou une unité centrale de traitement. 13. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que le processeur (10) est adapté pour diviser la clé secrète en une multiplicité de blocs avant d'exécuter l'opération logique. 14. Carte à microprocesseur (100) selon la revendication 13, caractérisée en ce qu'une longueur de la chaîne de nombres aléatoires qui est fournie par le générateur de nombres pseudo-aléatoires (20) est fixée égale à une longueur de la multiplicité de blocs divisés. 15. Carte à microprocesseur (100) selon la revendication 13, caractérisée en ce que le processeur (10) est adapté pour exécuter l'opération de déchiffrement de texte chiffré en utilisant une valeur résultante de l'un de la multiplicité de blocs divisés, la chaîne de nombres aléatoires et la table. 16. Carte à microprocesseur (100) selon la revendication 13, caractérisée en ce que le processeur (10) est adapté pour exécuter l'opération de déchiffrement de texte chiffré en détectant séquentiellement chaque bit de la valeur résultante de la multiplicité de blocs divisés avec la clé secrète et la chaîne de nombres aléatoires. 17. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que le processeur (10) est adapté pour exécuter l'opération logique de manière à affaiblir ainsi le lien entre la valeur de résultat de l'opération logique et la clé secrète lorsque deux chaînes de nombres aléatoires, ou plus, sont utilisées. 18. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que la table que génère le processeur (10) est configurée pour éviter une divulgation de bits de la clé secrète pendant l'exécution de l'opération de déchiffrement de texte chiffré. 19. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que l'opération 35 logique est une opération OU-EX. 20. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce qu'elle comprend en outre: une interface d'entrée/sortie (E/S) (30) adaptée pour transférer des données entre la carte à microprocesseur (100) et des appareils externes; une mémoire morte (ROM) (40) adaptée pour contenir un système d'exploitation et des instructions pour la carte à microprocesseur (100) ; une mémoire vive (RAM) (50) adaptée pour stocker des données temporaires et des résultats calculés; et un bus (60) fonctionnellement adapté pour transférer des données à l'intérieur de la carte à microprocesseur (100) entre l'interface d'E/S (30), la mémoire vive (50), la mémoire morte (40), le générateur de nombres pseudo-aléatoires (20) et le processeur (10).