Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... ·...

39
Mathématiques A. Bonnecaze Institut de Mathématiques de Luminy (IML) Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 1 / 39

Transcript of Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... ·...

Page 1: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Mathématiques

A. Bonnecaze

Institut de Mathématiques de Luminy (IML)

Polytech Marseille, 1er Semestre 2013

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 1 / 39

Page 2: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Polynômes

Soit A un anneau, un polynôme f est une expression de la forme

f (x) =n∑

i=0

aix i = a0 + a1x + · · ·+ anxn,

n est un entier positif, les coefficients ai , 0 ≤ i ≤ n sont des éléments de A etx une indeterminée.

Définition

Soit f =∑n

i=0 aix i un polynôme tel que an 6= 0. Alors f est de degré n (on notedeg(f ) = n), a0 est le terme constant et an le coefficient de plus haut degré(leading coefficient en anglais).

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 2 / 39

Page 3: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Arithmétique des polynômes

On peut définir la somme et le produit de deux polynômes f =∑n

i=0 aix i etg =

∑mi=0 bix i (m ≤ n) :

f (x) + g(x) =n∑

i=0

(ai + bi)x i ,

et

f (x)g(x) =n+m∑k=0

ck xk , où ck =∑

i+j=k

aibj ,

où 0 ≤ i ≤ n et 0 ≤ j ≤ m.L’ensemble des polynômes sur A muni de ces deux opérations admet unestructure d’anneau noté A[x ].Pour tout f ,g ∈ F [x ] (F étant un corps)

deg(f + g) ≤ max{deg(f ),deg(g)}, et deg(fg) = deg(f ) + deg(g).

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 3 / 39

Page 4: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Arithmétique des polynômes

Le polynôme g divise le polynôme f si il existe un polynôme h tel que

f = gh

Pour éviter tout problème, on ne considère ici que des polynômes àcoefficients dans un corps.

Exemple :Dans F2[x ], considérons les deux polynômesf = x7 + x6 + x3 + x2 + x + 1 etg = x4 + x3 + x2 + 1.Le polynôme g divise f car f = g(x3 + x + 1)

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 4 / 39

Page 5: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

PGCD de polynômes

Théorème

Soit g un polynôme non nul dans F [x ]. Alors pour tout f ∈ F [x ] il existe deuxpolynômes q et r de F [x ] tels que

f = qg + r , où deg(r) < deg(q).

Si d (unitaire) divise f et g et si tout polynôme divisant f et g divise aussi d ,alors d est le plus grand diviseur commun de f et g. On note

d = pgcd(f ,g)

Si pgcd(f ,g) = 1, on dit que f et g sont premiers entre eux.Exercice : Dans F2[x ]f = x2 + x + 1 et g = x5 − 1 sont-ils premiers entre eux ?

Un polynôme unitaire a son coefficient de plus haut degré égal à 1

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 5 / 39

Page 6: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Bézout

Théorème

Avec les mêmes notations, il existe u, v ∈ F [x ] tels que

d(x) = u(x)f (x) + g(x)v(x), avec u, v ∈ F [x ].

Exemple : sur F3f := x6 + x5 + 2 x4 + 2 x2 + 2,g := x2 + 2 x + 1Alors, on a

f = q1g + r1 avec q1 = x4 + 2 x3 + x et r1 = 2x + 2g = q2r1 + r2 avec q2 = 2x + 2 et r2 = 0.

On trouve, d = 2f + q1g = x + 1.

Exercice : Même exercice avec f = x5 + x2 + x + 1 et x4 + x3 + 1 dans F2[x ]

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 6 / 39

Page 7: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Factorisation

Définition

un polynôme non constant f ∈ F [x ] est dit irréductible sur F si les seulspolynômes (6= f ) qui le divisent sont constants. Sinon, le polynôme f estréductible.

Exemple : Le polynôme de F2[x ]f = x4 − 1 est-il irreductible ? même question avec f = x3 − 1.

Théorème

Tout polynôme f ∈ F [x ] peut s’écrire

f = af e11 f e2

2 . . . f ekk ,

où a ∈ F , les fi sont des polynômes irréductibles unitaires de F [x ] et lesexposants ei des entiers positifs. Cette factorisation est unique.

Rappel : Un polynôme unitaire a son coefficient de plus haut degré égal à 1

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 7 / 39

Page 8: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Racine d’un polynôme

Définition

Un élément a est une racine (ou un zéro) du polynôme f si f (a) = 0.

Exercices :Calculer la/les racine(s) dans F2 de x3 − 1Calculer les racines de x2 + 1 dans R, C, F2 puis F3

x3 + x2 + x + 1 a-t-il une racine dans F3 ?Soit P ∈ F2[x ], montrer que si α est une racine de P, alors α2 est aussiune racine de P.Sachant que x3 + x + 1 est un facteur de x7 − 1, factoriser x7 − 1 dans F2

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 8 / 39

Page 9: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Arithmétique modulaire

Exercices : Calculer dans F2

x5 + x3 + x + 1 mod x4 + x + 1(x + 1)(x4 + x3 + 1) mod x4 + x + 1(x3 + x + 1)(x7 + x6 + 1) mod x7 − 1(x3 + x2 + 1)(x4 + x + 1) mod x5 + x + 1xP(x) mod x8 + x4 + x3 + x2 + 1, où P est un polynôme de degré auplus 7Ecrire un algorithme permettant de calculer P(x).Q(x)mod x8 + x4 + x3 + x2 + 1

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 9 / 39

Page 10: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

TP : arithmétique des polynômes binaires

Ecrire une fonction qui calcule la somme et le produit de deux polynômesEcrire une fonction qui calcule le PGCD de deux polynômesEcrire l’algorithme d’Euclide étendu de P et Q avec P et Q quelconques(voir chapitre 2 du handbook, p.82)Ecrire une fonction qui calcule l’inverse de P modulo QEcrire la fonction xtimes qui calcule xP(x) mod x4 + x + 1, pour tout Ptel que deg(P) < 4Ecrire une fonction qui calcule la somme et le produit de deux polynômesP et Q modulo x4 + x + 1, avec deg(P) < 4 et deg(Q) < 4. Est-il facilede généraliser à un modulo quelconque ?

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 10 / 39

Page 11: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Polynômes

Introduction aux codes correcteur d’erreurs

Voir le fichier CodesIntro.pdf surhttp ://pages-perso.esil.univmed.fr/ bonnecaze/Math/Math1.html

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 11 / 39

Page 12: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Corps finis

On connaît les corps de p éléments : Fp

Existe-t-il des corps ayant n éléments, n non premier ?Si c’est le cas

Comment construire ces corps ?Existe-t-il des corps pour tout n ?

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 12 / 39

Page 13: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Construction de corps

Essayons de construire un corps avec des octets...En informatique, on travaille souvent avec des octets (8 bits) plutôt quedes bitsOn sait que F2 est un corpsPeut-on construire un corps dont les élément sont des octets ?L’addition se fait bit à bit ; l’élément neutre est 00000000 et l’opposé d’unoctet est lui-mêmeL’ensemble des octets muni de l’addition forme un groupeEt la multiplication ?

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 13 / 39

Page 14: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Opérations sur les octets

Il faut définir une multiplication sur les octets, tel que tout octet non nuladmette un inverse

On identifie les octets avec des polynômes en x de degré au plus 7On choisit un polynôme f irréductible de degré 8Soit α et β deux octets, alors α · β = γ avec

γ(x) = α(x)β(x) mod f (x)

Ainsi γ est un octet (un polynôme de degré au plus 7)Quel est l’élément neutre multiplicatif ?Tous les éléments ont-ils un inverse ? pourquoi f doit-il être irréductible ?Cette structure est-elle un corps ? quel est son cardinal ?On vient de construire F28 , le corps à 256 éléments !

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 14 / 39

Page 15: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Opérations sur les octets

Focus sur les racines de fChoisissons f (x) = x8 + x4 + x3 + x2 + 1Soit α une racine de f . Alors α8 + α4 + α3 + α2 + 1 = 0Donc α8 = α4 + α3 + α2 + 1α8 peut s’écrire 00011101 dans la base (α7, α6, α5, α4, α3, α2, α, 1)Dans cette base, comment s’écrit α9 ? α10 ?Les combinaisons linéaires des αi se représentent aussi comme desoctetsSoit F := {a0 + a1α+ · · ·+ a7α

7 | ai ∈ F2}(F ,+,0) est un groupe commutatifMontrer que tout élément de F ∗ admet un inverse multiplicatif(F ∗, ·,1) est un groupeDonc (F ,+, ·) est un corps de 28 éléments

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 15 / 39

Page 16: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Construction de Fpm

Soit m un entier positif et f (x) un polynôme irréductible sur Fp de degré m. Onconsidère un élément α satisfaisant f (α) = 0. Posons

Fpm = {a0 + a1α+ · · ·+ am−1αm−1 | ai ∈ Fp},

l’ensemble de tous les polynômes en α de degrés inférieurs à m et àcoefficients dans Fp.On peut alors munir cet ensemble des opérations ” + ” et ” · ”L’opération ” + ” est définie comme l’addition de polynômes dans Fp.L’opération ” · ” est définie comme la multiplication de deux polynômesmodulo f .

Proposition

La structure construite forme un corps de caractéristique p. Tout corps finipeut être construit comme précédemment.Tout corps fini F de caractéristique p admet pm éléments (m > 0)

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 16 / 39

Page 17: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Construction de Fpm

Remarque

Puisque f est irréductible sur Fp, la racine α n’est pas un élément de Fp

α peut être représenté par un m−uplet d’éléments de Fp

Les élément du corps peuvent être représentés par des vecteurs ou despolynômesFpm est appelé une extension de Fp de degré mFp est appelé le corps de baseFpm se note aussi Fp[x ]/(f (x)), avec f irréductibleComment trouver un polynôme irréductible de degré m ?Que se passe-t-il si f est réductible ?

Exercice : Soit p = 2 et f (x) = x3 + x + 1 un polynôme irréductible sur F2.Quel corps peut-on construire ? Comment peut-on représenter les élémentsdu corps ?

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 17 / 39

Page 18: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Construction de F4

Le corps de base est F2

Trouver un polynôme irréductible f de degré 2 dans F2

Soit α une racine de f , calculer α3 et α4

Ecrire les tables d’addition et de multiplicationQuelle est la caractéristique du corps F4 ?Quel est le plus petit corps de caractéristique 2 contenant α ?

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 18 / 39

Page 19: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Eléments primitifs

Soit β ∈ F∗pm

Alors toute puissance de β appartient aussi à F∗pm et comme Fpm est fini, ilexiste un k et un l tel que βk = β l . Cela signifie que βk−l = 1.

Exemple

F = Z11, β = 2. F ? s’écrit

20 21 22 23 24 25 26 27 28 29 210 211

1 2 4 8 5 10 9 7 3 6 1 2

Donc β10 = 1 : β est une racine dixième de l’unité.

DéfinitionL’ordre d’un élément β non nul dans un corps fini est le plus petit entier r ≥ 1tel que βr = 1.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 19 / 39

Page 20: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Eléments primitifs

Théorème de l’élément primitif

Tout corps fini F de taille pm contient un élément β d’ordre pm − 1, appeléélément primitif de F .

CorollaireTout corps fini de taille pm est de la forme

F = {0} ∪ {1, β, β2, . . . , βpm−2}, β ∈ F .

Exemple : F = Z11 = {0} ∪ {1,2,22,23,24,25,26,27,28,29}Un polynôme primitif est un polynôme qui contient une racine primitive. Ilfaut noter que tous les polynômes irréductibles ne sont pas primitifs.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 20 / 39

Page 21: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Polynôme minimal

Théorème

Tout élément β d’un corps F d’ordre pm satisfait βpm= β.

Ainsi, β est racine de xpm= x et

xpm− x =

∏β∈F

(x − β).

DéfinitionLe polynôme minimal sur Fp de β est le polynôme unitaire de plus bas degréM(x) dont les coefficients sont dans Fp tel que M(β) = 0.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 21 / 39

Page 22: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Exercices

Construire le corps F16 en utilisant f (x) = x4 + x + 1Soit α une racine de f , calculer la fonction Zech(r) définie par

αZech(r) = αr + 1

Montrer que si α est une racine de f , alors α2 est aussi une racine de fDéterminer toutes les racines de f

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 22 / 39

Page 23: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Classes cyclotomiques

Les classes cyclotomiques (cyclotomic cosets en anglais) permettent dedéterminer le nombre de facteurs irréductibles de xpm−1 − 1 sur Fp

Théorèmeβ ∈ Fpm et βp ont le même polynôme minimal.

Définition

Soit β ∈ Fpm . Alors les éléments β, βp, . . . , βpm−1sont appelés les conjugués

de β pour le corps Fp.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 23 / 39

Page 24: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Exemple

On considère le corps F16 avec p = 2, m = 4 et β admettant pour polynômeminimal β4 + β + 1. Alors

β est un zéro de x4 + x + 1β2 idemβ4 idemβ8 idemβ16 = β

4 racines distinctes

Finalement, on peut vérifier par le calcul que

x4 + x + 1 = (x − β)(x − β2)(x − β4)(x − β8).

Trouver l’ensemble des conjugués de toutes les racines revient à partitionnerl’ensemble des puissances de β. Le corps F s’écritF = {0} ∪ {1, β, β2, . . . , βpm−2} et l’ensemble des puissances de β est toutsimplement Zpm−1.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 24 / 39

Page 25: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Classes cyclotomiques

DéfinitionSoit a, b ∈ Zpm−1a et b sont dits equivalents (notés a ≡ b) si

b = pia mod (pm − 1)

La relation d’equivalence est reflexive, symétrique et transitive. Cs représenteune classe cyclotomique où s est le plus petit entier de la classe :

{s, sp, sp2, . . . , spms−1},

où ms est l’entier le plus petit tel que pms = s ( mod pm − 1). L’entier s estquelquefois appelé le chef de classe ou en anglais coset leader.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 25 / 39

Page 26: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

Classes cyclotomiques

Exemple

Quelles sont les classes cyclotomiques modulo 15 pour p = 2 ?

ThéorèmeSoit α ∈ Fpm un élément primitif.

M(αs)(x) =∏i∈Cs

(x − αi)

Exercice

Soit α une racine primitive de x4 + x + 1 sur F16.Déterminer les polynômes minimaux de 1,3,5,7.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 26 / 39

Page 27: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Corps

TP

1 Ecrire une fonction qui additionne deux éléments de F16

2 Ecrire une fonction qui multiplie deux éléments de F16

3 Ecrire la fonction LogZech : LogZech(r) = αr + 14 Ecrire une fonction qui calcule l’inverse d’un élément de F16

5 Ecrire une fonction qui détermine les classes cyclotomique modulo n(pour p quelconque)

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 27 / 39

Page 28: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Définition

Les codes cycliques représentent la famille de codes la plus importante. D’unpoint de vue pratique ce sont les codes les plus utilisés car leur mise enœuvre est facile et ils admettent souvent de bons algorithmes de décodage

Définition

Un code linéaire en bloc C de longueur n sur F [x ] est dit cyclique sil’ensemble de ses mots est invariant par décalage circulaire :

(c0, c1, . . . , cn−1) ∈ C ⇒ (cn−1, c0, c1, . . . , cn−2) ∈ C.

Exemple

i) Le code binaire C = {000, 101, 011, 110} est un code cyclique.ii) Le code binaire C = {0000, 1001, 0110, 1111} n’est pas cyclique. Il est

cependant équivalent à un code cyclique (il faut échanger les troisième etquatrième coordonnées).

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 28 / 39

Page 29: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Structure algébrique

Tout mot c = (c0, c1, · · · , , cn−1) d’un code C sur F peut être identifié à unpolynôme c(x) = c0 + c1x + · · ·+ cn−1xn−1 de F [x ].Pour pouvoir construire des codes cycliques, l’anneau à considérer estRn = F [x ]/(xn − 1).Dans Rn, on peut réduire tout polynôme modulo xn − 1 en remplaçantsimplement xn par 1, xn+1 par x et ainsi de suite.

x . c(x) = c0x + c1x2 + · · ·+ cn−1xn

= cn−1 + c0x + c1x2 + · · ·+ cn−2xn−1.

La multiplication par x correspond à un décalage circulaire.La multiplication par xm correspond à m décalages circulaires.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 29 / 39

Page 30: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Polynôme générateur

Définition

Le polynôme générateur g(x) d’un code cyclique C est un polynôme non nulunitaire de plus bas degré de C.

Proposition

Le polynôme générateur est unique (Preuve : par contradiction)

Proposition

Tout mot d’un code cyclique est un multiple du polynôme générateur. On noteC = 〈g〉.Preuve : par contradiction en effectuant la division euclidienne de c par g

Proposition

Le polynôme générateur divise xn − 1.Preuve : On a xn − 1 = ag + r avec deg(r) < deg(g) et on conclut

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 30 / 39

Page 31: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Représentation matricielle

c(x) = a(x)g(x). Puisque deg(c(x)) < n et deg(g(x)) = r , on obtientdeg(a(x)) < n − r .En notation matricielle, on a

c = aG

où c = (c0, . . . , cn−1), a = (a0, . . . ,an−r ) et G est une matrice circulante(n − r)× n dont la ième ligne ligne contient le mot x i−1g

G =

g0 g1 g2 · · · gr 0

g0 g1 · · · gr−1 gr· · · · · ·

0 g0 · · · · · · gr

.Son rang est n − r . G est une matrice génératrice du code qui a dim(C)lignes. Ainsi deg(g) = n − dim(C).

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 31 / 39

Page 32: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Procédure de codage systématique

On veut coder la séquence de longueur k u1,u2, . . . ,uk avec ui ∈ F :

u1 u2 . . . uk

L’idée est de rajouter n − k symboles de manière à obtenir un mot delongueur n qui appartienne au code cyclique C engendré par le polynômegénérateur g.

1 On forme le polynôme

u(x) = u1xn−k + u2xn−k+1 + · · ·+ uk xn−1

La séquence est ainsi décalée de k positions vers la droite :0 . . . 0 u1 u2 . . . uk

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 32 / 39

Page 33: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

2 puis on effectue la division euclidienne par le polynôme générateur g ducode

u(x) = g(x)q(x) + r(x)

avec deg(r) < deg(g) = n − k3 le polynôme c(x) = u(x)− r(x) est un multiple de g(x). Le mot c

appartient donc au code. Si le code est binaire, on ne prend pas encompte les signes et on obtient :

r1 . . . rn−k u1 u2 . . . uk

Il s’agit d’un codage systématique car les symboles de parité (coefficients der(x)) sont séparés des symboles d’information.

ExerciceConstruire un code de longueur 7 sur F2 de dimension 4, sachant quex7 − 1 =

(x3 + x + 1

) (x3 + x2 + 1

)(x + 1)

Puis coder la séquence 1011.

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 33 / 39

Page 34: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Dual d’un code cyclique

Théorème

Soit g le polynôme générateur de C = [n, k ] et h := (xn − 1)/g. Alors lepolynôme générateur de C⊥ est xk h(x−1)

Construction du code de Hamming [7,4]

Soit C = 〈g〉 avec g = x3 + x + 1.Ecrire une matrice génératrice G du codeQuel est le polynôme générateur de C⊥ ?Ecrire une matrice génératrice H du code dual

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 34 / 39

Page 35: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Construction d’un code cyclique

Pour construire un code cyclique de longueur n, il est utile de connaître ladécomposition de xn − 1 en polynômes irréductibles sur le corps de base F :

xn − 1 =∏

i

fi(x).

On détermine les classes cyclotomiques modulo nLa donnée d’un facteur irréductible primitif permet d’obtenir tous lesautres facteursLe polynôme générateur du code est un produit de facteurs

Exercice Combien peut-on construire de codes cycliques [31,21] sur F2 ?

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 35 / 39

Page 36: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Les codes de Hamming

Il s’agit d’une famille de codes de paramètres

[n = 2m − 1, k = n −m,d = 3]

Un code de Hamming Hm peut être défini par sa matrice de contrôle dont lescolonnes sont tous les m−tuples distincts non nuls.

Soit α une racine primitive de F2m , alors 1, α, α2, . . . , α2m−2 sont tous distinctset peuvent être représentés par tous les m−tuples non nuls. Ainsi, la matricede contrôle d’un code de Hamming peut s’écrire

H = [1, α, α2, . . . , α2m−2].

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 36 / 39

Page 37: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Les codes de Hamming

c = (c0, c1, . . . , cn−1) ∈ Hm⇔

HcT = 0⇔∑n−1

i=0 ciαi = 0

⇔c(α) = 0 où c(x) = c0 + c1x + · · ·+ cn−1xn−1.

Donc c ∈ Hm ⇔ M(1)(x) | c(x) et Hm consiste en tous les multiples deM(1)(x).On vient de montrer que Hm est un code cyclique de polynôme générateurg(x) = M(1)(x).

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 37 / 39

Page 38: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

Les codes BCH

DéfinitionUn code BCH sur Fq de longueur n et distance construite δ est le plus grandcode possible ayant comme zéros

βb, βb+1, . . . , βb+δ−2,

où β ∈ Fqm est une racine primitive de l’unité, b un entier positif et m l’ordremultiplicatif de q modulo n.

Il existe deux cas importants :1 b = 1 appelé en anglais narrow-sense BCH code.2 Si n = qm − 1 on parle de code BCH primitif.

Proposition

La distance construite δ est une borne inférieure de la distance minimale d .

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 38 / 39

Page 39: Polytech Marseille, 1er Semestre 2013alexis.bonnecaze.perso.luminy.univ-amu.fr/Math/Cours1011... · 2014. 1. 9. · Polytech Marseille, 1er Semestre 2013 A. Bonnecaze (IML) Mathématiques,

Codes cycliques

TP

Programmer les fonctions suivantes (les codes sont binaires)1 Input : un vecteur x de longueur n. Output : le poids de Hamming de x2 Input : un polynôme générateur, une longueur n. Output : k et d3 Input : matrice de contrôle d’un code [n, k ], un vecteur de longueur n.

Output : le syndrome4 Input : matrice de contrôle du code de Hamming, un vecteur. Output :

position de l’erreur éventuelle5 Input : distance construite δ. Output : degré du polynôme générateur et la

dimension du code de longueur 15

A. Bonnecaze (IML) Mathématiques, Algèbre et Applications 2013 39 / 39