Académique Documents
Professionnel Documents
Culture Documents
20 janvier 2000
1 La notion de code
1.1
1.2
1.3
. . . . . . . . . . . . . . . . . .
1.1.1
Dnitons . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2
1.1.3
Proprit du prxe
. . . . . . . . . . . . . . . . . . .
10
L'arbre de Human . . . . . . . . . . . . . . . . . . . . . . . .
10
1.2.1
Dnitions
1.2.2
. . . . . . . . . . . . . . . . . . . . . . . .
2.2
2.3
10
. . . . . . . . .
11
Thorme de McMillan . . . . . . . . . . . . . . . . . . . . . .
11
2 Thorie de l'information
2.1
15
Source d'information . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.1
15
2.1.2
16
. . . . . . . . . . . . . .
2.1.3
16
2.1.4
16
. . . . . . . . . . . . . . .
16
2.2.1
Description de l'algorithme
. . . . . . . . . . . . . . .
17
2.2.2
. . . . . . . . . . . . . . . . . . . . . .
18
19
2.3.1
Quantit d'information . . . . . . . . . . . . . . . . . .
19
2.3.2
Entropie . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.4
Thorme de Shannon
. . . . . . . . . . . . . . . . . . . . . .
21
2.5
23
27
. . . . . . . . . . .
28
. . . . . . . . . . . . . .
28
3.1.2
30
3.1.3
Code parfait
33
3.1.4
Cas particulier o
. . . . . . . . . . . . . . . . . . . . . . .
34
3.1.5
3.2
. . . . . . . . . . .
36
37
3.2.2
Anneau quotient
V [X ]=P (X ) . . . . . .
deg(P )
Isomorphisme entre V [X ]=P et V
. . . . . . . .
37
. . . . . . . .
38
. . . . . . . . . . .
38
. . .
40
. . . . . . . . . . . . . . . .
41
. . . . . . . . . . . . . . . . . . . . . .
41
. . . . . . . . . . . . . . . . . . . . .
43
3.2.4
3.2.5
Factorisation de
X n 1 : classes cyclotomiques
Codes linaires
Codes cycliques
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
45
3.3.5
46
3.3.6
Codes BCH . . . . . . . . . . . . . . . . . . . . . . . .
47
3.3.4
. . . . . . . . . . . . . . . . . . . . . .
4.2
4.3
47
3.4.1
Codes de Reed-Solomon
. . . . . . . . . . . . . . . . .
48
3.4.2
Codes C.I.R.C.
. . . . . . . . . . . . . . . . . . . . . .
49
3.4.3
49
4 Mthodes de chirement
4.1
36
. . . . . . . . . . . . . . . . . . . . . . . . .
Corps ni
3.3.1
3.4
. . . . . . . . . . . . . . . . .
3.2.3
3.3
51
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.1.1
52
Mthode d'attaque . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
53
. . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.2.1
Le DES
4.2.2
L'exponentiation
. . . . . . . . . . . . . . . . . . . . .
Cryptographie cl publique
. . . . . . . . . . . . . . . . . .
4.3.1
Secret et authentication
4.3.2
L'algorithme RSA
4.3.3
54
56
. . . . . . . . . . . . . . . .
57
. . . . . . . . . . . . . . . . . . . .
58
Utilisation de RSA . . . . . . . . . . . . . . . . . . . .
60
Introduction
SOURCE
CANAL
DESTINATION
PERTURBATION
Fig. 1 Schma fondamental du codage
codage.
Le
compression.
dtecter,
teur.
voire
Le canal est gnralement partag par plusieurs couples metteurdestinataire. Pour que l'metteur puisse envoyer un message qui ne
puisse tre lu que par un destinataire spcique (bien que la squence
de signaux associe soit visible par d'autres individus), le message doit
tre
crypt
cryptographie
tudie des
thorie des corps nis (dont on donnera un rappel des grands principes), et
quelques lments de probabilits, de thorie des graphes et de manipulation
des chanes de symboles.
Le premier chapitre de ce cours est une introduction la notion de code,
comprend les dnitions et proprits fondamentales concernant les objets
mathmatiques introduits. Les trois chapitres suivants, consacrs respectivement la thorie de l'information, du codage dtecteur/correcteur et de la
cryptographie, prsentent les rsultats mathmatiques fondamentaux et les
algorithmes gnriques qui en dcoulent. Chacun de ces trois chapitres est
illustr par une utilisation pratique dans le contexte des tlcommunications.
Chapitre 1
La notion de code
Ce chapitre donne les dnitions de base et quelques proprits utiles
la manipulation des codes.
vocabulaire
cardinal
Exemple :
sur le vocabulaire
Dans tout ce cours, dans un souci de simplicit et de par leur importance pratique en tlcommunications, on s'intresse plus particulirement
aux codes binaires. Cependant, la plupart des rsultats sont gnralisables
des codes d'arit quelconque.
Soit S = fs1 ; : : : ; sq g un ensemble ni, qu'on appelle le vocabulaire
source. On appelle un message une chane sur S . Soit C un code sur un vocabulaire V ; une fonction d'encodage de S dans C est une bijection f : S ! C .
(C; f ) est alors appel schma de codage pour S .
CHAPITRE 1.
LA NOTION DE CODE
01000001
01001010
01010011
01000010
01001011
01010100
01000011
01001100
01010101
01000100
01001101
01010110
01000101
01001110
01010111
01000110
01001111
01011000
01000111
01010000
01011001
01001000
01010001
01011010
01001001
01010010
espace
00100000
a1 :::an via un canal permettant de transmettre les mots d'un code C , on le traduit sous la forme c1 :::cn = f (a1 ):::f (an ).
Le fait que f soit bijective ne sut cependant pas pour que le message puisse
Pour communiquer un message
S = fA; : : : ; Z g
C = f0; : : : ; 25g crits en base 10 :
f (A) = 0; f (B ) = 1; : : : ; f (J ) = 9; f (K ) = 10; f (L) = 11; : : : ; f (Z ) = 25:
Prenons l'exemple du codage des lettres de l'alphabet
Un code
parfois
c = c1 : : : cm 2 C + telle que
c1 : : : cm = x1 : : : xn
Proprit 1 Un code C sur un vocabulaire V est uniquement dchirable si
et seulement si pour toutes squences c = c1 : : : cn et d = d1 : : : dm de C + :
c = d =) (n = m et 81 i n; ci = di )
au plus une squence
Exemple :
Thorme 1 (Kraft) Il existe un code uniquement dchirable sur un voV dont les mots fc1 ; : : : ; cn g sont de longueur l1 ; : : : ; ln si et seule-
cabulaire
ment si
n
X
i=1
1 1
jV jli
1.1.
Preuve 1/ ())
Soit C un code uniquement dchirable, d'arit q .
Pour 1 k m = max(longueurs des mots de C ), Soit rk
de mots de longueur k .
le nombre
n
X
i=1
u:
m
1 )u = (X
rk u
)
qli
k=1
qk
ri1 : : : riu
qi1 +:::+iu
s = i1 + : : : + iu ,
on obtient les
ri1 : : : riu
qs
i1 +:::+iu =s
X
Soit
N (s) =
P
i1 +:::+iu =s ri1 : : : riu .
n
X
i=1
mu
1 )u = X
N (s)
qli
s=u
qs
de longueur totale
s.
(
Et en prenant la
n
X
i=1
1 )u mu m + 1 mu
q li
u-ime racine,
n
X
i=1
Si
()
1 (mu)1=u
q li
n
X
1 1
qli
i=1
2/ (
10
CHAPITRE 1.
LA NOTION DE CODE
sur un vocabulaire
instantan,
ou
irrductible)
a la
proprit du prxe
(on
Grce la proprit du prxe, on peut dchirer les mots d'un tel code
ds la n de la rception du mot (instantanit), ce qui n'est pas toujours le
V = 0; 01; 11,
m = 001111111111 : : : , il faut attendre l'occurence
Proprit 2
chirable.
Preuve
Proprit 3
Tout code dont tous les mots sont de mme longueur possde
la proprit du prxe.
arbre de Human
0 soit 2 ls (il est localement complet). Dans ce dernier cas, on assigne
le symbole 1 l'arte reliant la racine locale au ls gauche et 0 au ls
droit.
A chaque feuille d'un arbre de Human, on peut associer un mot de
f0; 1g+ : C'est la chane des symboles marquant les artes d'un chemin depuis
la racine jusqu' la feuille. On appelle
code de Human
1.3.
11
THORME DE MCMILLAN
Proprit 5
Preuve On construit
quel-
ci
de
l = max(longueurs
des mots de
C ).
noeud. On peut alors laguer le sous-arbre dont ce noeud est racine (tous
les mots pouvant tre reprsents dans les noeuds de ce sous-arbre ont
pour prxe). Tous les mots de
ci
C. 2
Sur un vocabulaire V , il existe un code qui possde la proprit du prxe dont les mots fc1 ; : : : ; cn g sont de longueur
12
CHAPITRE 1.
l1 ; : : : ; ln
LA NOTION DE CODE
si et seulement si
n
X
i=1
1 1
jV jli
hauteur , et
li ,
soit
li ,
jV jl
li
feuille d'un sous-arbre de hauteur 0). Pour toutes les oprations, on enlve
Pn
i=1
jV jl
li
initial, soit
n
X
i=1
d'o
jV jl li jV jl
n
X
1 1
j
V
jli
i=1
2/ preuve de (
construire un arbre de Human dont les mots de code ont pour longueur
l1 ; : : : ; ln ,
mots que l'on suppose classs par ordre croissant de leurs lon-
gueurs. Pour pouvoir choisir un noeud dans l'arbre complet pour un mot de
jV jl
lk
feuilles de l'arbre
on a
longueur
enlev
lk ,
Pk 1
i=1
jV jl
li
l1 ; : : : ; lk 1 ,
jV jl (1
n
X
i= k
soit
jV jl (1
k 1
X
i=1
Pk 1
i=1
1 1
jV jli
jV j li )
n
X
i=k
jV jli
jV jl li jV jl
lk
1.3.
THORME DE MCMILLAN
13
Corollaire 1 S'il existe un code uniquement dchirable dont les mots sont
de longueur l1 ; : : : ; ln , alors il existe un code instantann de mmes longueurs
de mots.
14
CHAPITRE 1.
LA NOTION DE CODE
Chapitre 2
Thorie de l'information
Un premier intrt de la thorie mathmatique des codes rside dans
l'optimisation possible de la taille d'un message qui doit transiter par un
canal, ou tre stock sur un support. On eectue donc ce codage la sortie
de la source, et on dcode l'entre de la destination. Nous supposons ici que
le canal n'est pas soumis aux perturbations (on parle de codage sans bruit),
le codage de canal et la gestion des erreurs sont tudis au chapitre suivant.
Il existe des techniques d'encodage permettant de choisir des codes ecaces
ainsi qu'une thorie importante, originairement dveloppe par Shannon en
1948 permettant de quantier l'information contenue dans un message et de
calculer la taille minimale d'un schma de codage, et de connatre ainsi la
valeur d'un code donn.
Pour une telle source, dite sans mmoire, les vnements (occurences d'un
symbole) sont considrs comme indpendants, et leur probabilit reste stable
au cours de l'mission (la source est stationnaire).
Dnition 2 Une source S est dite sans redondance si tous les symboles de
S apparaissent avec la mme probabilit (p1 = : : : = pn = n1 ).
Nous allons montrer dans ce chapitre qu'une source redondante peut tre
code de manire liminer la redondance dans l'vocabulaire lisible par le
canal. Nous prcisons donc le schma de codage dni en introduction de ce
cours :
15
16
CHAPITRE 2.
SOURCE
CODAGE
DE
SOURCE
THORIE DE L'INFORMATION
CANAL
DECODAGE
DESTINATAIRE
n
X
i=1
un schma d'encodage
Exemple :
Si
2.
Si C = ff (a) = 0; f (b) = 10; f (c) = 110; f (d) = 1110g,
1 + 2 1 + 3 1 + 4 1 = 1:875
moyenne du schma est : 1
2
4
8
8
la longueur
la longueur
Nous utilisons la longueur moyenne d'un schma d'encodage pour mesurer son ecacit.
Dnition 4
S = (s1 ; s2 ), P = ( 41 ; 34 )
1 3 3 9
2
2
alors S = (s1 s1 ; s1 s2 ; s2 s1 ; s2 s2 ) et P = (
16 ; 16 ; 16 ; 16 )
Exemple :
S.
2.2.
17
S = (S; P ),
le vocabulaire de codage
V.
Il est
jV j 1 divise jS j 1 (an
P.
p1
p2
p3
pn
s1
s2
s3
sn
jV j
p ;::: ;p j j
Soient
symboles de plus faibles probabilits. On
i1
i V les
construit un arbre (sur le modle des arbres de Human), dont la racine
pi1 + : : : + pijV j ,
pi1 ; : : : ; pijV j . La gure 2.3
jV j = 2.
pn
pi+pj
s1
sn
pi
sj
si
pj
j V j= 2)
du plus haut niveau (les racines), jusqu' n'obtenir qu'un arbre ( chaque
itration, il y a
dans le schma ainsi construit sont les mots correspondant aux chemins de
la racine aux feuilles.
V = f 0; 1g
18
CHAPITRE 2.
THORIE DE L'INFORMATION
Symbole
Probabilit
0,35
0,10
0,19
0,25
0,06
0,05
Mot de code
11
010
00
10
0111
0110
Preuve COMPLTER 2
On peut pourtant obtenir des codes plus ecaces partir des extensions
de la source, comme on peut le voir partir d'un exemple :
Soit
pour
s1 s1 ! 010
s1 s2 ! 011
s2 s1 ! 00
s2 s2 ! 1
S 3.
2.3.
19
certitude
pi
est proche de
1,
d'quiprobabilit.
An de choisir une fonction qui quantie l'incertitude, nous cherchons
une mesure de l'information
(pour une
Par exemple, imaginons une source pouvant mettre deux symboles, l'un
avec une probabilit
I (x) fonction inverse de la probabilit d'occux. I (x) = f ( P (1x) ). Soit I (p) = f ( p1 ). D'autres axiomes sont imposs
x, y, la quantit d'information apporx et y sera la somme des quantits d'information I (x) et I (y) ; puisque
x, I
vrie
I (x) = K log(
1 )
P (x)
20
CHAPITRE 2.
THORIE DE L'INFORMATION
ce qui est un rsultat classique que nous ne redmontrons pas. Choisir une
constante
bit
shannon.
log2
et
tion :
Pour une source S = (S; P ), La quantit d'information fournie par l'occurence d'un symbole s 2 S de probabilit p 2]0; 1] est :
Dnition 5
I (p) = log2 ( )
p
2.3.2 Entropie
L'entropie d'une source est la quantit moyenne d'information contenue
dans cette source.
Dnition 6 L'entropie
(p1 ; : : : ; pn ) est :
d'une source
H (S ) = H (p1 ; : : : ; pn ) =
C'est une mesure de
l'incertitude
n
X
pi log2 ( )
pi
i=1
H (p1 ; : : : ; pn ) H ( n1 ; : : : ; n1 ) = log2 n
En gnralisant,
Proprit 6
Soit
Preuve Nous commenons par montrer un lemme dont nous aurons plusieurs fois besoin.
bilitdiscrtes.
n
X
qi
0
pi
i=1
Preuve du lemme : on sait que 8x 2 IR, ln(x) x
1. Donc
n
X
Soit puisque
pi ln
pi log
qi
pi
i=1
Pn
Pn
i=1 pi = i=1 qi
n
X
i=1
n
X
i=1
pi (
= 0,
pi ln
qi
pi
0
qi
pi
1)
2.4.
21
THORME DE SHANNON
Par suite,
n
X
i=1
pi log
qi
pi
0
(q1 ; : : : ; qn ) = ( n1 ; : : : ; n1 ),
H (S ) log2 n
Proprit 7
Soient
H (S k ) =
X
i1 ;::: ;ik ;0ij jV j
pi1 : : : pik
Soit
H (S k ) =
X
i1 ;::: ;ik
1 + ::: +
p
i1
X
i1 ;::: ;ik
pik
X
i1 ;::: ;ik
jV j
jV j
jV j
X
1 =X
1 X
pi1 log
pi2 : : :
pik
p
p
i1
i1
i1 =1
jV j
X
i1 =1
pi1 log
pj
i2 =1
vaut toujours
ik =1
1 = H (S )
p
i1
H (S k ) = H (S ) + : : : + H (S ) = kH (S )
thorme de Shannon
ou
Nous commenons par noncer le thorme dans le cas d'une source sans
mmoire :
22
CHAPITRE 2.
THORIE DE L'INFORMATION
Thorme 4
l
H
log2 Q
l<
Preuve
Q,
S sur un vocabulaire
H
+1
log2 Q
: Soit
n
X
i=1
Soit ici,
n
X
i=1
Ou encore
n
X
i=1
Et comme
pi log
logK 0,
pi ),
: Soient
il existe un code de
pilog
qi
pi
0
Q li
Kpi
0
n
1 X
pi li logQ + logK
p
i
i=1
H (S ) l logQ
D'o le rsultat.
seconde partie
pi log
li = blogQ p1i c.
Comme
Q,
1 (car Qli
uniquement d-
(l1 ; : : : ; ln ).
et par suite,
pi log
n
1 >X
pi li logQ logQ
p
i
i=1
l<
H (S )
+1
logQ
Soit
Pn
1
i=1 Qli
k-ime extension de S
Comme
li <
2.5.
Thorme 5
lk
k
23
Q,
logH Q
2
lk
H
<
+ 1=k
k log2 Q
Thorme 6
Pour toute source stationnaire d'entropie H , il existe un procd de codage uniquement dchirable sur un vocabulaire de taille Q, et
de longueur moyenne l, aussi proche que l'on veut de sa borne infrieure
H=log2 (Q).
En thorie, il est donc possible de trouver un code s'approchant indniment de l'entropie. En pratique pourtant, si le procd de codage consiste
coder les mots d'une extension de la source, on est limit videmment par
L'algorithme de Human (ou des variantes) est utilis en pratique, souvent en mme temps que d'autres procds de codages, pas toujours optimaux en thorie, mais qui font des hypothses raisonnables sur la forme
des chiers compresser (ce sont des modles de source) pour diminuer
l'entropie, ou accepter une destruction d'information que l'on suppose sans
consquence pour l'utilisation des donns.
24
CHAPITRE 2.
THORIE DE L'INFORMATION
2.5.
25
0.05
0.06
f
0.10
0.35
0.25
0.19
0.10
0.35
0.25
0.19
c
0.05
0.06
f
e
construction de larbre et tri du niveau le plus haut
0.21
0.19
0.35
0.25
0.11
0.10
b
0.05
0.06
f
e
tape suivante
0.25
0.41
0.35
d
a
0.19
0.21
c
0.10
0.11
b
0.05
0.06
f
tape suivante
0.40
0.60
0
1
0.21
0.19
0.25
d
0.35
1
a
1
0.11
0
0.10
b
0
0.05
1
0.06
e
arbre final
26
CHAPITRE 2.
THORIE DE L'INFORMATION
Chapitre 3
Dtection et correction
d'erreurs
Lorsqu'une source met une squence de bits S = s1 ; : : : ; sk , la squence
S 0 = s01 ; : : : ; s0k reue par le collecteur peut direr : si s0i 6= si , on dit qu'il y
a eu erreur sur le bit d'indice i.
Le taux d'erreur dpend de la nature de la ligne de transmission (locale/internationale, nombre de rpteurs, support cble/satellite, ...) ; il varie
typiquement de
10
10
7.
Les mthodes pour se protger contre ces erreurs en les dtectant voire
en les corrigeant de manire automatique, consistent ajouter des bits
bits de contrle, l'aide d'un mcodeur. Le codeur transforme donc la squence transmettre
S = s1 ; : : : ; sk
en une squence
qui comporte
1 (s01 ; s0k+r ) =
appartenance
27
28
CHAPITRE 3.
1
0
00000000
0101001
0101001
0001001
0001001
0000000
correction par retransmission (ou ARQ) : une demande de retransmission du message source est eectue lorsque l'erreur ne peut pas tre
corrige.
Le but de ce chapitre est d'introduire les principaux codes dtecteurs/correcteurs
d'erreurs, les codes
mathmatiques.
Un exemple simple de correction directe : contrle de parit longitudinale et transversale. Corriger une erreur se ramne localiser les
bits o une erreur est apparue.
3.1
chires.
+) et de multiplication
) de chires dans V
commutatif :
le chire 0 (resp. 1) est l'lment neutre pour + (resp
(V; +; 0) est un groupe commutatif, i.e. + est associative et commutative et tout elment x 2 V a un inverse pour l'addition, not
x.
est associative et commutative (car anneau commutatif ).
est distributive sur + : x (y + z) = (x y) + (x z).
) ;
V.
On a aussi que
XORki=1 si .
3.1.
29
comme un corps
impose des restrictions sur son nombre d'elments, qui doit alors tre de la
forme
nis).
En particulier, on s'intressera ici surtout aux cas o
d entier.
Pour jV j 10,
est de cardinal
2d
avec
V ).
Dnition 7
redondance
Un codage
consiste :
m = M0 :::Ml 1
2. Coder chaque bloc
i.e. :
: Vk !Vr
Le message
Mi
avec
2 V lk transmettre en blocs
Mi = mik : : : m(i+1)k 1
en ajoutant
chires de redondance
Ri
2 V r,
Ri = (Mi )
Exemples :
L'ajout d'un bit pour contrler la parit des 7 bits qui le prcdent est
un code systmatique par bloc. C'est un code (8,7). Il est 1-dtecteur
et 0-correcteur avec un rendement 87,5%.
Le contrle de parit longitudinale et transversale sur 21 bits (avec
ajout de 11 bits de contrle) est un code (32,21). Il est 1-correcteur
avec un rendement 65,625%.
30
CHAPITRE 3.
distance de Hamming.
n ; les mots de
V n qui est vu comme un espace vectoriel
n : m m
de dimension n sur V . Soient m1 et m2 deux lments de V
1
2
n
(resp. m1
m2) dsigne donc l'lment de V
obtenu par addition (resp.
multiplication) composante par composante de m1 et m2 .
Dans toute la suite on considre un code de longueur
x = (x1 ; : : : ; xn ) 2 V n .
On appelle poids de Hamming de x, note w(x),
non nulles de x i.e.
Dnition 8
Soit
le nombre de composantes
Dnition 9
Soient
Vn
x, y et z dans
on a :
+
d(x; y ) 2 R ;
d(x; y ) = 0 () x = y ;
d(x; y ) = d(y; x) ;
d(x; y ) d(x; z ) + d(y; z ).
tout
Vn;
en eet pour
0
0
chires mis et soit m le mot reu, suppos dirent de m (i.e. d(m:m ) > 0) :
0
pour que C puisse dtecter une erreur, il est ncessaire que m 62 C
(sinon, le mot reu est un mot de
partir de
0
faut que m soit l'unique mot de C le plus proche de m ; i.e.
m0 ,
Soit
un code de longueur n.
8x 2 V n :
est dit
t-correcteur
Cardfc 2 C=d(x; c) tg 1:
ssi
il
3.1.
31
La correction d'une erreur peut aussi tre dcrite en considrant les boules
Bt (c) de centre c 2 C
et de rayon
t:
Lors de la rception de
m0 , on peut corriger m0
Bd(m;m0 ) (m0 )
Dnition 11
C.
en
m ssi on a :
C = fmg:
(C ) =
min
d(c1 ; c2 ):
t-correcteur.
Thorme 7 Soit C
un code
en position
cqfd.
32
CHAPITRE 3.
Exercice 2.
Soit
un code
k et n.
tion et de correction.
Exercice 3.
b0 b1 b2 b3
est :
Un code
t-correcteur
e de poids w(e)
mais il peut subsister des erreurs dtectes non corriges (voir exercice
prcdent). On dit qu'un code est parfait lorsque toute erreur dtecte est
corrige. Ce paragraphe tudie quelques proprits des codes parfaits.
Dnition 12
est
Thorme 8 Le code C (n; k) sur V est t-parfait ssi les boules de centre les
mots de C et de rayon t forment une partition disjointe de V n , i.e.
Vn =
c2C
Bt (c):
videmment, une telle partition n'est possible que pour certaines valeurs
de
et
k,
en fonction du cardinal de
V.
t-correcteurs et t-parfaits.
Thorme 9 Soit C (n; k) un code t correcteur sur V . Alors
conditions ncessaires pour l'existence de codes
3.1.
c2C Bt
33
t-correcteur.
t de V n est :
V n , on a :
f0 1g - Codes de Hamming
;
V =PF 2 = Z=2Z.
x 2 F2n ; on a w(x) = Cardfi 2 f1; : : : ; ng=xi 6= 0g = ni=1 xi .
Dans F2 , a + b = a
b ; on a alors les proprits suivantes :
Proprit 8 Soit x et y deux lments quelconques de F2n ; on a :
w(x) = d(x; 0) ;
d(x; y ) = w(x + y ) ;
w(x + y ) = w(x) + w(y ) 2w(x:y ).
Dans le cas d'un vocabulaire binaire, on peut prendre
Soit
k 2r
qui consiste
r 1:
n = 2m ?
Codes de Hamming.
r r k + 1 permet de dterminer le nombre
Connaissant k , l'ingalit 2
minimal de bits de contrle ajouter pour obtenir un code 1-correcteur. Les
codes de Hamming (1950) permettent alors d'atteindre cette limite thorique : pour
34
CHAPITRE 3.
puissance de 2 sont des bits de contrle ; les autres sont des bits de donnes.
Le bit de contrle d'indice
i = 2l
tous les bits de donnes dont les indices crits en base 2 ont le ime bit 1.
Pour assurer la correction, le contrle de parit est fait de la faon suivante. Tous les bits de contrle d'indice
i = 2l
e la somme
i qui ne sont pas vris. Si il y a une seule
erreur, elle provient alors du bit e.
Thorme 10 Le code de Hamming (n; n blog2 nc 1) est un code 1-
dtecte si l'un de ces bits est erron (parit errone). Soit alors
des indices des bits de contrle
correcteur qui requiert un nombre de bits de contrle minimal parmi tous les
codes (n; k ) qui sont 1-correcteur.
En particulier, le code de Hamming (2m 1; 2m 1 m) est un code 1-parfait.
La preuve dcoule directement des proprits ci-dessus. cqfd.
3.1.5
Pour qu'un code correcteur soit intressant en pratique, il faut qu'il soit
ecace calculer d'une part (i.e. implmentable sur un circuit simple) et
que d'autre part il permette facilement de calculer le mot de code le plus
proche du mot reu lors de la dtection d'erreurs.
De plus, il est important de pouvoir construire des codes ayant un rendement maximal : pour un nombre de chires de redondance donn, le taux
de correction doit tre maximal.
En pratique, les codes les plus utiliss qui satisfont ces critres sont
les codes de redondance cyclique, appels
CRC.
linaires (i.e. les bits de contrle sont des combinaisons linaires des bits
d'information) qui sont de plus stables par dcalage des chires. Un tel code
est caractris par un
mial.
polynme gnrateur ;
on parle parfois de
code polyno-
3.2.
35
n d'autre part.
n 1 dans un corps ni qui est
Enn, nous tudions la factorisation de X
dans
Vn
et
principal3
irrductibles,
Id (x) = xd +
irrductible de degr d. L'anneau quotient K = Fp [x]=Id (x):Fp [x]
Pd 1
i
i=0 i x
d,
Z=q:Z
avec
premier
par
Fp [x]
et l'entier
Ainsi on a construit un corps dont tous les lments peuvent tre vus comme
les restes dans la dicvision euclidienne par le polynme
V [X ] = fP =
Pd
i
i=0 ai X =d
Il existe une division euclidienne, et donc des pgcd et des lments premiers ou
irrductibles c'est dire sans diviseur trivial.
3
tout elment admet une dcomposition unique en facteurs irrductibles.
36
CHAPITRE 3.
A +V [X ]=P B = (A +V [X ] B ) mod P
A V [X ]=P B = (A V [X ] B ) mod P
Par abus de langage, nous notons dans la suite ces oprations
elles sont bien sr toujours ralises modulo
dans l'anneau
+ et (ou :) ;
V [X ]=P .
Ainsi,
le polynme nul (
n.
u = [u0 ; :P
: : ; un 1 ] de V n , on peut associer de manire bin 1
i
jective le polynme (u) =
i=0 ui X . De part les proprits de l'opration
polynmes de degr strictement infrieur
A tout vecteur
Aisni,
V [X ]=P .
V [X ]=P
espaces vectoriels
est un anneau ;
dans V [X ]=P :
8u; v 2 V n : u V n v =
Vn
confre alors
et
Vn
la multiplication
1 ( (u)
V [X ]=P .
de degr
(v))
3.2.
37
3.2.4
n = pn1 1 :::pnk k
sous forme de produits et puissances de nombres premiers, on peut dcomposer un polynme sous la forme de produits de polynme premiers (on
irrductibles).
dit en fait
composition.
L'anneau
et
et
est valide :
u=pgcd(u; v).
0
pgcd(U; P )=X
= 1.
et
v=pgcd(u; v)
n'admettent aucun
AU :U
l'anneau quotient
alors
inversible
dans
De manire similaire ce qui se passe pour les entiers avec les nombres
premiers,
irrductibles
non trivial. Autrement dit, un polynme est irrductible ssi il est premier
avec tous les polynmes de degr infrieur lui-mme :
est irrductible
() 8U 6= 0 2 V [X ]=P :
pgcd
(U; P ) = 1
AU
facteurs irrductibles :
o les
di
P = g1d1 : : : gkdk
gi
gi
sont irrductibles. Si
est gal 1.
38
CHAPITRE 3.
multiple.
Xn
o les
1 = g1 : : : gk
Exemple.
Dans
F 2 [X ]
X 3 1 = (X
1):(X 2 + X + 1)
3.2.5
Factorisation de X n
: classes cyclotomiques
0
a alors n = n :p
6
0
avec n
remarquable
q.
3.2.
39
Fq
et pour tout
n entier
premier avec
En gnral,
1=
n'appartient pas
Fq
nY1
i=0
(X i )
corps.
Exemple.
Dans
Comme
F2 ,
X3
1 = (X 1)(X 2 + X + 1).
F2 ;
On a :
cyclotomique.
Le calcul des classes cyclotomiques permet alors de dcomposer facilement
Xn
pour
40
CHAPITRE 3.
pour
x2
V k.
:
Vk
Vn
ci 2 V n
associ un mot
est linaire.
Dnition 13 Soit C = f(x)=x 2 V k g V n un code (n; k) sur V . Le
code C est dit linaire ssi est une application linaire de V k ! V n .
est alors caractris par une matrice GC comportant k lignes et n colonnes
et coecients dans V . La matrice GC est appele matrice gnratrice du
code C .
Les lignes de GC forment un systme gnrateur de C . De plus, comme le codage est injectif, rang(GC ) = dim (C ) = k . Ainsi les k lignes de GC forment
une base du sous-espace vectoriel C , i.e. un systme libre et gnrateur.
Le code est dit linaire ssi
Dans la littrature, les mots de code sont reprsents sous forme de vecteurs
lignes : d'o le choix de reprsenter
Exemple.
Considrons le code
dni par :
8
>
>
<
b0 = x0
b1 = x1
b2 = x2
>
>
:
b3 = x0 + x1 + x2 mod 2
Ce code est donc un code linaire sur V = Z=2Z de matrice gnratrice :
2
B = X:G
Thorme 12 Soit C
On a alors :
Alors
un code
C est (d 1)-dtecteur et
(n; k; d).
i.e.
1 0 0 1
G = 4 0 1 0 1 5:
0 0 1 1
d
1
2 -correcteur. Le code C est alors dit
code
3.3.
41
La distance minimale
d'un code
dn k+1
Le code de Hamming
nratrice :
1
6 1
G=6
4 0
1
1
0
1
1
0
1
1
1
0
1
0
0
0 0
0 0 77
1 05
0 1
Sa distance est 3 ; c'est donc un code linaire (7; 4; 3).
Plus gnralement, le code de Hamming pour
blog2 nc ; 3).
3.3.2
Codes cycliques
Un code cyclique est un code linaire qui est stable pour l'opration de
dcalage de chire.
Dnition 14
V n dnie par
On appelle
opration de dcalage
l'application linaire
([u0 ; : : : ; un 1 ]) = [un 1 ; u0 ; : : : ; un 2 ]
7
de
42
CHAPITRE 3.
:
Dnition 15
Soit
0
6 1
6
= 666 0
4 0
0
0 1
0 0
1 0 0
..
..
0
..
.
.
.
1 0
un code linaire de
V n. C
3
7
7
7
7
7
5
est
cyclique
ssi
(C ) = C
n
X1
i=0
ui X i :
n
Comme X
V X = Xn
d'un vecteur
V [X ]=(X n 1).
dans
revient multiplier
Cette proprit est la base du thorme suivant qui donne une caractrisation algbrique d'un code cyclique.
n
Xk
i=0
ai X i
3.3.
43
1
6 0
GC = 6
4 0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
est de degr
3
7
7
5
O(nk)) en la remplaant par une multiplication par le polynme g , de cot O (n log n). L'intrt
multiplication par la matrice gnratrice
GC
(de cot
pratique est que les circuits associs au codage et dcodage sont relativement
simples raliser.
Soit
gnratrice de
construite partir de
Opration de codage.
k
Soit a = [a0 ; : : : ; ak 1 ] 2 V
polynme associ.
Le mot de code associ
un mot source et
Pa =
Pk 1
i
i=0 ai X
son
44
CHAPITRE 3.
l'criture de
PaG =
i=0
ai (X i g(X ) mod X n 1)
= [g(X )(
k 1
X
i=0
ai X i )] mod X n 1
Xn
= 1 = X0
: en eet, calculer
Xn
1 revient considrer
Exemple.
polynme :
de
g(X ).
Soit
Pe = Pm
mod
g;
: il correspond
Pm =g.
Pe
est appel
syndrome d'erreur.
Pe = Pm
modulo
g;
3.3.
45
3.3.5
Le taux de correction d'un code cyclique est dicile calculer. Cependant, ce paragraphe prsente un thorme qui permet de garantir une minoration de la distance minimale d'un code, et par suite (cf thorme 12)
une minoration du taux de dtection. Ce thorme est de plus constructif :
il permet la construction de codes cycliques ayant un taux de correction
garanti.
On suppose que
1 dans F q [X ] ; soit C
tive de
Xn
teur
Comme
q.
Soit alors
(C ) s + 1:
Le code
Exemple.
[s=2]-correcteur.
Considrons
un diviseur de
0 = f0g ; g0 = X 1.
1 = f1; 2; 4g ; g1 = (1 + X + X 3 ).
2
3
3 = f3; 6; 5g ; g2 = (1 + X + X ).
On a : f1; 2g 1 . Ici, s = 2 : le code (7,4) associ g1 est donc au
moins 1-correcteur.
De la mme faon, on a
au
46
CHAPITRE 3.
Un tel code est appel code BCH. Sa distance minimale est suprieure
proprits algbriques, il existe des algorithmes spciques de codage et dcodage des code BCH, plus performants que ceux pour les codes cycliques
quelconques.
Dans la plupart des cas pratiques, on choisit
n premier avec q ; X n
se factorise alors partir des classes cyclotomiques, toutes les racines tant
de multiplicit 1 (cf 3.2.5). En particulier, les codes BCH les plus utiliss
correspondent
n = qt
q=2
q).
m)
et de longueur
n=2
V = F 2m
L'intrt de ces codes est double. D'une part, ils sont optimaux dans le
sens o ils requirent un nombre de chires de redondance minimal pour une
capacit de correction xe. D'autre part, ils sont particulirement faciles
coder et dcoder.
En eet, le polynme
X 2m 1
3.4.
47
m
X2 1 1 =
Le groupe multiplicatif
F 2m
2F2m
F 2m
(X ):
f0g
On a alors :
m
X2 1
1=
m 1
2Y
i=1
(X i ):
r chires de redondance
r, dont les racines
g(X ) =
s+
r 1
Y
i=s
(X i ):
n r) avec r arbitraire.
(n = 2m 1; k =
Les codes de Reed-Solomon sont trs utiliss en pratique. Ainsi, le satellite d'exploration de Jupiter
g=
qui est de degr
r = 32.
43
Y
j =12
(X 11j )
crois). Les codes C.I.R.C. sont des codes "raccourcis" des codes de ReedSolomon : ils ne contiennent que les mots du code de Reed-Solomon commenant par un nombre x de 0, en supprimant ces 0 de tte. Ils ont donc
la mme distance que le code de Reed-Solomon dont ils sont issus.
Par exemple, le code C.I.R.C (32,28,5) est un code raccourci du code de
Reed-Solomon(255,251,5) est utilis pour les diques compacts. Ce code permet de dtecter 4 erreurs et d'en corriger 2, ce qui s'avre assez ecace pour
les disques compacts qui sont soumis de multiples perturbations (rayures,
poussires, dfauts de surface etc).
48
CHAPITRE 3.
q =
card
(V ).
Dans, ce cas
est un
(X n
Chapitre 4
Mthodes de chirement
4.1 Introduction
Chirer un texte consiste le transformer en une forme code par chirement et rciproquement par dchirement. Ces transformations sont gnralement paramtres par une ou plusieurs cls. La motivation principale du
chirement rside en la scurisation d'un canal de communication qui peut
tre espionn.
Les trois services principaux fournis par les systmes de chirement sont :
Secret
Le secret consiste
empcher l'accs
pour ceux qui ne sont pas autorissS. Ils peuvent lire ce qui passe sur
le canal mais ne peuvent pas le dchirer.
Authentication
consiste
signer
Intgrit
checksums
secret ,
une partie de la cl ne doit pas tre prive, an de ne pas provoquer
une explosion du nombre de cls ncessaires pour communiquer avec
un grand nombre de personnes.
1
Cela est particulirement vraie dans le cas du commerce lectronique : il faut pouvoir
prouver que la commande vient bien de la personne qui la livraison est destine pour
viter les contestations.
49
50
CHAPITRE 4.
MTHODES DE CHIFFREMENT
Mi )}
Attaque brutale
Elle consiste en l'numration de toutes les valeurs possibles de la cl,
c'est--dire une exploration complte de l'espace des cls. La complexit de
cette mthode apparait immdiatement : une cl de 128 bits oblige essayer
1:844 1019
combinaisons direntes,
sur un ordinateur calculant un milliard de cls par seconde il faudra 584 ans
4.2.
51
DK
et
EK
K,
s'envoyer des messages qui sont privs (car un espion ne peut pas calculer
4.2.1 Le DES
Le systme de chirement traditionel cl prive le plus connu est le
DES (Data Encryption Standard). Il est trs bien document et ne sera
pas prsent en dtails ici, il n'est donn qu' titre de comparaison de son
fonctionnement avec celui des autres systmes prsents.
Ce systme fonctionne par blocs, il travaille sur des blocs de 64 bits
en utilisant une cl de 56 bits. Le mme algorithme est utilis pour chiffrer et dchirer. La transformation employe peut s'crire sous la forme
52
CHAPITRE 4.
MTHODES DE CHIFFREMENT
il est donc possible d'obtenir des taux de chirement trs levs, de l'ordre
de 40Mo/s il y a une dizaine d'annes, avec du matriel spcique.
La sret du DES est produite de manire classique en alternant subsitutions et permutations. La fonction
f (x; y). o x fait 32 bits et y 48. Chaque tape de la cascade est appele un
tour. Une squence de chanes de 48 bits fKi g est gnre partir de la cl
K . Notons L(x) et R(x) les parties gauche et droite de x, alors si Mi est le
rsultat du tour i, on a :
L(Mi ) = R(Mi 1 )
(4.1)
(4.2)
et
Le secret repose sur le fait qu'aprs 16 tours le rsultat sera statistiquement plat, c'est--dire que les caractristiques gnrales du message source
(la frquence des caractres, le nombre d'espaces, . . .) seront indtectables.
De plus il dispose d'une caractristique trs importante pour viter les attaques par analyse direntielle : une lgre modication de la cl ou du
texte chirer provoque des changements importants dans le texte chir.
La plupart des systmes de chirement classiques c'est--dire vieux de
plus de 30 ans, sont bass sur l'utilisation de permutations, substitutions et
d'oprations logiques ou numriques entre la cl et le message ainsi obtenu.
Plus rcemment sont apparues des mthodes mettant en jeu des proprits
sur les nombres par opposition la squence de bits. Nous allons prsenter
la plus connue : l'exponentiation. Elle nous permettra d'introduire certaines
des proprits utilises galement pour la cryptographie cl publique.
4.2.2 L'exponentiation
Pohlig et Hellman en 1978 ont construit un autre type de chireur qui
n'est pas bas sur les mthodes classiques de substitution et transposition.
tre :
E (M ) = M K mod p
(4.3)
4.2.
53
et
Exemple
= f1; 3; 7; 9g
Z10
2 Z10 = f2; 6; 14; 18g (mod 10) = f2; 6; 4; 8g
3 Z10 = f3; 9; 21; 27g (mod 10) = Z10
On pose n > 1 et a 2 Zn . On a alors :
i Pour tout x et y : a x a y (mod n) ssi x y (mod n)
ii a Zn = Zn
iii
n;
i.e. il existe
b 2 Zn
tel
Preuve
Si x y (mod n) alors on a trivialement a x a y (mod n). Rciproquement, on a a x a y (mod n) donc a (x
y) 0 (mod n) et donc n
est un diviseur de a (x
y). Comme PGCD(a,n)=1 n divise (x-y) et donc
x y (mod n) d'o la proposition i.
Pour ii. Si x 2 Zn on a PGCD(x,n)=1 et donc PGCD(a*x,n)=1. On
a donc a x (mod n) 2 Zn . a Zn est inclus dans Zn . De i. on sait que si
ax ay (mod n) alors x y (mod n). Donc aZn contient n 1 lments
distincts et n'est donc pas un sous-ensemble de Zn , d'o la proposition ii.
En particulier, comme 1 2 Zn , il existe un b 2 Zn tel que a b (mod n) = 1
d'o la proposition iii.
qu'il existe
tel que
dchirement :
D(C ) = C I mod p
On peut alors montrer que la condition
D(E (M )) = M
(4.4)
est satisfaite,
pour cela on doit utiliser le thorme de Fermat prsent un peu plus loin
en section 4.3.2. De plus
fonctions
et
E (D(M )) = M
partir de
deux parties.
54
CHAPITRE 4.
MTHODES DE CHIFFREMENT
b < a et ont
d alors a b,a 2b,. . .sont aussi divisibles par d.
nb = 0
522
(b)
453
(c)
522-453=69
(d)
453-6*69=39
(e)
69-39=30
(f )
39-30=9
(d-e)
(g)
30-27=3
(e-3f )
(h)
9-9=0
(f-3g)
(a-b)
(b-6c)
(c-d)
n et a. On conserve en
plus la valeur du coecient obtenu aprs chaque opration, cette valeur est
droite, on obtient :
(a)
2668
(b)
17
(c)
2668-140.17=16
(d)
17-16=1
0
1
(a-156b)
-156
(b-c)
157
mod p
est une opration plus coteuse en temps que des permutations ou des recherches dans une table lorsque
conception d'un composant lectronique destin chirer et dchirer rapidement en utilisant cette approche.
4.3.
55
CRYPTOGRAPHIE CL PUBLIQUE
ou assymtrique, dirent des prcdents en ce sens qu'il n'y a plus une seule
cl partage par deux utilisateurs. la place chaque utilisateur a sa propre
cl qui est divise en deux parties : une prive et une publique. partir de la
partie publique on peut gnrer une transformation
prive une transformation
D.
E , partir de la partie
et
fonction de chirement et de
ou
D(E (M )) =
D(E (M )) = M . Supposons que A veuille envoyer un message secret M B . A doit alors avoir accs EB , la fonction de transformation publique de B . A va chirer M , C = EB (M ) et envoyer le rsultat
C B . la rception B va utiliser sa fonction prive de transformation DB
pour dchirer. Si la transmission de A est espionne l'intrus ne pourra dchirer C car la fonction DB est secrte donc le secret est assur. Par contre,
comme EB est publique, B n'a aucun moyen de connatre l'identit de l'envoyeur. De mme le message envoy par A peut tre altr. Les proprits
doivent satisfaire
E (D(M )) = M . En eet, supposons que A veuille envoyer un message authenti M B . Cela signie que B doit pouvoir vrier que le message
a bien t envoy par A et qu'il n'a pas t altr en chemin. Pour cela A
va utiliser sa transformation prive DA , calculer C = DA (M ) et envoyer
C B . B peut alors utiliser la transformation publique EA pour calculer
EA (C ) = EA (DA (M )) = M . En supposant que M reprsente un texte valide (au sens du protocole utilis), B est sr que le message a t envoy par
A et n'a pas subi d'altrations pendant le transport. Cela vient de la nature
uni-directionnelle de EA : si un attaquant pouvait, partir d'un message M ,
0
0
trouver C tel que EA (C ) = M cela signierait qu'il peut calculer l'inverse
de la fonction EA ce qui est une contradiction. Par contre dans ce cas le
secret n'est pas assur car tout le monde peut accder EA et donc dchier
le message.
Exercice
En utilisant les fonctions
EA , DA , EB
et
DB
Pour garantir le secret et l'authentication il faut qu'un domaine commun existe entre A et B , ou plus prcisment entre EA , DA , EB
et DB . A envoie alors C = EB (DA (M )) B ; B calcule alors EA (DB (C )) =
EA (DA (M )). Un espion ne peut pas dcoder C car il ne dispose pas de DB
et le secret est donc prserv. Si un espion envoie un message C 0 la place
Solution
56
CHAPITRE 4.
MTHODES DE CHIFFREMENT
Proprit 9 E (D(M )) = M
et
Proprit 10 D(E (M )) = M
p et q. Il faut que p
q contiennent au moins 100 chires dcimaux chacun.
Calculer n = pq
Choisir un petit entier e qui est premier avec (n) = (p
1)(q 1)
Calculer d, l'inverse par la multiplication de e, modulo (n). Le thorme 16 garantit que e existe et est unique.
Publier la paire P = (e; n) comme sa cl publique RSA.
Garder secrte la paire S = (d; n) qui est sa cl prive RSA.
2.
3.
4.
5.
6.
Dnition 16 EA (M ) = M e mod n
et
Dnition 17 DA (C ) = C d mod n
Thorme 17 Les transformations E
pour M 2 Z n .
Preuve
et
Thorme 18
Si
n > 1 et a 2 Z n on a : a(n)
n et donc (p) = p 1 si p premier.
cardinal de Z
4.3.
57
CRYPTOGRAPHIE CL PUBLIQUE
M ed M (M p 1 )k(q 1)
M (1)k(q 1)
M
(mod p)
(mod p)
(mod p)
(4.5)
(4.6)
(4.7)
Exercice
e = 17.
p = 47 et q = 59. Pour
Chirer le message
0003 avec la cl
p = 47 et q = 594 .
on calcule n = p q = 47 59 = 2773
Prenons
e = 17.
d tel que d:e = 1
et
x
Si n1 ; n2 ; : : :
pour
4
;n
(mod
i)
= 1; 2; : : :
(mod
n)
;k
si et seulement si
58
CHAPITRE 4.
MTHODES DE CHIFFREMENT
PGP (Pretty Good Privacy) est l'outil le plus utilis pour le chirement de messages
ou l'authentication par courrier lectronique.