[go: up one dir, main page]

WO2018185402A1 - Methods for encoding and decoding data packets in a galois field - Google Patents

Methods for encoding and decoding data packets in a galois field Download PDF

Info

Publication number
WO2018185402A1
WO2018185402A1 PCT/FR2018/050770 FR2018050770W WO2018185402A1 WO 2018185402 A1 WO2018185402 A1 WO 2018185402A1 FR 2018050770 W FR2018050770 W FR 2018050770W WO 2018185402 A1 WO2018185402 A1 WO 2018185402A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
packets
data packet
binary
bits
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.)
Ceased
Application number
PCT/FR2018/050770
Other languages
French (fr)
Inventor
Patrick Tortelier
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Publication of WO2018185402A1 publication Critical patent/WO2018185402A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • 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/134Non-binary linear block codes not provided for otherwise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • 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
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Definitions

  • the present invention relates to communication or data recording systems in which, in order to improve the fidelity of transmission or storage, the data is subjected to a so-called "network coding" ("Network Coding”). .
  • Network Coding Network Coding
  • the invention relates more particularly to the transmission of data packets on a channel affected by packet losses.
  • a channel On such a channel, some packets are received perfectly (thanks to properly defined modulation and coding at the physical layer); however, other packets are not received, either because these packets are deleted due to congestion in a router, or because they are received in bad conditions (noise, interference) and can not be decoded correctly.
  • Such a transmission channel is called “erasing channel”, and lost packets are said to be "erased”.
  • Systems for transmitting packets on channels causing erasures include, for example:
  • eMBMS evolved Multimedia
  • VoLTE Voice over LTE
  • WebRTC Web Real-Time Communication
  • packets are called "blocks”, but the term “packets” will be used uniformly below.
  • the network coding (see for example the article by R. Koetter and M. Medard entitled “/ An algebraic approach to network coding", IEEE / ACM Transactions on Networking, Volume 1 1, No. 5, Oct. 2003, pages 782-795) consists in transmitting information in data packets of such that this information follows several paths in a distributed infrastructure including nodes that serve as relays (or routers).
  • the present invention relates more particularly to the case in which the relays can store and retransmit ("store and forward" in English) the useful data packets entering these relays, but can also, as illustrated in FIG. 1, retransmit packets of useful data that result from processing on these input packets, i.e., which constitute a certain function f of these input packets.
  • each payload packet consists of L symbols of m bits belonging to a binary extension body GF (2 m ).
  • GF binary extension body
  • Each relay can transfer the payload packets it receives without modification, or transmit on the output link a linear combination of packets received on the input links, it being understood that, as explained above (erase channel) , some packets sent by other nodes of the network may not have been received (in which case the relay does not try to find the deleted packets).
  • the transmission of information packets from a source S to a recipient (or receiver) D via an N network can be described by a graph (see FIG. 2) whose nodes represent relays such as that illustrated in FIG. and branches represent existing links between:
  • the source S emits a series of information packets said
  • One and the same packet P t may travel on several paths of the network N originating from S.
  • the recipient D may therefore receive a number n ⁇ k of useful data packets R t , each of which may be:
  • the N network relays perform linear combinations on the packets of the same stream (from the same source S to the same recipient D) with coefficients that can be determined once and for all, or be drawn at each application in the case of the so-called "random" network coding.
  • the packets received are in an order which may be different from that of the transmitted packets.
  • the topology of the network is not necessarily known to the recipient and / or the issuer. This means that the recipient receives a number n of packets which are each a linear combination of the packets P i emitted by the source S, which can be written as follows:
  • the matrix K In order to find these packets P ⁇ from the received packets R t , the matrix K must be known to the recipient, and, when it is known, it must be of rank k. In particular, the recipient must have a number n ⁇ k of received packets R t , otherwise the matrix would be of rank lower than k and the packets P j could not be traced back.
  • the present invention thus relates, in a first aspect, to a method of coding data packets in a network (N), comprising the following steps:
  • the conventional multiplication table consultation mechanism can be replaced by a set of binary operations carried out in a vectorial manner at the level of the symbols of said data packet P.
  • the present invention is therefore particularly advantageous because, if it allows a software implementation of encoding or decoding as state-of-the-art techniques, it also makes it possible to efficiently use an electronic circuit simultaneously with software means, or in their place.
  • VNF virtualized network function
  • said matrices M (a), for are extracted from a reference matrix T of dimension
  • said matrices M (a), for are extracted from a reference matrix T of dimension
  • the invention relates to various devices.
  • a device for coding data packets comprising means for:
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements ⁇ a, yy, ..., a m_1 a ⁇ , where a is a root of said primitive polynomial, obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a);
  • said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
  • the invention also relates, secondly, to a device for decoding data packets, comprising means for:
  • Q a P
  • Q a P
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements where a is a root of said primitive polynomial, obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M ⁇ a);
  • said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
  • the invention relates to:
  • a node referred to as a relay node, of a communication network, comprising a coding device as briefly described above, and
  • a node said destination node, of a communication network comprising a decoding device as briefly described above.
  • a node of a communication network may comprise both a coding device and a decoding device as briefly described above.
  • the invention relates to a communication network, comprising at least one relay node as briefly described above and at least one destination node as briefly described above.
  • said relay node and said destination node must, in order to be mutually compatible, use not only the same binary extension body GF (2 m ), ie the same value of m, but in addition the same representation of this body, that is to say, the same primitive polynomial.
  • the invention also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor.
  • This computer program is notable in that it includes instructions for performing the steps of the data packet coding method succinctly set forth above. above, or the method of decoding data packets succinctly set forth above, when executed on a computer.
  • FIG. 1, described above, represents the operation carried out by a relay node in the network coding
  • FIG. 2 described above, schematically represents a transmission system T according to the invention
  • FIG. 3 schematically represents the structure of a data packet according to one embodiment of the invention
  • FIG. 4 represents the relationship between the operation carried out by a relay node R in the network coding, and the structure of the data packet transmitted by this relay node R,
  • FIG. 5 represents, at a relay node R, the relationship between the incoming data packets and the transmitted data packet
  • FIG. 6 represents, at a relay node R, the relationship between the incoming data packets and the data packet transmitted when an incoming data packet is erased
  • FIG. 7 schematically represents a relay node R according to one embodiment of the invention
  • FIG. 8 schematically represents a destination node D according to one embodiment of the invention.
  • FIG. 9 represents the representation of a vector of L symbols belonging to GF (2 m ) in the form of a binary matrix m ⁇ L.
  • the identifier When a relay R of the network N transmits an information packet without modifying it, the identifier is unchanged. When this relay performs a linear combination of information packets P i , the identifier contains the list of coefficients used, some of the coefficients being null, as illustrated.
  • each packet of useful data Y i being characterized by a vector of identifiers the identifier vector C of the outgoing data packet contains the linear combinations of the identifiers of the input packets, as illustrated in FIG. 5.
  • the operation done on the identifiers during the coefficient linear combination in GF (2 m ) is exactly the same as that performed on the payload packets; the relay R can therefore advantageously perform these two operations in one go.
  • the header of a payload packet R i received by the recipient D always correctly indicates the manner in which this payload packet R t was obtained from information packets P i initial. Therefore, after receiving the relevant data packets
  • the matrix K mentioned above will be known to the recipient, as required.
  • the recipient D proceeds as follows:
  • the source S does not wait for acknowledgment for each packet that it transmits
  • the recipient D does not send an acknowledgment when he receives an encoded packet
  • the recipient D extracts the identifier and has an equation
  • the recipient D checks whether the rank of the matrix of the system is equal to k, using any conventional method (for example the Gauss method); the article by C. Studholme and I. Blake entitled “Random matrices and codes for the erasure channel", Algorithmica, vol. 56, No. 4, pages 605 to 620 (2010), demonstrates that, in the case of a randomly filled matrix, the matrix is of rank equal to k with a high probability;
  • the recipient D waits for the reception of new packets until the condition of rank equal to k is checked; preferably, a limit n max is set to the number of packets transmitted by the source S, and the recipient D sends a negative acknowledgment (NACK) if he fails to obtain an invertible matrix after the end of the transmission of the n max packets; in this case, the source sends additional coded packets until decoding is possible;
  • NACK negative acknowledgment
  • FIG. 7 schematically represents a relay node R according to one embodiment of the invention.
  • the relay R comprises a reception module 10, an extraction module 11, a module 12 for computing the outgoing user data packet, a memory module 13, a building module 14 and a transmission module 15.
  • the input module 10 is adapted to receive incoming data packets from other nodes of the network N, and to transmit these incoming data packets to the extraction module 11.
  • the extraction module 11 is adapted to extract from each incoming packet its header (designated "H” in FIG. 7), and to transmit to the calculation module 12 the remainder of the incoming packet, ie say the set formed by a identifier vector C (,) and a payload data packet Y i (referred to as "payload" in FIG. 7).
  • the calculation module 12 is adapted to extract from each incoming packet its header (designated "H” in FIG. 7), and to transmit to the calculation module 12 the remainder of the incoming packet, ie say the set formed by a identifier vector C (,) and a payload data packet Y i (referred to as "payload" in FIG. 7).
  • this module can be integrated in the relay R as shown in FIG. 7, or constitute an external source that can be accessed by the relay R, and
  • the coefficients can be constant for a given relay R, or
  • the building module 14 is adapted to receive, on the one hand, the packet header H mentioned above, and on the other hand the set formed by the outgoing identifier vector C and the outgoing user data packet F ', and to build from these elements an outgoing data packet.
  • the transmission module 15 is adapted to receive the outgoing data packet from the building module 14, and to transmit this outgoing data packet on the network N.
  • FIG. 8 schematically represents a destination node D according to one embodiment of the invention.
  • the recipient D comprises a reception module 20, an extraction module 21, a building module 22, a second member module 23, a test module 27, an inversion module 26, a resolution module 24 and a transmission module 25.
  • the extraction module 21 is adapted to separate, in each packet received, its header (denoted by "H” in FIG. 8), its identifier vector and its payload packet R i .
  • the second member module 23 is adapted to receive from the extraction module 21, as and when receiving packets by the receiving module 20, the useful data packets and to add equal rows to these payload packets R i to the second member vector
  • the building module 22 is adapted to receive from the extraction module 21, as and when receiving packets by the receiving module 20, the identifier vectors and to add lines consisting of these identifiers to a matrix used to construct the matrix K.
  • test module 27 is adapted to receive, as packets are received by the receiving module 20, said matrix being constructed by the building module 22, and to determine whether the determinant of this module matrix is different from zero, that is to say if this matrix is regular (rank equal to k).
  • the reception module 20 is adapted to stop receiving packets
  • the inversion module 26 is adapted to calculate the inverse of the matrix K obtained.
  • the resolution module 24 is adapted to receive said second member vector from the second member module 23, as well as the inverse of the matrix K from the inversion module 26, and to calculate the product of these elements. two magnitudes by implementing the multiplication method in GF (2 m ) according to the invention, so as to retrieve the initial information packets.
  • the transmission module 25 is adapted to receive the information packets initials from the resolution module 24, and to transmit these information packets to the user of the destination node D.
  • the coding and decoding considered in the present invention are realized in a binary extension body GF (2 m ), where m> 1.
  • GF (2 m ) a binary extension body GF (2 m ), where m> 1.
  • a is a root of a predetermined primitive polynomial.
  • binary coordinates is the element whose binary coordinates are obtained as follows:
  • Y is the column vector containing the m binary coordinates of y
  • n 2 m - 1, of dimension mx (2 m + m - 2), previously constructed, whose columns contain the coordinates of a k for k ⁇ 0.
  • T which will be called "reference matrix”
  • the last (m - 1) columns are a simple copy of the first (m -1) columns.
  • M ⁇ a k ) is then the sub-matrix obtained by extracting the columns n (k + 1) to (k + m) from the reference matrix T, which will be noted as follows:
  • the invention may be implemented within the nodes, for example a relay node or a destination node of a communication network, by means of software and / or hardware components.
  • the present invention also relates to a computer system.
  • This computer system conventionally comprises a central processing unit controlling signals by a memory, as well as an input unit and an output unit.
  • this computer system may be used to execute a computer program comprising instructions for implementing any of the methods of encoding, or decoding, data packets according to the invention.
  • the invention also relates to a downloadable computer program from a communication network comprising instructions for executing the steps of a method of encoding, or decoding, data packets according to the invention, when it is run on a computer.
  • This computer program may be stored on a computer readable medium and may be executable by a microprocessor.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form.
  • the invention also relates to an information carrier, irremovable, or partially or completely removable, readable by a computer, and comprising instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a ROM of microelectronic circuit, or a magnetic recording means, such as a hard disk, or a USB flash drive ("USB flash drive").
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the computer program according to the invention can in particular be downloaded to an Internet type network.
  • the information carrier may be an integrated circuit in which the program is embedded, the circuit being adapted to execute or to be used in performing any of the methods of encoding, or decoding, packets data according to the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a method for encoding data packets, comprising the following steps: receiving r ≥1 l useful data packets Y i <sb /> each made up of a linear combination in which the coefficients of the linear combination are taken in an extension field GF(2 m ) defined by means of a chosen primitive polynomial, from the same k ≥1 information packets {P 1, P 2,..., P k} referred to as initial packets, each information packet containing L ≥ 1 symbols each made up of a series of m > 1 bits; calculating an outgoing useful data packet Y' made up of a linear combination of useful data packets Y i ; in which the coefficients α i are taken from the extension field GF(2 m ); and transmitting the outgoing useful data packet Y'. The encoding method is characterized in that the step of calculating the outgoing useful data packet Y' comprises at least one sub-step of multiplying Q = aP all the symbols in a data packet P= (x 1,..., x L ), wherein x j for j = 1,..., L, is a symbol made up of a series of m bits x ij , in which i = 0,..., m- 1, by a same number α belonging to GF(2 m ), and in that the multiplication is carried out by means of binary operations performed in a vector manner at the level of the symbols of the data packet P. The invention applies to the transmission of binary data packets on erasing channels.

Description

PROCEDES DE CODAGE ET DE DECODAGE  CODING AND DECODING METHODS

DE PAQUETS DE DONNEES DANS UN CORPS DE GALOIS  PACKET DATA IN A BODY OF GALOIS

La présente invention concerne les systèmes de communication ou d'enregistrement de données dans lesquels, afin d'améliorer la fidélité de la transmission ou du stockage, on soumet les données à un codage dit « de réseau » (« Network Coding » en anglais). The present invention relates to communication or data recording systems in which, in order to improve the fidelity of transmission or storage, the data is subjected to a so-called "network coding" ("Network Coding"). .

L'invention concerne plus particulièrement la transmission de paquets de données sur un canal affecté par des pertes de paquets. Sur un tel canal, certains paquets sont reçus parfaitement (grâce à une modulation et un codage convenablement définis au niveau de la couche physique) ; en revanche, d'autres paquets ne sont pas reçus, soit parce que ces paquets sont supprimés en raison d'une congestion dans un routeur, soit parce qu'ils sont reçus dans de mauvaises conditions (bruit, interférences) et ne peuvent être décodés correctement. Un tel canal de transmission est appelé « canal à effacements », et les paquets perdus sont dits « effacés ». Les systèmes de transmission de paquets sur des canaux provoquant des effacements comprennent par exemple :  The invention relates more particularly to the transmission of data packets on a channel affected by packet losses. On such a channel, some packets are received perfectly (thanks to properly defined modulation and coding at the physical layer); however, other packets are not received, either because these packets are deleted due to congestion in a router, or because they are received in bad conditions (noise, interference) and can not be decoded correctly. Such a transmission channel is called "erasing channel", and lost packets are said to be "erased". Systems for transmitting packets on channels causing erasures include, for example:

- le stockage de masse, ainsi que le stockage distribué, systèmes dans lesquels les pertes de données sont dues à des pannes de disques durs ou de serveurs ;  - mass storage, as well as distributed storage, systems in which data loss is due to failures of hard disks or servers;

- la diffusion en broadcast ou en multicast eMBMS (evolved Multimedia - broadcast or multicast broadcast eMBMS (evolved Multimedia

Broadcast Multicast Services) en LTE (Long Term Evolution), pour la transmission de fichiers ou de programmes audiovisuels en continu (streaming) ; et Broadcast Multicast Services) in LTE (Long Term Evolution), for the transmission of files or audiovisual programs streaming; and

- la transmission en temps réel de la Voix ou de la Vidéo sur des canaux à pertes, tels que VoLTE (Voice over LTE) ou WebRTC (Web Real-Time Communication).  - Real-time transmission of voice or video over lossy channels, such as VoLTE (Voice over LTE) or WebRTC (Web Real-Time Communication).

On notera que, dans certains de ces systèmes, les paquets sont appelés « blocs », mais on utilisera uniformément le terme de « paquets » ci-dessous.  It should be noted that in some of these systems the packets are called "blocks", but the term "packets" will be used uniformly below.

On rappelle que le codage de réseau (cf. par exemple l'article de R. Koetter et M. Medard intitulé « /An algebraic approach to network coding », IEEE/ACM Transactions on Networking, vol. 1 1 , n ° 5, oct. 2003, pages 782 à 795) consiste à transmettre des informations dans des paquets de données de telle sorte que ces informations suivent plusieurs trajets dans une infrastructure distribuée comprenant des nœuds qui servent de relais (ou de routeurs). It is recalled that the network coding (see for example the article by R. Koetter and M. Medard entitled "/ An algebraic approach to network coding", IEEE / ACM Transactions on Networking, Volume 1 1, No. 5, Oct. 2003, pages 782-795) consists in transmitting information in data packets of such that this information follows several paths in a distributed infrastructure including nodes that serve as relays (or routers).

La présente invention concerne plus particulièrement le cas dans lequel les relais peuvent stocker et retransmettre (« store and forward » en anglais) les paquets de données utiles entrant dans ces relais, mais peuvent aussi, comme illustré sur la figure 1 , retransmettre des paquets de données utiles qui résultent d'un traitement sur ces paquets d'entrée, c'est-à-dire qui constituent une certaine fonction f de ces paquets d'entrée.  The present invention relates more particularly to the case in which the relays can store and retransmit ("store and forward" in English) the useful data packets entering these relays, but can also, as illustrated in FIG. 1, retransmit packets of useful data that result from processing on these input packets, i.e., which constitute a certain function f of these input packets.

On supposera que les paquets de données utiles contenus dans tous ces paquets de données ont tous le même nombre de bits. Si ce nombre est un multiple d'un entier m supérieur à 1 , on peut considérer que chaque paquet de données utiles est constitué de L symboles de m bits appartenant à un corps d'extension binaire GF(2m ) . On rappelle à cet égard que l'on appelle corps de Galois (noté GF(q) ) un ensemble de q éléments dont les éléments non-nuls peuvent être identifiés comme étant chacun égal à

Figure imgf000004_0001
pour une valeur correspondante de j , où j = 1,..., q - 1 , et où α est une racineIt will be assumed that the useful data packets contained in all these data packets all have the same number of bits. If this number is a multiple of an integer m greater than 1, it can be considered that each payload packet consists of L symbols of m bits belonging to a binary extension body GF (2 m ). We recall in this respect that we call Galois body (denoted GF (q)) a set of q elements whose non-zero elements can be identified as being each equal to
Figure imgf000004_0001
for a corresponding value of j, where j = 1, ..., q - 1, and where α is a root

Figure imgf000004_0002
primitive de l'unité dans GF(q) ; lorsque, en particulier, q = 2m , où m > 1 , le corps de Galois est également appelé « corps d'extension binaire ».
Figure imgf000004_0002
primitive unity in GF (q); when, in particular, q = 2 m , where m> 1, the Galois body is also called "binary extension body".

Chaque relais peut transférer sans modification les paquets de données utiles qu'il reçoit, ou transmettre sur le lien de sortie une combinaison linéaire de paquets reçus sur les liens d'entrée, étant entendu que, comme expliqué ci- dessus (canal à effacements), certains paquets envoyés par d'autres nœuds du réseau peuvent ne pas avoir être reçus (auxquels cas le relais ne cherche pas à retrouver les paquets effacés).  Each relay can transfer the payload packets it receives without modification, or transmit on the output link a linear combination of packets received on the input links, it being understood that, as explained above (erase channel) , some packets sent by other nodes of the network may not have been received (in which case the relay does not try to find the deleted packets).

Lorsque les paquets d'entrée X1, ... , Xn sont tous constitués de L éléments de GF(2m ) , une opération très simple sur ces paquets d'entrée consiste à effectuer une addition bit à bit (on rappelle que l'addition bit à bit est également appelée « OU exclusif », et notée « XOR ») des paquets d'entrée :

Figure imgf000004_0003
Une règle de calcul plus complexe du paquet de sortie Y met en œuvre des combinaisons linéaires des paquets d'entrée avec des coefficients
Figure imgf000005_0005
When the input packets X 1 , ..., X n all consist of L elements of GF (2 m ), a very simple operation on these input packets consists in performing a bitwise addition (it should be remembered that bitwise addition is also referred to as "exclusive OR", and denoted "XOR") as input packets:
Figure imgf000004_0003
A more complex calculation rule of output packet Y implements linear combinations of input packets with coefficients
Figure imgf000005_0005

c'est-à-dire : that is to say :

Figure imgf000005_0004
Figure imgf000005_0004

Figure imgf000005_0003
Figure imgf000005_0003

Cette relation entrée-sortie fait maintenant intervenir des multiplications dans le corps GF(2m ) . Par commodité de notation, nous représenterons ci-après l'opération XOR par le symbole usuel ( + ) de l'addition, de sorte que la relation précédente s'écrit :

Figure imgf000005_0001
This input-output relationship now involves multiplications in the GF body (2 m ). For convenience of notation, we will now represent the operation XOR by the usual symbol (+) of the addition, so that the preceding relation is written:
Figure imgf000005_0001

La transmission de paquets d'information d'une source S vers un destinataire (ou récepteur) D via un réseau N peut être décrite par un graphe (voir figure 2) dont les nœuds représentent des relais tels que celui illustré sur la figure 1 , et les branches représentent les liens existants entre :  The transmission of information packets from a source S to a recipient (or receiver) D via an N network can be described by a graph (see FIG. 2) whose nodes represent relays such as that illustrated in FIG. and branches represent existing links between:

- la source et un ou plusieurs relais,  - the source and one or more relays,

- le destinataire et un ou plusieurs relais, et  - the recipient and one or more relays, and

entre les relais eux-mêmes.  between the relays themselves.

La source S émet une suite de paquets d'information dits

Figure imgf000005_0006
The source S emits a series of information packets said
Figure imgf000005_0006

paquets initiaux. Un même paquet Pt peut circuler sur plusieurs chemins du réseau N issus de S. Le destinataire D peut donc recevoir un nombre n≥k de paquets de données utiles Rt , chacun d'entre eux pouvant être : initial packages. One and the same packet P t may travel on several paths of the network N originating from S. The recipient D may therefore receive a number n≥k of useful data packets R t , each of which may be:

- une copie d'un des paquets s'il a été transmis par des nœuds

Figure imgf000005_0007
- a copy of one of the packets if it has been transmitted by nodes
Figure imgf000005_0007

retransmettant sans modification les paquets qu'ils reçoivent, ou  retransmitting without modification the packets they receive, or

- une combinaison linéaire de la forme

Figure imgf000005_0002
- a linear combination of form
Figure imgf000005_0002

s'il est passé par des relais effectuant des combinaisons linéaires, les coefficients cUj étant pris dans un corps d'extension GF (2m ) ; les relais du réseau N effectuent des combinaisons linéaires sur les paquets d'un même flot (allant de la même source S vers le même destinataire D) avec des coefficients qui peuvent soit être déterminés une fois pour toutes, soit être tirés au sort à chaque application dans le cas du codage de réseau dit « aléatoire ». if it has passed through relays performing linear combinations, the coefficients c Uj being taken in an extension body GF (2 m ); the N network relays perform linear combinations on the packets of the same stream (from the same source S to the same recipient D) with coefficients that can be determined once and for all, or be drawn at each application in the case of the so-called "random" network coding.

Il faut noter que, les différents chemins entre la source S et le destinataire D ayant potentiellement des longueurs différentes (en nombre de branches) et des retards différents, les paquets reçus le sont dans un ordre qui peut être différent de celui des paquets émis. D'autre part la topologie du réseau n'est pas nécessairement connue du destinataire et/ou de l'émetteur. Cela signifie que le destinataire reçoit un nombre n de paquets qui sont chacun une combinaison linéaire des paquets Pi émis par la source S, ce que l'on peut écrire de la façon suivante :

Figure imgf000006_0001
It should be noted that since the different paths between the source S and the recipient D have potentially different lengths (in number of branches) and different delays, the packets received are in an order which may be different from that of the transmitted packets. On the other hand the topology of the network is not necessarily known to the recipient and / or the issuer. This means that the recipient receives a number n of packets which are each a linear combination of the packets P i emitted by the source S, which can be written as follows:
Figure imgf000006_0001

Afin de retrouver ces paquets P} à partir des paquets reçus Rt , il faut que la matrice K soit connue du destinataire, et, lorsqu'elle est connue, qu'elle soit de rang k . Il faut en particulier que le destinataire dispose d'un nombre n≥k de paquets reçus Rt , sans quoi la matrice serait de rang inférieur à k et l'on ne pourrait pas remonter aux paquets Pj . In order to find these packets P } from the received packets R t , the matrix K must be known to the recipient, and, when it is known, it must be of rank k. In particular, the recipient must have a number n≥k of received packets R t , otherwise the matrix would be of rank lower than k and the packets P j could not be traced back.

Cette technique du codage de réseau consiste donc en un codage/décodage au moyen d'un code sans rendement prédéfini (« rateless code » en anglais) à cause de la contrainte n≥ k, n pouvant être (théoriquement) infini. En fait il s'agit d'une instance des codes dits « codes fontaine » (« fountain codes » en anglais), avec les différences suivantes :  This technique of network coding thus consists of coding / decoding by means of a code with no predefined efficiency ("rateless code" in English) because of the constraint n≥ k, n being (theoretically) infinite. In fact it is an instance of the codes called "fountain codes" ("fountain codes" in English), with the following differences:

• il existe plus d'un chemin entre source et destinataire, et les paquets reçus par un même destinataire peuvent avoir suivi des chemins différents ; • There is more than one path between source and recipient, and packets received by the same recipient may have followed different paths;

• les combinaisons linéaires des paquets d'information Pj ne sont pas effectuées par la source mais par les éléments du réseau (codage distribué) ;• Linear combinations of information packets P j are not performed by the source but by the elements of the network (distributed coding);

• les coefficients de ces combinaisons linéaires peuvent être prédéterminés et fixes dans le temps, ou bien être tirés au sort par les nœuds du réseau ; ce dernier cas (décrit dans l'article de T. Ho, M. Médard, R. Koetter, D.R. Karger, M. Effros, J. Shi, et B. Leong intitulé « A random linear Network Coding approach to multicast », IEEE Trans. Information Theory, vol. 52, n ° 10, oct. 2006, pages 4413 à 4430) est appelé « codage de réseau aléatoire » (« Random Linear Network Coding », ou RLNC, en anglais). • the coefficients of these linear combinations can be predetermined and fixed in time, or be drawn by the nodes of the network; the latter case (described in the article by T. Ho, M. Medard, R. Koetter, DR Karger, M. Effros, J. Shi, and B. Leong entitled "A random linear Network Coding approach to multicast ", IEEE Trans. Information Theory, vol. 52, No. 10, Oct. 2006, pages 4413-4430) is referred to as "Random Linear Network Coding" (or RLNC).

On notera que l'utilisation de codes sans rendement prédéfini pour récupérer les paquets perdus durant des phénomènes de congestion permet d'envisager la possibilité de mettre en œuvre des protocoles de transmission de données par paquets sans faire appel au mécanisme de contention classiquement utilisé pour éviter les collisions, d'où un gain en termes de simplicité de mise en œuvre et de rapidité d'exécution.  It will be noted that the use of codes without predefined performance to recover the packets lost during congestion phenomena makes it possible to envisage the possibility of implementing packet data transmission protocols without resorting to the contention mechanism conventionally used to avoid the collisions, resulting in a gain in terms of simplicity of implementation and speed of execution.

Cela étant, de simples considérations d'algèbre linéaire permettent de montrer que la résolution d'un système d'équations dans GF(2m) faisant intervenir des paquets de données peut être ramenée à des additions de paquets et à des multiplications d'un paquet par un même élément de GF(2m) , c'est-à- dire des combinaisons linéaires de paquets avec des coefficients pris dans GF(2m) . Dans le cadre de ces calculs, l'addition bit à bit est simple à mettre en œuvre, mais la multiplication dans GF(2m) repose classiquement sur un mécanisme logiciel de consultation de table de multiplication. However, simple linear algebra considerations show that the resolution of a system of equations in GF (2 m ) involving data packets can be reduced to packet additions and multiplications of one. packet by the same element of GF (2 m ), ie linear combinations of packets with coefficients taken in GF (2 m ). In the context of these calculations, the bitwise addition is simple to implement, but the multiplication in GF (2 m ) relies conventionally on a multiplication table software mechanism.

Or, lorsqu'il faut multiplier tous les éléments d'un vecteur donné However, when it is necessary to multiply all the elements of a given vector

X = (x1; ... , xn) composé d'éléments de GF{2m) par un même élément a de GF{2m) , on ne peut pas consulter ladite table de multiplication de façon vectorielle ; autrement dit, il faut consulter la table pour chaque élément xi du vecteur, ce qui est d'autant plus lent que le vecteur est plus long. X = (x 1; ..., x n ) composed of elements of GF {2 m ) by the same element a of GF {2 m ), it is not possible to consult said multiplication table in vectorial manner; in other words, it is necessary to consult the table for each element x i of the vector, which is even slower than the vector is longer.

La présente invention concerne donc, selon un premier aspect, un procédé de codage de paquets de données dans un réseau (N), comprenant les étapes suivantes :  The present invention thus relates, in a first aspect, to a method of coding data packets in a network (N), comprising the following steps:

- réception de r≥ 1 paquets de données utiles Yi constitué chacun par une combinaison linéaire receiving r≥ 1 packets of useful data Y i each consisting of a linear combination

Figure imgf000007_0001
où les coefficients sont pris dans un corps d'extension GF (2m ) défini au
Figure imgf000008_0003
Figure imgf000007_0001
where the coefficients are taken in a GF extension body (2 m ) defined in
Figure imgf000008_0003

moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant

Figure imgf000008_0002
L≥ 1 symboles constitués chacun d'une suite de m > l bits ; a selected primitive polynomial, the same k≥1 information packets said initial packets, each packet of information containing
Figure imgf000008_0002
L≥ 1 symbols each consisting of a sequence of m> 1 bits;

- calcul d'un paquet de données utiles sortant Y' constitué par une combinaison linéaire

Figure imgf000008_0004
computing a outgoing payload packet Y 'consisting of a linear combination
Figure imgf000008_0004

desdits paquets de données utiles Yn où les coefficients «, sont pris dans ledit corps d'extension GF (2m ) ; et said user data packets Y n where the coefficients ", are taken in said extension body GF (2 m ); and

- émission dudit paquet de données utiles sortant Y' .  sending said outgoing user data packet Y '.

Ledit procédé de codage est remarquable en ce que ladite étape de calcul du paquet de données utiles sortant y comprend au moins une sous-étape de multiplication Q = a - P de tous les symboles d'un paquet de données Said coding method is remarkable in that said step of computing the outgoing payload packet includes at least one substep of multiplication Q = a-P of all the symbols of a data packet.

P = (x1; ... , xL) dans lequel Xj , pour ; = 1, ... , L, est un symbole composé d'une suite de m bits xy , où i = 0, ... , m - 1, par un même nombre a appartenant à P = (x 1; ..., x L ) in which Xj, for; = 1, ..., L, is a symbol composed of a sequence of m bits x y , where i = 0, ..., m - 1, by the same number a belonging to

GF (2m ) , et en ce que ladite multiplication est effectuée de la manière suivante : a) remplissage d'une matrice binaire X de dimension mx L en plaçant les bits xy composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ; GF (2 m ), and in that said multiplication is performed as follows: a) filling of a binary matrix X of dimension mx L by placing the bits x y constituting each symbol Xj along the jth column said matrix X;

b) calcul de la matrice binaire  b) calculation of the binary matrix

Y = M(a)x X ,  Y = M (a) x X,

de dimension mx L , où M {a) est la matrice binaire de dimensions mx m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs où a est une racine dudit polynôme primitif, en

Figure imgf000008_0001
of dimension mx L, where M {a) is the binary matrix of dimensions mx m whose respective columns contain the binary coordinates of the respective elements where a is a root of said primitive polynomial, in
Figure imgf000008_0001

obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M {a) ; et c) obtention du paquet de données dans lequel

Figure imgf000009_0001
obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M {a); and c) obtaining the data packet in which
Figure imgf000009_0001

chaque symbole yp pour j = 1,2, ... , L, est composé des m bits où

Figure imgf000009_0004
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y . each symbol y p for j = 1,2, ..., L, is composed of m bits where
Figure imgf000009_0004
i = 0, ..., m - 1, located on the jth column of said matrix Y.

Grâce à ces dispositions, on peut remplacer le mécanisme classique de consultation de table de multiplication par un ensemble d'opérations binaires effectuées de manière vectorielle au niveau des symboles dudit paquet de données P. La présente invention est donc particulièrement avantageuse car, si elle permet une mise en œuvre logicielle du codage ou du décodage comme les techniques de l'état de l'art, elle permet aussi d'utiliser efficacement un circuit électronique simultanément à des moyens logiciels, ou à leur place.  Thanks to these provisions, the conventional multiplication table consultation mechanism can be replaced by a set of binary operations carried out in a vectorial manner at the level of the symbols of said data packet P. The present invention is therefore particularly advantageous because, if it allows a software implementation of encoding or decoding as state-of-the-art techniques, it also makes it possible to efficiently use an electronic circuit simultaneously with software means, or in their place.

On notera en particulier que le procédé selon l'invention se prête bien à la virtualisation. On peut en effet supposer que certaines fonctions nécessiteront le recours à des coprocesseurs matériels tels qu'un circuit logique programmable (« Field-Programmable Gâte Array », ou FPGA, en anglais), un processeur graphique (« Graphics Processing Unit », ou GPU, en anglais), ou un processeur de signal numérique (« Digital Signal Processor », ou DSP, en anglais), pour accélérer certains traitements nécessitant une grande puissance de calcul, tels que les traitements de chiffrement, mais aussi ceux introduits par le codage de canal et par le codage de réseau. La présente invention est donc particulièrement avantageuse dans le cadre d'une fonctionnalité de codage de réseau virtualisée (« Virtualized Network Function », ou VNF, en anglais) principalement écrite sous forme logicielle et recourant à un accélérateur matériel mettant en œuvre la multiplication dans GF (2m ) en mode paquet. It will be noted in particular that the method according to the invention lends itself well to virtualization. It can indeed be supposed that certain functions will require the use of hardware coprocessors such as a programmable logic circuit ("Field Programmable Gate Array" or FPGA), a graphics processor unit ("Graphics Processing Unit" or GPU , in English), or a digital signal processor ("DSP"), to speed up some processing requiring high computing power, such as encryption processes, but also those introduced by coding channel and network coding. The present invention is therefore particularly advantageous in the context of a virtualized network function (VNF), mainly written in software form and using a hardware accelerator implementing the multiplication in GF. (2 m ) in packet mode.

Selon des caractéristiques particulières, lesdites matrices M (a) , pour

Figure imgf000009_0003
sont extraites d'une matrice de référence T de dimensionAccording to particular features, said matrices M (a), for
Figure imgf000009_0003
are extracted from a reference matrix T of dimension

Figure imgf000009_0002
Figure imgf000009_0002

Grâce à ces dispositions, on peut aisément obtenir les matrices M (a) sans aucun calcul, par simple lecture dans une unique matrice T construite et stockée préalablement à la mise en œuvre dudit procédé de codage.  Thanks to these provisions, one can easily obtain matrices M (a) without any calculation, by simple reading in a single matrix T built and stored prior to the implementation of said coding method.

Corrélativement, l'invention concerne un procédé de décodage de paquets de données, comprenant les étapes suivantes : - réception de n > 1 paquets de données codés

Figure imgf000010_0002
où, pour i = 1, ... , n, chaque paquet de données codé
Figure imgf000010_0001
Correlatively, the invention relates to a method for decoding data packets, comprising the following steps: receiving n> 1 packets of coded data
Figure imgf000010_0002
where, for i = 1, ..., n, each coded data packet
Figure imgf000010_0001

est une combinaison linéaire des mêmes k≥1 paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients ct j sont pris dans un corps d'extension GF (2m ) défini au moyen d'un polynôme primitif choisi, et is a linear combination of the same k≥1 information packets P j each containing L≥1 symbols consisting of a sequence of m> 1 bits, and where the coefficients c tj are taken in a GF extension body (2 m ) defined by means of a primitive polynomial chosen, and

- résolution du système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj . resolution of the system formed by said linear combinations, so as to obtain said information packets P j .

Ledit procédé de décodage est remarquable en ce que ladite étape de résolution d'un système de combinaisons linéaires comprend au moins une sous-étape de multiplication Q = a - P de tous les symboles d'un paquet de données Said decoding method is remarkable in that said step of solving a system of linear combinations comprises at least one substep of multiplication Q = a - P of all the symbols of a data packet

P = (x1; ... , xL) dans lequel Xj , pour j = 1, ... , L, est un symbole composé d'une suite de m bits xy , où i = 0, ... , m - 1, par un même nombre a appartenant à P = (x 1; ..., x L ) in which Xj, for j = 1, ..., L, is a symbol composed of a sequence of m bits x y , where i = 0, ... , m - 1, by the same number a belonging to

GF (2m ) , et en ce que ladite multiplication est effectuée de la manière suivante : a) remplissage de la matrice binaire X de dimension m x L en plaçant les bits xy composant chaque symbole le long de la j -ième colonne

Figure imgf000010_0003
GF (2 m ), and in that said multiplication is performed as follows: a) filling of the binary matrix X of dimension mx L by placing the bits x y constituting each symbol along the jth column
Figure imgf000010_0003

de ladite matrice X ; said matrix X;

b) calcul de la matrice binaire  b) calculation of the binary matrix

Y = M(a)x X ,  Y = M (a) x X,

de dimension mxL , où la matrice M (a) est la matrice binaire de dimensions mxffl dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs où a est une racine dudit polynôme

Figure imgf000010_0004
of dimension mxL, where the matrix M (a) is the binary matrix of dimensions mxffl whose respective columns contain the binary coordinates of the respective elements where a is a root of said polynomial
Figure imgf000010_0004

primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et c) obtention du paquet de données Q = (y1; ... , yL), dans lequel chaque symbole yp pour j = 1,2, ... , L, est composé des m bits où

Figure imgf000011_0003
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y . primitive, by obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a); and c) obtaining the data packet Q = (y 1; ..., y L ), in which each symbol y p for j = 1,2, ..., L, is composed of the m bits where
Figure imgf000011_0003
i = 0, ..., m - 1, located on the jth column of said matrix Y.

Les avantages offerts par ce procédé de décodage sont essentiellement les mêmes que ceux offerts par le procédé de codage corrélatif succinctement exposé ci-dessus.  The advantages offered by this decoding method are essentially the same as those offered by the correlative coding method succinctly set forth above.

Selon des caractéristiques particulières, lesdites matrices M (a) , pour

Figure imgf000011_0002
sont extraites d'une matrice de référence T de dimensionAccording to particular features, said matrices M (a), for
Figure imgf000011_0002
are extracted from a reference matrix T of dimension

Figure imgf000011_0001
Figure imgf000011_0001

Grâce à ces dispositions, on peut aisément obtenir les matrices M (a) sans aucun calcul, par simple lecture dans une unique matrice T construite et stockée préalablement à la mise en œuvre dudit procédé de décodage.  Thanks to these provisions, one can easily obtain matrices M (a) without any calculation, simply by reading in a single matrix T built and stored prior to the implementation of said decoding method.

Selon un deuxième aspect, l'invention concerne divers dispositifs.  According to a second aspect, the invention relates to various devices.

Elle concerne ainsi, premièrement, un dispositif de codage de paquets de données, comprenant des moyens pour :  It thus relates, firstly, to a device for coding data packets, comprising means for:

- recevoir r≥l paquets de données utiles Yi constitué chacun par une combinaison linéaire

Figure imgf000011_0004
; i - receive r≥l useful data packets Y i each constituted by a linear combination
Figure imgf000011_0004
; i

où les coefficients sont pris dans un corps d'extension GF (2m ) défini au

Figure imgf000011_0007
where the coefficients are taken in a GF extension body (2 m ) defined in
Figure imgf000011_0007

moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant

Figure imgf000011_0006
a selected primitive polynomial, the same k≥1 information packets said initial packets, each packet of information containing
Figure imgf000011_0006

L≥ 1 symboles constitués chacun d'une suite de m > l bits ;  L≥ 1 symbols each consisting of a sequence of m> 1 bits;

- calculer un paquet de données utiles sortant y constitué par une combinaison linéaire

Figure imgf000011_0005
calculate a outgoing payload packet consisting of a linear combination
Figure imgf000011_0005

des paquets de données utiles Z , où les coefficients «, sont pris dans ledit corps d'extension GF (2m ) ; et useful data packets Z, where the coefficients ", are taken in said extension body GF (2 m ); and

- émettre ledit paquet de données utiles sortant y . Ledit dispositif de codage est remarquable en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication Q = a P , requise pour le calcul du paquet de données utiles sortant Y\ de tous les symboles d'un paquet de données P = (x1; ... , xL) dans lequel xj t pour j = l, ... , L, est un symbole composé d'une suite de m bits où i = 0, ... , m - 1, par un même nombre a

Figure imgf000012_0003
- send said packet of user data out y. Said coding device is remarkable in that it further comprises, for the purpose of performing at least one multiplication Q = a P, required for computing the outgoing user data packet Y \ of all the symbols of a packet of data P = (x 1; ..., x L ) in which x jt for j = l, ..., L, is a symbol composed of a sequence of m bits where i = 0, ..., m - 1, by the same number a
Figure imgf000012_0003

appartenant à GF (2m ) , des moyens pour : belonging to GF (2 m ), means for:

- remplir une matrice binaire X de dimension mx L en plaçant les bits xy composant chaque symbole Xj le long de la j -ième colonne de ladite matrice x ; filling a binary matrix X of dimension mx L by placing the bits x y constituting each symbol Xj along the jth column of said matrix x;

- calculer la matrice binaire  - calculate the binary matrix

Y = M(a)x X ,  Y = M (a) x X,

de dimension mxL , où M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {a, aa, ... , am_1a}, où a est une racine dudit polynôme primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et of dimension mxL, where M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements {a, yy, ..., a m_1 a}, where a is a root of said primitive polynomial, obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a); and

- obtenir le paquet de données , dans lequel chaque

Figure imgf000012_0002
- obtain the data packet, in which each
Figure imgf000012_0002

symbole yj t pour j = 1,2, ... , L, est composé des m bits yy , où i = 0, ... , m - 1, situés sur la j' -ième colonne de ladite matrice Y . jt symbol y for j = 1,2, ..., L, is composed of m bits y y, where i = 0, ..., m - 1, located on the j 'th column of said matrix Y.

Selon des caractéristiques particulières, ledit dispositif de codage comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension

Figure imgf000012_0004
Figure imgf000012_0005
According to particular features, said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
Figure imgf000012_0004
Figure imgf000012_0005

L'invention concerne aussi, deuxièmement, un dispositif de décodage de paquets de données, comprenant des moyens pour :  The invention also relates, secondly, to a device for decoding data packets, comprising means for:

- recevoir n > \ paquets de données codés où, pour

Figure imgf000012_0001
- receive n> \ coded data packets where, for
Figure imgf000012_0001

i = 1, ... , n, chaque paquet de données codé

Figure imgf000013_0001
i = 1, ..., n, each coded data packet
Figure imgf000013_0001

est une combinaison linéaire des mêmes k≥1 paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients sont pris dans un corps d'extension défini au moyen

Figure imgf000013_0003
Figure imgf000013_0002
is a linear combination of the same k≥1 information packets P j each containing L≥1 symbols consisting of a sequence of m> 1 bits, and where the coefficients are taken in an extension body defined by means
Figure imgf000013_0003
Figure imgf000013_0002

d'un polynôme primitif choisi ; et a primitive polynomial chosen; and

- résoudre le système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj . solving the system formed by said linear combinations, so as to obtain said information packets P j .

Ledit dispositif de décodage est remarquable en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication Q = a P , requise pour la résolution dudit système de combinaisons linéaires, de tous les symboles d'un paquet de données dans lequel pour est un

Figure imgf000013_0004
Figure imgf000013_0008
Figure imgf000013_0009
symbole composé d'une suite de m bits xy , où i = 0, ... , m - 1, par un même nombre a appartenant à GF (2m ) , des moyens pour : Said decoding device is remarkable in that it further comprises, for the purpose of performing at least one multiplication Q = a P, required for the resolution of said system of linear combinations, of all the symbols of a data packet. in which for is a
Figure imgf000013_0004
Figure imgf000013_0008
Figure imgf000013_0009
symbol consisting of a sequence of m bits x y , where i = 0, ..., m - 1, by the same number a belonging to GF (2 m ), means for:

- remplir une matrice binaire X de dimension mx L en plaçant les bits xy composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ; - Fill a binary matrix X of dimension mx L by placing the bits x y each component Xj along the jth column of said matrix X;

- calculer la matrice binaire

Figure imgf000013_0005
- calculate the binary matrix
Figure imgf000013_0005

de dimension mx L , où M(a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs

Figure imgf000013_0006
où a est une racine dudit polynôme primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M {a) ; et of dimension mx L, where M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements
Figure imgf000013_0006
where a is a root of said primitive polynomial, obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M {a); and

- obtenir le paquet de données dans lequel chaque

Figure imgf000013_0010
- obtain the data packet in which each
Figure imgf000013_0010

symbole pour j = 1,2, ... , L, est composé des m bits où

Figure imgf000013_0007
symbol for j = 1,2, ..., L, is composed of m bits where
Figure imgf000013_0007

Figure imgf000013_0011
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y . Selon des caractéristiques particulières, ledit dispositif de codage comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000014_0001
Figure imgf000013_0011
i = 0, ..., m - 1, located on the jth column of said matrix Y. According to particular features, said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
Figure imgf000014_0001

mx(2m + m - 2) . mx (2 m + m - 2).

Selon un troisième aspect, l'invention concerne :  According to a third aspect, the invention relates to:

- un nœud, dit nœud relais, d'un réseau de communication, comprenant un dispositif de codage tel qu'exposé succinctement ci-dessus, et  a node, referred to as a relay node, of a communication network, comprising a coding device as briefly described above, and

- un nœud, dit nœud destinataire, d'un réseau de communication comprenant un dispositif de décodage tel qu'exposé succinctement ci-dessus.  a node, said destination node, of a communication network comprising a decoding device as briefly described above.

Naturellement, un nœud d'un réseau de communication peut comprendre à la fois un dispositif de codage et un dispositif de décodage tels qu'exposés succinctement ci-dessus.  Naturally, a node of a communication network may comprise both a coding device and a decoding device as briefly described above.

Les avantages offerts par ces dispositifs et ces nœuds sont essentiellement les mêmes que ceux offerts par les procédés corrélatifs succinctement exposés ci-dessus.  The advantages offered by these devices and these nodes are essentially the same as those offered by the correlative methods briefly described above.

On notera qu'il est possible de réaliser ces dispositifs dans le contexte d'instructions logicielles et/ou dans le contexte de circuits électroniques.  Note that it is possible to realize these devices in the context of software instructions and / or in the context of electronic circuits.

Selon un quatrième aspect, l'invention concerne un réseau de communication, comprenant au moins un nœud relais tel que décrit succinctement ci-dessus et au moins un nœud destinataire tel que décrit succinctement ci-dessus.  According to a fourth aspect, the invention relates to a communication network, comprising at least one relay node as briefly described above and at least one destination node as briefly described above.

On notera que dans un tel réseau de communication, ledit nœud relais et ledit nœud destinataire doivent, pour être mutuellement compatibles, utiliser non seulement le même corps d'extension binaire GF (2m ) , c'est-à-dire la même valeur de m , mais en outre la même représentation de ce corps, c'est-à-dire le même polynôme primitif. Note that in such a communication network, said relay node and said destination node must, in order to be mutually compatible, use not only the same binary extension body GF (2 m ), ie the same value of m, but in addition the same representation of this body, that is to say, the same primitive polynomial.

L'invention vise également un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur. Ce programme d'ordinateur est remarquable en ce qu'il comprend des instructions pour l'exécution des étapes du procédé de codage de paquets de données succinctement exposé ci- dessus, ou du procédé de décodage de paquets de données succinctement exposé ci-dessus, lorsqu'il est exécuté sur un ordinateur. The invention also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor. This computer program is notable in that it includes instructions for performing the steps of the data packet coding method succinctly set forth above. above, or the method of decoding data packets succinctly set forth above, when executed on a computer.

Les avantages offerts par ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par lesdits procédés.  The advantages offered by this computer program are essentially the same as those offered by said methods.

D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux figures qui l'accompagnent, dans lesquelles :  Other aspects and advantages of the invention will appear on reading the detailed description below of particular embodiments, given by way of non-limiting examples. The description refers to the figures that accompany it, in which:

- la figure 1 , décrite ci-dessus, représente l'opération effectuée par un nœud relais dans le codage de réseau,  FIG. 1, described above, represents the operation carried out by a relay node in the network coding,

- la figure 2, décrite ci-dessus, représente schématiquement un système de transmission T selon l'invention,  FIG. 2, described above, schematically represents a transmission system T according to the invention,

- la figure 3 représente schématiquement la structure d'un paquet de données selon un mode de réalisation de l'invention,  FIG. 3 schematically represents the structure of a data packet according to one embodiment of the invention,

- la figure 4 représente la relation entre l'opération effectuée par un nœud relais R dans le codage de réseau, et la structure du paquet de données transmis par ce nœud relais R,  FIG. 4 represents the relationship between the operation carried out by a relay node R in the network coding, and the structure of the data packet transmitted by this relay node R,

- la figure 5 représente, au niveau d'un nœud relais R, la relation entre les paquets de données entrants et le paquet de données transmis,  FIG. 5 represents, at a relay node R, the relationship between the incoming data packets and the transmitted data packet,

- la figure 6 représente, au niveau d'un nœud relais R, la relation entre les paquets de données entrants et le paquet de données transmis lorsqu'un paquet de données entrant est effacé,  FIG. 6 represents, at a relay node R, the relationship between the incoming data packets and the data packet transmitted when an incoming data packet is erased,

- la figure 7 représente schématiquement un nœud relais R selon un mode de réalisation de l'invention,  FIG. 7 schematically represents a relay node R according to one embodiment of the invention,

- la figure 8 représente schématiquement un nœud destinataire D selon un mode de réalisation de l'invention, et  FIG. 8 schematically represents a destination node D according to one embodiment of the invention, and

- la figure 9 représente la représentation d'un vecteur de L symboles appartenant à GF(2m) sous la forme d'une matrice binaire m x L . FIG. 9 represents the representation of a vector of L symbols belonging to GF (2 m ) in the form of a binary matrix m × L.

On va expliquer pour commencer comment on peut, selon un mode de réalisation de l'invention, transporter dans chaque paquet de données transmis les informations sur la manière dont ce paquet de données transmis a été construit à partir de paquets d'information Pi initiaux (émis par la source S). Pour ce faire, comme illustré sur la figure 3, on insère, par exemple entre l'en-tête (désigné par « header » sur les figures 3, 4, 5 et 6), et la partie utile (désignée par « payload » sur ces mêmes figures) du paquet de données, une suite C de k symboles de m bits égaux aux coefficients dans GF(2m) de la décomposition du paquet de données utiles transmis sur k paquets d'information Pi . We will first explain how one can, according to one embodiment of the invention, carry in each data packet transmitted information on how this transmitted data packet was built from initial information packets P i (emitted by the source S). For this, as illustrated in Figure 3, is inserted, for example between the header (designated "header" in Figures 3, 4, 5 and 6), and the useful part (referred to as "payload" on these same figures) of the data packet, a sequence C of k symbols of m bits equal to the coefficients in GF (2 m ) of the decomposition of the payload data packet transmitted over k information packets P i .

Par conséquent, les identifiants des paquets Pi initiaux sont respectivement égaux à C = (0, ... ,0,1,0, ... ,0), où 1 est le i-ème symbole de m bits, les autres symboles étant nuls. Consequently, the identifiers of the initial packets P i are respectively equal to C = (0, ..., 0,1,0, ..., 0), where 1 is the i-th symbol of m bits, the others symbols being null.

Lorsqu'un relais R du réseau N transmet un paquet d'information sans le modifier, l'identifiant est inchangé. Lorsque ce relais effectue une combinaison linéaire de paquets d'information Pi , l'identifiant contient la liste des coefficients utilisés, certains des coefficients pouvant être nuls, comme illustré

Figure imgf000016_0003
When a relay R of the network N transmits an information packet without modifying it, the identifier is unchanged. When this relay performs a linear combination of information packets P i , the identifier contains the list of coefficients used, some of the coefficients being null, as illustrated.
Figure imgf000016_0003

sur la figure 4.  in Figure 4.

Lorsqu'un relais R effectue une combinaison linéaire :

Figure imgf000016_0002
When a relay R performs a linear combination:
Figure imgf000016_0002

de paquets de données utiles Yi déjà codés par d'autres nœuds du réseau, chaque paquet de données utiles Yi étant caractérisé par un vecteur d'identifiants

Figure imgf000016_0005
le vecteur d'identifiants C du paquet de données sortant contient les combinaisons linéaires des identifiants des paquets d'entrée, comme illustré sur la figure 5. useful data packets Y i already coded by other nodes of the network, each packet of useful data Y i being characterized by a vector of identifiers
Figure imgf000016_0005
the identifier vector C of the outgoing data packet contains the linear combinations of the identifiers of the input packets, as illustrated in FIG. 5.

Ainsi, l'opération faite sur les identifiants lors de la combinaison linéaire à coefficients dans GF(2m) est exactement la même que celle effectuée sur les paquets de données utiles ; le relais R peut donc avantageusement faire ces deux opérations en une seule fois. Thus, the operation done on the identifiers during the coefficient linear combination in GF (2 m ) is exactly the same as that performed on the payload packets; the relay R can therefore advantageously perform these two operations in one go.

On notera que cette méthode fonctionne même en cas de perte de paquets. Par exemple, si un relais R devait combiner trois paquets de données utiles mais qu'il n'a pas reçu ce dernier pour une raison quelconque,

Figure imgf000016_0004
Note that this method works even in case of packet loss. For example, if a relay R had to combine three payload data packets but did not receive it for any reason,
Figure imgf000016_0004

il calcule la combinaison des paquets de données utiles Y1 et Y2 , et indique dans l'en-tête les coefficients résultant de cette combinaison, comme illustré sur la

Figure imgf000016_0001
figure 6. Autrement dit, l'en-tête d'un paquet de données utiles Ri reçu par le destinataire D indique toujours correctement la manière dont ce paquet de données utiles Rt a été obtenu à partir de paquets d'information Pi initiaux. Par conséquent, suite à la réception des paquets de données utilesit calculates the combination of the useful data packets Y 1 and Y 2 , and indicates in the header the coefficients resulting from this combination, as illustrated in FIG.
Figure imgf000016_0001
FIG. 6. In other words, the header of a payload packet R i received by the recipient D always correctly indicates the manner in which this payload packet R t was obtained from information packets P i initial. Therefore, after receiving the relevant data packets

Figure imgf000017_0002
Figure imgf000017_0002

la matrice K mentionnée ci-dessus sera connue du destinataire, comme requis. the matrix K mentioned above will be known to the recipient, as required.

On notera également que la mise en œuvre de cette méthode ne nécessite pas de connaître la topologie du réseau, puisque l'information sur la manière dont les paquets ont été codés est transportée dans les paquets eux- mêmes. Elle est dite non-cohérente dans la littérature technique.  It should also be noted that the implementation of this method does not require knowing the topology of the network, since the information on the way in which the packets have been coded is carried in the packets themselves. It is said to be non-coherent in the technical literature.

Pour retrouver les paquets d'information à partir des

Figure imgf000017_0001
To retrieve information packages from
Figure imgf000017_0001

paquets reçus, le destinataire D procède comme suit : received packets, the recipient D proceeds as follows:

- la source S n'attend pas d'acquittement pour chaque paquet qu'elle transmet ;  the source S does not wait for acknowledgment for each packet that it transmits;

- le destinataire D n'envoie pas d'acquittement lorsqu'il reçoit un paquet codé ;  the recipient D does not send an acknowledgment when he receives an encoded packet;

- pour chaque paquet de données utiles

Figure imgf000017_0003
reçu, le destinataire D extrait l'identifiant on dispose ainsi d'une équation
Figure imgf000017_0004
- for each packet of useful data
Figure imgf000017_0003
received, the recipient D extracts the identifier and has an equation
Figure imgf000017_0004

linéaire :linear:

Figure imgf000017_0005
Figure imgf000017_0005

- dès que le destinataire D dispose de n≥k telles équations, il vérifie si le rang de la matrice du système est égal à k , en utilisant n'importe quelle méthode classique (par exemple la méthode de Gauss) ; l'article de C. Studholme et I. Blake intitulé « Random matrices and codes for the erasure channel », Algorithmica, vol. 56, n ° 4, pages 605 à 620 (2010), démontre que, dans le cas d'une matrice remplie aléatoirement, la matrice est de rang égal à k avec une grande probabilité ;  as soon as the recipient D has n≥k such equations, it checks whether the rank of the matrix of the system is equal to k, using any conventional method (for example the Gauss method); the article by C. Studholme and I. Blake entitled "Random matrices and codes for the erasure channel", Algorithmica, vol. 56, No. 4, pages 605 to 620 (2010), demonstrates that, in the case of a randomly filled matrix, the matrix is of rank equal to k with a high probability;

- si le rang est inférieur à k , le destinataire D attend la réception de nouveaux paquets jusqu'à ce que la condition de rang égal à k soit vérifiée ; de préférence, on fixe une limite nmax au nombre de paquets émis par la source S, et le destinataire D envoie un acquittement négatif (NACK) s'il n'arrive pas à obtenir une matrice inversible après la fin de la transmission des nmax paquets ; dans ce cas, la source envoie des paquets codés supplémentaires jusqu'à ce que le décodage soit possible ; if the rank is less than k, the recipient D waits for the reception of new packets until the condition of rank equal to k is checked; preferably, a limit n max is set to the number of packets transmitted by the source S, and the recipient D sends a negative acknowledgment (NACK) if he fails to obtain an invertible matrix after the end of the transmission of the n max packets; in this case, the source sends additional coded packets until decoding is possible;

- une fois que cette condition est vérifiée, on résout le système linéaire suivant :

Figure imgf000018_0001
once this condition is verified, the following linear system is solved:
Figure imgf000018_0001

ce qui fait intervenir des opérations d'addition/soustraction, et de multiplication des symboles d'un paquet par un même scalaire a e GF (2M ) , opérations que l'on peut, grâce à l'invention, effectuer par paquets, c'est-à-dire de manière parallélisée. which involves adding / subtracting operations, and multiplying the symbols of a packet by the same scalar ae GF (2 M ), operations that we can, thanks to the invention, perform in packets, c that is to say in a parallel manner.

La figure 7 représente schématiquement un nœud relais R selon un mode de réalisation de l'invention.  FIG. 7 schematically represents a relay node R according to one embodiment of the invention.

Le relais R comporte un module de réception 10, un module d'extraction 1 1 , un module 12 de calcul du paquet de données utiles sortant, un module mémoire 13, un module de construction 14 et un module de transmission 15.  The relay R comprises a reception module 10, an extraction module 11, a module 12 for computing the outgoing user data packet, a memory module 13, a building module 14 and a transmission module 15.

Le module d'entrée 10 est adapté à recevoir des paquets de données entrants de la part d'autres nœuds du réseau N, et à transmettre ces paquets de données entrants au module d'extraction 1 1 . Le module d'extraction 1 1 est adapté à extraire de chaque paquet entrant son en-tête (désigné par « H » sur la figure 7), et à transmettre au module de calcul 12 le reste du paquet entrant, c'est-à-dire l'ensemble formé par un vecteur d'identifiants C(,) et un paquet de données utiles Yi (désigné par « payload » sur la figure 7). Le module de calculThe input module 10 is adapted to receive incoming data packets from other nodes of the network N, and to transmit these incoming data packets to the extraction module 11. The extraction module 11 is adapted to extract from each incoming packet its header (designated "H" in FIG. 7), and to transmit to the calculation module 12 the remainder of the incoming packet, ie say the set formed by a identifier vector C (,) and a payload data packet Y i (referred to as "payload" in FIG. 7). The calculation module

12 est adapté à puiser les coefficients ai dans le module mémoire 13 pour calculer, en parallèle : 12 is adapted to draw the coefficients a i in the memory module 13 to calculate, in parallel:

- le paquet de données utiles sortant - the outgoing data packet

Figure imgf000018_0002
Figure imgf000018_0002

- le vecteur d'identifiants sortant dont les composantes sont - the outgoing identifier vector whose components are

Figure imgf000018_0004
Figure imgf000018_0004

Figure imgf000018_0003
Figure imgf000018_0003

en mettant en œuvre le procédé de multiplication dans GF(2m) selon l'invention. by implementing the multiplication method in GF (2 m ) according to the invention.

On notera, concernant le module mémoire 13, que : - ce module peut être intégré dans le relais R comme représenté sur la figure 7, ou constituer une source externe consultable par le relais R, et It will be noted, concerning the memory module 13, that: this module can be integrated in the relay R as shown in FIG. 7, or constitute an external source that can be accessed by the relay R, and

- les coefficients peuvent être constants pour un relais R donné, ou

Figure imgf000019_0004
the coefficients can be constant for a given relay R, or
Figure imgf000019_0004

varier à chaque nouveau paquet entrant dans le relais R (par exemple au moyen d'un tirage au sort).  vary with each new packet entering the relay R (for example by means of a draw).

Le module de construction 14 est adapté à recevoir, d'une part l'en-tête de paquet H mentionné précédemment, et d'autre part l'ensemble formé par le vecteur d'identifiants sortant C et le paquet de données utiles sortant F' , et à construire à partir de ces éléments un paquet de données sortant.  The building module 14 is adapted to receive, on the one hand, the packet header H mentioned above, and on the other hand the set formed by the outgoing identifier vector C and the outgoing user data packet F ', and to build from these elements an outgoing data packet.

Enfin, le module de transmission 15 est adapté à recevoir le paquet de données sortant de la part du module de construction 14, et à transmettre ce paquet de données sortant sur le réseau N.  Finally, the transmission module 15 is adapted to receive the outgoing data packet from the building module 14, and to transmit this outgoing data packet on the network N.

La figure 8 représente schématiquement un nœud destinataire D selon un mode de réalisation de l'invention.  FIG. 8 schematically represents a destination node D according to one embodiment of the invention.

Le destinataire D comporte un module de réception 20, un module d'extraction 21 , un module de construction 22, un module de second membre 23, un module de test 27, un module d'inversion 26, un module de résolution 24 et un module de transmission 25.  The recipient D comprises a reception module 20, an extraction module 21, a building module 22, a second member module 23, a test module 27, an inversion module 26, a resolution module 24 and a transmission module 25.

Le module d'extraction 21 est adapté à séparer, dans chaque paquet reçu, son en-tête (désigné par « H » sur la figure 8), son vecteur d'identifiants et son paquet de données utiles Ri .The extraction module 21 is adapted to separate, in each packet received, its header (denoted by "H" in FIG. 8), its identifier vector and its payload packet R i .

Figure imgf000019_0002
Figure imgf000019_0002

Le module de second membre 23 est adapté à recevoir de la part du module d'extraction 21 , au fur et à mesure des réceptions de paquets par le module de réception 20, les paquets de données utiles

Figure imgf000019_0005
et à ajouter des lignes égales à ces paquets de données utiles Ri au vecteur de second membre The second member module 23 is adapted to receive from the extraction module 21, as and when receiving packets by the receiving module 20, the useful data packets
Figure imgf000019_0005
and to add equal rows to these payload packets R i to the second member vector

Figure imgf000019_0001
Figure imgf000019_0001

De même, le module de construction 22 est adapté à recevoir de la part du module d'extraction 21 , au fur et à mesure des réceptions de paquets par le module de réception 20, les vecteurs d'identifiants et à

Figure imgf000019_0003
ajouter des lignes constituées de ces identifiants à une matrice servant à construire la matrice K . Similarly, the building module 22 is adapted to receive from the extraction module 21, as and when receiving packets by the receiving module 20, the identifier vectors and to
Figure imgf000019_0003
add lines consisting of these identifiers to a matrix used to construct the matrix K.

De même, le module de test 27 est adapté à recevoir, au fur et à mesure des réceptions de paquets par le module de réception 20, ladite matrice en construction de la part du module de construction 22, et à déterminer si le déterminant de cette matrice est différent de zéro, c'est-à-dire si cette matrice est régulière (rang égal à k ).  Similarly, the test module 27 is adapted to receive, as packets are received by the receiving module 20, said matrix being constructed by the building module 22, and to determine whether the determinant of this module matrix is different from zero, that is to say if this matrix is regular (rank equal to k).

Lorsque ce n'est pas le cas, le fonctionnement décrit ci-dessus continue. Lorsque c'est le cas, le module de réception 20 est adapté à arrêter de recevoir des paquets, et le module d'inversion 26 est adapté à calculer l'inverse de la matrice K obtenue. Le module de résolution 24 est adapté à recevoir ledit vecteur de second membre de la part du module de second membre 23, ainsi que l'inverse de la matrice K de la part du module d'inversion 26, et à calculer le produit de ces deux grandeurs en mettant en œuvre le procédé de multiplication dans GF(2m ) selon l'invention, de façon à retrouver les paquets d'information initiaux.When this is not the case, the operation described above continues. When this is the case, the reception module 20 is adapted to stop receiving packets, and the inversion module 26 is adapted to calculate the inverse of the matrix K obtained. The resolution module 24 is adapted to receive said second member vector from the second member module 23, as well as the inverse of the matrix K from the inversion module 26, and to calculate the product of these elements. two magnitudes by implementing the multiplication method in GF (2 m ) according to the invention, so as to retrieve the initial information packets.

Figure imgf000020_0001
Figure imgf000020_0001

Enfin, le module de transmission 25 est adapté à recevoir les paquets d'information

Figure imgf000020_0002
initiaux de la part du module de résolution 24, et à transmettre ces paquets d'information à l'utilisateur du nœud destinataire D. Finally, the transmission module 25 is adapted to receive the information packets
Figure imgf000020_0002
initials from the resolution module 24, and to transmit these information packets to the user of the destination node D.

Comme expliqué ci-dessus, le codage et le décodage considérés dans la présente invention sont réalisés dans un corps d'extension binaire GF(2m ) , où m > 1 . On entend par là qu'à tout symbole donné composé de m bits xy , où on associe l'élément de GF(2m ) , noté dont les

Figure imgf000020_0006
Figure imgf000020_0005
As explained above, the coding and decoding considered in the present invention are realized in a binary extension body GF (2 m ), where m> 1. By this we mean that any given symbol composed of m bits x y , where we associate the element of GF (2 m ), noted whose
Figure imgf000020_0006
Figure imgf000020_0005

coordonnées binaires sur une base canonique

Figure imgf000020_0003
choisie sont précisément lesdits bits xy ; autrement dit :
Figure imgf000020_0004
binary coordinates on a canonical basis
Figure imgf000020_0003
chosen are precisely said bits x y ; in other words :
Figure imgf000020_0004

où a est une racine d'un polynôme primitif prédéterminé.  where a is a root of a predetermined primitive polynomial.

On va expliquer à présent comment on peut effectuer la multiplication dans GF(2m ) uniquement au moyen d'additions binaires (XOR). Prenons un exemple dans le corps GF(24 ) construit à partir du polynôme primitif a vérifie l'équation :

Figure imgf000021_0006
Le
Figure imgf000021_0010
We will now explain how we can perform the multiplication in GF (2 m ) only by means of binary additions (XOR). Let's take an example in the GF (2 4 ) body constructed from the primitive polynomial to verify the equation:
Figure imgf000021_0006
The
Figure imgf000021_0010

résultat de la multiplication de l'élément de

Figure imgf000021_0007
result of the multiplication of the element of
Figure imgf000021_0007

coordonnées binaires par l'élément de

Figure imgf000021_0011
Figure imgf000021_0008
binary coordinates by the element of
Figure imgf000021_0011
Figure imgf000021_0008

coordonnées binaires

Figure imgf000021_0012
est l'élément
Figure imgf000021_0009
dont les coordonnées binaires sont obtenues comme suit :binary coordinates
Figure imgf000021_0012
is the element
Figure imgf000021_0009
whose binary coordinates are obtained as follows:

Figure imgf000021_0013
Figure imgf000021_0013

Figure imgf000021_0014
Figure imgf000021_0014

par définition de la matrice M (a) , dont les colonnes successives sont constituées par les coordonnées binaires des éléments a , a a , a2 a et a3 a deby definition of the matrix M (a), whose successive columns are constituted by the binary coordinates of the elements a, aa, a 2 a and a 3 a of

GF(24 ) successivement. Pour calculer ces colonnes, on notera, par exemple, que

Figure imgf000021_0002
GF (2 4 ) successively. To calculate these columns, it will be noted, for example, that
Figure imgf000021_0002

On procède de la même façon pour a2 a et a3 a . Le résultat final est : The same procedure is followed for a 2 a and a 3 a. The final result is:

Figure imgf000021_0001
Figure imgf000021_0001

Dans le cas général d'un corps GF(2m) pour m quelconque, on calcule :

Figure imgf000021_0003
In the general case of a GF body (2 m ) for any m, we calculate:
Figure imgf000021_0003

où :  or :

• X est le vecteur colonne contenant les m coordonnées binaires

Figure imgf000021_0004
• X is the column vector containing the m binary coordinates
Figure imgf000021_0004

• Y est le vecteur colonne contenant les m coordonnées binaires de y , et • Y is the column vector containing the m binary coordinates of y, and

Figure imgf000021_0005
• la matrice est la matrice binaire mx m dont les
Figure imgf000022_0003
Figure imgf000021_0005
• the matrix is the binary matrix mx m whose
Figure imgf000022_0003

colonnes contiennent les coordonnées binaires des éléments columns contain the binary coordinates of the elements

Figure imgf000022_0001
Figure imgf000022_0001

de GF(2m) , soit

Figure imgf000022_0002
GF (2 m ), either
Figure imgf000022_0002

On dira que la matrice M (a) est « l'équivalent binaire » de l'élément a pour la multiplication dans GF(2m) . We will say that the matrix M (a) is the "binary equivalent" of the element a for the multiplication in GF (2 m ).

Comme tous les éléments non-nuls de GF(2m) peuvent être écrits sous la forme

Figure imgf000022_0004
pour un certain entier 0 < k≤ 2m - 2 , on peut se contenter de considérer les matrices
Figure imgf000022_0005
As all the non-zero elements of GF (2 m ) can be written in the form
Figure imgf000022_0004
for a certain integer 0 <k≤ 2 m - 2, we can content ourselves with considering the matrices
Figure imgf000022_0005

associées aux puissances consécutives de a .  associated with the consecutive powers of a.

On notera que toutes ces matrices peuvent être obtenues en consultant une « grande » matrice binaire

Figure imgf000022_0006
Note that all these matrices can be obtained by consulting a "large" binary matrix
Figure imgf000022_0006

où n = 2m — 1, de dimension mx(2m + m - 2), construite préalablement, dont les colonnes contiennent les coordonnées de ak pour k≥ 0 . Dans cette matrice T , que l'on appellera « matrice de référence », les (m - 1) dernières colonnes sont une simple copie des (m -1) premières colonnes. M{ak ) est alors la sous- matrice obtenue en extrayant les colonnes n ° (k + 1) à (k + m) de la matrice de référence T , ce que l'on notera ainsi :

Figure imgf000022_0007
where n = 2 m - 1, of dimension mx (2 m + m - 2), previously constructed, whose columns contain the coordinates of a k for k≥ 0. In this matrix T, which will be called "reference matrix", the last (m - 1) columns are a simple copy of the first (m -1) columns. M {a k ) is then the sub-matrix obtained by extracting the columns n (k + 1) to (k + m) from the reference matrix T, which will be noted as follows:
Figure imgf000022_0007

Par définition, le produit de deux éléments est égal à

Figure imgf000022_0008
By definition, the product of two elements is equal to
Figure imgf000022_0008

de sorte que la matrice associée au

Figure imgf000022_0009
so that the matrix associated with the
Figure imgf000022_0009

produit , que l'on peut lire directement dans la matrice de

Figure imgf000022_0010
référence T ; on peut ainsi obtenir très simplement le produit des matrices par :product, which can be read directly into the matrix of
Figure imgf000022_0010
reference T; it is thus possible to obtain very simply the product of the matrices by:

Figure imgf000023_0004
Figure imgf000023_0004

Figure imgf000023_0005
Figure imgf000023_0005

De la même manière, la matrice associée à l'inverse d'un élément

Figure imgf000023_0007
est
Figure imgf000023_0001
puisque
Figure imgf000023_0006
qui est la matrice identité. In the same way, the matrix associated with the inverse of an element
Figure imgf000023_0007
is
Figure imgf000023_0001
since
Figure imgf000023_0006
which is the identity matrix.

Si l'on prend le même exemple sur GF(24) (construit à partir du polynôme primitif la matrice de référence T est donnée

Figure imgf000023_0009
If we take the same example on GF (2 4 ) (constructed from the primitive polynomial, the reference matrix T is given
Figure imgf000023_0009

par :  by :

Figure imgf000023_0008
Figure imgf000023_0008

de sorte que, par exemple :  so that, for example:

Figure imgf000023_0002
Figure imgf000023_0002

On vérifie facilement, par exemple, que le produit des matrices binaires est bien égal à comme prévu. It is easy to check, for example, that the product of the bit matrices is equal to as expected.

Figure imgf000023_0013
Figure imgf000023_0014
Figure imgf000023_0013
Figure imgf000023_0014

En poursuivant le même exemple, on trouve :  Following the same example, we find:

Figure imgf000023_0003
Figure imgf000023_0003

de sorte que , ou encore so that, or

Figure imgf000023_0010
Figure imgf000023_0011
Figure imgf000023_0010
Figure imgf000023_0011

Comme autre exemple, la multiplication par

Figure imgf000023_0012
dans GF (24 ) est donnée par le produit matriciel : As another example, multiplication by
Figure imgf000023_0012
in GF (2 4 ) is given by the matrix product:

Figure imgf000024_0001
Figure imgf000024_0001

On notera que cette expression n'utilise que des XORs des coordonnées binaires

Figure imgf000024_0003
de l'élément x . Note that this expression only uses XORs of the binary coordinates
Figure imgf000024_0003
of the element x.

On peut ainsi commodément effectuer la multiplication de tout élément x de GF(2m) par tout élément a e GF (2m ) sur la base de l'équation (1 ) ci-dessus et des sous-matrices de la matrice de référence T , ce qui ne fait intervenir que des XORs des coordonnées de x . It is thus convenient to perform the multiplication of any element x of GF (2 m ) by any element ae GF (2 m ) on the basis of equation (1) above and sub-matrices of the reference matrix T , which only involves XORs of the coordinates of x.

On va expliquer à présent comment on peut utiliser cette méthode pour effectuer la multiplication par tout élément a e GF (2M ) au niveau des paquets. We will now explain how this method can be used to perform multiplication by any GF (2 M ) element at the packet level.

Le produit matriciel de l'équation (1 ) peut être aisément parallélisé lorsque chaque xi est un vecteur binaire de longueur L . Par exemple, la multiplication par un élément a dans GF(24 ) devient :

Figure imgf000024_0004
The matrix product of equation (1) can easily be parallelized when each x i is a binary vector of length L. For example, the multiplication by an element a in GF (2 4 ) becomes:
Figure imgf000024_0004

où, avantageusement, toutes les opérations sont effectuées dans GF{2) .  where, advantageously, all operations are performed in GF {2).

On utilisera ci-après la notation pour dénoter

Figure imgf000024_0005
We will use the following notation to denote
Figure imgf000024_0005

la ligne n ° i d'une matrice x de dimension mx L ; le produit matriciel ci-dessus peut alors être commodément vu comme mettant en œuvre des XORs de ces lignes x(i,-). Par exemple, la multiplication par présentée ci-dessus

Figure imgf000024_0006
the line n ° i of a matrix x of dimension mx L; the matrix product above can then be conveniently seen as implementing XORs of these lines x (i, -). For example, the multiplication by presented above
Figure imgf000024_0006

peut être commodément écrite sous la forme :  can be conveniently written in the form:

Figure imgf000024_0002
Figure imgf000024_0002

Les considérations ci-dessus expliquent comment on peut, au cours du codage ou du décodage dans un corps de Galois GF(2m) , où m > l , défini au moyen d'un polynôme primitif prédéterminé, calculer un paquet Q = a P , où le nombre a appartient à GF(2m) , et P est un paquet de données P = (x1; ... , xL), dans lequel Xj , pour j = 1,2, ... , L„ avec L≥ 1 , est un symbole composé d'une suite de m bits xtj , où i = 0, ... , m - 1. The above considerations explain how one can, during coding or decoding in a Galois body GF (2 m ), where m> l, defined in using a predetermined primitive polynomial, calculate a packet Q = a P, where the number a belongs to GF (2 m ), and P is a data packet P = (x 1; ..., x L ), in where Xj, for j = 1,2, ..., L "with L≥ 1, is a symbol composed of a sequence of m bits x tj , where i = 0, ..., m - 1.

Selon le présent mode de réalisation, on met en œuvre les sous-étapes suivantes.  According to the present embodiment, the following substeps are implemented.

a) On remplit une matrice binaire X de dimension mx L en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne, comme illustré schématiquement sur la figure 9. On désigne par

Figure imgf000025_0005
la i -ème ligne, où i = 0, ... , m - 1, de cette matrice X . Autrement dit, si l'on regarde le paquet P comme une ligne de bits numérotés de 1 à mx L , la ligne est définie
Figure imgf000025_0006
a) We fill a binary matrix X of dimension mx L by placing the bits x tj composing each symbol Xj along the jth column, as illustrated schematically in FIG.
Figure imgf000025_0005
the i-th line, where i = 0, ..., m - 1, of this matrix X. In other words, if we look at the packet P as a line of bits numbered from 1 to mx L, the line is defined
Figure imgf000025_0006

par :by :

Figure imgf000025_0002
Figure imgf000025_0002

b) On calcule la matrice binaire Y , de dimension mx L , au moyen du produit matriciel : b) The binary matrix Y, of dimension mx L, is calculated using the matrix product:

Figure imgf000025_0001
Figure imgf000025_0001

où la matrice M (a) est l'équivalent binaire, défini ci-dessus, de l'élément a . Comme expliqué ci-dessus, effectuer ce produit matriciel revient à calculer les lignes de la matrice Y par des XORs de lignes de la matrice X , selon des motifs binaires déterminés par les lignes de la matrice M (a) . On opère ainsi, avantageusement, de manière vectorielle sur les L symboles du paquet P . c) On obtient finalement le paquet dans lequel

Figure imgf000025_0003
where the matrix M (a) is the binary equivalent, defined above, of the element a. As explained above, performing this matrix product amounts to calculating the rows of the matrix Y by XORs of rows of the matrix X, in binary patterns determined by the rows of the matrix M (a). This is advantageously done in vector manner on the L symbols of the packet P. c) Finally we get the package in which
Figure imgf000025_0003

chaque symbole yp pour j = 1,2, ... , L, est composé des m bits ytj , où i = 0, ... , m - 1, situés sur la j -ième colonne de la matrice Y obtenue précédemment. Autrement dit, il suffit de lire la matrice Y colonne par colonne. each symbol y p for j = 1,2, ..., L, is composed of the m bits y tj , where i = 0, ..., m - 1, located on the jth column of the matrix Y obtained previously. In other words, it is sufficient to read the matrix Y column by column.

On va, pour terminer, expliquer comment on peut utiliser cette méthode pour effectuer, toujours au niveau des paquets, la multiplication par n'importe quelle matrice A dont les éléments aUj appartiennent àWe will, finally, explain how we can use this method to perform, always at the level of the packets, the multiplication by any matrix A whose elements has Uj belong to

Figure imgf000025_0004
En effet, une telle matrice peut être aisément transformée en une matrice binaire, que l'on appellera « image binaire » de la matrice A , en remplaçant tous ses éléments par leurs équivalents binaires mxm définis ci-
Figure imgf000026_0001
Figure imgf000025_0004
Indeed, such a matrix can be easily transformed into a binary matrix, which will be called "binary image" of the matrix A, replacing all its elements by their binary equivalents mxm defined below.
Figure imgf000026_0001

dessus. above.

L'invention peut être mise en œuvre au sein des nœuds, par exemple un nœud relais ou un nœud destinataire d'un réseau de communication, au moyen de composants logiciels et/ou matériels.  The invention may be implemented within the nodes, for example a relay node or a destination node of a communication network, by means of software and / or hardware components.

Les composants logiciels pourront être intégrés à un programme d'ordinateur classique de gestion de nœud de réseau. C'est pourquoi, comme indiqué ci-dessus, la présente invention concerne également un système informatique. Ce système informatique comporte de manière classique une unité centrale de traitement commandant par des signaux une mémoire, ainsi qu'une unité d'entrée et une unité de sortie. De plus, ce système informatique peut être utilisé pour exécuter un programme d'ordinateur comportant des instructions pour la mise en œuvre de l'un quelconque des procédés de codage, ou de décodage, de paquets de données selon l'invention.  The software components can be integrated into a typical network node management computer program. Therefore, as indicated above, the present invention also relates to a computer system. This computer system conventionally comprises a central processing unit controlling signals by a memory, as well as an input unit and an output unit. In addition, this computer system may be used to execute a computer program comprising instructions for implementing any of the methods of encoding, or decoding, data packets according to the invention.

En effet, l'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication comprenant des instructions pour l'exécution des étapes d'un procédé de codage, ou de décodage, de paquets de données selon l'invention, lorsqu'il est exécuté sur un ordinateur. Ce programme d'ordinateur peut être stocké sur un support lisible par ordinateur et peut être exécutable par un microprocesseur.  Indeed, the invention also relates to a downloadable computer program from a communication network comprising instructions for executing the steps of a method of encoding, or decoding, data packets according to the invention, when it is run on a computer. This computer program may be stored on a computer readable medium and may be executable by a microprocessor.

Ce programme peut utiliser n'importe quel langage de programmation, et se présenter sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.  This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form.

L'invention vise aussi un support d'informations, inamovible, ou partiellement ou totalement amovible, lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.  The invention also relates to an information carrier, irremovable, or partially or completely removable, readable by a computer, and comprising instructions of a computer program as mentioned above.

Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou un moyen d'enregistrement magnétique, tel qu'un disque dur, ou encore une clé USB (« USB flash drive » en anglais). The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a CD ROM or a ROM of microelectronic circuit, or a magnetic recording means, such as a hard disk, or a USB flash drive ("USB flash drive").

D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme d'ordinateur selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.  On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The computer program according to the invention can in particular be downloaded to an Internet type network.

En variante, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de l'un quelconque des procédés de codage, ou de décodage, de paquets de données selon l'invention.  Alternatively, the information carrier may be an integrated circuit in which the program is embedded, the circuit being adapted to execute or to be used in performing any of the methods of encoding, or decoding, packets data according to the invention.

Claims

R E V E N D I C A T I O N S 1 . Procédé de codage de paquets de données dans un réseau (N), comprenant les étapes suivantes : 1. A method of coding data packets in a network (N), comprising the steps of: - réception de r≥1 paquets de données utiles Yi constitué chacun par une combinaison linéaire
Figure imgf000028_0001
receiving r≥1 useful data packets Y i each consisting of a linear combination
Figure imgf000028_0001
où les coefficients sont pris dans un corps d'extension GF(2m ) défini au
Figure imgf000028_0002
where the coefficients are taken in a GF extension body (2 m ) defined in
Figure imgf000028_0002
moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant L≥ 1
Figure imgf000028_0003
by means of a chosen primitive polynomial, of the same k≥1 information packets said initial packets, each information packet containing L≥ 1
Figure imgf000028_0003
symboles constitués chacun d'une suite de m > l bits ;  symbols each consisting of a sequence of m> l bits; - calcul d'un paquet de données utiles sortant Y' constitué par une combinaison linéaire
Figure imgf000028_0004
computing a outgoing payload packet Y 'consisting of a linear combination
Figure imgf000028_0004
desdits paquets de données utiles Y où les coefficients αi sont pris dans ledit corps d'extension GF(2m ) ; et said user data packets Y where the coefficients α i are taken in said extension body GF (2 m ); and - émission dudit paquet de données utiles sortant Y' ;  transmitting said outgoing user data packet Y '; caractérisé en ce que ladite étape de calcul du paquet de données utiles sortant Y' comprend au moins une sous-étape de multiplication
Figure imgf000028_0009
de tous les symboles d'un paquet de données dans lequel pour
Figure imgf000028_0007
Figure imgf000028_0010
est un symbole composé d'une suite de m bits
Figure imgf000028_0005
Figure imgf000028_0011
où par un même nombre a appartenant à GF(2m ) , et en ce
Figure imgf000028_0006
characterized in that said step of computing the outgoing payload packet Y 'comprises at least one substep of multiplication
Figure imgf000028_0009
of all the symbols of a data packet in which for
Figure imgf000028_0007
Figure imgf000028_0010
is a symbol consisting of a sequence of m bits
Figure imgf000028_0005
Figure imgf000028_0011
where by the same number a belonging to GF (2 m ), and in this
Figure imgf000028_0006
que ladite multiplication est effectuée de la manière suivante :  that said multiplication is performed as follows: a) remplissage d'une matrice binaire X de dimension mx L en plaçant les bits composant chaque symbole Xj le long de la -ième colonne
Figure imgf000028_0008
a) filling a binary matrix X of dimension mx L by placing the bits constituting each symbol X j along the -th column
Figure imgf000028_0008
de ladite matrice X ;  said matrix X; b) calcul de la matrice binaire
Figure imgf000029_0003
b) calculation of the binary matrix
Figure imgf000029_0003
de dimension mx L , où M (a) est la matrice binaire de dimensions mx m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs est une racine dudit polynôme primitif, en
Figure imgf000029_0006
of dimension mx L, where M (a) is the binary matrix of dimensions mx m whose respective columns contain the binary coordinates of the respective elements is a root of said primitive polynomial, in
Figure imgf000029_0006
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a); and c) obtention du paquet de données dans lequel
Figure imgf000029_0005
c) obtaining the data packet in which
Figure imgf000029_0005
chaque symbole yp pour j = 1,2, ... , L, est composé des m bits ytj , où i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y . each symbol y p for j = 1,2, ..., L, is composed of m bits y tj , where i = 0, ..., m - 1, located on the jth column of said matrix Y.
2. Procédé de codage selon la revendication 1 , caractérisé en ce que lesdites matrices sont extraites d'une 2. Encoding method according to claim 1, characterized in that said matrices are extracted from a matrice de référence T de dimension mx (2m + m - 2) . reference matrix T of dimension mx (2 m + m - 2). 3. Procédé de codage selon la revendication 1 ou la revendication 2, dans lequel chacun desdits paquets de données utiles Yi est contenu dans un paquet de données contenant en outre un vecteur d'identifiants
Figure imgf000029_0001
The coding method according to claim 1 or claim 2, wherein each of said payload packets Y i is contained in a data packet further containing an identifier vector.
Figure imgf000029_0001
comprenant lesdits coefficients et dans lequel ledit paquet de données utiles comprising said coefficients and wherein said payload packet F' est contenu dans un paquet de données contenant en outre un vecteur d'iden ifiants sortant
Figure imgf000029_0002
F 'is contained in a data packet containing in addition a vector of iden ifiants outgoing
Figure imgf000029_0002
caractérisé en ce que le calcul dudit vecteur d'identifiants sortant C est effectué au moyen des mêmes opérations et simultanément au calcul dudit paquet de données utiles sortant F' . characterized in that the calculation of said outgoing identifiers vector C is performed by means of the same operations and simultaneously with computing said outgoing user data packet F '.
4. Procédé de décodage de paquets de données, comprenant les étapes suivantes : - réception de n > 1 paquets de données codés où, pour
Figure imgf000030_0007
A method of decoding data packets, comprising the steps of: reception of n> 1 coded data packets where, for
Figure imgf000030_0007
i = 1, ... , n, chaque paquet de données codé
Figure imgf000030_0001
i = 1, ..., n, each coded data packet
Figure imgf000030_0001
est une combinaison linéaire des mêmes k≥\ paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients ct j sont pris dans un corps d'extension GF(2m ) défini au moyen d'un polynôme primitif choisi, et is a linear combination of the same k≥ \ information packets P j each containing L≥1 symbols consisting of a sequence of m> 1 bits, and where the coefficients c tj are taken in an extension body GF (2 m ) defined by means of a primitive polynomial chosen, and - résolution du système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj , resolution of the system formed by said linear combinations, so as to obtain said information packets P j , caractérisé en ce que ladite étape de résolution d'un système de combinaisons linéaires comprend au moins une sous-étape de multiplication de tous
Figure imgf000030_0005
characterized in that said step of resolving a system of linear combinations comprises at least one sub-step of multiplying all
Figure imgf000030_0005
les symboles d'un paquet de données dans lequel xr pour
Figure imgf000030_0004
the symbols of a data packet in which x r for
Figure imgf000030_0004
j = l, ... , L, est un symbole composé d'une suite de m bits où
Figure imgf000030_0006
i = 0, ... , m - 1, par un même nombre a appartenant à GF(2m ) , et en ce que ladite multiplication est effectuée de la manière suivante :
j = l, ..., L, is a symbol composed of a sequence of m bits where
Figure imgf000030_0006
i = 0, ..., m - 1, by the same number a belonging to GF (2 m ), and in that said multiplication is performed as follows:
a) remplissage d'une matrice binaire X de dimension mx L en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ; a) filling a binary matrix X of dimension mx L by placing the bits x tj composing each symbol Xj along the jth column of said matrix X; b) calcul de la matrice binaire b) calculation of the binary matrix
Figure imgf000030_0002
Figure imgf000030_0002
de dimension mx L , où la matrice M {a) est la matrice binaire de dimensions lux»! dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs où a est une racine dudit polynôme
Figure imgf000030_0003
of dimension mx L, where the matrix M {a) is the binary matrix of lux dimensions! whose respective columns contain the binary coordinates of the respective elements where a is a root of said polynomial
Figure imgf000030_0003
primitif, en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M {a) ; et c) obtention du paquet de données dans lequel
Figure imgf000031_0010
primitive, by obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M {a); and c) obtaining the data packet in which
Figure imgf000031_0010
chaque symbole yp pour j = 1,2, ... , L, est composé des m bits où
Figure imgf000031_0011
i = 0, ... , m - 1, situés sur la j -ième colonne de ladite matrice Y .
each symbol y p for j = 1,2, ..., L, is composed of m bits where
Figure imgf000031_0011
i = 0, ..., m - 1, located on the jth column of said matrix Y.
5. Procédé de décodage selon la revendication 4, caractérisé en ce que lesdites matrices sont extraites d'une
Figure imgf000031_0001
5. Decoding method according to claim 4, characterized in that said matrices are extracted from a
Figure imgf000031_0001
matrice de référence T de dimension reference matrix T of dimension
Figure imgf000031_0002
Figure imgf000031_0002
6. Dispositif de codage de paquets de données, comprenant des moyens pour :  Data packet coding device comprising means for: - recevoir r≥l paquets de données utiles Yi constitué chacun par une combinaison linéaire
Figure imgf000031_0003
- receive r≥l useful data packets Y i each constituted by a linear combination
Figure imgf000031_0003
où les coefficients cf sont pris dans un corps d'extension GF(2m ) défini au moyen d'un polynôme primitif choisi, des mêmes k≥1 paquets d'information dits paquets initiaux, chaque paquet d'information contenant
Figure imgf000031_0005
where the coefficients cf are taken in an extension body GF (2 m ) defined by means of a chosen primitive polynomial, of the same k≥1 information packets called initial packets, each information packet containing
Figure imgf000031_0005
L≥1 symboles constitués chacun d'une suite de m > l bits ;  L≥1 symbols each consisting of a sequence of m> l bits; - calculer un paquet de données utiles sortant F' constitué par une combinaison linéaire
Figure imgf000031_0004
calculating an outgoing useful data packet F 'consisting of a linear combination
Figure imgf000031_0004
des paquets de données utiles Yn où les coefficients «, sont pris dans ledit corps d'extension GF(2m ) ; et useful data packets Y n where the coefficients ", are taken in said extension body GF (2 m ); and - émettre ledit paquet de données utiles sortant F' ;  transmitting said outgoing user data packet F '; caractérisé en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication requise pour le calcul du paquet de données utiles
Figure imgf000031_0007
characterized in that it further comprises, for the purpose of performing at least one multiplication required for computing the payload packet
Figure imgf000031_0007
sortant F' , de tous les symboles d'un paquet de données
Figure imgf000031_0006
dans lequel pour j = 1, ... , L, est un symbole composé d'une suite de m bits
Figure imgf000031_0009
Figure imgf000031_0008
Figure imgf000032_0002
par un même nombre a appartenant à GF(2m ) , des moyens pour :
outgoing F ', of all the symbols of a data packet
Figure imgf000031_0006
in which for j = 1, ..., L, is a symbol composed of a sequence of m bits
Figure imgf000031_0009
Figure imgf000031_0008
or
Figure imgf000032_0002
by the same number belonging to GF (2 m ), means for:
- remplir une matrice binaire X de dimension mx L en plaçant les bits
Figure imgf000032_0012
composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
- fill a binary matrix X of dimension mx L by placing the bits
Figure imgf000032_0012
composing each symbol X j along the jth column of said matrix X;
- calculer la matrice binaire - calculate the binary matrix
Figure imgf000032_0001
Figure imgf000032_0001
de dimension mx L , où M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs a est une racine dudit polynôme primitif, en
Figure imgf000032_0003
of dimension mx L, where M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements a is a root of said primitive polynomial, in
Figure imgf000032_0003
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et  obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a); and - obtenir le paquet de données ), dans lequel chaque
Figure imgf000032_0007
- obtain the data packet), in which each
Figure imgf000032_0007
symbole
Figure imgf000032_0004
pour
Figure imgf000032_0006
est composé des m bits où
Figure imgf000032_0011
Figure imgf000032_0005
situés sur la j -ième colonne de ladite matrice Y .
symbol
Figure imgf000032_0004
for
Figure imgf000032_0006
is composed of the m bits where
Figure imgf000032_0011
Figure imgf000032_0005
located on the jth column of said matrix Y.
7. Dispositif de codage selon la revendication 6, caractérisé en ce qu'il comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000032_0008
7. Encoding device according to claim 6, characterized in that it further comprises means for extracting said matrices M (a), for a reference matrix T dimension
Figure imgf000032_0008
8. Dispositif de codage selon la revendication 6 ou la revendication 7, caractérisé en ce que, chacun desdits paquets de données utiles Yi étant contenu dans un paquet de données contenant en outre un vecteur d'identifiants
Figure imgf000032_0009
Coding device according to claim 6 or claim 7, characterized in that each of said useful data packets Y i being contained in a data packet further containing a identifier vector
Figure imgf000032_0009
comprenant lesdits coefficients et ledit paquet de données utiles F' étant
Figure imgf000032_0010
comprising said coefficients and said payload packet F 'being
Figure imgf000032_0010
contenu dans un paquet de données contenant en outre un vecteur d'identifiants sortant
Figure imgf000033_0001
contained in a data packet also containing an outgoing identifier vector
Figure imgf000033_0001
il comprend en outre des moyens pour effectuer le calcul dudit vecteur d'identifiants sortant C au moyen des mêmes opérations et simultanément au calcul dudit paquet de données utiles sortant F' .  it further comprises means for performing the calculation of said identifier vector outgoing C by means of the same operations and simultaneously calculating said outgoing user data packet F '.
9. Dispositif de décodage de paquets de données, comprenant des moyens pour : 9. Device for decoding data packets, comprising means for: - recevoir n > \ paquets de données codés où, pour
Figure imgf000033_0003
- receive n> \ coded data packets where, for
Figure imgf000033_0003
i = 1, ... , n, chaque paquet de données codé
Figure imgf000033_0002
i = 1, ..., n, each coded data packet
Figure imgf000033_0002
est une combinaison linéaire des mêmes k > \ paquets d'information Pj contenant chacun L≥1 symboles constitués d'une suite de m > l bits, et où les coefficients ct j sont pris dans un corps d'extension GF(2m ) défini au moyen d'un polynôme primitif choisi ; et is a linear combination of the same k> \ information packets P j each containing L≥1 symbols consisting of a sequence of m> 1 bits, and where the coefficients c tj are taken in a GF extension body (2 m ) defined by means of a chosen primitive polynomial; and - résoudre le système formé par lesdites combinaisons linéaires, de manière à obtenir lesdits paquets d'information Pj ; solving the system formed by said linear combinations, so as to obtain said information packets P j ; caractérisé en ce qu'il comprend en outre, dans le but d'effectuer au moins une multiplication Q = a P , requise pour la résolution dudit système de combinaisons linéaires, de tous les symboles d'un paquet de données dans lequel est un symbole composé d'une
Figure imgf000033_0004
Figure imgf000033_0006
characterized in that it further comprises, for the purpose of performing at least one multiplication Q = a P, required for the resolution of said system of linear combinations, of all the symbols of a data packet in which is a symbol composed of
Figure imgf000033_0004
Figure imgf000033_0006
suite de m bits par un même nombre a appartenant à
Figure imgf000033_0005
following of m bits by the same number a belonging to
Figure imgf000033_0005
GF(2m ) , des moyens pour : GF (2 m ), ways to: - remplir une matrice binaire X de dimension mx L en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ; - Fill a binary matrix X of dimension mx L by placing the bits x tj component each symbol Xj along the jth column of said matrix X; - calculer la matrice binaire
Figure imgf000033_0007
de dimension mx L , où M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs est une racine dudit polynôme primitif, en
Figure imgf000034_0002
- calculate the binary matrix
Figure imgf000033_0007
of dimension mx L, where M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements is a root of said primitive polynomial, in
Figure imgf000034_0002
obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et  obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix M (a); and - obtenir le paquet de données dans lequel chaque
Figure imgf000034_0003
- obtain the data packet in which each
Figure imgf000034_0003
symbole yp pour j = l,2, ... , L„ est composé des m bits où
Figure imgf000034_0005
situés sur la j -ième colonne de ladite matrice Y .
symbol y p for j = l, 2, ..., L "is composed of m bits where
Figure imgf000034_0005
located on the jth column of said matrix Y.
Figure imgf000034_0004
Figure imgf000034_0004
10. Dispositif de décodage selon la revendication 9, caractérisé en ce qu'il comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000034_0001
10. Decoding device according to claim 9, characterized in that it further comprises means for extracting said matrices M (a) for a reference matrix T of dimension
Figure imgf000034_0001
1 1 . Nœud, dit nœud relais (R), d'un réseau de communication (N), caractérisé en ce qu'il comprend un dispositif de codage selon l'une quelconque des revendications 6 à 8. 1 1. Node, said relay node (R), of a communication network (N), characterized in that it comprises a coding device according to any one of claims 6 to 8. 12. Nœud, dit nœud destinataire (D), d'un réseau de communication (N), caractérisé en ce qu'il comprend un dispositif de décodage selon la revendication 9 ou la revendication 10. 12. Node, said destination node (D), of a communication network (N), characterized in that it comprises a decoding device according to claim 9 or claim 10. 13. Réseau de communication (N), comprenant au moins un nœud relais (R) selon la revendication 1 1 et au moins un nœud destinataire (D) selon la revendication 12. 13. Communication network (N), comprising at least one relay node (R) according to claim 1 1 and at least one destination node (D) according to claim 12. 14. Moyen de stockage de données inamovible, ou partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage de paquets de données selon l'une quelconque des revendication 1 à 3, ou d'un procédé de décodage de paquets de données selon la revendication 4 ou la revendication 5. A non-removable, or partially or fully removable data storage medium, comprising computer program code instructions for performing the steps of a data packet encoding method according to any one of claims 1 to 3, or a method of decoding data packets according to claim 4 or claim 5. 15. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé de codage de paquets de données selon l'une quelconque des revendication 1 à 3, ou d'un procédé de décodage de paquets de données selon la revendication 4 ou la revendication 5, lorsqu'il est exécuté sur un ordinateur. 15. Computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises instructions for the execution of the steps of a method of encoding data packets according to any one of claims 1 to 3, or a method of decoding data packets according to claim 4 or claim 5 when executed on a computer.
PCT/FR2018/050770 2017-04-03 2018-03-29 Methods for encoding and decoding data packets in a galois field Ceased WO2018185402A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1752861 2017-04-03
FR1752861A FR3064858B1 (en) 2017-04-03 2017-04-03 METHODS OF ENCODING AND DECODING DATA PACKETS IN A GALOIS BODY

Publications (1)

Publication Number Publication Date
WO2018185402A1 true WO2018185402A1 (en) 2018-10-11

Family

ID=59253681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2018/050770 Ceased WO2018185402A1 (en) 2017-04-03 2018-03-29 Methods for encoding and decoding data packets in a galois field

Country Status (2)

Country Link
FR (1) FR3064858B1 (en)
WO (1) WO2018185402A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119210468A (en) * 2024-09-18 2024-12-27 北京科技大学 Data encoding method, device, storage medium and electronic device

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
AISHWARYA NAGARAJAN ET AL: "Galois field hardware architectures for network coding", ARCHITECTURES FOR NETWORKING AND COMMUNICATIONS SYSTEMS, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 25 October 2010 (2010-10-25), pages 1 - 9, XP058122870, ISBN: 978-1-4503-0379-8, DOI: 10.1145/1872007.1872051 *
C. STUDHOLME; I. BLAKE: "Random matrices and codes for the erasure channel", ALGORITHMICA, vol. 56, no. 4, 2010, pages 605 - 620, XP019781960
HAINING FAN ET AL: "A survey of some recent bit-parallel GF(2n) multipliers", FINITE FIELDS AND THEIR APPLICATIONS, vol. 32, no. 32, 1 March 2015 (2015-03-01), US, pages 5 - 43, XP055431227, ISSN: 1071-5797, DOI: 10.1016/j.ffa.2014.10.008 *
NICOLA PETRA ET AL: "High speed galois fields GF(2m) multipliers", CIRCUIT THEORY AND DESIGN, 2007. ECCTD 2007. 18TH EUROPEAN CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 27 August 2007 (2007-08-27), pages 468 - 471, XP031257785, ISBN: 978-1-4244-1341-6 *
R. KOETTER; M. MEDARD: "An algebraic approach to network coding", IEEE/ACM TRANSACTIONS ON NETWORKING, vol. 11, no. 5, 2003, pages 782 - 795, XP007908088, DOI: doi:10.1109/TNET.2003.818197
T. HO; M. MÉDARD; R. KOETTER; D.R. KARGER; M. EFFROS; J. SHI; B. LEONG: "A random linear Network Coding approach to multicast", IEEE TRANS. INFORMATION THEORY, vol. 52, no. 10, October 2006 (2006-10-01), pages 4413 - 4430

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119210468A (en) * 2024-09-18 2024-12-27 北京科技大学 Data encoding method, device, storage medium and electronic device
CN119210468B (en) * 2024-09-18 2025-05-02 北京科技大学 Data encoding method, device, storage medium and electronic device

Also Published As

Publication number Publication date
FR3064858A1 (en) 2018-10-05
FR3064858B1 (en) 2019-10-18

Similar Documents

Publication Publication Date Title
ES2401177T3 (en) Procedure and system for transmitting and receiving information using chain reaction codes
TWI485992B (en) Apparatus and method for accelerating the encoding of raptor codes
EP2606583B1 (en) Method and system of selective relaying in a communication network comprising a plurality of sources, a relay and a reception device with detection by the relay of errors on the received estimated messages and transmission, from the relay to the reception device, of a signal representative of only the messages for which no errors were detected.
EP1974472B1 (en) Fast encoding and decoding methods and related devices
FR2849514A1 (en) CODE OF ALGEBRA GEOMETRY ADAPTED TO RAFALE ERRORS
WO2015197991A1 (en) Method for dynamic and selective fd-dsdf transmission of a digital signal for a mamrc system with several full-duplex relays, and corresponding program product and relay device
Grospellier Constant time decoding of quantum expander codes and application to fault-tolerant quantum computation
FR2905209A1 (en) Information block decoding method for signal receiver of wireless apparatus, involves storing blocks in input memory, and updating current indication for decoding one of blocks based on number of iterations performed to decode current block
FR2952252A1 (en) METHOD AND DEVICE FOR DECODING, COMPUTER PROGRAM PRODUCT, CORRESPONDING MEANS OF STORAGE AND CORRESPONDING DESTINATION NODE
FR2960725A1 (en) METHOD AND DEVICE FOR CONFIGURING A GLOBAL ENCODING / DECODING SCHEME IN A COMMUNICATION NETWORK, COMPUTER PROGRAM PRODUCT AND CORRESPONDING STORAGE MEDIUM
WO2018185402A1 (en) Methods for encoding and decoding data packets in a galois field
FR3009462B1 (en) IMPROVED METHOD OF DECODING A CORRECTING CODE WITH MESSAGE PASSAGE, ESPECIALLY FOR DECODING LDPC CODES OR TURBO CODES
EP0463598A1 (en) Convultional code decoding circuit performing the viterbi algorithm step of memorisation and backtracing of the surviving paths
WO2015197990A1 (en) Method for dynamic and selective fd-dsdf transmission of a digital signal for a marc system with a full-duplex relay, and corresponding program product and relay device
EP1905157B1 (en) Method and system for encoding a data sequence
WO2018115648A1 (en) Encoding and decoding data packets in a galois group
FR2922699A1 (en) ITERATIVE DECODING IN A MESH NETWORK, CORRESPONDING METHOD AND SYSTEM
WO2013054054A1 (en) Error corrector coding and decoding
FR3060148A1 (en) MESSAGE TRANSMITTING METHOD, RECEIVING METHOD, TRANSMITTING DEVICE, RECEIVING DEVICE, AND COMMUNICATION SYSTEM THEREOF
FR3013924A1 (en) METHOD AND DEVICE FOR ENCODING DIGITAL DATA PACKETS, AND METHOD AND DEVICE FOR CORRECTING DEPLETIONS
FR2960726A1 (en) Code element&#39;s coded symbols transmitting method for destination node in wireless meshed network, involves generating and transmitting replacement symbol accompanied with information indicating line of matrix defining symbol to node
Gautam et al. Accelerating convolution coding & viterbi decodingon gpus using opencl
Huang A Parallelized Implementation of RaptorQ Using NVIDIA CUDA
EP3057238B1 (en) Method for iterative decoding of lfsr sequences with low probability of false alarm
FR2957736A1 (en) Data flow transmission method, involves generating set of parity data from information, and transmitting set of parity data to receiving device using transport protocol in response to received message

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18718884

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18718884

Country of ref document: EP

Kind code of ref document: A1