Brevet FR2833434A1 — publié le 20030613

PROCEDE DE DECODAGE ET DE CORRECTION D'ERREUR La présente invention concerne un procédé de décodage et de correction d'erreur applicable à un mot codé sécurisé. La présente invention concerne également un circuit de décodage et de correction d'erreur, permettant de transformer un mot codé sécurisé en un mot décodé corrigé. Les dispositifs de sécurisation/correction de données sont couramment utilisés pour l'écriture de données dans les mémoires, notamment les mémoires effaçables et programmables électriquement de type EEPROM ou FLASH EEPROM. Les données sont sécurisées au moment de leur enregistrement dans la mémoire par l'ajout de bits de sécurisation, et sont corrigées au moment de leur lecture grâce aux bits de sécurisation. Il est par ailleurs classique de coder des données avant de les enregistrer dans une mémoire, lorsqu'un certain niveau de confidentialité est souhaité, et de décoder ces données lors de la lecture de la mémoire. On désigne par"codage"le fait de coder un mot binaire au moyen d'une fonction de brouillage, pour l'obtention d'un mot codé. Ainsi, il est parfois souhaité de combiner dans un même dispositif une fonction de codage et une fonction de sécurisation, pour l'obtention à partir d'une donnée initiale d'une"donnée codée sécurisée", c'est-à-dire un mot binaire ayant fait l'objet d'un double traitement de codage et de sécurisation. La présente invention concerne de façon générale l'incorporation d'une fonction de codage/décodage dans un dispositif de sécurisation/correction de données, notamment un dispositif basé sur l'algorithme de Hamming, pour l'obtention d'un dispositif de codage/décodage et sécurisation/correction de données. La figure 1 représente sous forme de blocs un dispositif de sécurisation/correction de données classique ECC1. Le dispositif ECC1 comprend un circuit WR1 de sécurisation de données et un circuit RD1 de correction de données. Le circuit WR1 présente une entrée IN1 pour recevoir un mot binaire XI, et une sortie OUT1 pour délivrer un mot codé sécurisé X2. Le circuit RDI présente une entrée IN2 pour recevoir un mot sécurisé X3 comprenant une erreur E, et une sortie OUT2 pour délivrer un mot corrigé X4. Le circuit WR1 comprend un bloc Bl qui applique au mot XI une fonction G et délivre le mot sécurisé X2. La fonction G est une fonction de génération de bits de sécurisation qui peut être représentée sous la forme d'une matrice de (2K) lignes et (2K + J) colonnes. En représentant le mot binaire XI sous la forme d'un vecteur de 2K bits, le mot sécurisé X2 obtenu obéit à la relation suivante : X2 = X1*G = DATA (X2) //CODE (X2) dans laquelle"*"représente un produit matriciel,"//" est le symbole de la concaténation, DATA (X2) est une première partie du mot X2 comprenant 2K bits de données, et CODE (X2) est une deuxième partie du mot X2 comprenant J bits de sécurisation. La fonction G ne modifie pas les bits de données du mot initial XI, de sorte que le mot DATA (X2) comprend des bits de données égaux à ceux du mot initial XI. Ainsi, on peut écrire : X2 = X1//CODE (X2) A titre d'exemple, on supposera que l'on souhaite détecter et corriger un bit et un seul dans un mot de huit bits au moyen de l'algorithme de Hamming. Suivant cet algorithme, le nombre J de bits de sécurisation doit être égal à K + 1 pour détecter et corriger un bit erroné et un seul dans un mot de 2K bits. Ainsi, dans cet exemple, K = 3 et J = K + 1 = 4 et les mots XI, X2 s'écrivent comme décrit en Annexe, point 1. La fonction G est une matrice de 2K lignes et (2K + K + 1) colonnes, soit ici de 8 lignes et 12 colonnes, telle que décrite en Annexe, point 2. La matrice G génère 4 bits de sécurisation pO, pi, p2, p3 ou bits de parité, comme décrit en Annexe, point 3. On suppose maintenant que le mot sécurisé X2 est enregistré dans une mémoire MEM et qu'il est ensuite lu dans cette mémoire. Entre l'écriture du mot et l'instant de sa lecture, le mot est susceptible d'être altéré et de présenter une erreur. Une telle erreur est, au plan statistique, assez fréquente avec les mémoires effaçables et programmables électriquement du type EEPROM ou FLASH EEPROM. Elle est généralement due à un défaut affectant un transistor à grille flottante d'une cellule mémoire (par exemple une dérive de sa tension de seuil), à un défaut de connexion d'une ligne de bit ou d'une ligne de mot, etc.. Afin de distinguer le mot lu du mot sécurisé initial X2, qui est présumé exempt de toute erreur, le mot lu dans la mémoire est désigné X3 et est considéré comme égal à la somme du mot X2 et d'une erreur E : X3 = X2 + E "+"étant l'addition bit à bit sans report de somme, E étant un mot de 2K + J bits représentant l'erreur affectant le mot X2, cette erreur pouvant être nulle. Le mot X3 et l'erreur E peuvent aussi s'écrire : X3 = DATA (X3) //CODE (X3) E = ERR1//ERR2 DATA (X3) étant un mot comprenant 2K bits de données et CODE (X3) un mot comprenant J bits de sécurisation, ERR1 étant un mot représentant l'erreur sur les bits de données, formé par les 2K premiers bits de l'erreur E, et ERR2 un mot représentant l'erreur sur les bits de sécurisation, formé par les J bits suivants de l'erreur E. Il vient que : DATA (X3) = DATA (X2) + ERR1 = XI + ERR1 CODE (X3) = CODE (X2) + ERR2 "+"étant l'addition bit à bit sans report de somme. Pour fixer les idées, et en reprenant l'exemple K mentionné ci-dessus (2K = 8 et J = 4), les mots E, ERR1, ERR2, DATA (X3), CODE (X3) s'écrivent comme mentionné en Annexe, point 4. La correction du mot X3 incorporant l'erreur E (qui peut être nulle) est assurée par le circuit RDI, qui comprend un bloc B2 de correction d'erreur, un bloc B3 générateur de syndrome, et un bloc B4 générateur de vecteur erreur. Le bloc B2 présente deux entrées El, E2 de 2K bits chacune, et une sortie de 2K bits. L'entrée El reçoit les bits de données du mot X3, soit le mot DATA (X3). L'entrée E2 reçoit un vecteur erreur EV délivré par le bloc B4. Le bloc B2 délivre un mot corrigé X4 qui est égal au mot initial XI (à la condition que l'erreur effective porte sur un nombre de bit inférieur ou égal au nombre maximal de bits pouvant être détecté et corrigé). Le mot X4 est obtenu par combinaison logique du mot DATA (X3) et du vecteur EV. Cette combinaison logique est généralement faite au moyen de la fonction OU EXCLUSIF (fonction xor, symbole fui). Le bloc B3 reçoit en entrée le mot X3, applique au mot X3 une fonction H, et délivre un syndrome SYN tel que : SYN = X3*H soit : SYN = (X2 + E) *H soit : SYN = (X1*G + E) *H soit : SYN = X1*G*H + E*H soit : SYN = E*H car les fonctions H et G sont des fonctions orthogonales et leur produit G*H est égal à 0. Avec l'algorithme de Hamming, la fonction H est une matrice de (2K + K + 1) lignes et de (K + 1) colonnes, orthogonale à G. Pour fixer les idées, une telle matrice H est décrite en Annexe, point 5, dans le cas où K = 3 et J = 4. Cette matrice H génère un syndrome SYN de quatre bits SO SI S2 S3 permettant de détecter et de corriger une erreur par mot, la valeur logique des bits SO à S4 étant également décrite en Annexe, point 6. Le syndrome SYN est appliqué au bloc B4 qui exécute une fonction de conversion syndrome/vecteur EV = f (SYN), et délivre un vecteur EV approprié. Cette fonction de conversion syndrome/vecteur est conforme à une table de correspondance prédéterminée. Pour fixer les idées, une table de correspondance syndrome/vecteur est décrite en Annexe, point 7, dans le cas où K = 3 et J = 4. Chaque vecteur erreur EV comprend en théorie une partie EV1 et une partie EV2, et peut s'écrire : EV = EV1//EV2 EV1 étant un vecteur erreur de 2K bits représentant une erreur sur les données, et EV2 un vecteur erreur de J bits représentant une erreur sur les bits de sécurisation. En pratique, une correction d'erreur sur les bits de sécurisation étant inutile, seul le vecteur erreur EV1 est délivré par le bloc B4 et appliqué sur l'entrée E2 du bloc B2. On notera que le vecteur erreur EV est égal à l'erreur E elle-même lorsque le bloc B2 exécute la fonction OU EXCLUSIF. En effet : DATA (X3) ffi EV1 = XI Or : DATA (X3) ffi EV1 = XI + ERR1 ffi EV1 ce qui donne : ERR1 ffi EV1 = 0 ce qui implique que : ERR1 = EV1 "+"étant l'addition bit à bit sans report de somme, la fonction OU EXCLUSIF. La figure 2 représente un dispositif ECC2 qui se distingue du dispositif ECC1 par le fait qu'il comprend en outre des moyens de codage et de décodage, et qui forme ainsi un dispositif de codage/décodage et sécurisation/correction de données. Le dispositif ECC2 comprend un circuit WR2 de codage et de sécurisation de données et un circuit RD2 de décodage et de correction de données. Le circuit WR2 présente une entrée IN1 pour recevoir un mot binaire XO, et une sortie OUT1 pour délivrer un mot codé sécurisé X2. Le circuit RD2 présente une entrée IN2 pour recevoir un mot codé sécurisé X3 comprenant une erreur E (pouvant être nulle), et une sortie OUT2 pour délivrer un mot décodé corrigé X5. Le circuit WR2 comprend en série un bloc BO et le bloc Bl décrit plus haut. L'entrée du bloc BO reçoit sur une entrée le mot XO, applique au mot XO une fonction de codage"A"et délivre un mot codé XI sur une entrée du bloc Bl. Le bloc Bl applique au mot XI la fonction G déjà décrite, et délivre le mot X2 sur la sortie OUT1 du circuit WR2. Un exemple de fonction de codage A est décrit en Annexe, point 8, sous la forme d'une matrice de 2K lignes et 2K colonnes, dans le cas ou K = 3. On considère maintenant comme précédemment que le mot X2 est stocké dans une mémoire MEM, et on désigne X3 le mot lu ultérieurement dans la mémoire, X3 étant égal au mot X2 auquel on ajoute l'erreur E. La correction de l'erreur E et le décodage du mot X3 sont assurés par le circuit RD2. Celui-ci se distingue du circuit RDI du dispositif ECC1 par le fait qu'un bloc de décodage BS est agencé entre la sortie du bloc B2 et la sortie OUT2. Le bloc B5 applique aux données reçues sur son entrée une fonction de décodage A-1 qui est la réciproque de la fonction A. Un exemple de fonction de décodage A-1 est décrit en Annexe, point 9, la fonction A-1 étant une matrice inverse de la matrice A décrite en Annexe, point 8. Le fonctionnement du dispositif ECC2 est ainsi le suivant : - le bloc BO génère un mot codé XI à partir du mot initial XO, - le bloc Bl génère un mot codé sécurisé X2 à partir du mot codé XI, - le bloc B2 assure une correction d'erreur sur un mot codé sécurisé X3, et délivre un mot codé corrigé X4, - le bloc BS assure le décodage du mot codé corrigé X4 et délivre un mot décodé corrigé XS. Les blocs Bl, B3 et B4 sont identiques à ceux du dispositif ECC1, car le fait que le mot XI soit un mot codé n'a aucune incidence sur la sécurisation et la correction de ce mot. Les circuits ECC1 et ECC2 qui viennent d'être décrits sont classiquement réalisés à partir de blocs à logique câblée. Le temps de conversion du mot XI en mot X2 (sécurisation) et de conversion du mot X3 en mot X4 (correction) est ainsi directement fonction du temps de propagation des données dans les portes logiques présentes le long du chemin de données, entre l'entrée IN1 et la sortie OUT1 et entre l'entrée IN2 et la sortie OUT2. L'inconvénient du dispositif ECC2 est que le processus de transfert des données est ralenti par l'ajout des blocs BO et B5 le long du chemin de données. Les blocs BO et B5 sont en effet, comme les blocs Bl à B4, réalisés à partir de portes logiques, et présentent un temps de transfert de données déterminé. En pratique, l'ajout des blocs BO et B5 peut augmenter de 30 à 50% le temps de transfert des données entre les entrées et les sorties du dispositif ECC2, par rapport au dispositif ECC1. La présente invention vise à pallier cet inconvénient. Plus particulièrement, un objectif de la présente invention est de prévoir un procédé de décodage et de correction d'erreur qui permette d'accélérer le temps de traitement des données. Un objectif correspondant de la présente invention est de prévoir un circuit de décodage et de correction d'erreur qui présente un temps de transfert de données plus court que le circuit classique décrit ci-dessus. Un autre objectif de la présente invention est de prévoir un circuit de codage et de sécurisation qui présente un temps de transfert de données plus court que le circuit classique décrit ci-dessus. A cet effet, la présente invention prévoit un procédé de décodage et de correction d'erreur applicable à un mot codé sécurisé susceptible de présenter une erreur, relativement à un mot codé sécurisé initial, comprenant une étape de correction d'erreur et une étape de décodage faisant intervenir une fonction de décodage, procédé dans lequel l'étape de décodage est effectuée avant l'étape de correction d'erreur et comprend l'application de la fonction de décodage au mot codé sécurisé, pour l'obtention d'un mot décodé sécurisé contenant une erreur codée. Selon un mode de réalisation, l'étape de correction d'erreur comprend l'application d'un vecteur erreur codé au mot décodé sécurisé. Selon un mode de réalisation, le procédé comprend une étape de détermination du vecteur erreur codé, effectuée parallèlement à l'étape de décodage. Selon un mode de réalisation, l'étape de détermination du vecteur erreur codé comprend la transformation par la fonction de décodage d'un vecteur erreur non codé qui serait applicable au mot codé sécurisé si celui-ci était corrigé avant d'être décodé. Selon un mode de réalisation, l'étape de détermination du vecteur erreur comprend une étape de détermination d'un syndrome par application au mot codé sécurisé d'une fonction de calcul de syndrome, et une étape de production du vecteur erreur codé directement à partir du syndrome, au moyen d'une table de correspondance directe entre syndrome et vecteur d'erreur codé. Selon un mode de réalisation, le mot codé sécurisé initial est obtenu par transformation, au moyen d'une fonction de codage, d'un mot initial en un mot codé, puis transformation du mot codé au moyen d'une fonction de sécurisation. Selon un mode de réalisation, le mot codé sécurisé initial est obtenu en appliquant à un mot initial une fonction de codage et de sécurisation qui est le résultat de la combinaison d'une fonction de codage et d'une fonction de sécurisation. Selon un mode de réalisation, le procédé est mis en oeuvre au moyen de circuits à logique câblée. La présente invention concerne également un circuit de décodage et de correction d'erreur comprenant un chemin de données comprenant une entrée pour recevoir un mot codé sécurisé et une sortie pour délivrer un mot décodé corrigé, un bloc de décodage prévu pour appliquer une fonction de décodage à un mot présent sur une entrée du bloc de décodage, agencé le long du chemin de données, un bloc de correction d'erreur comprenant une première entrée agencée le long du chemin de données pour recevoir un mot à corriger, et une deuxième entrée prévue pour recevoir un vecteur erreur, dans lequel le bloc de décodage est agencé sur le chemin de données en amont du bloc de correction d'erreur, et délivre sur la première entrée du bloc de correction d'erreur un mot décodé sécurisé contenant une erreur codée. Selon un mode de réalisation, le circuit comprend un bloc de détermination de syndrome comprenant une entrée reliée à l'entrée du chemin de données, et un moyen de détermination d'un vecteur erreur codé, comprenant une entrée reliée à une sortie du bloc de détermination de syndrome et une sortie reliée à la deuxième entrée du bloc de correction d'erreur. Selon un mode de réalisation, le moyen de détermination d'un vecteur erreur codé est agencé pour délivrer, à partir d'un syndrome, un vecteur erreur codé égal à la transformée par la fonction de décodage d'un vecteur erreur non codé correspondant au syndrome. Selon un mode de réalisation, le moyen de détermination d'un vecteur erreur codé comprend un bloc unique exécutant une conversion conforme à une table de correspondance directe entre syndrome et vecteur erreur codé. Selon un mode de réalisation le bloc de décodage, le bloc de correction d'erreur, le bloc de détermination de syndrome et le moyen de détermination d'un vecteur erreur codé sont des circuits à logique câblée. La présente invention concerne également un dispositif de codage/décodage et sécurisation/correction de données, comprenant un circuit de décodage et de correction d'erreur selon l'invention, pour transformer un mot codé sécurisé en un mot décodé corrigé, et un circuit de codage et de sécurisation pour transformer un mot initial en un mot codé sécurisé. Selon un mode de réalisation, le circuit de codage et de sécurisation comprend des moyens pour appliquer une fonction de codage à un mot initial et pour appliquer une fonction de sécurisation au mot codé. Selon un mode de réalisation, le circuit de codage et de sécurisation comprend un bloc unique de codage et de sécurisation agencé pour appliquer à un mot initial la combinaison de la fonction de codage et de la fonction de sécurisation. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante du procédé de l'invention et d'un exemple de réalisation d'un dispositif selon l'invention, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 précédemment décrite représente un dispositif classique de sécurisation et de correction de données, - la figure 2 précédemment décrite représente un dispositif classique de codage/décodage et de sécurisation/correction de données, comprenant un circuit classique de codage et de sécurisation et un circuit classique de décodage et de correction, et - la figure 3 représente un dispositif de codage/décodage et de sécurisation/correction de données selon l'invention, comprenant un circuit de codage et de sécurisation selon l'invention et un circuit de décodage et de correction selon l'invention. La figure 3 représente un dispositif ECC3 de codage/décodage et de sécurisation/correction de données selon l'invention. Le dispositif ECC3 comprend un circuit WR3 de codage et de sécurisation de données et un circuit RD3 de décodage et de correction de données. Le circuit WR3 présente une entrée IN1 pour recevoir un mot binaire XO et une sortie OUT1 pour délivrer un mot codé sécurisé X2. Le circuit RD3 présente une entrée IN2 pour recevoir un mot codé sécurisé X3 comprenant une erreur E (pouvant être nulle), et une sortie OUT2 pour délivrer un mot décodé corrigé X5. Selon l'invention, le circuit WR3 comprend un bloc Bu'qui applique au mot XO une fonction de codage et de sécurisation A*G et qui délivre le mot codé sécurisé X2 sur la sortie OUT1. La fonction A*G est le produit d'une fonction de codage classique A et d'une fonction de sécurisation classique G. A titre d'exemple, on supposera que l'on souhaite détecter et corriger un bit et un seul dans un mot de huit bits au moyen l'algorithme de Hamming. Les paramètres K et J déjà décrits au préambule sont dans ce cas égaux à 3 et à 4. La fonction G est dans ce cas la matrice de 8 lignes et 12 colonnes décrite en Annexe, point 2. La fonction A est par exemple la matrice de 8 lignes et 8 colonnes décrite en Annexe, point 8. La fonction correspondante A*G selon l'invention est dans ce cas égale au produit matriciel de A et G et est décrite en Annexe, point 10. De façon générale, le temps de passage des données dans le bloc Bl'est sensiblement égal au temps de passage de données dans l'un des blocs classiques BO ou Bl décrits au préambule. Le temps de conversion du mot XO en mot codé sécurisé X2 est dont réduit sensiblement de moitié par la présente invention. On considèrera maintenant, comme précédemment, que le mot X2 est stocké dans une mémoire MEM et l'on désignera X3 le mot lu ultérieurement dans la mémoire, X3 étant égal à la somme du mot X2 et d'une erreur E. La correction de l'erreur E et le décodage du mot X3 sont assurées par le circuit RD3. Le circuit RD3 comprend un bloc B2 de correction d'erreur, un bloc B3 générateur de syndrome, un bloc B4' générateur de vecteur erreur EV, et un bloc de décodage B5. Les blocs B2, B3, B5 sont identiques aux blocs de même référence du circuit classique ECC2 décrit au préambule. Le bloc B4'délivre des vecteurs erreur EV1' de 2K bits correspondant à une erreur sur les données et constituant la partie utile d'un vecteur erreur EV du type : EV'= EV1'//EV2' dans lequel EV2'est un vecteur erreur de J bits correspondant à une erreur sur des codes de sécurisation, EV2'n'étant pas utilisé en pratique. Selon l'invention, le bloc de décodage BS, qui applique la fonction de décodage A-1 aux données qu'il reçoit en entrée, est agencé sur le chemin de données entre l'entrée IN2 du circuit RD3 et l'entrée El du bloc de correction B2. En d'autres termes, le bloc B2 reçoit sur son entrée El une donnée décodé non corrigé. Comme on l'a vu plus haut, le mot X3 appliqué sur l'entrée IN2 du circuit RD3 peut s'écrire : X3 = X2 + E soit : X3 = XO*A*G + E " + " étant l'addition bit à bit sans report de somme, E étant un mot de 2K + J bits représentant l'erreur affectant le mot X2. Le mot X3 et l'erreur E peuvent s'écrire sous la forme suivante : X3 = DATA (X3) //CODE (X3) E = ERR1//ERR2 DATA (X3) étant un mot comprenant les 2k bits de données du mot X3, et CODE (X3) un mot formé par les J bits de sécurisation du mot X3, ERR1 un mot comprenant les 2k premiers bits de l'erreur E, ERR2 un mot comprenant les J bits suivants de l'erreur. Il vient que : DATA (X3) = DATA (X2) + ERR1 = (DATA (XO) *A*G) + ERR1 CODE (X3) = CODE (X2) + ERR2 Le mot DATA (X3) est appliqué sur l'entrée du bloc B5, sans les bits de sécurisation CODE (X3). Ainsi, le mot X4' délivré par le bloc B5 est égal à : X4'= DATA (X3) *A-1 = (XO*A*G*A-1) + ERRI *A-1 A et A-1 étant des fonctions réciproques, il vient : X4'= (XO*G) + ERRl*A-1 La fonction de sécurisation G ne modifiant pas les bits de données, il vient : X4'= XO + ERR1*A-1 Ainsi, le mot appliqué X4'sur l'entrée du circuit de correction B2 n'est pas un mot codé sécurisé comme dans l'art antérieur mais un mot décodé comprenant une erreur codée. Le mot décodé est le mot XO et l'erreur codée est le terme ERRl*A-1, soit la transformée de l'erreur ERR1 par la fonction de décodage A-1 (la fonction de décodage A-1 étant assimilable à une fonction de codage lorsqu'elle est appliquée à un élément n'ayant pas été préalablement codé par la fonction réciproque A). Il convient maintenant de déterminer le vecteur erreur EV1' devant être appliqué sur l'entrée E2 du bloc B2 pour corriger l'erreur codée ERRI * A -1. Le mot X3 étant appliqué dans son intégralité sur le bloc H générateur de syndrome, il vient que : SYN = X3*H soit : SYN = (X2 + E) *H soit : SYN = (X1*A*G + E) *H soit : SYN = X1*A*G*H + E*H Le produit des fonctions H et G étant nul, le syndrome SYN est ainsi égal à : SYN = E*H En conséquence, le syndrome généré par le bloc B3 est identique au syndrome généré par le bloc B3 des dispositifs ECC1 et ECC2 décrits au préambule. Par ailleurs le vecteur erreur EV1 classique est égal à l'erreur non codée ERR1, de sorte que le vecteur erreur EV1'peut être exprimé à partir du vecteur erreur classique EV1 : EVl'= ERRl*A-1 = EVl*A-1 Le vecteur erreur EV1'selon l'invention est ainsi un vecteur erreur codé, égal à la transformée par la fonction A-1 du vecteur erreur classique EV1. Ainsi, en pratique, le bloc B4'peut être réalisé en combinant en série le bloc classique B4 et un bloc exécutant la fonction A-1. Selon l'invention, et avantageusement, on détermine tout d'abord une table de correspondance directe donnant le vecteur EV1'pour chaque valeur de syndrome. Chaque vecteur EV1'de la table de correspondance directe est calculé en appliquant la fonction A-1 aux vecteurs EV1 donnés par une table de correspondance classique. On réalise ensuite un bloc B4' à logique câblée exécutant la fonction de conversion donnée par la table de correspondance directe. Pour fixer les idées, une table de correspondance selon l'invention est décrite en Annexe, point 11. Cette table de correspondance (table 2) est obtenue en appliquant la fonction A-1 aux vecteurs EV de la table de correspondance décrite au point 7 (table 1) Le fonctionnement du dispositif ECC3 peut ainsi être résumé comme suit : - le bloc Bd'génère un mot codé sécurisé X2 à partir du mot initial XO, - le bloc B5 assure le décodage du mot codé sécurisé X3 et délivre un mot X4'décodé non corrigé comportant une 1 erreur codée ERRl*A-1, - le bloc B2 assure la correction de l'erreur codée au moyen d'un vecteur erreur EV1'codé de la même manière que l'erreur codée, c'est-à-dire en appliquant la fonction A-1 à un vecteur erreur EV1 classique, de préférence, le bloc B4'délivre directement, à partir du syndrome SYN, le vecteur erreur EV1'. Le circuit de décodage et de correction RD3 selon l'invention présente l'avantage de présenter une architecture parallèle, dans laquelle le décodage du mot X3 par le bloc B5 est effectué parallèlement à la détermination du syndrome et du vecteur erreur EV1'par les blocs B3 et B4'. Ainsi, l'opération de décodage n'implique pas un ralentissement du temps de transfert des données comme dans le circuit ECC2 classique, dans lequel le bloc de décodage BS est agencé en aval du bloc de correction. On décrira maintenant pour fixer les idées un exemple de mise en oeuvre du procédé de décodage et de correction selon l'invention, en utilisant les fonctions A, G et H décrites en Annexe. Supposons que l'on veuille écrire puis lire le mot XI indiqué ci-après dans la mémoire MEM : XI = 1 1 0 0 1 0 1 1 Après avoir codé et sécurisé le mot XO au moyen de la fonction A*G (bloc Bl') on obtient : X2 = 0 1 0 0 0 0 1 1 0 1 0 1 On écrit X3 dans la mémoire MEM, et on relit ensuite un mot X3 = X2 + E Supposons que l'erreur E soit la suivante : E =0 0 010 0 0 0 0 000 Le mot lu X3 est ainsi égal à : X2 = 0 1 0 0 0 0 1 1 0 1 0 1 + =0 000 0 0 0 0 0 0 0 = X3 = 0 1 0 0 0 1 1 0 1 0 1 On calcule au moyen de la fonction H (bloc B3) le syndrome SYN correspondant : X3*H = 0 1 1 0 On en déduit au moyen de la table 2 en Annexe point 11 (bloc B4') le vecteur d'erreur codé EV1' : EV1'= 1 0 0 1 1 1 0 1 Parallèlement à la détermination du syndrome et du vecteur erreur, on détermine le mot décodé non corrigé X4'au moyen de la fonction A-1 (bloc 5) : X4'= (DATA (X2) + ERR1) *A-1 = 0 1 0 1 0 1 1 0 On corrige ensuite le mot : X5 = X4'xor EV1' X5 = 0 1 0 1 0 1 1 0 xor 1 0 0 1 1 1 0 1 soit : X5 = 1 1 0 0 1 0 1 1 soit : X5 = XI Il apparaîtra clairement à l'homme de l'art que le dispositif de codage/décodage et sécurisation/correction de données selon l'invention est susceptible de divers modes de réalisation et applications. Les applications concernent notamment les circuits intégrés équipés d'une mémoire, le dispositif selon l'invention étant interposé entre les entrées et sorties de la mémoire. Il s'agit notamment des circuits intégrés pour carte à puce, des microcontrôleurs,...., des mémoires intégrées telles les mémoires EPROM, EEPROM, FLASH EEPROM, etc.. Comme autre exemple d'application, le circuit de codage et de sécurisation WR3 peut être agencé à une extrémité d'une ligne de transmission de données et le circuit de décodage et de correction RD3 peut être agencé à l'autre extrémité de la ligne, afin de décoder et corriger les données reçues, les erreurs pouvant être dues à des problèmes de transmission ou à des perturbations le long de la ligne. ANNEXE faisant partie intégrante de la description 1-Mots XI et X2 : XI = xO xl x2 x3 x4 x5 x6 x7 X2 = DATA (X2)//CODE (X2) soit : X2 = xO xl x2 x3 x4 x5 x6 x7 pO pl p2 p3 avec DATA (X2) = XI = xO xl x2 x3 x4 x5 x6 x7 CODE (X2) = pO pl p2 p3 pO, pl, p3, P4 étant des bits de sécurisation. 2-Matrice génératrice de bits de sécurisation selon l'algorithme de Hamming quand K = 3 et J = 4 (correction d'un bit d'erreur et un seul) : Il o o 00 0 0 o 1 0 o i" 100000001001 010000001110 001000001101 000100000111 000010000110 000001001010 000000100011 000000010101 O O O O O O 0 1 0 1 0 1 3-Bits de sécurisation générés par la matrice G : pO = xO xor xl xor x2 xor x5 pl = x2 xor x3 xor x4 xor x7 xor xl p2 = x4 xor x5 xor x6 xor xl xor x3 p3 = x6 xor x7 xor xO xor x2 xor x3 "xor"étant la fonction OU EXCLUSIF. 4-Mots E, ERR1, ERR2, X3, DATA (X3), CODE (X3) E = ERR1//ERR2 = eO el e2 e3 e4 e5 e6 e7 e8 e9 elO ell soit : ERR1 = eO el e2 e3 e4 e5 e6 e7 ERR2 = e8 e9 elO ell *** X3 = X2 + E = (xO + eO) (xl + el) (x2 + e2) (x3 + e3) (x4 + e4) (x5 + eS) (x6 + e6) (x7 + e7) (pO + e8) (pi + e9) (p2 + elO) (p3 + ell) soit : DATA (X3) = (xO + eO) (xl + el) (x2 + e2) (x3 + e3) (x4 + e4) (x5 + e5) (x6 + e6) (x7 + e7) CODE (X3) = (pO + e8) (pl + e9) (p2 + elO) (p3 + ell) 5-Matrice de Hamming H quand K = 3 et J = 4 : I O O I 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0110 1 0 1 0 O I I I 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 o o o o I o o o o I o o o o I 6-Valeur du syndrome SYN généré par la matrice H quand K = 3 et J = 4 : SYN = SO SI S2 S3 SO = xO xor xl xor x2 xor x5 xor pO SI = x2 xor x3 xor x4 xor x7 xor xl xor pl S2 = x4 xor x5 xor x6 xor x3 xor xl xor p2 S3 = x6 xor x7 xor x3 xor x2 xor xO xor p3 7-Exemple de table de correspondance classique quand K = 3 et J = 4 : (Table 1 Vecteur EV SYNDROME EV1 EV2 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 8-Exemple de fonction de codage A quand K = 3 : 110 0 0 1 0 1 01000000 0 1 1 0 1 0 0 0 10010001 A = 00001000 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 1 0 000010 011 9-Exemple de fonction de décodage A-1 quand K = 3 : 1 0 0 o o i o o I 1 0 0 0 0 1 0 0 0 1000000 0 1 1 0 1 0 0 1 A-I 10011 101 00001000 0 1 0 0 1 1 0 1 1 0000010 0 0 0 0 1 0 0 1 10-Exemple de fonction A*G de codage et de sécurisation quand K = 3 : 1 1 0 0 o i o I o i o i" 110001010101 010000001110 011010000101 100100011011 000010000110 010001010001 110001111011 000010010011 11-Exemple de table de correspondance selon l'invention quand K = 3 et J = 4 : (Table 2) Vecteur EV'= EV*A-1 SYNDROME EV1' = EV1*A-1 EV2' = EV2*A-1 0 1 0 1 1 0 0 0 0 1 0 0 (non utilisé) 0 0 1 0 0 0 0 0 0 (non utilisé) 1 0 1 1 0 1 0 0 1 (non utilisé) 0 10011101 (non utilisé) 0 1 1 1 0 0 0 0 1 0 0 0 (non utilisé) 110 0 1 0 0 1 1 0 1 (non utilisé) 1 1 1 0 1 0 0 0 0 0 1 0 (non utilisé) 1 0 0 0 0 1 0 0 1 (non utilisé) 0 0 0 0 0 0 0 0 0 (non utilisé) 0 0 0 0 0 0 0 0 0 (non utilisé) 0 0 1 0 0 0 0 0 0 0 0 0 (non utilisé) 0 1 0 0 0 0 0 0 0 0 0 0 (non utilisé) 1 0 0 0 0 0 0 0 0 0 0 0 (non utilisé) 1 0 0 0 0 0 0 0 0 (non utilisé) 1 1 0 0 0 0 0 0 0 0 0 0 (non utilisé) 1 1 1 1 0 0 0 0 0 0 0 0 (non utilisé) REVENDICATIONS 1. Procédé de décodage et de correction d'erreur applicable à un mot codé sécurisé (X3) susceptible de présenter une erreur relativement à un mot codé sécurisé initial (X2), comprenant une étape de correction d'erreur et une étape de décodage faisant intervenir une fonction de décodage (A-1), caractérisé en ce que l'étape de décodage est effectuée avant l'étape de correction d'erreur et comprend l'application de la fonction de décodage (A-1) au mot codé sécurisé (X3), pour l'obtention d'un mot décodé sécurisé (X4') contenant une erreur codée (E*A-1). 2. Procédé selon la revendication 1, dans lequel l'étape de correction d'erreur comprend l'application d'un vecteur erreur codé (EV1') au mot décodé sécurisé (X4'). 3. Procédé selon la revendication 2, comprenant une étape de détermination du vecteur erreur codé (EV1') effectuée parallèlement à l'étape de décodage. 4. Procédé selon la revendication 3, dans lequel l'étape de détermination du vecteur erreur codé comprend la transformation par la fonction de décodage (A-1) d'un vecteur erreur non codé (EV1) qui serait applicable au mot codé sécurisé (X3) si celui-ci était corrigé avant d'être décodé. 5. Procédé selon la revendication 4, dans lequel l'étape de détermination du vecteur erreur comprend : une étape de détermination d'un syndrome par application au mot codé sécurisé (X3) d'une fonction (H) de calcul de syndrome, et - une étape de production du vecteur erreur codé (EV1') directement à partir du syndrome, au moyen d'une table de correspondance directe entre syndrome et vecteur d'erreur codé. 6. Procédé selon l'une des revendications 1 à 5, dans lequel le mot codé sécurisé initial (X2) est obtenu par transformation, au moyen d'une fonction de codage (A), d'un mot initial (XO) en un mot codé (XI), puis transformation du mot codé (XI) au moyen d'une fonction de sécurisation (G). 7. Procédé selon l'une des revendications 1 à 5, dans lequel le mot codé sécurisé initial (X2) est obtenu en appliquant à un mot initial (XI) une fonction de codage et de sécurisation qui est le résultat de la combinaison (A*G) d'une fonction de codage (A) et d'une fonction de sécurisation (G). 8. Procédé selon l'une des revendications 1 à 7, mis en oeuvre au moyen de circuits à logique câblée. 9. Circuit (RD3) de décodage et de correction d'erreur comprenant : - un chemin de données comprenant une entrée (IN2) pour recevoir un mot codé sécurisé (X3) et une sortie (OUT2) pour délivrer un mot décodé corrigé (X5), - un bloc de décodage (BS) prévu pour appliquer une fonction de décodage (A-1) à un mot présent sur une entrée du bloc de décodage, agencé le long du chemin de données, - un bloc de correction d'erreur (B2) comprenant une première entrée (El) agencée le long du chemin de données pour recevoir un mot à corriger, et une deuxième entrée (E2) prévue pour recevoir un vecteur erreur (EV1'), caractérisé en ce que le bloc de décodage (BS) est agencé sur le chemin de données en amont du bloc de correction d'erreur (B2), et délivre sur la première entrée (El) du bloc de correction d'erreur un mot décodé sécurisé (X4') contenant une erreur codée (E*A-1). 10. Circuit selon la revendication 9, comprenant : un bloc (B3) de détermination de syndrome (SYN) comprenant une entrée reliée à l'entrée (IN2) du chemin de données, et - un moyen (B4') de détermination d'un vecteur erreur codé (EV1'), comprenant une entrée reliée à une sortie du bloc (B3) de détermination de syndrome et une sortie reliée à la deuxième entrée (E2) du bloc de correction d'erreur (B2). 11. Circuit selon la revendication 10, dans lequel le moyen (B4') de détermination d'un vecteur erreur codé (EV) est agencé pour délivrer, à partir d'un syndrome (SYN), un vecteur erreur codé (EV1') égal à la transformée par la fonction de décodage (A-1) d'un vecteur erreur non codé (EV1) correspondant au syndrome. 12. Circuit selon la revendication il, dans lequel le moyen de détermination d'un vecteur erreur codé comprend un bloc unique (B4') exécutant une conversion conforme à une table de correspondance directe entre syndrome et vecteur erreur codé. 13. Circuit selon l'une des revendications 9 à 12, dans lequel le bloc de décodage, le bloc de correction d'erreur, le bloc de détermination de syndrome et le moyen de détermination d'un vecteur erreur codé sont des circuits à logique câblée. 14. Dispositif (ECC3) de codage/décodage et sécurisation/correction de données, caractérisé en ce qu'il comprend : - un circuit (RD3) de décodage et de correction d'erreur selon l'une des revendications 9 à 13, pour transformer un mot codé sécurisé (X3) en un mot décodé corrigé (X5), et - un circuit de codage et de sécurisation (WR3) pour transformer un mot initial (XO) en un mot codé sécurisé (X2). 15. Dispositif (ECC3) selon la revendication 14, dans lequel le circuit de codage et de sécurisation (WR3) comprend des moyens (Bl') pour appliquer une fonction de codage (A) à un mot initial (XO) et pour appliquer une fonction de sécurisation (G) au mot codé. 16. Dispositif (ECC3) selon la revendication 15, dans lequel le circuit de codage et de sécurisation (WR3) comprend un bloc unique de codage et de sécurisation (Bl') agencé pour appliquer à un mot initial (XO) la combinaison (A*G) de la fonction de codage (A) et de la fonction de sécurisation (G).