Brevet FR2800537A1 — publié le 20010504

La présente invention concerne de manière générale une technologie d'échange d'informations et, plus spécifiquement, à un procédé et à un système de transfert dl code secret ou des informations secrètes entre deux modules matériels. Le processus du transfert est appelé émulation de code secret. Ces deux modules matériels ont la capacité de communiquer secrètement entre eux en utilisant le code secret initial et le code secret émule connus d'eux seuls. La distribution de clé est un élément important et fondamental dans les systèmes cryptographiques modernes. Le rôle de la distribution de clé est de distribuer des informations utiles de chiffrement/déchiffrement (ou clés de chiffrement/déchiffrement) à des systèmes hôtes de communication pour qu'ils communiquent entre eux et pour empêcher des hôtes ou des personnes non-autorisés d'intercepter les informations relatives aux clés et ainsi de procéder à des écoutes électroniques données de communication ou de contrefaire des certificats. Les systèmes cryptographiques modernes peuvent être classés en deux catégories, l'une étant dénommée système a clé secrète ou symétrique, et l'autre étant dénommée système à clé publique ou asymétrique. La mise en #uvre de la distribution de clés pour ces deux types de systèmes cryptographiques est respectivement décrite comme suit en référence aux dessins correspondants. La figure 1 (technique antérieure) est un schéma de principe d'un système symétrique classique, tel que le système DES (Data Encryption Standard/Norme de chiffrement des données), qui illustre le schéma de distribution de clés. Dans le système symétrique, l'expéditeur (source de données) et le récepteur (destination des données) utilisent la même clé, CLEc, pour chiffrer/déchiffrer les données privées. Sur la f igure 1 le système hâte de communication 1 agit en tant qu'expéditeur et le système hâte de communication 2 agit en tant récepteur. Le système hôte de communication 1 comporte le chiffre 3 qui utilise la CLEc pour chiffrer un texte en clair 10 en un cryptogramme 20. Le cryptogramme 20 peut être distribué sur des réseaux publics, tels que les réseaux locaux (LAN) ou Internet en définissant le système hôte de communication 2 comme hôte de destination. En outre, le système hôte de communication 2 comporte le chiffre 4. Après la réception totale du cryptogramme 20, le chiffre 4 utilise la même clé CLEc pour déchiffrer cryptogramme 20 et obtenir le texte récupéré 12. Dans le système cryptographique symétrique, il est supposé que la clé commune CLEc partagée par les deux extrémités est distribuée d'une façon privée et sûre et ne peut pas être interceptée pendant processus de distribution. En réalité, cependant, il est difficile de trouver un moyen de transmission qui puisse entièrement satisfaire ces exigences de sécurité. Cela révélé aussi la capacité qu'ont les pirates de pénétrer de tels systèmes cryptographiques en volant la clé de chiffrement du support de transmission qui 'est alors plus fiable. La figure 2 (technique antérieure) est un schéma de principe du système cryptographique asymétrique classique, tel que le système RSA. Contrairement aux systèmes cryptographiques symétriques, les systèmes cryptographiques asymétriques utilisent différentes clés publiques clés privées respectivement pour le chiffrement et le déchiffrement. Tels que représentés sur la figure 2, les systèmes hâtes de communication 1 et 2 utilisent les chiffres (5, 6) et (7, 8) pour mettre en #uvre les processus pratiques de chiffrement/déchiffrement des données, qui sont identiques ceux des systèmes cryptographiques symétriques. Cependant chaque système hâte de communication dispose de sa propre paire clés privée/publique. La clé privée et la publique des systèmes hôtes de communication 1 sont respectivement indiquées par CLEApri ET CLEApub et celles des systèmes hâtes de communication 2 sont respectivement indiquées par CLEBpri et CLEBpub. Il est à noter que clés privées sont confidentiellement contenues dans leurs systèmes hôtes de communication, mais que les clés publiques doivent etre communiquées au public. Dans le cas présente sur la figure 2, la clé publique CLEApub du système hâte de communication 1 est acquise par le système hâte de communication 2 et la clé publique CLEBpub du système hôte de communication 2 est également acquise par le système hôte de communication 1. Des exemples de transmission de données sont maintenant illustrés. Supposons qu'un système hôte de communication 1 soit prêt à transmettre un document au système hâte de communication 2 d'une façon s-ûre. La première étape consiste en ce le chiffre 5 utilise la clé publique CLEBpub du système hôte de communication 2 pour chiffrer ce document. Après le chiffrement, le document chiffré est transmis depuis le système hôte de communication 1 vers le système hôte de communication 2 via le réseau d'interconnexion. Etant donné que le système hôte de communication 2 détient la clé privée CLEBpri formant une paire avec la clé publique CLEBpub appliquée pour chiffrer le présent document, document chiffré peut être déchiffré par le chiffre 6 utilisant la clé privée CLEBpri. De la même manière, le système hôte de communication 2 peut utiliser la clé publique CLEApub du système hôte de communication 1 pour déchiffrer les données secrètes et le système hôte de communication 1 peut utiliser sa clé privée CLEApri pour déchiffrer les données secrètes. Il est à noter que la distribution clés peut être facilement effectuée en diffusant clés privées au public. Le principe de sécurité de base des systèmes cryptographiques asymétriques est que la communication des clés publiques ne provoque pas de défaut de protection du système cryptographique. Tels que décrits ci-dessus, le système cryptographique symétrique et le système cryptographique asymétrique classiques adoptent des approches différentes pour gérer la distribution de clés. Dans le système symétrique, les informations liées à la clé doivent rester confidentielles et être échangées au moyen d'un support de transmission sécurisé. Cependant, en réalité, il est presque impossible de garantir le caractère privé du processus d'échange de clé. Par conséquent, en ce qui concerne la distribution de clé, il existe un problème de sécurité dans le système cryptographique symétrique classique. Par ailleurs, la distribution clé peut être effectuée en communicant librement clés publiques dans les systèmes cryptographiques asymétriques classiques. En d'autres termes, l'échange de clé peut être directement effectué. Par conséquent, distribution de clé du système cryptographique asymétrique peut être plus facilement accomplie que celle du système cryptographique symétrique. En outre, plupart des systèmes cryptographiques classiques utilisent les algorithmes cryptographiques basés sur les mathématiques pour chiffrer les données, en particulier dans les systèmes cryptographiques asymétriques. Par exemple, le système cryptographique RSA est conçu sur la base de la factorisation des nombres premiers. Par conséquent, les mises en ceuvre les plus courantes de tels systèmes cryptographiques sont écrites avec des logiciels. Dans le cas présenté sur la figure 2, les chiffres 5 et 6 représentent habituellement des progiciels sont conçus pour traiter les algorithmes cryptographiques requis et qui sont exécutés respectivement dans les systèmes hôtes 1 et 2. Les clés nécessaires, y compris les CLEApub, CLEApri, CLEBpub CLEBpri, sont fournies par les utilisateurs ou sont automatiquement générées par des logiciel générant des clés. Parfois, les chiffres peuvent être mis en #uvre par du matériel pour accélérer le traitement. Peu importe la façon dont systèmes cryptographiques classiques sont mis en #uvre, les principes essentiels des clés restent inchangés, c'est-à-dire que la détermination de ces clés dépend considérablement des algorithmes cryptographiques et les clés sont accessibles aux utilisateurs. Selon la description ci-dessus, les algorithmes cryptographiques des systèmes cryptographiques classiques sont connus, mais les clés de déchiffrement sont inconnues. Par conséquent, la performance de sécurité d'un système cryptographique implique deux principes : la garantie que personne ne peut déchiffrer les données chiffrées basées sur les algorithmes cryptographiques connus et les clés publiques et le fait de dissimuler soigneusement la clé privée dans le système cryptographique à clé publique et la clé secrète dans le système cryptographique ' clé secrète. Les utilisateurs peuvent aisément utiliser leurs clés dans tout système supportant les mêmes algorithmes cryptographiques. Toutefois, cette caractéristique fournit aussi un accès aux pirates qui leur permet atteindre les informations dissimulées. Une meilleure solution à ce problème est le noyage de ces clés dans le matériel et la restriction des chemins d'accès à ces clés, bloquant ainsi l'accès illégal aux clés. Cependant l'incorporation des clés dans le matériel pose aussi un problème concernant le partage des informations comportant des clés entre deux modules matériels disposant de caractéristique. La présente invention traite des problèmes d'échange de clé dans une telle situation. Par conséquent, l'un des objectifs de la présente invention est de fournir un système et un procédé d'emulation d'un code secret qui peut être une clé réelle ou clé ancêtre, entre deux modules matériels indépendants mais couplés. L'émulation de code secret signifie un processus selon lequel un système hôte de communication copie code secret dissimulé dans un autre système de communication hâte. En outre, code secret est encore tenu secret pendant et après le processus d'émulation. La présente invention atteint les objectifs susmentionnés en fournissant un système comportant un premier module matériel et un deuxième module matériel pour communiquer entre eux, système dans lequel le premier module matériel possède un code secret inaccessible de l'extérieur le deuxième module matériel peut émuler le code secret. Le premier module matériel comprend un dispositif de stockage d'un échantillon d'essai et un dispositif de transformation du code secret en un code secret transformé selon un schéma de transformation sélectionné au hasard à partir d'un lot de schémas de transformation possibles. Ensuite, code secret transformé peut être transféré du premier module matériel vers le deuxième module matériel. Le deuxième module matériel comprend un circuit logique de récupération pour restaurer le code secret transformé afin d'obtenir des codes secrets hypothétiques en essayant le lot de schémas de transformation possibles de manière récursive et un codeur pour coder l'échantillon d'essai dans un échantillon essai codé en utilisant chaque code secret hypothétique. Chaque échantillon d'essai codé est envoyé au premier module matériel. Le premier module matériel comprend en outre un decodeur de décodage de l'échantillon d'essai codé reçu du deuxième module matériel en un échantillon temporaire en utilisant le code secret réel et un comparateur pour comparer l'échantillon temporaire avec l'échantillon essai stocké dans le dispositif de stockage et informer le deuxième module matériel du résultat de la comparaison. Quand le résultat de la comparaison démontre que 1 échantillon temporaire et le code secret sont en adéquation, le circuit logique de récupération slarrete et le code secret hypothétique en cours équivaut code secret. A cet effet, et selon un premier aspect, l'invention propose système d'émulation d'un code secret entre deux différents modules matériels, comprenant un premier module matériel présentant moyen de stockage du code secret qui est inaccessible à l'extérieur du premier module matériel ; un moyen de maintien d'un échantillon d'essai moyen de transformation du code secret en un code secret transformé selon un schéma de transformation sélectionné aléatoirement à partir d'un lot de schémas de transformation d'envoi du code secret transformé au deuxième module matériel ; un moyen de décodage et de codage d'un échantillon d'essai reçu du deuxième module matériel en échantillon temporaire en utilisant le code secret ; et un moyen de comparaison de l'échantillon temporaire avec l'échantillon d'essai stocké dans le moyen maintien et d'information du deuxième module matériel dl résultat de comparaison ; et un deuxième module matériel, couplé au premier module matériel, présentant : un moyen restauration du code secret transformé reçu du premier module matériel pour obtenir des codes secrets hypothétiques en essayant de manière récursive le lot de schémas transformation et en déterminant code parmi les codes secrets hypothétiques pour obtenir un code secret émulé équivalent au code secret quand le résultat de la comparaison reçu du premier module matériel montre que l'échantillon temporaire afférent au code secret hypothétique déterminé et l'échantillon d'essai sont mis en correspondance ; et un moyen de codage de l'échantillon d'essai dans l'échantillon d'essai codé en utilisant chaque code secret hypothétique et d'envoi de l'échantillon d'essai codé au premier module matériel. En variante, l'échantillon d'essai utilisé dans le moyen de codage provient du moyen de maintien du premier module matériel. Selon une réalisation, le moyen de transformation comprend un moyen pour choisir aléatoirement un schéma parmi le schémas de transformation ; moyen pour effectuer une opération de transformation respectant le schéma de transformation choisi sur les bits code secret pour produire le code secret transformé ; moyen pour envoyer le code secret transformé au deuxième module matériel. Selon une réalisation, le moyen de rétablissement comprend un moyen de sélection d'un schéma parmi le lot de schémas de transformation ; un moyen d'inversion des effets du schéma de transformation sélectionné sur les bits du code secret transformé pour produire le code secret hypothétique ; et un moyen de détermination du code secret émulé à partir codes secrets émulés à partir des codes secrets hypothétiques selon le résultat de la comparaison. Selon trois réalisations distinctes, l'un des schémas transformation peut impliquer soit la rotation des bits du code secret sur une longueur fixe de bits soit permutation de deux bits contenus dans le code secret soit l'inversion de l'ordre des bits du code secret. En outre, la présente invention fournit également un procédé d'émulation réalisée dans un tel système. D'abord, le code secret initialement stocké dans le premier module matériel est transformé en un code secret transformé selon un schéma de transformation sélectionné au hasard à partir du lot predéfini de schémas de transformation possibles. Ensuite, le code secret transformé peut être transféré du premier module matériel au deuxième module matériel. Il est impossible d'acquérir directement le code secret réel à partir du code secret transformé à moins que quelqu'un puisse prédire lequel des schémas de transformation possibles sera sélectionné. Ensuite, deuxième module matériel peut deviner de manière récursive un code secret hypothétique à partir du code secret transformé en en sélectionnant un parmi les schémas de transformation et en inversant l'effet du schéma sélectionné niveau du code secret transformé jusqu'à ce qu'un résultat comparatif de correspondance soit reçu. Le résultat comparatif de correspondance est vérifié et fourni par le premier module matériel. Le deuxième module matériel utilise le code secret hypothétique en cours pour coder un échantillon d'essai dans un échantillon d'essai codé et envoyer l'échantillon d'essai codé au premier module matériel pour vérification. Ainsi, le premier module matériel utilise le code secret réel pour décoder l'échantillon d'essai codé dans un échantillon temporaire et le comparer avec l'échantillon d'essai initial. S'ils sont mis en adéquation, cela signifie que le code secret hypothétique en cours est correct. Par conséquent, le premier module matériel peut informer le deuxième module matériel du résultat de la comparaison. Ensuite, le code secret est transféré avec succès du premier module matériel au deuxième module matériel. A cet effet, et selon un deuxième aspect, l'invention propose un procédé d'émulation d'un code secret entre un premier module matériel et un deuxième module matériel, le code secret étant initialement stocké dans premier module matériel et étant inaccessible à l'extérieur du premier module matériel, le procédé comprenant les étapes suivantes : (a) la transformation du code secret en code secret transformé selon un schéma de transformation sélectionné aléatoirement à partir d'un lot de schémas de transformation dans le premier module matériel ; (b) l'envoi du code secret transformé du premier module matériel vers le deuxième module matériel ; (c) la recupération du code secret transformé pour obtenir un code secret hypothétique en sélectionnant de manière séquentielle l'un des schémas de transformation et en inversant l'effet du schéma de transformation sélectionné sur le code secret transformé dans le deuxième module matériel - (d) le codage d'un échantillon d'essai un échantillon d'essai codé en utilisant le code secret dans le deuxième module matériel ; (e) l'envoi de l'échantillon d'essai codé du deuxième module matériel au premier module matériel - (f) le décodage de l'échantillon d'essai codé en un échantillon temporaire en utilisant le code secret dans le premier module matériel ; (g) la comparaison de l'échantillon temporaire avec l'échantillon d'essai dans le premier module matériel ; (h) l'envoi d'un résultat de correspondance de comparaison du premier module matériel vers le deuxième module matériel quand llechantillon temporaire et l'échantillon d'essai sont mis en correspondance, pour indiquer que le code secret hypothétique appartenant à l'échantillon temporaire cours est un code secret émulé équivalent au code secret et (i) le retour à l'étape c quand l'échantillon temporaire et l'échantillon d'essai ne sont pas mis en correspondance. Le proce peut comprendre en outre : - une étape d'envoi de l'échantillon d'essai du premier module matériel vers le deuxième module matériel ; - une étape d'envoi de l'échantillon d'essai du deuxième module matériel vers le premier module matériel. Le code secret dans le premier module matériel peut être généré par un générateur de numéro aléatoire. L'un des schémas de transformation peut impliquer - la rotation des bits du code secret sur une longueur fixe de bits ; ou - la permutation des bits contenus dans le code secret ; ou - l'inversion de l'ordre des bits du code secret. La description détaillée suivante, donnée à titre d'exemple et non-destinée à limiter l'invention modes de réalisation décrits ici, sera plus compréhensible avec les dessins correspondants dans lesquels : la figure 1 (technique antérieure) est un schéma de principe du système cryptographique à clé secrète classique illustrant le schéma de distribution à clé de celui-ci ; la figure 2 (technique antérieure) est un schéma de principe du système cryptographique à clé publique classique illustrant le schéma de distribution à clé de celui-ci ; la figure 3 illustre un schéma de principe d'un système cryptographique dans lequel les codes secrets sont incorporés dans les modules matériels selon la présente invention - la figure 4 illustre le schéma fonctionnel détaillé du système cryptographique impliquant deux modules matériels pour illustrer le schéma de distribution de clé selon la présente invention ; la figure 5 représente quelques exemples des schémas de transformation possibles utilisés dans le mode de réalisation de la présente invention ; et la figure est un organigramme du processus de distribution de code secret appliqué dans le système cryptographique dans lequel les codes secrets sont incorporés dans les modules matériels selon la présente invention. La figure illustre un schéma fonctionnel d'un système cryptographique de la présente invention comprenant modules matériels contenant des codes secrets. Plus spécifiquement, le code secret de chaque module matériel peut être utilisé comme clé pour le codage/décodage matériel ou peut être utilisé pour trouver une clé réelle pour codage/décodage matériel. Les modules matériels 100 et 200 se situent indépendamment dans différents systèmes hôtes de communication devant communiquer entre eux. Dans cet exemple, le système hôte contenant le module matériel 100 joue le rôle d'expéditeur et doit transmettre des données clair 300 vers le module matériel 200 contenant un système hôte. Tel que représenté sur la f igure 3, le module matériel 1 comporte générateur de numéro aléatoire 104 qui est utilisé pour produire en interne un code secret incorporé CS du module matériel 100. Le code secret CS peut être dissimulé manière sécurisée dans le module matériel 100 et n'est pas accessible à partir de l'extérieur étant donné qu'il n'existe pas de chemin d'accès physique au code secret CS dans le module matériel 100. En réalité, le code secret CS ne pourrait pas être établi seulement par le générateur de numéro aléatoire 104, mais aussi par d'autres schémas. Par exemple le code secret CS peut consister en une partie des données générées par le générateur de numéro aléatoire 104 et une partie des données définies par les utilisateurs. Il est à noter que le code secret CS dans un tel cas est encore gardé secret étant donné que personne ne peut acquérir les informations complètes du code secret CS, notamment la partie générée par le générateur de numéro aléatoire 104. De manière générale, le code secret généré CS devrait être maintenu dans un dispositif de mémoire incorporé dans le module matériel 100. En outre, le module matériel 100 comprend aussi la logique de codage 102 pour coder de manière pratique le texte en clair 300. La logique de codage 102 peut utiliser directement le code secret CS comme clé de codage ou déduire une clé de codage réelle ' partir du code secret CS qui a été décrit ci-dessus. Peu importe la façon de générer la clé de codage, la logique de codage 102 peut coder le texte en clair 300 pour obtenir un texte codé 300e en utilisant le code secret CS. Tel que représenté sur la figure 3, le module matériel 200 servant de récepteur posse une logique de décodage 202 pour décoder de façon pratique le texte codé 300 reçu du module matériel 100 et un support de stockage pour conserver le code secret émulé CST équivalent au code secret CS caché dans le module matériel Si le module matériel 200 détient réellement un code secret éMUlé CST qui est équivalent au code secret CS, le texte chiffré 300e peut être correctement décodé dans un texte décodé 300 par la logique de décodage 202 utilisant un code secret CST. Le seul problème qui se présente maintenant est comment transférer confidentiellement un code secret CS depuis le module matériel 100 vers le module matériel 200. La discussion suivante sera concentrée sur ce problème. La figure 4 est un schéma fonctionnel détaillé du système cryptographique pour demontrer le processus du module matériel 200 émulant un code secret CS à partir du module matériel 100. Tel que representé sur la figure 4, le module matériel 100 comprend logique de décodage 106, un dispositif de stockage pour stocker un code secret CS, un dispositif de stockage pour stocker un échantillon d'essai 120, une logique de diversification 110, un processeur de code 112 et un comparateur 140. Par ailleurs, le module matériel 200 comprend une logique de diversification 210, un processeur de code 212 et une logique de codage 206. Le processus d'émulation de code secret est brièvement décrit comme suit. Tel que décrit ci-dessus, le code secret dissimulé à l'intérieur du module matériel 100 ne peut pas être directement accessible étant donné qu'il n'existe pas de chemin d'accès physique au dispositif de stockage pour stocker le code secret. Dans le présent mode de realisation, le code secret CS doit être transformé selon schéma de transformation sélectionné aléatoirement à partir d'un lot de schémas de transformation possibles qui sont définis à ,avance pour les modules matériels 100 et 200. problème concernant ces schémas de transformation possibles sera décrit plus loin. Ci-après, le code secret SC transformé est appelé le code secret transformé et sera transfére au module matériel 200. Après avoir reçu correctement le code secret transformé, le module matériel 200 peut deviner un schéma appartenant au lot de schémas de transformation à l'avance générer un code secret hypothétique à partir du code secret transformé en inversant l'effet de transformation du schéma deviné. En outre, le module matériel 200 peut utiliser le code secret hypothétique généré pour coder un échantillon d'essai connu des deux côtés et envoyer l'échantillon d'essai codé au module matériel 100 pour vérification. Ensuite, le module matériel 100 peut utiliser le code secret réel CS pour décoder l'échantillon d'essai codé reçu du module matériel 200 et vérifier si le résultat décodage est égal à l'échantillon d'essai initial. En fait, généralement, le module matériel 200 ne peut pas bien deviner en quelques tentatives seulement. Par conséquent, un tel processus de devinette et de vérification continue . usqu'à ce que le module matériel 200 trouve le schéma. Dans la description ci-dessus, le problème concernant les schémas de transformation possibles doit être traité plus loin. Telles que décrits ci-dessus, ces schémas de transformation déterminés à l'avance sont conçus pour brouiller le code secret réel en dissimulant des informations importantes relatives au code secret réel pendant le processus d'émulation. Manifestement, le nombre de tous les schémas de transformation possibles peut déterminer la complexité du processus de devinette et de vérification Autrement dit, tandis que le nombre de schemas de transformation possibles augmente, le procédé de devinette de vérification demande plus de temps pour émuler avec succès le code secret en moyenne. En outre, la détermination ou non des schémas de transformation possibles peut aussi influer sur l'application du procédé de devinette et de vérification. Il est clair que le processus d'émulation est tout à fait sûr si les informations sur les schémas de transformation sont complètement dissimulées à l'intérieur des modules matériels. Par exemple, supposons que la longueur binaire du code secret soit 64 et le nombre des schémas de transformation possibles soit seulement de 4. Bien qu'il n'existe que quatre schémas de transformation appliqués dans ce cas, l'espace total de combinaison du code secret, selon n'importe quel code secret transformé, est toujours de 2 64 . En d'autres termes le processus émulation peut être traité secrètement, y compris dans un réseau public. Par ailleurs, si les informations sur les schémas de transformation sont connues, le processus d'émulation doit impliquer un grand nombre de schémas de transformation possibles ou doit être executé dans une connexion privée pour garantir la confidentialité du code secret. En outre, il est à noter que les utilisateurs peuvent seulement activer le processus d'émulation mais ne peuvent pas changer la procédure du processus d'émulation. Le processus d'émulation complet n'est commandé que les deux modules matériels anticipants. La figure 5 représente quelques exemples de schémas de transformation qui peuvent être utilisés dans ce mode de réalisation. Dans ces exemples, supposons que le code secret initial contient 64 bits identifiés par séquence par BO, Bl, B2 ... B62 et É63. Le premier exemple implique une opération de rotation binaire qui effectue une rotation des bits du code secret de n bits (n est nombre entier positif) dans une direction rotative spécifique. Tel que représenté sur la figure 5, le résultat de l'opération de rotation binaire (rotation à gauche de n bits) comprend un bit initial B,, et un bit final B,,-,. Le deuxième exemple implique une opération de permutation binaire qui permute l'ordre des bits impairs (BO, B2, ... ) et les bits pairs adjacents (Bl, B3, ... ). Cette opération de permutation binaire, telle que représentée sur la figure 5, permet à ces paires de bits (BO, Bl), (B2, B3) ... (B62, B63) de changer l'ordre de leurs bits. Le troisième exemple implique une operation d'inversion d'ordre qui permet d'inverser l'ordre normal des bits contenus dans le code secret. La figure 5 illustre le résultat de l'inversion des 64 bits du code secret. En réalité, ces opérations peuvent être fusionnées modifiées pour acquérir une variété de schémas de transformation. De manière générale, le nombre de schémas de transformation déterminé à l'avance est proportionnel au niveau de sécurité du processus d'émulation. Revenons à la figure 4, dans le module matériel 100, la logique de diversification 0 et le processeur de code 112 sont utilisés pour transformer le code secret initial CS. La logique de diversification 110 est chargée de faire un choix aléatoire parmi le lot complet de tous les schémas de transformation possibles dans chaque processus d'emulation et utilise ainsi le schéma choisi pour commander le fonctionnement du processeur de code 112. Le processeur de code 112 est utilisé pour effectuer une opération de transformation au niveau des bits du code secret sous la commande de la logique de diversification 110, générant ainsi le code secret transformé 114. Ensuite, le code secret transformé 114 et l'échantillon d'essai 120 sont condensés en un paquet de communications Cl et transférés du module matériel 100 vers le module matériel 200. Il est à noter que l'opération de la logique de diversification 110 est commandée manuellement. Dans le module matériel 200, la logique de récupération 210 le processeur de code 212 sont utilisés pour deviner le code secret réel basé sur le code secret transformé 114 contenu dans le paquet Cl. La fonction de base de la logique récupération 210 est similaire à celle de la logique de diversification 110. La différence entre elles est que la logique de récupération 210 exécute la même opération de manière répétitive jusqu'à ce qu'elle devine. La logique de diversification 110 opère de manière fonctionne une fois dans chaque processus d'émulation, mais la logique de recupération 210 fonctionne de manière répétitive jusqu'à ce que le code secret correct soit trouvé. Le processeur de code 212, sous la commande de la logique de récupération 210, est utilisé pour inverser l'effet du schéma de transformation sélectionné localement par la logique de récupération 210, reproduisant ainsi le code secret hypothétique CSH. La logique de codage 260 utilise le code secret hypothétique CSH pour coder l'échantillon d'essai 120 contenu dans le paquet Cl dans chaque phase du processus d'émulation. L'échantillon d'essai codé chiffré en utilisant le code secret hypothétique CSH doit être condensé dans le paquet de communication C2 et transféré en module matériel 100 pour vérification. Après avoir reçu l'échantillon d'essai codé, la logique de décodage 106 dans le module matériel 100 peut utiliser le code secret réel CS pour récupérer l'échantillon d'essai initial. Ci-après, le résultat du décodage de l'échantillon d'essai codé est appelé échantillon d'essai temporaire. Ensuite, l'échantillon d'essai temporaire et l'échantillon d'essai 120 sont introduits ensemble dans le comparateur 140. Si la logique de récupération 210 devine de manière incorrecte, l'échantillon d'essai temporaire et l'échantillon d'essai initial 120 sont différents. Par ailleurs, si la logique de récupération 0 devine de manière correcte, l'échantillon d'essai temporaire et l'échantillon d'essai initial 120 sont identiques. Dans ce . le comparateur 140 peut informer logique de récupération 210 du résultat de la correspondance de comparaison via le paquet de communication C3. Quand la logique de récupération 210 est informée du résultat de la correspondance de comparaison, le code secret hypothétique CSH de la phase en cours est considéré comme étant correct. En conséquence, le module matériel 200 émule avec succès le code secret CS. Il est à noter que les données transférées entre les modules matériels 100 et 200 pendant le processus démulation, y compris les paquets Cl, C2 et C3, ne contiennent pas le code secret exact CS. Tel que décrit ci-dessus, le paquet Cl contient l'échantillon d'essai 120 et le code secret transformé 114. Le paquet C2 contient l'échantillon d'essai codé. Le paquet C3 contient le résultat de la comparaison. Par conséquent, le code secret CS peut être dissimulé de maniere sécurisée dans le module matériel et dans le module matériel 200. En outre, le mode de réalisation ci-dessus n' pas destiné à limiter l'étendue de la présente invention et peut être modifié et adapté en fonction des différentes applications. Par exemple, dans le mode de réalisation ci-dessus, l'échantillon d'essai 120 est stocké initialement dans le module matériel 100 et est transféré au module matériel 200 au point de départ du processus d'émulation. Cependant, les spécialistes de la technique comprendront que l'échantillon d'essai aussi peut être stocké dans le module matériel 200 et transféré vers le module matériel 100 ou préalablement déterminé par les deux extrémités. il extrêmement important de distinguer la transmission de données et le processus d'émulation du code secret. Dans le mode de réalisation, le processus d'émulation requiert beaucoup d'étapes d'échanges d'authentification pour vérifier la validité des codes secrets hypothétiques devinés par le récepteur. Par conséquent, un tel processus d'émulation prend beaucoup de temps et n'est pas adapté à la transmission de données normale. En outre, il préférable qu'une telle émulation de code secret soit traitée dans un environnement de communication privé d'égal à égal. Quand le processus d'émulation entre deux modules matériels est achevé avec succès, deux systèmes hâtes impliquant ces deux modules matériels peuvent être classés en un groupe identique, étant donné qu'ils partagent les mêmes informations de code ou des informations de code liées. En d'autres termes, ils peuvent communiquer les uns avec les autres d'une manière sécurisée. Telles que décrites ci- dessus, de telles informations de code orientées vers le matériel sont déterminées à l'intérieur du module matériel et ne sont pas accessibles à tout le monde. Cela est différent des systèmes cryptographiques classiques qui utilisent clés de chiffrement/déchiffrement auxquelles les utilisateurs peuvent accéder. La figure est un diagramme du processus d'émulation illustré dans ce mode de réalisation. Dans ce cas, le système hâte A représente l'hâte servant de source code secret dans le processus d'émulation. En outre, le système hâte B représente le système hôte prêt à émuler code secret. Les étapes détaillées du processus d'émulation sont illustrées comme suit. D'abord, le système hôte A prépare un code secret dans le module matériel (étape Sl). Tel que décrit ci-dessus, le code secret est invisible à l'extérieur du module matériel et peut être généré par un générateur de numéro aléatoire. Ensuite, le système hôte A transforme le code secret selon l'un des schémas de transformation possibles décidés par la logique de diversification 110 (étape S2). Ensuite, le système hôte A envoie le code secret transformé et un échantillon d'essai au système hâte B (étape S3). Les étapes restantes se concentrent sur la manière de deviner le code secret réel à partir du code secret transformé. Après avoir reçu le code secret transformé, le système hôte B devine un code secret hypothétique à partir du code secret transformé par un schéma de transformation sélectionné, décidé par la logique de récupération 210 (étape S4). Ensuite, le système hâte B code l'échantillon d'essai avec le code secret hypothétique (étape S5) et transfère l'échantillon d'essai codé vers le système hôte A (étape S6). Par ailleurs, le système hâte A utilise le code secret réel pour décoder l'échantillon d'essai codé (étape S7) et compare le résultat avec l'échantillon d'essai initial (étape S8) . Quand le code secret hypothétique est le même que le code secret réel, le résultat du codage et l'échantillon d'essai initial ne présentent pas non plus de différence. Dans le cas contraire, le résultat de décodage est différent de l'échantillon d'essai initial. Ainsi, le système hâte A doit déterminer si le résultat du décodage et l'échantillon d'essai initial sont mis correspondance (étape S9) . S'ils ne sont pas mis en correspondance, les étapes S4, SS, S6, S7 et S8 sont à nouveau exécutées pour essayer un autre code secret hypothétique. ils sont mis en correspondance, cela signifie que le système hâte B a émulé le code secret avec succès (étape S10). Les caractéristiques du système et le procède pour émuler un code secret incorporé dans un module matériel sont décrites comme suit : 1. Le code secret est généré et stocké à l'intérieur du module matériel. Personne, y compris l'utilisateur lui-même, peut atteindre le code secret interne. Le procédé et le système décrits fournissent un moyen de distribuer la clé secrète d'un site vers un autre site. Ainsi, un module matériel qui génère un code secret et autre module matériel qui émule le code secret peuvent établir une session de communication s-are, même dans un reseau public. . Pendant le processus d'émulation du code secret, le code secret est transformé pendant le processus d'émulation. Cela signifie que personne ne peut deviner facilement le code secret réel à partir des informations révélées pendant le processus d'émulation. Seuls les modules matériels qui appartiennent au même groupe ont le droit d'émuler le code secret. Il est à noter que l'administrateur peut permettre processus d'émulation entre les modules matériels appartenant au même groupe, mais ne peut pas y modifier paramètres, tels que les schémas de transformation choisis pendant le processus. Par conséquent, ces modules matériels peuvent encapsuler le code secret avec succès. Bien l'invention ait été décrite au moyen d'exemple en termes de mode de réalisation préféré, on comprendra que l'invention n'est pas limitée aux modes de réalisation préférés. Au contraire, elle est destinée à couvrir les diverses modifications et les agencements similaires tels qu'ils apparaÎtront aux spécialistes de la technique. Par conséquent, l'étendue des revendications jointes doit être fonction de l'interprétation la plus vaste afin d'englober de telles modifications et agencements similaires. REVENDICATIONS 1. Système d'émulation d'un code secret entre deux différents modules matériels, comprenant un premier module materiel présentant un moyen de stockage du code secret qui est inaccessible à l'extérieur du premier module matériel ; un moyen de maintien d'un échantillon d'essai un moyen de transformation du code secret en un code secret transformé selon un schéma de transformation sélectionné aléatoirement à partir d'un lot de schémas transformation et envoi du code secret transformé au deuxième module matériel ; un moyen de décodage et de codage d'un échantillon d'essai reçu du deuxième module matériel en échantillon temporaire en utilisant le code secret ; et un moyen de comparaison de l'échantillon temporaire avec l'échantillon d'essai stocké dans le moyen de maintien et d'information du deuxième module matériel d'un résultat de comparaison ; et un deuxième module matériel, couplé au premier module matériel, présentant : un moyen de restauration du code secret transformé reçu du premier module matériel pour obtenir des codes secrets hypothétiques en essayant de manière récursive le lot de schémas de transformation et en déterminant un code parmi les codes secrets hypothétiques pour obtenir un code secret émulé équivalent au code secret quand le résultat de la comparaison reçu du premier module matériel montre que l'échantillon temporaire afférent au code secret hypothétique déterminé et l'échantillon essai sont mis en correspondance ; et un moyen de codage de l'échantillon d'essai dans l'échantillon d'essai codé en utilisant chaque code secret hypothétique et d'envoi de l'échantillon d'essai codé au premier module matériel. 2. Système tel que décrit dans la revendication 1, dans lequel l'échantillon d'essai utilisé dans moyen de codage provient du moyen de maintien du premier module matériel. 3. Système que décrit dans la revendication 1, dans lequel le moyen de transformation comprend : un moyen pour choisir aléatoirement un schéma parmi le lot de schémas transformation ; un moyen pour effectuer une opération de transformation respectant le schéma de transformation choisi sur les bits du code secret pour produire le code secret transformé ; et un moyen pour envoyer le code secret transformé au deuxième module matériel. 4.Système tel que décrit dans la revendication 1, dans laquelle le moyen de rétablissement comprend : un moyen de sélection d'un schéma parmi le lot de schémas de transformation ; un moyen d'inversion des effets du schéma de transformation sélectionné sur les bits du code secret transformé pour produire le code secret hypothétique ; et moyen de détermination du code secret émulé à partir des codes secrets émulés à partir des codes secrets hypothétiques selon le résultat de la comparaison. . Système tel que décrit dans la revendicat' 1, dans lequel l'un des schémas de transformation implique la rotation des bits du code secret sur une longueur fixe de bits. 6.Système tel que décrit dans la revendication 1, dans lequel l'un des schémas de transformation implique la permutation de deux bits contenus dans le code secret. 7. Système tel que décrit dans la revendicat' 1, dans lequel l'un des schémas de transformation implique 1 inversion de l'ordre des bits du code secret. 8. Procédé d'émulation d'un code secret entre premier module matériel et un deuxième module matériel le code secret étant initialement stocké dans le premier module matériel et étant inaccessible à l'extérieur du premier module matériel, le procédé comprenant étapes suivantes : ( ') la transformation du code secret en un code secret transformé selon un schéma de transformation selectionné aléatoirement à partir d'un lot de schémas de transformation dans le premier module matériel ; (k) l'envoi du code secret transformé du premier module matériel vers le deuxième module matériel ; (1 la récupération du code secret transformé pour obtenir un code secret hypothétique en sélectionnant de manière séquentielle l'un des schémas de transformation et en inversant l'effet du schéma de transformation sélectionné le code secret transformé dans le deuxième module matériel ; le codage d'un échantillon d'essai en un échantillon d'essai codé en utilisant le code secret dans le deuxième module matériel ; (n) l'envoi de l'échantillon d'essai codé deuxième module matériel au premier module matériel ; (o) le décodage de l'échantillon d'essai codé en un échantillon temporaire en utilisant le code secret dans le premier module matériel ; (p) la comparaison de l'échantillon temporaire avec l'échantillon d'essai dans le premier module materiel (q) l'envoi d'un résultat de correspondance de comparaison du premier module matériel vers le deuxième module matériel quand l'échantillon temporaire et l'échantillon d'essai sont mis en correspondance, pour indiquer que le code secret hypothétique appartenant à l'échantillon temporaire en cours est un code secret émulé équivalent au code secret ; et (r) le retour à l'étape c quand l'échantillon temporaire et l'échantillon d'essai ne sont pas mis en correspondance. 9. Procédé tel que décrit dans la revendication 8, comprenant en outre une étape d'envoi de l'échantillon d'essai du premier module matériel vers le deuxième module matériel. 10. Procédé tel que décrit dans la revendication 8 comprenant en outre une étape d'envoi de l'échantillon d'essai du deuxième module matériel vers le premier module matériel. il. Procédé tel que décrit dans la revendication 8, dans lequel le code secret dans le premier module matériel généré par un générateur de numéro aléatoire. 12. Procède tel que décrit dans la revendication 8, dans lequel l' des schémas de transformation implique rotation bits du code secret sur une longueur fixe bits. 13. Procédé tel que décrit dans la revendication 8, dans lequel 1 un des schémas de transformation implique permutation des bits contenus dans le code secret. 14. Procède tel que décrit dans la revendication 8, dans lequel 1 des schémas de transformation implique l'inversion de l'ordre des bits du code secret.