FR 2823036 A1 20021004 FR 0104522 A 20010403 La présente invention concerne un procédé et un dispositif de codage/décodage d'un message. Elle s'applique notamment au codage/décodage de messages sur une piste de bande magnétique. Ces bandes magnétiques peuvent être utilisées sur des supports cartonnés tels que les tickets de parking ou les titres de transport ou sur des supports plastifiés tels que les cartes d'identification ou les cartes permettant d'effectuer des transactions financières. Les bandes magnétiques sont utilisées pour lire et écrire des messages, c'est à dire des suites de données numériques. Les données peuvent être écrites en utilisant un codage propriétaire ou normalisé. Il existe de nombreux standards et normes émis par des organismes tel que l'ANSI (abréviation de American National Standards Institute ), l'ISO (abréviation de International Standards Organization ), DATA (abréviation de International Air Transportation Association ),l'ABA (abréviation de American Bankers Association ), ou la THRIFT (organisme bancaire). Il arrive parfois que de petites zones d'une bande magnétique soient endommagées, rendant illisibles les données inscrites sur ces zones. Lorsqu'un ticket de parking est plié par exemple, les données inscrites sur la pliure sont illisibles. Il arrive aussi que des zones importantes soient endommagées, rendant beaucoup de données illisibles. Ceci arrive par exemple lorsqu'un ticket de parking est rangé dans un sac à main. Il peut être en contact avec un fermoir métallique ou des objets aimantés, pouvant démagnétiser une zone importante de la piste magnétique. Une solution connue pour pallier la perte de données d'un message consiste à écrire deux ou trois fois ce message sur une piste de la bande magnétique. Lors du décodage on lit la première occurrence du message. On teste alors l'intégrité des données lues avec un code de redondance longitudinal ou LRC (abréviation anglo-saxonne de Longitudinal Redundancy Check ) par exemple. Si cette occurrence du message est erronée, on peut en lire la seconde voire la troisième occurrence. Un avantage de cette solution est que chaque occurrence du message peut utiliser un codage normalisé. Un premier inconvénient est que cette solution ne permet pas de décoder correctement le message si plusieurs zones de la bande magnétique sont endommagées, rendant chacune des occurrences illisibles. Un autre inconvénient est que cette solution double, voire triple le nombre de données à inscrire sur une piste. Or le nombre de données que l'on peut inscrire sur une piste dépend de sa densité d'une part, et de sa longueur d'autre part. Afin d'augmenter le nombre de données inscrites sur une piste, la longueur maximale étant fixée par la taille du support, il est nécessaire de changer sa densité. Augmenter la densité d'une piste sur un support déterminé tel qu'un ticket de parking implique de modifier tous les appareils de lecture et d'écriture déjà installés. Ces modifications s'accompagnent non seulement d'une augmentation de prix des appareils à l'unité, mais aussi d'un investissement important lorsque beaucoup d'appareils sont déjà installés. Un but de l'invention est de permettre le décodage correct d'un message lorsqu'une partie du message lu est erronée, tout en limitant la place occupée par le message codé. Ce but est atteint par le procédé selon l'invention de codage d'un message (MES) constitué d'une suite de N données numériques, qui comprend au moins les étapes suivantes : une étape de réduction du message (MES) pour obtenir un message réduit (RED) constitué d'une autre suite de M données numériques, où M est strictement inférieur à N, en appliquant une loi déterminée au message d'origine telle que 'ta suite de données du message d'origine (MES) étant notée (d (irez où où I est un ensemble de N indices, la suite de données du message réduit (RED) étant notée (ro (j)) où Jo est un ensemble de Mo indices, étant donné une application surjective go de 1 vers Jo associant à chaque indice i de 1 une image j dans Jo, les données du message d'origine (MES) sont assemblées en p-uplets uo (j) de Wo, j éléments, où Wo, j est un entier, définis par la relation uo (j) = (d (i)) ; . les données numériques du message d'origine (MES) et du message réduit (RED) appartenant à un ensemble E, étant donné des applications fo, j du produit cartésien E"vers E associant à chaque p-uplet uo (j) une image dans E, les données r (j) du message réduit (RED) sont déterminées par la relation ra (j) = . j (u'o (j)) ; les applications fo, j étant telles que pour tout p-uplet ua (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément ra (j) du message réduit (RED) d'autre part une étape de mise en forme du message d'origine (MES) et du message réduit (RED) pour obtenir le message codé. L'invention concerne aussi le procédé de décodage, les supports d'enregistrement, et les dispositifs de codage liés à ce procédé de codage. L'invention a pour principaux avantages qu'elle peut être compatible avec des procédés de codage normalisés et qu'elle est simple à mettre en oeuvre. D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard de dessins annexés qui représentent : * la figure 1 un exemple de ticket de parking comportant une bande magnétique ; la figure 2 un exemple de cartographie mémoire d'un message codé selon une technique connue ; * la figure 3 un exemple de signal analogique correspondant à un message codé ; 'ta figure 4, un exemple de signaux logiques correspondant à un message codé ; ') la figure 5 un exemple de cartographie mémoire d'un message codé selon l'invention ; * ta figure 6 un exemple de tableau servant au décodage selon l'invention du message codé figure 4 ; * la figure 7 un autre exemple de cartographie mémoire d'un message codé selon l'invention. On se réfère maintenant à la figure 1 sur laquelle est illustré un ticket de parking TI. Ce ticket TI comprend une bande magnétique BM sur laquelle est inscrit un message codé. Ce ticket peut comprendre en outre des symboles imprimés tels qu'un logo LG, un texte TXT. Pour être lu, ce ticket TI est inséré dans un lecteur, l'avant AV du ticket entrant en premier dans de lecteur. Le message codé est inscrit sur la bande magnétique BM sous la forme de codes magnétiques. Ces codes magnétiques sont inscrits dans un sens tel que le début du message codé soit situé à l'avant AV du ticket, et la fin du message codé soit située à l'arrière AR du ticket. De cette façon, le message codé peut être lu à l'endroit. Le message codé est constitué d'une suite de bits auxquels correspondent les codes magnétiques inscrits sur la piste Pl. Cette suite de bits correspond aussi à une suite de caractères. Ces caractères sont de deux sortes : les caractères de données d'une part, et les caractères de contrôle d'autre part. Les caractères de données peuvent être des caractères numériques ou alphanumériques. Dans tous les cas les caractères sont des données numériques. Le message d'origine, c'est à dire le contenu du message codé, est une suite de données numériques que l'on représente par la référence MES sur les figures. Les caractères de contrôles sont insérés automatiquement lors de l'écriture des messages par les codeurs. Ces caractères de contrôle permettent de déterminer le début et la fin du message MES sur la piste, et d'effectuer des contrôles d'intégrité. On appelle format du message codé la correspondance entre la suite de bits constituant ce message, et la suite de données numériques du message d'origine MES. Les normes suivantes peuvent être consultées pour plus d'information sur les bandes magnétiques utilisées sur les cartes de crédit, et pouvant être utilisées pour les tickets de parking aussi : ISO 7811-2 Bande magnétique faiblement coercitive ISO 7811-6 Bande magnétique fortement coercitive ISO 7811-4 Emplacement des pistes 1 et 2 ISO 7811-5 Emplacement de la piste 3 Codages usuels Définitions usuelles des pistes : Un message est généralement codé selon un format normalisé sur l'une des pistes d'une bande magnétique. On distingue usuellement trois pistes, numérotées 1 à 3, auxquelles sont associés des formats normalisés : . La piste n 1, développée par l'IATA, contient des caractères alphanumériques pour l'automatisation de la billetterie des compagnies aériennes. Elle est aussi utilisée pour d'autres transactions dans lesquelles une base de données de réservation est utilisée. 'La piste n 2, développée par l'ABA, contient des caractères numériques pour l'automatisation de transactions financières. Aujourd'hui, cette piste est aussi utilisée par la plupart des systèmes qui requièrent un numéro d'identification et un minimum d'autres informations de contrôle. 'La piste n 3, développée la THRIFT, contient des informations dont une partie doit être mise à jour (re-enregistrée) à chaque transaction. Par exemple les distributeurs de billets qui opèrent en mode déconnecté ( off-line ). On se réfère maintenant à la figure 2 sur laquelle est représenté un message codé selon une technique connue. Ce message peut être inscrit sur une piste PI d'une bande magnétique, telle que la bande magnétique BM du ticket TI illustré figure 1. Le message codé débute par une marge M1. Cette marge M1 comprend une suite de bits à zéro. La longueur de cette marge M1 peut être variable. Après cette marge M1, une balise de départ (appelée start sentinel dans la littérature anglo-saxonne) SS indique le début du message MES. Cette balise de départ SS est une séquence de bits déterminés. Après cette balise de départ SS, le message codé comprend la suite de N données numériques du message d'origine MES, c'est à dire le contenu du message. Après ces N données, une balise de fin (appelée end sentinel dans la littérature anglo-saxonne) ES indique la fin du contenu du message. Cette balise est une séquence de bits déterminés. Après cette balise ES, un code de redondance longitudinal C1 permet de vérifier la validité des N données inscrites. Ce code de redondance C1 est suivi d'une seconde marge M2 de bits à zéro jusqu'à la fin de la piste. La longueur de cette marge est variable. Piste n 1 (TATA) : On décrit maintenant un exemple usuel de codage de la piste n 1. Sa densité est généralement de 210 BPI. Les caractères sont des caractères alphanumériques. Ils occupent 7 bits dont 6 bits de données Bi, B2, Bs, B4, Bs, B6 et un bit de parité P. Le bit de parité P est déterminé à partir des bits de données Bi, B2, Bs, B4, 85, Be. Sa valeur (0 ou 1) est telle que le nombre total de bits à 1 dans le caractère soit toujours impair. Le premier bit de donnée B1 est le bit de poids faible, le dernier bit de donnée B6 est le bit de poids fort. La table suivante donne la valeur des 7 bits en fonction du caractère (colonne Caract. ). La première colonne du tableau (colonne Hex. ) est la valeur numérique du caractère (hors bit de parité) en notation hexadécimale. Hex. B1 B2 B3 B4 B5 B6 P Hex. Caract. B1 B2 B3 B4 B5 B6 P 00 0 0 0 0 0 1 0 01 ! 1 0 0 0 0 0 0 21 A 1 0 0 0 0 1 1 02 " 0 1 0 0 0 0 0 22 B 0 1 0 0 0 1 1 03 1 1 0 0 0 0 1 23 C 1 1 0 0 0 1 0 04 0 0 1 0 0 0 0 24 D 0 0 1 0 0 1 1 05 1 0 1 0 0 0 1 25 e 1 0 1 0 0 1 0 06 0 1 1 0 0 0 1 26 F 0 1 1 0 0 1 0 07 ' 1 1 1 0 0 0 0 27 G 1 1 1 0 0 1 1 08 ( 0 0 0 1 0 0 0 28 H 0 0 0 1 0 1 1 09 ) 1 0 0 1 0 0 1 29 I 1 0 0 1 0 1 0 0A 1 0 1 0 0 1 2A J 0 1 0 1 0 1 0 0B 1 1 0 1 0 0 0 2B K 1 1 0 1 0 1 1 0C , 0 0 1 1 0 0 1 2C L 0 0 1 1 0 1 0 0D - 1 0 1 1 0 0 0 2D M 1 0 1 1 0 1 1 0E . 0 1 1 1 0 0 0 2E N 0 1 1 1 0 1 1 0F / 1 1 1 1 0 0 1 2F O 1 1 1 1 0 1 0 10 0 0 0 0 1 0 0 30 P 0 0 0 0 1 1 1 11 1 0 0 0 1 0 1 31 Q 1 0 0 0 1 1 0 12 0 1 0 0 1 0 1 32 R 0 1 0 0 1 1 0 13 1 1 0 0 1 0 0 33 S 1 1 0 0 1 1 1 14 0 0 1 0 1 0 1 34 T 0 0 1 0 1 1 0 15 1 0 1 0 1 0 0 35 U 1 0 1 0 1 1 1 16 0 1 1 0 1 0 0 36 V 0 1 1 0 1 1 1 17 1 1 1 0 1 0 1 37 W 1 1 1 0 1 1 0 18 0 0 0 1 1 0 1 38 X 0 0 0 1 1 1 0 19 1 0 0 1 1 0 0 39 Y 1 0 0 1 1 1 1 1A 0 1 0 1 1 0 0 3A Z 0 1 0 1 1 1 1 1B ; 1 1 0 1 1 0 1 3B [ 1 1 0 1 1 1 0 1C 0 0 1 1 1 0 0 3C \ 0 0 1 1 1 1 1 1D 1 0 1 1 1 0 1 3D ] 1 0 1 1 1 1 0 1E 0 1 1 1 1 0 1 3E ^ 0 1 1 1 1 1 0 1F 1 1 1 1 1 0 0 3F ~ 1 1 1 1 1 1 1 On utilisera l'abréviation hex à la suite des nombres exprimés en notation hexadécimale dans la suite de la description. La marge M1 comprend approximativement 62 bits à zéro. La balise de départ SS est le caractère de contrôle % c'est à dire 05 hex. Ce caractère de contrôle correspond à la séquence de bits 1010001. Les données du message MES peuvent occuper au maximum 76 caractères. La balise de fin ES est le caractère de contrôle ? c'est à dire 1 F hex. Ce caractère de contrôle correspond à la séquence de bits 1111100. La marge M2 comprend au moins 62 bits à zéro. Exemple (IATA) : Le message TOTO2 est codé de la manière suivante : 000... 000 la marge de début M1 (approximativement 62 bits), 101001 la balise de départ SS, 0010110 le caractère T , 1111010 le caractère 0 , 0010110 le caractère T , 1111010 le caractère 0 , 0100101 le caractère 2 , 1111100 la balise de fin ES, 1110110 le code de redondance longitudinal C1, 000... 000 la marge de fin M2 (minimum de 62 bits). Le code de redondance longitudinal est un caractère de contrôle. Tous les caractères sont valides y compris ? , c'est à dire 1F hex. Ce code de redondance longitudinal C1 est déterminé en additionnant par un OU exclusif tous les données numériques (caractères de données et caractères de contrôle) du message codé à partir de la balise de départ SS (incluse) jusqu'à la balise de fin ES (incluse). Puis la parité de caractère est déterminée. Piste n 2 (ABA) : On décrit maintenant un exemple usuel de codage de la piste n 2. Sa densité est généralement de 75 BPI. Les caractères sont des caractères numériques. Ils occupent 5 bits dont 4 bits de données Bi, B2, B3, B4 et un bit de parité P. Le bit de parité P est déterminé à partir des bits de données Bi, B2, Bs, B4. Sa valeur (0 ou 1) est telle que le nombre total de bits à 1 dans le caractère soit toujours impair. Le premier bit de donnée B1 est le bit de poids faible, le dernier bit de donnée B4 est le bit de poids fort. La table suivante donne la valeur des 5 bits en fonction du caractère (colonne Caract. ). La première colonne du tableau (colonne Hex. ) est la valeur numérique du caractère (hors bit de parité) en notation hexadécimale. Hex. Caract. B1 B2 B3 B4 P 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 10000 2 2 01000 3 3 1 1 0 0 1 4 4 00100 5 5 10101 6 6 01101 7 7 11100 8 8 00010 9 9 1 0 0 1 1 A : 0 1 0 1 1 B 1 11010 C 0 0 1 1 1 D = 10110 E > 01110 F ? 11111 La marge M1 comprend approximativement 22 bits à zéro. La balise de départ SS est le caractère de contrôe ; c'est à dire B hex. Ce caractère de contrôle correspond à la séquence de bits 11010. Les données du message MES peuvent occuper au maximum 37 caractères (soit 40 caractères pour le message codé). La balise de fin ES est le caractère de contrôle ? c'est à dire F hex. Ce caractère de contrôle correspond à la séquence de bits 11111. La marge M2 comprend au moins 22 bits à zéro. Piste n03 (THRIFT) : On décrit maintenant un exemple usuel de codage de la piste n 3. Sa densité est généralement de 210 BPI. Les caractères sont des caractères numériques. Ils occupent 5 bits de la même façon que pour la piste n 2. La marge M1 comprend approximativement 62 bits à zéro. La marge M2 comprend au moins 62 bits à zéro. Les caractères de contrôle (ES, SS) sont les mêmes que pour la piste n 2. Transcription en codes magnétiques et signaux électriques : La piste magnétique comprend une succession de pôles magnétiques Nord (N) et Sud (S). Des lignes de champ magnétique partent du pôle N et vont au pôle S. Les bandes magnétiques comprennent des particules ferromagnétiques qui se comportent comme des petits aimants. Ces particules sont retenues de manière rigide par une résine. La polarité de ces particules est stable. Par conséquent, ces particules se comportent comme des aimants permanents. L'application d'un fort champ magnétique de polarité inverse permet d'en changer la polarité. La force du champ magnétique requis pour produire cet effet est appelée la force coercitive. Selon les particules utilisées, les bandes magnétiques sont faiblement ou fortement coercitives. L'inscription (enregistrement) d'une bande magnétique consiste à appliquer un champ magnétique pour faire apparaître des transitions N-S ou S-N. Cette application peut être réalisée avec une tête d'écriture magnétique comprenant un solénoïde. Ce solénoïde permet de générer un champ magnétique à partir d'une tension. Lors de la lecture, les transitions N-S ou S-N sont converties en signaux électriques par l'intermédiaire d'une tête de lecture comprenant un solénoïde. Le passage de cette tête de lecture sur la bande magnétique provoque un signal électrique. Il existe plusieurs manières d'inscrire (d'enregistrer) une suite de 0 et de 1 sur une bande magnétique. On peut citer notamment l'enregistrement F2F défini par l'ISO. F2F signifie fréquence/double fréquence. On parle d'enregistrement à deux phases cohérentes ou d'enregistrement Aiken Biphase . L'enregistrement au format F2F permet lors de la lecture de générer un signal d'horloge. En d'autres termes, la suite de codes magnétiques, transcription de la suite de bits, permet au lecteur de générer un signal d'horloge pour déterminer le début et la fin des bits lus. Ceci permet de faire défiler la bande magnétique devant la tête de lecture sans en contrôler la vitesse de défilement. Par conséquent, les lecteurs à balayage (appelés swipe readers dans la littérature anglosaxonne), dans lesquels le ticket ou la carte est passé manuellement dans une fente, peuvent fonctionner quelle que soit la vitesse de passage du ticket ou de la carte dans la fente. On se réfère maintenant à la figure 3 sur laquelle est illustré un exemple de signaux analogiques correspondant à un message inscrit au format F2F. Les codes magnétiques lus sont convertis en un signal électrique analogique SIG1. Des transitions de champ magnétique sont inscrites à une période régulière, correspondant à la largeur d'un bit. Ces transitions permettent d'effectuer une synchronisation. Lors de la lecture, ces transitions génèrent des pics de signal TSYNC à une période T1. Les 1 sont codés en mettant une transition supplémentaire entre deux transitions de synchronisation TSYNC. Les 0 sont codés en ne mettant pas de transition supplémentaire. Par conséquent les transitions T2F à la fréquence double correspondent à des uns. On se réfère maintenant à la figure 4 sur laquelle est illustré un exemple de signaux logiques générés lors de la lecture d'un message au format F2F. Lors de la lecture du message inscrit sur la bande magnétique BM, un signal SIG2 indique la présence du ticket. Un signal SIG3 à deux niveaux correspond à la séquence de bits inscrits sur la piste PI. Un signal d'échantillonnage SIG4 est généré lors de la lecture. Il peut être généré en utilisant un échantillonneur bloqueur par exemple. Lors de la lecture des marges (bits à zéros), on détermine la période d'un bit T1. Après chaque transition de synchronisation TSYNC, une bascule monostable attend pendant environ 75% de la période d'un bit T1. Si une transition intervient, un bit 1 est lu. Sinon un bit 0 est lu. Après cette durée de 75% de T1, on détecte la transition suivante qui servira de signal d'horloge. La période T2 pendant laquelle on détecte le signal d'horloge a une durée d'environ 25% de T1. Il peut arriver que qu'une dégradation du support, ou un signal parasite altère ce signal. Certaines données lues peuvent être alors erronées. Le code de redondance longitudinal C1 et les bits de parité permettent de tester que l'intégrité du contenu du message MES. Si ce contenu est erroné le ticket Tl est illisible. Nouveau codage On se réfère maintenant à la figure 5 sur laquelle est illustré un exemple de message codé selon l'invention. Ce message peut être inscrit sur une piste PI d'une bande magnétique, telle que la bande magnétique BM du ticket Tl illustré figure 1. De même que dans l'exemple illustré figure 2, le début message codé comprend une marge M1 de longueur variable, une balise SS indiquant le début du contenu du message MES, le contenu du message MES de N données numériques, une balise ES indiquant la fin du contenu du message MES, et un code de redondance longitudinal C1. Selon l'invention, ce code de redondance longitudinal est suivi de données déterminées à partir du contenu du message. Ces données constituent un message réduit RED, dont la longueur est inférieure à celle du message d'origine MES. Ce message réduit permet de reconstituer les éventuelles parties illisibles du message d'origine MES. Le message réduit RED peut être suivi par une balise de fin ES. Ceci permet notamment la lecture du message codé dans les deux sens. Afin de déterminer le message réduit, les données du message d'origine MES sont assemblées en p-uplets. Chaque élément du message réduit RED est l'image par une application de l'un de ces p-uplets. Le premier élément du message réduit est l'image du premier p-uplet, le second élément du message réduit est l'image du second p-uplet,... On utilise dans la suite de la description un formalisme mathématique des ensembles qui est rappelé dans la collection Techniques de l'Ingénieur, notamment volume AF1 Sciences fondamentales mathématiques , dans l'article AF33 Langage des ensembles et des structures par Bernard RANDE de octobre 1997. Le message d'origine MES comprend N données numériques notées d (i), où i est un indice d'un ensemble 1 de N indices. Les données numériques d (i) peuvent être des entiers appartenant à l'ensemble E des entiers compris par exemple entre 0 et 15. On utilise les notations hexadécimales pour représenter les données d (i). En utilisant des notations mathématiques : MES = (d (i) 11 avec 1 = {0 ; 1 ; 2 ; 3 ;... ; N-1} oùd (i) EE avec E= {O ; 1 ; 2 ; 3 ;... ; 9 ; A ; B ; C ; D ; E ; F} Le message réduit RED comprend Mo données numériques notées ro (j), où j est un indice d'un ensemble J0 de Mo indices. Les données ro (j) peuvent être des entiers appartenant à l'ensemble E. En utilisant des notations mathématiques : RED = (r, (j)) avec JO = {0 ; 1 ; 2 ; 3 ;... ; Mo-1} où fa (j) E E Les données du message d'origine MES sont assemblées en puplets notés Uo (j) où j appartient à Jo de la manière suivante : où go est une application surjective de 1 vers Jo. Exemple de codage nô 1 : On prend Mo = N/2. En d'autres termes, le message réduit RED est deux fois plus petit que le message d'origine MES. L'application 90 peut être l'application suivante : f-Je i H mod (i, Mo) l où mod est la fonction modulo qui renvoie le reste de la division de i par Mo. En d'autres termes si on divise le message MES en deux zones de longueurs identiques Z1 et Z2, la zone Z1 correspondant à la première moitié du message MES, la zone Z2 correspondant à la seconde moitié, chaque p-uplet uo (j) comprend un élément de la première zone Z1 et un élément de la seconde zone Z2. Dans cet exemple, les p-uplets sont des couples. Plus précisément, le premier élément D1 de la zone Z1 et le premier élément D4 de la zone Z2 forment le premier couple uo (O) ; le second élément D2 de la zone Z1 et le second élément D5 de la zone Z2 forment le second couple uo (1) ;... ; le dernier élément D3 de la zone Z1 et le dernier élément D6 de la zone Z2 forment le dernier couple uo (Mo-1). Ceci peut s'écrire en utilisant les notations mathématiques précédentes de la manière suivante : Chaque élément du message réduit RED est déterminé à partir des p-uplets (des couples dans cet exemple) précédents. Le premier élément D7 du message réduit RED est l'image du couple (D1 ; D4) par une application fo, o. Le second élément D8 du message réduit RED est l'image du couple (D2 ; D5) par une application fo, 1... Le dernier élément D9 du message réduit RED est l'image du couple (03 ; 06) par une application fo, Mo-1' En utilisant des notations mathématiques on peut écrire : ro (0) = fo, o (Uo (0)) roM-UuoM) ro (j)- (uo (j)) r. (j) = fo, j (uo (j ro (Mo-1) = fO, MO-1 (uo (Mo-1)) où fo, o, fo. i, to, j, fo, mo-, sont des applications. Les applications foj sont telles que pour tout p-uplet uoG), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément ro (j) du message réduit RED d'autre part. Ces applications fo, j peuvent être l'application suivante : où 0 est un opérateur binaire. Cet opérateur peut un opérateur logique tel qu'un OU exclusif ou la négation d'un OU exclusif. Les valeurs des éléments D7 et D8 par exemple du message réduit RED sont déterminés par les relations suivantes : Selon un mode de réalisation avantageux, cet opérateur 0est un OU exclusif, dont la mise en oeuvre est simple à la fois pour le codage et le décodage. On représente le OU exclusif par le symbole A . Lors de la lecture, si la donnée D1 est illisible par exemple, il est possible de la retrouver lors du décodage à partir de D4 d'une part et de D7 d'autre part : De même si la donnée D4 est illisible, il est possible de la retrouver à partir des D1 d'une part et de D7 d'autre part : Ainsi, il est possible de déterminer la valeur de n'importe quel élément du couple D1, D4 du couple uo (0) à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément ro (O) c'est à dire D7 du message réduit RED d'autre part. Il en est de même pour tous les couples uo (j) car les applications fo, j sont toutes identiques dans cet exemple. Par conséquent, le message réduit RED permet de reconstituer les éventuelles parties illisibles du message d'origine MES. Dans cet exemple, le message réduit permet de reconstituer jusqu'à M données illisibles. En d'autres termes, il est possible de lire correctement le ticket même si 1/3 de la partie utile de la bande magnétique BM est endommagée. Ceci est valable quel que soit l'endroit où la bande magnétique BM est endommagée. L'opérateur OU exclusif a pour autre avantage de permettre non seulement de reconstruire des parties illisibles du message d'origine MES, mais encore d'effectuer des contrôles d'intégrité par zones. Notamment on peut vérifier l'intégrité du message réduit RED car son code de redondance longitudinal est le même que celui du message d'origine MES : Une fois le message réduit RED déterminé, le message d'origine MES et le message réduit RED sont mis en forme. Lors d'une première étape de mise en forme, la balise SS est ajoutée avant le message d'origine MES, la balise ES est ajoutée à la fin du message d'origine MES, un code de redondance longitudinal C1 du message d'origine est déterminé et ajouté après la balise ES. Le message réduit RED est ajouté à la suite du code de redondance longitudinal C1, et une dernière balise ES est ajoutée à la suite. Selon la longueur de la piste Pl, la densité de la piste PI et la longueur du message MES, la longueur des marges M1 et M2 est déterminée. La marge M1 est ajoutée avant la balise SS, la marge M2 est ajoutée après la dernière balise B3. Lors d'une seconde étape de mise en forme, toutes ces données (y compris les marges et les balises) sont codées sur 5 bits, les quatre premiers bits étant des bits de données, le dernier bit étant un bit de parité. Ce bit de parité permet de vérifier l'intégrité du caractère lors du décodage. Il arrive parfois que le lecteur de piste magnétique ne lise pas correctement les informations présentes sur la piste. Dans certains cas, le lecteur renvoie une suite de 1 ininterrompue, qui pourrait être interprétée par le décodeur comme une suite de caractères de code H hex. Or le bit de parité de F hex est 1. Par conséquent le décodeur ne détecterait pas d'erreur de parité. Selon une variante avantageuse, le bit de parité de F hex est mis à 0 au lieu de 1. Ceci permet de détecter une erreur de parité lorsque le lecteur renvoie une longue suite de 1. En effet, il est possible d'avoir au maximum une suite de 7 bits à 1 (ce qui correspond à la séquence de caractères de code 3F hex) dans des données intègres. Le tableau suivant donne la valeur du bit de parité en fonction du caractère : Hex. B3 B4 P 0 0 0 0 0 1 1 1 0 0 0 0 2 0 1 0 0 0 3 1 1 0 0 1 1 10000 2 0 1 0 0 0 3 11001 4 0 0 1 0 0 5 10101 6 01101 7 11100 8 0 0 0 1 0 9 1 0 0 1 1 A 0 1 0 1 1 B 11010 C 00111 D 1 0 1 1 0 E 0 1 1 1 0 F 11110 Le caractère est représenté par son code hexadécimal dans la première colonne de ce tableau d'une part, et par la valeur de ses quatre bits dans les colonnes suivantes d'autre part. Le premier bit B, est le bit de poids faible, le dernier bit B4 est le bit de poids fort. La dernière colonne du tableau est le bit de parité P. Selon variante de réalisation équivalente, on code l'inverse de ce bit de parité, sauf pour F hex. En d'autres termes, la valeur du bit de parité est telle que le nombre total de bits à 1 soit toujours pair. Exemple de codage n 2 : On prend dans cet exemple N = 40 et M = 15. L'application 90 peut être définie par : g0(0) = 0 g0(1) = 1 g0 (2) = 2 g0 (3) =3 go (4) = 4 go (5) = 0 g0 (6) = 1 go (7) =2 go (8) = 3 go (9) = 4 go (10) = 0 go (11) = 1 g0(12) = 2 g0(13) = 3 g0(14) = 4 g0(15) = 0 g0(16) = 1 g0(17) = 2 g0(18) = 3 go (19) = 4 go (20) = 5 g0(21) = 6 g0 (22) = 7 g0(23) = 8 g0(24) = 9 go (25) = 5 go (26) = 6 go (27) = 7 g0(28) = 8 go (29) = 9 go (30) = 5 g0 (31) = 6 g0 (32) = 7 go (33) = 8 go (34) = 9 go (35) =10 go (36) =11 go (37) =12 go (38) = 13 go (39) = 14 Par conséquent, les données du message MES dont le rang est compris entre 0 et 19 sont assemblées en p-uplets de 4 éléments, des données du message MES dont le rang est compris entre 20 et 34 sont assemblées en p-uplets de 3 éléments, et les données du message MES dont le rang est compris entre 35 et 39 sont assemblées en p-uplets de 1 élément (singletons). En effet, les données du message MES n'ont pas toutes la même importance. Ainsi les données de rang 35 à 39 peuvent être des données financières, c'est à dire des données critiques. C'est pourquoi ces données sont regroupées dans des p-uplets comprenant peu d'éléments (1 élément dans cet exemple). De plus, certaines zones du message MES peuvent être plus exposées que d'autres. Ainsi, il est plus probable d'avoir une pliure au milieu d'un ticket qu'à son début par exemple. C'est pourquoi les premières données du message MES (rang compris entre 0 et 19) sont assemblées en p-uplets de 4 éléments, alors que les données suivantes sont assemblées en p-uplets de 3 éléments seulement. Les p-uplets uoU) comprenant Wo,, éléments, obtenus avec l'application 90 précédente, sont écrits dans le tableau suivant : j u0(j) W0,1 0 (d (0) ; d (5) ; d (10) ; d (15) ) 4 1 (d(1) ; d (6) ; d(11) ; d(16)) 4 2 (d (2) ; d (7) ; d (12) ; d(17)) 4 3 (d (3) ; d (8) ; d (13) ; d (18) ) 4 4 (d (4) ; d (9) ; d(14) ; d(19)) 4 5 (d (20) ; d (25) ; d (30) ) 3 6 (d (21) ; d (26) ; d (31) ) 3 7 (d (22) ; d (27) ; d (32) ) 3 8 (d (23) ; d (28) ; d (33) ) 3 9 (d (24) ; d (29) ; d (34) ) 3 10 (d (35)) 1 11 (d (36)) 1 12 (d (37)) 1 13 (d (38)) 1 14 (d (39)) 1 Chaque élément ro (j) du message réduit RED est déterminé à partir des p-uplets uo (j) précédents de la manière suivante : ro (0) = fou (uo (0)) ro (1) =fo, 1 (uo (1)) ... ro (j) = fo, j (Uo (i)) ... ro (Mo-1) = fo. 1 (uo (Mo-1)) où fo, o, fo, i,fo.j.fo.M-1 sont des applications. Ces applications fo, j sont telles que pour tout p-uplet uo (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément ro (j) du message réduit RED d'autre part. Ces applications peuvent être définies de la manière suivante : où # est un opérateur binaire. Lorsque le p-uplet ne comprend qu'un élément (pour j compris entre 10 et 14), cette application est l'identité. L'opérateur binaire 0 peut un opérateur arithmétique tel qu'une addition ou une soustraction modulo la plus grande valeur de E. Si cet opérateur # est une addition par exemple, les valeurs des éléments rom peuvent être déterminées par les relations du tableau suivant : j r0(j) 0 (d (0) +d (5) +d (10) + d(15)) & F 1 (d (1) +d (6) + d(11) + d(16)) & F 2 (d (2) +d (7) +d (12) + d(17)) & F 3 (d (3) +d (8) +d (13) + d(18)) & F 4 (d (4) +d (9) +d (14) + d(19)) & F 5 (d (20) + d (25) + d (30) ) & F 6 (d (21) +d (26) +d (31) ) & F 7 (d (22) + d (27) + d (32) ) & F 8 (d (23) + d (28) + d (33) ) & F 9 (d (24) + d (29) + d (34) ) & F 10 d (35) 11 d(36) 12 d (37) 13 d(38) #4 d (39) On a utilisé le symbole & pour représenter un ET logique. Ce ET logique avec la valeur F hex (c'est à dire 15) est équivalent à l'opérateur modulo. En pratique, on préfère utiliser un ET logique dont l'implémentation est plus simple et plus rapide. De manière équivalente, il est possible d'effectuer des additions et de mémoriser le résultat dans un registre mémoire de 4 bits. De cette manière, les retenues au-delà du 4@ème bit de poids fort ne sont pas mémorisées, et le ET logique n'est plus nécessaire. Une fois le message réduit RED déterminé, le message d'origine MES et le message réduit RED sont mis en forme. La mise en forme du message codé peut être la même que celle de l'exemple de codage n 1 ou être une autre mise en forme. Lecture et décodage On décrit maintenant un exemple de lecture et de décodage d'un message codé selon l'invention. Une première étape est la lecture des données codées. Cette lecture peut être effectuée par un appareil de lecture comprenant par exemple une tête de lecture magnétique permettant de lire le message codé sur la bande magnétique. Le message codé peut être lu dans un sens ou dans l'autre. Avantageusement, le message codé est lu successivement dans un sens puis dans l'autre. Dans cet exemple, le message a été codé selon l'exemple de codage n 1. La longueur du message MES est fixe. Selon le sens de lecture, la marge M1 ou la marge M2 est lue en premier. Ces marges comprennent des bits à zéros. Le signal électrique généré ressemble à un signal d'horloge, ce qui permet d'effectuer une synchronisation du lecteur. Selon le sens de lecture, la balise SS ou la balise ES est lue ensuite. Deux séquences de 15 bits lus à la fin de la marge (M1 ou M2), correspondant aux deux sens de lecture, sont représentées dans le tableau suivant : n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Sens 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 Sens 1 La première ligne de ce tableau est une numérotation des 15 bits lus. La ligne suivante contient la séquence de bits lus dans le premier sens (sens 1) de lecture. Dans ce sens, le message codé est lu à l'endroit. Le premier bit non nul lu est le 11 ème bit. La première balise lue est SS, c'est à dire le caractère de code B hex. Ce caractère de code B correspond aux bits non 1 à 15 (cinq derniers bits) : 11010. La ligne suivante contient la séquence de bits lus dans le second sens (sens 2) de lecture. Dans ce sens, le message codé est lu à l'envers. Le premier bit non nul lu est le 12 bit. La première balise lue est ES, c'est à dire le caractère de code F hex. Le caractère F hex étant lu à l'envers, le premier bit lu est le bit de parité (c'est à dire 0 dans cet exemple), les quatre bits suivants sont des 1. Ce caractère correspond aux bits non 1 à 15 : 01111. Il est possible de déterminer le sens de lecture à partir des données lues. En effet, les premiers bits lus sont différents selon le sens de lecture. Ceci peut être utile si aucun autre moyen ne permet de déterminer le sens d'introduction du ticket, notamment pour les tickets de parking dont la bande magnétique est en position centrale. Le ticket effectue un premier passage devant la tête de lecture magnétique du lecteur. Les données lues sont mémorisées. Puis le ticket est lu dans l'autre sens. Il effectue un second passage devant la tête de lecture. Les données lues dans l'autre sens sont mémorisées. Lors de la lecture, on teste l'intégrité des données. On peut utiliser notamment les bits de parité et le code de redondance longitudinal C1 pour effectuer ce test d'intégrité. On peut aussi vérifier que les données lues dans les deux sens sont identiques. Si ces données lues ne sont pas intègres, on localise les données erronées. Cette localisation peut être faite en utilisant les bits de parité par exemple. Exemple de localisation des données erronées n 1 : On décrit maintenant un premier exemple de lecture et de localisation des données erronées. On se réfère à la figure 6 sur laquelle est illustré un exemple de tableau utilisé pour mémoriser les données lues. Ce tableau TAB peut être un tableau de N+Mo entiers, c'est à dire 1.5 x N entiers. Ces entiers peuvent être codés sur 16 bits ou 32 bits par exemple pour rendre l'adressage du tableau TAB plus rapide. Les données mémorisées lors de la lecture à l'endroit (sens 1) sont recopiées dans le tableau TAB à partir de son début DEB1. On ne recopie pas dans ce tableau les balises SS, ES et le code de redondance longitudinal C1. On vérifie ensuite le bit de parité des données recopiées. Le premier bit de parité erroné correspond à une donnée non intègre. On peut supposer par précaution que les quelques données précédant cette donnée sont erronées. Par exemple les 2 données précédentes sont supposées non intègres. Si on ne détecte pas de donnée pendant un temps supérieur à deux fois la période d'un bit (ce qui arrive en cas de rupture de la bande magnétique par exemple), considère que les 2 données précédentes sont non intègres. Si les données sont inscrites au format F2F, il n'est pas possible de lire la suite du ticket (perte d'horloge). Les données suivant les données non intègres sont non lues. On remplace les données supposées non intègres ou non lues par une valeur supérieure à 15, c'est à dire supérieure à la plus grande valeur lue possible. On dispose alors dans le tableau TAB d'une plage de données LEC1 intègres. Cette plage de données LEC1 est mémorisée dans le début du tableau TAB, c'est à dire de son début DEB1 jusqu'à une limite FIN1. Les données mémorisées lors de la lecture à l'envers (sens 2) sont recopiées dans le tableau TAB à partir de sa fin DEB2. En utilisant les bits de parité, on détermine de la même façon une seconde plage de données LEC2 intègres. Bien entendu, on n'écrit pas dans la plage de données LEC1. La plage de données LEC2 est mémorisée dans la fin du tableau TAB, c'est à dire de sa fin DEB2 jusqu'à une limite FIN2. Les éléments du tableau TAB compris entre la limite FIN1 et la limite FIN2 correspondent à des données ERR supposées non intègres ou des données non lues. Bien entendu, si la lecture commence dans à l'envers (sens 2) on commence par remplir la fin du tableau TAB puis on remplit le début du tableau TAB. Exemple de localisation des données erronées n 2 : On décrit maintenant un autre exemple de localisation des données erronées. On suppose dans cet exemple qu'il n'y a pas de perte d'horloge en cas d'erreur. On cherche à localiser les données erronées dans un flot de données. Ce flot de données peut être celui des données lues lors d'un passage de la bande magnétique devant la tête de lecture. Ce flot de données est traité pour détecter les données erronées. Le résultat de ce traitement est un second flot de données. Les données du second flot sont marquées donnée intègre ou donnée non intègre . Ce marquage peut être effectué sur un bit (la valeur 0 pour donnée intègre et 1 pour donnée non intègre par exemple). Ce bit peut remplacer le bit de parité des données du premier flot de données. Chaque donnée du premier flot de données est recopiée dans le second flot de données avec le marquage donnée intègre ou donnée non intègre selon la valeur du bit de parité. Cette recopie est effectuée avec un retard de deux données. En d'autres termes, les données du second flot de données sont transmises avec un retard de deux données. Si une donnée est marquée donnée non intègre" (suite à un bit de parité erroné), les deux données précédentes sont aussi marquées donnée non intègre . Ainsi, une donnée peut être marquée donnée intègre dans un premier temps, puis donnée non intègre ensuite. Les données suivant cette première donnée marquée donnée non intègre sont aussi marquées donnée non intègre à moins que le bit de parité de la donnée à marquer et des deux données précédentes soit correct. Par conséquent une donnée est marquée donnée intègre que si les deux données précédentes et les deux données suivantes ont des bits de parité corrects. On revient au premier exemple de localisation de données erronées pour décrire la suite du décodage. Dans l'exemple illustré figure 6, les données supposées non intègres ERR se répartissent en deux parties E1 et E2. La partie E1 correspond à la fin première moitié Z1 du message d'origine MES. La partie E2 correspond au début de la seconde moitié Z2 du message d'origine MES. Les données comprises dans ces parties E1 et E2 manquent au message. Les données correspondant à la partie E1 ont été assemblées lors du codage avec une partie V2 correspondant à la fin de la seconde moitié Z2 du message d'origine MES. Les données correspondant à la partie E2 ont été assemblées lors du codage avec une partie V1 correspondant au début de la première moitié Z1 du message d'origine MES. On utilise les données de la partie V1 et du message réduit RED pour déterminer les données de la partie E2. De même, on utilise les données de la partie V2 et du message réduit RED pour déterminer les données de la partie E1. Ainsi, le message d'origine MES est reconstitué dans son intégralité malgré des données erronées. Le décodage du message MES est correct alors qu'une partie du message lu est erronée. De plus le message codé occupe seulement 50% de place en plus par rapport à un codage classique qui ne permettrait pas de reconstruire le message. Bien entendu, il est possible de coder le message en utilisant un codage normalisé auquel on ajoute le message réduit à la suite, et un caractère de contrôle (balise de fin ES par exemple). Ceci permet de rester compatible avec les lecteurs en place. Si la longueur du message MES est variable, on peut adapter la lecture simplement en utilisant les caractères de contrôle pour mesurer la longueur du message MES. Dans ce cas bien entendu, les caractères de données et les caractères de contrôles doivent avoir des codes différents. Codeur On décrit maintenant un exemple de dispositif d'enregistrement d'un message sur un support d'enregistrement. Ce dispositif est appelé codeur. Il comprend : * des moyens de codage, destiné à mettre en oeuvre le procédé de codage décrit ci-dessus, permettant d'obtenir un message codé à partir du message d'origine ; des moyens d'écriture du message codé, pour écrire ledit message codé sur le support d'enregistrement. Les moyens de codage peuvent être une unité de calcul comprenant un microprocesseur et un mémoire vive. Les moyens d'écriture dépendent du support d'enregistrement. Pour les tickets ou cartes à bande magnétique, ils peuvent comprendre une tête d'écriture magnétique, qui est polarisée par un module de gestion de tête. Le module de gestion comprend un amplificateur qui permet d'amplifier le courant de polarisation. Ces moyens d'écriture comprennent aussi un moteur pas à pas, qui permet de faire défiler le ticket ou la carte à vitesse constante devant la tête d'écriture magnétique. Un quartz permet de synchroniser les moyens de codage et le moteur, de manière à coder le ticket ou la carte avec une densité constante. Bien entendu, l'invention ne se limite pas aux exemples cités. Il est possible de mettre en oeuvre l'invention en codant plusieurs messages réduits. Une telle variante de codage est illustrée figure 7 avec deux messages réduits RED1 et RED2. Selon cette variante, on a 2 étapes de réduction du message MES, pour obtenir les 2 messages réduits RED1 et RED2. Ces messages réduits sont constitués de 2 autres suites de Mi et M2 données numériques, où Mi et M2 sont strictement inférieurs à N. A cet effet, on applique 2 lois déterminées au message d'origine telles que : * la suite de données du kième message réduit étant notée (rk (j)) jj où Jk est un ensemble de Mk indices, étant donné une application surjective gk de) vers Jk associant à chaque indice i de 1 une image j dans Jk, les données du message d'origine MES sont assemblées en p-uplets uk (j) de Wk, éléments, où Wkj est un entier, définis par la relation Uk (j) = (d (i)) g ; . les données numériques du message d'origine MES et des messages réduits RED1, RED2 appartenant à un ensemble E, étant donné des applications fk, j du produit cartésien Ewe 1 vers E associant à chaque puplet uk (j) une image dans E, les données rk (j) des messages réduits RED1, RED2 sont déterminées par la a re ! ation r (j) = f (u (j)) ; * les applications fkj étant telles que pour tout p-uplet Uk (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément rk (j) du message réduit RED1 ou RED2 d'autre part Lors d'une étape de mise en forme, le premier message réduit RED1 peut être placé après le message d'origine MES. Le second message réduit RED2 est placé après le premier message réduit RED1. Le premier message RED1 réduit peut être celui de l'exemple de codage nO1. Le second message réduit RED2 peut être dix fois plus petit que le message d'origine par exemple. Ce second message réduit peut être déterminé de la même façon que le premier message réduit RED1, l'application g1 étant modifiée. De cette manière le premier message réduit RED1 permet de reconstruire jusqu'à 50% du message d'origine MES. S'il reste des données manquantes, on utilise alors le second message réduit RED2 pour reconstruire la suite. On arrivera à reconstruire encore jusqu'à 10% du message d'origine MES. D'une manière plus générale, on peut ajouter k messages réduits. Le procédé de codage d'un message MES constitué d'une suite de N données numériques comprend alors les étapes suivantes : k étapes de réduction du message MES, où k est un entier, pour obtenir k messages réduits constitués de k autres suites de Mk données numériques, où Mk est strictement inférieur à N, en appliquant k lois déterminées au message d'origine telles que ') la suite de données du message d'origine MES étant notée (d () où 1 est un ensemble de N indices, la suite de données du k'ème message réduit étant notée (rk (j jerk où Jk est un ensemble de Mk indices, étant donné une application surjective gk de 1 vers Jk associant à chaque indice i de 1 une image j dans Jk, les données du message d'origine (MES) sont assemblées en p-uplets uk (j) de Wk, éléments, où Wkj est un entier, définis par la relation Jj) = (d (i)) ; * les données numériques du message d'origine MES et des messages réduits appartenant à un ensemble E, étant donné des applications fk, j du produit cartésien E"vers E associant à chaque p-uplet uk (j) une image dans E, les données rk (j) des messages réduits sont déterminées par la relation rk (j) = fk, j (Uk (j)) ; . les applications fk, j étant telles que pour tout p-uplet uk (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément rk (j) du message réduit d'autre part a une étape de mise en forme du message d'origine et des messages réduits pour obtenir le message codé. Bien entendu, il est possible de mettre en forme les messages d'une manière différente. L'invention s'applique à tout type de média ou transmission de données numériques. Les messages codés peuvent être inscrits sous la forme de codes à barre par exemple. REVENDICATIONS 1. Procédé de codage d'un message (MES) constitué d'une suite de N données numériques caractérisé en ce qu'il comprend au moins les étapes suivantes : une étape de réduction du message (MES) pour obtenir un message réduit (RED) constitué d'une autre suite de Mo données numériques, où Mo est strictement inférieur à N, en appliquant une loi déterminée au message d'origine telle que # la suite de données du message d'origine (MES) étant notée (d (fizz où 1 est un ensemble de N indices, la suite de données du message réduit (RED) étant notée (ra (j))J#J0 où Jo est un ensemble de Mo indices, étant donné une application surjective go de 1 vers Jo associant à chaque indice i de 1 une image j dans Jo, les données du message d'origine (MES) sont assemblées en p-uplets uo (j) de Wo, j éléments, où Wo, j est un entier, définis par la relation uo (j) = (d (i)) ; * les données numériques du message d'origine (MES) et du message réduit (RED) appartenant à un ensemble E, étant donné des applications fo, j du produit cartésien E WO, vers E associant à chaque p-uplet uo (j) une image dans E, les données r (j) du message réduit (RED) sont déterminées par la relation ra (j) = fa,) (ua (j)) ; # les applications po, j étant telles que pour tout p-uplet ua (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément ra (j) du message réduit (RED) d'autre part une étape de mise en forme du message d'origine (MES) et du message réduit (RED) pour obtenir le message codé. 2. Procédé de codage d'un message (MES) constitué d'une suite de N données numériques caractérisé en ce qu'il comprend au moins les étapes suivantes : # k étapes de réduction du message (MES), où k est un entier, pour obtenir k messages réduits (RED1, RED2) constitués de k autres suites de Mk données numériques, où Mk est strictement inférieur à N, en appliquant k lois déterminées au message d'origine telles que . la suite de données du message d'origine (MES) étant notée (d (i)), E' où 1 est un ensemble de N indices, la suite de données du kième message réduit étant notée (rk (j)LjEJk où Jk est un ensemble de Mk indices, étant donné une application surjective gk de I vers Jk associant à chaque indice i de 1 une image j dans Jk, les données du message d'origine (MES) sont assemblées en p-uplets uk (j) de Wkj éléments, où Wkj est un entier, définis par la relation Uk j s Jj)- (d (')) ; . les données numériques du message d'origine (MES) et des messages réduits (RED1, RED2) appartenant à un ensemble E, étant donné des applications fk, j du produit cartésien EW"'vers E associant à chaque p-uplet uk (j) une image dans E, les données rk (j) des messages réduits (RED1, RED2) sont déterminées par la relation rk (j) =fk, ju, (j)) ; les applications fkj étant telles que pour tout p-uplet uk (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément rk (j) du message réduit (RED1, RED2) d'autre part ; une étape de mise en forme du message d'origine (MES) et des messages réduits (RED1, RED2) pour obtenir le message codé. 3. Procédé de codage selon l'une des revendications précédentes, caractérisé en ce que pour k donné, l'application surjective gk est définie par la relation : où mod est la fonction modulo qui renvoie le reste de la division de i parmi- 4. Procédé de codage selon l'une des revendications précédentes, caractérisé en ce que pour k donné, pour tout j, les applications fk, j sont définies par la relation : où Q9 est un opérateur binaire. 5. Procédé de codage selon la revendication 4, caractérisé en ce que l'opérateur binaire 0 est un opérateur arithmétique de type addition ou soustraction. 6. Procédé de codage selon la revendication 4, caractérisé en ce que l'opérateur binaire 0 est un opérateur logique de type OU exclusif. 7. Support d'enregistrement (tel) de données numériques caractérisé en ce qu'il comprend un message codé enregistré résultant de la mise en forme : * d'un message d'origine (MES) constitué d'une suite de N données numériques ; * et d'un message réduit (RED) constitué d'une autre suite de Mo données numériques, où Mo est strictement inférieur à N, le message réduit pouvant se déduire du message d'origine (MES) par loi déterminée telle que la suite de données du message d'origine (MES) étant notée (d (i irl où 1 est un ensemble de N indices, la suite de données du message réduit (RED) étant notée (ro (j)) où Jo est un ensemble de M indices, étant donné une application surjective go de 1 vers Jo associant à chaque indice i de 1 une image j dans Jo, les données du message d'origine (MES) sont assemblées en p-uplets Uo (j) de Wo éléments, où Woj est un entier, définis par la relation U0 (j) = (d (.)) ; *) les données numériques du message d'origine (MES) et du message réduit (RED) appartenant à un ensemble E, étant donné des applications fo, j du produit cartésien Ew 'vers E associant à chaque p-uplet uo (j) une image dans E, les données r (j) du message réduit (RED) sont déterminées par la relation ra (j) = fa, (uo (j)) ; . les applications fo, j étant telles que pour tout p-up ! et Uo (j), i ! est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément ro (j) du message réduit (RED) d'autre part 8. Support d'enregistrement (tel) de données numériques caractérisé en ce qu'il comprend un message codé enregistré résultant de la mise en forme : * d'un message d'origine (MES) constitué d'une suite de N données numériques ; et de k messages réduits (RED1, RED2), où k est un entier, constitués de k autres suites de Mk données numériques, où Mk est strictement inférieur à N, les messages réduits pouvant se déduire du message d'origine (MES) par k lois déterminées telles que ') la suite de données du message d'origine (MES) étant notée (d (i)), EI où 1 est un ensemble de N indices, la suite de données du kième message réduit étant notée (rk (j)) j où Jk est un ensemble de Mk indices, étant donné une application surjective gk de 1 vers Jk associant à chaque indice i de 1 une image j dans Jk, les données du message d'origine (MES) sont assemblées en p-uplets uk (j) de Wk, éléments, où Wkj est un entier, définis par la relation Uk (j) = (d (i)) gk ( ; * les données numériques du message d'origine (MES) et des messages réduits (RED1, RED2) appartenant à un ensemble E, étant donné des applications fi, j du produit cartésien E vers E associant à chaque p-uplet uk (j) une image dans E, les données rk (j) des messages réduits (RED1, RED2) sont déterminées par la relation rk (j) = fju, (j)) ; * les applications fkj étant telles que pour tout p-uplet uk (j), il est possible de déterminer la valeur de n'importe quel élément de ce p-uplet à partir des valeurs des autres éléments d'une part, et de la valeur de l'élément rk (j) du message réduit (RED) d'autre part 9. Support d'enregistrement selon l'une des revendications 7 à 8, caractérisé en ce que pour k donné, l'application surjective gk est définie par la relation : où mod est la fonction modulo qui renvoie le reste de la division de i par Mk. 10. Support d'enregistrement selon l'une des revendications 7 à 9, caractérisé en ce que pour k donné, pour tout j, les applications fk, j sont définies par la relation : où 0 est un opérateur binaire. 11. Support d'enregistrement selon la revendication 10, caractérisé en ce que l'opérateur binaire 0 est un opérateur arithmétique de type addition ou soustraction. 12. Support d'enregistrement selon la revendication 10, caractérisé en ce que l'opérateur binaire 0 est un opérateur logique de type OU exclusif. 13. Dispositif d'enregistrement d'un message sur un support d'enregistrement, caractérisé en ce qu'il comprend au moins : 'des moyens de codage, destiné à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 6, permettant d'obtenir un message codé à partir du message d'origine ; * des moyens d'écriture du message codé, pour écrire ledit message codé sur le support d'enregistrement. 14. Procédé de décodage d'un message codé, caractérisé en ce que le message étant codé selon l'une des revendications 1 à 6, le procédé de décodage comprend au moins les étapes suivantes : une étape de lecture du message codé ; 'une étape détermination des données erronées ; * une étape de correction des données erronées.