FR3060244A1 - METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE - Google Patents

METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE Download PDF

Info

Publication number
FR3060244A1
FR3060244A1 FR1662324A FR1662324A FR3060244A1 FR 3060244 A1 FR3060244 A1 FR 3060244A1 FR 1662324 A FR1662324 A FR 1662324A FR 1662324 A FR1662324 A FR 1662324A FR 3060244 A1 FR3060244 A1 FR 3060244A1
Authority
FR
France
Prior art keywords
matrix
transformed
vector
isomorphism
polynomial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1662324A
Other languages
French (fr)
Other versions
FR3060244B1 (en
Inventor
Jonathan Detchart
Jerome Lacan
Emmanuel Lochin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institut Superieur de lAeronautique et de lEspace
Original Assignee
Institut Superieur de lAeronautique et de lEspace
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institut Superieur de lAeronautique et de lEspace filed Critical Institut Superieur de lAeronautique et de lEspace
Priority to FR1662324A priority Critical patent/FR3060244B1/en
Priority to PCT/FR2017/053495 priority patent/WO2018109346A1/en
Publication of FR3060244A1 publication Critical patent/FR3060244A1/en
Application granted granted Critical
Publication of FR3060244B1 publication Critical patent/FR3060244B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Procédé d'encodage d'un vecteur de donnée en un vecteur encodé transformé, selon un code correcteur d'erreur linéaire défini par une matrice génératrice (G), dans lequel : - le vecteur de donnée et la matrice génératrice (G) sont dans le corps fini de polynômes défini par : Bi=GF2(x)/(pi(x)), pi(x) étant un polynôme irréductible qui divise le polynôme xn+1, i et n étant des entiers, - Le vecteur encodé transformé appartenant à un anneau et image par un isomorphisme du produit de la matrice génératrice (G) par le vecteur de donnée, l'isomorphisme, du corps fini Bi dans un ensemble Ai, étant défini par : Fi (p(x))=p(x)Qi(x), où A, est l'idéal principal de l'anneau engendré par le polynôme xn+1/pi(x), Qi(x) est l'unique idempotent dudit idéal principal, et p(x) un polynôme appartenant au corps Bi, l'anneau étant défini par : R2,n=GF2(x)/(xn+1) ledit procédé comprenant : - une étape de calcul de l'image par l'isomorphisme Fi du vecteur de donnée pour obtenir un vecteur de donnée transformé, - une étape de détermination d'une matrice transformée, dans laquelle chaque élément situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute (G) par l'isomorphisme Fi et d'un élément de l'anneau qui n'a aucune composante dans l'idéal principal, la matrice brute (G) étant la matrice génératrice (G), - une étape de multiplication de la matrice transformée par le vecteur de donnée transformée pour obtenir ledit vecteur encodé transformé.A method of encoding a data vector into a transformed encoded vector, according to a linear error correcting code defined by a generator matrix (G), wherein: - the data vector and the generator matrix (G) are in the finite field of polynomials defined by: Bi = GF2 (x) / (pi (x)), where pi (x) is an irreducible polynomial that divides the polynomial xn + 1, i and n being integers, - The transformed encoded vector belonging to a ring and image by an isomorphism of the product of the generating matrix (G) by the data vector, the isomorphism, of the finite field Bi in a set Ai, being defined by: Fi (p (x)) = p (x) Qi (x), where A, is the principal ideal of the ring generated by the polynomial xn + 1 / pi (x), Qi (x) is the unique idempotent of said principal ideal, and p (x) ) a polynomial belonging to the body Bi, the ring being defined by: R2, n = GF2 (x) / (xn + 1), said method comprising: a step of calculating the image by the isomorphism Fi of the vector of given for to obtain a transformed data vector, - a step of determining a transformed matrix, in which each element located at a row and at a column is the sum of the image of the element located at said line and at said column. a raw matrix (G) by the isomorphism Fi and an element of the ring which has no component in the principal ideal, the raw matrix (G) being the generating matrix (G), - a step multiplying the matrix transformed by the transformed data vector to obtain said transformed encoded vector.

Description

Titulaire(s) : INSTITUT SUPERIEUR DE L'AERONAUTIQUE ET DE L'ESPACE Etablissement public.Holder (s): HIGHER INSTITUTE OF AERONAUTICS AND SPACE Public establishment.

Demande(s) d’extensionExtension request (s)

Mandataire(s) : GEVERS & ORES.Agent (s): GEVERS & ORES.

PA) PROCEDE ET DISPOSITIF DE CALCUL D'UN CODE CORRECTEUR.PA) METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE.

FR 3 060 244 - A1 (5/) Procédé d'encodage d'un vecteur de donnée en un vecteur encodé transformé, selon un code correcteur d'erreur linéaire défini par une matrice génératrice (G), dans lequel:FR 3 060 244 - A1 (5 /) Method for encoding a data vector into a transformed encoded vector, according to a linear error correcting code defined by a generator matrix (G), in which:

- le vecteur de donnée et la matrice génératrice (G) sont dans le corps fini de polynômes défini par: Bi=GF2(x)/(Pi(x)), Pi(x) étant un polynôme irréductible qui divise le polynôme xh+1, i et n étant des entiers,- the data vector and the generating matrix (G) are in the finite body of polynomials defined by: Bi = GF 2 (x) / (Pi (x)), Pi (x) being an irreducible polynomial which divides the polynomial x h +1, i and n being integers,

- Le vecteur encodé transformé appartenant à un anneau et image par un isomorphisme du produit de la matrice génératrice (G) par le vecteur de donnée, l'isomorphisme, du corps fini B, dans un ensemble A,, étant défini par: F, (p(x))=p(x)Qi(x), où A, est l'idéal principal de l'anneau engendré par le polynôme xn+1 /ρ,(χ), Q/x) est l'unique idempotent dudit idéal principal, et p(x) un polynôme appartenant au corps B,, l'anneau étant défini par: R2 n=GF2(x)/(xn+1) ledit procédé comprenant:- The transformed encoded vector belonging to a ring and image by an isomorphism of the product of the generating matrix (G) by the data vector, the isomorphism, of the finite field B, in a set A ,, being defined by: F, (p (x)) = p (x) Qi (x), where A, is the main ideal of the ring generated by the polynomial x n +1 / ρ, (χ), Q / x) is l ' unique idempotent of said main ideal, and p (x) a polynomial belonging to the body B ,, the ring being defined by: R 2 n = GF 2 (x) / (x n +1) said process comprising:

- une étape de calcul de l'image par l'isomorphisme F, du vecteur de donnée pour obtenir un vecteur de donnée transformé,a step of calculating the image by the isomorphism F, of the data vector to obtain a transformed data vector,

- une étape de détermination d'une matrice transformée, dans laquelle chaque élément situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute (G) par l'isomorphisme Fj et d'un élément de l'anneau qui n'a aucune composante dans l'idéal principal, la matrice brute (G) étant la matrice génératrice (G),- a step of determining a transformed matrix, in which each element located at a line and at a column is the sum of the image of the element located at said line and at said column of a raw matrix (G) by the isomorphism Fj and of an element of the ring which has no component in the main ideal, the raw matrix (G) being the generating matrix (G),

- une étape de multiplication de la matrice transformée par le vecteur de donnée transformée pour obtenir ledit vecteur encodé transformé.a step of multiplying the transformed matrix by the transformed data vector to obtain said transformed encoded vector.

ii

PROCEDE ET DISPOSITIF DE CALCUL D'UN CODE CORRECTEURMETHOD AND DEVICE FOR CALCULATING A CORRECTING CODE

1. Domaine technique de l'invention1. Technical field of the invention

L'invention concerne les codes correcteurs qui permettent la correction d'erreurs dans des données, par exemple suite à leur stockage ou à leur transmission. Elle concerne en particulier les codes correcteurs linéaires définis par une matrice génératrice G d'éléments d'un corps fini. Dans un tel code correcteur, l'encodage d'un vecteur de donnée d de z éléments d'un corps fini en un vecteur encodé c de t éléments de ce corps fini, t>z, est obtenu par la multiplication de la matrice génératrice G (de t lignes et z colonnes) par le vecteur de donnée d (c=G x d, ou alors c=d x G ).The invention relates to correcting codes which allow the correction of errors in data, for example following their storage or their transmission. It relates in particular to the linear correcting codes defined by a generator matrix G of elements of a finite body. In such a correction code, the encoding of a data vector d of z elements of a finite body into an encoded vector c of t elements of this finite body, t> z, is obtained by multiplying the generating matrix G (of t rows and z columns) by the data vector d (c = G xd, or then c = dx G).

En particulier, le code correcteur peut être un code systématique, c'est-à-dire, dans lequel les z premiers éléments du vecteur encodé c sont identiques aux z éléments du vecteur de donnée d. Dans ce cas, la notion de matrice génératrice peut omettre les z premières lignes qui constituent une matrice identité, et la notion de vecteur encodé peut omettre z premiers éléments du vecteur encodé identiques aux z éléments du vecteur de donnée d.In particular, the correcting code can be a systematic code, that is to say, in which the first z elements of the encoded vector c are identical to the z elements of the data vector d. In this case, the notion of generating matrix can omit the first z lines which constitute an identity matrix, and the notion of encoded vector can omit z first elements of the encoded vector identical to the z elements of the data vector d.

En cas d'erreur lors du stockage ou de la transmission d'un vecteur encodé c, on dispose alors d'un vecteur à corriger cf, identique au vecteur encodé c sauf pour les éléments de c qu'on sait erronés, situés à un indice dit « erroné » de cf et qui, dans la suite, sont supprimés de cf (typiquement une liste des indices erronés est mémorisée en plus des éléments du vecteur). Pour retrouver le vecteur de donnée d à partir du vecteur à corriger cf, on multiplie l'inverse de la matrice génératrice (dans le cas d'un code systématique, il faut inverser la matrice génératrice définie comme comprenant les z premières lignes qui constituent une matrice identité) duquel on a supprimé les lignes de numéros identiques aux indices erronés de cf.In the event of an error during the storage or the transmission of a vector encoded c, there is then a vector to be corrected cf, identical to the vector encoded c except for the elements of c which are known to be erroneous, located at a index called "erroneous" from cf and which, in the following, are deleted from cf (typically a list of the erroneous indices is stored in addition to the elements of the vector). To find the data vector d from the vector to be corrected cf, we multiply the inverse of the generator matrix (in the case of a systematic code, we must reverse the generator matrix defined as comprising the first z lines which constitute a identity matrix) from which the lines of numbers identical to the erroneous indices of cf. have been deleted

2. Inconvénients de l'état de la technique2. Disadvantages of the state of the art

Dans le cas où le volume des données à encoder ou à décoder est important, les multiplications précitées entre un vecteur et une matrice nécessaires à l'encodage ou au décodage peuvent exiger des temps ou des ressources de calculs prohibitifs.In the case where the volume of the data to be encoded or decoded is large, the abovementioned multiplications between a vector and a matrix necessary for encoding or decoding may require prohibitive computation times or resources.

3. Définitions3. Definitions

On utilise, dans la suite, des objets et des notations classiques pour l'homme de métier. Toutefois, certaines définitions sont rappelées ci-après.In the following, conventional objects and notations are used for those skilled in the art. However, certain definitions are recalled below.

Soit GF2(x) l'anneau des polynômes à coefficients binaires. Soit ((xn+l)) l'anneau engendré par le polynôme xn+l, où n entier. Soit (p,(x)) l'anneau engendré par un polynôme irréductible p,(x) de degré w qui divise le polynôme xn+l, où i entier (i.e. : (Pi(x)) est l'ensemble des multiples de ρ,(χ)).Let GF 2 (x) be the ring of polynomials with binary coefficients. Let ((x n + l)) be the ring generated by the polynomial x n + l, where n is an integer. Let (p, (x)) be the ring generated by an irreducible polynomial p, (x) of degree w which divides the polynomial x n + l, where i integer (ie: (Pi (x)) is the set of multiples of ρ, (χ)).

On note B, = GF2(x)/(Pî(x)), le corps constitué par le quotient entre l'anneau GF2(x) et l'anneau engendré par le polynôme irréductible p,(x) de degré w.We denote B, = GF 2 (x) / (Pî (x)), the body formed by the quotient between the ring GF 2 (x) and the ring generated by the irreducible polynomial p, (x) of degree w .

On note R2n = GF2(x)/(xn+l), l'anneau constitué par le quotient entre l'anneau GF2(x) et l'anneau engendré par le polynôme xn+l.We denote R 2n = GF 2 (x) / (x n + l), the ring formed by the quotient between the ring GF 2 (x) and the ring generated by the polynomial x n + l.

On définit également l'ensemble A, comme l'idéal principal de l'anneau R2n engendré par le polynôme χη+1/ρ,(χ) (i.e. : un idéal principal d'un anneau est un sous-groupe additif généré par un seul élément et qui possède la propriété d'absorber la multiplication). On sait que chaque élément de l'anneau R2n peut s'exprimer sous la forme d'une somme de composantes (autrement dit d'éléments de l'anneau) où chacune des composantes est dans un idéal principal différent de l'anneau R2n. On sait que pour tout idéal A,, il existe 2n w éléments, comprenant l'élément nul de l'anneau R2 n (i.e. : noté 0, autrement dit l'élément neutre additif) qui n'ont n'aucune composante dans l'idéal A,.We also define the set A, as the main ideal of the ring R 2n generated by the polynomial χ η + 1 / ρ, (χ) (ie: a main ideal of a ring is an additive subgroup generated by a single element and which has the property of absorbing multiplication). We know that each element of the ring R2n can be expressed in the form of a sum of components (in other words of elements of the ring) where each of the components is in a principal ideal different from the ring R2n. We know that for any ideal A ,, there are 2 nw elements, including the zero element of the ring R2 n (ie: noted 0, in other words the additive neutral element) which have no component in l 'ideal A ,.

On rappelle qu'un idempotent est un élément e(x) (ici un polynôme) tel que e(x)*e(x)=e(x). A, a un unique idempotent.We recall that an idempotent is an element e (x) (here a polynomial) such that e (x) * e (x) = e (x). A, has a unique idempotent.

De manière classique, on dit par extension que le vecteur i=(ii,i2,... ir, ...ik) est l'image par un isomorphisme I d'un vecteur ο=(θ!,ο2, ... or, ...ok), lorsque ir = l(or), quel que soit i appartenant à {1,2, ...,k) (autrement dit lorsque chaque élément du vecteur i d'un indice donné est l'image par l'isomorphisme I de l'élément du même indice dans le vecteur o). On dit qu'on calcule l'image par l'isomorphisme I du vecteur o pour obtenir le vecteur i, lorsqu'on effectue, pour tout r appartenant à (1,2, ...,k), l'opération ir = I(or). Le résultat de ce calcul est le vecteur i (autrement dit chaque élément du vecteur i d'un indice donné est obtenu par le calcul de (et est égal à) l'image par l'isomorphisme I de l'élément de même indice dans le vecteur o).Classically, we say by extension that the vector i = (ii, i 2 , ... i r , ... ik) is the image by an isomorphism I of a vector ο = (θ!, Ο 2 , ... o r , ... o k ), when i r = l (o r ), regardless of i belonging to {1,2, ..., k) (in other words when each element of the vector i of a given index is the image by the isomorphism I of the element of the same index in the vector o). We say that we compute the image by the isomorphism I of the vector o to obtain the vector i, when we perform, for all r belonging to (1,2, ..., k), the operation i r = I (o r ). The result of this calculation is the vector i (in other words each element of the vector i of a given index is obtained by the calculation of (and is equal to) the image by the isomorphism I of the element of the same index in the vector o).

On utilise des définitions analogues pour les matrices (« indice » est remplacé par « ligne et colonne »).Similar definitions are used for matrices ("index" is replaced by "row and column").

De manière classique, on dira qu'un vecteur ou une matrice est dans ou appartient à un ensemble si tous les éléments de ce vecteur ou de la matrice sont dans cet ensemble. L'utilisation d'une représentation dite à base de XOR (XOR signifie : ou exclusif) est introduite dans l'article suivant : J. BLOEMER, M. KALFANE, M. KARPINSKI, R. KARP, M. LUBY AND D. ZUCKERMAN, D. An XOR-Based Erasure-Resilient Coding Scheme in Technical Report ICSI TR-95-048 (August 1995). Elle consiste à représenter chaque élément par une matrice carrée binaire où chaque nombre binaire de cette matrice carrée représente des opérations de XOR sur des nombres binaires à réaliser pour une multiplication avec cet élément (par exemple dans la multiplication d'un élément de la matrice avec un élément d'un vecteur).Classically, we will say that a vector or a matrix is in or belongs to a set if all the elements of this vector or of the matrix are in this set. The use of a so-called XOR-based representation (XOR means: or exclusive) is introduced in the following article: J. BLOEMER, M. KALFANE, M. KARPINSKI, R. KARP, M. LUBY AND D. ZUCKERMAN , D. An XOR-Based Erasure-Resilient Coding Scheme in Technical Report ICSI TR-95-048 (August 1995). It consists in representing each element by a binary square matrix where each binary number of this square matrix represents operations of XOR on binary numbers to be carried out for a multiplication with this element (for example in the multiplication of an element of the matrix with an element of a vector).

Un polynôme est dit AOP (ou polynôme tout à un, ou en anglais « Ail One Polynomial ») lorsque les coefficients de tous ses monômes sont égaux à 1.A polynomial is called AOP (or all-in-one polynomial, or in English "Ail One Polynomial") when the coefficients of all its monomials are equal to 1.

Un polynôme g(x) qui s'écrit g(x) = xsr + xs(r_1) + xs(r_2) + . . . + xs + 1 = p(xs), où p(x) est un polynôme AOP de degré r, est dit ESP (ou polynôme uniformément espacé, ou en anglais « Equally Spaced Polynomial », s et r sont entiers bien entendu).A polynomial g (x) which is written g (x) = x sr + x s (r_1) + x s (r_2) +. . . + x s + 1 = p (x s ), where p (x) is an AOP polynomial of degree r, is said to be ESP (or uniformly spaced polynomial, or in English “Equally Spaced Polynomial”, s and r are integers of course ).

4. Exposé de l'invention4. Statement of the invention

Pour remédier aux inconvénients précités, l'invention propose un procédé d'encodage d'un vecteur de donnée, en un vecteur encodé transformé, selon un code correcteur d'erreur linéaire défini par une matrice génératrice, dans lequel :To remedy the aforementioned drawbacks, the invention proposes a method of encoding a data vector, into a transformed encoded vector, according to a linear error correcting code defined by a generator matrix, in which:

- le vecteur de donnée et la matrice génératrice sont dans le corps fini de polynômes, noté B,, défini de la manière suivante : B, = GF2(x)/(Pî(x)), p,(x) étant un polynôme irréductible qui divise le polynôme xn+l, i et n étant des entiers,- the data vector and the generating matrix are in the finite body of polynomials, denoted B ,, defined as follows: B, = GF 2 (x) / (Pî (x)), p, (x) being a irreducible polynomial which divides the polynomial x n + l, i and n being integers,

- Le vecteur encodé transformé appartenant à l'anneau R2n, et est l'image par un isomorphisme, noté F,, du produit de la matrice génératrice par le vecteur de donnée, l'isomorphisme F,, du corps fini B, dans l'ensemble A,, l'isomorphisme étant défini de la manière suivante : F, (p(x)) = p(x) Q.i(x) où A, est l'idéal principal de l'anneau R2n engendré par le polynôme xn+l/pj(x), Q/x) est l'unique idempotent dudit idéal principal A,, et p(x) un polynôme appartenant au corps B,, l'anneau étant défini de la manière suivante : R2n = GF2(x)/(xn+l) ledit procédé comprenant les étapes suivantes :- The encoded transformed vector belonging to the ring R 2n , and is the image by an isomorphism, noted F ,, of the product of the generating matrix by the data vector, the isomorphism F ,, of the finite field B, in the set A ,, the isomorphism being defined in the following way: F, (p (x)) = p (x) Qi (x) where A, is the main ideal of the ring R 2n generated by the polynomial x n + l / pj (x), Q / x) is the unique idempotent of said principal ideal A ,, and p (x) a polynomial belonging to the body B ,, the ring being defined as follows: R 2n = GF 2 (x) / (x n + l) said method comprising the following steps:

- Une étape de calcul de l'image par l'isomorphisme F, du vecteur de donnée pour obtenir un vecteur de donnée transformé,- A step of calculating the image by the isomorphism F, of the data vector to obtain a transformed data vector,

- une étape de détermination d'une matrice transformée, dans laquelle chaque élément de la matrice transformée (ou plus généralement d'une partie de la matrice transformée comprenant un certain nombre de lignes de la matrice transformée) situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute par l'isomorphisme F, et d'un élément de l'anneau R2 n qui n'a aucune composante dans l'idéal principal A,, la matrice brute étant la matrice génératrice,- a step of determining a transformed matrix, in which each element of the transformed matrix (or more generally of a part of the transformed matrix comprising a certain number of rows of the transformed matrix) located at a line and at a column is the sum of the image of the element located at said line and at said column of a raw matrix by the isomorphism F, and of an element of the ring R 2 n which has no component in l 'principal ideal A ,, the raw matrix being the generating matrix,

- une étape de multiplication de la matrice transformée par un vecteur transformé, le vecteur transformé étant le vecteur de donnée transformée, pour obtenir ledit vecteur encodé transformé (ainsi donc le vecteur encodé transformé est le résultat de la multiplication de la matrice génératrice transformée par le vecteur de donnée transformé).a step of multiplying the matrix transformed by a transformed vector, the transformed vector being the vector of transformed data, to obtain said encoded vector transformed (thus therefore the encoded vector transformed is the result of the multiplication of the generator matrix transformed by the transformed data vector).

Dans un mode de réalisation du procédé d'encodage, le procédé comprend une étape de calcul de l'image par un isomorphisme inverse, noté Fï1 , du vecteur encodé transformé pour obtenir un vecteur encodé, l'isomorphisme inverse F,1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante : p(x) = pn(x) mod p,(x), pn(x) étant un polynôme de l'anneau R2n, le vecteur encodé étant égal au produit de la matrice génératrice par le vecteur de donnée. Ainsi donc, une fois l'étape de multiplication réalisée, on peut faire repasser le résultat dans le corps B,. En variante, le résultat peut rester dans l'anneau R2n de manière à effectuer ultérieurement le décodage sans avoir à transformer le vecteur à corriger encodé vers l'anneau R2n. Toujours pour remédier aux inconvénients précités, l'invention concerne aussi un procédé de décodage d'un vecteur à corriger transformé, en un vecteur de donnée selon un code correcteur d'erreur linéaire défini par une matrice génératrice, ledit vecteur à corriger comprenant une pluralité d'indices erronés comprenant un élément erroné (autrement dit, comprenant une pluralité d'éléments erronés situés à des indices erronés) dans lequel :In one embodiment of the encoding method, the method comprises a step of calculating the image by an inverse isomorphism, denoted F 1 , of the encoded vector transformed to obtain an encoded vector, the inverse isomorphism F, 1 being l 'inverse of the isomorphism F, and is defined as follows: p (x) = pn (x) mod p, (x), pn (x) being a polynomial of the ring R 2n , the encoded vector being equal to the product of the generator matrix by the data vector. Thus, once the multiplication step has been carried out, the result can be passed back into the body B ,. As a variant, the result can remain in the ring R 2n so as to subsequently carry out the decoding without having to transform the vector to be corrected encoded towards the ring R 2n . Still in order to remedy the aforementioned drawbacks, the invention also relates to a method for decoding a vector to be corrected transformed into a data vector according to a linear error correcting code defined by a generator matrix, said vector to be corrected comprising a plurality of erroneous indicia comprising an erroneous element (in other words, comprising a plurality of erroneous elements situated at erroneous indices) in which:

- le vecteur de donnée et la matrice génératrice sont dans le corps fini B,, défini de la manière suivante : B, = GF2(x)/(pj(x)), ρ,(χ) étant un polynôme irréductible qui divise le polynôme xn+l, i et n étant des entiers,- the data vector and the generating matrix are in the finite field B ,, defined as follows: B, = GF 2 (x) / (pj (x)), ρ, (χ) being an irreducible polynomial which divides the polynomial x n + l, i and n being integers,

- Le vecteur à corriger transformé appartenant à l'anneau R2n, défini de la manière suivante : R2n = GF2(x)/(xn+l) ledit procédé comprenant les étapes suivantes :- The transformed vector to be corrected belonging to the ring R 2n , defined as follows: R 2n = GF 2 (x) / (x n + l) said process comprising the following steps:

- une étape de détermination d'une matrice transformée, chaque élément de la matrice transformée (ou plus généralement d'une partie de la matrice transformée comprenant un certain nombre de lignes de la matrice transformée) situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute par l'isomorphisme F, et d'un élément de l'anneau R2n qui n'a aucune composante dans l'idéal principal A,, la matrice brute étant l'inverse de la matrice génératrice de laquelle sont supprimées les lignes correspondantes à ladite pluralité d'indices erronés , l'isomorphisme F,, du corps fini B, dans un ensemble A,, étant défini de la manière suivante : F, (p(x)) = p(x) Qj(x), où A, est l'idéal principal engendré par le polynôme xn+l/pj(x) de l'anneau R2n, Ο,,(χ) est l'unique idempotent dudit idéal principal A,, et p(x) un polynôme appartenant au corps B,,a step of determining a transformed matrix, each element of the transformed matrix (or more generally of a part of the transformed matrix comprising a certain number of rows of the transformed matrix) located at a line and at a column is the sum of the image of the element located at said line and at said column of a raw matrix by the isomorphism F, and of an element of the ring R 2n which has no component in the main ideal A ,, the raw matrix being the inverse of the generating matrix from which the lines corresponding to said plurality of erroneous indices are deleted, the isomorphism F ,, of the finite body B, in a set A ,, being defined from the as follows: F, (p (x)) = p (x) Qj (x), where A, is the main ideal generated by the polynomial x n + l / pj (x) of the ring R 2n , Ο ,, (χ) is the unique idempotent of said principal ideal A ,, and p (x) a polynomial belonging to the body B ,,

- une étape de multiplication de la matrice transformée par un vecteur transformé, le vecteur transformé étant le vecteur à corriger transformé, pour obtenir un vecteur de donnée transformé.a step of multiplying the transformed matrix by a transformed vector, the transformed vector being the vector to be corrected transformed, to obtain a transformed data vector.

- une étape de calcul de l'image par un isomorphisme inverse, noté F,1, du vecteur de donnée transformé pour obtenir le vecteur de donnée, l'isomorphisme inverse F,1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante :a step of calculating the image by an inverse isomorphism, denoted F, 1 , of the data vector transformed to obtain the data vector, the inverse isomorphism F, 1 being the inverse of the isomorphism F, and is defined as follows:

p(x) = pn(x) mod p,(x), pn(x) étant un polynôme de l'anneau R2n.p (x) = pn (x) mod p, (x), pn (x) being a polynomial of the ring R 2n .

Dans un mode de réalisation du procédé de décodage, le procédé comprend, préalablement à l'étape de multiplication, une étape de calcul de l'image par l'isomorphisme F, d'un vecteur à corriger pour obtenir le vecteur à corriger transformé, le vecteur de donnée étant égal au produit de l'inverse de la matrice génératrice de laquelle sont supprimées les lignes de même numéro que ladite pluralité d'indices erronés, par le vecteur à corriger. Dans ce cas, le procédé de décodage est compatible avec un procédé d'encodage où le résultat de l'étape de multiplication est repassé dans le corps B,.In one embodiment of the decoding method, the method comprises, prior to the multiplication step, a step of calculating the image by the isomorphism F, of a vector to be corrected to obtain the transformed vector to be corrected, the vector of data being equal to the product of the inverse of the generating matrix from which the lines of the same number as said plurality of erroneous indices are deleted, by the vector to be corrected. In this case, the decoding method is compatible with an encoding method where the result of the multiplication step is passed back into the body B i.

On présente ci-dessous des avantages et des caractéristiques optionnelles communes à la fois au procédé d'encodage et au procédé de décodage.Below are advantages and optional features common to both the encoding process and the decoding process.

En réalisant ainsi l'étape de multiplication dans l'anneau R2n où les multiplications entre éléments peuvent être plus rapides que dans le corps B,, l'invention permet d'accélérer l'étape de multiplication.By thus carrying out the multiplication step in the ring R 2n where the multiplications between elements can be faster than in the body B ,, the invention makes it possible to accelerate the multiplication step.

Selon l'invention (décodage ou encodage), l'élément de l'anneau R2n qui n'a aucune composante dans l'idéal principal A, peut soit être nul, soit être non nul. Dans le cas où il est nul, l'élément de la matrice transformée est l'image de l'élément situé à la même ligne et à la même colonne d'une matrice brute (G) par l'isomorphisme Fj.According to the invention (decoding or encoding), the element of the ring R 2n which has no component in the main ideal A, can either be zero or be non-zero. In the case where it is zero, the element of the transformed matrix is the image of the element located at the same line and at the same column of a raw matrix (G) by the isomorphism Fj.

Lorsque tous les éléments de la matrice transformée sont dans ce cas, la matrice transformée est l'image de la matrice brute par l'isomorphisme F,.When all the elements of the transformed matrix are in this case, the transformed matrix is the image of the raw matrix by the isomorphism F,.

En variante, au moins un des éléments de la matrice transformée situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne de la matrice brute par l'isomorphisme F, et d'un élément de l'anneau R2n non nul qui n'a aucune composante dans l'idéal principal A,. Ainsi donc, l'élément de l'anneau R2n (nul ou pas), qui n'a aucune composante dans l'idéal principal A,, peut être choisi de manière à minimiser le nombre de XOR engendrés par l'élément de la matrice transformée ainsi formé dans une multiplication avec un autre élément (dans une représentation dite à base de XOR, il s'agit de la quantité de nombres binaires égaux à 1 dans la représentation de cet élément de la matrice transformée).As a variant, at least one of the elements of the transformed matrix located at a line and at a column is the sum of the image of the element located at said line and at said column of the raw matrix by the isomorphism F, and of a non-zero element of the ring R 2n which has no component in the main ideal A ,. Thus, the element of the ring R 2n (zero or not), which has no component in the main ideal A ,, can be chosen so as to minimize the number of XOR generated by the element of the transformed matrix thus formed in a multiplication with another element (in a so-called XOR-based representation, it is the quantity of binary numbers equal to 1 in the representation of this element of the transformed matrix).

Cela permet ainsi de réduire le temps ou les ressources nécessaires à l'étape de multiplication.This thus makes it possible to reduce the time or the resources necessary for the multiplication stage.

Dans un mode de réalisation, le procédé d'encodage ou le procédé de décodage est mis en œuvre dans une représentation dite à base de ou exclusif dans laquelle chaque élément de la matrice transformée est représenté par une matrice carrée élémentaire de n lignes et n colonnes de nombres binaires.In one embodiment, the encoding method or the decoding method is implemented in a so-called or exclusive representation in which each element of the transformed matrix is represented by an elementary square matrix of n rows and n columns of binary numbers.

Selon une mise œuvre particulière de ce mode de réalisation, ledit chaque élément est mémorisé sous la forme d'une seule de ces n lignes ou n colonnes, la matrice transformée étant ainsi mémorisée sous la forme d'une matrice transformée compressée constituée de la seule des n lignes ou n colonnes de chaque élément de la matrice transformée.According to a particular implementation of this embodiment, said each element is stored in the form of a single one of these n rows or n columns, the transformed matrix thus being stored in the form of a compressed transformed matrix consisting of the single n rows or n columns of each element of the transformed matrix.

Grâce au passage dans l'anneau R2n, dans une représentation à base de XOR, les éléments de la matrice transformée n'ont que des diagonales constituées soit que de 1, soit que de 0. C'est pourquoi, on peut se permettre de ne mémoriser qu'une seule ligne ou qu'une seule colonne pour chaque élément. On économise ainsi de l'espace mémoire.Thanks to the passage in the ring R 2n , in a representation based on XOR, the elements of the transformed matrix have only diagonals made up either of 1, or only of 0. This is why, we can allow ourselves to memorize only one row or one column for each element. This saves memory space.

Dans un mode de réalisation (à la fois pour le procédé de décodage et le procédé d'encodage), chaque élément du vecteur transformé est représenté par un vecteur élémentaire de n nombres binaires, ladite étape de multiplication de la matrice transformée par le vecteur transformé comprenant une sous-étape de multiplication de la matrice carrée élémentaire par le vecteur élémentaire, ladite sous-étape de multiplication comprenant les étapes suivantes :In one embodiment (for both the decoding method and the encoding method), each element of the transformed vector is represented by an elementary vector of n binary numbers, said step of multiplying the matrix transformed by the transformed vector comprising a substep of multiplication of the elementary square matrix by the elementary vector, said substep of multiplication comprising the following steps:

- une étape de lecture en mémoire de ladite seule ligne ou seule colonne de la matrice carrée élémentaire dans la matrice transformée compressée,a step of reading from memory said single row or single column of the elementary square matrix in the compressed transformed matrix,

- Une étape de traitement dans laquelle, pour chaque nombre binaire occupant une position de ladite une seule ligne ou seule colonne dans la matrice transformée compressée, si ledit bit est égal à une valeur déterminée (la valeur déterminée est souvent égale à 1. De manière générale, il s'agit d'une valeur qui définit un XOR qui peut bien entendu être différente de 1 selon les implémentations), les ou exclusifs engendrés par toute la diagonale de la matrice carrée élémentaire déterminée par cette position sont calculés.- A processing step in which, for each binary number occupying a position of said one single row or single column in the compressed transformed matrix, if said bit is equal to a determined value (the determined value is often equal to 1. So general, it is about a value which defines an XOR which can of course be different from 1 according to the implementations), or exclusive generated by all the diagonal of the elementary square matrix determined by this position are calculated.

On réduit ainsi le temps de calcul nécessaire à la réalisation du procédé d'encodage ou du procédé de décodage puisqu'il suffit de ne lire qu'une seule ligne ou colonne par élément pour réaliser la sous-étape de multiplication.This reduces the computation time necessary for carrying out the encoding process or the decoding process since it suffices to read only one row or column per element to carry out the multiplication sub-step.

Dans un mode de réalisation, le procédé d'encodage ou le procédé de décodage peut comprendre, préalablement à l'étape de multiplication, les étapes suivantes :In one embodiment, the encoding method or the decoding method can comprise, prior to the multiplication step, the following steps:

- une étape de détermination d'une sous partie identique comprenant we éléments binaires (ayant une valeur définissant un XOR. Classiquement cette valeur est 1) dans m lignes de la matrice transformée compressée, we supérieur ou égal à deux,- a step of determining an identical sub-part comprising we binary elements (having a value defining an XOR. Classically this value is 1) in m lines of the compressed transformed matrix, we greater than or equal to two,

- une étape de calcul d'au moins un résultat intermédiaire à partir de ladite sous partie identique,a step of calculating at least one intermediate result from said identical sub-part,

- l'étape de multiplication étant réalisée à partir du résultat intermédiaire de manière à éviter n.(we.m-(we+m)) opérations de ou exclusifs durant l'étape de multiplication.- the multiplication step being carried out from the intermediate result so as to avoid n. (we.m- (we + m)) or exclusive operations during the multiplication step.

En identifiant ainsi une sous-partie identique, on détermine des XOR communs intervenant dans une pluralité de sous-étapes de multiplication de manière à ne calculer ces XOR qu'une seule fois pour réaliser la pluralité de sous-étapes de multiplication.By thus identifying an identical sub-part, common XORs involved in a plurality of multiplication sub-steps are determined so as to calculate these XOR only once to carry out the plurality of multiplication sub-steps.

Les sous-parties peuvent être alignées ou bien décalées cycliquement dans la matrice transformée. L'utilisation de la matrice transformée compressée permet en particulier de trouver des sous-parties décalées, la recherche de sous parties décalées étant trop complexe et trop longue dans le cas de l'utilisation d'une matrice transformée sans compression.The sub-parts can be aligned or offset cyclically in the transformed matrix. The use of the compressed transformed matrix makes it possible in particular to find offset sub-parts, the search for offset sub-parts being too complex and too long in the case of the use of a transformed matrix without compression.

Le polynôme ρ,(χ) peut être un polynôme AOP ou un polynôme ESP.The polynomial ρ, (χ) can be an AOP polynomial or an ESP polynomial.

Dans ce cas, deux approches permettent un calcul rapide des images par l'isomorphisme F, et l'isomorphisme inverse F,1.In this case, two approaches allow a fast computation of the images by the isomorphism F, and the inverse isomorphism F, 1 .

Selon une première approche :According to a first approach:

- chaque élément du corps fini B, étant représenté par un vecteur de données binaires- each element of the finite field B, being represented by a vector of binary data

- le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme F, comprend l'ajout d'un bit (ou donnée binaire) de parité audit vecteur de données binaires.- the computation of the image of each element of the finite body B, by the isomorphism F, includes the addition of a bit (or binary data) of parity to said vector of binary data.

- le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme inverse F,1 (inverse de l'isomorphisme F,) comprend la suppression dudit bit de parité audit vecteur de données binaires.- the calculation of the image of each element of the finite body B, by the inverse isomorphism F, 1 (inverse of the isomorphism F,) includes the removal of said parity bit to said vector of binary data.

Selon une deuxième approche :According to a second approach:

- chaque élément du corps fini B, étant représenté par un vecteur de données binaires- each element of the finite field B, being represented by a vector of binary data

- le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme F, comprend l'ajout d'une donnée binaire (ou bit) égale à l'élément nul (autrement dit, l'élément neutre additif) à une position dudit vecteur de données binaires.- the computation of the image of each element of the finite body B, by the isomorphism F, includes the addition of a binary datum (or bit) equal to the null element (in other words, the additive neutral element) at a position of said binary data vector.

- le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme inverse F,1 (inverse de l'isomorphisme F,) comprend l'ajout de la donnée binaire située à ladite position à une pluralité de données binaires dudit vecteur de données binaires, puis la suppression de ladite donnée binaire située à ladite position dudit vecteur de données binaires.- the calculation of the image of each element of the finite body B, by the inverse isomorphism F, 1 (inverse of the isomorphism F,) includes the addition of the binary data located at said position to a plurality of binary data said vector of binary data, then deleting said binary data located at said position of said vector of binary data.

L'invention concerne aussi un dispositif adapté à la mise en œuvre des étapes du procédé d'encodage ou de décodage.The invention also relates to a device suitable for implementing the steps of the encoding or decoding method.

L'invention concerne également :The invention also relates to:

Un programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé d'encodage ou du procédé de décodage lorsque ledit programme est exécuté sur un ordinateur, etA computer program comprising instructions adapted to the implementation of each of the steps of the encoding method or of the decoding method when said program is executed on a computer, and

Un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé d'encodage ou du procédé de décodage.An information storage means, removable or not, partially or totally readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the encoding method or of the method decoding.

On présente ci-dessous d'autres avantages et caractéristiques optionnelles du procédé d'encodage uniquement.Other advantages and optional features of the encoding method are presented below.

Selon un mode de réalisation, l'étape de détermination de la matrice transformée comprend les étapes suivantes :According to one embodiment, the step of determining the transformed matrix comprises the following steps:

- une étape pour engendrer une matrice candidate transformée,- a step to generate a transformed candidate matrix,

- une étape pour estimer un nombre d'opérations de ou exclusif à réaliser pour l'étape de multiplication de la matrice transformée par le vecteur transformé, lorsque la matrice candidate transformée est choisie en tant que matrice transformée,a step for estimating a number of or exclusive operations to be carried out for the step of multiplying the transformed matrix by the transformed vector, when the transformed candidate matrix is chosen as a transformed matrix,

- une étape pour déterminer, en fonction dudit nombre d'opérations de ou exclusif à réaliser, si la matrice candidate transformée est choisie en tant que matrice transformée.a step for determining, as a function of said number of operations of or exclusive to be carried out, whether the transformed candidate matrix is chosen as the transformed matrix.

De cette manière, on obtient la matrice transformée qui permet l'étape de multiplication la moins coûteuse possible en temps de calcul.In this way, we obtain the transformed matrix which allows the least costly multiplication step possible in computation time.

Selon une mise en œuvre particulière de ce mode de réalisation, la matrice candidate transformée peut être constituée d'éléments dans l'anneau R2,n qui sont, dans une représentation dite à base de XOR, des décalages cycliques de la matrice identité (de n lignes et n colonnes).According to a particular implementation of this embodiment, the transformed candidate matrix can consist of elements in the ring R 2 , n which are, in a so-called XOR-based representation, cyclic shifts of the identity matrix ( of n rows and n columns).

En particulier, le procédé d'encodage peut comprendre :In particular, the encoding method can include:

- durant l'étape pour estimer le nombre d'opérations de ou exclusif à réaliser pour l'étape de multiplication de la matrice transformée par le vecteur transformé , une étape de détermination d'une sous partie identique comprenant w éléments binaires dans m lignes de la matrice transformée compressée, w supérieurs ou égal à deux,- during the step to estimate the number of operations of or exclusive to be carried out for the step of multiplying the matrix transformed by the transformed vector, a step of determining an identical sub-part comprising w binary elements in m lines of the compressed transformed matrix, w greater than or equal to two,

- une étape de calcul du nombre d'opérations de ou exclusif évités, égal à n.(we.m(we+m)), à partir desdites sous parties, dans lequel le nombre d'opérations de ou exclusif à réaliser est estimé à partir dudit nombre d'opérations de ou exclusif évités.- a step of calculating the number of operations of or exclusive avoided, equal to n. (we.m (we + m)), from said sub-parts, in which the number of operations of or exclusive to be carried out is estimated from said number of exclusive or exclusive operations avoided.

On tient ainsi compte, dans le nombre d'opérations estimées, de la simplification des calculs effectuée grâce à la recherche des sous parties identiques.One thus takes into account, in the number of estimated operations, of the simplification of computations carried out thanks to the search for identical under parts.

Dans un premier mode de réalisation, la matrice candidate transformée est obtenue grâce aux étapes suivantes :In a first embodiment, the transformed candidate matrix is obtained by the following steps:

- une étape pour engendrer une matrice candidate génératrice définissant un code correcteur d'erreur qui est MDS (Maximum Distance Séparable).- a step to generate a candidate generator matrix defining an error correcting code which is MDS (Maximum Separable Distance).

- une étape de calcul de l'image par l'isomorphisme Fj de la matrice candidate génératrice pour obtenir la matrice candidate transformée- a step of calculating the image by the isomorphism Fj of the generating candidate matrix to obtain the transformed candidate matrix

En variante, la matrice candidate transformée est obtenue grâce aux étapes suivantes :As a variant, the transformed candidate matrix is obtained by the following steps:

- une étape de calcul de l'image de la matrice candidate génératrice par l'isomorphisme inverse F,1 pour obtenir la matrice génératrice candidate,a step of calculating the image of the candidate generator matrix by the inverse isomorphism F, 1 to obtain the candidate generator matrix,

-Une étape de vérification que la matrice génératrice candidate est MDS.-A verification step that the candidate generator matrix is MDS.

5. Liste des figures5. List of figures

D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante donnée à titre uniquement non limitatif et qui se réfère aux figures annexées dans lesquelles :Other objects, characteristics and advantages of the invention will appear on reading the following description given by way of non-limiting example and which refers to the appended figures in which:

La figure 1 représente un dispositif adapté à la mise en œuvre du procédé de la figure 2.FIG. 1 represents a device suitable for implementing the method of FIG. 2.

La figure 2 représente les étapes d'un procédé selon un mode de réalisation de l'invention.FIG. 2 represents the steps of a method according to an embodiment of the invention.

La figure 3 représente le détail d'une étape de la figure 2, dans un mode de réalisation.Figure 3 shows the detail of a step of Figure 2, in one embodiment.

La figure 4 représente une étape de la figure 3 dans un mode de réalisation et la figure 5 représente cette même étape dans un deuxième mode de réalisation.FIG. 4 represents a step of FIG. 3 in one embodiment and FIG. 5 represents this same step in a second embodiment.

La figure 6 présente en détail une étape de la figure 2 et la mémorisation de la matrice transformée.Figure 6 shows in detail a step in Figure 2 and the storage of the transformed matrix.

Les figures 7, 8, 9 et 10 donnent des exemples pour l'isomorphisme Fj et son inverse F,1.Figures 7, 8, 9 and 10 give examples for the isomorphism Fj and its inverse F, 1 .

6. Description détaillée d'un mode de réalisation de l'invention6. Detailed description of an embodiment of the invention

Les réalisations suivantes sont des exemples. Bien que la description se réfère à un ou plusieurs modes de réalisation, ceci ne signifie pas nécessairement que chaque référence concerne le même mode de réalisation, ou que les caractéristiques s'appliquent seulement à un seul mode de réalisation. De simples caractéristiques de différents modes de réalisation peuvent également être combinées pour fournir d'autres réalisations. Sur les figures, les échelles et les proportions ne sont pas strictement respectées et ce, à des fins d'illustration et de clarté.The following embodiments are examples. Although the description refers to one or more embodiments, this does not necessarily mean that each reference relates to the same embodiment, or that the characteristics apply only to a single embodiment. Simple features of different embodiments can also be combined to provide other embodiments. In the figures, the scales and the proportions are not strictly observed, for the purposes of illustration and clarity.

Le dispositif de figure 1 comprend une mémoire 200, des disques durs et 300 à 306 dans lesquels un microprocesseur 100 peut lire et écrire des données par l'intermédiaire d'un bus de données 400. La mémoire 200 (par exemple un disque amovible ou pas, ou bien une mémoire sous forme de circuit intégré (par exemple de type flash EEPROM)) comprend, dans une partie 250, les instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé qui sera décrit en référence à la figure 2. Une entrée/sortie 500 est également connectée au microprocesseur 100 par l'intermédiaire du bus 400. D'autres architectures sont bien entendues possibles.The device of FIG. 1 comprises a memory 200, hard disks and 300 to 306 in which a microprocessor 100 can read and write data via a data bus 400. The memory 200 (for example a removable disk or not, or else a memory in the form of an integrated circuit (for example of the flash EEPROM type)) comprises, in a part 250, the code instructions of a computer program for the execution of each of the steps of the method which will be described with reference to FIG. 2. An input / output 500 is also connected to the microprocessor 100 via the bus 400. Other architectures are of course possible.

La figure 2 décrit les étapes réalisées par le microprocesseur 100 dans un mode de réalisation de l'invention. Le microprocesseur comprend une mémoire de travail (non représentée) utilisée dans les étapes du procédé ci-dessous.FIG. 2 describes the steps carried out by the microprocessor 100 in an embodiment of the invention. The microprocessor includes a working memory (not shown) used in the process steps below.

A l'étape 1000, le microprocesseur 100 obtient le vecteur de donnée d par exemple en le recevant par l'entrée/sortie 500 et via le bus 400. Le vecteur de donnée d est constituée de z éléments (z étant bien évidemment un entier) du corps B, défini plus haut.In step 1000, the microprocessor 100 obtains the data vector d for example by receiving it by the input / output 500 and via the bus 400. The data vector d consists of z elements (z being obviously an integer ) of body B, defined above.

A l'étape 2000, le microprocesseur 100 calcule l'image du vecteur d par l'isomorphisme F, défini plus haut et mémorise le résultat dans le vecteur dt constitué de z éléments dans l'anneau R2n.In step 2000, the microprocessor 100 calculates the image of the vector d by the isomorphism F, defined above and stores the result in the vector dt consisting of z elements in the ring R 2n .

A l'étape 3000, une matrice transformée GT est obtenue par le microprocesseur 100. Chaque élément de cette matrice transformée GT situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice génératrice G par l'isomorphisme F, et d'un élément de l'anneau R2n qui n'a aucune composante dans l'idéal principal A, défini plus haut.In step 3000, a transformed matrix GT is obtained by the microprocessor 100. Each element of this transformed matrix GT located at a line and at a column is the sum of the image of the element located at said line and at said column of a generator matrix G by the isomorphism F, and of an element of the ring R 2n which has no component in the main ideal A, defined above.

De manière générale, dans un mode de réalisation, à l'étape 3000, la matrice transformée GT, peut être préalablement déterminée et mémorisée dans une mémoire, qui peut-être non volatile, par exemple, dans le mode de réalisation de la figure 2, dans la mémoire 200 ou dans la propre mémoire du processeur 100. La matrice transforméeIn general, in one embodiment, in step 3000, the transformed matrix GT, can be previously determined and stored in a memory, which may be non-volatile, for example, in the embodiment of FIG. 2 , in memory 200 or in own memory of processor 100. The transformed matrix

GT est alors obtenue, par exemple par le processeur 100, par lecture de cette mémoire, pour l'encodage d'une pluralité de vecteurs. La figure 3 illustre un mode de réalisation pour prédéterminer la matrice transformée. En variante, la matrice transformée GT peut être recalculée à chaque fois que la matrice génératrice transformée est obtenue, par exemple en appliquant l'isomorphisme F, défini plus haut à la matrice génératrice G ellemême mémorisée.GT is then obtained, for example by the processor 100, by reading this memory, for the encoding of a plurality of vectors. FIG. 3 illustrates an embodiment for predetermining the transformed matrix. As a variant, the transformed matrix GT can be recalculated each time that the transformed generator matrix is obtained, for example by applying the isomorphism F, defined above to the generator matrix G itself stored.

La matrice génératrice G est dans le corps B,, et définit un code correcteur linéaire. Elle peut être constituée de t lignes et z colonnes (t supérieur à z, les z premières lignes de G peuvent constituer classiquement une matrice identité). La matrice génératrice transformée GT, dans l'anneau R2n, a naturellement le même nombre de lignes et de colonnes que la matrice génératrice G.The generator matrix G is in the body B ,, and defines a linear correction code. It can be made up of t rows and z columns (t greater than z, the first z rows of G can conventionally constitute an identity matrix). The transformed generator matrix GT, in the ring R 2n , naturally has the same number of rows and columns as the generator matrix G.

A l'étape 4000, on multiplie la matrice transformée GT par le vecteur de donnée dt. Le résultat de cette multiplication est le vecteur encodé transformé et constitué de t éléments dans l'anneau R2n.In step 4000, the transformed matrix GT is multiplied by the data vector dt. The result of this multiplication is the encoded vector transformed and made up of t elements in the ring R 2n .

A l'étape 5000, on applique l'isomorphisme inverse noté F,1 défini plus haut au vecteur encodé transformé et. Le résultat est un vecteur encodé c. le vecteur encodé c est égal au produit de la matrice génératrice G par le vecteur de données d, autrement dit au résultat de l'encodage du vecteur de donnée selon le code correcteur linéaire défini par la matrice génératrice G. Le vecteur encodé c comprend bien entendu t éléments du corps B,.In step 5000, the reverse isomorphism denoted F, 1 defined above is applied to the encoded vector transformed and. The result is a vector encoded c. the encoded vector c is equal to the product of the generating matrix G by the data vector d, in other words the result of the encoding of the data vector according to the linear correcting code defined by the generating matrix G. The encoded vector c understands well heard t elements of body B ,.

A l'étape 6000, le vecteur encodé c est découpé en sept blocs de données (cbO, cb2, cb3, cb4, cb5, cb6) par le microprocesseur 100 qui mémorise chacun de ces sept blocs dans chacun des sept disques 300, 301, 302, 304, 305, 306. Ici le nombre sept pour le nombre de blocs et le nombre de disques est donné bien entendu à titre d'exemple, et peut-être quelconque. A l'étape 6000', le disque 302, par exemple, est hors service suite à un incident qui a lieu après que ces blocs aient été mémorisés à l'étape 6000. A titre d'exemple, cet incident a pour conséquence que le bloc de données cb2 est considéré comme effacé, perdu ou erroné pour les indices compris entre r et s qui seront dits erronés. Le vecteur résultant est le vecteur à corriger cf.In step 6000, the encoded vector c is divided into seven data blocks (cbO, cb2, cb3, cb4, cb5, cb6) by the microprocessor 100 which stores each of these seven blocks in each of the seven disks 300, 301, 302, 304, 305, 306. Here the number seven for the number of blocks and the number of disks is given of course by way of example, and perhaps any. At step 6000 ′, the disk 302, for example, is out of service following an incident which takes place after these blocks have been stored in step 6000. By way of example, this incident has the consequence that the cb2 data block is considered to be erased, lost or erroneous for the indices between r and s which will be said to be erroneous. The resulting vector is the vector to be corrected cf.

A l'étape 7000, on calcule l'image du vecteur à corriger cf par l'isomorphisme F, pour obtenir le vecteur à corriger transformé cft.In step 7000, the image of the vector to be corrected cf is calculated by the isomorphism F, to obtain the vector to be corrected transformed cft.

A l'étape 8000, on obtient une matrice transformée G_1T. Chaque élément de la matrice transformée G_1T obtenue, situé à une ligne et à une colonne, est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute par l'isomorphisme F, et d'un élément de l'anneau R2n qui n'a aucune composante dans l'idéal principal A,, la matrice brute étant l'inverse (G1) de la matrice génératrice G duquel inverse sont supprimées les lignes correspondantes à ladite pluralité d'indices erronés (dans notre exemple les (numéros de) lignes comprises entre r et s).At step 8000, one obtains a transform matrix G -1 T. Each element of the transform matrix G obtained _1 T, located in a line and a column is the sum of the image of the element at said line and to said column of a raw matrix by the isomorphism F, and of an element of the ring R 2n which has no component in the main ideal A ,, the raw matrix being the reverse (G 1 ) from the generator matrix G from which the lines corresponding to said plurality of erroneous indices are deleted (in our example the (numbers of) lines between r and s).

De manière générale, lors du décodage, (et pas seulement dans ce mode de réalisation), la matrice transformée G_1T peut être obtenue soit :In general, during decoding, (and not only in this embodiment), the transformed matrix G _1 T can be obtained either:

- en appliquant l'isomorphisme F, à l'inverse G1 de la matrice génératrice G duquel inverse sont supprimées les lignes correspondantes aux indices erronés et éventuellement en ajoutant, à certains éléments de la matrice, un élément de l'anneau R2n qui n'a aucune composante dans l'idéal principal A, (de manière analogue à ce qui est décrit ci-dessous à l'étape 3100),- by applying the isomorphism F, unlike G 1 of the generator matrix G from which inverse are deleted the lines corresponding to the erroneous indices and possibly by adding, to certain elements of the matrix, an element of the ring R 2n which has no component in the main ideal A, (analogously to what is described below in step 3100),

- à partir de l'inverse de la matrice transformée GT utilisée pour l'encodage (dans le mode de réalisation de la figure 2 déterminée à l'étape 3000, et utilisée pour encoder le vecteur de donnée à l'étape 4000), duquel inverse G1 on a supprimé les lignes de même numéro que les indices erronés.- from the inverse of the transformed matrix GT used for encoding (in the embodiment of FIG. 2 determined in step 3000, and used to encode the data vector in step 4000), of which inverse G 1 we deleted the lines of the same number as the erroneous indices.

A l'étape 9000, un vecteur de donnée transformé dt est obtenu à partir de la multiplication de la matrice transformée G_1T par le vecteur à corriger transformé cft.In step 9000, a transformed data vector dt is obtained from the multiplication of the transformed matrix G _1 T by the transformed vector to be corrected cft.

A l'étape 10000, on calcule l'image du vecteur de donnée transformé dt par l'application de l'isomorphisme inverse F,1 défini précédemment. Le résultat est le vecteur de donnée d. Le bloc erroné, (autrement dit effacé ou perdu), dans le mode de réalisation de figure 2 cb2, a été ainsi retrouvé grâce l'utilisation du code correcteur d'erreur linéaire défini par la matrice génératrice G.In step 10000, the image of the transformed data vector dt is calculated by applying the inverse isomorphism F, 1 defined above. The result is the data vector d. The erroneous block, (in other words erased or lost), in the embodiment of FIG. 2 cb2, was thus found through the use of the linear error correcting code defined by the generator matrix G.

Le vecteur de donnée d est alors à nouveau encodé en vecteur encodé c et mémorisé par exemple dans un nouveau disque 302.The data vector d is then encoded again into encoded vector c and stored for example in a new disc 302.

Les étapes 5000 et 7000 peuvent être conjointement omises. On peut en effet mémoriser dans les disques 300 à 306 à l'étape 6000 le vecteur encodé transformé et (en blocs de données), qui est dans l'anneau R2n, au lieu de mémoriser le vecteur encodé c.Steps 5000 and 7000 can be omitted together. It is indeed possible to store in disks 300 to 306 in step 6000 the encoded vector transformed and (in data blocks), which is in the ring R 2n , instead of storing the encoded vector c.

Les procédés d'encodage et de décodage sont décrits en référence à la figure 2 et sont mis en œuvre par le même dispositif de la figure 1. Toutefois, en pratique, le procédé d'encodage et le procédé de décodage peuvent bien entendu être réalisés indépendamment et par des machines différentes.The encoding and decoding methods are described with reference to FIG. 2 and are implemented by the same device in FIG. 1. However, in practice, the encoding method and the decoding method can of course be carried out. independently and by different machines.

Le microprocesseur 100 peut être remplacé par un ordinateur, par exemple par un serveur internet, ou bien être compris dans un serveur internet ainsi que la mémoire 200, les disques 300 à 306 et le bus 400.The microprocessor 100 can be replaced by a computer, for example by an internet server, or else be included in an internet server as well as the memory 200, the disks 300 to 306 and the bus 400.

L'invention ne s'applique pas uniquement à l'encodage et au décodage de données en mémoire, par exemple sur un disque dur. Elle peut également s'appliquer à la l'encodage et au décodage de données pour la communication sur un canal de communication par exemple hertzien.The invention does not only apply to the encoding and decoding of data in memory, for example on a hard disk. It can also be applied to the encoding and decoding of data for communication on a communication channel, for example radio.

De manière connue, le vecteur encodé c est égal au produit de la matrice génératrice G (définissant le code correcteur linéaire) et du vecteur de donnée d, et le vecteur de donnée d est égal au produit de l'inverse G1 de la matrice génératrice, duquel on a supprimé les lignes de même numéro que les indices erronés du vecteur à corriger.In known manner, the encoded vector c is equal to the product of the generating matrix G (defining the linear correcting code) and the data vector d, and the data vector d is equal to the product of the inverse G 1 of the matrix generator, from which the lines of the same number as the erroneous indices of the vector to be corrected have been deleted.

La figure 3 illustre les étapes pour obtenir la matrice génératrice transformée GT. A l'étape 3500, une matrice candidate transformée GTc dans l'anneau R2 n est engendrée. Les figures 4 et 5 donneront plus loin les détails de cette étape, chacune selon un mode de réalisation de l'invention.Figure 3 illustrates the steps to obtain the transformed generator matrix GT. In step 3500, a transformed candidate matrix GTc in the ring R 2 n is generated. Figures 4 and 5 will give further details of this step, each according to an embodiment of the invention.

A l'étape 3600, le microprocesseur 100 estime un nombre d'opérations de ou exclusif à réaliser pour l'étape de multiplication de la matrice transformée GT par le vecteur transformé dt lorsque la matrice candidate transformée GTc est choisie en tant que matrice transformée GT. Dans une représentation dite à base de ou exclusif, le nombre d'opérations de ou exclusif est obtenu à partir du nombre total de 1 dans les éléments de l'anneau R2n de la matrice candidate transformée GTc (ou de la matrice transformée GT).At step 3600, the microprocessor 100 estimates a number of or exclusive operations to be carried out for the step of multiplying the transformed matrix GT by the transformed vector dt when the transformed candidate matrix GTc is chosen as the transformed matrix GT . In a representation called based on or exclusive, the number of operations of or exclusive is obtained from the total number of 1 in the elements of the ring R 2n of the transformed candidate matrix GTc (or of the transformed matrix GT) .

A l'étape 3700, le processeur 100 détermine si la matrice candidate transformée GTc est choisie en tant que matrice transformée. De manière générale, dans un mode de réalisation de l'invention, une pluralité de matrices candidates transformées GTc sont engendrées (par exemple à partir de nombres aléatoires). La matrice candidate transformée GTc pour laquelle le nombre d'opérations est le plus petit, parmi la pluralité de matrices, est choisie.In step 3700, the processor 100 determines whether the transformed candidate matrix GTc is chosen as the transformed matrix. In general, in one embodiment of the invention, a plurality of transformed candidate matrices GTc are generated (for example from random numbers). The transformed candidate matrix GTc for which the number of operations is the smallest, among the plurality of matrices, is chosen.

La figure 4 illustre maintenant comment la matrice candidate transformée GTc peut être engendrée notamment durant l'étape 3500, dans un premier mode de réalisation. Dans un mode de réalisation, la matrice transformée GT peut également être obtenue directement de cette manière à l'étape de détermination de la matrice transformée (à l'étape 3000 dans le mode de réalisation de la figure 2) sans effectuer les étapes 3600 et 3700.FIG. 4 now illustrates how the transformed candidate matrix GTc can be generated in particular during step 3500, in a first embodiment. In one embodiment, the transformed matrix GT can also be obtained directly in this way in the step of determining the transformed matrix (in step 3000 in the embodiment of FIG. 2) without performing steps 3600 and 3700.

A l'étape 3100, une matrice candidate génératrice Gc dans le corps B,, définissant un code correcteur MDS (Maximum Distance Separable) est engendrée, par exemple (dans un mode de réalisation de l'invention) en utilisant de manière connue les méthodes pour construire une matrice de Cauchy, de Vandermonde ou de Cauchy généralisée également connues en soi.In step 3100, a candidate candidate generator matrix Gc in the body B ,, defining a correction code MDS (Maximum Distance Separable) is generated, for example (in an embodiment of the invention) using known methods to build a generalized Cauchy, Vandermonde or Cauchy matrix also known per se.

A l'étape 3200, le microprocesseur 100 utilise l'isomorphisme F, pour obtenir la matrice candidate transformée GTc à partir de la matrice candidate génératrice Gc. Dans un premier mode de réalisation, on calcule l'image par l'isomorphisme F, de la matrice candidate génératrice Gc pour obtenir la matrice candidate transformée GTc. En variante, on ajoute, pour au moins un élément de la matrice candidate transformée (GTc), à l'image des éléments de matrice candidate génératrice Gc un élément de l'anneau R2n non nul qui n'a aucune composante dans l'idéal principal A,, par exemple lorsque cet ajout permet de réduire le nombre de 1 (on se place alors ici dans une représentation dite à base de XOR bien entendu) dans l'élément de la matrice candidate transformée. Autrement dit, dans un mode de réalisation de l'invention, un élément de la matrice transformée (GT, G_1T) (ou en particulier, pour cette figure, de la matrice candidate transformée) situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne de la matrice brute (ici la matrice génératrice ou la matrice candidate génératrice) par l'isomorphisme F, et d'un élément de l'anneau R2n non nul qui n'a aucune composante dans l'idéal principal A, par exemple, lorsque cet élément situé à ladite ligne et à ladite colonne de la matrice transformée a un nombre de 1 inférieurs au nombre de 1 présents dans l'image de l'élément situé à ladite ligne et à ladite colonne de la matrice brute. Dans ce mode de réalisation, l'invention permet alors d'obtenir des matrices transformées peu denses, ce qui réduit le nombre d'opérations de ou exclusif à réaliser pour l'étape de multiplication de la matrice transformée par le vecteur transformé, lorsque la matrice candidate transformée est choisie en tant que matrice transformée.In step 3200, the microprocessor 100 uses the isomorphism F, to obtain the transformed candidate matrix GTc from the generator candidate matrix Gc. In a first embodiment, the image is computed by the isomorphism F, of the generator candidate matrix Gc to obtain the transformed candidate matrix GTc. As a variant, we add, for at least one element of the transformed candidate matrix (GTc), to the image of the elements of generator candidate matrix Gc, a non-zero element of the ring R 2n which has no component in the main ideal A ,, for example when this addition makes it possible to reduce the number of 1 (we therefore place ourselves here in a so-called XOR-based representation of course) in the element of the transformed candidate matrix. In other words, in an embodiment of the invention, an element of the transformed matrix (GT, G _1 T) (or in particular, for this figure, of the transformed candidate matrix) located at a line and at a column is the sum of the image of the element located at said line and at said column of the raw matrix (here the generator matrix or the candidate generator matrix) by the isomorphism F, and of an element of the ring R 2n nonzero which has no component in the main ideal A, for example, when this element located at said line and at said column of the transformed matrix has a number of 1 less than the number of 1 present in the image of l element located at said line and at said column of the raw matrix. In this embodiment, the invention then makes it possible to obtain sparse transformed matrices, which reduces the number of or exclusive operations to be carried out for the step of multiplying the matrix transformed by the transformed vector, when the transformed candidate matrix is chosen as transformed matrix.

Les éléments l'anneau R2n qui n'ont aucune composante dans l'idéal principal A,, sont les multiples de ρ,(χ) dans cet anneau, et chaque élément peut être obtenu en calculant au moins une partie de ces multiples.The elements in the ring R 2n which have no component in the main ideal A ,, are the multiples of ρ, (χ) in this ring, and each element can be obtained by calculating at least part of these multiples.

La figure 5 illustre maintenant comment la ou les matrices candidates transformées GTc peuvent être engendrées notamment durant l'étape 3500, dans un deuxième mode de réalisation. A l'étape 3300, une matrice candidate transformée GTc est engendrée. Selon un mode de réalisation de l'invention, la matrice candidate transformée peut être constituée d'éléments dans l'anneau R2n qui sont, dans une représentation dite à base de XOR, des décalages cycliques de la matrice identité (de n lignes et n colonnes). A l'étape 3400, on calcule l'image de la matrice candidate transformée GTc par l'isomorphisme inverse F,1 (défini précédemment) pour obtenir une matrice candidate génératrice Gc (on peut choisir de retrancher de l'image, pour tout ou partie des éléments de la matrice candidate transformée, un élément de l'anneau R2 n non nul qui n'a aucune composante dans l'idéal principal A,). Si la matrice candidate génératrice est MDS, la matrice candidate transformée GTc est retenue (par exemple pour réaliser les étapes 3600 et 3700 de la figure 3). Sinon, la matrice candidate transformée GTc est rejetée.FIG. 5 now illustrates how the transformed candidate matrix (s) GTc can be generated in particular during step 3500, in a second embodiment. In step 3300, a transformed candidate matrix GTc is generated. According to one embodiment of the invention, the transformed candidate matrix can consist of elements in the ring R 2n which are, in a so-called XOR-based representation, cyclic shifts of the identity matrix (of n lines and n columns). At step 3400, the image of the transformed candidate matrix GTc by the inverse isomorphism F, 1 (previously defined) is calculated to obtain a generator candidate matrix Gc (we can choose to subtract from the image, for all or part of the elements of the transformed candidate matrix, a non-zero element of the ring R 2 n which has no component in the main ideal A,). If the generating candidate matrix is MDS, the transformed candidate matrix GTc is retained (for example to carry out steps 3600 and 3700 in FIG. 3). Otherwise, the transformed candidate matrix GTc is rejected.

La figure 6 présente plus en détail l'étape 4000 (l'étape 9000 peut être réalisée de la même manière) et décrit comment la matrice transformée est mémorisée. La figure 6 présente une partie de matrice transformée GT (ou bien la totalité d'une matrice transformée, par exemple lorsque la notion de matrice génératrice exclue les z premières lignes qui constituent une matrice identité dans un code systématique) comprenant trois lignes et trois colonnes, dans le cas où n=5, et où la matrice transformée est mémorisée dans une représentation dite à base de ou exclusif. Chaque élément dans l'anneau R25 de la matrice transformée GT est une matrice carrée élémentaire de 5x5 nombres binaires. Les plus petites cases représentent ces nombres binaires. Celles comprenant un point ou une croix sont celles qui mémorisent des 1. Les autres mémorisent des 0. La figure représente en particulier une partie de l'étape 4000 de multiplication d'une partie de la matrice transformée GT par une partie du vecteur de données transformé dt constituée des vecteurs aO, al, a2 dans l'anneau R2,5 pour obtenir la partie correspondante du vecteur encodé transformé et constituée des vecteurs pO, pl, p2 dans l'anneau R2j5 ( dans le cas d'un code systématique où on omet les z éléments identiques au vecteur de donnée, dt et et peuvent représenter respectivement la totalité du vecteur de donnée et la totalité du vecteur encodé transformé).FIG. 6 presents in more detail step 4000 (step 9000 can be carried out in the same way) and describes how the transformed matrix is memorized. FIG. 6 presents a part of a transformed matrix GT (or else the whole of a transformed matrix, for example when the notion of generating matrix excludes the first z lines which constitute an identity matrix in a systematic code) comprising three lines and three columns , in the case where n = 5, and where the transformed matrix is stored in a so-called or exclusive representation. Each element in the ring R 25 of the transformed matrix GT is an elementary square matrix of 5x5 binary numbers. The smallest boxes represent these binary numbers. Those comprising a point or a cross are those which memorize 1. The others memorize 0. The figure represents in particular a part of the step 4000 of multiplication of a part of the transformed matrix GT by a part of the data vector transformed dt consisting of the vectors aO, al, a2 in the ring R 2 , 5 to obtain the corresponding part of the encoded vector transformed and consisting of the vectors pO, pl, p2 in the ring R 2j5 (in the case of a code systematic where we omit the z elements identical to the data vector, dt and and can represent respectively the whole of the data vector and the whole of the encoded vector transformed).

La matrice transformée GT est par exemple mémorisée sous la forme d'une matrice compressée GT' dans laquelle chaque élément de la matrice transformée GT est mémorisé sous la forme de sa première ligne par exemple 610. Cela est possible car les éléments dans l'anneau ont tous des diagonales pleines de 1 ou pleines de 0.The transformed matrix GT is for example stored in the form of a compressed matrix GT 'in which each element of the transformed matrix GT is stored in the form of its first line for example 610. This is possible because the elements in the ring all have diagonals full of 1 or full of 0.

Au lieu d'utiliser la première ligne, on peut utiliser d'autres lignes ou une colonne. L'utilisation d'une telle matrice compressée permet de réduire l'espace mémoire et le temps de calcul nécessaire à la réalisation du procédé de la figure 2 ou plus généralement de l'invention.Instead of using the first row, you can use other rows or a column. The use of such a compressed matrix makes it possible to reduce the memory space and the computation time necessary for carrying out the method of FIG. 2 or more generally of the invention.

En particulier, l'étape 4000 comprend une sous-étape de multiplication de la matrice carrée élémentaire 610 par le vecteur aode dt lors du calcul du vecteur p0 de et. Cette étape peut être réalisée par la lecture de la ligne 610 sans lire le reste de la matrice carrée élémentaire 600 en mémoire. Lors de cette lecture, si un nombre binaire, par exemple 612 vaut 1 dans cette ligne 610, on réalise tous les XOR engendrés par la diagonale déterminée par la position de 612, par exemple le XOR déterminé par le fait que le nombre binaire 613 est à 1.In particular, step 4000 comprises a substep of multiplication of the elementary square matrix 610 by the vector a o of dt during the calculation of the vector p 0 of and. This step can be carried out by reading the line 610 without reading the rest of the elementary square matrix 600 in memory. During this reading, if a binary number, for example 612 is worth 1 in this line 610, all the XOR generated by the diagonal determined by the position of 612 are carried out, for example the XOR determined by the fact that the binary number 613 is at 1.

En outre, pour limiter le nombre de XOR réalisés lors de l'étape 4000, on recherche une sous partie identique dans les trois lignes de la partie de la matrice transformée compressée GT'. Dans les trois lignes de GT', la sous partie comprise entre les deux nombres binaires représentés par une case comprenant un point est identique (on ne tient pas compte des 1 présents entre ces deux nombres binaires). De manière générale, la sous partie identique définit des XOR identiques intervenant dans le calcul de plusieurs éléments du vecteur et. Dans l'exemple de la figure 6, les trois sous-parties identiques définissent des XOR qui interviennent dans le calcul des trois éléments p0, Pi et p2 du vecteur et. De manière générale, on calcule donc un résultat intermédiaire qui représente le nombre de XOR déterminés par la sous partie identique et on utilise ce résultat intermédiaire pour le calcul d'autres éléments du vecteur transformé. Ainsi, si la sous partie identique comprend we éléments binaires (i.e. : égaux à 1, ou plus généralement représentant un XOR) et si la sous partie identique est présente dans m lignes, on économise n(we*m-(we+m)) XOR. Dans l'exemple donné à la figure 6, on économise par ainsi 5 XOR.In addition, to limit the number of XORs produced during step 4000, an identical sub-part is sought in the three lines of the part of the compressed transformed matrix GT ′. In the three lines of GT ', the sub-part between the two binary numbers represented by a box comprising a point is identical (we do not take into account the 1 present between these two binary numbers). In general, the identical sub-part defines identical XORs involved in the calculation of several elements of the vector and. In the example of FIG. 6, the three identical sub-parts define XORs which are involved in the calculation of the three elements p 0 , Pi and p 2 of the vector and. Generally speaking, an intermediate result is therefore calculated which represents the number of XORs determined by the identical sub-part and this intermediate result is used for the calculation of other elements of the transformed vector. Thus, if the identical sub-part includes we binary elements (ie: equal to 1, or more generally representing an XOR) and if the identical sub-part is present in m lines, we save n (we * m- (we + m) ) XOR. In the example given in Figure 6, we thus save 5 XOR.

La figure 6 donne un exemple où les occurrences de la sous partie identique sont alignées dans G' (i.e. : dans la sous partie identique, selon les lignes, les nombres binaires à 1 sont dans les mêmes colonnes), mais celles-ci peuvent être plus généralement, dans un mode de réalisation de l'invention, décalées (i.e. : dans la sous partie identique, selon les lignes, les nombres binaires à 1 (ou plus généralement représentant un XOR dans une multiplication avec un autre élément) sont dans des colonnes différentes, la quantité de nombres binaires (à 0 ou 1) entre chaque couple de 1 de la partie identique étant identique). L'utilisation de la matrice compressée permet de rechercher dans un temps réaliste de telles sous parties identiques décalées, permettant ainsi de réduire encore plus le nombre de XOR réalisés lors de l'étape 4000. Selon un mode de réalisation, le polynôme p,(x) est un polynôme AOP ou un polynôme ESP.Figure 6 gives an example where the occurrences of the identical part are aligned in G '(ie: in the identical part, according to the lines, the binary numbers at 1 are in the same columns), but these can be more generally, in one embodiment of the invention, offset (ie: in the identical part, along the lines, the binary numbers at 1 (or more generally representing an XOR in a multiplication with another element) are in different columns, the quantity of binary numbers (0 or 1) between each pair of 1 of the identical part being identical). The use of the compressed matrix makes it possible to search in a realistic time for such identical offset sub-parts, thus making it possible to further reduce the number of XORs produced during step 4000. According to one embodiment, the polynomial p, ( x) is an AOP polynomial or an ESP polynomial.

Dans une première variante de ce mode de réalisation, l'application de l'isomorphisme F, comprend l'ajout d'un bit de parité à l'élément du corps, comme l'illustre les figures 7 et 8. L'application de l'isomorphisme inverse F,1 consiste alors à supprimer le bit de parité.In a first variant of this embodiment, the application of the isomorphism F includes the addition of a parity bit to the element of the body, as illustrated in FIGS. 7 and 8. The application of the inverse isomorphism F, 1 then consists in suppressing the parity bit.

La figure 7 représente le calcul de l'image par l'isomorphisme Fj(x) pour n=5 pour un polynôme p,(x) AOP. Selon cette variante, pour un polynôme AOP, l'application de l'isomorphisme F, consiste en l'ajout d'un bit de parité (i.e. : résultat du XOR) de tous les nombres binaires constituant l'élément du corps.Figure 7 represents the computation of the image by the isomorphism Fj (x) for n = 5 for a polynomial p, (x) AOP. According to this variant, for an AOP polynomial, the application of the isomorphism F, consists in adding a parity bit (i.e.: result of XOR) of all the binary numbers constituting the element of the body.

La figure 8 représente le calcul de l'image par l'isomorphisme F, pour un polynôme p,(x) ESP. On peut montrer que l'idéal correspondant au corps fini déterminé par un ESP est l'ensemble des éléments qui peuvent se décomposer comme un entrelacement de s mots de poids pair de longueur r+1. Dans ce mode de réalisation, le calcul de l'image d'un élément constitué de sr bits formant r blocs de s bits consécutifs (sur la figure 8, r=2, s=3, le bloc 1 et le bloc 2 forment l'élément) consiste à ajouter un bloc de s bits (sur la figure 2, le bloc 3) qui est le XOR (bit à bit) des r blocs de s bits de l'élément (sur la figure 2 qui est le XOR du bloc 1 et du bloc 2. L'image est formée par les bloc 1, 2 et 3). Dans une deuxième variante de ce mode de réalisation, le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme F, comprend l'ajout d'une donnée binaire égale à 0 à une position dudit vecteur de bit.FIG. 8 represents the computation of the image by the isomorphism F, for a polynomial p, (x) ESP. It can be shown that the ideal corresponding to the finite field determined by an ESP is the set of elements which can be decomposed as an interlacing of s words of even weight of length r + 1. In this embodiment, the calculation of the image of an element consisting of sr bits forming r blocks of s consecutive bits (in FIG. 8, r = 2, s = 3, block 1 and block 2 form l element) consists in adding a block of s bits (in figure 2, block 3) which is the XOR (bit by bit) of the r blocks of s bits of the element (in figure 2 which is the XOR of block 1 and block 2. The image is formed by blocks 1, 2 and 3). In a second variant of this embodiment, the computation of the image of each element of the finite body B, by the isomorphism F, comprises the addition of a binary datum equal to 0 at a position of said bit vector.

Comme l'illustrent les figures 9 et 10, le calcul de l'image de chaque élément du corps fini B, par isomorphisme inverse F,1 comprend l'ajout de la donnée binaire située à ladite position à une pluralité de données binaires dudit vecteur de données binaires, puis la suppression de ladite donnée binaire située à ladite position dudit vecteur de bit.As illustrated in FIGS. 9 and 10, the computation of the image of each element of the finite body B, by inverse isomorphism F, 1 includes the addition of the binary data located at said position to a plurality of binary data of said vector binary data, then deleting said binary data located at said position of said bit vector.

La figure 9 représente le calcul de l'image par l'isomorphisme inverse F,1 pour n=5 pour un polynôme p,(x) AOP. Dans ce mode de réalisation, de manière générale, le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme inverse Fj1 consiste à l'ajout de la donnée binaire située à ladite position à chaque donnée binaire dudit vecteur de données binaires, puis la suppression de ladite donnée binaire située à ladite position dudit vecteur de bit. La figure 10 représente le calcul de l'image par l'isomorphisme inverse noté F^pour un polynôme ESP. Ce calcul consiste à faire des opérations XOR entre le dernier bloc de s bits et chacun des r blocs de s bits de l'élément. Dans la figure 10, s = 3 et r = 2.Figure 9 represents the computation of the image by the inverse isomorphism F, 1 for n = 5 for a polynomial p, (x) AOP. In this embodiment, in general, the computation of the image of each element of the finite body B, by the inverse isomorphism Fj 1 consists in adding the binary datum located at said position to each binary datum of said vector binary data, then deleting said binary data located at said position of said bit vector. Figure 10 represents the computation of the image by the inverse isomorphism noted F ^ for a polynomial ESP. This calculation consists in making XOR operations between the last block of s bits and each of the r blocks of s bits of the element. In Figure 10, s = 3 and r = 2.

Claims (20)

REVENDICATIONS 1. Procédé d'encodage d'un vecteur de donnée (d), en un vecteur encodé transformé (et), selon un code correcteur d'erreur linéaire défini par une matrice génératrice (G), dans lequel :1. Method for encoding a data vector (d), into a transformed encoded vector (and), according to a linear error correcting code defined by a generating matrix (G), in which: - le vecteur de donnée (d) et la matrice génératrice (G) sont dans le corps fini de polynômes, noté B,, défini de la manière suivante : B, = GF2(x)/(Pî(x)), p,(x) étant un polynôme irréductible qui divise le polynôme xn+l, i et n étant des entiers,- the data vector (d) and the generating matrix (G) are in the finite field of polynomials, denoted B ,, defined as follows: B, = GF 2 (x) / (Pî (x)), p , (x) being an irreducible polynomial which divides the polynomial x n + l, i and n being integers, - Le vecteur encodé transformé (et) appartenant à un anneau, noté R2n, et est l'image par un isomorphisme, noté F,, du produit de la matrice génératrice (G) par le vecteur de donnée (d), l'isomorphisme Fj, du corps fini B, dans un ensemble A,, étant défini de la manière suivante : F, (p(x)) = p(x) Ο,,(χ) , où A, est I' idéal principal de l'anneau R2n engendré par le polynôme χη+1/ρ,(χ), Ο,,(χ) est l'unique idempotent dudit idéal principal A,, et p(x) un polynôme appartenant au corps B,, l'anneau étant défini de la manière suivante : R2n = GF2(x)/(xn+l) ledit procédé comprenant les étapes suivantes :- The encoded transformed vector (and) belonging to a ring, noted R 2n , and is the image by an isomorphism, noted F ,, of the product of the generating matrix (G) by the data vector (d), the isomorphism Fj, of the finite field B, in a set A ,, being defined as follows: F, (p (x)) = p (x) Ο ,, (χ), where A, is the principal ideal of the ring R 2n generated by the polynomial χ η + 1 / ρ, (χ), Ο ,, (χ) is the unique idempotent of the main ideal A ,, and p (x) a polynomial belonging to the body B ,, the ring being defined as follows: R 2n = GF 2 (x) / (x n + l) said process comprising the following steps: - Une étape de calcul de l'image par l'isomorphisme F, du vecteur de donnée (d) pour obtenir un vecteur de donnée transformé (dt),- A step of calculating the image by the isomorphism F, of the data vector (d) to obtain a transformed data vector (dt), - une étape de détermination d'une matrice transformée (GT), dans laquelle chaque élément de la matrice transformée (GT) situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute (G) par l'isomorphisme Fj et d'un élément de l'anneau R2 n qui n'a aucune composante dans l'idéal principal A,, la matrice brute (G) étant la matrice génératrice (G),a step of determining a transformed matrix (GT), in which each element of the transformed matrix (GT) located at a line and at a column is the sum of the image of the element located at said line and at the said column of a raw matrix (G) by the isomorphism Fj and of an element of the ring R 2 n which has no component in the main ideal A ,, the raw matrix (G) being the matrix generator (G), - une étape de multiplication de la matrice transformée (GT) par un vecteur transformé (dt), le vecteur transformé (dt) étant le vecteur de donnée transformée (dt), pour obtenir ledit vecteur encodé transformé (et).a step of multiplying the transformed matrix (GT) by a transformed vector (dt), the transformed vector (dt) being the vector of transformed data (dt), to obtain said encoded vector transformed (and). 2. Procédé d'encodage selon la revendication 1 comprenant une étape de calcul de l'image par un isomorphisme inverse, noté Fj1, du vecteur encodé transformé (et) pour obtenir un vecteur encodé (c), l'isomorphisme inverse Fj1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante : p(x) = pn(x) mod p,(x), pn(x) étant un polynôme de l'anneau R2n, le vecteur encodé (c) étant égal au produit de la matrice génératrice (G) par le vecteur de donnée (d).2. The encoding method according to claim 1 comprising a step of calculating the image by an inverse isomorphism, denoted Fj 1 , of the transformed encoded vector (and) to obtain an encoded vector (c), the inverse isomorphism Fj 1 being the inverse of the isomorphism F, and is defined as follows: p (x) = pn (x) mod p, (x), pn (x) being a polynomial of the ring R 2n , the vector encoded (c) being equal to the product of the generator matrix (G) by the data vector (d). 3. Procédé de décodage d'un vecteur à corriger transformé (cft), en un vecteur de donnée (d) selon un code correcteur d'erreur linéaire défini par une matrice génératrice (G), ledit vecteur à corriger comprenant une pluralité d'indices erronés comprenant un élément erroné dans lequel :3. Method for decoding a vector to be corrected transformed (cft), into a data vector (d) according to a linear error correcting code defined by a generator matrix (G), said vector to be corrected comprising a plurality of erroneous clues comprising an erroneous element in which: - le vecteur de donnée (d) et la matrice génératrice (G) sont dans le corps fini de polynômes, noté B,, défini de la manière suivante : B, = GF2(x)/(pj(x)), ρ,(χ) étant un polynôme irréductible qui divise le polynôme xn+l, i et n étant des entiers,- the data vector (d) and the generating matrix (G) are in the finite body of polynomials, noted B ,, defined as follows: B, = GF 2 (x) / (pj (x)), ρ , (χ) being an irreducible polynomial which divides the polynomial x n + l, i and n being integers, - Le vecteur à corriger transformé (cft) appartenant à un anneau, noté R2n, défini de la manière suivante : R2,n = GF2(x)/(xn+l) ledit procédé comprenant les étapes suivantes :- The transformed vector to correct (cft) belonging to a ring, denoted R 2n , defined as follows: R 2 , n = GF 2 (x) / (x n + l) said process comprising the following steps: - une étape de détermination d'une matrice transformée (G_1T), chaque élément de la matrice transformée (G_1T) situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne d'une matrice brute ( G1) par l'isomorphisme F, et d'un élément de l'anneau R2n qui n'a aucune composante dans l'idéal principal A,, la matrice brute étant l'inverse (G1) de la matrice génératrice (G) de laquelle sont supprimées les lignes correspondantes à ladite pluralité d'indices erronés , l'isomorphisme F,, du corps fini B, dans un ensemble A,, étant défini de la manière suivante : F, (p(x)) = p(x) Qj(x) , où A, est I' idéal principal engendré par le polynôme xn+l/Pi(x) de l'anneau R2n, Ο,,(χ) est l'unique idempotent dudit idéal principal A,, et p(x) un polynôme appartenant au corps B,,- a step of determining a transformed matrix (G _1 T), each element of the transformed matrix (G _1 T) located at a line and at a column is the sum of the image of the element located at said line and to said column of a raw matrix (G 1 ) by the isomorphism F, and of an element of the ring R2n which has no component in the main ideal A ,, the raw matrix being the reverse (G 1 ) of the generating matrix (G) from which the lines corresponding to said plurality of erroneous indices are deleted, the isomorphism F ,, of the finite field B, in a set A ,, being defined as follows: F, (p (x)) = p (x) Qj (x), where A, is I 'principal ideal generated by the polynomial x n + l / Pi (x) of the ring R2n, Ο ,, (χ ) is the unique idempotent of said principal ideal A ,, and p (x) a polynomial belonging to the body B ,, - une étape de multiplication de la matrice transformée (G_1T) par un vecteur transformé(cft), le vecteur transformé (cft) étant le vecteur à corriger transformé (cft), pour obtenir un vecteur de donnée transformé (dt),a step of multiplying the transformed matrix (G _1 T) by a transformed vector (cft), the transformed vector (cft) being the vector to be corrected transformed (cft), to obtain a transformed data vector (dt), - une étape de calcul de l'image par un isomorphisme inverse, noté F,1, du vecteur de donnée transformé (dt) pour obtenir le vecteur de donnée (d), l'isomorphisme inverse F,1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante :a step of calculating the image by an inverse isomorphism, denoted F, 1 , of the transformed data vector (dt) to obtain the data vector (d), the inverse isomorphism F, 1 being the inverse of l isomorphism F, and is defined as follows: p(x) = pn(x) mod p,(x), pn(x) étant un polynôme de l'anneau R2 n.p (x) = pn (x) mod p, (x), pn (x) being a polynomial of the ring R 2 n . 4. Procédé de décodage selon la revendication 3, comprenant, préalablement à l'étape de multiplication, une étape de calcul de l'image par l'isomorphisme F, d'un vecteur à corriger(cf) pour obtenir le vecteur à corriger transformé (cft), le vecteur de donnée (d) étant égal au produit de l'inverse (G1) de la matrice génératrice (G) de laquelle sont supprimées les lignes de même numéro que ladite pluralité d'indices erronés_à ladite pluralité d'indices erronés par le vecteur à corriger (cf).4. decoding method according to claim 3, comprising, prior to the multiplication step, a step of calculating the image by the isomorphism F, of a vector to be corrected (cf) to obtain the vector to be corrected transformed (cft), the data vector (d) being equal to the product of the inverse (G 1 ) of the generator matrix (G) from which are deleted the lines of the same number as said plurality of erroneous indices_to said plurality of erroneous indices by the vector to be corrected (cf). 5. Procédé selon l'une des revendications 1 à 4 dans lequel, la matrice transformée (GT, G_1T) est l'image de la matrice brute (G, G1) par l'isomorphisme F,5. Method according to one of claims 1 to 4 in which, the transformed matrix (GT, G _1 T) is the image of the raw matrix (G, G 1 ) by the isomorphism F, 6. Procédé selon l'une des revendications 1 à 4, dans lequel, au moins un des éléments de la matrice transformée (GT, G_1T) situé à une ligne et à une colonne est la somme de l'image de l'élément situé à ladite ligne et à ladite colonne de la matrice brute (G, G1) par l'isomorphisme F, et d'un élément de l'anneau R2n non nul qui n'a aucune composante dans l'idéal principal A,6. Method according to one of claims 1 to 4, wherein, at least one of the elements of the transformed matrix (GT, G _1 T) located at a line and at a column is the sum of the image of the element located at said line and at said column of the raw matrix (G, G 1 ) by the isomorphism F, and of a non-zero element of the ring R 2n which has no component in the main ideal A , 7. Procédé selon l'une quelconque des revendications précédentes mis en œuvre dans une représentation dite à base de ou exclusif dans laquelle chaque élément de la matrice transformée (GT, G_1T) est représenté par une matrice carrée élémentaire de n lignes et n colonnes de nombre binaires, ledit chaque élément étant mémorisé sous la forme d' une seule de ces n lignes ou n colonnes, la matrice transformée étant ainsi mémorisée sous la forme d'une matrice transformée compressée constituée de la seule des n lignes ou n colonnes de chaque élément de la matrice transformée (GT, G_1T).7. Method according to any one of the preceding claims, implemented in a so-called or exclusive representation in which each element of the transformed matrix (GT, G _1 T) is represented by an elementary square matrix of n lines and n binary number columns, said each element being stored in the form of only one of these n rows or n columns, the transformed matrix thus being stored in the form of a compressed transformed matrix consisting of only one of the n rows or n columns of each element of the transformed matrix (GT, G _1 T). 8. Procédé selon la revendication précédente dans lequel chaque élément du vecteur transformé (dt,cft) est représenté par un vecteur élémentaire de n nombres binaires, ladite étape de multiplication de la matrice transformée (GT, G_1T) par le vecteur transformé (dt,cft) comprenant une sous-étape de multiplication de la matrice carrée élémentaire par le vecteur élémentaire, ladite sous-étape de multiplication comprenant les étapes suivantes :8. Method according to the preceding claim in which each element of the transformed vector (dt, cft) is represented by an elementary vector of n binary numbers, said step of multiplying the transformed matrix (GT, G _1 T) by the transformed vector ( dt, cft) comprising a sub-step of multiplication of the elementary square matrix by the elementary vector, said sub-step of multiplication comprising the following steps: - une étape de lecture en mémoire de ladite seule ligne ou seule colonne de la matrice carrée élémentaire dans la matrice transformée compressée,a step of reading from memory said single row or single column of the elementary square matrix in the compressed transformed matrix, - une étape de traitement dans laquelle, pour chaque nombre binaire occupant une position de ladite une seule ligne ou seule colonne dans la matrice transformée compressée, si ledit bit est égal à une valeur déterminée, les ou exclusifs engendrés par toute la diagonale de la matrice carrée élémentaire déterminée par cette position sont calculés.a processing step in which, for each binary number occupying a position of said one single row or single column in the compressed transformed matrix, if said bit is equal to a determined value, the or exclusives generated by the entire diagonal of the matrix elementary square determined by this position are calculated. 9. Procédé selon la revendication 8, comprenant, préalablement à l'étape de multiplication, les étapes suivantes :9. Method according to claim 8, comprising, prior to the multiplication step, the following steps: - une étape de détermination d'une sous partie identique comprenant we éléments binaires dans m lignes de la matrice transformée compressée, we supérieur ou égal à deux,a step of determining an identical sub-part comprising we binary elements in m lines of the compressed transformed matrix, we greater than or equal to two, - une étape de calcul d'un résultat intermédiaire à partir de ladite sous partie identique,- a step of calculating an intermediate result from said identical sub-part, - l'étape de multiplication étant réalisée à partir du résultat intermédiaire de manière à éviter n.(we.m-(we+m)) opérations de ou exclusif durant l'étape de multiplication.- the multiplication step being carried out from the intermediate result so as to avoid n. (we.m- (we + m)) operations of or exclusive during the multiplication step. 10. Procédé selon l'une quelconque des revendications précédentes prise en dépendance de la revendication 1 comprenant les étapes suivantes :10. Method according to any one of the preceding claims dependent on claim 1 comprising the following steps: - une étape pour engendrer une matrice candidate transformée,- a step to generate a transformed candidate matrix, - une étape pour estimer un nombre d'opérations de ou exclusif à réaliser pour l'étape de multiplication de la matrice transformée (GT) par le vecteur transformé (dt,cft), lorsque la matrice candidate transformée est choisie en tant que matrice transformée (GT),- a step to estimate a number of operations of or exclusive to perform for the step of multiplying the transformed matrix (GT) by the transformed vector (dt, cft), when the candidate candidate matrix is chosen as the transformed matrix (GT), - une étape pour déterminer, en fonction dudit nombre d'opérations de ou exclusif à réaliser, si la matrice candidate transformée est choisie en tant que matrice transformée (GT).a step for determining, as a function of said number of operations of or exclusive to be carried out, whether the transformed candidate matrix is chosen as a transformed matrix (GT). 11. Procédé selon la revendication 10 prise en dépendance de la revendication 7 comprenant en outre :11. The method of claim 10 taken in dependence on claim 7 further comprising: - durant l'étape pour estimer le nombre d'opérations de ou exclusif à réaliser pour l'étape de multiplication de la matrice transformée (GT) par le vecteur transformé (dt,cft), une étape de détermination d'une sous partie identique comprenant w éléments binaires dans m lignes de la matrice transformée compressée, w supérieur ou égal à deux,- during the step to estimate the number of operations of or exclusive to be carried out for the step of multiplying the transformed matrix (GT) by the transformed vector (dt, cft), a step of determining an identical sub-part comprising w binary elements in m lines of the compressed transformed matrix, w greater than or equal to two, - une étape de calcul du nombre d'opérations de ou exclusif évités, égal à n.(we.m(we+m)), à partir desdites sous parties, dans lequel le nombre d'opérations de ou exclusif à réaliser est estimé à partir dudit nombre d'opérations de ou exclusif évités.- a step of calculating the number of operations of or exclusive avoided, equal to n. (we.m (we + m)), from said sub-parts, in which the number of operations of or exclusive to be carried out is estimated from said number of exclusive or exclusive operations avoided. 12. Procédé selon l'une quelconque des revendications 10 et 11 comprenant en outre :12. Method according to any one of claims 10 and 11 further comprising: -une étape pour engendrer une matrice candidate génératrice définissant un code correcteur d'erreur qui est MDS.a step to generate a candidate candidate matrix defining an error correcting code which is MDS. - une étape de calcul de l'image par l'isomorphisme Fj de la matrice candidate génératrice pour obtenir la matrice candidate transformée- a step of calculating the image by the isomorphism Fj of the generating candidate matrix to obtain the transformed candidate matrix 13. Procédé selon l'une quelconque des revendications 10 et 11 comprenant les étapes suivantes :13. Method according to any one of claims 10 and 11 comprising the following steps: - une étape de calcul de l'image de la matrice candidate génératrice par un isomorphisme inverse F,1 pour obtenir la matrice génératrice candidate, l'isomorphisme inverse F,1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante : p(x) = pn(x) mod ρ,(χ), pn(x) étant un polynôme de l'anneau R2n.a step of calculating the image of the candidate generating matrix by an inverse isomorphism F, 1 to obtain the candidate generating matrix, the inverse isomorphism F, 1 being the inverse of the isomorphism F, and is defined from the as follows: p (x) = pn (x) mod ρ, (χ), pn (x) being a polynomial of the ring R 2n . -une étape de vérification que la matrice génératrice candidate est MDS.-a verification step that the candidate generator matrix is MDS. 14. Procédé selon l'une quelconque des revendications précédentes dans lequel le polynôme ρ,(χ) est un polynôme AOP.14. Method according to any one of the preceding claims, in which the polynomial ρ, (χ) is an AOP polynomial. 15. Procédé selon l'une quelconques des revendications précédentes dans lequel le polynôme p,(x) est un polynôme ESP.15. Method according to any one of the preceding claims, in which the polynomial p, (x) is an polynomial ESP. 16. Procédé selon l'une quelconque des revendications 14 ou 15, dans lequel16. Method according to any one of claims 14 or 15, in which - chaque élément du corps fini B, étant représenté par un vecteur de données binaires- each element of the finite field B, being represented by a vector of binary data - le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme F, comprend l'ajout d'un bit de parité audit vecteur de données binaires.- the computation of the image of each element of the finite body B, by the isomorphism F, includes the addition of a bit of parity to said vector of binary data. - le calcul de l'image de chaque élément du corps fini B, par un isomorphisme F,1 comprend la suppression dudit bit de parité audit vecteur de données binaires,the computation of the image of each element of the finite body B, by an isomorphism F, 1 includes the removal of said parity bit from said binary data vector, 5 l'isomorphisme inverse F,1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante : p(x) = pn(x) mod p,(x), pn(x) étant un polynôme de l'anneau R2n.5 the inverse isomorphism F, 1 being the inverse of the isomorphism F, and is defined as follows: p (x) = pn (x) mod p, (x), pn (x) being a polynomial of the R 2n ring. 17. Procédé selon l'une quelconque des revendications 14 ou 15, dans lequel17. Method according to any one of claims 14 or 15, in which - chaque élément du corps fini B, étant représenté par un vecteur de données binaires- each element of the finite field B, being represented by a vector of binary data 10 - le calcul de l'image de chaque élément du corps fini B, par l'isomorphisme F, comprend l'ajout d'une donnée binaire égale à 0 à une position dudit vecteur de bit.10 - the computation of the image of each element of the finite body B, by the isomorphism F, comprises the addition of a binary datum equal to 0 at a position of said bit vector. - le calcul de l'image de chaque élément du corps fini B, par un isomorphisme inverse noté Fj1 comprend l'ajout de la donnée binaire située à ladite position à une pluralité de données binaires dudit vecteur de données binaires, puis la suppression de laditethe computation of the image of each element of the finite body B, by an inverse isomorphism denoted Fj 1 comprises the addition of the binary data located at said position to a plurality of binary data of said vector of binary data, then the deletion of said 15 donnée binaire située à ladite position dudit vecteur de bit, l'isomorphisme inverse F,1 étant l'inverse de l'isomorphisme F, et est défini de la manière suivante : p(x) = pn(x) mod p,(x), pn(x) étant un polynôme de l'anneau R2 n.15 binary data located at said position of said bit vector, the inverse isomorphism F, 1 being the inverse of the isomorphism F, and is defined as follows: p (x) = pn (x) mod p, ( x), pn (x) being a polynomial of the ring R 2 n . 18. Dispositif adapté à la mise en œuvre des étapes du procédé selon les18. Device suitable for implementing the steps of the process according to the 20 revendications précédentes.20 previous claims. 19. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 17 lorsque ledit programme est exécuté sur un ordinateur.19. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of claims 1 to 17 when said program is executed on a computer. 20. Moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 17.20. Information storage means, removable or not, partially or totally readable by a computer or a microprocessor comprising instructions of code of a computer program for the execution of each of the steps of the method according to any one of claims 1 to 17. 1/61/6 200 500200,500 300 301 302 303 304 305 306300 301 302 303 304 305 306
FR1662324A 2016-12-12 2016-12-12 METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE Expired - Fee Related FR3060244B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1662324A FR3060244B1 (en) 2016-12-12 2016-12-12 METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE
PCT/FR2017/053495 WO2018109346A1 (en) 2016-12-12 2017-12-11 Error correction coding and decoding by a generator matrix with simplified galois field multiplications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1662324 2016-12-12
FR1662324A FR3060244B1 (en) 2016-12-12 2016-12-12 METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE

Publications (2)

Publication Number Publication Date
FR3060244A1 true FR3060244A1 (en) 2018-06-15
FR3060244B1 FR3060244B1 (en) 2020-01-03

Family

ID=58737629

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1662324A Expired - Fee Related FR3060244B1 (en) 2016-12-12 2016-12-12 METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE

Country Status (2)

Country Link
FR (1) FR3060244B1 (en)
WO (1) WO2018109346A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111757124B (en) * 2019-03-26 2022-03-29 宁波大学 STC-based undistorted steganography method and undistorted secret information extraction method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212782A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212782A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DROLET G: "A NEW REPRESENTATION OF ELEMENTS OF FINITE FIELDS GF(2M) YIELDING SMALL COMPLEXITY ARITHMETIC CIRCUITS", IEEE TRANSACTIONS ON COMPUTERS, IEEE, USA, vol. 47, no. 9, September 1998 (1998-09-01), pages 938 - 946, XP001028474, ISSN: 0018-9340, DOI: 10.1109/12.713313 *
FRANCISCO ARGUELLO: "Multiplication in Cyclotomic Rings and its Application to Finite Fields", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 23 July 2008 (2008-07-23), XP080428062 *

Also Published As

Publication number Publication date
FR3060244B1 (en) 2020-01-03
WO2018109346A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
EP0265336B1 (en) Galois field polynomial processing device and digital signal processor comprising such a device
EP0108655B1 (en) System for the detection and correction of transmission errors in a binary message using an error detecting and correcting interleaved reed-solomon cyclic code
FR2860360A1 (en) Improved fidelity digital word communications system transmit/record having reed solomon coder/decoder and error correction block/memory registers
FR2981472A1 (en) DEVICE AND METHOD FOR PRODUCING A BIT SEQUENCE
EP2394366B1 (en) Error-correcting encoding method with total parity bits
FR2900004A1 (en) ARITHMETIC DECODING METHOD AND DEVICE
EP2002546A2 (en) Improved encoding/decoding of digital signals, especially in vector quantisation with transposition codes
US20120131423A1 (en) Binary bch decoders
FR2845220A1 (en) Method and device for decoding the algebraic-geometric codes at a point, comprises the construction of a sequence of syndromes matrices ending with a zero row elements matrix
EP3082266B1 (en) Encoding and decoding methods with differentiated protection
Banerjee et al. A robust reversible data hiding scheme for color image using reed-solomon code
FR3060244A1 (en) METHOD AND DEVICE FOR CALCULATING A CORRECTING CODE
WO2016181992A1 (en) Decoding device, decoding method, and program
FR2866998A1 (en) Algebraic geometry code decoding method for encoded digital signal receiving apparatus, involves implementing errors correction algorithm adapted to Reed-Solomon code in order to calculate errors on components of Reed-Solomon code word
FR2863794A1 (en) Algebraic geometry code decoding method for e.g. data recoding system, involves applying bi-phase decoding algorithm to syndrome matrix that provides set of polynomials called phase locating candidates
EP2766996B1 (en) Error correction coding and decoding
Grospellier Constant time decoding of quantum expander codes and application to fault-tolerant quantum computation
EP2289172B1 (en) Method for enumeration of vectors in a regular lattice of points
FR2858141A1 (en) Information symbol coding process for use in communication system, involves coding information word of preset length of form belonging to Reed-Solomon code of preset size and length
FR3061393B1 (en) METHODS OF ENCODING AND DECODING DATA PACKETS IN A GALOIS BODY
EP2364552B1 (en) Device for encoding a digital image stream and corresponding decoding device with approximation of the neighbourhood of a block by the widened neighbourhood of the block
EP1300952A1 (en) High efficiency error detection and/or correction code
EP1300953A1 (en) Highly efficient error correction and/or error detection code
FR2880218A1 (en) DECODING METHOD FOR ALGEBRATIC GEOMETRY CODES AND DEVICE THEREOF
FR2981471A1 (en) Method for calculating result of operations e.g. multiplication, in Galois field, involves executing algorithm to determine exponent values based on set of numbers, and calculating final result from extended table of exhibitors

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20180615

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

ST Notification of lapse

Effective date: 20220808