Brevet FR2906665A1 — publié le 20080404

La présente invention concerne de façon générale des dispositifs à circuits intégrés et des procédés pour les faire fonctionner, et elle concerne plus particulièrement des systèmes cryptographiques, des circuits de détection d'erreur et des procédés pour les faire fonctionner. Une carte à puce est une carte en matière plastique dans laquelle un circuit intégré (CI) peut être installé, et elle peut être similaire à une carte de crédit. Des standards pour la technologie des cartes à puce ont été définis par l'organisme International Standards Organization (ISO) et le Joint Technical Committee 1 (JTC1) de l'International Electronic Committee (IEC). La série de normes internationales ISO/IEC 7816 définit diverses caractéristiques de cartes à puce, telles que des propriétés physiques, des connexions physiques, des signaux électroniques, des protocoles de transmission, des ordres, des architectures de sécurité, des identificateurs d'applications, et des éléments de données généraux. On a considéré les cartes à puce pour l'utilisation en tant qu'appareil d'information multimédia, du fait qu'elles peuvent offrir une meilleure rétention de données que des cartes magnétiques classiques et peuvent offrir une meilleure sécurité. Les cartes à puce peuvent avoir l'avantage d'une sécurité élevée et d'une grande capacité de stockage de données, pouvant convenir pour une vaste gamme d'applications. De ce fait, des cartes à puce ont été utilisées dans des applications dans divers domaines, tels que la finance, la distribution, la circulation routière, les communications mobiles, et d'autres applications. La figure 1 est un schéma synoptique qui illustre une architecture de carte à puce classique. La carte à puce comprend une unité centrale (OC) 11, une mémoire morte (ROM) 12, une mémoire vive (RAM) 13, une mémoire morte programmable et effaçable de façon électrique (EEPROM) 14, un module d'entrée / sortie (E/S) 15 et un bus 16, comme 2906665 2 représenté. L'UC 11 peut être configurée pour commander l'ensemble des opérations arithmétiques et de traitement de données. La mémoire morte 12 peut être configurée pour stocker le système d'exploitation, le code d'amorçage et le 5 programme d'initialisation. La mémoire vive 13 peut être utilisée pour stocker un ou plusieurs programmes modifiables et/ou des données temporaires. La mémoire EEPROM 14 peut être utilisée pour stocker un ou plusieurs programmes d'application. Le module d'E/S 15 peut être 10 utilisé pour permettre à l'UC 11 de communiquer avec un dispositif externe. L'UC 11, la mémoire morte 12, la mémoire vive 13 et la mémoire EEPROM 14 sont couplées par un bus 16. Le bus 16 peut inclure à la fois un bus d'adresse et un bus de données. Le bus de données peut 15 acheminer des signaux électriques entre l'UC 11, la mémoire morte 12, la mémoire vive 13 et la mémoire EEPROM 14, conjointement à n'importe quels autres dispositifs qui peuvent être connectés au bus 16, dans le but de transférer des données entre eux. Le bus d'adresse peut connecter l'UC 20 11 au(x) dispositif(s) de mémoire principale, pour identifier des positions (adresses) particulières dans la mémoire principale. La largeur du bus d'adresse détermine combien de positions de mémoire individuelles peuvent être adressées. 25 Dans des dispositifs à carte à puce, il peut être important de protéger la confidentialité et l'intégrité des données transportées sur le bus de données. De façon similaire, il peut également être important de protéger l'intégrité des adresses transportées sur le bus d'adresse. 30 Si les données et/ou les adresses stockées / utilisées dans la carte à puce ne sont pas sécurisées, un utilisateur ou un opérateur de système peut hésiter à stocker de l'information privée ou secrète dans une carte à puce. Un accès non autorisé à une carte à puce est quelquefois 35 appelé "intrusion". Des techniques d'intrusion incluent des attaques invasives utilisant des micro-sondes, et des 2906665 3 attaques non invasives utilisant des outils logiciels. Des attaques non invasives peuvent faire intervenir l'accomplissement d'une analyse par des moyens indirects qui déchiffre un code de clé d'un algorithme 5 cryptographique (par exemple l'algorithme DES) en utilisant une configuration de consommation de puissance (ou de dissipation de courant), ou des différences de temps qui sont dues à des opérations de la carte à puce. Des techniques d'analyse par des moyens indirects peuvent être 10 classées en analyse de puissance simple (SPA pour "Simple Power Analysis") et en analyse de puissance différentielle (DPA pour "Differential Power Analysis"). La DPA et la SPA sont des procédés d'analyse d'un signal de puissance qui est généré par un dispositif à faible consommation, tel 15 qu'une carte à puce, au cours de calculs (ou opérations), pour découvrir une information secrète stockée dans la carte à puce lorsque l'algorithme de chiffre en bloc est appliqué à la carte à puce. La DPA et la SPA peuvent être accomplies sur la base du fait que l'attaquant estime un 20 bit spécifique d'un texte chiffré après une ronde, qui correspond à un texte en clair si le texte en clair est connu. Une contre-mesure à l'égard de la DPA et de la SPA consiste à empêcher l'attaquant de connaître le texte en clair au cours de calculs accomplis à l'intérieur de la 25 carte à puce. Diverses contre-mesures à l'encontre de la DPA et de la SPA ont été proposées. Les contre-mesures incluent des procédés matériels et des procédés logiciels. Les procédés matériels comprennent la génération d'une 30 puissance de bruit, la randomisation d'une séquence de fonctionnement, et/ou le filtrage d'un signal de puissance. Les procédés logiciels incluent des techniques de masquage dans lesquelles un nombre aléatoire est généré à l'intérieur d'une carte à puce et le nombre aléatoire est 35 combiné par une fonction OU-Exclusif avec du texte en clair, pour faire apparaître le texte en clair comme un 2906665 4 nombre aléatoire, ce qui a pour effet de rendre inopérante l'analyse de puissance. Conformément à certains modes de réalisation de la présente invention, un système cryptographique inclut une 5 logique de chiffrement qui est configurée pour chiffrer des données d'entrée en accomplissant une opération de masque sur les données d'entrée, en utilisant une adresse associée aux données d'entrée. Dans d'autres modes de réalisation de la présente 10 invention, la logique de chiffrement inclut un premier circuit logique et un deuxième circuit logique. Le premier circuit logique est configuré pour effectuer une première opération de masque sur les données d'entrée en utilisant au moins une partie d'une adresse, de façon à générer une 15 première information de sortie. Le deuxième circuit logique est configuré pour effectuer une deuxième opération de masque sur la première information de sortie, en utilisant une clé, pour générer une deuxième information de sortie. Dans encore d'autres modes de réalisation de la 20 présente invention, chacune des première et deuxième opérations de masque inclut une opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication et/ou une opération de division. Les opérations d'addition, de soustraction, de 25 multiplication et de division sont effectuées en relation avec un modulo. Dans encore d'autres modes de réalisation de la présente invention, un circuit de boîte S ("S-box") est configuré pour transformer la deuxième information de 30 sortie. Un circuit de permutation est configuré pour permuter la deuxième information de sortie transformée, de façon à générer les données d'entrée chiffrées. Dans encore d'autres modes de réalisation de la présente invention, le circuit de permutation est configuré 35 pour exécuter une fonction linéaire sur la deuxième information de sortie transformée. 2906665 5 Dans encore d'autres modes de réalisation de la présente invention, la fonction linéaire est une fonction de décalage ou une transformation linéaire de bits de la deuxième information de sortie. 5 Dans encore d'autres modes de réalisation de la présente invention, les données d'entrée incluent au moins un octet de données. Le circuit de boîte S comprend un premier circuit de boîte S et un deuxième circuit de boîte S qui sont configurés pour transformer respectivement un 10 premier segment de la deuxième information de sortie et un deuxième segment de la deuxième information de sortie. Dans encore d'autres modes de réalisation de la présente invention, le système cryptographique inclut une unité de traitement. La logique de chiffrement inclut un 15 coprocesseur cryptographique qui est couplé de façon à communiquer avec l'unité de traitement. Le coprocesseur cryptographique reçoit les données d'entrée provenant de l'unité de traitement. Dans encore d'autres modes de réalisation de la 20 présente invention, la logique de chiffrement est intégrée à l'unité de traitement de façon à former une seule unité logique. Dans encore d'autres modes de réalisation de la présente invention, la logique de chiffrement inclut un 25 premier circuit logique de ronde qui est configuré pour générer une première information de sortie de circuit logique de ronde en réponse aux données d'entrée, au moins une partie d'une adresse, et une première clé. Un premier circuit de boîte S de ronde est configuré pour transformer 30 la première information de sortie du circuit logique de ronde. Un premier circuit de permutation de ronde est configuré pour permuter la première information de sortie de circuit logique de ronde de façon à générer une première information de sortie de ronde. Un deuxième circuit logique 35 de ronde est configuré pour générer une deuxième information de sortie de circuit logique de ronde en 2906665 6 réponse à la première information de sortie de ronde, au moins une deuxième partie de l'adresse, et une deuxième clé. Un deuxième circuit de boîte S de ronde est configuré pour transformer la deuxième information de sortie de 5 circuit logique de ronde. Un deuxième circuit de permutation de ronde est configuré pour permuter la deuxième information de sortie de circuit logique de ronde transformée, afin de générer les données d'entrée chiffrées. 10 Conformément à des modes de réalisation supplémentaires de la présente invention, un circuit de détection d'erreur inclut un premier circuit logique qui est configuré pour effectuer une opération logique sur l'information d'entrée et sur une première configuration, 15 de façon à générer une première information de sortie. Un deuxième circuit logique est configuré pour effectuer une opération logique sur l'information d'entrée et sur une deuxième configuration, de façon à générer une deuxième information de sortie. Un troisième circuit logique est 20 configuré pour effectuer une opération logique sur la première information de sortie et la deuxième information de sortie, pour générer une troisième information de sortie. Un circuit de détecteur est configuré pour comparer la troisième information de sortie avec une valeur qui 25 correspond à une combinaison logique de la première configuration avec la deuxième configuration, et pour reconnaître une erreur si la valeur n'est pas égale à la troisième information de sortie. Dans des modes de réalisation supplémentaires de la 30 présente invention, le premier circuit logique est configuré pour effectuer une opération de masque, le deuxième circuit logique est configuré pour effectuer l'opération de masque, et le troisième circuit logique est configuré pour effectuer l'opération de masque. 35 Dans d'autres modes de réalisation supplémentaires de la présente invention, l'opération de masque inclut une 2906665 7 opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication, et/ou une opération de division. Les opérations d'addition, de soustraction, de multiplication et de division sont 5 effectuées en relation avec un modulo. Dans d'autres modes de réalisation supplémentaires de la présente invention, le circuit de détection d'erreur inclut un premier bus qui couple le premier circuit logique et le troisième circuit logique. Un deuxième bus couple le 10 deuxième circuit logique au troisième circuit logique. Dans d'autres modes de réalisation supplémentaires de la présente invention, l'information d'entrée inclut des données d'entrée. Dans d'autres modes de réalisation supplémentaires 15 de la présente invention, l'information d'entrée inclut une adresse d'entrée. Dans d'autres modes de réalisation supplémentaires de la présente invention, un quatrième circuit logique est configuré pour effectuer une opération de masque sur la 20 première information de sortie et la première configuration, pour obtenir l'information d'entrée. Conformément à d'autres modes de réalisation de la présente invention, un système cryptographique inclut un premier circuit de chiffrement qui est configuré pour 25 générer, en réponse à des données d'entrée, une première information de sortie qui correspond à des données d'entrée chiffrées sur lesquelles une opération de masque est effectuée en utilisant une première configuration. Un deuxième circuit de chiffrement est configuré pour générer, 30 en réponse aux données d'entrée, une deuxième information de sortie qui correspond aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée, en utilisant une deuxième configuration. Un circuit logique d'entrée de détecteur est configuré pour effectuer 35 l'opération de masque sur la première information de sortie et la deuxième information de sortie, pour générer une 2906665 8 troisième information de sortie. Un circuit détecteur est configuré pour comparer la troisième information de sortie avec une valeur qui correspond à la première configuration, sur laquelle l'opération de masque a été effectuée en 5 utilisant la deuxième configuration. Une erreur est reconnue si la valeur n'est pas égale à la troisième information de sortie. Dans encore d'autres modes de réalisation de la présente invention, le premier circuit de chiffrement 10 inclut une logique de chiffrement qui est configurée pour chiffrer les données d'entrée en effectuant l'opération de masque sur les données d'entrée, en utilisant une adresse associée aux données d'entrée. Dans encore d'autres modes de réalisation de la 15 présente invention, la logique de chiffrement inclut un premier circuit logique qui est configuré pour effectuer l'opération de masque sur les données d'entrée en utilisant la première configuration, de façon à générer une première information de sortie de circuit logique. Un deuxième 20 circuit logique est configuré pour effectuer l'opération de masque sur la première information de sortie de circuit logique en utilisant au moins une partie de l'adresse, de façon à générer une deuxième information de sortie de circuit logique. Un troisième circuit logique est configuré 25 pour effectuer l'opération de masque sur la deuxième information de sortie de circuit logique en utilisant une clé pour générer une troisième information de sortie de circuit logique. Dans encore d'autres modes de réalisation de la 30 présente invention, l'opération de masque inclut une opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication, et/ou une opération de division. Les opérations d'addition, de soustraction, de multiplication et de division sont 35 effectuées en relation avec un modulo. 2906665 9 Dans encore d'autres modes de réalisation de la présente invention, un circuit de boîte S' est configuré pour transformer la troisième information de sortie de circuit logique. Un circuit de permutation est configuré 5 pour permuter la troisième information de sortie de circuit logique transformée, afin de générer la première information de sortie correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée en utilisant la première configuration. 10 Dans encore d'autres modes de réalisation de la présente invention, le circuit de boîte S' vérifie l'équation suivante : S'(D OU-EX Ml OU-EX A OU-EX K) = S(D OU-EX A OU-EX K) OU-EX P-1 (Ml); dans laquelle D est les données d'entrée, Ml est la 15 première configuration, A est l'au moins une partie de l'adresse, K est la clé, P-1 est un inverse de la permutation effectuée par le circuit de permutation, S'( ) est la fonction de transformation de boîte S', et S( ) est une autre transformation de boîte S utilisée dans une 20 opération de déchiffrement. Bien qu'elle soit décrite ci-dessus principalement en relation avec des modes de réalisation de système et/ou de circuit de la présente invention, il faut noter que la présente invention peut être réalisée sous la forme d'un 25 système, d'un circuit, d'un procédé et/ou d'un produit - programme d'ordinateur. D'autres caractéristiques de la présente invention seront comprises plus aisément d'après la description détaillée suivante de modes de réalisation spécifiques de 30 celle-ci, qui est à lire en se référant conjointement aux dessins annexés, dans lesquels : la figure 1 est un schéma synoptique qui illustre une architecture de carte à puce classique; 2906665 10 la figure 2 est un schéma synoptique qui illustre un système cryptographique conforme à certains modes de réalisation de la présente invention ; la figure 3 est un schéma synoptique qui illustre 5 un circuit logique de chiffrement prévu pour l'utilisation dans le système cryptographique de la figure 2, en conformité avec certains modes de réalisation de la présente invention ; la figure 4 est une table de boîte S prévue pour 10 l'utilisation dans le circuit logique de chiffrement de la figure 3, en conformité avec certains modes de réalisation de la présente invention ; la figure 5 est un schéma synoptique qui illustre un circuit logique de déchiffrement prévu pour 15 l'utilisation dans le système cryptographique de la figure 2, en conformité avec certains modes de réalisation de la présente invention ; la figure 6 est un schéma synoptique qui illustre un système cryptographique en conformité avec des modes de 20 réalisation supplémentaires de la présente invention ; la figure 7 est un schéma synoptique qui illustre un circuit de détection d'erreur en conformité avec certains modes de réalisation de la présente invention ; la figure 8 est un schéma synoptique qui illustre 25 un circuit de détection d'erreur en conformité avec des modes de réalisation supplémentaires de la présente invention ; la figure 9 est un schéma synoptique qui illustre un système cryptographique incluant le circuit de détection 30 d'erreur de la figure 7, en conformité avec certains modes de réalisation de la présente invention ; et la figure 10 est un schéma synoptique qui illustre un circuit logique de chiffrement prévu pour l'utilisation dans le système cryptographique de la figure 9, en 35 conformité avec certains modes de réalisation de la présente invention. 2906665 11 Bien que la présente invention se prête à diverses modifications et autres formes de réalisation, les modes de réalisation spécifiques de celle-ci sont montrés à titre d'exemple dans les dessins et seront décrits ici en détail. 5 Il faut cependant noter qu'il n'y a aucune intention de limiter l'invention aux formes particulières exposées, mais au contraire, l'invention vise à couvrir tous les équivalents, modifications et variantes qui entrent dans l'esprit et le cadre de l'invention, tels qu'ils sont 10 définis par les revendications. Il faut noter que lorsqu'on dit qu'un élément est "connecté à" ou "couplé à" un autre élément, il peut être directement connecté ou couplé à l'autre élément, ou bien des éléments intermédiaires peuvent être présents. Au 15 contraire, lorsqu'on dit qu'un élément est "directement connecté à" ou "directement couplé à" un autre élément, il n'y a pas d'élément intermédiaire. Dans l'usage qui en est fait ici, les termes "et/ou" et "/" incluent absolument toutes les combinaisons d'un ou plusieurs des éléments 20 mentionnés associés. Des numéros semblables font référence à des éléments semblables dans l'ensemble de la description. La terminologie utilisée ici vise seulement à décrire des modes de réalisation particuliers, et ne vise 25 pas à limiter l'invention. Dans l'usage qui en est fait ici, les formes du singulier "un" et "le" visent à inclure également les formes du pluriel, sauf si le contexte indique clairement le contraire. On notera en outre que lorsque les termes "comprend" et/ou "comprenant" sont 30 utilisés dans cette description, ils spécifient la présence de nombres entiers, caractéristiques, é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 nombres entiers, caractéristiques, étapes, opérations, éléments, 35 composants et/ou groupes de ceux-ci. 2906665 12 Il faut noter que bien que les termes premier et deuxième soient utilisés ici pour décrire divers composants, circuits, régions, couches et/ou sections, ces composants, circuits, régions, couches et/ou sections ne 5 doivent pas être limités par ces termes. Ces termes sont utilisés seulement pour distinguer un composant, circuit, région, couche ou section d'un autre composant, circuit, région, couche ou section. Par conséquent, un premier composant, circuit, région, couche ou section envisagé 10 ci-dessous pourrait être appelé un deuxième composant, circuit, région, couche ou section et, de façon similaire, un deuxième composant, circuit, région, couche ou section peut être appelé un premier composant, circuit, région, couche ou section, sans s'écarter des enseignements de la 15 présente invention. Sauf mention contraire, tous les termes (incluant des termes techniques et scientifiques) utilisés ici ont la signification couramment admise par tout spécialiste du domaine auquel cette invention appartient. On notera en 20 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 de la technique pertinente, et ne seront pas interprétés dans un sens idéalisé ou 25 excessivement formel, à moins que ceci ne soit défini expressément ici. La présente invention peut être mise en œuvre sous la forme de systèmes, procédés, et/ou produits -programmes d'ordinateur. Par conséquent, la présente invention peut 30 être réalisée par matériel et/ou logiciel (incluant un microprogramme, un logiciel résident, un micro-code, etc.). En outre, la présente invention peut prendre la forme d'un produit - programme d'ordinateur sur un support de stockage utilisable par ordinateur ou lisible par ordinateur, avec 35 un code de programme utilisable par un ordinateur ou lisible par un ordinateur incorporé dans le support, pour 2906665 13 l'utilisation par un système d'exécution d'instructions, ou en relation avec ce dernier. Dans le contexte de ce document, un support utilisable par ordinateur ou lisible par ordinateur peut être n'importe quel support qui peut 5 contenir, stocker, communiquer, propager ou transporter le programme, pour l'utilisation par le système, l'appareil ou le dispositif d'exécution d'instructions, ou en relation avec celui-ci. Le support utilisable par ordinateur ou lisible par 10 ordinateur peut être, par exemple, mais de façon non limitative, un système, appareil, dispositif ou support de propagation électronique, magnétique, optique, électromagnétique, infrarouge ou à semi-conducteur. Des exemples plus spécifiques (une liste non exhaustive) du support 15 lisible par ordinateur incluraient ce qui suit une connexion électrique ayant un ou plusieurs fils, une disquette d'ordinateur portable, une mémoire vive (RAM), une mémoire morte (ROM), une mémoire morte programmable et effaçable (EPROM ou mémoire flash), une fibre optique, et 20 une mémoire morte à disque compact (CD-ROM). On notera que le support utilisable par ordinateur ou lisible par ordinateur pourrait même être du papier ou un autre support approprié sur lequel le programme est imprimé, du fait que le programme peut être capturé de façon électronique, par 25 exemple par lecture optique du papier ou d'un autre support, puis compilé, interprété ou traité autrement d'une manière appropriée, si nécessaire, puis stocké dans une mémoire d'ordinateur. Certains modes de réalisation de la présente 30 invention découlent de la prise en considération du fait qu'une carte à puce, par exemple, peut inclure un système cryptographique qui peut être utilisé pour chiffrer des données en utilisant une adresse associée aux données d'entrée, à protéger contre des attaques d'intrusion telles 35 que celles envisagées ci-dessus. Une carte à puce peut inclure un circuit de détection d'erreur dans lequel 2906665 14 diverses opérations logiques sont effectuées sur les données transportées sur un bus de données et/ou l'adresse transportée sur un bus d'adresse, afin de déterminer si les données et/ou l'information d'adresse ont été corrompues. 5 Certains modes de réalisation de la présente invention sont décrits ici dans le contexte d'une carte à puce qui inclut une fonction cryptographique et/ou une fonction de détection d'erreur. On comprendra que des modes de réalisation de la présente invention ne sont pas limités 10 à des cartes à puce, et que les systèmes cryptographiques et les circuits de détection d'erreur décrits ici peuvent être utilisés dans d'autres dispositifs ou comme des dispositifs autonomes. En se référant à la figure 2, on note qu'une carte 15 à puce 100, conforme à certains modes de réalisation de la présente invention, inclut une UC 110, un circuit cryptographique 130, un ordonnanceur de clés 140, et une mémoire 120 qui sont configurés de la manière représentée. Le circuit cryptographique 130 peut être réalisé sous la 20 forme d'un coprocesseur pour l'UC 110. L'UC 110 et le circuit cryptographique 130 peuvent transmettre entre eux de l'information de données et d'adresse. L'ordonnanceur de clés 140 peut fournir au circuit cryptographique 130 une clé qui peut être utilisée pour chiffrer et/ou déchiffrer 25 des données. Dans certains modes de réalisation, le circuit cryptographique 130 inclut un circuit de chiffrement 131 qui est utilisé pour chiffrer des données qui sont transportées sur le bus 150 connectant le circuit cryptographique 130 et la mémoire 120, en utilisant une 30 adresse qui est associée aux données et/ou une clé obtenue à partir de l'ordonnanceur de clés 140. Le circuit cryptographique 130 inclut en outre un circuit de déchiffrement qui est utilisé pour déchiffrer des données chiffrées précédemment. 35 La figure 3 est un schéma synoptique qui illustre un circuit logique de chiffrement qui peut être utilisé 2906665 15 dans le circuit de chiffrement 131 de la figure 2, en conformité avec certains modes de réalisation de la présente invention. Le circuit logique de chiffrement inclut un premier circuit logique de ronde 210 et un 5 deuxième circuit logique de ronde 220. Le premier circuit logique de ronde 210 inclut des circuits logiques OU-EX 211 et 212, un registre de données 213, des circuits de boîte S 214 et 215 et un circuit de permutation 216 qui sont connectés en série. Des données à chiffrer sont reçues 10 comme une information d'entrée du circuit OU-EX 211 dans lequel une opération de masque est effectuée sur les données en utilisant une adresse (Addrl) associée aux données. Le circuit OU-EX 212 effectue une deuxième opération de masque sur l'information de sortie du circuit 15 OU-EX 211 en utilisantune clé (Keyl) obtenue à partir de l'ordonnanceur de clés 140. Bien qu'une opération logique OU-Exclusif soit illustrée pour les opérations de masque des blocs 211 et 212 de la figure 3, on notera que l'opération de masque peut comprendre une opération OU- 20 Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication, et/ou une opération de division, les opérations d'addition, de soustraction, de multiplication et de division étant effectuées en relation avec un modulo, en conformité avec 25 divers modes de réalisation de la présente invention. Le registre de données 213 conserve l'information de sortie du circuit OU-EX 212 et fournit une première partie de l'information de sortie du circuit OU-EX 212 à un premier circuit de boîte S (Si) 214, et une deuxième partie 30 de l'information de sortie du circuit OU-EX 212 à un deuxième circuit de boîte S (S2) 215. Une boîte S (ou "S-box") est une abréviation pour "boîte de substitution", et est couramment utilisée dans des systèmes cryptographiques. En particulier, des boîtes S peuvent être utilisées pour 35 brouiller la relation entre un texte en clair et un texte chiffré. Dans le fonctionnement, une boîte S peut prendre 2906665 16 un certain nombre de bits d'entrée, m, et transformer ces bits d'entrée en un certain nombre de bits de sortie, n, en utilisant par exemple une table de conversion. La figure 4 est un exemple de table de boîte S qu'on peut utiliser pour 5 réaliser les circuits de boîte S 214 et 215. Par exemple, si les données d'entrée consistent en un octet ayant les données de valeur = 1001 1010, Addrl = 0111 0011 et Keyl = 1100 0101, alors la valeur stockée dans le registre de données est 0010 1100. L'information d'entrée de S1 214 est 10 0010 et l'information d'entrée de S2 215 est 1100. En se référant à la table de la figure 5, on a S1(2) = 13 = 1101 et S2(12) = 9 = 1001. L'information d'entrée du circuit de permutation 216 est donc 1101 1001. Conformément à certains modes de réalisation de la 15 présente invention, le circuit de permutation 216 est configuré pour exécuter une fonction linéaire sur son information d'entrée. Conformément à divers modes de réalisation de la présente invention, la fonction linéaire peut être une fonction de décalage ou une transformation 20 linéaire de bits. Dans l'exemple représenté sur la figure 3, le circuit de permutation 216 peut être configuré pour effectuer une opération de décalage telle que P1(1101 1001) = 1011 0011. Le deuxième circuit logique de ronde 220 inclut des 25 circuits logiques OU-EX 221 et 222, un registre de données 223, des circuits de boîte S 224 et 225, et un circuit de permutation 226 qui sont connectés en série. Des opérations du deuxième circuit logique de ronde 220 sont similaires à celles envisagées ci-dessus en relation avec le premier 30 circuit logique de ronde 210, à l'exception du fait qu'une deuxième adresse (Addr2) et une deuxième clé (Key2) sont utilisées dans les opérations de masque effectuées respectivement par les circuits logiques OU-EX 221 et 222, au lieu de la première adresse (Addrl) et de la première 35 clé (Keyl). De plus, dans le deuxième circuit logique de ronde 220, le circuit de boîte S S1 travaille sur le 2906665 17 segment inférieur au lieu du segment supérieur, et le circuit de boîte S S2 travaille sur le segment supérieur au lieu du segment inférieur. Les données chiffrées qui sont émises par le 5 deuxième circuit logique de ronde 220 peuvent être très difficiles à décoder. Il en résulte que des attaques d'intrusion, comme celles envisagées ci-dessus, sur une carte à puce, peuvent être incapables d'obtenir des données confidentielles utilisées dans la carte à puce qui ont été 10 chiffrées conformément à divers modes de réalisation de la présente invention. La figure 5 est un schéma synoptique qui illustre un circuit logique de déchiffrement qui peut être utilisé dans le circuit de déchiffrement 132 de la figure 2, en 15 conformité avec certains modes de réalisation de la présente invention. Le circuit logique de déchiffrement inclut un premier circuit logique de ronde 310 et un deuxième circuit logique de ronde 320. Le premier circuit logique de ronde 310 inclut un circuit de permutation 20 inverse 311, des circuits de boîtes S inverses 312 et 313, un registre de données 314 et des circuits logiques OU-EX 315 et 316 connectés en série. Le premier circuit logique de ronde 310 peut fonctionner de façon à annuler les opérations effectuées par le deuxième circuit logique de 25 ronde 220 de la figure 3. Si l'information de sortie du premier circuit logique de ronde 210 de la figure 3 est OP et I) représente une opération de concaténation, alors le circuit de permutation inverse 311 génère une information de sortie donnée par l'équation suivante 30 P-2[P2(S2(OP OUEX ADDR2 OU-EX KEY2) II Sl(OP OU-EX ADDR2 OU-EX K2))] = S2(OP OU-EX ADDR2 OU-EX KEY2) Sl(OP OU-EX ADDR2 OU-EX K2). Les circuits de boîtes S inverses 312 et 313 effectuent les opérations suivantes : S-2(S2(OP OU-EX ADDR2 OU-EX KEY2)) = OP OU-EX ADDR2 OU-EX KEY2 et S-1(Sl(OP 35 OU-EX ADDR2 OUEX KEY2)) = OP OU-EX ADDR2 OU-EX KEY2. Le premier circuit logique OU-EX 315 effectue l'opération 2906665 18 suivante : OP OU-EX ADDR2 OU-EX KEY2 OU- EX ADDR2 = OP OU-EX KEY2. Enfin, le deuxième circuit logique OU-EX 316 effectue l'opération suivante : OP OU-EX KEY2 OU-EX KEY2 = OP. Par conséquent, le premier circuit logique de ronde 310 5 rétablit sur une sortie de celui-ci l'information de sortie du premier circuit logique de ronde 210 du circuit de chiffrement 131. Le deuxième circuit logique de ronde 320 inclut un circuit de permutation inverse 321, des circuits de boîtes 10 S inverses 322 et 323, un registre de données 324 et des circuits logiques OU-EX 325 et 326 connectés en série. On peut faire fonctionner le deuxième circuit logique de ronde 320 pour annuler les opérations effectuées par le premier circuit logique de ronde 210 de la figure 3. Des opérations 15 du deuxième circuit logique de ronde 320 sont similaires à celles envisagées ci-dessus en relation avec le premier circuit logique de ronde 310. Ainsi, le deuxième circuit logique de ronde 320 reçoit sur son entrée l'information de sortie du premier circuit logique de ronde 210 du circuit 20 de chiffrement 131 de la figure 3 et génère sur sa sortie les données originales non chiffrées. En retournant à la figure 2, on note que la carte à puce 100 peut avantageusement transmettre des données chiffrées sur le bus 150 vers la mémoire 120 conformément 25 aux divers modes de réalisation décrits ci-dessus en relation avec les figures 3 et 4. Les données chiffrées peuvent être difficiles à décoder par des techniques d'analyse de puissance, à cause des opérations de masque, des opérations de boîte S, et/ou des opérations de 30 permutation effectuées par le circuit de chiffrement. Des modes de réalisation de la présente invention peuvent également être développés ou réduits conformément au niveau de protection désiré. Par exemple, les circuits de chiffrement et de déchiffrement décrits ci-dessus en 35 relation avec les figures 3-5 comportent deux rondes d'opérations de chiffrement / déchiffrement. Il est 2906665 19 possible d'utiliser un plus petit nombre ou un plus grand nombre de rondes d'opérations de chiffrement / déchiffrement, conformément à divers modes de réalisation de la présente invention. Dans les exemples décrits ci- 5 dessus en relation avec les figures 3-5, les données d'entrée consistaient en un octet. Il peut cependant être souhaitable d'effectuer les opérations cryptographiques décrites ci-dessus sur d'autres tailles de données, en fonction de la largeur de bus. Par conséquent, les 10 opérations décrites ci-dessus en relation avec les figures 3-5 peuvent être effectuées en parallèle pour supporter, par exemple, 16 bits, 32 bits, 64 bits, ou d'autres largeurs de bus. La figure 6 est un schéma synoptique qui illustre 15 un système cryptographique conforme à des modes de réalisation supplémentaires de la présente invention. En se référant à la figure 6, on note qu'une carte à puce 100', en conformité avec certains modes de réalisation de la présente invention, inclut une UC 110', un circuit de 20 chiffrement 131', un circuit de déchiffrement 132', un ordonnanceur de clés 140' et une mémoire 120', qui sont configurés comme représenté. La mémoire 120' est couplée à l'UC 110' par un bus de données 150'. Des opérations du circuit de chiffrement 131' et du circuit de déchiffrement 25 132' sont similaires aux opérations du circuit de chiffrement 131 et du circuit de déchiffrement 132 de la figure 2, envisagées ci-dessus. Une différence entre la carte à puce 100' de la figure 6 et la carte à puce 100 de la figure 2 consiste en ce que la logique de chiffrement 30 dans la carte à puce 100' est intégrée à l'UC 110' de façon à former une seule unité logique, tandis que le circuit cryptographique 130 de la figure 2 est configuré comme un coprocesseur pour l'UC 110 de la figure 2. La figure 7 est un schéma synoptique qui illustre 35 un circuit de détection d'erreur en conformité avec certains modes de réalisation de la présente invention. En 2906665 20 se référant à la figure 7, on note que le circuit de détection d'erreur comprend une UC 410, trois circuits logiques 430, 440 et 450 et une mémoire 420 qui sont configurés comme représenté. Le bus de données couplé à 5 l'UC 410 est connecté en parallèle aux circuits logiques 430 et 440. Le circuit logique OU-EX 431 effectue une opération de masque sur les données en utilisant une première configuration MASK1 (Ml) et stocke l'information de sortie dans un registre 432. De façon similaire, le 10 circuit logique OU-EX 441 effectue une opération de masque sur les données en utilisant une deuxième configuration MASK2 (M2) et stocke l'information de sortie dans un registre 442. Bien qu'une opération logique OU-Exclusif soit illustrée pour les opérations de masque des blocs 431 15 et 441 sur la figure 7, on notera que l'opération de masque peut comprendre une opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication et/ou une opération de division, les opérations d'addition, de soustraction, de multiplication 20 et de division étant effectuées en relation avec un modulo, conformément à divers modes de réalisation de la présente invention. Le circuit logique 430 fournit "données d'entrée" OU-EX Ml à la sortie 460 et le circuit logique 440 fournit 25 "données d'entrée" OU-EX M2 à la sortie 470. Les informations sur ces sorties sont respectivement fournies à des registres 451 et 452 du circuit logique 450. Le circuit logique 450 inclut en outre des circuits logiques OU-EX 453 et 454. Le circuit logique OU-EX 453 est utilisé pour 30 récupérer les données d'entrée originales en effectuant une opération de masque sur le contenu du registre 451, en utilisant la première configuration MASK1 (Ml). L'information de sortie du circuit logique OU-EX 453 est donnée par l'équation suivante: "données d'entrée" OU-EX M1 35 OU-EX Ml = "données d'entrée". Les données d'entrée sont donc stockées dans la mémoire 420. 2906665 21 Le circuit logique OU-EX 454 effectue une opération de masque sur le contenu du registre 452 en utilisant le contenu du registre 451. L'information de sortie du circuit logique OU-EX 454 est donnée par l'équation suivante . 5 "données d'entrée" OU-EX M1 OU-EX "données d'entrée" OU-EX M2 = Ml OU-EX M2. Un circuit détecteur d'erreur 455 peut comparer l'information de sortie du circuit logique OU-EX 454 avec le résultat connu de Ml OU-EX M2. Si l'information de sortie du circuit logique OU-EX 454 n'est pas M1 OU-EX 10 M2, alors les données d'entrée sur au moins une branche du double bus de données ont été corrompues et une erreur est reconnue. La figure 8 est un schéma synoptique qui illustre un circuit de détection d'erreur en conformité avec des 15 modes de réalisation supplémentaires de la présente invention. Le circuit de détection d'erreur de la figure 8 comprend les mêmes composants que le circuit de détection d'erreur de la figure 7, avec des composants semblables désignés par les mêmes numéros de référence, mais avec un 20 symbole prime à la fin du nombre. Cependant, au lieu de modes de réalisation à double bus de données comme illustré sur la figure 7, la figure 8 illustre des modes de réalisation à double bus d'adresse. Des opérations du circuit de détection d'erreur de la figure 8 sont 25 similaires à celles du circuit de détection d'erreur de la figure 7, à l'exception du fait qu'elles sont appliquées à une information d'adresse transportée sur un double bus d'adresse. Conformément à des modes de réalisation 30 supplémentaires de la présente invention, les modes de réalisation de système cryptographique des figures 2-6 peuvent être combinés avec les modes de réalisation de circuit de détection d'erreur des figures 7 et 8. En se référant à la figure 9, on voit une illustration d'un 35 système cryptographique qui inclut un circuit de détection d'erreur, en conformité avec certains modes de réalisation 2906665 22 de la présente invention. Le système cryptographique de la figure 9, en conformité avec certains modes de réalisation de la présente invention, inclut une UC 510, un circuit cryptographique 530, un ordonnanceur de clés 540, un 5 circuit de détection d'erreur 550 et une mémoire 520 qui sont configurés comme représente. Le circuit cryptographique 530 peut être réalisé sous la forme d'un coprocesseur pour l'UC 510. L'UC 510 et le circuit cryptographique 530 peuvent échanger entre eux de 10 l'information de données et d'adresse. Dans d'autres modes de réalisation, l'UC 510 et le circuit cryptographique 530 peuvent être réalisés dans une seule unité logique, comme celle illustrée sur la figure 6, envisagée ci-dessus. L'architecture et les opérations des circuits de 15 chiffrement 530 et 532 sont sensiblement similaires à l'architecture et aux opérations du circuit de chiffrement 131 de la figure 2, à l'exception de la conception du circuit de boîte S. De façon similaire, l'architecture et les opérations du circuit de déchiffrement 533 sont 20 sensiblement similaires à l'architecture et aux opérations du circuit de déchiffrement 532 de la figure 2, à l'exception de la conception du circuit de boîte S inverse. Comme représenté sur la figure 9, le circuit cryptographique 530 génère "données chiffrées" OU-EX MASK1 25 (M1) à la sortie 560 et "données chiffrées" OU-EX MASK2 (M2) à la sortie 570. L'architecture et les opérations du circuit de détection d'erreur 550 sont les mêmes que celles des circuits logiques 450 et 450' des circuits de détection d'erreur des figures 7 et 8, respectivement. 30 En se référant à la figure 10, on décrira un circuit logique de chiffrement qui peut être utilisé dans les circuits de chiffrement 531 et/ou 532 de la figure 9, en conformité avec certains modes de réalisation de la présente invention. Dans un but d'illustration, on décrira 35 le circuit logique de chiffrement de la figure 10 en relation avec une implémentation du circuit de chiffrement 2906665 23 531. Les premier et deuxième circuits logiques de ronde 610 et 620 sont sensiblement les mêmes que les premier et deuxième circuits logiques de ronde 210 et 220 envisagés ci--dessus en relation avec la figure 3. Les sous-composants 5 des premier et deuxième circuits logiques de ronde 610 et 620 sont numérotés de façon correspondante aux sous-composants des premier et deuxième circuits logiques de ronde 210 et 220. Cependant, contrairement au circuit logique de chiffrement de la figure 3, les circuits de 10 boîtes S 614, 615, 624 et 625 diffèrent des circuits de boîtes S correspondants de la figure 3. Ceci vient du fait que l'information d'entrée du premier circuit logique de ronde 610 n'est pas simplement les données d'entrée, mais est les données d'entrée sur lesquelles le circuit logique 15 OU-EX 605 a appliqué une opération de masque en utilisant la configuration MASK1 (Ml). Un objectif est de générer à la sortie du circuit de chiffrement 531 "données chiffrées" OU-EX M1. Ceci permet de supprimer la configuration MASK1 (Ml) par une 20 simple opération de masque OU-EX, et ensuite le circuit de déchiffrement 533 peut déchiffrer les données chiffrées en utilisant la logique de chiffrement, incluant la table de boîte S de la figure 4, pour récupérer les données d'entrée originales. Pour faire en sorte que l'information de sortie 25 du circuit de chiffrement 531 soit "données chiffrées" OU-EX M1, le nouveau circuit S1 614, 624 vérifie l'équation suivante : S1'(D OU-EX Ml OU-EX A OU-EX K) = S1(D OU-EX A OU-EX K)OU-EX P-1(Ml); dans laquelle D est les données d'entrée, M1 est la 30 première configuration, A est l'au moins une partie de l'adresse (Addrl), K est la clé (Keyl), P-1 est un inverse de la permutation effectuée par le circuit de permutation 616, S1'( ) est la fonction de transformation S1, et Sl( ) 2906665 24 est une autre transformation de boîte S utilisée dans une opération de déchiffrement. De façon similaire, le nouveau circuit S2 615, 625 vérifie l'équation suivante 5 S2'(D OU-EX Ml OU-EX A OU-EX K) = S2(D OU-EX A OUEX K)OU-EX P-1(M1); dans laquelle D est les données d'entrée, Ml est la première configuration, A est l'au moins une partie de l'adresse (Addr1), K est la clé (Keyl), P-1 est un inverse de la permutation effectuée par le circuit de permutation 10 616, S1'( ) est la fonction de transformation S2, et S2( ) est une autre transformation de boîte S utilisée dans une opération de déchiffrement. Si i = D OU-EX Al OU-EX K1, alors les équations précédentes pour le nouveau circuit S1 614, 624 et le 15 nouveau circuit S2 615, 625 peuvent être écrites de la façon suivante : Sl'(i OU-EX M1) = S1(i) OU-EX P-1(M1); et S2'(i OU-EX Ml) = S2(i) OU-EX P-1(Ml). L'information de sortie du premier circuit logique de ronde 20 610 est donnée par les équations suivantes : P(Sl'(i OU-EX Ml) S2'(i OU-EX Ml)) Ce qui peut être réécrit de la façon suivante : P(Sl(i) OU-EX P-1(Ml) Il S2(i) OU-EX P-1(Ml)) = P((Sl(i) Il S2(i)) OU-EX P-1(M1)) 25 Ce qui peut être réécrit de la façon suivante : P(Sl(i) Il S2(i)) OU-EX P(P-1(Ml)) = P(Sl(i) Il S2(i)) OU-EX M1 2906665 25 Par conséquent, l'information de sortie du premier circuit logique de ronde 610 est : ED1 OU-EX M1. On appréciera que la fonctionnalité de n'importe 5 lesquels ou de la totalité des modules du circuit de chiffrement 131 et du circuit de déchiffrement 132 de la figure 2, du circuit de chiffrement 131' et du circuit de déchiffrement 132' de la figure 6, des circuits logiques 430, 440 et 450 de la figure 7, des circuits logiques 430', 10 440' et 450' de la figure 8, et des circuits de chiffrement 531, 532, du circuit de déchiffrement 533 et du circuit de détection d'erreur 550 de la figure 9, peut être réalisée en utilisant des composants matériels discrets, un ou plusieurs circuits intégrés à application spécifique 15 (ASIC), ou un processeur de signal numérique ou un microcontrôleur programmé. Un code d'ordinateur pour accomplir des opérations de systèmes cryptographiques et/ou de circuits de détection d'erreur envisagés ci-dessus peut être écrit en un langage de programmation de haut niveau, 20 tel que Java, C, et/ou C++, pour la commodité du développement. De plus, un code d'ordinateur pour accomplir des opérations de la présente invention peut également être écrit dans d'autres langages de programmation, tels que des langages interprétés, ceci n'étant pas limitatif. Certains 25 modules ou routines peuvent être écrits en assembleur ou même en micro-code, pour améliorer les performances et/ou l'usage de mémoire. En conclusion de la description détaillée, il faut noter que de nombreux changements et modifications peuvent 30 être apportés aux modes de réalisation, sans s'écarter sensiblement des principes de la présente invention. On désire que tous ces changements et modifications soient inclus dans le cadre de la présente invention, comme spécifié dans les revendications suivantes. REVENDICATIONS 1. Circuit de détection d'erreur, caractérisé en ce qu'il comprend : un premier circuit logique (431) qui est configuré pour effectuer une opération logique sur une information d'entrée et une première configuration (Ml) de façon à générer une première information de sortie; un deuxième circuit logique (441) qui est configuré pour effectuer une opération logique sur l'information d'entrée et une deuxième configuration (M2), de façon à générer une deuxième information de sortie; un troisième circuit logique (454) qui est configuré pour effectuer une opération logique sur la première information de sortie et la deuxième information de sortie, pour générer une troisième information de sortie; et un circuit de détecteur (455) qui est configuré pour comparer la troisième information de sortie avec une valeur correspondant à une combinaison logique de la première configuration (Ml) avec la deuxième configuration (M2) et pour reconnaître une erreur si la valeur n'est pas égale à la troisième information de sortie. 2. Circuit de détection d'erreur selon la revendication 1, caractérisé en ce que le premier circuit logique (431) est configuré pour effectuer une opération de masque, le deuxième circuit logique (441) est configuré pour effectuer l'opération de masque, et le troisième circuit logique (454) est configuré pour effectuer l'opération de masque. 3. Circuit de détection d'erreur selon la revendication 2, caractérisé en ce que l'opération de masque comprend une opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication, et/ou une opération de division, les opérations d'addition, de soustraction, de multiplication et de division étant effectuées en relation avec un modulo. 2906665 27 4. Circuit de détection d'erreur selon la revendication 1, caractérisé en ce qu'il comprend en outre : un premier bus (460) qui couple le premier circuit logique (431) au troisième circuit logique (454); et un deuxième 5 bus (470) qui couple le deuxième circuit logique (441) au troisième circuit logique (454). 5. Circuit de détection d'erreur selon la revendication 1, caractérisé en ce que l'information d'entrée comprend des données d'entrée. 10 6. Circuit de détection d'erreur selon la revendication 1, caractérisé en ce que l'information d'entrée inclut une adresse d'entrée. 7. Circuit de détection d'erreur selon la revendication 1, caractérisé en ce qu'il comprend en outre : 15 un quatrième circuit logique (453) qui est configuré pour effectuer une opération de masque sur la première information de sortie et la première configuration (Ml) pour obtenir l'information d'entrée. 8. Procédé pour faire fonctionner un circuit de 20 détection d'erreur, caractérisé en ce qu'il comprend les étapes suivantes : effectuer une première opération logique (431) sur une information d'entrée et une première configuration (Ml), de façon à générer une première information de sortie; effectuer une deuxième opération 25 logique (441) sur l'information d'entrée et une deuxième configuration (M2) de façon à générer une deuxième information de sortie; effectuer une troisième opération logique (454) sur la première information de sortie et la deuxième information de sortie de façon à générer une 30 troisième information de sortie; comparer (455) la troisième information de sortie avec une valeur correspondant à une combinaison logique de la première configuration (Ml) avec la deuxième configuration (M2); et reconnaître une erreur si la valeur n'est pas égale à la 35 troisième information de sortie. 2906665 28 9. Procédé selon la revendication 8, caractérisé en ce que l'information d'entrée comprend des données d'entrée. 10. Procédé selon la revendication 8, caractérisé 5 en ce que l'information d'entrée comprend une adresse d'entrée. 11. Produit - programme d'ordinateur caractérisé en ce qu'il comprend un code de programme lisible par ordinateur incorporé dans un support lisible par 10 ordinateur, et en ce que le code de programme lisible par ordinateur est configuré pour exécuter le procédé de la revendication 8. 12. Système cryptographique, caractérisé en ce qu'il comprend : un premier circuit de chiffrement (430) 15 qui est configuré pour générer, en réponse à des données d'entrée, une première information de sortie correspondant à des données d'entrée chiffrées sur lesquelles une opération de masque a été effectuée en utilisant une première configuration (Ml); un deuxième circuit de 20 chiffrement (440) qui est configuré pour générer, en réponse aux données d'entrée, une deuxième information de sortie correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée, en utilisant une deuxième configuration (M2); un circuit 25 logique d'entrée de détecteur (450) qui est configuré pour effectuer l'opération de masque sur la première information de sortie et la deuxième information de sortie, pour générer une troisième information de sortie; et un circuit détecteur (455) qui est configuré pour comparer la 30 troisième information de sortie avec une valeur correspondant à la première configuration (Ml) sur laquelle l'opération de masque a été effectuée en utilisant la deuxième configuration (M2), et pour reconnaître une erreur si la valeur n'est pas égale à la troisième information de 35 sortie. 2906665 29 13. Système cryptographique selon la revendication 12, caractérisé en ce que le premier circuit de chiffrement comprend : une logique de chiffrement (605, 611, 612) qui est configurée pour chiffrer les données d'entrée en 5 effectuant l'opération de masque sur les données d'entrée, en utilisant une adresse associée aux données d'entrée. 14. Système cryptographique selon la revendication 13, caractérisé en ce que la logique de chiffrement comprend: un premier circuit logique (605) qui est 10 configuré pour effectuer l'opération de masque sur les données d'entrée en utilisant la première configuration (MI) de façon à générer une première information de sortie de circuit logique; un deuxième circuit logique (611) qui est configuré pour effectuer l'opération de masque sur 15 l'information de sortie du premier circuit logique en utilisant au moins une partie de l'adresse (Addrl) de façon à générer une deuxième information de sortie de circuit logique; et un troisième circuit logique (612) qui est configuré pour effectuer l'opération de masque sur la 20 deuxième information de sortie de circuit logique en utilisant une clé (Keyl) pour générer une troisième information de sortie de circuit logique. 15. Système cryptographique selon la revendication 14, caractérisé en ce que l'opération de masque comprend 25 une opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication et/ou une opération de division, les opérations d'addition, de soustraction, de multiplication et de division étant effectuées en relation avec un modulo. 30 16. Système cryptographique selon la revendication 15, caractérisé en ce qu'il comprend en outre : un circuit de boîte S' (614, 615) qui est configuré pour transformer la troisième information de sortie de circuit logique; et un circuit de permutation (616) qui est configuré pour 35 permuter la troisième information de sortie de circuit logique transformée, de façon à générer la première 2906665 30 information de sortie correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée en utilisant la première configuration (Ml). 17. Système cryptographique selon la revendication 5 16, caractérisé en ce que le circuit de boîte S' vérifie l'équation suivante : S'(D OU-EX Ml OU-EX A OU-EX K) = S(D OU-EX A OU-EX K) OU-EX P-1(Ml); dans laquelle D est les données d'entrée, Ml est la première configuration, A est l'au moins une partie de 10 l'adresse, K est la clé, P-1 est un inverse de la permutation effectuée par le circuit de permutation, S'( ) est la fonction de transformation de boîte S', et S( ) est une autre transformation de boîte S utilisée dans une opération de déchiffrement. 15 18. Système cryptographique selon la revendication 16, caractérisé en ce que les données d'entrée comprennent au moins un octet de données, et en ce que le circuit de boîte S' comprend un premier circuit de boîte S' (614) et un deuxième circuit de boîte S' (615) qui sont configurés 20 pour transformer respectivement un premier segment de la troisième information de sortie de circuit logique et un deuxième segment de la troisième information de sortie de circuit logique. 19. Système cryptographique selon la revendication 25 13, caractérisé en ce que la logique de chiffrement comprend: un premier circuit logique de ronde (605, 611, 612) qui est configuré pour générer une première information de sortie de circuit logique de ronde en réponse aux données d'entrée, à la première configuration 30 (Mll), à au moins une première partie d'une adresse (Addrl), et à une première clé (Keyl); un premier circuit de boîte S' de ronde (614, 615) qui est configuré pour transformer la première information de sortie de circuit logique de ronde; et un premier circuit de permutation de ronde (616) 2906665 31 qui est configuré pour permuter la première information de sortie de circuit logique de ronde transformée, de façon à générer une première information de sortie de ronde; un deuxième circuit logique de ronde (621, 622) qui est 5 configuré pour générer une deuxième information de sortie de circuit logique de ronde en réponse à la première information de sortie de ronde, à au moins une deuxième partie de l'adresse (Addr2), et à une deuxième clé (Key2); un deuxième circuit de boîte S' de ronde (624, 625) qui est 10 configuré pour transformer la deuxième information de sortie de circuit logique de ronde; et un deuxième circuit de permutation de ronde (626) qui est configuré pour permuter la deuxième information de sortie de circuit logique de ronde transformée, de façon à générer la 15 première information de sortie correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée en utilisant la première configuration (Ml). 20. Système cryptographique selon la revendication 19, caractérisé en ce que les premier et deuxième circuits 20 de boîtes S' de ronde vérifient l'équation suivante : S'(D OU-EX M1 OU-EX A OU-EX K) = S(D OU- EX A OU-EX K) OU-EX P-1(Ml); dans laquelle D est les données d'entrée, M1 est la première configuration, A est l'au moins une partie de l'adresse, K est la clé, P-1 est un inverse de la 25 permutation effectuée par le circuit de permutation, S'( ) est la fonction de transformation de boîte S', et S( ) est une autre transformation de boîte S utilisée dans une opération de déchiffrement. 21. Système cryptographique selon la revendication 30 12, caractérisé en ce que le deuxième circuit de chiffrement comprend : une logique de chiffrement qui est configurée pour chiffrer les données d'entrée en effectuant l'opération de masque sur les données d'entrée en utilisant une adresse associée aux données d'entrée. 2906665 32 22. Système cryptographique selon la revendication 21, caractérisé en ce que la logique de chiffrement comprend: un premier circuit logique qui est configuré pour effectuer l'opération de masque sur les données d'entrée en 5 utilisant la deuxième configuration (M2) de façon à générer une première information de sortie de circuit logique; un deuxième circuit logique qui est configuré pour effectuer l'opération de masque sur la première information de sortie de circuit logique en utilisant au moins une partie de 10 l'adresse (Addrl) de façon à générer une deuxième information de sortie de circuit logique; et un troisième circuit logique qui est configuré pour effectuer l'opération de masque sur la deuxième information de sortie de circuit logique en utilisant une clé (Keyl) pour générer 15 une troisième information de sortie de circuit logique. 23. Système cryptographique selon la revendication 22, caractérisé en ce que l'opération de masque comprend une opération OU-Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication, 20 et/ou une opération de division, les opérations d'addition, de soustraction, de multiplication et de division étant effectuées en relation avec un modulo. 24. Système cryptographique selon la revendication 23, caractérisé en ce qu'il comprend en outre : un circuit 25 de boîte S' qui est configuré pour transformer la troisième information de sortie de circuit logique; et un circuit de permutation qui est configuré pour permuter la troisième information de sortie de circuit logique transformée, de façon à générer la deuxième information de sortie 30 correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée en utilisant la deuxième configuration (M2). 25. Système cryptographique selon la revendication 24, caractérisé en ce que le circuit de boîte S' vérifie 35 l'équation suivante : 2906665 33 S'(D OU-EX M2 OU-EX A OU-EX K) = S(D OU-EX A OU-EX K)OU-EX P-1(M2); dans laquelle D est les données d'entrée, M2 est la deuxième configuration, A est l'au moins une partie de l'adresse, K est la clé, P- 1 est un inverse de la 5 permutation effectuée par le circuit de permutation, S'( ) est la fonction de transformation de boîte S', et S( ) est une autre transformation de boîte S utilisée dans une opération de déchiffrement. 26. Système cryptographique selon la revendication 10 24, caractérisé en ce que les données d'entrée comprennent au moins un octet de données, et en ce que le circuit de boîte S' comprend un premier circuit de boîte S' et un deuxième circuit de boîte S' qui sont configurés pour transformer respectivement un premier segment de la 15 troisième information de sortie de circuit logique et un deuxième segment de la troisième information de sortie de circuit logique. 27. Système cryptographique selon la revendication 21, caractérisé en ce que la logique de chiffrement 20 comprend: un premier circuit logique de ronde qui est configuré pour générer une première information de sortie de circuit logique de ronde en réponse aux données d'entrée, à la deuxième configuration (M2), à au moins une première partie d'une adresse (Addrl), et à une première 25 clé (Keyl); un premier circuit de boîte S' de ronde qui est configuré pour transformer la première information de sortie de circuit logique de ronde; et un premier circuit de permutation de ronde qui est configuré pour permuter la première information de sortie de circuit logique de ronde 30 transformée, de façon à générer une première information de sortie de ronde; un deuxième circuit logique de ronde qui est configuré pour générer une deuxième information de sortie de circuit logique de ronde en réponse à la première information de sortie de ronde, à au moins une deuxième 35 partie de l'adresse (Addr2), et à une deuxième clé (Key2); 2906665 34 un deuxième circuit de boîte S' de ronde qui est configuré pour transformer la deuxième information de sortie de circuit logique de ronde; et un deuxième circuit de permutation de ronde qui est configuré pour permuter la 5 deuxième information de sortie de circuit logique de ronde transformée, de façon à générer la deuxième information de sortie correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée en utilisant la deuxième configuration (M2). 10 28. Système cryptographique selon la revendication 27, caractérisé en ce que les premier et deuxième circuits de boîtes S' de ronde vérifient l'équation suivante : S'(D OU-EX M2 OU-EX A OU-EX K) = S(D OU-EX A OU-EX K)OU-EX P-1(M2); dans laquelle D est les données d'entrée, M2 est la 15 deuxième configuration, A est l'au moins une partie de l'adresse, K est la clé, P-1 est un inverse de la permutation effectuée par le circuit de permutation, S'( ) est la fonction de transformation de boîte S', et S( ) est une autre transformation de boîte S utilisée dans une 20 opération de déchiffrement. 29. Système cryptographique selon la revendication 12, caractérisé en ce que les données d'entrée comprennent au moins un octet de données. 30. Procédé pour faire fonctionner un système 25 cryptographique, caractérisé en ce qu'il comprend les étapes suivantes générer, en réponse à des données d'entrée, une première information de sortie correspondant à des données d'entrée chiffrées sur lesquelles une opération de masque a été effectuée en utilisant une 30 première configuration (Ml); générer, en réponse aux données d'entrée, une deuxième information de sortie correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée, en utilisant une deuxième configuration (M2); effectuer l'opération de 2906665 35 masque sur la première information de sortie et la deuxième information de sortie pour générer une troisième information de sortie; comparer la troisième information de sortie avec une valeur correspondant à la première 5 configuration (Ml) sur laquelle l'opération de masque a été effectuée en utilisant la deuxième configuration (M2); et reconnaître une erreur si la valeur n'est pas égale à la troisième information de sortie. 31. Procédé selon la revendication 30, caractérisé 10 en ce que l'étape de génération de la première information de sortie comprend l'étape suivante : chiffrer les données d'entrée en effectuant l'opération de masque sur les données d'entrée en utilisant une adresse associée aux données d'entrée. 15 32. Procédé selon la revendication 31, caractérisé en ce que l'étape de chiffrement des données d'entrée comprend les étapes suivantes : effectuer l'opération de masque sur les données d'entrée en utilisant la première configuration (Ml) de façon à générer une première 20 information de sortie logique; effectuer l'opération de masque sur la première information de sortie logique en utilisant au moins une partie de l'adresse (Addrl, Addr2) de façon à générer une deuxième information de sortie logique; et effectuer l'opération de masque sur la deuxième 25 information de sortie logique en utilisant une clé (Keyl, Key2) pour générer une troisième information de sortie logique. 33. Procédé selon la revendication 32, caractérisé en ce que l'opération de masque comprend une opération OU- 30 Exclusif, une opération d'addition, une opération de soustraction, une opération de multiplication et/ou une opération de division, les opérations d'addition, de soustraction, de multiplication et de division étant effectuées en relation avec un modulo. 35 34. Procédé selon la revendication 33, caractérisé en ce qu'il comprend en outre les étapes suivantes 2906665 36 transformer la troisième information de sortie logique en utilisant un circuit de boîte S' (614, 615); et permuter la troisième information de sortie logique transformée de façon à générer la première information de sortie 5 correspondant aux données d'entrée chiffrées sur lesquelles l'opération de masque a été effectuée en utilisant la première configuration (Ml). 35. Procédé selon la revendication 34, caractérisé en ce que le circuit de boîte S' (614, 615) vérifie 10 l'équation suivante: S'(D OU-EX Ml OU-EX A OU-EX K) = S(D OU-EX A OU-EX K)OU-EX P-1(M1); dans laquelle D est les données d'entrée, M1 est la première configuration, A est l'au moins une partie de l'adresse, K est la clé, P-1 est un inverse de la 15 permutation effectuée par le circuit de permutation, S'( ) est la fonction de transformation de boîte S', et S( ) est une autre transformation de boîte S utilisée dans une opération de déchiffrement. 36. Produit - programme d'ordinateur comprenant un 20 code de programme lisible par ordinateur incorporé dans un support lisible par ordinateur, caractérisé en ce que le code de programme lisible par ordinateur est configuré pour exécuter le procédé de la revendication 30.