FR 2981472 A1 20130419 FR 1202668 A 20121005 DISPOSITIF ET PROCEDE DE PRODUCTION D'UNE SEQUENCE DE BITS L'invention se rapporte au domaine de la cryptographie et des aspects de l'invention concernent un dispositif et un procédé de reconstruction d'une fonction inclonable physiquement (FIP), à utiliser notamment dans une carte à puce électronique. L'abréviation FIP indique une fonction inclonable physiquement, désignée également par fonction de Hash physique. Le concept de base est de numériser des propriétés physiques d'un objet et d'obtenir ainsi une séquence de bits associée à l'objet. Il est souhaitable à cet égard que les séquences de bits de deux objets physiques différents ne soient pas corrélées entre elles. Un exemple simple donné à titre d'illustration est une feuille de papier. Considérée sous un microscope, on reconnaît une structure fine spéciale des copeaux de bois ou des parties de cellulose. On mesure la structure et on la représente par une séquence de bits à l'aide d'un algorithme approprié. Cette séquence de bits est alors la FIP associée à la feuille de papier. Une autre feuille de papier donnera en général une séquence de bits tout à fait autre, à savoir une séquence de bits qui n'est pas corrélée à la séquence de bits de la première feuille. Les expressions "séquence de bits" et "anneau de bits" sont utilisées dans la suite comme étant synonymes. L'opération de production d'une séquence de bits (la FIP) à partir des propriétés de l'objet physique est dénommée production d'une FIP. Une utilisation principale 30 des FIP est la production de clés cryptographiques pour des procédés de chiffrement entièrement électroniques ou informatisées. C'est ainsi, par exemple, que l'on pourrait utiliser l'anneau de bits de la FIP soi-même comme clé cryptographique. Ou l'on pourrait, ce qui a certains avantages, comprimer l'anneau de bits de la FIP en un anneau de bits plus court et utiliser ce dernier comme clé cryptographique. On applique ce dernier procédé habituellement dans ces cartes à puce, dans lesquelles un mécanisme de production de la FIP est intégré à l'électronique de la carte. On évite ainsi, par la production de la FIP et par son utilisation pour la production d'une clé, d'avoir à mémoriser la clé elle-même sur la carte, ce qui représenterait un danger pour la sécurité. 15. Une propriété souhaitable d'un mécanisme de la FIP est que le même objet physique, donc par exemple la même carte à puce, donne chaque fois la même séquence de bits, lors d'une production renouvelée de la FIP. Cela doit se produire, notamment, même dans des conditions 20 ambiantes différentes comme la température, l'humidité de l'air, la clarté, les intensités de champs électrique et magnétique, etc. Mais ce n'est pas le cas en général. Une production renouvelée de la FIP du même objet physique 25 donne, en général, des séquences de bits différentes. Les séquences de bits sont, certes, dans l'ensemble analogues entre elles, mais pas absolument identiques. On cherche à pallier ce défaut par des procédés de la théorie du codage (correction d'erreur). 30 On procède de la manière suivante. Un objet physique est donné. Au début, on produit la séquence A de bits FIP associée à l'objet. L'anneau A de bits est donc le résultat de la première production de la FIP. La séquence A de bits est considérée dans la théorie du codage comme un message, qui doit être transmis par un canal sujet à perturbation, de sorte que l'on s'attend à ce qu'il se produise dans la transmission des erreurs, c'est-à-dire que certaines entrées binaires se modifient, à savoir qu'un zéro devient un un ou inversement. Dans la théorie du codage, on résout ce problème en munissant le message A d'une redondance R et en transmettant le mot de code (A, R). S'il se produit des erreurs à la transmission, elles peuvent être corrigées grâce à la redondance R par des méthodes de la théorie du codage. Après la correction, on retrouve le mot A de message sans faute. On fait usage de ce même concept dans la production de la FIP. La valeur A initiale de la FIP (la valeur qui se produit lors de la meilleure production de la FIP) est désignée comme la valeur vraie de la FIP. A partir de la valeur A vraie de la FIP, on calcule une valeur R de redondance associée. R est dénommé information auxiliaire et, à l'aide de R, on doit arriver à un instant ultérieur à reconstruire la valeur A vraie de la FIP. Par souci de simplicité, on supposera ici que la valeur A vraie de la FIP est l'anneau de bits qui s'est produit lors de la toute première production de la FIP. En fait, on détermine, par exemple, la valeur vraie de la FIP d'une carte à puce, lors de la fabrication au cours de la personnalisation de la puce. Il est habituel de produire plusieurs fois ou souvent successivement une valeur de la FIP et de définir la valeur moyenne ou la valeur la plus fréquente comme étant la valeur vraie de la FIP. Une autre façon de procéder est de planifier une réserve. On supposera que l'on a besoin d'une valeur de la FIP d'une longueur de 800 bits. On produit toutefois (par exemple) une valeur de la FIP d'une longueur de 1 000 bits pour avoir la réserve. A la fabrication, on produit donc plusieurs fois, par exemple 100 fois, la valeur de la FIP de 1 000 bits. Chaque position de bits, qui, pendant ces 100 productions, n'est pas stable, qui ne présente donc pas toujours la même valeur de bits, est déclarée non valable. On suppose qu'il y a 840 positions où, pendant les 100 productions de la FIP, il s'est produit chaque fois la même valeur de bits. On choisit alors parmi ces 840 positions, par exemple, 800 d'entre elles et ces 800 positions définissent la valeur vraie de la FIP. On mémorise la valeur R calculée à l'aide de l'algorithme de codage. Pour des raisons de sécurité, on ne mémorise pas la valeur A de la FIP elle-même et elle n'est donc pas non plus toujours à disposition. La raison en est que l'on utilise la valeur A de la FIP directement comme clé cryptographique ou qu'on en déduit une clé cryptographique. Si la valeur A de la FIP était accessible facilement, on ne pourrait plus considérer comme secrète la clé cryptographique associée. Lors d'une production renouvelée ultérieure de la FIP, on obtient une nouvelle valeur B de la FIP. La valeur B n'est, en général, pas identique à A, mais ne s'en distingue que de peu. Le but est de retrouver la valeur A vraie de la FIP à partir de la valeur B disponible. On y réussit à l'aide de R et des méthodes de la 30 théorie du codage. B -> (B,R) -> (A,R) -> A La valeur B de la FIP actuelle et présente est donc agrandie de l'information R auxiliaire, A, B et R étant des anneaux de bits. La séquence (B, R) de bits est alors considérée comme un mot erroné dans le cadre de la théorie du codage et est corrigée ensuite de l'erreur au moyen de la théorie du codage. On obtient le mot (A, R) corrigé de l'erreur. On dispose notamment de la valeur A vraie de la FIP. On ne parvient à reconstruire la valeur A vraie de la FIP, à partir de la valeur B de la FIP produite en dernier et présente actuellement, que si B ne se distingue pas trop de A. Dans la terminologie de la théorie du codage : s'il n'y a pas eu trop d'erreurs dans la production de B, considéré par rapport à la valeur A vraie initiale de la FIP. Combien une valeur B de la FIP nouvellement produite se distingue typiquement de la valeur A vraie de la FIP et combien de fautes doivent donc être typiquement corrigées. dépend de la réalisation technique d'une FIP. Suivant la réalisation technique de la FIP, B différera de A dans moins de 1% des positions, par exemple dans 0,3% ou 0,6%, ou jusqu'à 15%. La réalisation en matériel de l'algorithme de reproduction de la FIP sera d'autant plus grande et »autant plus coûteuse qu'en moyenne B se distingue davantage de A. Cela signifie également des coûts de fabrication plus grands, un besoin de place plus grand et, éventuellement, une plus grande consommation d'énergie. Il y a à cela plusieurs raisons. Si, par exemple, on doit former à partir de la valeur de la FIP une clé 30 secrète d'une longueur de 128 bits, on a les paramètres suivants : Les anneaux A et B de bits doivent être d'autant plus longs que le taux d'erreurs (donc B se distingue d'autant plus de A) est plus grand pour arriver à la fin à une clé de 128 bits qui est sûre. S'il se produit, par exemple, 15% d'erreurs dans B par rapport à A, A (et ainsi également B) doit avoir une longueur d'environ 4 000 bits, pour extraire une clé secrète de 128 bits. S'il se produit seulement 1% d'erreurs, A et B doivent avoir une longueur d'environ 600 bits, pour fournir également une clé secrète d'une longueur de 128 bits. Le calcul des valeurs et rapports mentionnés ci-dessus est exécuté à l'aide de la théorie du codage et est connu de l'homme du métier, si bien que l'on ne l'explicitera pas davantage ici. L'algorithme de correction d'erreurs utilisé doit 15 ,être d'autant plus fort qu'il y a plus d'erreurs et sa mise en oeuvre est d'autant plus compliquée et ainsi coûteuse. On supposera un mécanisme de la FIP ayant un taux d'erreurs fixe que l'on ne peut pas modifier. On choisit 20 alors un code de correction d'erreurs qui est juste en mesure de corriger les erreurs qui se produisent, donc, par exemple, de reconstruire la valeur A vraie de la FIP à partir de B. Un code sera désigné comme "bien-conçu" si par 25 lui on arrive à une correction d'erreurs en moyenne allant jusqu'à 1 sur 1 million de cas (1 ppm = 1 partie par million). Un code, dans lequel la correction d'erreurs n'échoue, par exemple, qu'une fois sur 1 milliard de cas (ou moins), sera désigné par "sur- 30 conçu". Un code, dans lequel la correction est en défaut dans un cas sur 10 000 (ou moins), sera considéré comme "sous-conçu". L'expression "bien-conçu" se rapporte à la circonstance qu'une fiabilité de 1 ppm dans la reconstruction de la FIP est considérée comme suffisante dans la plupart des applications cryptographiques pratiques. Ladite valeur de référence de 1 ppm pour un code "bien-conçu" ne doit être considérée ici que comme un exemple typique. Elle peut être aussi suivant le cas d'utilisation nettement plus petite (technique automobile, espace) ou plus grande (produits à bon marché dans le domaine des biens de consommation). Un code "sur-conçu" a l'avantage d'une grande fiabilité, mais il faut compter avec un algorithme de correction d'erreurs coûteux en conséquence. Le module matériel, qui constitue une mise en oeuvre de l'algorithme de correction d'erreurs, aurait, par exemple, une grande surface et consommerait beaucoup d'énergie. Un code "sous-conçu serait attrayant en raison des moindres coûts de mise en oeuvre du matériel. Mais la fiabilité de 10 000 pour 1 est inacceptable pour la plupart des applications. A l'arrière-plan des explications ci-dessus, il fait partie actuellement de l'état de la technique pour des cartes à puce de mettre en oeuvre, pour uni7,, FTP dorin(7e ayant un taux d'erreurs déterminé, un algorithme de correction d'erreur (bien-conçu). L'inconvénient de cela est que l'algorithme choisi exige une mise oeuvre relativement coûteuse en matériel. Il y a principalement deux raisons qui font augmenter les besoins en matériel : le code de correction d'erreurs doit être d'autant plus puissant, c'est-à-dire avoir une grande densité de calcul, que la fiabilité de la reconstruction de la FIP doit être plus fiable et la valeur A (ou B) de la FIP doit être d'autant plus grande. Les deux facteurs contribuent à ce que le module de la FIP ait plus d'éléments de commutation, donc une surface de matériel plus grande et une consommation de courant plus grande, et en même temps le décodage demande une durée plus grande. La complexité augmente avec la longueur du code, en général, d'une manière plus que linéaire. Cela est un grand obstacle à l'utilisation répandue de clés de la FIP individuelles à une puce dans d'innombrables produits. Il existe un besoin de procédé et de dispositif 10 qui permettrait une production de la FIP n'ayant pas les inconvénients mentionnés ci-dessus. L'invention a donc pour objet un procédé de reconstruction d'une FIP A à utiliser dans un appareil électronique, caractérisé en ce que l'on met à 15 disposition une somme C de contrôle dans une mémoire morte, l'on produit une FIP B erronée, l'on reconstruit une FIP A à partir de B au moyen d'un algorithme de correction d'erreurs, l'algorithme étant tel qu'il produit, dans une fraction des cas, pour la FIP A 20 plusieurs résultats (Al, A2, ..., An) non univoques et, dans tous les autres cas, un résultat unique qui peut être incorrect, l'on détermine à l'aide de la somme C de contrôle, soit celui qui, parmi les plusieurs résultats (Al, A2, ..., An) non univoques, est la FIP A correcte, 25 soit si un résultat individuel obtenu correspond à la FIP A correcte. De préférence : - on produit la somme C de contrôle en utilisant un chiffre de bloc cryptographique ayant la FIP A comme 30 clé sur un anneau de bits, de préférence par le Advanced Encryption Standard ; - on produit la somme C de contrôle en utilisant sur la FIP A un registre de décalage linéaire de rétroaction ; - la longueur de A et B va de 100 bits à 5 000 bits ; - le taux d'erreurs moyen de B va de 0,3% à 15% ; - l'algorithme de correction d'erreurs utilise des informations R auxiliaires pour la reconstruction de A ; - R comprend la somme C de contrôle ; - R est public et il y a non reproductibilité de 10. A par un tiers ; - on effectue le procédé sur un appareil électronique, de préférence sur une carte à puce ; - on mémorise la somme C de contrôle sur une mémoire morte, de préférence une EEPROM ; 15 - la somme C de contrôle a une longueur de 30 bits à 150 bits ; on établit une clé cryptographique à partir de la FIP A ; et - on utilise la clé cryptographique pour le 20 chiffrement par un chiffrage de bloc ou par un chiffrage de flux, de préférence AES ou triple-DES. L'invention a également pour objet un dispositif de reconstruction d'une FIP A, caractérisé en ce qu'il comprend une unité de production d'une FIP B erronée, une 25 mémoire morte, dans laquelle une somme C de contrôle est mémorisée, une unité informatique conçue pour reconstruire une FIP A à partir de B au moyen d'un algorithme de correction d'erreurs, et dans lequel l'algorithme est tel que, dans une fraction des cas, il 30 produit pour la FIP A plusieurs résultats (Al, A2, An) non univoques et, dans tous les autres cas, un résultat unique qui peut être incorrect ; et est conçu, en outre, pour la détermination à l'aide de la somme C de contrôle, soit de celui qui, parmi plusieurs résultats (Al, A2, An) non univoques, est la FIP A correcte, soit si un résultat individuel obtenu correspond à la FIP A correcte. De préférence : - l'on mémorise la somme C de contrôle sur une mémoire morte, de préférence une EEPROM ; et la somme C de contrôle est mémorisée sans être chiffrée sur une mémoire morte, de préférence sur une EEPROM. D'autres aspects préférés de l'invention ressortiront des figures et de la description. L'invention se rapporte à un dispositif de mise en oeuvre du procédé et comprend aussi des parties du dispositif pour mettre en oeuvre respectivement des stades individuels du procédé. Ces stades du procédé peuvent être mis en oeuvre par des composants matériels, par un ordinateur programmé au moyen d'un logiciel adéquat, par une combinaison des deux ou de n'importe quelle autre façon. L'invention vise aussi des procédés suivant lesquels les dispositifs décrits fonctionnent. Elle comporte des stades de procédé pour l'exécution de chaque fonction des dispositifs. L'invention sera explicitée au moyen d'exemples de réalisation représentés aux figures, dont il 25 ressortira d'autres avantages et variantes. La figure 1 illustre un procédé de production d'une somme de contrôle suivant des modes de réalisation de l'invention. La figure 2 est une représentation schématique 30 d'un dispositif de production d'une somme de contrôle suivant des modes de réalisation de l'invention. La figure 3 est une illustration schématique d'une correction d'erreurs suivant des modes de réalisation. La figure 4 représente schématiquement un procédé de reconstruction d'une FIP suivant des modes de réalisation. La figure 5 est une représentation schématique d'une carte à puce suivant des modes de réalisation. On décrit dans ce qui suit divers modes de réalisation de l'invention, dont certains sont représentés aussi aux figures à titre d'exemples. Dans la description qui va suivre des figures, de mêmes repères se rapportent à de mêmes composants ou à des composants semblables. D'une manière générale, on ne décrira que les différences entre les divers modes de réalisation. Des caractéristiques qui sont décrites comme faisant partie d'un mode de réalisation peuvent être combinées aussi sans autre difficulté avec d'autres modes de réalisation pour produire encore d'autres modes de réalisation. Des exemples de réalisation de l'invention se rapportent à l'utilisation d'un code "sous-conçu" dans la reconstruction d'une FIP,. c'est-à-dire que la iiabillte dans la reconstruction est typiquement égale ou inférieure à 1 pour 10 000. Mais, suivant le cas d'application, des codes ayant une fiabilité nettement meilleure pourraient encore être désignés comme sous-conçus. L'échelle consiste en le point de savoir si la fiabilité pour l'application concernée est considérée comme suffisante ou ne l'est pas. Comme compensation du taux d'erreurs qui se produit ou de l'indéfinition se produisant statistiquement ou l'ambiguité des résultats, on introduit en complément à la grandeur R auxiliaire (la redondance) une autre grandeur C auxiliaire, ce que l'on appelle la somme de contrôle de la FIP. Les grandeurs R et C auxiliaires peuvent être choisies de manière à arriver à la reconstruction de la FIP en dépit du grand taux d'erreurs du code sous-conçu en ayant une fiabilité de plus de 1 pour 1 milliard. Par l'introduction de C, on augmente donc la fiabilité de la reconstruction de la FIP, c'est-à-dire qu'elle correspond à un code sur-conçu, sans avoir toutefois à s'accommoder de ses inconvénients. A une valeur A de la FIP produite sous la forme d'un anneau de bits, on associe donc une somme C de contrôle, un anneau de bits typiquement sensiblement plus court. On utilise la somme C de contrôle dans la reconstruction de la valeur A vraie de la FIP à partir d'une valeur B de la FIP produite nouvellement.. On utilise la somme C de contrôle à deux égards, d'une part pour la vérification de la correction de la reconstruction de la FIP et d'autre part comme critère de décision dans des ambiguités dans la correction d'erreurs. En raison de l'utilisation du code sous développé (sous-conçu), la correction d'erreurs n'est plus univoque, elle peut être équivoque dans environ 1 cas sur 10 000. Pour une valeur B de la FIP présente et la 25 redondance R mémorisée, il existe donc alors plusieurs solutions pour A. Mais à l'aide de la somme C de contrôle, on parvient dans presque tous les cas à déterminer la valeur A vraie de la FIP parmi le nombre des solutions candidates différentes. 30 La figure 1 représente la production d'une somme C de contrôle de la FIP suivant des exemples de réalisation. On utilise un chiffre de bloc cryptographique, par exemple le Advanced Encryption Standard (AES) pour la production de la somme de contrôle. Cette possibilité s'offre, par exemple, lorsqu'un module 10 AES est présent de toute façon sur la puce sur laquelle le mécanisme de la FIP est mis en oeuvre, comme cela est le cas sur de nombreuses cartes à puce. On utilise comme texte en clair un anneau de 128 bits constant quelconque. Par exemple, une chaîne 0, qui contient 128 zéros. Comme chiffre pour le chiffrement AES, on utilise la valeur A vraie de la FIP. La clé AES a 128 bits, d'autres longueurs possibles de clés seraient, par exemple, de 182 et de 256 bits, mais cela n'a pas d'importance ici. La valeur A de la FIP sera typiquement plus longue que 128 bits. On supposera, par exemple, qu'elle a une longueur de 1 000 bits. Elle est allongée de 24 bits, qui sont, par exemple, tous des zéros. L'anneau de la FIP allongé a maintenant 1 024 bits. 1 024 correspond à 8 fois 128. La valeur de la FIP allongée est subdivisée en 8 blocs d'une longueur de 128. Soient Al, A2, A8 ces huit blocs. Les huit blocs sont utilisés alors successivement comme clé AES. Par eux, on chiffre respectivement le texte en clair 0 = 0...0. On obtient ainsi huit chiffrages Cl, C2, C8 de chiffre. On les transforme bit à bit pas n OU exclusif. Cette somme de 25 OU exclusif C = Cl XOU C2 XOU _ XOU C8 est la somme C de contrôle de la FIP souhaitée. Une autre possibilité de production de la somme C de contrôle de la FIP par AES suivant des exemples de 30 réalisation consiste à transformer en OU exclusif les huit segments Al, A2, A8 ci-dessus bit par bit en le vecteur V de 128 bits. On utilise alors V comme clé AES. Le chiffrage C obtenu est la somme de contrôle FIP. On notera que AES représente, suivant l'opinion générale, un chiffrage fort. C'est pourquoi, dans les deux méthodes qui viennent d'être décrites, il est pratiquement possible de déduire à partir de la somme C 5 de contrôle des conclusions sur la valeur A vraie de la FIP. C'est pourquoi la somme C de contrôle de la FIP est mise, par exemple, dans une mémoire morte comme la EEPROM ou une autre mémoire de l'unité 30 de commande, en pouvant être ainsi considérée comme quasi publique ; elle 10 peut même être mémorisée dans une base de données accessible publiquement, sans que la sécurité de la valeur A vraie de la FIP en soit compromise. La figure 2 représente un autre exemple de production de la somme C de contrôle pour une valeur A de 15 la FIP donnée suivant des exemples de réalisation. On utilise un registre 50 à décalage linéaire de contre-réaction. La linéarité du registre à décalage de contre-réaction n'est pas essentielle, il peut être aussi non linéaire dans certains modes de réalisation. Le mode de 20 réalisation par registre à décalage peut être notamment intéressant lorsqu'un module cryptographique fort n'est pas mis en oeuvre sur l'appareil/la carte à puce ou son unité de commande. On peut mettre une valeur A de la FIP de 25 n'importe quelle longueur dans le registre 50 à décalage de contre-réaction. La longueur N du registre à décalage, c'est-à-dire le nombre des bascules Do à DN-1 est en même temps la longueur de la somme C de contrôle de la FIP qui s'ensuit. L'occupation au début du registre du décalage 30 peut être quelconque. L'état de tout zéro, pour lequel chaque cellule contient un zéro, est admissible aussi. Après que la valeur A de la FIP a été introduite complètement dans le registre à décalage, l'occupation finale du registre à décalage représente la somme C de contrôle de la FIP. On lit donc les cellules du registre à décalage pour obtenir la somme C de contrôle. La longueur du registre 50 à décalage ainsi que la longueur de la valeur A de la FIP peuvent être quelconques avec la limitation que le registre à décalage doit être au maximum aussi long que la valeur A de la FIP. Dans des exemples de réalisation, il peut être sensiblement plus court. Le registre à décalage ne doit toutefois pas être trop petit, parce que sinon la force de prédiction de la somme de contrôle est trop petite. Finalement, le but de la somme de contrôle est d'être utile dans la reconstruction de la FIP. On supposera, par exemple, que le registre à décalage a la longueur 64, ce qui représente une valeur pratique (mais non limitative). La probabilité que la reconstruction de la FIP soit erronée, que donc on ait obtenu une valeur A' de la FIP corrigée à partir de la valeur B de la FIP produite nouvellement au moyen de l'algorithme de codage, valeur A' qui toutefois ne coïnciderait pas pleinement avec la valeur P. vraie de la FIP, et qu'en même temps la SOT1-4-- contrôle n'aide pas à découvrir cette erreur, est de 1 sur 264. D'une manière générale, la probabilité dans un registre à décalage d'une longueur N est égale à 1 sur 2N. C'est pourquoi il faut choisir un registre à décalage qui soit suffisamment grand. On supposera que le registre à décalage a la longueur N. Il peut être linéaire ou ne pas l'être. On supposera que la valeur A de la FIP est supérieure ou égale à N. L'occupation initiale du registre à décalage sera supposée choisie de manière fixe, mais peut être quelconque. Il s'ensuit alors ce que l'on désigne ici comme l'axiome 1 : lorsque la valeur A de la FIP introduite est vraiment aléatoire et ainsi également répartie, chacune des 2N occupations finales différentes possibles du registre à décalage ont la même probabilité. En d'autres termes, les sommes de contrôle d'une longueur de N bit qui s'ensuivent sont réparties également. Sous la désignation d'axiome 2, on rassemble ici les propositions suivantes : la propriété mentionnée ci- dessus de l'axiome 1 représente une raison importante d'utiliser des registres à décalage de contre-réaction pour la production de sommes de contrôle de la FIP. Mais, à la différence de l'exemple de la figure 1, la somme C de contrôle produite au moyen du registre à décalage n'est pas produite par une méthode forte du point de vue cryptographique, même si le registre à décalage n'est pas linéaire. La connaissance de la somme C de contrôle permet donc à un pirate de tirer des conclusions sur la valeur A vraie de la FIP. Il en va de même aussi pour la redondance R, qui a été calculée par l'algorithme de codage à partir de la valeur A vrai de la FIP et qui est nécessaire pour, ensemble avec la somme C de contrôle, reconstruire la vaJeur A vraie de la FIP. La redondance R et la somme C de contrôle doivent à nouveau être considérées comme de l'information publique. Pour assurer la sécurité et la conservation du secret de la clé cryptographique, qui est extraite de la valeur A vraie de la FIP, il faut donc considérer la condition suivante : la longueur de bits du secret est donnée par la longueur de bits de la valeur A vraie de la FIP diminuée des longueurs de bits de la redondance R et diminuée de la longueur de bits de la somme C de contrôle produite par le registre à décalage. Dans des exemples de réalisation, C peut avoir une longueur de 30 bits à 150 bits, la FIP A vraie et la FIP B présentent une longueur de 100 bits à 5 000 bits. Le taux d'erreurs moyen lors de la production de la FIP B va d'environ 0,3 % à 15%, typiquement de 0,5% à 10%. Dans un exemple non limitatif, la valeur A vraie de la FIP aurait une longueur de 800 bits. La redondance R, qui est rendue nécessaire par l'exécution ou lors de l'exécution de l'algorithme de correction d'erreurs, aurait 600 bits. On cherche à obtenir à partir de la valeur de la FIP une clé cryptographique assez sûre d'une longueur de 128 bits. Dans cet exemple, le registre de décalage utilisé devrait avoir une longueur d'au plus 72 cellules pour la production de la somme C de contrôle de la FIP, puisque selon la prescription ci-dessus 800 - 600 - 72 = 128. On a représenté à la figure 1 un chiffre de bloc cryptographique, à la figure 2 un registre 50 à décalage linéaire pour la production d'une somme C de contrôle pour un code sous-conçu. Pour le calcul de la somme de contrôle, convient toutefois en principe toute fonction qui a la même propriété de répartition égale à partir de l'axiome 1 ci dessus : tonctions de ce genre sont connues sous le nom de fonctions de Hash. Pour celles-ci, on a la proposition de l'axiome 2 que la valeur de somme de contrôle doit être considérée comme publique si la longueur de bit du secret est réduite. Mais si une fonction de Hash a ce que l'on appelle la propriété à sens unique (OWF, one-way function), celle-ci peut alors être mémorisée publiquement sans livrer des informations sur la clé cryptographique. Utiliser ces fonctions cryptographiques dites de Hash (par exemple, les algorithmes Whirlpool connus, SHA-1, SHA-2) s'offre, par exemple, lorsqu'il y a un module correspondant sur l'unité de commande. C'est ainsi, par exemple, qu'il est montré à la figure 1 comment AES est utilisé pour la production d'une somme C de Hash cryptographique. Comme déjà décrit ci-dessus, la somme C de contrôle de la FIP a deux fonctions : a) Elle permet de contrôler si des erreurs ont été 10 bien corrigées. b)Elle fournit un critère de décision dans la correction d'erreurs équivoques. On explicite dans ce qui suit la propriété b). A cet effet, on rappelle quelques faits de la théorie du 15 codage : On considère un code (n, k, d) binaire linéaire. Les paramètres n, k, d ont la signification suivante : n est la longueur de mot du code, donc le nombre des bits dans un mot de code. k est la dimension du cRIe. Cela .DigniLie qu'il y a exactement 2^k= 2k (2 puissance k) mots de code différents (k est toujours plus petit que n). Il y a 2^n mots de n bits différents, mais seulement 2^k de ces mots de n bits sont des mots de code. Le nombre de tous les 25 2^n mots de n bits forme - mathématiquement, au sens de l'algèbre linéaire - un espace vectoriel V à dimensions. Le nombre de tous les mots de code est un sous-espace à k dimensions de V. d signifie la distance minimum (minimum distance) du code linéaire. La distance d minimum est la distance la plus petite possible que peuvent avoir l'un par rapport à l'autre deux mots de code différents. La distance de deux mots de code, ou d'une manière générale la distance de deux mots à n bits (dénommée aussi distance de Hamming) est égale au nombre des positions de bits différentes. C'est ainsi, par exemple, que les deux mots de 8 bits a = (11000101) et 10 b = (10101010) ont l'un par rapport à l'autre la distance de Hamming d(a,b) = 2. La distance d minimum est le paramètre déterminant de l'aptitude à la correction d'erreurs d'un code. Le code peut corriger d'autant plus d'erreurs que 15 la distance minimum est plus grande. La correction d'erreurs repose sur le principe suivant : au début, on a un mot de code. C'est-à-dire que le message transmis ou le messagemémorisé se présente toujours sous la forme d'un mot de code ou de plusieurs 20 mots de code. T__:_cposé à la production de la FIP exemples de réalisation, le cas est un peu plus compliqué. Mais dans tous les cas, la valeur A vraie de la FIP peut être mise en liaison avec un mot de code (ou 25 avec plusieurs mots de code), de sorte que, lors de la reconstruction de la valeur A vraie de la FIP à partir de la valeur B de la FIP nouvellement produite, on peut appliquer des méthodes de la théorie du codage. Lors de l'envoi du message par un canal sujet à 30 perturbation ou pendant la mémorisation du message dans un support de mémoire ou lors de la production renouvelée d'une FIP, des erreurs peuvent se produire. Lorsqu'il ne se produit pas d'erreur, le message est identique au mot de code initial. Lorsque toutefois des erreurs se produisent, le 5 message présent (erroné) n'est plus en règle générale un mot de code. Mais on a toutefois : lorsque moins de d/2 erreurs se sont produites (par mot de code), il y a exactement un mot de code qui est le plus proche du message présent. La tâche de la correction d'erreurs 10 (c'est-à-dire de l'algorithme de décodage) est de déterminer ce mot de code défini d'une manière univoque, en d'autres termes, de reconstruire le message d'origine à partir du message présent erroné. On parle du "nearest neighborhood decoding". 15 Si, toutefois, plus de d/2 erreurs se sont produites, comme exemple r erreurs avec r > = d/2 (r plus grand ou égal à d/2), le message présent (erroné) ne peut plus, en général, être associé d'une manière univoque à un mot de code. On a alors, d'une manière générale : la 20 sphère de rayon r autour du mot de message présent contient plusieurs mots de code. La situation est illustrée géométriquement à la figure 3. Les trois messages 60, 62, 64 reçus sont illustrés par des carrés au centre des 3 cercles 70, 72, 25 74. Chaque point d'intersection d'une droite horizontale avec une droite verticale (c'est-à-dire chaque point du réseau de la figure 3) représente un message possible. Les points les plus petits disposés régulièrement suivant une matrice 3x3 représentent des mots de code. 30 Dans la figure 3, on a dessiné trois sphères 70, 72, 74 de dimensions différentes autour du mot de message respectif. La sphère 70 la plus petite a un rayon r La sphère 72 moyenne contient deux mots 82, 83 de code. Son rayon est un peu plus grand que d/2. Le message (représenté par le petit carré 62 au milieu) ne peut donc pas être corrigé d'une manière univoque. On a besoin d'un critère supplémentaire qui dit quel mot de code doit remplacer le message. Le rayon de la grande sphère est bien plus grand que d/2. La sphère contient 18 mots de code différents (84, 85, 86, ..., qui n'ont pas été tous repérés pour des raisons de représentation). Il n'est plus possible ou cela ne l'est qu'avec une dépense énorme de déterminer le bon mot de code). Le concept "sphère de rayon r autour du mot a de message" doit être explicité de manière précise : Dans un exemple, supposons que a = (10111110) soit un message d'une longueur de 8 bits, la sphère de rayon r = 3 autour de a est constituée de tous les mots de 8 bits qui ont la distance de Hamming par rapport à a de 0, 1, 2 ou 3. Cela représente en tout 1 + 8 + 28 + 56 = 93 mots. Car il y a un mot, à savoir a lui-même, qui a la distance de Hamming 0 par rapport à a. Il y a exactement 8 mots ayant la distance de Hamming de 1 par rapport à a. Il y a 28 mots (= 8 sur 2) ayant une distance de Hamming de 2 par rapport à a et il y a exactement 56 mots (= 8 sur 3) ayant une distance de Hamming de 3 par rapport à a. Le premier cas de la figure 3, la petite sphère, peut être résolu par l'algorithme de décodage tout seul. L'information R auxiliaire y suffit. Dans le deuxième cas de la figure 3, où la bille a une grandeur moyenne, la théorie du codage donne deux 5 solutions possibles : les deux mots de code possibles à l'intérieur de la sphère. On a besoin à cet effet de l'information R auxiliaire. Pour trouver celle des deux solutions qui est la bonne, on calcule pour les deux solutions la somme de contrôle et on compare les sommes 10 de contrôle obtenues à l'information C auxiliaire supplémentaire. La solution, dont la somme de contrôle est identique à C, est acceptée comme solution correcte. Dans le troisième cas de la sphère la plus grande de la figure 3, la dépense est trop grande. La 15 reconstruction de la valeur de la FIP échoue dans ce cas. Dans un autre exemple de réalisation non limitatif, on se sert pour l'illustration d'un cas dans lequel la valeur A de la FIP a une longueur de 480 bits. Le but est à nouveau d'obtenir une clé secrète de 20 128 bits à partir de la valeur A de la FIP. Pour la correction d'erreurs, on utilise à titre d'exemple un code linéaire de longueur n = 15 et de distance minimum d = 7. On fractionne la valeur A de la FIP en 32 segments de longueur 15 : A = (A1, A2, A_32). On 25 traite individuellement chaque segment de 15 bits. Soit donc A j un segment de 15 bits de ce genre. Sur la base de la distance minimum d = 7, on peut corriger d'une manière univoque dans A_j toutes les erreurs de 1, 2 et 3 bits. 10 bits de redondance sont nécessaires pour la 30 correction d'erreurs. Soit R_j, le vecteur linéaire qui contient ces 10 bits de redondance pour A_j. Comme on a 32 segments A_1, A_2, A_32, il y a aussi 32 vecteurs de redondance R 1, R 2, R 32. Ces 32 vecteurs de redondance forment l'information H 1 auxiliaire. L'information H 1 auxiliaire comprend donc 320 bits. Une information H 2 auxiliaire est réalisée par 5 un LFSR de 32 bits. La valeur A de la FIP d'une longueur de 480 bits est injectée dans le registre à décalage de contre-réaction linéaire (LFSR) d'une longueur de 32 bits. L'occupation initiale du LFSR peut être quelconque. Le registre à décalage pourrait être rempli 10 initialement complètement de zéro. Après l'injection de la valeur de la FIP de 480 bits, le LFSR se trouve dans tous les cas dans un état déterminé. Le vecteur linéaire de 32 bits, qui décrit l'état du LFSR, forme la somme C de contrôle. La somme C de contrôle représente 15 l'information H 2 auxiliaire. Les deux informations H 1 (320 bits) et H 2 (32 bits) auxiliaires sont mémorisées dans cet exemple dans la EEPROM (ou un autre élément de mémoire d'une unité de commande. Une information de 352 bits se trouve 20 ainsi par la chaîne A de la FIP dans la EEPROM (qui n'est pas sûre). Il reste 480 - 352 = 128 bits secrets. On peut ainsi extraire de la chaîne A de la FIP de 480 bits une clé cryptographique d'une longueur de 128 bits. Soit B, la valeur de la FIP nouvellement produite 25 à un instant ultérieur. Il faut reconstruire A à partir de B. On fragmente l'anneau B de bits d'une longueur de 480 bits en 32 segments B1, B2, B32 qui ont chacun une longueur de 15 bits. On traite individuellement les 32 segments Bj : c'est-à-dire qu'il faut reconstruire 30 A j à partir de B j. Si l'on réussissait cela pour chacun des 32 segments, on aurait ainsi atteint le but de reconstruire la valeur A vraie de la FIP à partir de la valeur B présente de la FIP. La somme C de contrôle ne serait alors pas du tout nécessaire. Mais on peut l'utiliser comme "contrôle double" pour contrôler si la A reconstruite après injection dans le LFSR donne une occupation finale du LFSR qui est identique à la somme de contrôle C = H 2. Pour obtenir le segment A_j à partir de B_J, on procède la manière suivante : 1.0n prend le vecteur R_J de redondance dans la EEPROM. 2.0n attribue un R_j à un B_j : cela donne le vecteur (B j, R j) linéaire d'une longueur de 25 bits. _ 3.Au vecteur (B j, R_j) linéaire d'une longueur de 25 bits, on associe alors un vecteur d'une longueur de 15 10 bits, que l'on dénomme le syndrome. Le syndrome forme alors l'entrée pour un algorithme de décodage approprié. Si l'on ne dispose pas d'un algorithme de décodage ou si, pour des raisons de coût, on ne veut pas en mettre en oeuvre sous la forme d'un module matériel propre, on a 20 toujours aussi la possibilité de réaliser le décodage (donc la correction d'erreurs) à l'aide d'une table de syndrome. Ld table de syndrome peut être mise en oeuvre en logiciel ou en matériel. Le décodage s'effectue alors par une consultation de la table. 25 Dans ce cas, le syndrome a 10 bits. Un syndrome peut donc être représenté comme un nombre de 10 bits, c'est-à-dire comme un nombre entier entre 0 et 1 023. La table des syndromes comprend donc 1 024 lignes. Dans la colonne de gauche, il y a le syndrome, un nombre entier 30 allant de 0 à 1 023. A côté, il y a les positions d'erreurs associées. Si une erreur ne s'est pas produite (donc si Bj = Aj), le syndrome est égal à zéro. On interprète donc un syndrome égal à 0 comme un signe d'une absence d'erreur. Si l'on s'efforce d'avoir seulement une 5 correction d'erreurs univoque, la table de syndrome aurait l'aspect suivant : il y a 15 syndromes différents, auxquels correspond une erreur de 1 bit. Cela signifie que, dans exactement 15 lignes de la table de syndrome, il y aurait à droite à côté du syndrome exactement un 10 nombre compris entre 1 et 15, qui indique la position de l'erreur à 1 bit dans le vecteur B j de 15 bits. Une ligne de ce genre pourrait apparaître, par exemple, de la manière suivante : Syndrome = 177, position d'erreur 8. 15 Il y a 105 (= coefficient du binôme 15 sur 2) syndromes différents, auxquels correspond une erreur de 2 bits. C'est-à-dire que, dans exactement 105 lignes de la table des syndromes, il y aurait à côté du syndrome un couple de deux nombres compris entre 1 et 15 indiquant 20 les deux positions d'erreurs. Dans un exemple, une ligne de ce genre pourrait apparaître de la manière suivante : Syndrome = 65, positiond'erreur (3, 11). Il y a 455 (= coefficient du binôme 15 sur 3) syndromes différents, auxquels correspond une erreur de 25 3 bits. Cela signifie que, dans exactement 455 lignes de la table des syndromes, il y a à droite à côté du syndrome un triplet de trois nombres. Dans un exemple, une ligne de ce genre pourrait apparaître de la manière suivante : 30 Syndrome = 522, position d'erreur (4, 7, 15). Il y a 488 syndromes, auxquels correspond une erreurs sur plusieurs bits (au sens de 4 ou plus de 4 erreurs). Le nombre x = 488 est obtenu à partir de 1 024 = 1 + 15 + 105 + 455 + x. C'est-à-dire que 488 lignes de la table des syndromes restent vides. On pourrait écrire à côté du syndrome une ligne de ce genre "erreur de bits multiples". Pour des raisons d'économie, on pourrait négliger complètement ces 488 lignes de la table des syndromes. L'utilisation de la table des syndromes s'effectuerait alors de la manière suivante : 1. Recevoir B j. 2. Former (B j, Rj). 3. Calculer le syndrome S associé. 4.Si S = 0, en conclure qu'une erreur ne s'est pas produite. Sinon, pour S différent de 0, rechercher S dans la table des syndromes. Si S apparaît dans la table, déduire de la table les positions d'erreurs et corriger B j en conséquence. Si S n'apparaît pas dans la table, renoncer (cela signifie qu'il s'est produit dans B j quatre erreurs ou même encore plus d'erreurs). Pour une correction d'erreurs équivoque, il faut agrandir la table de syndromes. La mesure de l'agrandissement dépend du nombre d'erreurs, qui doit pouvoir être corrigé. On supposera que l'on doit corriger encore toutes les erreurs de 4 bits. Il y a alors dans la table des syndromes des lignes, dans lesquelles il y a, dans l'exemple précédent, "erreurs de bits multiples", qui ont par exemple la forme : Syndrome = 199, position d' erreur (1,3,5,9) ; (2,7,11,13) (*) Cela signifie : si le syndrome est 199, il peut en être ainsi parce qu'une erreur de 4 bits s'est produite en les positions 1, 3, 5 et 9 ; mais il peut se faire aussi qu'une erreur de 4 bits apparaisse en 2, 7, 11 et 13. La correction d'erreurs est équivoque. Le syndrome ne permet pas de décider du cas qui est correct. On a besoin à cet effet de la somme C de contrôle. On revient à l'exemple. On a considéré les 32 segments B1, B2, B_32. On a obtenu, par exemple, dans le segment B 1 le syndrome 199 correspondant à la situation dans la ligne (*) ci-dessus. On suppose que l'on obtient pour le segment B_2 le syndrome 789 et que la table des syndromes contient la ligne Syndrome = 789, position d' erreur (2,4,7) ; (1,5,11,15) On suppose pour les 30 segments B3, B4, B_32 restants que l'on obtient respectivement un syndrome, qui est nul ou qui conduit à une ligne dans la table des syndromes, dans laquelle il n'y a pas d'erreur de 4 bits ou d'erreur de bits multiples. Ces 30 segments pourraient être corrigés d'une manière univoque. L'incertitude (équivoque) concerne seulement les segments B1 et B2. Il y a maintenant 2 possibilités de corriger B1 et également 2 possibilités de corriger B_2. On peut 25 ainsi déduire en tout 4 possibilités de segments (A1, A 2) à partir de (B 1, B 2). Chacune de ces 4 possibilités est formée par les solutions A1, A2, A 32 déterminées de manière univoque en une valeur A de la FIP. On a donc 4 candidats pour une valeur A de la 30 FIP. Pour déterminer celui des quatre candidats qui est le bon, on met chacune des ces 4 valeurs dans le LFSR et on compare la position finale obtenue à la somme C de contrôle. On peut s'attendre à ce que seule l'une des 4 occupations finales obtenues coïncident avec C. C'est la bonne valeur A de la FIP reconstruite. On notera que les valeurs pour R et également pour C sont considérées dans chaque cas comme sans erreur, puisque elles ont été mémorisées d'une manière sûre (à la différence de la FIP elle-même) à dessein et, le cas échéant, par un code propre. Tous les syndromes qui indiquent des erreurs dans l'un des R j sont donc exclus. Cela aide à réduire le nombre des équivoques. La figure 4 est un aperçu schématique d'ensemble du procédé 500 de reconstruction d'une FIP A suivant des exemples de réalisation. Dans un stade 510, on met une somme C de contrôle dans une mémoire morte. Dans un stade 520, on produit une FIP B erronée. Puis, dans un stade 530, on reconstruit une. FIP A à partir de B au moyen d'un algorithme de correction d'erreurs, l'algorithme étant tel qu'il produit, dans une fraction des cas, pour la FIP A, plusieurs résultats (Al, A2, An), qui ne sont pas univoques, et, dans les autres cas, un résultat unique, qui peut être incorrect. Dans un stade 540, on détermine à l'aide de la somme C de contrôle celui des plusieurs résultats (Al, A2, ..., An) non univoques, qui est la FIP A correcte ou si un résultat unique obtenu correspond à la FIP A correcte. La figure 5 représente schématiquement une carte 40 à puce ayant un dispositif de reconstruction d'une FIP A suivant des modes de réalisation. La carte 40 à puce comprend une unité 42 de production d'une FIP B erronée ainsi qu'une mémoire 15 morte, dans laquelle est mémorisée une somme C de contrôle. Elle comprend, en outre, une unité 44 informatique conçue pour reconstruire une FIP A à partir de B au moyen d'un algorithme de correction d'erreurs. De préférence, l'unité 44 informatique comprend un module 10 cryptographique ayant une mise en oeuvre du procédé AES, mais on pourrait mettre en oeuvre n'importe quel autre procédé de chiffrement connu de l'homme du métier. REVENDICATIONS1. Procédé (500) de reconstruction d'une FIP A à utiliser dans un appareil électronique, caractérisé en ce 5 que : - on met à disposition (510) une somme C de contrôle dans une mémoire (15) morte ; - on produit (520) une FIP B erronée ; - on reconstruit (530) une FIP A à partir de B au 10 moyen d'un algorithme de correction d'erreurs, l'algorithme étant tel qu'il produit, dans une fraction des cas, pour la FIP A plusieurs résultats (A1, A2, ..., An) non univoques et, dans tous les autres cas, un résultat unique qui peut être incorrect ; 15 - on détermine (540) à l'aide de la somme C de contrôle, - soit celui qui, parmi les plusieurs résultats (A1, A2, ..., An) non univoques, est la FIP A correcte, 20 - soit si un résultat individuel obtenu correspond à la FIP A correcte. 2. Procédé suivant la revendication 1, caractérisé en ce que l'on produit la somme C de contrôle en utilisant un 25 chiffre de bloc cryptographique ayant la FIP A comme clé sur un anneau de bits, de préférence par le Advanced Encryption Standard (AES). 3. Procédé suivant la revendication 1, caractérisé en ce 30 que l'on produit la somme C de contrôle en utilisant sur la FIP A un registre (50) de décalage linéaire de rétroaction. 4. Procédé suivant l'une des revendications 1 à 3, caractérisé en ce que la longueur de A et B va de 100 bits à 5 000 bits. 5. Procédé suivant l'une des revendications précédentes, caractérisé en ce que le taux d'erreurs moyen de B va de 0,3% à 15%. 6. Procédé suivant l'une des revendications précédentes, caractérisé en ce que l'algorithme de correction d'erreurs utilise des informations R auxiliaires pour la reconstruction de A. 7. Procédé suivant l'une des revendications précédentes, caractérisé en ce que R comprend la somme C de contrôle. 8. Procédé suivant l'une des revendications précédentes, caractérisé en ce que R est public et il y a non 20 reproductibilité de A par un tiers. 9. Procédé suivant l'une des revendications précédentes, caractérisé en ce que l'on effectue le procédé sur un appareil électron_ ae, de préférence sur une carte (40) :1 25 puce. 10. Procédé suivant l'une des revendications précédentes, caractérisé en ce que l'on mémorise la somme C de contrôle sur une mémoire (15) morte, de préférence une 30 EEPROM (20). 11. Procédé suivant l'une des revendications précédentes, caractérisé en ce que la somme C de contrôle a une longueur de 30 bits à 150 bits. 12. Procédé suivant l'une des revendications précédentes, caractérisé en ce que, en outre : - on établit une clé cryptographique à partir de la FIP A. 13. Procédé suivant la revendication 12, caractérisé en ce que l'on utilise la clé cryptographique pour le chiffrement par un chiffrage de bloc ou par un chiffrage 10 de flux, de préférence AES ou triple-DES. 14. Dispositif de reconstruction d'une FIP A, caractérisé en ce qu'il comprend : - une unité (42) de production d'une FIP B erronée ; 15 - une mémoire (15) morte, dans laquelle une somme C de contrôle est mémorisée ; - une unité (44) informatique conçue pour reconstruire une FIP A à partir de B au moyen d'un algorithme de correction d'erreurs, et dans lequel 20 l'algorithme est tel que, dans une fraction des cas, il produit pour la FIP A plusieurs résultats (Al, A2, .., An) non univoques et, dans tous les autres cas, un résultat unique qui peut être incorrect ; et est conçu, en outre, pour la détermination à l'aide de la 25 somme C de contrôle, - soit de celui qui, parmi plusieurs résultats (Al, A2, ..., An) non univoques, est la FIP A correcte, - soit si un résultat individuel obtenu correspond 30 à la FIP A correcte. 15. Dispositif suivant la revendication 14, caractérisé en ce que la longueur de A et B va de 100 bits à 5 000 bits. 16. Dispositif suivant la revendication 14 ou 15, caractérisé en ce que le taux d'erreurs moyen de B va de 0,3% à 15%. 17. Dispositif suivant l'une des revendications 14 à 16, caractérisé en ce que l'algorithme de correction d'erreurs utilise des informations R auxiliaires pour la reconstruction de A. 18. Dispositif suivant l'une des revendications 14 à 17, caractérisé en ce que R comprend la somme C de contrôle. 19. Dispositif suivant l'une des revendications 14 à 17, 15 caractérisé en ce que l'on mémorise la somme C de contrôle sur une mémoire (15) morte, de préférence une EEPROM (20). 20. Dispositif suivant l'une des revendications 14 à 19, 20 caractérisé en ce que la somme C de contrôle est mémorisée sans être chiffrée sur une mémoire (15) morte, de préférence sur une EEPROM (20). 21. Dispositif suivant l'une des levendiatiDs :t à 20, 25 caractérisé en ce que la somme C de contrôle a une longueur de 30 bits à 150 bits. 22. Dispositif suivant l'une des revendications précédentes, caractérisé en ce qu'il comprend, en outre : 30 - une unité (10) cryptographique, qui est conçue pour, au moyen d'une clé produite à partir de A, chiffrer par un chiffrage de bloc ou par un chiffrage de flux, de préférence suivant le procédé AES ou triple DES. 10