Brevet FR2880962A1 — publié le 20060721

PROCÉDÉ ET CIRCUIT DE CONTRâLE D'UN JEU DE DONNÉES AYANT PLUSIEURS MOTS DE DONNÉES L'invention concerne un procédé et un circuit de contrôle d'un jeu de données ayant plusieurs mots de données. Dans des circuits qui relèvent de la sécurité, des données sont protégées normalement par l'utilisation d'une unité cryptographique. L'unité cryptographique dachiffre les données avant leur utilisation proprement dite, par exemple, pour le traitement dans une unité de calcul et chiffre les données, de sorte qu'elles ne se prsentent que d'une manière chiffrée, par exemple pour le dépôt dans une mémoire, afin de rendre plus difficile une lecture non autorisée des données ou une manipulation des données à mauvais escient. L'unité cryptographique se trouve le plus souvent entre l'unité de calcul et la mémoire. Des erreurs peuvent se produire dans les mémoires soi-même ou au cours de la transmission de données de la mémoire à l'unité cryptographique. Il s'agit soit de modifications de bit accidentelles ou de manipulations délibérées de la mémoire ou d'une voie de transmission, qui est désignée aussi par bus de données, ver l'unité cryptographique. Lors de modifications de bit accidentelles ou de manipulations de courte durée, seuls quelques bits, parfois seulement un seul bit, est souvent concerné. Pour que, dans ces cas aussi, notamment dans ce que l'on appelle les erreurs individuelles, la jus-:esse de données soit conservée et qu'il ne soit pas porté atteinte à leur traitement, on utilise des codes corrigeant des erreurs, qui sont désignés aussi en abrégé par ECC, conformation à leur nom en anglais "error correction codes". Les codes corrigeant des erreurs sont utilisés sur les données déjà chiffrées, de sorte que le chiffrement comprend deux stades de chiffrement indépendants l'un de l'autre. Il faut à cet effet, outre l'unité cryptographique proprement dite de chiffrement et de déchiffrement, un matériel supplémentaire dédié par lequel les stades de codage relativement coûteux de correction d'erreur ainsi que la correction sont effectués. La consommation supplémentaire de courant liée au matériel supplémentaire est un inconvénient, nstamment dans des applications portatives, par exemple tans des cartes à puce. La présente invention vise un procédé de contrôle et de correction de données en utilisant les fonctions procurées par l'unité cryptographique. L'invention a donc pour objet un pro:édé de contrôle d'un jeu de données ayant plusieurs mots de données, caractérisé en ce que l'on se procure un jeu de données chiffrées ayant des mots de données chiffrées, on se procure un mot de code d'erreur associé au jeu de données chiffrées, on déchiffre les mots de données chiffrées du jeu de données chiffrées, on contrôle si le mot de code d'erreur est associé aux mots de données déchiffrées du jeu de données déchiffrées et on effectue une action d'alerte si le mot de code d'erreur n est pas associé aux mots de données déchiffrées du jeu de données déchiffrées. L'invention vise aussi un circuit de contrôle de mots de données qui repose sur le procédé suivant l'invention. Par le procédé suivant l'invention, le transfert de données est protégé et y compris au déchiffrement du 35 jeu de données dans l'unité cryptographique. Les mots de données chiffrés sont engendrés par un chiffrement à partir des mots de données à protége: . Pour engendrer le mot de code d'erreur, on utilise une superposition produite par codage de préférence linéaire ou une fonction quelconque de mot: d' ent:-ée d'un jeu de données d'entrée dont le mot de données de sortie est le mot de code d'erreur. Comme jeu de données d'entrée on se sert du jeu de données auquel est associé un mot de code d'erreur. L'information de tous les mots de données du jeu de données est ainsi combinée dans le mot de code d'erreur. Avantageusement, le mot de code d'erreur est mis aussi à disposition de l'unité cryptographique en étant d'abord chiffré puis est déchiffré. Une action d'alerte avantageuse comprend la correction des mots de données déchiffrés de sorte que des erreurs de bits ne retentissent pas sur le traitement de données. Pour la correction des mots de données chiffrés, on met à disposition les mots de données déchiffrés du jeu de données déchiffré et le mot de code d'erreur. A partir des mots de données déchiffrés et du mot de code d'erreur, on engendre un syndrome d'erreur qui indique si et dans quelle mesure, le mot de code d'erreur peut être associé au jeu de données déchiffré. Les mots de données sont, si nécessaire, corrigés en corrigeant leur bit conformément aux écarts par rapport au mot de code d'erreur indiqué par le syndrome d'erreur. On corrige ainsi également le mot de données entaché d'une erreur qui a entraîné des indications d'erreurs dans le syndrome d'erreur. Pour la rapidité de la correction, il est utile que chaque mot de données puisse être calculé à partir des autres mots de données et du mot de code d'erreur. La superposition linéaire produite par code, qui est utilisée pour produire le mot de code d'erreur est avantageusement une combinaison logique OU exclusif de mots de données du jeu de données, dont la mise en uvre n'est pas coûteuse. On combine un ième bit de tous les mots de données du jeu de données pour produire un ième bit du mot de code d'erreur. En variante, on peut aussi effectuer la combinaison logique OU exclusif de a suite de données après avoir permuté de façon différente les mots de données afin de rendre plus difficile de déduire les mots de données qui y sont combinés à partir da mot de code d'erreur. Lorsque l'on utilise l'une des superpositions linéaires produites par code décrites ci-dessus, le mot de données peut être corrigé par une combinaison logique OU exclusif du bit, associé au ième bit du mot de code d'erreur, du mot de données au ième bit du syndrome d'erreur. Cette combinaison logique OU exclusif peut être aussi mise en oeuvre d'une façon simple. Les autres stades du procédé reposent sur la supposition que les erreurs se trouvent dans un mot ou qu'il s'agit d'une erreur sur un seul bit. Les mots de données corrigées sont rechiffrées et sont comparés aux mots de données chiffrées déjà établis. On peut ainsi détecter des écarts par la correction. On détermine l'écart entre chaque mot de données chiffrées et le mot de données corrigées chiffrées associé pour tout le jeu de données et l'on choisit le mot de données ayant l'écart le plus petit. En supposant qu'aussi peu d'erreurs de bit que possible se sont produites seulement pour un mot de données chiffrées unique, on choisit le mot de données ayant l'écart le plus petit entre le mot de données chiffrées correspondant et le mot de données corrigées chiffrées correspondant et on effectue sa correction. Notamment lorsque l'on part d'erreurs individuelles, la comparaison est facilitée par le fait que L'on ne recherche qu'un écart d'un bit. La recherche de l'écart minimum est ainsi facilitée. Pour les autres mots de données du jeu de données, on n'effectue pas la correction puisque l'on part de l'hypothèse que seul un mot est faux. La distance entre deux mots de données est définie comme le nombre des bits qui les distingue. L'invention a également pour objet un circuit de contrôle d'un jeu de données ayant plusieurs mots de données comprenant une unité cryptographique qui, pour sa part, est caractérisée en ce qu'elle comprend une entrée d'apport d'un jeu de données ayant des mots de données chiffrées et d'un mot de code d'erreur, un dispositif de déchiffrement, qui est constitué pour déchiffrer '_es mots de données chiffrées du jeu de données chiffrées, un dispositif de combinaison logique, qui est constitué pour combiner les mots de données déchiffrées et au mot de code d'erreur pour obtenir un syndrome d'erreur et un dispositif de comparaison, qui est constitué pour:omparer le syndrome d'erreur à une valeur prescrite. L'unité cryptographique ne comprend, outre le dispositif de déchiffrement, que peu d'éléments en matériel simple supplémentaires pour permettre la transformation du procédé, qui peuvent être intégrés d'une façon simple à une unité cryptographique habituelle. L'unité cryptographique est constituée avantageusement pour déchiffrer un mot de code d'erreur chiffré. Le mode de code d'erreur se présente ainsi également sur l'unité cryptographique sous forme cziffrée, de sorte que tirer des conclusions sur le chiffrement utilisé et/ou les données chiffrées devient difficile. L'unité cryptographique est, en outre, constituée pour corriger les mots de données déchiffrées si les mots de données déchiffrées ne sont pas associés aux mots de code d'erreur. Par cette caractéristique, il est non seulement possible de détecter des erreurs de données des mots de données mais aussi de les corriger. L'unité cryptographique est, en outre, constituée pour chiffrer des mots de données corrigées, de sorte que le déchiffrement et le chiffrement sont procurés par une unité. L'unité cryptographique est, en outre, constituée de manière à comparer chacun des mots de données chiffrées du jeu de données chiffrées aux mots corrigés chiffrés correspondants d'un jeu de données corrigées chiffrées et pour déterminer un écart, de façon à rendre possible une évaluation de la correction. En faisant l'hypothèse qu'aussi peu d'erreurs que possible se produisent dans seulement un mot de données chiffrées unique, le mot de données ayant la distance la plus petite est choisi comme étant le mot entaché d'une erreur. Un mode de réalisation particulièrement simple part d'une erreur sur un seul bit, de sorte que l'évaluation de la distance est limitée seulement au point de savoir si l'écart s'élève à un bit. Lors de l'émission d'un jeu de données de mots de données déchiffrées par l'unité cryptographique, le mot de données sélectionné est émis de façon corrigée, les autres mots de données du jeu de données étant seulement déchiffrés sans correction. L'unité cryptographique est utilisée dans des circuits et est montée entre une unité de calcul et une mémoire pour assurer la sécurité de transmission de données entre ces deux unités. En règle générale, l'unité cryptographique est montée directement en amont de la mémoire et peut aussi y être intégrée. Le chiffrement des mots de données par l'unité cryptographique peut être constitué par la mise à disposition d'une autre entrée pour l'application d'une information d'adresse et par le chiffrement des mots de données en fonction de l'information d'adresse. On obtient ainsi une sécurité supplémentaire qui englobe aussi l'association d'information de données à une information d'adresse. De fausses interrogations d'adresse sont identifiées comme des erreurs et indiquent l'éventualité d'une manipulation. Dans ce mode de réalisation, on a la possibilité de mettre l'unité cryptographique directement sur l'unité de calcul qui procure l'information d'adresse. Le procédé se caractérise suivant un mode de réalisation par le fait que l'on se procure le mot de code d'erreur en effectuant les stades suivants: on se procure un mot de code d'erreur chiffré et on déchiffre le mot de code d'erreur chiffré. De préférence: - on produit les mots de données chiffrées du jeu de données chiffrées par un chiffrement à partir de mots de données d'un jeu de données, - on prévoit une superposition produite par code à partir d'un jeu de données d'entrée pour produira un mot de sortie, le jeu de données étant le jeu de données d'entrée et le mot de code d'erreur étant le mot de sortie, - l'action d'alerte comprend une correction des mots de données déchiffrées ou une correction des mots de données déchiffrées et du mot de code d'erreur, - la correction des mots de données déchiffrées ou la correction des mots de données déchiffrées es du mot 20 de code d'erreur comprend les stades suivants: - on se procure les mots de données déchiffrées du jeu de données déchiffrées; - on se procure le mot de code d'erreur; - on produit un syndrome d'erreur, qui:omprend plusieurs bits ayant un premier et un deuxième éta: et qui indique au moyen des états des bits si le mot de code d'erreur est associé aux mots de données déchiffrées du jeu de données déchiffrées ou dans quelle mesure l mot de code d'erreur ne peut pas être associé aux mots de données déchiffrées du jeu de données déchiffrées; - si le mot de code d'erreur n'est pas associé aux mots de données déchiffrées du jeu de données déchiffrées, on produit des mots de données corrigées à partir des mots de données déchiffrées ou on produit des mots de données corrigées et un mot de code d'erreur corrigé à partir des mots de données déchiffrées es du mot de code d'erreur, une correction étant effectuée en fonction du syndrome d'erreur, - on produit le syndrome d'erreur par une combinaison logique OU exclusif du mot de sortie de la superposition produite par code au jeu de données déchiffrées comme jeu de données d'entrée et au mot de code d'erreur, dans la superposition produite par code on produit le ième bit du mot de sortie par la comoinaison logique OU exclusif respectivement d'un bit de chaque mot d'entrée du jeu de données d'entrée, le bit de chaque mot d'entrée étant associé au ième bit du mot de sortie, - on associe, respectivement, le ième bit de chaque mot d'entrée au ième bit du mot de sortie, - on effectue la correction en corrigeant le bit, associé au ième bit du mot de code d'erreur, de chaque mot de données déchiffrées par la combinaison logique OU exclusif au ième bit du syndrome d'erreur, - on effectue la correction en corrigeant le ième bit de chaque mot de données déchiffrées par la combinaison logique OU exclusif au ième bit du syndrome d'erreur, - on produit des mots de données chiffrées corrigées par le chiffrement des mots de données 25 corrigées, - on compare les mots de données chiffrées corrigées d'un jeu de données chiffrées corrigées aux mots de données, chiffrées de façon correspondante, du jeu de données chiffrées, - on détermine le mot de données corrigées à partir du jeu de données corrigées ayant l'écart le plus petit entre le mot de données chiffrées corrigées correspondant et le mot de données chiffrées correspondant qui remplace le mot de données déchiffrées correspondant du jeu de données déchiffrées et - on détermine le mot de données corrigées à partir du jeu de données corrigées ayant l'écart 1 entre le mot de données chiffrées corrigées correspondant et le mot de données chiffrées correspondant qui remplace le mot de données déchiffrées correspondant du jeu de données déchiffrées. On utilise, de préférence, le circuit suivant l'invention dans une carte à puce. L'invention sera expliquée dans ce qui suit au 10 moyen d'exemples de réalisation en se reportant au dessin, dans lequel: la figure 1 représente une structure d'ur mot de données; la figure 2 représente un circuit ayant une unité 15 cryptographique, qui est montée directement en amont d'une mémoire; la figure 3 représente une variante de circuit ayant l'unité cryptographique, qui est montée directement en amont d'une unité de calcul; la figure 4 représente un exemple de réalisation d'une unité cryptographique à laquelle sont apportés un jeu de données et un mode de code d'erreur; la figure 5 représente une variante d'exemple de réalisation d'un unité cryptographique à laquelle sont apportés divers jeux de données et un mode de code d'erreur; la figure 6 représente le dé=roulement d'un chiffrement d'un jeu de données par l'unité cryptographique; la figure 7 représente le déroulement d'un déchiffrement et d'une correction d'un jeu de données chiffrées par l'unité cryptographique; la figure 8 est un tableau d'un jeu de données à titre d'exemple et d'un mode de code d'erreur associé ; la figure 9 est un tableau d'un jeu de données chiffrées et d'un mot de code d'erreur chiffré suivant la figure 8; la figure 10 est un tableau d'un jeu de données 5 déchiffrées, d'un mode de code d'erreur déchiffré et d'un syndrome d'erreur suivant la figure 9; la figure 11 est un tableau d'un jeu de données corrigées suivant la figure 10; la figure 12 est un tableau d'un jeu de données 10 chiffrées corrigées suivant la figure 11 et d'écarts au jeu de données chiffrées suivant la figure 9. La figure 1 représente une structure d'un mot de données qui comprend n bits. Un mot de données caractéristique comprend, par exemple, 32 bits. On remarquera immédiatement que les mots de données cités en exemple aux tableaux des figures 8 à 12 comprennent, respectivement, 8 bits par souci de clarté _et pour faciliter la compréhension du procédé. La figure 2 représente un circuit qui comprend une unité CPU de calcul et une mémoire MEM. Une unité MED cryptographique est montée entre l'unité CPU de calcul et la mémoire MEM. Dans l'exemple de réalisation représenté, l'unité MED cryptographique est montée juste en amont de la mémoire MEM. Ce mode de réalisation est avantageux du point de vue d'une intégration des deux unités. La figure 3 représente une variante du circuit, dans laquelle l'unité MED cryptographique est disposée juste en amont de l'unité CPU de calcul. On protège ainsi non seulement les données dans la mémoire MEM mais aussi les données jusqu'à leur transmission dans l'unité CPU de calcul, donc aussi sur des voies de bus. Ce n'est qu'avant l'utilisation proprement dite des données dans l'unité CPU de calcul qu'elles y sont mises sous forme déchiffrée. On augmente ainsi la sécurité du circuit vis-à-vis de modifications et de manipulations de données. Le circuit peut être aussi bien modulaire qu'intégré, par exemple en vue d'être utilisé dans une carte à puce. La figure 4 représente un exemple de réalisation simple d'une unité MED cryptographique suivant l'invention à laquelle est apporté un jeu 20 de données chiffrées et un mot 110 de code d'erreur. Le jeu 20 de données chiffrées comprend plusieurs mots 201, 202, 203, 204 de données chiffrées. Le nombre des mots de données a été choisi de quatre dans cet exemple. On peut, bien entendu, songer aussi à un autre nombre, par exemple de huit. Le jeu 20 de données chiffrées et un mot 110 de code d'erreur est apporté à une entrée 22 de l'unité MED cryptographique. L'unité MED cryptographique peut aussi être constituée en ayant d'autres entrées, de manière à apporter le mot 110 de code d'erreur à l'une de ses entrées et aux autres, les mots 201, 202, 203, 204 de données chiffrées du jeu 20 de données chiffrées. La façon dont s'effectue l'apport importe peu. Il peut s'effectuer en parallèle ou aussi en série. Le mot 110 de code d'erreur peut être apporté de façon non chiffrée à l'unité MED cryptographique, mais aussi sous forme chiffrée. La façon dont s'effectue l'apport ne préjudie en principe en rien à l'identification de l'erreur et à la correc-=ion de l'erreur. Il est pourtant avantageux d'apporter aussi le mot 110 de code d'erreur de façon chiffrée à l'unité cryptographique. Par le chiffrement, toutes les données à l'entrée de l'unité cryptographique, par exemple à partir de la mémoire MEM, se trouvent sous forme chiffrée, ce qui rend difficile leur déchiffrement inautorisé lors d'un piratage. Le mot 110 de code d'erreur est associé aux mots 201, 202, 203, 204 de données chiffrées du jeu 20 de données chiffrées et est produit avant leur chiffrement à partir de ceux-ci au moyen d'une combinaison logique produite par code. Si l'on mémorise le jeu 20 de données chiffrées, le mot 110 de code d'erreur est également mémorisé. Même si dans ce cas on a besoin de place de mémoire supplémentaire par rapport aux données proprement dites, on notera que de la place de mémoire supplémentaire est nécessaire également pour un codage de correction d'erreur si de l'information redondante est ajoutée au mot de données pour corriger des erreurs se produisant éventuellement. L'unité MED cryptographique suivant l'invention de la figure 4 est appropriée pour comparer un jeu 20 de données chiffrées à un mot 110 de code d'erreur associé. Il est prévu dans l'unité MED cryptographique un dispositif 3 de déchiffrement pour déchiffrer le jeu 20 de données chiffrées. Si le mot de code d'erreur se présente sous forme chiffrée, le dispositif 3 de déchiffrement sert aussi à son déchiffrement. Les mots 301, 302, 303, 304 de données chiffrées présents en interne et le mot 110 de code d'erreur sont combinés logiquement par un dispositif 1 de combinaison logique en un nouveau syndrome 320 d'erreur. Le syndrome 320 d'erreur est comparé à une valeur prescrite dans un dispositif 5 de comparaison pour constater si le mot 110 de code d'erreur peut être associé aux mots 301, 302, 303, 304 de données déchiff=rées, de sorte que l'on peut considérer qu'il s'agit d'ur. jeu de données sans erreur. L'unité MED cryptographique décrite est d'une réalisation simple par laquelle seules des erreur3 du jeu 20 de données chiffrées présent peuvent être indiquées. Une réalisation de ce genre est appropriée pour indiquer simplement des erreurs qui se produisent, par exemple par un signal d'alerte qui est émis. Elle fonctionne avantageusement en parallèle à une unité cryptographique proprement dite, qui ne sert qu'au déchiffrement et au chiffrement. La figure 5 représente un perfectionnement avantageux d'une unité MED cryptographique. Ce mode de réalisation permet à la fois le chiffrement d'un jsu 10 de données et le déchiffrement d'un jeu 20 de données chiffrées et, le cas échéant, la correction d'un mot 201, 202, 203, 204 de données chiffrées entaché d'une erreur. Le mode de réalisation comporte à la fois un dispositif 2 de chiffrement au moyen duquel les mots 101, 102, 103, 104 de données du jeu 10 de données sont chiffrés et un dispositif 3 de déchiffrement d'un jeu 20 de données chiffrées et le cas échéant d'un mot 210 de code d'erreur chiffré. En plus des fonctions décrites déjà à la figure 4, il est possible, par le mode de réalisation qui est représenté à la figure 5, d'associer aux mots 101, 102, 103, 104 de données, apportés par une entrée 11, dl jeu 10 de données un mot de code d'erreur en utilisant le dispositif 1 de combinaison logique. Ce mot de code d'erreur est émis par une entrée/sortie 22 ensemble avec les mots 201, 202, 203, 204 de données chiffrées sait sous forme non chiffrée soit, avantageusement, sous forme chiffrée. Bien entendu, on peut prévoir au Lieu de l'entrée/sortie 22 également une entrée distincte et une sortie distincte. Lors du déchiffrement, le jeu 20 de données chiffrées et le mot 110 de code d'erreur chiffré sont apportés par une entrée/sortie 22. Si après le déchiffrement du jeu 20 de données chiffrées et le contrôle par le mot 110 de code D'erreur on constate que le mot 110 de code d'erreur n'est pas associé au jeu de données, une correction du jeu 30 de données déchiffrées se trouvant en interne est possible. Pour la correction, on se sert de l'unité 2 de chiffrement et d'un dispositif de détermination de l'écart 4. Les mots 301, 302, 304 de données déchiffrées sont émis en plus du mot 403 de données corrigées par une sortie 33. Si l'on constate une erreur dans le mot de code c'erreur, l'émission des mots de données déchiffrées s'effectue sans correction. On notera ici que les exemples de réalisation représentés aux figures 4 et 5 peuvent être combinés. La figure 6 représente le déroulement d'un chiffrement pour produire le jeu 20 de données chiffrées avec le mot 110 de code d'erreur associé. Habituellement, ce stade du procédé est réalisé également par l'unité cryptographique qui, à la fois, chiffre et déchiffre. Un jeu 10 de données constitué, par exemple, dans ce cas, de quatre mots 101, 102, 103, 104 de données est combiné pour produire un mot 110 de code d'erreur. Le mot 110 de code d'erreur comprend le même nombre de dits que chacun des mots 101, 102, 103, 104 de données. Pour la combinaison, on se sert d'un élément 1 de combinaison qui réalise une combinaison linéaire produite par code. Il s'agit, dans ce cas, d'une combinaison logique OU exclusif des mots 101, 102, 103, 104 de données du jeu 10 de données. La combinaison logique OU exclusif s'effectue de la façon simple suivante: les premiers bits des mots 101, 102, 103, 104 de données sont combinés par une combinaison logique OU exclusif au premier bit du mot 110 de code d'erreur. De même, les deuxièmes bits des mots 1J1, 102, 103, 104 de données sont combinés par la combinaison logique OU exclusif au deuxième bit du mot 110 de code d'erreur. Il en va de même avec le ième bit des mots de données, qui sont combinés au ième bit du mot de code d'erreur. Suivant une variante de combinaison, les bits de chaque mot de données sont permutés avant la combinaison logique OU exclusif. On peut songer à la combinaison suivante: le premier bit d'un premier mot 101 de données, le deuxième bit d'un deuxième mot 102 de données, le troisième bit d'un troisième mot 103 de données et le quatrième bit d'un quatrième mot 104 de données sont combinés par une combinaison logique OU exclusif au premier bit du mot 110 de code d'erreur. Le deuxième bit du mot 110 de code d'erreur est produit par une combinaison du deuxième bit du premier mot 101 de données, du troisième bit du deuxième mot 102 de données, du quatrième bit du troisième mot 103 de données et du cinquième bit du quatrième mot 104 de données. Les autres bits du mot 110 de code d'erreur sont produits d'une façon correspondante. Bien entendu, d'autres permutations sont aussi possibles ou seulement la permutation d'un= partie des mots 101, 102, 103, 104 de données. Dans ces combinaisons, il est associé au ième bit du mot 110 de code d'erreur, respectivement un bit des mots 131, 102, 103, 104 de données. Inversement, il est associé également exactement un bit du mot 110 de code d'erreur à chaque bit d'un mot 101, 102, 103, 104 de données. Les mots 101, 102, 103, 104 de données du jeu 10 de données et le mot 110 de code d'erreur sont chiffrés au moyen d'un dispositif 2 de chiffrement, de sorte qu'un premier mot 201 de données chiffrées est associé à un premier mot 101 de données. Cela vaut aussi pour les autres mots 102, 103, 104 de données du jeu 10 de données. Avantageusement, le mot 110 de code d'erreur est aussi transformé par le dispositif 2 de chiffrement en un mot 210 de code d'erreur chiffré. Cette façon de procéder a l'avantage que lorsque l'on mémorise le jeu 20 de données chiffrées on mémorise aussi le mot 110 de code d'erreur sous forme chiffrée pour rendre plus difficile un déchiffrement non autorisé par un pirate. Le chiffrement sélectionné est, en règle générale, une reproduction très non linéaire, ce qui rend difficile le déchiffrement non autorisé. "Très non linéaire" signifie qu'une distance petite entre deux mots de données qui se distingue, par exemple, par un bit, donne après le chiffrement des mots de données chiffrées complètement différents qui diffèrent l'un de l'autre par sensiblement plusieurs bits. 11 peut aussi arriver que deux mots de données qui ont une grande distance soient transformés en mots de données chiffrées semblables qui ne se distinguent, par exemple, que par un ou par deux bits. Bien entendu, le chiffrement et le déchiffrement qui lui est associé sont des projections univoques. Le chiffrement, l'identification d'erreu et la correction par le procédésuivant l'invention sont illustrés aux figures 8 à 12 sous forme de tableaux au moyen d'un jeu l0a de données indiqué à titre d'exemple. Le jeu 10a de données indiqué à titre d'exemple comprend quatre mots 101a, 102a, 103a, 104a de données à titre d'exemple ayant, respectivement, huit bits. On considèrera d'abord les figures 8 et 9, qui illustrent le chiffrement. La figure 8 représente comment on produit par une combinaison logique OU exclusif du respectivement ième bit des mots 101a, 102a, 103a, 104a de données indiqués à titre d'exemple du jeu 10a de données indiqué à titre d'exemple le ième bit du mot 110a de code d'erreur. La figure 9 représente les mots 201a, 202x, 203a, 204a de données chiffrées correspondants et le mot 210a de code d'erreur chiffré associé. Le chiffrement utilisé est sans importance pour le procédé, mais on voit clairement qu'il est très non linéaire. Une erreur unique, qui peut se produire, par exemple, par une manipulation après le chiffrement, est caractérisée en trait gras dans le troisième mot 203a de données chiffrées. La figure 7 représente les stades du procédé de déchiffrement des mots 201, 202, 203, 204 de données chiffrées et leur contrôle et, le cas échéant, leur correction. Les mots 201, 202, 203, 204 de données chiffrées du jeu 20 de données chiffrées sont transformés par un dispositif 3 de déchiffrement en le jeu 30 de données déchiffrées qui comprend les mots 301, 302, 303, 304 de données déchiffrées. Si le mot 110 de code d'erreur se présente également sous forme chiffrée, il est aussi déchiffré, comme cela est représenté à la figure 7. Le dispositif 2 de chiffrement et le dispositif 3 de déchiffrement sont un appariement de dispositifs de déchiffrement-chiffrement, de sorte que lorsque les deux dispositifs sont utilisés en étant montés en série l'un après l'autre sur un jeu de données, le jeu de données est émis sans changement. Les mots 301, 302, 303, 304 de données déchiffrées du jeu 30 de données déchiffrées sont comparés au mot 110 de code d'erreur en produisant un syndrome 320 d'erreur. La comparaison s'effectue en combinant logiquement entre eux les mots 301, 302, 303, 304 de données déchiffrées de la même façon que pour la production du mot 110 de code d'erreur et en comparant le mot obtenu au mot 11C de code d'erreur. Le syndrome 320 d'erreur est obtenu par une combinaison logique OU exclusif du mot obtenu avec le mot 110 de code d'erreur. Cette comparaison s'effectue d'une façon:impie et sans le stade intermédiaire de la reproduction du mot obtenu, si l'on applique à une combinaison logique 1 OU exclusif qui est utilisée aussi pour produire un ième bit du mot de code d'erreur, outre le ième bit des pots 301, 302, 303, 304 de données également le ième bit du mot 110 de code d'erreur. On peut ainsi effectuer la combinaison des mots 301, 302, 303, 304 de données déchiffrées et la comparaison du mot obtenu au mot 110 de code d'erreur en un stade par la combinaison logique 1 OU exclusif. Si le mot 110 de code d'erreur peut être associé aux 'rots 301, 302, 303, 304 de données déchiffrées du jeu 30 de données déchiffrées, le syndrome 320 d'erreur produit est un vecteur nul qui ne comprend que des bits "C)". Si le unième bit du mot de code d'erreur ne correspond pas à la combinaison associée correspondante des bits de rots 301, 302, 303, 304 de données déchiffrées, le ième bit du syndrome d'erreur est un "1", ce qui indique une erreur. Dans la combinaison logique OU exclusif, i.e ième bit qui est un "1" permet de conclure à une erreur sur la ième position d'un mot de données. Bien entendu, plus ga'un bit du syndrome 320 d'erreur peuvent être aussi différents de "0". On partira de l'hypothèse qu'une erreur unique se produit dans le jeu 20 de données chiffrées et que le déchiffrement est très long linéaire. Si le syndrome 320 d'erreur est différent du vecteur nul, le procédé suivant l'invention est utilisé pour la correction d'erreur. On corrige les bits de chaque mot 301, 302, 303, 304 de données déchiffrées du jeu 30 de données déchiffrées, bits qui sont associés aux positions d'erreur correspondantes indiquées dans le syndrome 320 d'erreur, de façon à avoir un jeu 40 de données corrigées. Si seulement un mot de données du jeu 30 de données déchiffrées était entaché d'une erreur, tous les autres mots de données, à l'exception de celui qui était faux précédemment, sont entachés d'une erreur après la correction. Même si, pour continuer le processus de correction du mot de données entaché d'une erreur, on n'utilise plus le mot 110 de code d'erreur, on peut appliquer le procédé suivant de la même façon aussi au mot de code d'erreur. Cette façon de procéder a l'avantage que l'erreur à rechercher peut se produire, bien entendu, non seulement dans les mots 201, 202, 203, 204 de données chiffrées, mais aussi dans le mot 110 de code d'erreur. Lorsque l'on détecte cela, une correction des mots 301, 302, 303, 304 de données déchiffrées n'est pas non plus nécessaire. La figure 10 représente le jeu 20a de données chiffrées indiqué à titre d'exemple de la figure 9 après le déchiffrement. Le premier mot 301a de données, le deuxième mot 302a de données et le quatrième mot 304a de données coïncident après le déchiffrement avec les premier, deuxième et quatrième mots 101a, 102a, 104a de données d'origine, respectivement. L'erreur individuelle de bit du troisième mot 203a de données chiffrées entraîne, après le déchiffrement, en raison de la grande linéarité de l'opération de chiffrement et de déchiffrement, à des erreurs sur cinq bits qui sont indiqués en caractère gras. Le syndrome 320a d'erreur est formé par la combinaison logique OU exclusif du premier mot 301a de données déchiffrées avec le deuxième mot 302a de données déchiffrées, le troisième mot 303a de données déchiffrées, le quatrième mot 304a de données déchiffrées et le mot 101a de code d'erreur déchiffré. Il est différent de "0" aux positions de bit qui sont entachées d'erreur dans le troisième mot 303a de données déchiffrées. Cela montre la position des erreurs de bit dans l'un des mots 301a, 302a, 303a, 304a de données, mais sans indiquer dans lequel. La figure 11 représente les mots 401a, 402a, 403a, 404a de données corrigées. Après la correction des positions correspondantes dans chacun des mots 301a, 302a, 303a, 304a de données déchiffrées du jeu 30a de données déchiffrées, le troisième mot 403a de données corrigées se trouve maintenant sous une forme correcte et coïncide avec le troisième mot 103a de données d'origine. Les autres mots 401a, 402a, 404a de données corrigées sont entachés d'erreur aux positions correspondante. Par souci de clarté on a renoncé, dans les autres tableaux des figures 11 et 12, à une correction du mot 110 de code d'erreur. La figure 7 représente le déroulement ultérieur du procédé pour la détection du mot entaché d'erreur. Les mots 401, 402, 403, 404 de données maintenant corrigées sont rechiffrés par le dispositif 2 de chiffrement. Il en va de même avec le mot 410 de code d'erreur corrigé. Les mots 501, 502, 503, 504 de données corrigées chiffrés sont maintenant comparés aux mots 201, 202, 203, 204 de données chiffrées d'origine. Cela s'effectue avantageusement par un dispositif de détermination 4 d'écart. On défiait comme écart le nombre de bits dont se distinguent deux mots de données. On voit aux figures 9 et 12 la différence entre le jeu 50a de données corrigées chiffrées indiqué à titre d'exemple et le jeu 20a de données chiffrées d'origine indiqué à titre d'exemple. Le troisième mot 203a de données chiffrées entaché d'une erreur et le troisième mot 503a de données chiffrées corrigé ne se distinguent plus que par un bit, bien que dans le troisième mot 303a de données déchiffrées on ait corrigé cinq bits. Dans le premier, deuxième et quatrième mot 301a, 302a, 304a de données corrigées, également cinq bits ont été modifiés par la correction. En raison de la grande non linéarité du chiffrement, les premier, deuxième et quatrième mots 501a, 502a, 504a de données chiffrées corrigées, s'éca_-tent de plus d'un bit des mots 201a, 202a, 204a de données chiffrées correspondants. En faisant l'hypothèse qu'il ne s'est produit qu'une seule erreur, le mot de données ayant la distance la plus petite, dans ce cas le troisième mot de données, est pris comme entaché d'une erreur et la correction effectuée au stade précédent est prise en compte et le troisième mot 403a de données corrigées est émis. Pour les autres mots de données, la correction n'est pas effectuée et les mots 301a, 302a, 304a de données déchiffrées déterminés auparavant sont émis. Si l'on part d'une erreur unique, on peut simplifier encore le choix du mot de données entaché d'une erreur par un mode de réalisation adéquat du dispositif 4 de comparaison. Au lieu de déterminer la distance minimum des mots de données, il suffit de déterminer seulement si la différence est de un bit. Si cela est le cas, il s'agit du mot de données à corriger. Bien que le jeu de données indiqué i titre d'exemple dans les tableaux des figures 8 à 12 et l'explication se rapporte principalement à une erreur unique, les considérations ci-dessus valent aussi cour des erreurs sur plusieurs bits, qui pourraient se produire toutefois seulement dans l'un des mots de données. Dans ce cas, on choisira le mot de données qui a la dis-rance la plus petite, même s'il s'agit de deux ou de trois erreurs. Comme on utilise une opération de chiffrement très non linéaire, on peut, bien entendu, imaginer aussi que la distance entre un mot de données déchiffrées dont on a supposé qu'il ne se produit pas d'erreur lors de son déchiffrement et le mot de données corrigées correspondant après le rechiffrement n'est également que de 1 bit. Dans ce cas, la correction ne peut pas fonctionner d'une façon impeccable puisque l'on ne peut pas distinguer entre le mot correct ayant la distance de 1 bit et le mot entaché d'une erreur ayant la distance de 1 bit. Dans des cas de ce genre, l'algorithme ne donne pas de résultat ou le mot correct est émis éventuellement comme étant entaché d'une erreur. La probabilité qu'une erreur de bit ne puisse ainsi pas être corrigée par ce procédé est, pour un jeu de données qui comprend des mots d'une longueur de 32 bits, de 1:33.000.000. La probabilité qu'un mot entaché d'une erreur ne soit pas détecté ou soit émis avec une erreur de bit est de 1:27.000.000. La sécurité du procédé décrit est ainsi de l'ordre de l'erreur habituelle de code de correction. Enumération des signes de référence CPU Unité de calcul MED Unité cryptographique MEM Mémoire N Nombre des bits 1 Dispositif de combinaison 2 Dispositif de chiffrement 3 Dispositif de déchiffrement 4 Dispositif de détermination d'écart Dispositif de comparaison 11 Entrée 22 Entrée/Sortie 33 Sortie 10 Jeu de données 101, 102, 103, 104 20 201, 202, 203, 204 30 301, 302, 303, 304 40 401, 402, 403, 404 50 501, 502, 503, 504 210 320 10a 101a, 102a, 103a, 104a 20a 35 Mots de données Jeu de données chiffrées Mots de données chiffrées Jeu de données déchiffrées Mots de données déchiffrées Jeu de données corrigées Mots de données corrigées Jeu de données corrigées chiffrées Mots de données corrigées chiffrées Mode de code d'erreur Mot de code d'erreur chif:_ré Syndrome d'erreur Jeu de données indiqué à titre d'exemple Mots de données indiqués à titre d'exemple Jeu de données chiffrées indiqué à titre d'exemple 201a, 202a, 203a, 204a 30a 301a, 302a, 303a, 304a 40a 401a, 402a, 403a, 404a 50a 501a, 502a, 503a, 504a Mots de données chiffrées indiqués à titre d'exemple Jeu de données déchiffrées indiqué à titre d'exemple Mots de données déchiffrées indiqués à titre d'exemple Jeu de données corrigées indiqué à titre d'exemple Mots de données corrigées indiqués à titre d'exemple Jeu de données corrigées chiffrées indiqué à titre d'exemple Mots de données corrigées chiffrées indiqués à titre d'exemple 24 REVENDICATIONS 1. Procédé de contrôle d'un jeu de données ayant plusieurs mots de données, caractérisé en ce que: on se procure un jeu (20) de données chiffrées ayant des mots (201, 202, 203, 204) de données chiffrées; - on se procure un mot (110) de code d'erreur associé au jeu (20) de données chiffrées; - on déchiffre les mots (201, 202, 203, 204) de données chiffrées du jeu (20) de données chiffrées; - on contrôle si le mot (110) de code d'erreur est associé aux mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de données déchiffrées; - on effectue une action d'alerte si le mot (110) de code d'erreur n'est pas associé aux mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de donnée déchiffrées. 2. Procédé suivant la revendication 1, caractérisé en ce que l'on se procure le mot (110) de code d'erreur en 20 effectuant les stades suivants: - on se procure un mot (210) de code d'erreur chiffré ; on déchiffre le mot (210) de code d'erreur chiffré. 3. Procédé suivant la revendication 1 ou 2, caractérisé en ce que l'on produit les mots (201, 202, 203, 204) de données chiffrées du jeu (20) de données chiffrées par un chiffrement à partir de mots (1)1, 102, 103, 104) de données d'un jeu (10) de données. 4. Procédé suivant la revendication 3, caractérisé en ce que l'on prévoit une superposition produite oar code à partir d'un jeu de données d'entrée pour produira un mot de sortie, le jeu (10) de données étant le jeu de données d'entrée et le mot (110) de code d'erreur étant le mot de sortie. 5. Procédé suivant l'une des revendications 1 à 4, caractérisé en ce que l'action d'alerte comprend une correction des mots (301, 302, 303, 304) de données déchiffrées ou une correction des mots (301, 302, 303, 304) de données déchiffrées et du mot (110) de code d'erreur. 6. Procédé suivant la revendication 5, caractérisé en ce que la correction des mots (301, 302, 303, 304) de données déchiffrées ou la correction des mots (3D1, 302, 303, 304) de données déchiffrées et du mot (110) de code d'erreur comprend les stades suivants: - on se procure les mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de données déchiffrées; - on se procure le mot (110) de code d'erreur; - on produit un syndrome (320) d'erreur, qui comprend plusieurs bits ayant un premier et un deuxième état et qui indique au moyen des états des bits si le mot (110) de code d'erreur est associé aux mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de données déchiffrées ou dans quelle mesure le mot de code d'erreur ne peut pas être associé aux mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de données déchiffrées; - si le mot (110) de code d'erreur n'est pas associé aux mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de données déchiffrées, on produit des mots (401, 402, 403, 404) de données corrigées à partir des mots (301, 302, 303, 304) de données déchiffrées ou on produit des mots (401, 402, 403, 404) de données corrigées et un mot (410) de code d'erreur corrigé à partir des mots (301, 302, 303, 304) de données déchiffrées et du mot (110) de code d'erreur, une correction étant effectuée en fonction du syndrome (320) d'erreur. 7. Procédé suivant la revendication 6, caractérisé en ce que l'on produit le syndrome (320) d'erreur par une combinaison logique OU exclusif du mot de sortie de la superposition produite par code au jeu (30) de données déchiffrées comme jeu de données d'entrée et au mot (110) de code d'erreur. 8. Procédé suivant l'une des revendications 4 à 7, caractérisé en ce que dans la superposition produite par code on produit le ième bit du mot de sortie par la combinaison logique OU exclusif respectivement d'un bit de chaque mot d'entrée du jeu de données d'entrée, le bit de chaque mot d'entrée étant associé au ième bit du mot de sortie. 9. Procédé suivant la revendication 8, caractérisé en ce que l'on associe, respectivement, le ième bit de chaque mot d'entrée au ième bit du mot de sortie. 10. Procédé suivant la revendication 8, caractérisé en ce que l'on effectue la correction en corrigeant le bit, associé au ième bit du mot (110) de code d'erreur, de chaque mot (301, 302, 303, 304) de données déchiffrées par la combinaison logique OU exclusif au ième bit du syndrome (320) d'erreur. 11. Procédé suivant la revendication 9, caractérisé en ce que l'on effectue la correction en corrigeant le ième bit de chaque mot (301, 302, 303, 304) de données déchiffrées par la combinaison logique OU exclusif au ième bit du syndrome (320) d'erreur. 12. Procédé suivant l'une des revendications 6 à 11, caractérisé en ce que l'on produit des mots (501, 502, 503, 504) de données chiffrées corrigées par le chiffrement des mots (401, 402, 403, 404) de données corrigées. 13. Procédé suivant la revendicaticn 12, caractérisé en ce que l'on compare les mots (501, 502, 503, 504) de données chiffrées corrigées d'un jeu (50) de données chiffrées corrigées aux mots (201, 202, 203, 204) de données, chiffrées de façon correspondante, du jeu (20) de données chiffrées. 14. Procédé suivant la revendication 13, caractérisé en ce que l'on détermine le mot:403) de données corrigées à partir du jeu (40) de données corrigées ayant l'écart le plus petit entre le mot (501, 502, 503, 504) de données chiffrées corrigées correspondant et le mot (201, 202, 203, 204) de données chiffrées correspondant qui remplace le mot (303) de données déchiffrées correspondant du jeu (30) de données déchiffrées. 15. Procédé suivant la revendication 13, caractérisé en ce que l'on détermine le mot 403) de données corrigées à partir du jeu (40) de données corrigées ayant l'écart 1 entre le mot (501, 502, 503, 504) de données chiffrées corrigées correspondant et le mot (201, 202, 203, 204) de données chiffrées correspondant qui remplace le mot (303) de données déchiffrées correspondant du jeu (30) de données déchiffrées 16. Circuit de contrôle d'un jeu de données ayant plusieurs mots de données comprenant une unité (MED) cryptographique qui, pour sa part, est caractérisée en ce qu'elle comprend - une entrée (22) d'apport d'un jeu (20) de données ayant des mots (201, 202, 203, 204) de données chiffrées et d'un mot (110) de code d'erreur, - un dispositif (3) de déchiffrement, qui est constitué pour déchiffrer les mots (201, 202, 203, 204) de données chiffrées du jeu (20) de données chiffrées. - un dispositif (1) de combinaison logique, qui est constitué pour combiner les mots (301, 302, 3D3, 304) de données déchiffrées et au mot (110) de code d'erreur pour obtenir un syndrome (320) d'erreur et un dispositif (5) de comparaison, qui est constitué pour comparer le syndrome (320) d'erreur à une 35 valeur prescrite. 17. Circuit suivant la revendication 16, caractérisé en ce que le dispositif (3) de déchiffrement est constitué pour déchiffrer un mot (210) de code d'erreur chiffré. 18. Circuit suivant l'une des revendications 1 à 17, caractérisé en ce que l'unité (MED) cryptographique est constituée pour corriger les mots (301, 302, 303, 304) de données déchiffrées du jeu (30) de données déchiffrées. 19. Circuit suivant la revendication 18, caractérisé en ce que l'unité (MED) cryptographiq Ie a une unité (3) de chiffrement qui est constituée de façon à chiffrer des mots (401, 402, 403, 404) de données corrigées en des mots (501, 502, 503, 504) de données chiffrées corrigées ou de manière à chiffrer des mots (401, 402, 403, 404) de données corrigées et le mot (110) de code d'erreur en des mots (501, 502, 503, 504) de données corrigées chiffrées ou en un mot (410) de code d'erreur corrigé chiffré. 20. Circuit suivant la revendication 19, caractérisé en ce que l'unité (MED) cryptographique est constituée de manière à comparer chacun des mots (201, 202, 203, 204) de données chiffrées du jeu (20) de données chiffrées aux mots (501, 502, 503, 504) corrigés chiffrés correspondants d'un jeu (50) de données corrigées chiffrées. 21. Circuit suivant la revendication 20, caractérisé en ce que l'unité (MED) cryptographique est constituée de manière à émettre le mot (401, 402, 403, 404) de données corrigées à partir d'un jeu (40) de données corrigées avec une distance la plus petite entre le mot (201, 202, 203, 204) de données chiffrées correspondant et le mot (501, 502, 503, 504) de données corrigées chiffrées correspondant. 22. Circuit suivant la revendication 21, 35 caractérisé en ce que l'unité (MED) cryptographique est constituée pour émettre le mot (401, 402, 403, 404) de données corrigées à partir d'un jeu (40) de données corrigées avec une distance d'un bit entre le mot (201, 202, 203, 204) de données chiffrées correspondant et le mot (501, 502, 503, 504) de données corrigées et chiffrées de manière correspondante. 23. Circuit suivant l'une des revendications 16 à 22, caractérisé en ce que l'unité (MED) cryptographique est disposée entre une unité (CPU) de calcul et une mémoire (MEM). 24. Circuit suivant l'une des revendications 16 à 23, caractérisé en ce que l'unité (MED) cryptographique est montée en amont de la mémoire (MEM). 25. Circuit suivant l'une des revendications 16 à 24, caractérisé en ce que l'unité (MED) cryptographique est constituée de façon à chiffrer des mots (101, 102, 103, 104) de données. 26. Circuit suivant l'une des revendications 16 à 25, caractérisé en ce que l'unité (MED) cryptographique a une autre entrée d'application d'une information d'adresse et est constituée de manière à chiffrer des mo-:s (101, 102, 103, 104) de données et/ou des mots (401, 402, 403, 404) de données corrigées en fonction de l'information d'adresse. 27. Utilisation d'un circuit suivant l'une des 25 revendications 16 à 26 dans une carte à puce.