Vous êtes sur la page 1sur 34

Codes dtecteurs et correcteurs derreurs

Compression
Encryptage

Cours darchitecture
- Chapitre 2 : Encodage de linformation Yann Walkowiak

Info 1 - S1

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Introduction

On utilise des codes afin de rsoudre 3 types de problmes :


assurer lintgrit de linformation (dtection et correction derreurs)
minimiser la taille de linformation (compression)
garantir la scurit de linformation (encryptage)

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Plan du chapitre

Codes dtecteurs et correcteurs derreurs

Compression

Encryptage

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

section 1 - Codes dtecteurs et correcteurs derreurs

Codes dtecteurs et correcteurs derreurs


Codes dtecteurs derreurs
Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Transmission de linformation

Les informations sont traduites dans lordinateur par une suite de 0 et de


1 correspondant au plus bas niveau la prsence ou labsence de courant.
Des interfrences (bruit) peuvent nuire la transmission des informations
et provoquer des modifications.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Un exemple de code dtecteur : contrle de parit


On ajoute un bit au dbut ou la fin de chaque bloc tel que le nombre
total de bits 1 soit pair (parit paire).
Exemple (contrle de parit)
On peut coder les caractres en ASCII sur 8 bits : 1 bit de parit paire
puis les 7 bits habituels. Le bit de parit est 0 si le nombre de bits 1
est pair et 1 sinon, de sorte que le message reu doit comporter des
blocs de 8 bits contenant tous un nombre pair de bits 1. Si ce nest pas
le cas, cest que le message a t alter.
A
B
C
D
..
.

0
0
1
0

Yann Walkowiak

100 0001
100 0010
100 0011
100 0100
..
.

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Limites de la mthode

Remarque
1

Quand une erreur est dtecte, elle nest pas corrige, il faut alors
demander la retransmission de linformation.

Cette mthode ne fonctionne que sil y a un nombre impair derreurs.


En particulier, sil y a deux erreurs, celles-ci ne sont pas dtectes.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Un exemple de code correcteur : la double parit

Chaque caractre est cod sur une ligne dun tableau, on effectue ensuite
sur chaque bloc de k caractres, un contrle de parit sur chaque ligne et
chaque colonne.
Sil y a une erreur, alors les bits de parit de la ligne et de la colonne
correspondantes seront faux, donc lerreur sera la fois dtecte et
localise, donc corrige.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple
Exemple
On reoit le code suivant, auquel une double parit a t applique :
0
0
0
0
0

1
1
1
1
0

1
1
1
1
0

1
1
0
1
0

0
0
1
0
1

0
0
1
0
1

1
1
0
0
0

1
0
0
1
0

Une erreur a t dtecte dans la premire ligne, mais galement dans la


quatrime colonne. Le bit en rouge a donc t alter, il faut le corriger en
0. On obtient alors, en oubliant les bits de contrle :
0
0
0
0

1
1
1
1

1
1
1
1

0
1
0
1

0
0
1
0

0
0
1
0

1
1
0
0

1
9
6
8

Le message envoy est donc : 1968.


Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple
Exemple
On reoit le code suivant, auquel une double parit a t applique :
0 1 1
0 1 1
0 1 1
0 1 1
0 0 0

1 0
1 0
0 1
1 0
0 1

0 1
0 1
1 0
0 0
1 0

1
0
0
1
0

Une erreur a t dtecte dans la premire ligne, mais galement dans la


quatrime colonne. Le bit en rouge a donc t alter, il faut le corriger en
0. On obtient alors, en oubliant les bits de contrle :
0
0
0
0

1
1
1
1

1
1
1
1

0
1
0
1

0
0
1
0

0
0
1
0

1
1
0
0

1
9
6
8

Le message envoy est donc : 1968.


Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple
Exemple
On reoit le code suivant, auquel une double parit a t applique :
0
0
0
0
0

1
1
1
1
0

1
1
1
1
0

1
1
0
1
0

0 0 1
0 0 1
1 1 0
0 0 0
1 1 0

1
0
0
1
0

Une erreur a t dtecte dans la premire ligne, mais galement dans la


quatrime colonne. Le bit en rouge a donc t alter, il faut le corriger en
0. On obtient alors, en oubliant les bits de contrle :
0
0
0
0

1
1
1
1

1
1
1
1

0
1
0
1

0
0
1
0

0
0
1
0

1
1
0
0

1
9
6
8

Le message envoy est donc : 1968.


Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple
Exemple
On reoit le code suivant, auquel une double parit a t applique :
0
0
0
0
0

1
1
1
1
0

1
1
1
1
0

1
1
0
1
0

0 0 1
0 0 1
1 1 0
0 0 0
1 1 0

1
0
0
1
0

Une erreur a t dtecte dans la premire ligne, mais galement dans la


quatrime colonne. Le bit en rouge a donc t alter, il faut le corriger en
0. On obtient alors, en oubliant les bits de contrle :
0
0
0
0

1
1
1
1

1
1
1
1

0
1
0
1

0
0
1
0

0
0
1
0

1
1
0
0

1
9
6
8

Le message envoy est donc : 1968.


Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple
Exemple
On reoit le code suivant, auquel une double parit a t applique :
0
0
0
0
0

1
1
1
1
0

1
1
1
1
0

1
1
0
1
0

0 0 1
0 0 1
1 1 0
0 0 0
1 1 0

1
0
0
1
0

Une erreur a t dtecte dans la premire ligne, mais galement dans la


quatrime colonne. Le bit en rouge a donc t alter, il faut le corriger en
0. On obtient alors, en oubliant les bits de contrle :
0
0
0
0

1
1
1
1

1
1
1
1

0
1
0
1

0
0
1
0

0
0
1
0

1
1
0
0

1
9
6
8

Le message envoy est donc : 1968.


Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Limites de la mthode

Remarque
1

Sil y a deux erreurs sur la mme ligne (ou colonne), alors on ne


peut plus corriger !

Dans les transmissions de donnes, les erreurs apparaissent souvent


par blocs.

Nous allons dsormais aborder une autre mthode, plus complexe, qui
permet de dtecter des erreurs portant sur plusieurs bits.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Un code dtecteur plus efficace : CRC

Un message de m bits est vu comme la liste des coefficients dun


polynme de degr m 1. La thorie des polynmes va nous permettre
deffectuer des oprations sur le message et ainsi de dtecter
dventuelles erreurs de transmission.
Exemple
le message 1101 correspond au polynme x 3 + x 2 + 1

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Mthode de codage et de dcodage

Choix dun polynme, dit polynme gnrateur, not G (x), dont on


notera le degr r
soit m le message et M(x) le polynme correspondant.
Codage :
1

on calcule le polynme M(x) x r

on effectue la division modulo 2


M(x) x r G (x)
R(x) Q(x)

On note T (x) le polynme T (x) = M(x) x r R(x)(= G (x)Q(x)).

T (x), appel polynme cyclique, est le message envoy.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Mthode de codage et de dcodage

Choix dun polynme, dit polynme gnrateur, not G (x), dont on


notera le degr r
soit m le message et M(x) le polynme correspondant.
Dcodage :
1
on effectue la division T (x)/G (x)
2

si le reste est 0, on suppose quil ny a pas derreur ; le message


dorigine est obtenu en enlevant les r derniers bits du message
correspondant T (x).

si le reste est non nul, il y a une erreur donc on demande la


retransmission de linformation

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Codage
Exemple
On choisit dutiliser le polynme gnrateur G (x) = x 3 + x + 1, de degr
r = 3.
Le message envoyer est 101101, ce qui correspond au polynme
M(x) = x 5 + x 3 + x 2 + 1.
Codage :
1

M(x) x r = x 8 + x 6 + x 5 + x 3

x8 + x6 + x5 +
(x 8 + x 6 + x 5 )
0 +

x3
x3
x3

x3 + x + 1
x5 + 1
+x + 1
x +1

Donc Q(x) = x 5 + 1 et R(x) = x + 1.


T (x) = M(x) x r R(x) = x 8 + x 6 + x 5 + x 3 + x + 1, donc on
envoie 101101011.
Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Codage
Exemple
On choisit dutiliser le polynme gnrateur G (x) = x 3 + x + 1, de degr
r = 3.
Le message envoyer est 101101, ce qui correspond au polynme
M(x) = x 5 + x 3 + x 2 + 1.
Codage :
1

M(x) x r = x 8 + x 6 + x 5 + x 3

x8 + x6 + x5 +
(x 8 + x 6 + x 5 )
0 +

x3
x3
x3

x3 + x + 1
x5 + 1
+x + 1
x +1

Donc Q(x) = x 5 + 1 et R(x) = x + 1.


T (x) = M(x) x r R(x) = x 8 + x 6 + x 5 + x 3 + x + 1, donc on
envoie 101101011.
Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Codage
Exemple
On choisit dutiliser le polynme gnrateur G (x) = x 3 + x + 1, de degr
r = 3.
Le message envoyer est 101101, ce qui correspond au polynme
M(x) = x 5 + x 3 + x 2 + 1.
Codage :
1

M(x) x r = x 8 + x 6 + x 5 + x 3

x8 + x6 + x5 +
(x 8 + x 6 + x 5 )
0 +

x3
x3
x3

x3 + x + 1
x5 + 1
+x + 1
x +1

Donc Q(x) = x 5 + 1 et R(x) = x + 1.


T (x) = M(x) x r R(x) = x 8 + x 6 + x 5 + x 3 + x + 1, donc on
envoie 101101011.
Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Codage
Exemple
On choisit dutiliser le polynme gnrateur G (x) = x 3 + x + 1, de degr
r = 3.
Le message envoyer est 101101, ce qui correspond au polynme
M(x) = x 5 + x 3 + x 2 + 1.
Codage :
1

M(x) x r = x 8 + x 6 + x 5 + x 3

x8 + x6 + x5 +
(x 8 + x 6 + x 5 )
0 +

x3
x3
x3

x3 + x + 1
x5 + 1
+x + 1
x +1

Donc Q(x) = x 5 + 1 et R(x) = x + 1.


T (x) = M(x) x r R(x) = x 8 + x 6 + x 5 + x 3 + x + 1, donc on
envoie 101101011.
Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Dcodage

Exemple
On reoit donc le message 101101011, correspondant au polynme
T (x) = x 8 + x 6 + x 5 + x 3 + x + 1.
Dcodage :
1

on effectue la division T (x)/G (x) et on vrifie que le reste est nul.


Le message de dpart est alors retrouv en enlevant les 3 derniers
bits du message reu : 101101.

Exercice : Montrer que, si le message est altr et quon reoit


11010101, alors lerreur sera dtecte.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Dcodage

Exemple
On reoit donc le message 101101011, correspondant au polynme
T (x) = x 8 + x 6 + x 5 + x 3 + x + 1.
Dcodage :
1

on effectue la division T (x)/G (x) et on vrifie que le reste est nul.


Le message de dpart est alors retrouv en enlevant les 3 derniers
bits du message reu : 101101.

Exercice : Montrer que, si le message est altr et quon reoit


11010101, alors lerreur sera dtecte.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Exemple - Dcodage

Exemple
On reoit donc le message 101101011, correspondant au polynme
T (x) = x 8 + x 6 + x 5 + x 3 + x + 1.
Dcodage :
1

on effectue la division T (x)/G (x) et on vrifie que le reste est nul.


Le message de dpart est alors retrouv en enlevant les 3 derniers
bits du message reu : 101101.

Exercice : Montrer que, si le message est altr et quon reoit


11010101, alors lerreur sera dtecte.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codes dtecteurs derreurs


Codes correcteurs derreurs
Cyclic Redondant Coding (ou CRC)

Choix du polynme gnrateur

Remarque
un bon choix de G (x) assure la dtection de toute erreur sur 1 ou 2 bits
conscutifs, voire plus.
Exemple
CRC-CCITT G (x) = x 16 + x 12 + x 5 + 1 pour les caractres cods sur 8
bits dtecte toutes les erreurs groupes en blocs de taille infrieure 16
bits.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

section 2 - Compression

Compression
Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

Codage de Huffman
Ce codage est bas sur la frquence des caractres, par exemple dans un
texte.
Exemple
Le mot RECETTE comporte les lettres R, E, C et T avec les frquences
suivantes :
R : 1, E : 3, C : 1, T : 2
On effectue ensuite lalgorithme suivant :
(1) On classe les lettres par frquences dcroissantes
(2) Tant quil reste plus dun sommet, Faire :
On choisit les deux sommets dont la somme est minimale et on les
remplace par un sommet dtiquette cette somme, en mettant un poids 0
sur larte du dessus et 1 sur larte du dessous.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

Codage de Huffman
Exemple
Voici larbre obtenu la fin de lalgorithme.

Fig. 1: Arbre de Huffman

On codera chaque lettre par la succession de 0 et de 1 lus partir de la


racine de larbre jusqu la lettre code.
Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

Codage de Huffman
Exemple
Voici larbre obtenu la fin de lalgorithme.

Fig. 1: Arbre de Huffman

lettre
code

E
0

Yann Walkowiak

T
10

R
110

C
111

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

Efficacit

Remarque
1

Par construction, on est assur de la possibilit de dcoder malgr le


fait que les codes sont de tailles diffrentes.

Les lettres les plus frquentes sont celles qui prendront le moins de
place en mmoire.

Dfinition
Le taux de compression dun code est le rapport du volume des donnes
aprs compression sur le volume initial des donnes.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

Run Length Encoding (ou RLE)


Ide : on code la rptition des caractres. Imaginons par exemple une
image en noir et blanc, chaque ligne est code par la couleur (B ou N)
des pixels successifs :
BBBBBBBBBBNNNBBBBBBNNNNNNNN
On codera
@B10@N3@B6@N8
ce qui est moins long.
Exemple
Coder de cette manire la suite de bits suivante :
BNBNBNBNBNBNBNBNBNBNBNBNBNBN

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Codage de Huffman
Run Length Encoding (ou RLE)
JPEG

JPEG

Ide : limage est dcoupe en carrs de 8 pixels sur 8, puis on dcrit les
variations laide dune somme de cosinus damplitudes et frquences
varies (ici, on peut liminer les termes ngligeables, quitte perdre en
qualit) et enfin on utilise le codage de Huffman sur ces amplitudes et
frquences.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

section 3 - Encryptage

Encryptage

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Codes dtecteurs et correcteurs derreurs


Compression
Encryptage

Cryptographie

Jules Csar utilisait dj un systme de cryptage en temps de guerre, en


envoyant des messages aprs avoir dcal les lettres dun nombre fixe de
caractres. Cette science sest ensuite principalement dveloppe lors de
la seconde guerre mondiale puis avec lusage dinternet.
Nous reparlerons en dtail de mthodes de cryptographie dans le cours de
mathmatiques discrtes, en particulier de la mthode RSA qui sappuie
sur des rsultats darithmtique.

Yann Walkowiak

Cours darchitecture - Chapitre 2 : Encodage de linformation -

Vous aimerez peut-être aussi