Brevet FR2858731A1 — publié le 20050211

1. Certains modes de réalisation de la présente invention concernent un procédé de cryptage mis en oeuvre par chevauchement ou utilisation d'une horloge variable. La présente demande revendique priorité sur la demande de 5 brevet coréenne N 2003-55031 déposée le 8 Août 2003 auprès de l'Office Coréen de la Propriété Intellectuelle, sa divulgation étant mentionnée ici dans sa totalité à titre de référence. L'algorithme défini par la Norme de Cryptage de 10 Données (DES) est utilisé en tant que procédé de cryptage et est important dans les réseaux de communications. Par exemple, l'algorithme DES est utilisé dans des applications Internet sécurisées, des serveurs d'accès distants, des modems-cables, et des modems-satellites. L'algorithme DES 15 reçoit en entrée un bloc de 64 bits et fournit en sortie un bloc de 64 bits. Parmi les 64 bits, 56 bits sont utilisés pour le cryptage et le décryptage. Les 8 bits restants sont utilisés pour le contrôle de parité. Un système DES est un appareil de cryptage qui reçoit un bloc de texte clair à 64 20 bits et une clé à 56 bits et délivre un texte chiffré à 64 bits. Comme exemples de techniques mettant en oeuvre l'algorithme DES, on peut citer la permutation (par exemple par la méthode P-Box), la substitution (par exemple par la 25 méthode S-Box), et la planification de clés pour générer des sous-clés. Pendant le cryptage de données, 16 cycles (rounds) d'opérations répétitives sont effectués. Une partie d'entrée effectue une permutation initiale (IP) et une partie de sortie effectue une permutation initiale (IP) 30 inverse. La figure 1 représente un schéma fonctionnel d'un appareil de cryptage qui met en oeuvre un algorithme DES. En premier lieu, la partie 110 effectuant la permutation initiale (IP) permute un bloc de texte clair de 64 bits. 35 Après cela, la partie de transformation 120 divise le bloc de texte clair à 64 bits en deux blocs de 32 bits. L'un des blocs de 32 bits est stocké dans le registre de variable de gauche (L0), tandis que l'autre bloc de 32 bits est stocké dans le registre de variable de droite (R0). 16 cycles d'une transformation du produit qui utilise une fonction de 5 chiffrage (f) et 16 cycles d'une transformation de blocs sont ensuite effectués. La transformation de blocs est exécutée en croisant les variables de gauche et de droite Li et Ri (où i est un entier allant de 1 à 16) l'une avec l'autre. La partie 130 effectuant la permutation initiale 10 inverse (IP1) crypte le résultat des transformations précédentes en utilisant une permutation initiale inverse et délivre le texte chiffré. Des transformations de produits sont effectuées par la fonction de chiffrage (f) 121 et par la partie 122 15 effectuant un OU exclusif (OUX). La fonction de chiffrage (f) 121 reçoit les données d'un bloc à 32 bits de la variable de droite Ri provenant d'un registre Ri en association avec la sous-clé Ki et exécute un algorithme de cryptage. La sous-clé Ki est produite par un planificateur 20 de clé. La partie XOR 122 applique une opération OUX au résultat de la fonction de chiffrage (f) 121 et à la sortie d'un registre Li. Le OUX délivre le résultat de l'opération OUX au registre de variable de droite, puis au registre Ri. Plus précisément, les données du bloc de 32 bits obtenues 25 par la partie OUX 122 sont transférées vers et stockées dans un registre de variable de droite (Ri+,). Les données à 32 bits stockées dans le registre Ri sont transférées vers et stockées dans un registre de variable de gauche (Li+1). Cet algorithme correspond à un cycle, et 16 cycles sont 30 exécutés conformément à l'algorithme DES. Lorsqu'un bloc de texte clair à 64 bits est traité par la partie IP 110, il est divisé en deux blocs. Ces deux blocs sont stockés dans les registres L0 et R0, chacun des 16 cycles étant exprimé par les équations 1 et 2 35 suivantes: Li = Ri-,, i=1, 2, ..., 16..(1) Ri = Li- p f(Ri-,Ki), i=1,2,..., 16... (2) La figure 2 illustre un planificateur de clé qui 5 génère une sous-clé Ki (où i est un entier allant de 1 à 16). Le planificateur de clé comprend la première partie 200 effectuant un choix de permutation (PC), la partie 210 effectuant une opération de base, et la seconde partie PC 220. La première partie PC 200 reçoit et permute une clé à 10 56 bits. La partie 210 effectuant l'opération de base divise un bloc de clé à 56 bits, permuté par la première partie PC 200 en deux blocs de 28 bits. La partie effectuant l'opération de base stocke le premier bloc à 28 bits dans un registre de variable (Co) et stocke le second 15 bloc à 28 bits dans un registre de variable (Do). La partie 210 effectuant l'opération de base produit des sous-clés à 48 bits qui sont exigées par une opération effectuée par la fonction de chiffrage pendant les 16 cycles de la transformation de produits. Pour assurer cette production 20 de sous-clés, des dispositifs de décalage à gauche 213 et 214 de la partie 210 effectuant l'opération de base décalent vers la gauche une variable de gauche (Ci) d'un registre Ci 211 et une variable de droite (Di) d'un registre Di 212, respectivement, d'une ou deux positions. 25 Les dispositifs de décalage à gauche 213 et 214 stockent les variables de gauche et de droite décalées à gauche Ci et Di dans un registre de variable de gauche (Ci+l) et dans un registre de variable de droite (Di+l), respectivement. Les secondes parties PC 220 reçoivent des blocs à 28 bits 30 des variables de gauche et de droite Ci et Di, décalées à gauche lors de chaque cycle. La seconde partie PC 220 délivre des sous-clés à 48 bits Ki. Pendant les 16 cycles, les variables de gauche et de droite Ci et Di sont décalées de 28 positions. Par conséquent, la variable de gauche C16 35 est identique à la variable de gauche C0 et la variable de droite D16 est identique à la variable de droite Do. La figure 3 est un schéma fonctionnel de l'architecture d'un noyau général de type DES. Se référant à la figure 3, la fonction de chiffrage (f) comprend la partie 300 effectuant une permutation avec expansion, la 5 partie OUX 310, la partie 320 effectuant une permutation SBox, et la partie 330 effectuant une permutation P-Box. La partie 300 effectuant la permutation avec expansion recopie certains des 32 bits de la variable de droite Ri- reçue d'un registre Ri-1 pour permuter la variable de droite Ri- à 10 32 bits afin de fournir une variable de droite à 48 bits. La partie OUX 310 effectue une opération OUX sur le résultat de la permutation effectuée par la partie 300 effectuant la permutation avec expansion et sur une sousclé à 48 bits produite lors de chaque cycle par un 15 planificateur de clé. La partie 320 effectuant la permutation S-Box substitue un bloc de 32 bits à un bloc de 48 bits obtenu par la partie OUX 310. La partie 330 effectuant la permutation P-Box permute le bloc de 32 bits obtenu par la partie 320 effectuant la permutation S-Box, 20 et fournit un bloc de 32 bits permuté. Le bloc de 32 bits fourni par la partie 330 effectuant la permutation P-Box est soumis à une opération OUX avec une variable de gauche à 32 bits Li- stockée dans un registre Li-1. Le résultat de l'opération OUX est stocké en tant que variable de droite 25 Ri dans un registre Ri. Une variable de droite à 32 bits Ri-1 stockée dans le registre Ri- est transférée vers et stockée dans un registre Li. La cryptanalyse différentielle et la cryptanalyse linéaire sont largement répandues en tant qu'algorithmes 30 permettant d'attaquer l'algorithme de cryptage DES. Comme ces algorithmes d'attaque du cryptage sont basés sur la vulnérabilité de l'algorithme DES, ils ne sont pas appropriés pour les attaques effectuées sur le cryptage. Des attaques visant des défauts sont récemment apparues en 35 tant que méthodes d'attaque efficaces d'un algorithme de cryptage à clé publique tel que l'algorithme de cryptage RSA. Eli Biham, qui a conçu la cryptanalyse différentielle, a proposé une attaque de défaut différentielle (DFA) par laquelle l'attaque d'un défaut est appliquée à une technique de cryptage par bloc, comme dans le cas de 5 l'algorithme DES. L'attaque d'un défaut permet de détecter une clé en utilisant plusieurs centaines de paires d'un texte clair, ce qui représente une quantité beaucoup plus faible que dans le cas de méthodes d'attaque utilisant des techniques apparentées. Par conséquent, l'attaque d'un 10 défaut est plus puissante que d'autres méthodes d'attaque théoriques. De ce fait, un appareil et un procédé de cryptage résistant à une attaque DFA est nécessaire. Des aspects de certains modes de réalisation de la présente invention fournissent un procédé de cryptage 15 permettant de mettre en oeuvre une opération de chevauchement afin d'empêcher toute fuite d'une valeur de clé due à des défauts artificiels et naturels. Des aspects de certains modes de réalisation de l'invention fournissent un procédé de cryptage permettant de mettre en oeuvre une 20 opération à horloge variable. Des aspects de certains modes de réalisation de la présente invention fournissent un procédé de cryptage permettant de mettre en oeuvre simultanément une opération de chevauchement et/ou une opération à horloge variable. Conformément à des modes de réalisation de l'invention, on utilise un procédé de cryptage mettant en oeuvre une opération de chevauchement. Ce procédé de cryptage peut consister à fournir séquentiellement des première à N-ème sources de défauts à des premier à N-ème 30 cycles d'un premier moteur matériel, respectivement, pour fournir un premier texte chiffré, à fournir séquentiellement les secondes à (N+1)-ème sources de défauts à des premier à N-ème cycles d'un second moteur matériel, respectivement, pour fournir un second texte 35 chiffré, et à comparer les premier et second textes chiffrés pour fournir le premier (ou le second) texte chiffré si les premier et second textes chiffrés sont identiques. Dans certains modes de réalisation, certains de N cycles de chacun des premier et second moteurs matériels 5 peuvent consister à diviser un bloc de texte clair en deux sous-blocs et à stocker un sous-bloc dans un registre de gauche, et l'autre dans un registre de droite, à exécuter une opération de cryptage en appliquant une fonction de chiffrage à des données stockées dans le registre de droite 10 et à une sous-clé, à appliquer une opération OU exclusif au résultat de la fonction de chiffrage et à la sortie du registre de gauche, à stocker le résultat de l'opération OU exclusif dans un registre de droite lors du cycle suivant, et à transférer des données stockées dans le registre de 15 droite vers un registre de gauche lors du cycle suivant. Ce cycle se répète N fois. Par conséquent, chacun des premier et second moteurs matériels effectue des premier à N-ème cycles d'une opération de cryptage. Conformément à des modes de réalisation de 20 l'invention, les premier et second moteurs matériels fonctionnent conformément à un algorithme de cryptage par bloc qui peut distinguer des cycles (par exemple un algorithme conforme à la norme de cryptage de données (DES)). Les première à (N+1)-ème sources de défauts peuvent 25 être des variations ambiantes (par exemple un choc thermique, un choc barométrique, de l'énergie radiofréquence (RF), un bombardement par des ions lourds, un rayonnement ultraviolet et de l'énergie laser). Ces variations ambiantes attaquent les premier et second 30 moteurs matériels de sorte que différents défauts sont générés dans les cycles de fonctionnement qui leur correspondent. Par conséquent, les premier et second moteurs matériels obtiennent des résultats d'opérations différents, ce qui empêche l'utilisation d'un texte chiffré 35 défectueux. Conformément à des modes de réalisation de l'invention, le procédé de cryptage consistant à mettre en oeuvre une opération de chevauchement consiste en outre à empêcher la fourniture de textes chiffrés si les premier et second textes chiffrés sont différents. Le texte clair est composé de 64 bits et le texte clair à 64 bits est divisé en deux sous-blocs de 32 bits. Conformément à des modes de réalisation de l'invention, celle-ci fournit un procédé de cryptage pour mettre en oeuvre une opération à horloge variable. Le procédé peut consister à fournir séquentiellement des 10 première à N-ème sources de défauts à des premier à N-ème cycles d'un premier moteur matériel, respectivement, en réponse à un premier signal d'horloge pour fournir un premier texte chiffré, à fournir séquentiellement les première à N-ème sources de défauts à des premier à N-ème 15 cycles d'un second moteur matériel, respectivement en réponse à un second signal d'horloge pour fournir un second texte chiffré, et à comparer les premier et second textes chiffrés et à fournir le premier (ou le second) texte chiffré si les premier et second textes chiffrés sont 20 identiques. Chacun des N cycles de chacun des premier et second moteurs matériels peut consister à diviser un bloc de texte clair en deux sous-blocs et à stocker un sous-bloc dans un registre de gauche et l'autre dans un registre de droite, à 25 exécuter une opération de cryptage en appliquant une fonction de chiffrage à des données stockées dans le registre de droite et à une sous-clé, à appliquer une opération OU exclusif au résultat de la fonction de chiffrage et à la sortie du registre de gauche, en stockant 30 le résultat de l'opération OU exclusif dans un registre de droite lors du cycle suivant, et en transférant des données stockées dans le registre de droite vers un registre de gauche lors du cycle suivant. Ce cycle se répète N fois. par conséquent, chacun des premier et second moteurs 35 matériels effectue des premier à N-ème cycles d'une opération de cryptage. Conformément à des modes de réalisation de l'invention, dans un procédé de cryptage mettant en oeuvre une opération à horloge variable, les opérations de cryptage des premier et second moteurs matériels peuvent 5 être réglés pour commencer en des points différents dans le temps, comme le procédé de cryptage mettant en oeuvre des opérations se chevauchant. Lors de la mise en oeuvre d'une opération à horloge variable, les vitesses des horloges de fonctionnement des premier et second moteurs matériels sont 10 différentes. Par conséquent, lorsqu'un attaquant applique une source de défaut aux premier et second moteurs matériels, un défaut correspondant est généré en des points de fonctionnement différents dans le temps pour les premier et second moteurs matériels, de sorte qu'ils obtiennent des 15 résultats d'opérations différents. La mise en oeuvre d'une opération à horloge variable peut consister à empêcher la fourniture de textes chiffrés si les premier et second textes chiffrés ne concordent pas. Le texte clair peut être composé de 64 bits et le texte clair à 64 bits peut être 20 divisé en deux sous-blocs de 32 bits. Conformément à des modes de réalisation de l'invention, un procédé de cryptage met en oeuvre simultanément une opération de chevauchement et une opération à horloge variable. Ce procédé peut consister à 25 fournir séquentiellement des première à N-ème sources de défauts à des premier à N-ème cycles d'un premier moteur matériel, respectivement en réponse à un premier signal d'horloge, pour fournir un premier texte chiffré, à fournir séquentiellement les seconde à (N+1)-ème sources de défauts 30 à des premier à N-ème cycles d'un second moteur matériel, respectivement en réponse à un second signal d'horloge pour fournir un second texte chiffré, à comparer les premier et second textes chiffrés et à fournir le premier (ou le second) texte chiffré si les premier et second textes 35 chiffrés sont identiques. Chacun des N cycles de chacun des premier et second moteurs matériels peut consister à diviser un bloc de texte clair en deux sous-blocs et à stocker un sous-bloc dans un registre de gauche et l'autre dans un registre de droite, à 5 exécuter une opération de cryptage en appliquant une fonction de chiffrage à des données stockées dans le registre de droite et à une sous-clé, à appliquer une opération OU exclusif au résultat de la fonction de chiffrage et à la sortie du registre de gauche, à stocker 10 le résultat de l'opération OU exclusif dans un registre de droite lors du cycle suivant, et à transférer les données stockées dans le registre de droite vers un registre de gauche lors du cycle suivant. Ce cycle se répète N fois et chacun des premier et second moteurs matériels peut 15 effectuer des premier à N-ème cycles d'opérations de cryptage. Dans un procédé de cryptage conforme à des modes de réalisation de l'invention, différentes sources de défauts sont fournies à des cycles correspondants d'opérations des 20 premier et second moteurs matériels et fonctionnent avec des fréquences d'horloge différentes. Par conséquent, il est vraisemblable que les premier et second textes chiffrés soient différents. Malgré cette possibilité, si les premier et second textes chiffrés sont identiques, le premier ou le 25 second texte chiffré est fourni, ce qui permet d'obtenir un algorithme de cryptage de grande stabilité. La figure 1 représente un schéma fonctionnel d'un appareil de cryptage mettant en oeuvre un algorithme DES. La figure 2 représente un schéma fonctionnel d'un 30 planificateur de clé qui génère la sous-clé Ki de la figure 1. La figure 3 est représente un schéma fonctionnel de l'architecture d'un noyau DES. La figure 4 illustre un exemple de moteur 35 cryptographique mettant en oeuvre une opération de chevauchement. La figure 5 illustre un exemple de moteur cryptographique mettant en oeuvre une opération à horloge variable. La présente invention est décrite en référence aux 5 dessins annexés qui illustrent certains modes de réalisation de l'invention. Ces modes de réalisation de l'invention sont proposés pour mieux faire ressortir l'invention. La figure 4 est un exemple d'illustration d'un moteur 10 cryptographique mettant en oeuvre une opération de chevauchement conforme à des modes de réalisation de l'invention. Le moteur cryptographique 400 peut comporter le premier moteur matériel 430 et le second moteur matériel 440, qui utilisent N modes d'opérations de chevauchement. 15 Dans le premier moteur matériel 430, des sources de défauts F1, F2, F3, ..., Fn-1 et Fn sont fournies à des cycles respectifs. Dans le second moteur matériel 440, des sources de défauts F2, F3, ..., Fn et Fn+l sont fournies à des cycles respectifs. Les sources de défauts F1, F2, F3, ... Fn-1, Fn et Fn+l peuvent être des variations ambiantes (par exemple un choc thermique, un choc barométrique, de l'énergie radiofréquence (RF), un bombardement par des ions lourds, un rayonnement ultraviolet, de l'énergie laser) qui attaquent individuellement les cycles pour générer des 25 défauts lors des cycles. Le bloc de texte clair à 64 bits 410 est fourni en entrée à chacun des premier et second moteurs matériels 430 et 440. Chacun des premier et second moteurs matériels 430 et 440 présente une structure semblable à celle de la 30 partie de transformation 120 de la figure 1. Chacun des premier et second moteurs matériels 430 et 440 divise le bloc de texte clair à 64 bits 410 en deux sous-blocs de 32 bits. Chacun des premier et second moteurs matériels 430 et 440 transfère un sous-bloc au registre Li de la figure 1 et 35 l'autre au registre Ri de la figure 1. Chacun des premier et second moteurs matériels 430 et 440 effectue un cryptage des données stockées dans le registre Ri et d'une sous-clé Ki en utilisant une fonction de chiffrage (f). Chacun des premier et second moteurs matériels 430 et 440 applique une opération OUX au résultat de la fonction de chiffrage (f) 5 et à la sortie du registre Li lors d'un i-ème cycle. Chacun des premier et second moteurs matériels 430 et 440 transfère le résultat de l'opération OUX à un registre Ri+, lors d'un (i+ 1)-ème cycle et la donnée stockée dans le registre R a un registre Li+l lors du (i+l)-ème cycle. 10 Cette opération d'un cycle se répète n fois. La première source de défauts F1 est présente pendant un premier cycle du premier moteur matériel 430. Les seconde à n-ème sources de défauts F2, F3, ..., Fn-1 et Fn sont respectivement présentes pendant les second à nème 15 cycles du premier moteur matériel 430. La seconde source de défaut F2 reçue par le second cycle du premier moteur matériel 430 est présente pendant un premier cycle du second moteur matériel 440. La troisième source de défaut F3 reçue par le troisième cycle du premier moteur matériel 20 430 este présente pendant un second cycle du second moteur matériel 440. La n-ème source de défaut Fn reçue par le nème cycle du premier moteur matériel 430 est présente pendant un (n-1)-ème cycle du second moteur matériel 440. La (n+l)-ème source de défaut est présente pendant un n-ème 25 cycle du second moteur matériel 440. Le bloc de texte clair à 64 bits 410 est crypté par le premier moteur matériel 430 et est fourni en sortie en tant que premier texte chiffré. Le bloc de texte clair à 64 bits 410 est également crypté par le second moteur matériel 440 et est fourni en tant que 30 second texte chiffré. Lors du premier cycle, le premier moteur matériel 430 reçoit le bloc de texte clair à 64 bits 410 et fournit une opération affectée par un premier défaut de cycle généré du fait de la première source de défauts Fl. Lors du second 35 cycle, le premier moteur matériel 430 reçoit le résultat de l'opération affecté par le premier défaut de cycle généré lors du premier cycle. Le second cycle fournit en sortie un résultat d'opération ayant pour base la sortie du premier cycle et affecté par un second défaut de cycle généré par la seconde source de défaut F2. Enfin, lors du n-ème cycle, 5 le premier moteur matériel 430 reçoit un résultat d'opération qui est affecté par un (n-1)-ème défaut de cycle généré lors du (n-1)-ème cycle. Lors du n-ème cycle, le premier moteur matériel 430 produit en sortie le premier texte chiffré affecté par un n-ème défaut de cycle généré 10 du fait de la n-ème source de défaut Fn, comme illustré à l'étape 435. Lors du premier cycle, le second moteur matériel 440 reçoit le bloc de texte clair à 64 bits 410 et fournit en sortie un résultat d'opération affecté par le second défaut 15 de cycle généré du fait de la seconde source de défauts F2. Lors du second cycle, le second moteur matériel 440 reçoit le résultat d'opération qui est affecté par le second défaut de cycle généré lors du premier cycle, et fournit un résultat d'opération qui est affecté par un troisième 20 défaut de cycle généré du fait de la troisième source de défaut F3. Lors du (n-1)-ème cycle, le second moteur matériel 440 reçoit un résultat d'opération qui est affecté par un (n-2)-ème défaut de cycle généré lors du (n-2)-ème cycle, et fournit en sortie un résultat d'opération qui est 25 affecté par le n-ème défaut de cycle généré du fait de la n-ème source de défaut Fn. Lors du n-ème cycle, le second moteur matériel 440 reçoit le résultat d'opération affecté par le n-ème défaut de cycle généré lors du (n-1)-ème cycle, et fournit en sortie en tant que second texte 30 chiffré un résultat d'opération affecté par le (n+l)-ème défaut de cycle généré du fait de la (n+1)-ème source de défaut Fn+1, comme illustré à l'étape 445. Lors de l'étape 450, les premier et second textes chiffrés sont comparés l'un à l'autre. Si les premier et 35 second textes chiffrés sont identiques, le texte chiffré identique est fourni, lors d'une étape 460. Si les premier et second textes chiffrés sont différents, aucun texte chiffré n'est fourni en sortie, lors d'une étape 470. Dans le moteur cryptographique 400, on s'attend à ce que les premier et second moteurs matériels 430 et 440 fournissent 5 des premier et second textes chiffrés qui sont identiques, en raison du fait que les algorithmes des premier et second moteurs matériels 430 et 440 sont identiques. Cependant, si des cycles correspondants des premier et second moteurs matériels 430 et 440 sont affectés par des sources de 10 défauts différentes parmi les sources F1, F2, ..., F(n-1), Fn et Fn+1, les sorties des premier et second moteurs matériels 430 et 440 sont différentes. Par conséquent, des cycles correspondants des premier et second moteurs matériels 430 et 440 contiennent des erreurs différentes, 15 ce qui augmente la probabilité de différences entre les résultats de leurs opérations. Par conséquent, si un dispositif de cryptage est attaqué par des sources de défauts, les premier et second textes chiffrés fournis en sortie par les premier et second moteurs matériels 430 et 20 440 doivent respectivement être différents. De même, si les premier et second textes chiffrés fournis en sortie par les premier et second moteurs matériels 430 et 440 sont identiques, cela signifie que le bloc de texte clair à 64 bits 410 a été correctement crypté sans avoir été affecté 25 par les sources de défauts F1, F2, ..., F(n-1), Fn et Fn+1. Dans certains modes de réalisation, des sources de défauts différentes parmi F1, F2, ..., F(n-1), Fn et Fn+l sont fournies à des cycles correspondants des premier et second moteurs matériels 430 et 440. Dans ce but, les 30 premier et second moteurs matériels 430 et 440 sont décalés dans le temps d'au moins un cycle. La figure 5 illustre un exemple de moteur cryptographique 500 conforme à des modes de réalisation de la présente invention et utilisant une opération à horloge 35 variable. Le moteur cryptographique 500 est différent du moteur cryptographique 400 de la figure 4 en ce sens que des cycles des premier et second moteurs matériels 530 et 540 ne sont pas décalés dans le temps. Cependant, la fréquence d'un premier signal d'horloge CLK1 pour le premier moteur matériel 530 est réglée de façon différente 5 de celle d'un second signal d'horloge CLK2 pour le second moteur matériel 540. A titre d'exemple, un bloc de texte clair à 64 bits 510 est fourni en entrée à chacun des premier et second moteurs matériels 530 et 540. Chacun des premier et second 10 moteurs matériels 530 et 540 divise le bloc de texte clair à 64 bits 510 en deux sous-blocs de 32 bits. Chacun des deux sous-blocs de 32 bits est soumis à un cycle de l'opération de la figure 3. Ce cycle se répète n fois. La première source de défauts F1 est fournie à un premier 15 cycle du premier moteur matériel 530. Les seconde à n-ème sources de défauts F2, F3, ..., Fn-1 et Fn sont respectivement fournies à des second à n-ème cycles du premier moteur matériel 530. La première source de défauts F1 fournie au premier cycle du premier moteur matériel 530 20 est également fournie à un premier cycle du second moteur matériel 540. La seconde source de défaut F2 fournie au second cycle du premier moteur matériel 530 est également fournie à un second cycle du second moteur matériel 540. La n-ème source de défaut Fn fournie au n-ème cycle du premier 25 moteur matériel 530 est également fournie à un n-ème cycle du second moteur matériel 540. Lors du premier cycle, le premier moteur matériel 530 reçoit le bloc de texte clair à 64 bits 510 en réponse au premier signal d'horloge CLK1 et fournit un résultat 30 d'opération affecté par un premier défaut de cycle dû à la première source de défaut Fl. Lors du second cycle, le premier moteur matériel 530 reçoit le résultat d'opération affecté par le premier défaut de cycle lors du premier cycle et fournit en sortie un résultatd'opération affecté 35 par un second défaut de cycle dû à la seconde source de défaut F2. Lors du n-ème cycle, le premier moteur matériel 530 reçoit un résultat d'opération affecté par un (n-1)-ème défaut de cycle généré lors du (n-1)-ème cycle. Le n-ème cycle fournit le premier texte chiffré en tant que résultat d'opération affecté par un n-ème défaut de cycle généré du 5 fait de la n-ème source de défaut Fn, comme illustré à l'étape 535. Lors du premier cycle, le second moteur matériel 540 reçoit le bloc de texte clair à 64 bits 510 en réponse au second signal d'horloge CLK2 et fournit un résultat 10 d'opération affecté par le premier défaut de cycle dû à la première source de défaut Fl. Lors du second cycle, le second moteur matériel 540 reçoit le résultat d'opération affecté par le premier défaut de cycle lors du premier cycle et fournit un résultat d'opération affecté par un 15 second défaut de cycle dû à la seconde source de défaut F2. Lors du n-ème cycle, le second moteur matériel 540 reçoit le résultat d'opération affecté par le (n-1)-ème défaut de cycle généré lors du (n-1)ème cycle et fournit en sortie un second texte chiffré en tant que résultat d'opération 20 affecté par un n-ème défaut de cycle généré du fait de la n-ème source de défaut Fn, comme illustré à l'étape 545. Lors de l'étape 550, les premier et second textes chiffrés sont comparés l'un à l'autre. Si les premier et second textes chiffrés sont identiques, le texte chiffré 25 identique est fourni en sortie, lors d'une étape 560. Si les premier et second textes chiffrés sont différents, aucun texte chiffré n'est fourni en sortie, lors d'une étape 570. Dans le moteur cryptographique 500, on s'attend à ce que les premier et second moteurs matériels 530 et 540 30 fournissent en sortie des premier et second textes chiffrés qui sont identiques, en raison du fait que les algorithmes des premier et second moteurs matériels 530 et 540 sont identiques. Cependant, les premier et second moteurs matériels 530 et 540 commencent leurs opérations en des 35 points différents dans le temps, en raison du fait que les premier et second signaux d'horloge CLK1 et CLK2 ont des fréquences d'horloge différentes. Par conséquent, les premier et second moteurs matériels 530 et 540 exécutent des cycles différents dans la même zone temporelle, et malgré le fait qu'un défaut identique soit fourni en même 5 temps, celui-ci affecte des stades d'opérations différents des premier et second moteurs matériels 530 et 540. De ce fait, les premier et second moteurs matériels 530 et 540 fournissent des résultats d'opérations différents. Néanmoins, si les premier et second textes chiffrés 10 fournis par les premier et second moteurs matériel 530 et 540 sont identiques, cela indique que le bloc de texte clair à 64 bits 510 a été crypté de façon stable avec une certaine immunité contre les sources de défauts F1, F2, ..., F(n-1), Fn et Fn+l. Par conséquent, si les premier et 15 second textes chiffrés sont identiques, le moteur cryptographique 500 fournit en sortie le premier (ou le second) texte chiffré et termine le cryptage. Bien que la présente invention ait été illustrée et décrite plus particulièrement en référence à des exemples 20 des modes de réalisation de celle-ci, les spécialistes de la technique noteront que diverses modifications de la forme et des détails peuvent lui être apportées sans qu'ils s'écartent du cadre de l'invention tel qu'il est défini par les revendications annexées. REVENDICATIONS 1. Procédé caractérisé en ce qu'il comprend: le cryptage de premières données (410, 510) avec un algorithme de cryptage dans un premier circuit (430, 530) pour fournir des premières données cryptées; et le cryptage des premières données (410, 510) avec l'algorithme de cryptage dans un second circuit (440, 540) pour fournir en sortie des secondes données cryptées; la comparaison des premières données cryptées (410, 10 510) et des secondes données cryptées dans un troisième circuit; et la fourniture des premières données cryptées ou des secondes données cryptées provenant du troisième circuit seulement si les premières données cryptées et les secondes 15 données cryptées sont identiques. 2. Procédé selon la revendication 1, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540). 3. Procédé selon la revendication 2, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540), de sorte que des sources de défauts (F1, F2, ..., Fn, Fn+l) appliquées 25 au premier circuit et au second circuit affectent différemment l'algorithme de cryptage et que seules des données cryptées qui ne sont pas affectées par les sources de défauts (F1, F2, ..., Fn, Fn+1) sont fournies en sortie par le troisième circuit. 4. Procédé selon la revendication 3, caractérisé en ce que les sources de défauts (F1, F2, ..., Fn, Fn+l) sont au moins l'une des suivantes: des variations ambiantes; un choc thermique; un choc barométrique; de l'énergie radiofréquence; un bombardement par des ions lourds; un rayonnement ultraviolet; et de l'énergie laser. 5. Procédé selon la revendication 2, caractérisé en 5 ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540) en raison du fait que le cryptage effectué dans le second circuit est retardé dans le temps par rapport au cryptage effectué dans 10 le premier circuit. 6. Procédé selon la revendication 2, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540) en raison du 15 fait que le cryptage effectué dans le premier circuit est effectué à une fréquence différente du cryptage effectué dans le second circuit. 7. Procédé selon la revendication 2, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 20 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540) en raison du fait que: le cryptage effectué dans le second circuit est retardé dans le temps par rapport au cryptage effectué dans 25 le premier circuit; et le cryptage effectué dans le premier circuit est effectué à une fréquence différente du cryptage effectué dans le second circuit. 8. Procédé selon la revendication 1, caractérisé en 30 ce que: le premier bloc de données est un bloc de texte clair (410, 510) ; le premier circuit est un premier moteur matériel (430, 530) ; et le second circuit est un second moteur matériel (440, 540) ; l'algorithme de cryptage comprend N cycles, chacun des N cycles de chacun des premier et second moteurs matériels (430, 530, 440, 540) comprenant: le fait de diviser le bloc de texte clair en deux 5 sous- blocs et de stocker un sous-bloc dans un registre de gauche (Li) et l'autre dans un registre de droite (Ri) ; l'exécution d'une opération de cryptage par application d'une fonction de chiffrage (f) à des données stockées dans le registre de droite (Ri) et à une sous-clé 10 (Ki) ; et l'application d'une opération OU exclusif au résultat de la fonction de chiffrage (f) et à la sortie du registre de gauche (Li), le stockage du résultat de l'opération OU exclusif dans un registre de droite (Ri) lors du cycle 15 suivant, et le transfert de données stockées dans le registre de droite (Ri) vers un registre de gauche (Li+1) lors du cycle suivant, ce cycle se répétant N fois et chacun des premier et second moteurs matériels (430, 530, 440, 540) effectuant des premier à N-ème cycles de 20 l'algorithme de cryptage. 9. Procédé selon la revendication 8, caractérisé en ce que les deux sousblocs sont à 32 bits. 10. Procédé selon la revendication 8, caractérisé en ce que les N cycles sont constitués de 16 cycles. 11. Procédé selon la revendication 1, caractérisé en ce que l'algorithme de cryptage est un algorithme conforme à la norme de cryptage de données (DES). 12. Procédé selon la revendication 1, caractérisé en ce que les premières données (410, 510) comprennent 64 30 bits. 13. Appareil (400, 500), caractérisé en ce qu'il comprend: un premier circuit (430, 530) qui crypte des premières données (410, 510) avec un algorithme de cryptage 35 pour fournir des premières données cryptées; et un second circuit (440, 540) qui crypte les premières données (410, 510) avec l'algorithme de cryptage pour fournir des secondes données cryptées; et un troisième circuit qui: compare les premières données cryptées (410, 510) et les secondes données cryptées; et ne fournit les premières données cryptées (410, 510) ou les secondes données cryptées provenant du troisième circuit, que si les premières données cryptées et les 10 secondes données cryptées sont identiques. 14. Appareil (400, 500) selon la revendication 13, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540). 15. Appareil selon la revendication 14, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540), de sorte que des sources de défauts (F1, F2, ..., F, Fn+l) appliquées au 20 premier circuit (430, 530} et au second circuit (430, 530) affectent différemment l'algorithme de cryptage, seules des données cryptées qui ne sont pas affectées par les sources de défauts (F1, F2, ..., Fn, Fn+l) étant fournies en sortie par le troisième circuit. 16. Appareil (400, 500) selon la revendication 15, caractérisé en ce que la source de défauts (F1, F2, Fn, Fn+1) est constituée par au moins l'une des suivantes: des variations ambiantes; un choc thermique; un choc barométrique; de l'énergie radiofréquence; un bombardement par des ions lourds; un rayonnement ultraviolet; et de l'énergie laser. 17. Appareil selon la revendication 14, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540) en raison du fait que le cryptage effectué dans le second circuit (440, 540) est retardé dans le temps par rapport au cryptage effectué dans le premier circuit (430, 530). 18. Appareil (400, 500) selon la revendication 14, caractérisé en ce que le cryptage effectué dans le premier circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540) du fait 10 que le cryptage effectué dans le premier circuit est effectué à une fréquence différente du cryptage effectué dans le second circuit. 19. Appareil (400, 500) selon la revendication 14, caractérisé en ce que le cryptage effectué dans le premier 15 circuit (430, 530) est biaisé dans le temps par rapport au cryptage effectué dans le second circuit (440, 540) en raison du fait que: le cryptage effectué dans le second circuit (440, 540) est retardé dans le temps par rapport au cryptage 20 effectué dans le premier circuit (430, 530) ; et le cryptage effectué dans le premier circuit (430, 530) est effectué à une fréquence différente du cryptage effectué dans le second circuit (440, 540). 20. Appareil (400, 500) selon la revendication 13, 25 caractérisé en ce que l'algorithme de cryptage est un algorithme normalisé de cryptage de données (DES).