Propriétés (−1)a = −a et ab = 0 ⇒ a = 0 ou b = 0 a, b et m > 1 entiers ; a ≡ b mod m si m | (a − b) Zm est un corps ssi m est premier Rappels d’algèbre F un corps. La caractéristique de F est le plus petit entier positif p tel que p.1 = 0 pour 1 élément neutre de F. Si un tel p n’existe pas, F est de caractéristique nulle. La caractéristique d’un corps est soit 0 soit un nombre premier Un corps fini F de caractéristique p contient p n éléments pour un entier n ≥ 1 Corps Anneau de polynômes Un corps F est un ensemble non vide d’éléments muni des opérations + et . satisfaisant les axiomes :∀a, b, c ∈ F 1 F est clos pour + et . 2 commutativité 3 associativité 4 distributivité a(b + c) = ab + ac ! Soit F un corps. F[x] = { ni=0 ai x i : ai ∈ F, n ≥ 0} est l’anneau des polynômes sur F. F[x] vérifie tous les axiomes d’un corps sauf l’existence d’un inverse multiplicatif. ! Pour f (x) = ni=0 ai x i , n est le degré du polynôme. f (x) est monique si an = 1 De plus, il existe deux éléments neutres, un pour + et un pour . satisfaisant ∀a ∈ F 5 a + 0 = a, 6 a1 = a et a0 = a, 7 tout élément a un inverse pour l’addition 8 tout élément a un inverse multiplicatif ∀a ∈ F f (x) est réductible s’il existe g (x) et h(x) tq. deg(g )<deg(f ) et deg(h)<deg(f ) et f (x) = g (x).h(x) ; sinon, il est irréductible pour f (x), g (x) ∈ F[x], le pgcd de f et de g est le polynôme monique de plus haut degré qui divise simultanément f et g Soit f (x) ∈ F[x] de degré ≥ 1 alors F[x]/f (x) forme un anneau. De plus, si f est irreductible, F[x]/f (x) est un corps. Structure des corps finis Parties génératrices et libres ∀β ∈ F de cardinalité q, on a β q = β F, sous-corps de E de cardinalité q. Alors, un élément β de E vit dans F ssi β q = β Pour tout p premier et tout entier n ≥ 1, il existe un unique corps fini à p n éléments α ∈ Fq est dit primitif (ou générateur) si Fq = {0, α, α2 , · · · , αq−1 } l’ordre de α ∈ Fq , noté ord(α) est le plus petit entier k tq. αk = 1 ∀α ∈ F!q , ord(α) | q − 1 Une partie génératrice de E est un sous-ensemble G ⊆ E tel que le sous-espace engendré par G est E . Ou, de manière équivalente, que tout vecteur de E est combinaison linéaire d’éléments de G . E est dit de dimension finie s’il contient une partie génératrice finie. Une partie libre de E est un sous-ensemble L ⊆ E tel qu’aucun élément v ∈ L n’est une combinaison linéaire d’autres éléments de L. Ou, de manière équivalente, la seule combinaison linéaire d’éléments de L qui est nulle est celle dont tous les coefficients sont nuls. Un élément non nul de Fq est primitif ssi il est d’ordre q − 1 tout corps fini a au moins un élément primitif Espace vectoriel – Sous-espace vectoriel E est un espace vectoriel sur un corps K si et seulement si, ∀u, v , w ∈ E 1. 2. 3. 4. (u + v ) + w = u + (v + w ) ∃0 : u + 0 = 0 + u = u ∀u∃(−u) : u − u = 0 u+v =v +u 5. 6. 7. 8. ∀c ∈ K , c(u + v ) = c.u + c.v ∀a, b ∈ K , (a + b)u = a.u + b.v ∀a, b ∈ K , (a.b)u = a.(b.u) 1.u = u F (= ∅ est un sous-espace vectoriel de E si et seulement si " x + y ∈ F ∀x, y ∈ F λx ∈ F ∀λ ∈ K , ∀x ∈ F Si A ⊆ E , alors le sous-espace engendré par A est l’ensemble de toutes les combinaisons linéaires d’éléments de A. Famille génératrice et base Une famille d’éléments de E est génératrice si son ensemble sous-jacent engendre E . Une famille d’éléments de E est libre si son ensemble sous-jacent est libre. Une base de E est une famille d’éléments de E qui est libre et génératrice. Si (bi )i∈I est une ! base de E , alors ∀x ∈ E ∃!(λi )i∈I ∈ K : x = i∈I λi bi . Dimension Si la dimension de E est finie alors chaque base de E est finie (son ensemble sous-jacent est de cardinal fini) et toutes les bases ont le même nombre d’éléments. Ce nombre est la dimension de l’espace. Si la dimension de E est n, alors si (gi )i∈I est une famille génératrice de E alors |I | ≥ n. S’il y a égalité, alors (gi )i∈I est une base. si (li )i∈I est une famille libre de E alors |I | ≤ n. S’il y a égalité, alors (li )i∈I est une base. Codes cycliques si E = K n , alors la famille (ei )i∈I avec I = {1, 2, . . . , n} et ei = (0, 0, . . . , 1, 0, . . . , 0) avec 1 à la i e position est une base, la base canonique de K n . Application linéaire Description On dit que f est un application linéaire de E dans V si f est une application qui vérifie : ∀x ∈ E , ∀y ∈ E ∀λ ∈ K , ∀x ∈ E f (x + y ) = f (x) + f (y ) f (λ.x) = λ.f (x) Codes les plus utilisés [7, 4, 3]. Implémententation facile au moyen de registres linéaires. Pour certains, bonnes techniques de décodage basées sur des transformées de Fourier discrètes. Ce cours : codes binaires (sur F2 ). Définition Représentation polynomiale Un code linéaire C de longueur n est cyclique si ses mots vérifient : Si (x1 , . . . , xn ) ∈ C , alors (xn , x1 , . . . , xn−1 ) ∈ C Un code est cyclique s’il est invariant par «shifts» (ou décalages). Exemple : Le code C = {000, 110, 011, 101} est cyclique. Exemple : Le code de Hamming est cyclique. Matrice génératrice de Ham(3) : # 1101000 $ G = 0110100 0011010 0001101 0110100 ∈Ham(3) ainsi que 1101000 ; ils vérifient la condition de cyclicité. Anneau des polynômes binaires Soit F2 [x] l’anneau des polynômes en x à coefficients dans F2 . Définition (Anneau) Un anneau A est un ensemble muni de deux opérations internes (+, .) tel que (A, +) est un groupe commutatif muni d’une opération . qui satisfait : a.b = b.a, a.(b + c) = a.b + a.c, (a.b).c = a.(b.c) et qui contient un élément noté 1 tel que 1.a = a.1 = a. Pour plus de détails, voir [2] ou [5, 6]. Définition On appelle représentation polynomiale l’application θ : (F2 )n → F2 [x]/(x n − 1) définie par θ : (c0 , c1 , . . . , cn−1 ) -→ c0 + c1 x + . . . + cn−1 x n−1 La représentation polynomiale de c = (c0 , c1 , . . . , cn−1 ) est le polynôme c(x) = c0 + c1 x + . . . + cn−1 x n−1 . Exemple : Représentation polynomiale de 0110100 : x + x 2 + x 4 et celle de 1101000 est 1 + x + x 3 . Observons que x + x 2 + x 4 = x(1 + x + x 3 ). La représentation polynomiale d’un code C est l’ensemble des représentations polynomiales de ses mots. Exemple Le code C = {000, 110, 011, 101} correspond aux polynômes 0, 1 + x, x + x 2 , 1 + x 2 pris modulo x 3 − 1. Sa représentation polynomiale est donc C = {0, 1 + x, x + x 2 , 1 + x 2 }. Faire un décalage sur un mot revient à multiplier par x sa représentation polynomiale, modulo x n − 1. C est cyclique SSI pour tout mot c ∈ C , xc(x) mod x n − 1 est la représentation polynomiale d’un mot de C . Code cyclique = idéal Exemple Si c(x) ∈ C , alors xc(x) ∈ C et p(x)c(x), pour tout p(x) ∈ F2 [x]. Code cyclique de longueur n est un idéal de F2 [x]/(x n − 1). Définition (Idéal) Un sous-ensemble I d’un anneau commutatif A est un idéal si, pour a, b ∈ I , a − b ∈ I et si, pour a ∈ I et x ∈ A, a.x ∈ I . Théorème I est un idéal de K [x] si et seulement si il existe a(x) ∈ K [x] tel que I est l’ensemble des multiples de a(x) dans K [x]. Le code de Hamming de paramètres (7, 4, 3) admet comme générateur g (x) = x 3 + x + 1. Ses mots consistent en tous les multiples de g (x) modulo x 7 − 1. Par exemple le mot a(x) = (x 8 + 1)g (x). On a (x 8 + 1)g (x) = (x + 1)g (x) mod (x 7 − 1) = x 4 + x 3 + x 2 + 1. Ainsi, a = (1011100). Définition Un idéal I est principal s’il consiste en tous les multiples d’un polynôme fixé, g(x), appelé polynôme générateur de I . Code cyclique et polynôme générateur Posons Rn = F2 [x]/(x n − 1). L’anneau Rn = F2 [x]/(x n − 1) est composé des classes résiduelles de F2 [x] modulo x n − 1. Théorème Un code cyclique C de longueur n est un idéal principal de Rn . Il admet un unique générateur de degré minimal dans C . Exemple : Le code C = {0, 1 + x, x + x 2 , 1 + x 2 } est engendré par g (x) = 1 + x dans R3 . Théorème La dimension d’un code cyclique de longueur n et de générateur g (x) est k = n − deg g (x) Matrice génératrice Soit g (x) = g0 + g1 x + . . . + gt x t le générateur d’un code cyclique C de longueur n. Une matrice génératrice de C est donnée par : g0 g1 g2 . . . gt 0 . . . . . . 0 0 g0 g1 g2 . . . gt 0 . . . 0 G = ... . . . . . . . . . . . . . . . . . . . . . ... 0 . . . 0 g0 g1 g2 . . . gt 0 0 . . . . . . 0 g0 g1 g2 . . . gt Pour construire tous les mots de C , il faut multiplier g (x) par tous les polynômes p(x) de degré inférieur ou égal à k − 1. Matriciellement, les mots m peuvent s’écrire m = p G . Exemple Code engendré par le polynôme de contrôle Le code de Hamming Ham(3) de paramètres [7,4,3] et de générateur g (x) = 1 + x + x 3 admet pour matrice génératrice 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 Quels sont les mots du code ? Polynôme de contrôle Soit C un code cyclique de générateur g (x). Le polynôme de contrôle de C est défini par h(x) = (x n − 1)/g (x) Le degré de h(x) est donc n−deg g (x) = k. Si c est un mot de C , alors c(x)h(x) = 0 Le code engendré par h(x) est équivalent au code dual de C . C’est un code cyclique de dimension n − dim C =deg g (x). Pour h(x) = h0 + h1 x + . . . + hk x k , on peut construire sa matrice H : 0 ... 0 hk . . . h1 h0 0 . . . 0 hk . . . h1 h0 0 .. .. .. H = ... . . . 0 hk . . . h1 h0 0 . . . 0 Exemple le polynôme de contrôle correspondant à g (x) = 1 + x + x 3 est h(x) = (x 7 − 1)/(x 3 + x + 1) = x 4 + x 2 + x + 1. La matrice de contrôle du code est : 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 Quels sont les paramètres du dual de Ham(3) ? Propriété du polynôme générateur Ordre multiplicatif Le polynôme générateur d’un code cyclique binaire de longueur n (impaire tel que n soit premier avec 2) doit être un facteur de x n − 1. Il faut étudier le corps de décomposition de x n − 1, i.e. les facteurs de x n − 1 sur F2 pour trouver quels polynômes peuvent engendrer des codes. L’ordre multiplicatif de 2 modulo n est le plus petit entier m tel que n divise 2m − 1. Les racines de Φn = x n − 1, ne polynôme cyclotomique, sont appelées racines ne de l’unité. Elles vivent dans l’extension de corps F2m . F2m est aussi appelé le corps de décomposition de x n − 1. Exemple : L’ordre multiplicatif de 2 mod 7 est le plus petit entier m tel que n|2m − 1. Ici, on a 7|2m − 1 et donc m = 3. Les racines de x 7 − 1 vivent donc dans l’extension de corps F23 . Le corps F2m F2m est le plus petit corps contenant toutes les racines de Φn (elles sont distinctes puisque x n − 1 n’a pas de racines multiples dans F2 ). Dans F2m , on a donc pour les αi racines ne de l’unité, xn − 1 = Les facteurs de Φn = x − 1 sur F2 n n−1 + i=0 (x − αi ) F2m possède également une racine primitive ne de l’unité. α est dite primitive lorsque les puissances de α permettent de retrouver toutes les autres αi ; si α est primitive alors, xn − 1 = n−1 + i=0 (x − αi ) Corps d’extension F2m F2m est obtenu en ajoutant à F2 une racine primitive ne de l’unité. Le polynôme minimal d’une telle racine primitive est un facteur irréductible dans F2 [x] du polynôme cyclotomique Φn = x n − 1. Un polynôme sur F2 [x] est irréductible sur F2 s’il ne peut être factorisé par un produit de deux polynômes sur F2 [x] de degré moindre. Exemple : construction de F23 F23 est l’extension de degré 3 de F2 . Pour le construire, on ajoute la racine d’un polynôme qui n’a normalement pas de racine sur F2 [x]. Comme l’extension est de degré 3, on cherche un polynôme irréductible de degré 3. Par exemple, x 3 + x + 1 ou x 3 + x 2 + 1. Choisissons f (x) = x 3 + x + 1. On a donc f (α) = 0 et on pose α3 + α + 1 = 0 ⇔ α3 = α + 1. On a une racine dans le corps à 23 éléments engendré par α, racine primitive. f (x) est le polynôme minimal et on a ainsi le plus petit corps contenant α, F2 [α] = F2 [x]/f (x)F2 [x]. De plus, (1, α, α2 ) est une base de F23 . Décomposition de Φn = x n − 1 Considérons la décomposition en t facteurs irréductibles de x n − 1 sur F2 , x n − 1 = f0 (x)f1 (x) . . . ft−1 (x) Si α est racine de fi (x), fi (x) est appelé polynôme minimal de α sur F2 . Les autres racines de fi (x) sont les conjugués de α : soit s α, α2 , α4 , . . . , α2 i −1 , (où si est le degré de fi (x)). , 1 −1 j Supposons que f1 (x) = sj=0 (x − α2 ) alors, les autres facteurs sont , i −1 j fi (x) = sj=0 (x − αi2 ) Classe cyclotomique Définition Le cycle (i, 2i, 4i, . . . , 2j i, . . .) s’appelle la classe cyclotomique de i (relative à 2 modulo n). Plus précisément, pour i ∈ Zn , la classe cyclotomique de i relative à 2 modulo n est : Ci = {i2j mod n : j ∈ N} Le nombre d’éléments dans la classe cyclotomique est égal au degré du facteur irréductible. Exemple : Factorisation de x 7 − 1 sur F2 On a m = 3 car 7 = 23 − 1. L’extension de corps est F23 / F8 . Calculons les classes cyclotomiques modulo 7 : C0 = {0} = {0.2j }, C1 = {1, 2, 4} = {2j } = C2 C3 = {3, 6, 5} = {3.2j } On en déduit qu’il existe un facteur de degré 1 et deux de degré 3. Remarquons que les degrés des facteurs (ici 3) divisent n − 1 (ici 6). Les trois polynômes minimaux sont : Alors f1 (x) = (x − α)(x − α2 )(x − α4 ) = x 3 + (α + α2 + α4 )x 2 + (α3 + α5 + α6 )x + α7 = x 3 + x + 1, et on trouve de manière analogue que f3 (x) = x 3 + x 2 + 1 Donc x 7 − 1 = (x − 1)f1 (x).f3 (x) f0 (x) = x − 1, f1 (x) = (x − α)(x − α2 )(x − α4 ), f3 (x) = (x − α3 )(x − α6 )(x − α5 ) Implémentation du codage [1] On sait que x 3 + x + 1 est un polynôme irréductible de degré 3, l’autre se trouve facilement par division. D’où la factorisation : x 7 − 1 = (x − 1)(x 3 + x + 1)(x 3 + x 2 + 1) Pour retrouver les coefficients de f1 (x) et f3 (x) on calcule dans F8 . Puisque 8 = 23 , nous considérons un polynôme binaire de degré 3 irréductible, par exemple f (x) = x 3 + x + 1. Si α est une racine primitive de f (x) = x 3 + x + 1, alors f (α) = 0. On a donc α3 = α + 1 α4 = α2 + α α5 = α2 + α + 1 α6 = α2 + 1 α7 = 1. Considérons le (7,4,3) code de Hamming Ham(3) engendré par g (x) = x 3 + x + 1. Supposons que le message a = a0 , a1 , . . . , a3 est à encoder en c = c0 , . . . , c3 , c4 , . . . , c6 . Pour trouver c, il suffit d’effectuer le produit a(x).g (x) mod x 7 − 1 qui peut être implémenté efficacement au moyen d’un registre à décalages. c0 , c1 , . . . , ck+3 g1 a0 . . . ak g0 Décodage codons le message a(x) = x 2 + x 3 : entrée registre sortie 0110 000 011 000 0 01 100 10 0 110 110 011 1110 001 01110 000 101110 000 0101110 c0 . . . c6 Le décodage s’effectue de la manière suivante : Calcul du syndrome avec un registre à décalage. Association du syndrome à l’erreur correspondante grâce à une table. La consultation de la table se fait à l’aide d’un circuit de logique combinatoire. Ajout de l’erreur au mot reçu, en utilisant des ou exclusifs. Le message à émettre est donc : c(x) = x + x 3 + x 4 + x 5 . Décodage Soit C un (n, k, d) code cyclique binaire engendré par g (x) de degré n − k. Soit e sa capacité de correction. Un mot y recu est corrigé en un mot c ∈ C si y = c + η avec w(η) ≤ e. Exemple du code de Hamming Ham(4) Ham(4) a comme paramètres (15,11,3) et est engendré par g (x) = x 4 + x + 1. Trouver le syndrome correspondant au message x 8 + x 5. Définition Le syndrome S(y (x)) d’un mot y (x) ∈ Rn est le reste de la division de y (x) par g (x) dans F2 [x]. En particulier, y (x) ∈ C si et seulement si g (x) divise y (x) dans F2 [x]. Les mots de C sont ceux qui possèdent un syndrome nul. . . . bn r0 r3 . . . ak Par exemple, pour la division du polynôme b(x) = x 8 + x 5 par g (x), on a : entrée registre sortie 000001001 0000 00000100 1000 0 0000010 0100 00 000001 0010 000 00000 1001 0000 0000 1000 10000 000 0100 010000 00 0010 0010000 0 0001 00010000 1100 100010000 On trouve que le syndrome est x + 1, le contenu des cellules du registre. Les codes BCH (Bose, Chaudhuri, Hocquenghem) Codes cycliques qui minorent la distance minimum du code avant construction. Soit F2m le corps des racines ne de l’unité. Un code BCH binaire de longueur n et de distance construite δ est le code de plus grande cardinalité admettant comme zéros αb , αb+1 , . . . , αb+δ−2 où α ∈ F2m racine primitive ne de l’unité et b ∈ N! . Définition Un code BCH binaire de longueur n et de distance construite δ est un code cyclique dont le générateur est le produit (sans répétition de facteurs) des polynômes minimaux de αb , αb+1 , . . . , αb+δ−2 , où b est un entier positif. Si b = 1, le code est BCH au sens strict. Théorème Le code BCH binaire de longueur n et distance construite δ = 2t + 1 a pour dimension k ≥ n − mt et distance minimum d ≥ δ. Exemple Le code de Hamming Ham(3) est un code BCH avec δ = 3 et b = 1. En fait, les codes BCH ont été construits comme une généralisation des codes de Hamming. Exemples de codes cycliques Les codes de Reed-Solomon Les codes BCH peuvent aussi être construits sur Fq , le corps à q éléments, q premier. Quand leur longueur n est telle que n = q − 1, ils sont appelés codes de Reed-Solomon. Ce sont des codes MDS (Maximum Distances Separable). Cela signifie que d = n − k + 1, où d et k représentent respectivement la distance minimum et la dimension du code. Ils sont utilisés : pour construire d’autres codes, lorsqu’on désire un code de longueur moindre que la cardinalité du corps, C’est le code qui est à la base du mécanisme de correction pour la lecture des disques compacts dont nous allons découvrir le principe. Code t-raccourci Le code raccourci d’un code C est obtenu en supprimant, pour chaque mot de C , les composantes dont les indices appartiennent à un ensemble fixé. On considère seulement le cas particulier de la définition suivante [7] : Définition Le code t-raccourci d’un code C est le code noté C # qui est l’ensemble des mots (xt+1 , . . . , xn ) tels que (0, . . . , 0, xt+1 , . . . , xn ) ∈ C . Propriété Le code C # , t raccourci d’un (n, k, d) code linéaire C a pour paramètres (n# , k # , d # ) avec n# = n − t, k # ≥ k − t et d # ≥ d. Exemple Considérons le (5, 2)-code binaire défini par la matrice génératrice : . 1 1 0 1 1 1 0 1 0 0 l’ensemble de ses mots est : Codes raccourcis {(0, 0, 0, 0, 0), (1, 1, 0, 1, 1), (1, 0, 1, 0, 0), (0, 1, 1, 1, 1)} le code 1-raccourci C # de paramètres (4, 1) est {(0, 0, 0, 0), (1, 1, 1, 1)} Application S. Lang. Algèbre linéaire, volume 2. Considérons le code de Reed-Solomon de paramètres n = 255, k = 251 et d = 5. Son polynôme générateur est g (x) = (x − α)(x − α2 )(x − α3 )(x − α4 ) pour α un élément primitif de F28 . Il est possible, à partir de ce code, de construire deux codes raccourcis. Le premier, noté C1 a pour paramètres n1 = 28, k1 = 24, le second C2 a pour paramètres n2 = 32, k2 = 28. La distance minimale d1 (resp. d2 ) de C1 (resp. C2 ) est 5. Ils servent à la construction du CIRC, mécanisme de correction des erreurs des CD [8]. Dans le cas d’un Reed-Solomon, le code t-raccourci d’un code de Reed-Solomon de paramètres (n, k, d), C # a pour distance minimale d. R.E. Blahut. Theory and practice of error-control codes. Addison Wesley, 1983. M. Demazure. Cours d’algèbre, primalité, divisibilité, codes. Cassini, 1997. R. Hill. A first course in coding theory. Oxford University Press, 1986. D.G. Hoffman, D.A. Leonard, C.C. Linder, K.T. Phelps, C.A. Rodger, and J.R. Wall. Coding theory, the essentials. Pure and applied mathematics. Dekker, 1991. S. Lang. Algèbre linéaire, volume 1. InterEditions, 1976. InterEditions, 1976. J. Wolfmann and O. Papini. Algèbre discrète et codes correcteurs. Number 20 in Mathématiques & Applications. Springer Verlag, 1994. J.-P. Zanotti. Codage d’un signal audio-numérique. Rapport de recherche 3333, INRIA, 1998. Dies ist ein WWF-Dokument und kann nicht ausgedruckt werden! Das WWF-Format ist ein PDF, das man nicht ausdrucken kann. So einfach können unnötige Ausdrucke von Dokumenten vermieden, die Umwelt entlastet und Bäume gerettet werden. Mit Ihrer Hilfe. Bestimmen Sie selbst, was nicht ausgedruckt werden soll, und speichern Sie es im WWF-Format. saveaswwf.com This is a WWF document and cannot be printed! The WWF format is a PDF that cannot be printed. It’s a simple way to avoid unnecessary printing. So here’s your chance to save trees and help the environment. Decide for yourself which documents don’t need printing – and save them as WWF. saveaswwf.com Este documento es un WWF y no se puede imprimir. ® SAVE AS WWF, SAVE A TREE Un archivo WWF es un PDF que no se puede imprimir. De esta sencilla manera, se evita la impresión innecesaria de documentos, lo que beneficia al medio ambiente. Salvar árboles está en tus manos. Decide por ti mismo qué documentos no precisan ser impresos y guárdalos en formato WWF. saveaswwf.com Ceci est un document WWF qui ne peut pas être imprimé! Le format WWF est un PDF non imprimable. L’idée est de prévenir très simplement le gâchis de papier afin de préserver l’environnement et de sauver des arbres. Grâce à votre aide. Définissez vous-même ce qui n’a pas besoin d’être imprimé et sauvegardez ces documents au format WWF. saveaswwf.com ® WWF International – World Wide Fund For Nature, Gland/Switzerland.