Vous êtes sur la page 1sur 38

Universit e Bordeaux I

Master CSI 2
Ann ee 2004-2005
Cours de codes (UE Codes/Signal)
Christine Bachoc
Bibliography
[1] J.H. van Lint, Introduction to coding theory, 3eme edition, Springer
[2] W. C. Huffman, V. Pless, Fundamentals of error-correcting codes, Cam-
bridge University Press 2003
[3] The handbook of Coding Theory
1
Chapter 1
Introduction
La th eorie des codes sest d evelopp ee pour r epondre au probl` eme de la correc-
tion des erreurs introduites dans un syst` eme de transmission de linformation.
`
A
lorigine d evelopp ee par des ing enieurs en electronique, elle constitue maintenant
une branche des math ematiques discr` etes. Dans le cadre du Master CSI, lobjectif
de ce cours est dinitier les etudiants ` a une autre probl ematique de la transmission
des informations, en insistant sur les applications pratiques, et de d evelopper les
connections de ce sujet avec la cryptographie.
Le support physique utilis e pour transmettre ou stocker une information (par
exemple le t el ephone, latmosph` ere, lespace (penser aux communications par
satellite), mais aussi la m emoire dun ordinateur, les disques compacts, etc..)
soumet cette information ` a des distorsions ind esirables, ou bruit, qui lalt` erent.
Ce bruit peut etre caus e par un rayonnement, une alt eration du support, des in-
terf erences, etc.. Linformation recueillie par le receveur du canal est en g en eral
diff erente de celle emise par la source. Lobjectif de la th eorie des codes est de
prot eger linformation de cet eventuelle alt eration.
En th eorie de linformation, les caract eristiques statistiques du mode de trans-
mission consid er e sont mod elis ees par le canal de transmission. Par exemple, le
canal sym etrique binaire transmet des mots binaires c F
n
2
, o` u chaque bit est
transmis ind ependamment, avec une probabilit e p derreur.
On peut sch ematiser grossi` erement la situation de la facon suivante:
2
An daugmenter la abilit e du canal, cest-` a-dire le taux dinformation cor-
rectement transmise, on peut penser ` a introduire de la r ep etition dans cette in-
formation. Tous les enseignants savent bien que pour transmettre une informa-
tion ` a leurs el` eves, et pour etre s urs que celle-ci na pas et e d enatur ee, il ne faut
pas h esiter ` a la r ep eter aussi souvent que possible. Sur ce beau principe, imagi-
nons que nous voulons envoyer le message binaire suivant : 11111111. Si nous
lenvoyons deux fois, le receveur pourra comparer les deux versions de notre mes-
sage. Si ces deux versions ne sont pas identiques, il peut conclure ` a lexistence
dune erreur au moins dans la transmission. Il faut remarquer ici que cet objectif
est aussi atteint en rajoutant seulement un bit de contr ole de parit e, cest-` a-dire la
valeur de la somme des bits modulo 2. Ici cela donnerait 111111110.
`
A nouveau,
si la somme des bits nest pas 0 modulo 2 ` a larriv ee, on peut conclure ` a lexistence
dune erreur au moins. Il est bon de remarquer que, dans le premier cas, le taux de
transmission du canal, qui est la proportion dinformation utile transmise, est egal
` a 1/2, tandis que dans le second cas, ce taux vaut 8/9. Reprenant lexemple de
la r ep etition, on voit intuitivement que, si le message est r ep et e un grand nombre
de fois, le receveur pourra jeter ` a coup s ur un plus grand nombre de messages
erron es, et avoir une conance plus solide en les messages qui ont lair corrects.
Un nouveau ph enom` ene apparait m eme: si le message est r ep et e r fois, et que ces
r copies ne sont pas toutes identiques, le receveur peut opter pour la version du
message la plus souvent recue.
1.1 Le canal sym etrique binaire et la th eorie de Shan-
non
Le canal sym etrique binaire (BSC) transmet des mots binaires de longueur n, ap-
partenant ` a un code C F
n
2
. On suppose que les bits sont transmis ind ependamment,
et que un bit est transmis correctement avec probabilit e 1p, incorrectement avec
probabilit e p. On suppose p < 1/2 et dans la pratique p est petit. (Sch ema). On
suppose egalement que les mots de C sont equiprobables.
Notons c la variable al eatoire repr esentant le mot transmis, y la variable al eatoire
repr esentant le mot recu. On a:
3
prob(y | c) =
n

i=1
prob(y
i
| c
i
) = (1 p)
card{i|y
i
=c
i
}
p
card{i|y
i
=c
i
}
= (1 p)
n
_
p
1 p
_
card{i|y
i
=c
i
}
Un d ecodeur par maximum de vraisemblance choisit de renvoyer le mot c qui
maximise c C prob(y | c). Comme p/(1 p) < 1, maximiser prob(y | c)
revient ` a minimiser card{i | y
i
= c
i
}. Ainsi, le d ecodeur renvoi un mot du code
qui diff` ere de y sur le moins de coordonn ees.
On voit apparaitre ici la notion de distance de Hamming entre deux mots:
d
H
(c, y) = card{i | y
i
= c
i
}.
Le taux de transmission dun code C est par d enition R = log(|C|)/n. Il
mesure la quantit e dinformation utile transmise. On pourrait penser que la a-
bilit e de la transmission ne peut etre obtenue quau d etriment de ce taux de trans-
mission. En fait il nen est rien, comme la montr e Shannon en 1948.
`
A tout canal est associ e une valeur, appel ee capacit e. Sans entrer dans les
d etails, la capacit e du canal BSC est C(p) = 1 +p log p +(1 p) log(1 p). Soit
P
err
la probabilit e derreur, cest-` a-dire la moyenne des probabilit es que c = c.
Th eor` eme 1 (Shannon, 1948) Soit R < C(p) et soit > 0. Pour n assez grand,
il existe des codes C F
n
2
de taux de transmission egal ` a R, et tels que P
err
< .
Le th eor` eme de Shannon, que nous ne d emontrerons pas ici, laisse entiers deux
probl` emes majeurs: Dabord il est purement existentiel, il ne r epond donc pas ` a
la question de la construction effective de tels codes; ensuite, il ne prend pas en
compte le probl` eme algorithmique, qui est surtout celui de r ealiser un d ecodage
efcace.
4
Chapter 2
Codes, Codes lin eaires, g en eralit es
Dans ce chapitre, nous allons etudier les codes lin eaires sur un corps ni F
q
.
M eme si lon ne sint eresse ultimement quaux codes binaires, il est n ecessaire de
consid erer dans certaines constructions des codes sur des corps nis plus g en eraux,
cest pourquoi nous nous placons dembl ee dans ce cadre plus g en eral (mais pas
plus difcile..).
Pour linstant, les seules choses ` a savoir sur les corps nis sont les suivantes:
si p est un nombre premier, il existe un unique (` a isomorphisme pr` es) corps ni ` a p
el ements qui est Z/pZ muni des op erations usuelles. Pour un entier q quelconque,
il existe un corps ni ` a q el ements si et seulement si q est une puissance dun
nombre premier p, soir q = p
r
; dans ce cas il est unique (` a isomorphisme pr` es), il
contient un unique sous-corps isomorphe ` a F
p
= Z/pZ, sur lequel il est un espace
vectoriel de dimension r.
2.1 Poids et distance de Hamming
Introduites par Hamming en 1950, ces notions sont fondamentales comme on la
vu pour estimer lefcacit e dun code dans le cadre dun canal o` u les variables
al eatoires d enies par les coordonn ees sont ind ependantes et egales.
D enition 1 Soit x = (x
1
, . . . , x
n
) F
n
q
. Le poids de Hamming de x, not e wt(x)
est egal au nombre de coordonn ees non nulles de x.
wt(x) := card{i : 1 i n | x
i
= 0}.
Soit x, y F
n
q
. La distance de Hamming de x et y, not ee d
H
(x, y) est egale
au nombre dindices i o` u les coordonn ees de x et y diff` erent.
5
d
H
(x, y) = wt(x y) := card{i : 1 i n | x
i
= y
i
}.
.
le support dun el ement x F
n
q
est lensemble des indices i tels que x
i
= 0.
Le poids de x est donc le cardinal de son support.
Il faut remarquer que la distance de Hamming, est une vraie distance au sens
m etrique du terme. Rappelons bri` evement les propri et es dune distance d(x, y),
faciles ` a v erier sur d
H
.
d(x, y) = 0 x = y
d(x, y) = d(y, x)
d(x, z) d(x, y) +d(y, z)
La boule de centre x et de rayon R est par d enition lensemble
B(x, R) := {y : y F
n
q
| d(x, y) R}.
On peut remarquer que y B(x, R) y x B(0, R).
Exercice: Montrer que card(B(x, R)) =

R
k=0
_
n
k
_
(q 1)
k
.
D enition 2 Un code C de longueur n est un sous-ensemble de F
n
q
. La distance
minimale de C, not ee d(C), est le minimum des distances entre deux el ements
distincts de C.
d(C) = min
x,yC,x=y
d
H
(x, y).
Proposition 1 Notons t = [
d1
2
]. Les boules B(x, t) avec x C sont deux ` a deux
disjointes, et t est la valeur maximale du rayon pour cette propri et e.
.
Supposons que lon utilise un code C pour la transmission de mots de F
n
q
, de
distance minimale d. On note c un mot transmis et y le mot recu, avec e = y c.
Un d ecodeur peut op erer de la facon suivante. Si y appartient ` a lune des boules
B(z, t) avec z C, il renvoi c = z. Sinon, il renvoi un message derreur (variante:
il renvoi un des mots les plus proches mais pas unicit e). On voit que c = c d` es
que y / B(c, t). Alors:
6
P
err
=

cC
prob(c) prob(wt(e) > t)
=
1
|C|

eF
n
2
,wt(e)>t
(1 p)
n
_
p
1 p
_
wt(e)
=
(1 p)
n
|C|
n

w=t+1
_
p
1 p
_
w
_
n
w
_
(q 1)
w
et on voit que P
err
diminue lorsque t augmente. En clair, ` a cardinal x e, on
cherche un code avec d aussi grand que possible.
On dit que C d etecte d 1 erreurs et corrige t = [(d 1)/2] erreurs.
2.2 Codes lin eaires
Dans notre etude des codes contenus dans F
n
q
, nous allons nous concentrer sur les
codes lin eaires, cest-` a-dire ceux qui ont une structure despaces vectoriels. En ef-
fet, les outils de lalg` ebre lin eaire facilitent dans ce cas les op erations dencodage
et de d ecodage, comme nous le verrons. De plus, il a et e d emontr e que le r esultat
(non constructif) de Shannon reste vrai si lon se restreint aux codes lin eaires.
Nous voil` a donc rassur es, on peut en principe etre tout aussi efcace dans la cor-
rection de linformation avec des codes lin eaires..
D enition 3 Un code est dit lin eaire si C est un F
q
-sous espace vectoriel de F
n
q
.
Dans ce cas, on note k sa dimension.
Si C est lin eaire, on peut remarquer que, si x et y sont dans C, alors x y
appartient egalement ` a C. Comme d
H
(x, y) = wt(x y), la distance minimale
de C est egale au minimum des poids des el ements non nuls de C. On a:
d(C) = wt(C) = min{wt(x), x C \ {0}}.
Dun point de vue algorithmique, le calcul de la distance dun code quel-
conque n ecessite |C|
2
op erations, tandis que pour un code lin eaire il nen faut
que |C| (environ).
Si C est un code lin eaire, longueur, dimension et distance sont les param` etres
fondamentaux de C et sont not es [n, k, d].
7
2.3 Orthogonalit e
Nous introduisons une notion dorthogonalit e sur lespace F
n
q
avec la forme bilin eaire
symm etrique non d eg en er ee x y =

n
i=1
x
i
y
i
.
Lorsque F
q
= F
2
, on identie souvent un mot de F
n
2
avec son support. La
notation xy d esigne donc le mot de support lintersection des supports respectifs
de x et y. On a alors:
x y = wt(x y) mod 2
En particulier, x x = wt(x) mod 2.
wt(x +y) = wt(x) +wt(y) 2wt(x y)
Parfois on consid` ere dautres formes que celle d enie plus haut. Un cas impor-
tant est celui de F
q
= F
4
. Rappelons que F
4
= {0, 1, w, w
2
}, o` u w
2
+w + 1 = 0.
Sur ce corps, lapplication x x
2
est un automorphisme de corps, qui d enit
une involution encore appel ee conjugaison. On note aussi x = x
2
. Il est usuel de
consid erer sur F
n
4
la forme hermitienne x y =

n
i=1
x
i
y
i
.
2.4 Matrice g en eratrice, de contr ole de parit e
D enition 4 Soit C un code lin eaire de longueur n et de dimension k. Une ma-
trice g en eratrice de C est une matrice k n dont les lignes forment une base
de C. Le code dual du code C est lorthogonal C

de C pour la forme usuelle


x y =

n
i=1
x
i
y
i
.
C

:= {u : u F
n
q
| u v = 0 pour tout v C}.
Une matrice de cont ole de parit e de C est une matrice (n k) n g en eratrice de
C

. Un code est dit autodual sil est egal ` a son dual.


Proposition 2 Soit C un code lin eaire, de longueur n et de dimension k, soit G
une matrice g en eratrice de C et soit H une matrice de contr ole de parit e de C.
alors:
x C Il existe u F
k
q
| x = uG
x C Hx
t
= 0
8
C contient un mot de poids au plus w, ssi w colonnes de H sont lin eairement
d ependantes.
Remarque 1 Ainsi, un code C est de poids d si et seulement si, il existe d colonnes
de sa matrice de contr ole de parit e lin eairement d ependantes, tandis que d 1
colonnes quelconques sont ind ependantes. cette remarque est ` a la base du pro-
cessus de construction des codes de Hamming, que nous verrons au paragraphe
suivant.
Proposition 3 Soit C un code lin eaire de matrice g en eratrice G. Supposons que
G soit de la forme dite canonique ou syst ematique G = [I
k
| A]. Alors une
matrice de contr ole de parit e est H = [A
t
| I
nk
].
2.5

Equivalence de codes
Soit S
n
le groupe des permutations de lensemble {1, 2, . . . , n}. Ce groupe op` ere
sur F
n
q
par permutation des coordonn ees:
S
n
, (x
1
, . . . , x
n
)

:= (x
(1)
, . . . , x
(n)
).
Exercice: Montrer que (x

= x

.
Toutes les notions introduites sont invariantes par permutation: ainsi, wt((x)) =
wt(x), (x) (y) = s y, d
H
((x), (y)) = d
H
(x, y), etc.. Si un code C
1
est
limage dun code C
2
par une permutation , bien que distincts, ces codes auront
les m emes propri et es relativement au probl` eme de la correction de linformation.
Pour cette raison, on etudie en g en eral les codes ` a permutation pr` es.
`
A toute permutation , on associe une matrice M

qui est la matrice de la


transformation lin eaire de F
n
q
associ ee ` a . Cest une matrice n n, dont toutes
les entr ees sont nulles, sauf les ((i), i) o` u elles sont egales ` a 1. On a:
x

= xM

.
Si C est un code lin eaire de matrice g en eratrice G, C

est encore un code


lin eaire, de matrice g en eratrice GM

. Celle-ci est obtenue ` a partir de G par per-


mutation, suivant , des colonnes de G.
Proposition 4 (et d enition.) Soit C
1
, C
2
deux codes lin eaires de matrices g en eratrices
respectivement G
1
et G
2
. On dit que les codes C
1
et C
2
sont equivalents sil existe
9
une permutation telle que C
2
= C

1
. Cela est equivalent ` a demander quil existe
une matrice de permutation M

et une matrice k k P ` a coefcients dans F


q
et
inversible telles que
G
2
= PG
1
M

.
On utilise aussi la notion d equivalence monomiale. Deux codes sont dit
monomialement equivalents sils sont echang es par une tranformation monomi-
ale, o` u une transformation monomiale est une transformation du type
(x
1
, . . . , x
n
) (a
1
x
(1)
, . . . , a
n
x
(n)
),
avec, pour tout i, a
i
F

q
.
Exercice: Quelles notions sont invariantes par transformation monomiale, et quelles
notions ne le sont pas ? Quelle est la matrice dune transformation monomiale ?
Montrer que lensemble des transformations monomiales forme un groupe, iso-
morphe au produit semi-direct (F

q
)
n
S
n
. Quel est son cardinal ?
D enition 5 Lensemble des permutations S
n
telles que (C) = C forme un
groupe, appel e le groupe des permutations (ou le groupe des automorphismes) du
code C, et not e Aut(C).
2.6 Les codes de Hamming
Dans ce paragraphe, on construit une famille de codes qui ont pour propri et e de
corriger une erreur. En vertu de la Proposition 2 et de la remarque qui la suit, on
doit donc construire des matrices de contr ole de parit e H telles que deux colonnes
ne soient pas lin eairement d ependantes. Si r est le nombre de lignes de H, ces
colonnes appartiennent ` a F
r
q
, doivent donc etre non nulles, et on doit en choisir
au plus une par droite de F
r
q
. Le nombre maximum de colonnes est donc (q
r

1)/(q 1).
D enition 6 On note H(q, r) et on appelle code de Hamming sur F
q
dordre r le
code d eni (` a equivalence monomiale pr` es) par la matrice de contr ole de parit e
dont les colonnes d ecrivent lensemble F
r
q
\ {0} modulo F

q
(i.e. lespace projectif
de dimension r 1).
10
Exemple: : Pour q = 2 et r = 3, on obtient pour matrice de contr ole de parit e
H =
_
_
1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 1 0 1 1 1
_
_
.
Une matrice g en eratrice de H(2, 3) est donc
G =
_
_
_
_
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 1
_
_
_
_
.
Le code H(2, 3) a pour param` etres [7, 4, 3] et son dual [7, 3, 4].
Proposition 5 1. Le code H(q, r) est de longueur n = (q
r
1)/(q 1), de
dimension n r et de distance minimal 3.
2. Cest un code parfait, cest-` a-dire
xH(q,r)
B(x, 1) = F
n
q
.
3. Son dual H(q, r)

est un code simplexe, cest-` a-dire tous ses mots non nuls
sont de m eme poids. La valeur commune de leur poids est q
r1
.
Preuve: Le point 1. est d ej` a d emontr e. Notons que le poids 3 est bien atteint
puisque toutes les droites sont repr esent ees. Les boules B(x, 1) sont disjointes et
on a vu que card(B(x, 1)) = 1 +
_
n
1
_
(q 1) = 1 + n(q 1) = q
r
. On a donc:
card(
xH(q,r)
B(x, 1)) = card(H(x, r))q
r
= q
nr
q
r
= q
n
.
Comme q
n
est pr ecis ement le cardinal de F
n
q
, on en d eduit l egalit e des ensembles.
Notons H la matrice de contr ole de parit e de H(q, r) d ecrite plus haut. Un
mot de H(q, r)

est de la forme x = uH o` u u parcourt F


r
q
. Notons c
1
, . . . , c
n
les
colonnes de H. Alors x = (u c
1
, . . . , u c
n
). On sait que les c
i
parcourent F
r
q
\{0}
modulo F

q
; dautre part, u c = 0 si et seulement si u c = 0 pour F

q
. Donc:
wt(u) = card{c F
r
q
| u c = 0}/(q 1).
Si u est non nul, ce cardinal vaut q
r1
(q 1) (en effet, un hyperplan de F
r
q
a
q
r1
el ements donc son compl ementaire en a q
r
q
r1
= q
r1
(q 1). Donc
wt(u) = q
r1
.
11
La proc edure de d ecodage des codes de Hamming est tr` es simple. Soit y F
n
q
;
on garde les notations pr ec edentes. Pour trouver le mot x H(q, r) le plus proche
de y, il suft de:
Calculer s := Hy
t
.
Si s = 0, retourner x = y.
Si s = 0, chercher lindice i tel que s = c
i
.
Remplacer y
i
par y
i
, et retourner x = y.
Preuve: : Notons
i
le mot dont les coordonn ees sont toutes nulles sauf la i-` eme
qui vaut 1. Clairement, on a Hy
t
= H(
i
)
t
. Donc x := y
i
appartient ` a
H(q, r) et est ` a distance 1 de y. Remarquons quon trouve toujours un indice i
convenable, puisque toutes les droites de F
r
q
sont repr esent ees dans les colonnes.
Cest donc une autre facon de voir que ce code est parfait.
2.7 Distribution des poids dun code.
D enition 7 La distribution des poids dun code C lin eaire est le n-uplet
(A
0
, A
1
, . . . , A
n
), o` u A
i
est egal au nombre des mots de C de poids i. En parti-
culier, A
0
= 1 et

i
A
i
= q
k
, o` u k est la dimension de C.
Exercice: Montrer que deux codes equivalents, et m eme monomialement equiva-
lents, ont m eme distribution des poids.
D enition 8 Soit C un code binaire. On dit que C est un code pair si tous les
mots de C ont un poids de Hamming pair.
On dit que C est un code doublement pair si tous les mots de C ont un poids
de Hamming divisible par 4.
Proposition 6 Si C est un code binaire tel que C C

, alors C est un code pair.


Si C est un code binaire tel que C C

, et poss edant une base de mots de


poids divisibles par 4, alors C est un code doublement pair.
12
Preuve: Si C C

, alors pour tout x C, x x = 0. Mais wt(x) x x


mod 2, donc wt(x) 0 mod 2. Si, en outre, C a une base de mots de poids
divisibles par 4, alors tous les mots de C sont bien divisibles par 4 ` a cause de la
relation wt(x +y) = wt(x) +wt(y) 2wt(x y).
Exercice: Montrer quun code peut etre pair sans v erier C C

. Par contre,
montrer que, si C est doublement pair, alors C v erie C C

.
Montrer que le code de Hamming etendu est un code doublement pair.
On peut se demander sil existe une relation entre la distance minimale dun
code, et celle de son dual. En fait, la distance du code dual d epend non seulement
de la distance minimale du code, mais aussi de toute sa distribution des poids,
comme le montre la formule de MacWilliams. Cette formule dit que la distribution
des poids de C

sexprime lin eairement en fonction de celle de C. Elle est une


cons equence de la formule de Poisson discr` ete que nous rappelons maintenant.
Th eor` eme 2 (Formule de Poisson) Soit f : F
n
q
A une application de F
n
q
dans
un C-module A. Soit

f : F
n
q
A d enie par:

f(v) =

uF
n
q
(v, u)f(u), o` u
(v, u) =
trace
F
q
/F
p
(vu)
p
. Alors

uC

f(u) =
1
|C|

vC

f(v).
Preuve: On a

vC

f(v) =

vC
(

uF
n
q
(v, u)f(u)) (2.1)
=

uF
n
q
f(u)(

vC
(v, u)). (2.2)
Lapplication v (v, u) est un caract` ere du groupe C, et on utilise les propri et es
dorthogonalit e des caract` eres pour conclure que

vC
(v, u) = 0 si u / C

, et
= |C| sinon.
Th eor` eme 3 (et d enition). Le polyn ome enum erateur des poids dun code C de
longueur n sur F
q
est le polyn ome homog` ene en deux variables x et y, de degr e
n, d eni par:
13
W
C
(x, y) =

uC
x
nwt(u)
y
wt(u)
.
On a (formule de MacWilliams):
W
C
(x, y) =
1
|C|
W
C
(x + (q 1)y, x y).
Preuve: On applique la formule de Poisson ` a la fonction f(u) = x
nwt(u)
y
wt(u)
.
Il faut calculer

f.

f(v) =

uF
n
q
(v, u)x
nwt(u)
y
wt(u)
(2.3)
=

uF
n
q
n

i=1
(v
i
, u
i
)x
1wt(u
i
)
y
wt(u
i
)
(2.4)
=
n

i=1

aF
q
(v
i
, a)x
1wt(a)
y
wt(a)
(2.5)
=
n

i=1
((v
i
, 0)x + (

a=0
(v
i
, a))y) (2.6)
et on utilise

a=0
(v
i
, a) = q 1 si v
i
= 0, = 1 sinon. On obtient:

f(v) = (x + (q 1)y)
nwt(v)
(x y)
wt(v)
. (2.7)
Exemple: On a vu que le code H(q, r)

est un code dont tous les mots non nuls


sont de poids q
r1
. Son polyn ome enum erateur des poids est donc
W
H(q,r)
(x, y) = x
n
+ (q
r
1)x
nq
r1
y
q
r1
.
La formule de MacWilliams nous permet donc de calculer W
H
(q, r):
W
H(q,r)
(x, y) =
1
q
r
_
(x+(q 1)y)
n
+
(q
r
1)(x + (q 1)y)
nq
r1
(x y)
q
r1
_
.
14
Pour q = 2, on obtient:
W
H(2,r)
(x, y) =
1
2
r
(x +y)
2
r1
1
_
(x +y)
2
r1
+ (2
r
1)(x y)
2
r1
_
et, pour q = 2 et r = 3,
W
H(2,3)
(x, y) = x
7
+ 7x
4
y
3
+ 7x
3
y
4
+y
7
.
2.8 Quelques constructions standards.
Des constructions standards permettent de fabriquer de nouveaux codes ` a partir
danciens. Dans ce paragraphe, on d ecrit quelques-unes de ces constructions.
Extension par parit e: Soit C un code de longueur n et de dimension k. On
rajoute une coordonn ee aux mots du code, de sorte que la somme des coordonn ees
dun mot du nouveau code egale z ero. Le nouveau code est donc de longueur n+1
et de m eme dimension. Dans le cas binaire, cette construction est particuli` erement
int eressante si le code de d epart a une distance impaire d, car alors le code etendu
est de distance d + 1.
Exemple: Le code de Hamming etendu H(2, 3)
e
xt est un code de param` etres
[8,4,4]. Il est de plus autodual.
Somme orthogonale: Soit C
1
et C
2
deux codes de param` etres respectifs [n
1
, k
1
, d
1
]
et [n
2
, k
2
, d
2
]. On d enite C
1
C
2
:= {(x, y) : x C
1
, y C
2
}. Alors claire-
ment, ce code a pour param` etres [n
1
+n
2
, k
1
+k
2
, min(d
1
, d
2
)].
Somme: La pr ec edente construction ne doit pas etre confondue avec la somme
dans F
n
q
. Si C
1
et C
2
sont deux codes de longueur n sur F
q
, on d enit C
1
+C
2
:=
{x +y : x C
1
, y C
2
}. Le dual de ce code est lintersection des codes duaux.
2.9 Encodage et d ecodage, les classes dun code li-
n eaire.
Lavantage des codes lin eaires pour la transmission dinformation est multiple.
Dune part, il suft de stocker une matrice g en eratrice du code pour connatre
tous ses el ements. Dautre part, lencodage des mots de F
n
q
est tr` es facile ` a met-
tre en oeuvre ` a partir dune matrice g en eratrice G, puisque il suft deffectuer
15
lop eration uG, si u = (u
1
, . . . , u
k
) est le mot ` a transmettre. On peut remar-
quer que, si G est sous forme canonique, v = uG a ses k premi` eres coordonn ees
egales ` a celles de u. A partir dun mot du code il est donc tr` es facile de revenir au
message initial.
En ce qui concerne le d ecodage, la situation est plus compliqu ee. On sint eresse
ici au d ecodage par maximum de vraisemblance, qui consiste, pour un el ement
w F
n
q
, ` a trouver un el ement du code ` a plus petite distance de w.
D enition 9 Les classes dun code C de longueur n sur F
q
sont les ensembles
x + C, o` u x F
n
q
. Si k est la dimension de C, il y a q
nk
classes distinctes.
Le poids, ou la distance minimale dune classe diff erente de C est wt(x + C) :=
min{wt(y) : y x +C}.
Le rayon de recouvrement du code C est le maximum des poids des classes.
Cest le plus petit entier tel que les boules de centres les mots du code et de
rayon recouvrent F
n
q
:
F
m
q
=
xC
B(x, ).
Un code est dit parfait si son rayon de recouvrement est egal ` a t := [(d
1)/2], o` u d est sa distance minimale (clairement il est toujours sup erieur..). Dans
ce cas, les boules forment une partition de lespace F
n
q
.
Proposition 7 Soit C un code de distance minimale d et soit t := [(d 1)/2].
Alors les ensembles x +C, pour x F
n
q
avec 1 wt(x) t sont tous distincts.
Soit w F
n
q
et soit H une matrice de contr ole de parit e de C. le vecteur w
appartient ` a la r eunion des boules de centre les mots du code et de rayon t, si et
seulement si Hw
t
appartient ` a lensemble {Hx
t
: 1 wt(x) t}. Dans ce cas,
si Hw
t
= Hx
t
, alors w se d ecode en w x.
Exemple: Le code de Hamming binaire de param` etres [7, 4, 3]. On a t = 1, et
2
74
= 7+1. Les classes de ce code sont donc C lui-m eme, plus les x+C avec C
de poids 1. Si on note e
i
l el ement de F
7
2
dont toutes les coordonn ees sont nulles
sauf la i-` eme qui vaut 1, He
t
i
est simplement la i-` eme colonne de H.
16
Chapter 3
Codes cycliques
Dans ce chapitre, nous allons etudier une famille de codes particuli` ere, les codes
cycliques. Nous allons voir quavec un peu dalg` ebre, ils peuvent etre analys es
facilement. En particulier, nous allons g en eraliser la construction des codes de
Hamming, faits pour corriger une erreur, en imposant de corriger un nombre
derreurs x e ` a lavance. Ce sont les codes BCH, qui en outre poss` edent un bon
algorithme de d ecodage. Ces codes sont tr` es utilis es pour la correction derreurs.
3.1 Codes cycliques: g en eralit es
On d enit la fonction d ecalage sur F
n
q
, qui est une permutation circulaire des
coordonn ees:
F
n
q
F
n
q
s : (c
0
, c
1
, . . . , c
n1
) (c
n1
, c
0
, c
1
, . . . , c
n2
)
D enition 10 Soit C un code lin eaire sur F
n
q
. On dit que C est cyclique si s(C) =
C.
En tant que transformation de F
n
q
, s v erie bien s ur s
n
= Id, et s est dordre n.
On v erie facilement que, si C est cyclique, C

est aussi cyclique. Un exemple


tr` es simple de code cyclique est le code de contr ole de parit e.
La propri et e d etre cyclique pour un code sinterpr` ete tr` es bien en termes de
polyn omes. On associe ` a un mot c = (c
0
, c
1
, . . . , c
n1
) un polyn ome, not e c(x):
c(x) = c
0
+c
1
x + +c
n1
x
n1
. On consid` ere lapplication compos ee :
17
F
n
q
F
q
[x] F
q
[x]/(x
n
1)F
q
[x]
: c c(x) c(x) mod x
n
1
Lapplication est un isomorphisme de F
q
-espaces vectoriels.
Proposition 8 Un code lin eaire C est cyclique si et seulement si (C) est un id eal
de lanneau R
n
:= F
q
[x]/(x
n
1)F
q
[x].
Preuve: Dans R
n
, la multiplication par x correspond ` a la permutation circulaire
des coefcients. Ainsi, pour tout u F
n
q
, (s(u)) = x(u); un code C est stable
par s si et seulement si x(C) = (C). Comme dautre part un code lin eaire est
aussi un F
q
-espace vectoriel, il est stable par s si et seulement si son image par
est un id eal de R
n
.
Il reste ` a etudier la structure des id eaux de R
n
. Dans ce but, on supposera
toujours que n est premier ` a p = car(F
q
). En effet, sous cette hypoth` ese, le
polyn ome x
n
1 na que des racines simples.
Dautre part, on identiera dans la suite un el ement c de F
n
q
et le polyn ome
c(x) qui lui est associ e.
Th eor` eme 4 Soit C un code cyclique sur F
q
. Il existe un unique polyn ome g(x)
F
q
[x] tel que:
1. C = g(x)R
n
mod x
n
1
2. g(x) divise x
n
1
De plus, g(x) est le polyn ome unitaire de plus petit degr e de C; si deg(g) = k,
alors dim(C) = n k et une base de C est: {g(x), xg(x), . . . , x
nk1
g(x)}. Ce
polyn ome est appel e polyn ome g en erateur du code.
Preuve: Les id eaux de R
n
sont en bijection avec les id eaux de F
q
[x] qui conti-
ennent x
n
1. Dautre part, les id eaux de F
q
[x] sont principaux, et g(x)F
q
[x]
contient x
n
1 si et seulement si g(x) divise x
n
1.
Soit D C le F
q
-espace vectoriel engendr e par {g(x), xg(x), . . . , x
nk1
g(x)}.
Clairement, D est de dimension n k, car ces el ements sont triangulaires sur
{1, x, . . . , x
n1
}. Il reste ` a montrer que D est egal ` a C, et pour cela, que les
18
x
u
g(x) mod x
n
1 pour u n k sont dans D. On effectue la division eucli-
dienne de x
u
g(x) par x
n
1 (dans F
q
[x] bien s ur). Il existe des polyn omes q et r,
qvec deg(r) < n, tels que
x
u
g(x) = (x
n
1)q(x) +r(x).
Comme g(x) divise x
n
1, g(x) divise aussi r(x).

Ecrivons r(x) = g(x)r
1
(x);
on a deg(r
1
) < nk et x
u
g(x) = g(x)r
1
(x) mod x
n
1 ce qui montre bien que
x
u
g(x) appartient ` a D.
La matrice g en eratrice de C associ ee ` a la base mise en evidence dans le
th eor` eme pr ec edent a une forme bien particuli` ere: si g = g
0
+g
1
x + +g
k
x
k
,
G =
_
_
_
_
_
_
_
g
0
g
1
. . . g
k
0 . . . . . . 0
0 g
0
g
1
. . . g
k
0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 . . . . . . g
0
g
1
. . . g
k
_
_
_
_
_
_
_
Quelques propri et es el ementaires laiss ees en exercice:
1. C
1
C
2
ssi g
2
divise g
1
2. C
1
C
2
correspond au polyn ome ppcm(g
1
, g
2
)
3. C
1
+C
2
correspond au polyn ome pgcd(g
1
, g
2
)
4. C

a pour polyn ome g en erateur le polyn ome r eciproque de g: x


deg(g)
g(1/x).
Exemple: Les codes cycliques de longueur 7 sur F
2
. x
7
1 = (x 1)(x
3
+ x +
1)(x
3
+x
2
+ 1). Dimensions, distance minimales? nombre?
D enition 11 Soit C un code cyclique de longueur n sur F
q
, engendr e par le
polyn ome g(x). Soit une racine primitive n-i` eme de lunit e dans une cl oture
alg ebrique de F
q
. Lensemble des z eros de C est lensemble
Z(C) := {
i
| g(
i
) = 0}.
19
Remarquons que la plus petite extension de F
q
qui contienne est F
q
r . o` u r
est le plus petit entier tel que n divise q
r
1.
Puisque g(x) appartient ` a F
q
, le Frobenius
q
, d eni par
q
(x) = x
q
op` ere sur
les racines de g. Il s epare lensemble Z(C) en orbites, correspondant au diff erents
polyn omes minimaux sur F
q
.
D enition 12 Les classes cyclotomiques modulo n sont les ensembles
C(k) := {kq
i
mod n}.
Elles forment une partition de lensemble {0, 1, 2, . . . , n 1}.
Le polyn ome minimal de
k
sur F
q
est egal ` a P

k =

iC(k)
(x
i
).
Il est clair quun polyn ome g en erateur dun code cyclique de longueur n est
le produit dun certain nombre de ces polyn omes minimaux. Un code cyclique de
longueur n sur F
q
est donc d etermin e par un ensemble de classes cyclotomiques
modulo n. On va voir que ces classes d eterminent une borne inf erieure pour la
distance minimale du code.
3.2 Codes BCH
On xe d esormais une racine primitive n-i` eme de lunit e dans une cl oture
alg ebrique de F
q
.
Th eor` eme 5 (de la borne BCH) Soit C un code cyclique de longueur n sur F
q
.
Si Z(C) contient 1 puissances successives de , i.e. sil existe b tel que
{
b
,
b+1
, . . . ,
b+2
} Z(C), alors d(C) .
Preuve: Tout dabord, on remarque que lensemble Z(C) permet de caract eriser
les el ements de C, de la facon suivante:
Lemme 1 Soit c = (c
0
, c
1
, . . . , c
n1
) F
n
q
. On a: c C ssi c(
i
) = 0 pour tout

i
Z(C).
Preuve: Les el ements de C sont les c(x) = g(x)h(x) mod x
n
1. Donc, si
g(
i
) = 0, on a aussi c(
i
) = 0. R eciproquement, si c(
i
) = 0 pour tout
i

Z(C), il est clair que g(X) divise c(X) puisque les z eros de g sont simples.
20
On peut traduire cette condition matriciellement. Soit
Z(C) := {
i
1
, . . . ,
i
s
}
et soit P la matrice ` a s lignes et n colonnes:
P :=
_
_
_
1
i
1
(
i
1
)
2
. . . (
i
1
)
n1
.
.
.
.
.
.
.
.
. . . .
.
.
.
1
i
s
(
i
s
)
2
. . . (
i
s
)
n1
_
_
_
On a:
P
_
_
_
c
0
.
.
.
c
n1
_
_
_
=
_
_
_
c(
i
1
)
.
.
.
c(
i
s
)
_
_
_
donc
c C P
_
_
_
c
0
.
.
.
c
n1
_
_
_
=
_
_
_
0
.
.
.
0
_
_
_
.
Notons que P nest pas tout ` a fait une matrice de contr ole de parit e de C,
car ses coefcients ne sont pas ` a priori dans F
q
. Malgr e cela, comme dans la
Proposition 2, les mots de C correspondent ` a des combinaisons lin eaires nulles de
ses colonnes. Ainsi:
C contient un mot non nul de poids 1 P contient 1 colonnes li ees.
Fixons donc 1 colonnes, associ ees aux puissances j
1
, j
2
, . . . , j
1
. On
extrait de ces 1 colonnes les lignes associ ees aux 1 puissances successives
de appartenant ` a Z(C). On se retrouve avec la matrice carr ee de taille 1
suivante:
A =
_
_
_
_
_
(
b
)
j
1
(
b
)
j
2
. . . (
b
)
j
1
(
b+1
)
j
1
(
b+1
)
j
2
. . . (
b+1
)
j
1
.
.
.
.
.
. . . .
.
.
.
(
b+2
)
j
1
(
b+2
)
j
2
. . . (
b+2
)
j
1
_
_
_
_
_
.
21
Le d eterminant de cette matrice vaut
det(A) = (
b
)
j
1
(
b
)
j
2
. . . (
b
)
j
1

1 1 . . . 1

j
1

j
2
. . .
j
1
.
.
.
.
.
. . . .
.
.
.
(
2
)
j
1
(
2
)
j
2
. . . (
2
)
j
1

=
bj
1
+bj
2
++bj
1

1k<ls
(
j
k

j
l
)
par la formule de Van der Monde. Comme ce d eterminant est non nul, on peut
conclure que les 1 colonnes sont lin eairement ind ependantes, et donc que C
ne contient pas de mot non nul de poids inf erieur ou egal ` a 1.
D enition 13 Un code BCH de distance prescrite est un code cyclique, de
longueur n sur F
q
, engendr e par le polyn ome:
g(x) = ppcm(P

b+i | 0 i 2)
o` u P

j est le polyn ome minimal de


j
sur F
q
.
Si b = 1, on lappelle code BCH au sens restreint. Le poids minimal dun code
BCH de distance prescrite est au moins egal ` a .
Exemple: Prenons q = 2, et = 3. On a P

= P

2 puisque
2
= (). Si
r = deg(P

) et n = 2
r
1, i.e. si est un g en erateur de F

2
r , le code C nest
autre que H(2, r).
Remarque 2 Il peut arriver que d(BCH) > .
3.3 Le d ecodage des codes BCH
Non seulement la construction des codes BCH assure une borne inf erieure pour
leur distance minimale, mais de plus on a un algorithme de d ecodage efcace pour
ces codes (d u ` a Berlekamp).
Soit donc C un code BCH (au sens restreint pour simplier) de distance pre-
scrite = 2t + 1. C corrige dont t erreurs. Soit y = y
0
+ y
1
x + + y
n1
x
n1
le mot recu; on cherche donc c C tel que d(y, c) t. On pose
22
e = y c = e
0
+e
1
x + +e
n1
x
n1
.
La strat egie de lalgorithme consiste ` a dabord d eterminer les positions des
erreurs, cest-` a-dire lensemble des indices i tels que e
i
= 0, puis leurs valeurs e
i
.
On pose donc:
P := {i : 0 i n 1 | e
i
= 0}
et on construit un polyn ome localisateur des erreurs :
(z) :=

iP
(1
i
z).
Remarquons que connaitre revient ` a connaitre P, et que lhypoth` ese d(y, c) t
se traduit par: deg() t.
On pose ensuite
S(z) :=
2t

l=1
y(
l
)z
l1
.
Le polyn ome S est connu, puiquil ne d epend que de y.
Proposition 9 Il existe un polyn ome w(z) de degr e deg(w) < t, et premier ` a ,
tel que
S(z)(z) = w(z) mod z
2t
. (3.1)
R eciproquement, si

et w

sont deux polyn omes tels que deg(

) t, deg(w) <
t et
S(z)

(z) = w

(z) mod z
2t
,
alors il existe un polyn ome q(z) tel que:
_

(z) = (z)q(z)
w

(z) = w(z)q(z)
Preuve: On y(
l
) = e(
l
) =

iP
e
i

li
pour tout 1 l 2t, puisque {
l
, 1
l 2t} Z(C).
23
S(z)(z) =
2t

l=1
_

iP
e
i

li
_
z
l1
(z)
=

iP
e
i
_
2t

l=1

li
z
l1
_
(z)
=

iP
e
i

i
_
1 (
i
z)
2t
1
i
z
_
(z)
=

iP
e
i

i
_
1 (
i
z)
2t
_

j=i
(1
j
z)
=

iP
e
i

j=i
(1
j
z) mod z
2t
Posons w(z) :=

iP
e
i

j=i
(1
j
z). Ce polyn ome est bien de degr e au
plus egal ` a t 1; de plus, w(
i
) = e
i

j=i
(1
ji
) = 0 donc w est premier
` a .
Supposons quil existe w

et

comme indiqu e. On a:
w(z)

(z) = S(z)(z)

(z) mod z
2t
= w

(z)(z) mod z
2t
Comme deg(w

) < 2t et deg(w

) < 2t, on peut conclure


w(z)

(z) = w

(z)(z).
Comme pgcd(, w) = 1, on conclut que divise

et w divise w

, do` u le r esultat.
Remarque 3 En termes de LFSR, l equation (3.1) sinterpr` ete par: la suite [y(
l
), 1
l 2t] est engendr ee par un LFSR de longueur t, de polyn ome de connection .
Donc est calcul e par lalgorithme de Berlekamp-Massey! Noter que, comme on
a 2t termes de la suite, il est unique.
On peut maintenant d ecrire trois m ethodes pour d eterminer :
24
La plus basique: on a t 1 inconnues qui sont les coefcients de (son
terme constant est 1); on a t 1 conditions lin eaires qui sont que les coef-
cients de z
t
, z
t+1
, . . . , z
2t1
dans le produit S(z)(z) sont nuls. On r esoud
un syst` eme lin eaire de taille t 1, do` u une complexit e en t
3
.
On applique Berlekamp-Massey pour trouver : complexit e en t
2
.
On fait de lalgorithme dEuclide etendu entre z
2t
et S(z) et on sarr ete en
chemin.. En effet, dans lalgorithme dEuclide etendu, on pose:
p
0
= z
2t
, p
1
= S, p
0
= p
1
q
1
+r
1
p
1
= S, p
2
= r
1
, p
1
= p
2
q
2
+r
2
. . .
p
i1
, p
i
= r
i1
, p
i1
= p
i
q
i
+r
i
. . .
jusqu` a ce quon obtienne r
i
= 0. Notons que pgcd(z
2t
, S) ne peut etre
un z
k
avec k t, car dans ce cas on aurait y(
l
) = 0 pour l = 1, . . . , t,
m ezalor e(
l
) = 0 pour l = 1, . . . , t alors que e est suppos e de poids au
plus t. On a:
_
z
2t
S
_
=
_
p
0
p
1
_
=
_
q
1
1
1 0
__
p
1
p
2
_
=
_
q
1
1
1 0
_
. . .
_
q
i
1
1 0
__
p
i
p
i+1
_
.
ou encore
_
a
i
b
i
c
i
d
i
__
z
2t
S
_
=
_
p
i
p
i+1
_
avec a
i
, b
i
, c
i
, d
i
K[z] et v erient:
_
a
i+1
b
i+1
c
i+1
d
i+1
_
=
_
0 1
1 q
i+1
__
a
i
b
i
c
i
d
i
_
.
Comme p
i
est le reste de la division par p
i1
, on a deg(p
i
) < deg(p
i1
).
Donc, il existe i tel que deg(p
i
) < t deg(p
i1
). On a alors:
a
i
z
2t
+b
i
S = p
i
25
soit
b
i
S = p
i
mod z
2t
.
Il reste ` a se persuader que deg(b
i
) t. Les relations b
i+1
= d
i
et
d
i
= b
i1
+ q
i
d
i1
montrent par r ecurrence que deg(b
i
) = deg(q
i1
) +
deg(q
i2
)+ +deg(q
1
). Or deg(q
i
) = deg(p
i1
)deg(p
i
) donc deg(b
i
) =
deg(p
0
) deg(p
i1
) = 2t deg(p
i1
) t. On a donc trouv e = b
i
.
Une fois que est calcul e, on trouve ses racines et donc les localisations des
erreurs. Pour conclure, il faut calculer les valeurs des e
i
. Il suft maintenant de
r esoudre les equations en deg() inconnues:
e(
l
) = y(
l
), 1 l 2t
26
Chapter 4
Codes de Reed-Muller et fonctions
bool eennes
4.1 Fonctions bool eennes
D enition 14 Une fonction bool eenne ` a m variables est une fonction f : F
m
2

F
2
.
Notons x
i
lapplication qui ` a y F
m
2
associe sa i-` eme coordonn ee y
i
. Les
expressions x
1
+x
2
, x
1
x
2
, et, de facon plus g en erale, toute expression polynomiale
en les x
i
, d enissent une fonction bool eenne. Remarquons que x
2
i
= x
i
puisquon
est sur F
2
, donc il est inutile dintroduire des exposants plus grands que 1. La
proposition suivante montre que lon d ecrit ainsi toutes les fonctions bool eennes.
Proposition 10 Lespace F des fonctions bool eennes ` a m variables est un F
2
-
espace vectoriel de dimension n = 2
m
. Pour I {1, . . . , m}, notons x
I
=

iI
x
i
. Toute fonction bool eenne f a une ecriture unique sous la forme
f =

I{1,2,...,m}
a
I
x
I
=

1i
1
<i
2
<<i
s
m
a
i
1
,...,i
s
x
i
1
. . . x
i
s
.
Le plus grand cardinal de I pour lequel a
I
= 0 sappelle le degr e de f.
Preuve: Notons
y
la fonction bool eenne d enie par
y
(y) = 1,
y
(x) = 0 si
x = y. Clairement, pour toute fonction bool eenne f, on a f =

yF
m
2
f(y)
y
,
et les
y
forment une base de lespace des fonctions bool eennes qui est donc de
dimension n = 2
m
.
27
Dautre part, on peut exprimer les fonctions
y
alg ebriquement en les x
i
:

y
=
m

i=1
(x
i
+y
i
+ 1).
Donc les mon omes x
i
1
. . . x
i
s
engendrent bien lespace F; comme il y en a ex-
actement

m
s=0
_
m
s
_
= 2
m
, ils forment une base de F.
4.2 Codes de Reed-Muller
Soit n = 2
m
. On met en bijection les entiers de 0 ` a n 1 et les el ements de
F
m
2
via l ecriture binaire dun nombre: on identie donc k {0, . . . n 1} et
k F
m
2
, o` u k = 2
m1
k
1
+2
m2
k
2
+ +k
m
. Pour all eger les notations, on note
indiff eremment k = k.
Il y a alors (au moins) trois facons de voir un el ement de F
n
2
:
Comme un n-uplet u = (u
0
, u
1
, . . . , u
n1
) F
n
2
Comme une fonction bool eenne f, d enie par: f(x) = u
x
,
Comme un sous-ensemble A F
m
2
, correspondant aux coordonn ees egales
` a 1: A = {x F
m
2
| u
x
= 1}.
D enition 15 Le code de Reed-Muller R(r, m) est le code binaire engendr e par
les el ements de F
n
2
associ es aux fonctions bool eennes: x
I
telles que |I| m.
Exemples: le code R(1, 3) est engendr e par les lignes de :
1 1 1 1 1 1 1 1 1
x
1
0 0 0 0 1 1 1 1
x
2
0 0 1 1 0 0 1 1
x
3
0 1 0 1 0 1 0 1
Le code R(2, 3) est engendr e par les lignes de :
1 1 1 1 1 1 1 1 1
x
1
0 0 0 0 1 1 1 1
x
2
0 0 1 1 0 0 1 1
x
3
0 1 0 1 0 1 0 1
x
1
x
2
0 0 0 0 0 0 1 1
x
1
x
3
0 0 0 0 0 1 0 1
x
2
x
3
0 0 0 1 0 0 0 1
28
Th eor` eme 6 Le code R(r, m) a les propri et es suivantes:
1. Sa dimension est 1 +
_
m
1
_
+ +
_
m
r
_
.
2. Sa distance minimale est 2
mr
3. R(r, m)

= R(mr 1, m).
4. AGL(m, 2) Aut(R(r, m)).
Preuve: Seule la distance minimale est un peu difcile, on la d emontre en dernier.
On a vu que les x
I
sont lin eairement ind ependants, donc le calcul de la dimension
de R(r, m) revient ` a compter les x
I
R(r, m).
Posons A
i
:= {u F
m
2
| x
i
(u) = 1}. Clairement, A
i
est un sous-espace
afne de F
m
2
de codimension 1. Plus g en eralement, A
I
:= {x
i
= 1, i I} est
un sous-espace afne de codimension |I| (A
I
=
iI
A
i
). Le produit scalaire des
deux mots associ es ` a x
I
et x
J
v erie: x
I
x
J
= wt(x
IJ
) mod 2. Or un espace
afne est de cardinal pair (plus pr ecis ement une puissance de 2 bien s ur), sauf sil
est r eduit ` a un point. Cela arrive seulement pour I J = {1, 2, . . . , m}. Donc
x
I
x
J
= 0 pour |I| r et |J| m r 1, ce qui prouve que R(m r
1, m) R(r, m)

. Le calcul de leurs dimensions respectives conclut ` a l egalit e


R(mr 1, m) = R(r, m)

.
Le groupe AGL(m, 2) est le groupe des transformations afnes sur F
m
2
. Il
op` ere donc par permutation des n coordonn ees de F
n
2
: si AGL(m, 2), (.u)
x
=
u
(x)
. Posons y = (x); il existe des coefcients a
i,j
et c
i
tels que y
i
=

m
j=1
a
i,j
x
j
+
c
i
. Explicitons laction de sur les x
i
: (.x
i
)(x) = x
i
((x)) = y
i
=

m
j=1
a
i,j
x
j
+
c
i
. De m eme,
(.x
I
)(x) =

iI
y
i
=

iI
(

m
j=1
a
i,j
x
j
+ c
i
). Ainsi, si |I| r, .x
I
est de
degr e au plus egal ` a r, donc (R(r, m)) R(r, m).
Le poids de x
I
est egal au cardinal de A
I
, soit ` a 2
m|I|
. Il reste ` a evaluer le
poids des combinaisons lin eaires des x
I
. Pour cela, on utilise le lemme suivant:
Lemme 2 Soit P(t) F
2
[t] un polyn ome ` a coefcients dans F
2
. Le poids de P,
not e wt(P(t)), est d eni comme etant le nombre de ses coefcients non nuls. Soit
P(t) =

l
b
l
(1 +t)
l
. Soit i
0
le plus petit indice tel que b
i
0
= 0. Alors
wt(P(t)) wt((1 + t)
i
0
.
29
Preuve: On d enit un entier s par: 2
s
deg(P) < 2
s+1
et on proc` ede par
r ecurrence sur s. Le cas s = 0 correspond au degr e de P egal ` a 1, il est clair.
Posons P
1
:=

2
s
1
i=0
b
i
(1 +t)
i
et P
2
:=

deg(P)
i=2
s
b
i
(1 +t)
i2
s
. On a donc:
P = P
1
+ (1 + t)
2
s
P
2
= P
1
+ (1 + t
2
s
)P
2
= (P
1
+P
2
) +t
2
s
P
2
.
Remarquons que les puissances de t qui interviennent dans P
1
+ P
2
et dans
t
2
s
P
2
sont disjointes. Donc
wt(P) = wt(P
1
+P
2
) +wt(P
2
).
Si P
1
= 0, on utilise lin egalit e wt(u+v) wt(u) +wt(v) pour conclure que
wt(P) wt(P
1
), puis on applique la r ecurrence. Si P
1
= 0, P = (1 + t)
2
s
P
2
;
on a donc i
0
(P) = 2
s
+i
0
(P
2
) avec des notations evidentes, et wt((1 +t)
i
0
(P)
) =
wt((1 +t)
i
0
(P
2
)
+t
2
s
(1 +t)
i
0
(P
2
)
) = 2wt((1 +t)
i
0
(P
2
)
. Lhypoth` ese de r ecurrence
appliqu ee ` a P
2
, avec wt(P) = 2wt(P
2
), fournit lin egalit e.
D emontrons maintenant que la distance minimale de R(r, m) est egale ` a 2
mr
.
On a d ej` a vu que le poids de x
I
est egal ` a 2
m|I|
, donc est au moins egal ` a 2
mr
,
si |I| r. Soit maintenant a :=

|I|r
a
I
x
I
un el ement quelconque de R(r, m).
On consid` ere le polyn ome associ e
P(t) :=
n1

v=0
a(v)t
n1v
=

I
a
I
(
n1

v=0
x
I
(v)t
n1v
).
Lemme 3 Soit I {1, . . . , m} et soit l :=

i / I
2
i
. On a dans F
2
[t]:
(1 +t)
l
=
n1

v=0
x
I
(v)t
n1v
.
Preuve: On a
(1 +t)
l
=

i / I
(1 +t)
2
i
=

i / I
(1 +t
2
i
).
Le d eveloppement de ce produit fait apparatre les t
k
tels que k s ecrive k =

2
i
avec des exposants i / I. On peut aussi traduire cette condition sur k par: k est
30
tel que

iI
(1 + x
i
(k)) = 1, ou encore

iI
x
i
(n 1 k) = 1. Finalement, en
posant k = n 1 v,
(1 +t)
l
=
n1

v=0
x
I
(v)t
n1v
.
Revenons ` a P(t). On obtient donc lexpression:
P(t) =

|I|r
a
I
(1 +t)
l
I
o` u l
I
est lentier associ e ` a I comme dans le lemme pr ec edent. Dapr` es le Lemme
2, wt(P(t)) wt((1 + t)
l
I
0
), o` u I
0
est un certain sous-ensemble de {1, . . . , m},
de cardinal au plus egal ` a r, plus pr ecis ement celui pour lequel l
I
0
est minimal.
Dautre part, pour a = x
I
, le polyn ome P(t) associ e est (1 + t)
l
I
. Donc
wt(x
I
) = wt((1 +t)
l
I
) = 2
m|I|
. Cela montre que wt((1 +t)
l
I
) 2
mr
d` es que
|I| r. Donc on a bien, dans le cas g en eral,
wt(P(t)) wt((1 + t)
l
I
0
) 2
mr
.
4.3 Le d ecodage des codes de Reed-Muller
On va d ecrire un algorithme de d ecodage, dit par maximum de vraisemblance, qui
est un algorithme de d ecodage complet dans le sens o` u il fournit un mot du code
quel que soit le nombre derreurs (et pas seulement lorsque le nombre derreurs
est inf erieur ou egal ` a [(d 1)/2], qui vaut ici 2
mr1
1).
Comme le groupe afne est contenu dans le groupe des permutations de R(r, m),
et comme celui-ci est transitif sur les sous-espaces afnes de F
m
2
de dimension
donn ee, il est clair que tout sous-espace afne de dimension d = r+1, r+2, . . . , m
appartient ` a R(m r 1, m) = R(r, m)

. Pour A F
m
2
, notons u
A
le mot de
F
n
2
qui lui est associ e (comme expliqu e au d ebut du paragraphe). Soit maintenant
R F
n
2
; on cherche M R(r, m) tel que d
H
(M, R) soit le plus petit possible, et
on note R = M +E.
31
Notre hypoth` ese est que M R(r, m), donc, pour tout A sous-espace afne
de dimension dim(A) = r + 1, r + 2, . . . , m, on a
E u
A
= R u
A
Dun aute c ot e, les espaces afnes de dimension 0 etant r eduits ` a des points, on
connaitrait compl` etement E si on connaissait E u
A
pour les sous-espaces afnes
A de dimension 0.
La strat egie de lalgorithme consiste ` a descendre dans les dimensions, en
d eduisant de la connaissance des valeurs de E u
A
pour dim(A) = r + 1, celle
des E u
A
pour dim(A) = r, et ainsi de suite, jusqu` a arriver ` a r = 0.
Supposons donc avoir obtenu les valeurs de E u
A
pour tous les sous-espaces
afnes A de dimension s + 1, pour un s r. Fixons maintenant un sous-espace
afne B de dimension s. On va se concentrer sur lensemble E
B
des espaces de
dimension s+1 contenant B. Notons que E
B
est de cardinal 2
ms
1. Si A E
B
,
on peut ecrire
A = B (A \ B)
et A \ B a m eme cardinal que B; pour deux espaces A distincts, les compl emen-
taires A \ B sont deux ` a deux distincts car deux espaces de dimension s + 1 ne
peuvent pas avoir en commun un sous-espace de dimension s et un autre point
sans etre egaux. On calcule les 2
ms
1 valeurs prises par E u
A
lorsque A
parcourt E
B
, et on regarde lequel de 0 ou 1 apparait le plus souvent. Comme
E u
A
= E u
B
+E u
A\B
,
si E u
A
= 0 un nombre t 2
ms1
de fois, cest que:
soit Eu
B
= 0, et
_
E u
A\B
= 0 pour t sous-espaces A E
B
E u
A\B
= 1 pour 2
ms
1 t sous-espaces A E
B
soit Eu
B
= 1, et
_
E u
A\B
= 1 pour t sous-espaces A E
B
E u
A\B
= 0 pour 2
ms
1 t sous-espaces A E
B
Dans ce dernier cas de gure, on aurait un nombre derreurs au moins egale ` a
t puisque les ensembles A \ B sont deux ` a deux disjoints, soit wt(E) t
2
ms1
> 2
mr1
1. Ce cas est donc exclu si le nombre derreurs est plus petit
que 2
mr1
1, et peu probable si le nombre derreurs est plus grand.
32
Si E u
A
= 1 un nombre t 2
ms1
de fois, on conclu de facon analogue
que E u
B
= 1. Ayant d etermin e tous les E u
B
pour B de dimension s, on passe
` a la dimension s 1, et ainsi de suite jusqu` a la dimension 0.
4.4 Rayon de recouvrement des codes de Reed-Muller
Un param` etre important dun code C est son rayon de recouvrement.
D enition 16 Soit C un code de longueur n sur F
q
. Le rayon de recouvrement
de C est le maximum des distances des mots de F
n
q
au code.
= max
uF
n
q
d
H
(u, C) = max
uF
n
q
(min
vC
d
H
(u, v)).
Cest aussi le plus petit rayon tel que les boules de centre les mots du code et
de rayon recouvrent lespace F
n
q
.
Remarquons quon a lin egalit e triviale [(d1)/2], et que cest une egalit e
si et seulement si le code est parfait. Par exemple, les codes de Hamming sont
parfaits. En g en eral, la d etermination du rayon de recouvrement dun code est
difcile. Nous allons voir ce quil en est pour les codes R(1, m). Les fonctions
bool eennes qui r ealisent la distance maximale (les fonctions courbes) ont des
applications importantes en cryptographie. Pour etudier ces fonctions, on utilise
la transform ee de Fourier discr` ete (cest la m eme transform ee qui nous a permis
de d emontrer la formule de Mac-Williams).
D enition 17 Soit g : F
m
2
R. On note g et on appelle transform ee de Fourier
de g la fonction g : F
m
2
R d enie par
g(w) =

xF
m
2
(1)
xw
g(x).
Proposition 11 (Formule de Parceval). Avec les notations pr ec edentes,

wF
m
2
g(w)
2
= 2
m

xF
m
2
g(x)
2
.
33
Preuve:

wF
m
2
g(w)
2
=

wF
m
2
(

x,yF
m
2
(1)
(x+y)w
g(x)g(y))
=

x,yF
m
2
g(x)g(y)

wF
m
2
(1)
(x+y)w
mais on a:

wF
m
2
(1)
(x+y)w
=
_
0 si x +y = 0
2
m
si x +y = 0
do` u la formule.
Si f : F
m
2
F
2
est une fonction bool eenne, on lui associe
f
: F
m
2
R
d enie par:

f
(x) = (1)
f(x)
et on va utiliser sa transform e de Fourier
f
, encore appel ee transform ee de Walsh-
Hadamard de f.
Corollaire 1

wF
m
2

f
(w)
2
= 2
2m
.
Preuve: Cest la formule de Parceval, puisque
f
(x)
2
= 1 pour tout x.
.
Th eor` eme 7 On suppose m pair.
1. Le rayon de recouvrement du code R(1, m) est egal ` a

m
= 2
m1
2
m/21
. Une fonction bool eenne f : F
m
2
F
2
telle que
d
H
(f, R(1, m)) =
m
est appel e fonction courbe.
2. On a equivalence de:
(a) f est une fonction courbe
(b) Pour tout w F
m
2
, |
f
(w)| = 2
m/2
.
34
(c) Pour tout s = 0, x f(x+s)f(x) est equilibr ee cest-` a-dire prend
aussi souvent la valeur 1 que la valeur 0.
Preuve: Pour a F
m
2
, notons
0
a
la fonction lin eaire

0
a
(x) := a x = a
1
x
1
+ +a
m
x
m
et
1
a
la fonction afne
1
a
(x) = a x+1. Lorsque a varie, ces fonctions parcourent
R(1, m).
Remarquons, que, pour un x x e, si f(x) =
0
a
(x), cest que f(x) =
1
a
(x), et
r eciproquement. Dautre part,
d
H
(f,
0
a
) = card{x F
m
2
| f(x) =
0
a
(x)}.
En particulier, on a donc
d
H
(f,
0
a
) +d
H
(f,
1
a
) = 2
m
.
Calculons
f
(a). On a:

f
(a) =

xF
m
2
(1)
f(x)+ax
= d
H
(f,
1
a
) d
H
(f,
0
a
)
= 2d
H
(f,
0
a
) 2
m
= 2
m
2d
H
(f,
1
a
)
donc
max
a
|
f
(a)| = 2|2
m1
d
H
(f, RM(1, m))|.
Dapr` es l equation du Corollaire 1, on a toujours max
a
|
f
(a)| 2
m/2
, avec
egalit e lorsque |
f
| est constante. Cela d emontre lin egalit e

m
2
m1
2
m/21
.
Il reste ` a montrer lexistence de fonctions f v eriant |
f
(a)| = 2
m/2
pour tout
a F
m
2
. Lexemple le plus simple est le suivant: posons x = x
(1)
| x
(2)
o` u x
(1)
(respectivement x
(2)
) est le m/2-uplet correspondant aux m/2 premiers bits de x
(respectivement derniers bits de x). Soit f(x) = x
(1)
x
(2)
. On a, en ecrivant
egalement w = w
(1)
| w
(2)
,
35

f
(w) =

x
(1)
,x
(2)
F
m/2
2
(1)
x
(1)
x
(2)
+xw
=

x
(1)
,x
(2)
F
m/2
2
(1)
x
(1)
x
(2)
+x
(1)
w
(1)
+x
(2)
w
(2)
=

x
(1)
F
m/2
2
(1)
x
(1)
w
(1)
(

x
(2)
F
m/2
2
(1)
(x
(1)
+w
(2)
)x
(2)
)
= (1)
w
(2)
w
(1)
(2
m/2
)
donc |
f
(w)| = 2
m/2
.

Equivalence entre (b) et (c): on calcule



f
(w)
2
=

x,yF
m
2
(1)
f(x)+f(y)+(x+y)w
=

x,sF
m
2
(1)
f(x)+f(x+s)+sw
=

sF
m
2
(1)
sw
(

xF
m
2
(1)
f(x)+f(x+s)
).
Sous lhypoth` ese (c), le terme

xF
m
2
(1)
f(x)+f(x+s)
est nul lorsque s = 0. Il
reste donc le terme pour s = 0, ce qui conduit ` a
f
(w)
2
= 2
m
.
R eciproquement, si
f
(w)
2
= 2
m
pour tout w F
m
2
, on a, pour tout s = 0:
0 =

wF
m
2
(1)
sw

f
(w)
2
=

wF
m
2
(1)
sw
(

x,yF
m
2
(1)
f(x)+f(y)+(x+y)w
)
=

x,yF
m
2
(1)
f(x)+f(y)
(

wF
m
2
(1)
(s+x+y)w
).
La somme

wF
m
2
(1)
(s+x+y)w
vaut 0 sauf si s +x +y = 0. Il reste donc:
0 = 2
m

xF
m
2
(1)
f(x+s)+f(x)
ce qui d emontre (c).
36
Remarquer quune fonction courbe ne peut pas, elle, etre equilibr ee, puisque

f
(0) = 2
m/2
. Cela limite leur utilisation en crypto..
Il est important de remarquer que le groupe afne AGL(2, m) op` ere sur les
fonctions courbes. On etudie donc ces fonctions ` a equivalence afne pr` es, et on
ne sait pas grand chose.. ` a part:
Les fonctions courbes de degr e 2 sont equivalentes ` a x
1
x
2
+ x
3
x
4
+ +
x
m1
x
m
+ (cest lexemple donn e dans la d emonstration).
Les fonctions courbes ont un degr e major e par m/2
m = 6,
m = 8, deg(f) = 3.
Quelques constructions mais peu
On ne connait pas le rayon de recouvrement lorsque mest impair, ou lorsquon
se limite aux fonctions equilibr ees. Lorsque m est impair, on connait des
fonctions plus eloign ees des fonctions afnes que les quadratiques (d` es
n = 15).
Une construction: la classe des fonctions de Maiorana-Mac Farland: On coupe
en deux et on pose f(x) = x
(1)
(x
(2)
) + g(x
(2)
). C a marche quel que soit g,
donc degr e quelconque!
37

Vous aimerez peut-être aussi