Vous êtes sur la page 1sur 105

Techniques de codage

et modulations
TCM

Kamel Belloulata
Introduction
Source Modulations Source Codage Codage Modulations
analogique échantillonnées numérique de source de canal numériques

Chiffrage
Échantillonnage
Quantification
Codage Théorie de l’information
Modulations
analogiques
Canal de transmission

Th. Signaux (GEI 600, GEI 605) : décrit messages et perturbations …


Th. Information (GEI 500) : propose une quantitative de l ’information et étudie sa
représentation, transmission
Modulation (GEI 500) : modifie les signaux pour les propager sur les canaux de
transmission (GEI 540, GEI 460)
Électronique (GEI 210, GEI 215, GEI 240) : réalise les fonctions
Plan
• A. Techniques de codage
• 1. Entropie & Capacité ..……. D4

• 2. Codage de source ………………. D22

• 3. Codage de canal …………………. D40

• 4. Cryptographie …………………. D72

• B. Modulations analogiques & numériques


• 1. Modulations analogiques de signaux analogiques ..……. D105

• 2. Modulations échantillonnées …………D


• 3. Transmission d ’un signal numérique sur fréquence porteuse …………. D
De saines lectures
[1] G. Battail, "Théorie de l'information. Application aux techniques de
communication", Ed : Masson, Paris, 1997, 397 p.
[2] A. Spataru, "Fondements de la théorie de la transmission de l'information", Ed :
Presse Polytechnique Romande, Lausanne, 1987, 625 p.
[3] T.M. Cover, J.A. Thomas, "Information theory", Ed : Wiley Interscience, New
York, 1991, 542 p.
[4] G. Brassard, "Cryptologie contemporaine", Ed: Masson, 1993, 122 p.
[5] P. Csillag, "Introduction aux codes correcteur", Ed: Ellipses, 1990, 96p.
[6] P.Lecoy, "Technologies des télécoms", Ed.: Hermes, 1995, 373 p
[7] Ph. Fraisse et al, "Transmission de l'information", Ed. Ellipses, 1999, 191 p
[8] http://www.multimania.com/xcotton/electron/coursetdocs.htm
A.1 Entropie & Capacité
• Théorie de l ’information
• Les sources ...
• Information & Entropie
• Les canaux discrets
• Transinformation & Capacité
Théorie de l ’information
1948 : Shannon  Théorie de l'information

Réflexion sur les techniques de communication (XIX°)


- Mécanique, accoustique
- Ondes radio-électrique
- Télégraphe (code morse)
- Téléphone, ….
Système de communication = Σ fonctions physiques réalisables
 Mauvaise compréhension des perturbations, des débits …

Vue d’ensemble d’un système de communication


indépendante des moyens techniques & physiques
 C a ne sert à rie n !
☺ 196 0 / conq uête sp atiale  co dag e de source

Aujourd'hui 
 GSM  codage de source & canal
 TV Num  codage de source & canal
 Réseaux  codage de canal
 @business  cryptage
• Paradigme de Shannon = modèle sys. com.

Source = je parle
Canal = l ’air ambiant
Perturbations = bruit sonore
Destinataire = tu écoutes
 S ou rce : siège d'évènem ents aléatoires qui constituent
le m essage ém is  E n tro p ie
 C an al : transm et et dégrade le m essage  C ap acité

Des messages différents portent la même information, le codage


cherche le message avec les meilleures propriétés.
 Codage de source  supprime la redondance, réduit le coût
 Codage de canal  protège contre les perturbations
 Chiffrage  protège contre les curieux

Deux théorèmes fondamentaux :


 Codage de source  Codage de canal
Les sources ...
Sources débitant des messages sous forme discrète !
 Source discrète d'information : suite de variables aléatoires
discrètes X1, X2, … Xn
 Symbole ou lettre : élément fondamental irréductible
contenant une information, cad réalisation particulière de la
source d'information.

Alphabet : totalité des D lettres


[X] = [x 1 ,x 2 , … ., x D ]
 Mot : succession finie de symboles

 Message : réalisation particulière parmi


les données susceptibles d'être transmises
 Source discrète sans mémoire : source pour laquelle la
probabilité d'apparition d'un symbole ne dépend pas des
symboles précédents p ( xin / xin−1 , xin−2 ,...) = p ( xin )

 Source sationnaire : source pour laquelle les probabilités


d'apparition des différents symboles ne dépendent pas de
l'origine des temps p ( xin ) = p ( xin+k ) ∀k

 Source de Markov : source pour laquelle la probabilité de


générer un symbole ne dépend que du symbole à l'instant n-1
p ( xin / xin−1 , xin−2 ,...) = p ( xin / xin−1 )
Information & Entropie ...
Propriété de l'information = imprévisibilité

• Quantité d'information propre h( x ) = f ( 1 )


p ( x)
Avec f croissante & f(1)=0

2 evt. indépendants apportent la somme de leur quantité d'info

1 1
h( x, y ) = f ( 1 )= f(1 )= f( )+ f ( ) = h( x) + h( y )
p ( x, y ) p ( x ). p ( y ) p( x) p( y)

f  fonction logarithme (Base 2 >> bit)

h ( x ) = log( 1 ) = − log( p ( x ))
p( x)
h ( x , y ) = log( 1 )
p ( x, y )

h ( x y ) = log( 1 )
p( x y)

Règle de Bayes : p ( x , y ) = p ( x y ). p ( y ) = p ( y x ). p ( x ) = p ( y , x )

h( x, y ) = h( x y ) + h( y ) = h( y x ) + h( x ) = h( y , x )

h( x y ) = h( x) si x et y indépendants
• Entropie
Hyp : source discrète finie stationnaire sans mémoire
Emission = variable aléatoire X
p i = p ( X = xi ) pour i = 1,2, ..., n
n

∑p
i =1
i =1

Quantité d'information moyenne associée


à chaque symbole de la source = entropie

n n
H ( X ) = E ( h ( X )) = ∑ pi . log(1 pi ) = − ∑ p i . log( p i )
i =1 i =1
• Ex : Source binaire

p (1) = p  − p. log( p ) − (1 − p ). log( 1 − p ) pour 0 < p < 1


H (X ) = 
p (0) = 1 − p 0 si p = 0 ou 1
• Propriétés de l ’entropie
 Continuité : l'entropie est une fonction continue de chaque
variable pi.
 Additivité : de part la définition de l'information propre.

 Positive : H ( X ) = H ( p1 , p 2 ,..., p n ) ≥ 0

1 1 1
 Bornée : H ( X ) ≤ H ( , ,..., ) = log( n )
n n n

• Redondance
R = H max ( X ) − H ( X )
• Entropie & Débit d ’information
 Le débit d'information d'une source est donné par le produit
de l'entropie de la source (valeur moyenne de l'info /symbole)
par le nombre moyen de symboles par seconde soit :
H (X )
DX = (bits .s −1 ) avec τ durée moyenne d' un symbole
τ

• Source Qaire
aire
 Source Q : source S dont l'alphabet possède Q éléments
ième
k extension : source Sk dont l'alphabet Qkaire est obtenu
en groupant par bloc de k celui de la source S
Les canaux discrets
 Canal : milieu de transmission de l'information situé entre la source
et la destination. Le canal opère une transformation entre l'espace
des symboles à l'entrée et celui de la sortie.

 Canal discret : les espaces d'entrée et de sortie sont discrets

 C anal sans m ém oire : si la transform ation d'un sym bole x à


l'entrée en un sym bole y en sortie ne dépend pas des
transform ations antérieures

 Canal stationnaire : si les transformations ne dépendent pas de


l'origine des temps
 x1 y1 x1 y2 ... x1 ym   p ( x1 , y1 ) p ( x1 , y2 ) ... p( x1 , ym ) 
x y  p( x , y ) p ( x2 , ym )
x2 ym  p ( x2 , y 2 )
[X .Y ] =  2 1
x2 y 2
[P( X , Y )] =  2 1
 ... ...   ... ... 
   
 xn y1 xn y 2 ... xn ym   p ( xn , y1 ) p ( xn , y2 ) ... p ( xn , y m ) 

• Probabilités marginales
m
p ( xi ) = ∑ p ( xi , y j )
n
H ( X ) = −∑ p ( xi ). log( p ( xi ))
j =1 i =1
n m
p ( y j ) = ∑ p ( xi , y j ) H (Y ) = −∑ p ( y j ). log( p ( y j ))
i =1 j =1
• Entropie réunie ou conjointe
n m
H ( X , Y ) = −∑∑ p ( xi , y j ). log( p ( xi , y j ))
i =1 j =1

• Entropie conditionnelle ou équivoque


n m
H ( X / Y ) = − ∑ ∑ p ( xi , y j ). log( p ( xi / y j ))
i =1 j =1

• Transinformation :
quantité d ’information moyenne qui traverse le canal
n m p ( xi , y j )
I ( X ; Y ) = ∑∑ p ( xi , y j ). log( )
i =1 j =1 p ( xi ). p ( y j )
I ( X ; Y ) = H ( X ) + H (Y ) − H ( X , Y )
I ( X ; Y ) = H ( X ) − H ( X / Y ) = H (Y ) − H (Y / X )

• Canaux non perturbés


H ( X / Y ) = H (Y / X ) = 0
H ( X , Y ) = H ( X ) = H (Y )

• Canaux très perturbés


H ( X / Y ) = H ( X ) et H (Y / X ) = H (Y )
H ( X , Y ) = H ( X ) + H (Y )
Transinformation & capacité
• Capacité d’un canal
C = Max ( I ( X ; Y ))

• Redondance d’un canal


I ( X ;Y )
Rc = C − I ( X ; Y ) ρ c = 1−
C

• Efficacité d’un canal

I ( X ;Y )
ηc =
C
Ex  canal binaire
A.2 Codage de source
• Généralités
• Théorème du codage de source
• Codage de Shannon-Fano
• Codage binaire de Huffman
• Codage Arithmétique
• Codage par longueur de plage
• Codage de type dictionnaire
Généralités
 Adapter la source au canal  l'alphabet
 le débit

 Utiliser la capacité du canal  maximiser I(X,Y)

 Hyp : Source stationnaire, canaux sans perturbation

Source Codeur Source à


initiale de source entropie max

Codeur de source  supprimer la redondance


• Propriétés d'un codeur de source
 Régularité : messages ≠  codes ≠
 Déchiffrabilité : séparation des mots non ambiguë

• Code et Mot-code
[S]=[s1,s2, …, sN] [X]=[x1,x2, …, xD]
 [C]=[c1,c2, …, cN]
• Exemple
Symbole Code A Code B Code C Code D
S1 00 0 0 0
S2 01 10 01 10
S3 10 110 011 110
S4 11 1110 0111 111
 Code à longueur variable / fixe

 Code séparable : pas de signe de démarcation entre les mots

 Code instantané ou irréductible : on détermine les mots-codes


à mesure que l'on reçoit les lettres de l'alphabet du code.
CNS : Aucun mot-code n'est le préfixe d'un autre !

 Arbre & codes


binaires instantanés
• Longueur moyenne d'un mot-code
N
l = ∑ p ( si ).li
i =1

• Limite de la longueur moyenne


H (S )
H ( S ) = H (C ) = l .H ( X )  l≥ = lmin
log D

• Capacité - Efficacité - Redondance


H(X ) log D − H ( X )
C = Max( H ( X )) = log D η= ρ=
log D log D
H (S )
η=
l . log D E x  c o d e o p t.
• Codes optimaux absolus
Codes dont l'efficacité est maximale : η= 1

 l = lmin = H ( S )
log D

N
 ∑ =1
D − li

i =1
 Cond. Néces. pour les codes opt. abs.
Théorème du codage de source

" Par un codage approprié (codage par groupe de n symboles de


la source), l'information moyenne par lettre de l'alphabet du code
peut être amenée aussi proche que l'on veut de la capacité du
code, c'est-à-dire qu'il existe toujours un codage optimal
absolu ."

Rq1 : à n fixé, le code qui donne ηmax<1 est dit 'optimal'


Codage de Shannon-Fano
Algorithme de génération d'un codage optimal absolu, pour
des sources divisibles récursivement (jusqu'à un symbole par
ensemble) en deux sous-ensembles équiprobables.
Mots-
Symboles Proba codes Longueur
sk p(sk) ck lk
s1 0.25 0 00 2
s2 0.25 0 1 01 2
s3 0.125 0 100 3
s4 0.125 0 1 101 3
s5 0.0625 0 1100 4
s6 0.0625 1 0 1 1101 4
s7 0.0625 1 0 1110 4
s8 0.0625 1 1 1111 4
Codage binaire de Huffman (1952)
- Algorithme de génération d'un codage optimal symbole par
symbole.
- Code à longueur variable  codes longs pour probas faibles

• Algorithme
 Extraction des probabilités
 Création de l'arbre
 Création de la table d'Huffman
 Codage
 On transmet la table + les codes en binaire 
Lecture de la table d'Huffman
 Création de l'arbre de décodage
 Lecture séquentielle et décodage
Rq : code d'échappement
= Huffman + fixe
Codage arithmétique
 Huffman  1 symbole = 1 mot-code
 Arithmétique  1 flot de symboles = nbre en virgule flottante

 Codeur  Decodeur
m=0 ; M=1 ; N = nombre codé ;
Tant que !(fin de fichier) Faire
{ {
i = symbole suivant; trouver i / N ∈[ai ; bi[ ;
soit [ai ; bi] associé à i ; sortir i ;
s = M-m ; s = bi - a i ;
M = m + s.bi ; N = (N - ai) / s ;
m = m + s.ai ; }
} Tant qu'il reste un symbole à lire
Renvoyer m, le compacté du fichier
• Exemple

si pi [ai ; bi[ Huffi


 0.1 [0.0 ; 0.1[ 111
A 0.1 [0.1 ; 0.2[ 110
E 0.1 [0.2 ; 0.3[ 101
I 0.1 [0.3 ; 0.4[ 100
B 0.1 [0.4; 0.5[ 0111 0.43722077 = ?
G 0.1 [0.5 ; 0.6[ 0110
L 0.2 [0.6 ; 0.8[ 00
S 0.1 [0.8; 0.9[ 0100
T 0.1 [0.9 ; 1.0[ 0101

10111010 10100100 11011001 01


01111000 00011101 10110010 11010100
Arithmétique ≥ Huffman

 + de calcul Proba très élévée 1 bit


Peu de symboles ()

Run Length

Codeurs statistiques
- Dépendants de la qualité de la statistique
- Statistique connue par le décodeur
Codage par longueur de plage (Run length coding)
 Coder le nombre de symboles identiques
000001111100000000000000000  5w5b17w
000000000001111100000000000  11w5b11w
ABCCCCCCABCABC  A B !6C A B C A B C

• CCITT, Fax groupe III


 Huffman sur les plages de 0 précédant les 1

• JPEG
 Huffman sur les plages de 0 précédant les coeff. DCT
• Table d'Huffman FAX III
Codage de type dictionnaire (1977)
 Coder une extension de la source de longueur variable

1977 : LZ (Lempel & Ziv)  1984 : LZW (Welch)

 Dictionnaire de symboles incrémenté dynamiquement


 apprentissage

 Fichier codé = suite des adresses des mots du dico

! Gérer l'incrément des bits d'adresse

PKZIP, ARJ  LZW + Huffman


 Codeur LZW  Décodeur LZW
ID= {Ci,Wi} , P=∅ ID= {Ci,Wi}
cW = 1er code ; sortir s(cW)
Tant que (symboles à coder)
C = symbole suivant Tant que (codes à lire)
Si P⊕C ∈ ID pW = cW
P = P⊕C cW = code suivant
Sinon Si (s(cW) ∈ ID)
sortir WP sortir s(cW)
P⊕C ➠ ID P = s(pW)
P=C C = 1er symbole de s(cW)
Fin si P⊕C ➠ ID
Fin tant que Sinon
P = s(pW)
sortir WP C = 1er symbole de s(pW)
sortir s(P⊕C)
P⊕C ➠ ID
Fin si
ABBABABAC.... Fin tant que
Conclusion sur le codage de source

Utilisé en compression audio & vidéo (JPEG, MPEG ...)


mais en étant associé à des algorithmes non réversibles
(avec pertes)

Supprime la redondance
 Sensibilité au bruit 
Codage de canal
A.3 Codage de canal
• Généralités
• Théorème du codage de canal
• Codes linéaires
• Codes cycliques
• Codes convolutifs
Généralités

 Détecter et/ou corriger les erreurs de transmission

Codeur de canal  introduire une redondance utilisable


• Détection et correction d'erreurs

 Détection par écho

 Détection par répétition

 Détection par bit de parité

 Détection par code

 Détection et correction par code


• Codes détecteur et/ou correcteur

 Codes linéaires
• Codes groupes
Parité, Code de Hamming
• Codes cycliques
CRC/FCS, code BCH, Golay

 Codes convolutifs
Algorithme de Viterbi
Nombre de bits erronés
• Taux d'erreur Te =
Nombre de bits transmis

011001001001100100101001010  011001101100101101000010

Te = 3 = 0.125
24

• Probabilité d'erreur

Pn bits corrects = (1 − p ) n

Pr erreurs / n = Cnr . p r .(1 − p ) n − r


• Taux de codage

k
R=
n

- k taille du mot d ’information (avant codage)


- n taille du mot-code (après codage)
Théorème du codage de canal
" Pour une source à débit d'information de R bit/s et un canal de
capacité C bit/s, si R<C, il existe un code ayant des mots de
longueur n, de sorte que la probabilité d'erreur de décodage pE
− n. E ( R )
vérifie : p E ≤ 2 "

Rq1 : un résultat inatendu !


Rq2 : existance ss méthode ...
Rq3 : à pE constant, n augmente si R
tend vers C.
Rq4 : en pratique, si R<0.5 C, des
codes existent avec pE faible.
Détection d ’erreur par bit de parité
 VRC (Vertical Redundancy Check)
 Asynchrone

 LRC (Longitudinal Redundancy Check)


 Synchrone
Codes linéaires
• Notations CS CC Canal DC
i v v’
• Mot-code : v
P
v = [a1 a2 .... am am +1 am + 2 .... an ] = [c i ]
[ c ] : m symboles de contrôle
[ i ] : k =n-m symboles d'information

• Mot-erreur : ε
ε = [ε1 ε 2 ...... ε n ] vi = vi′ + ε ⇔ vi′ = vi + ε

1 si erreur à la ième position 


εi =  
 0 sinon 
• Propriétés des codes linéaires
Les symboles de contrôle sont obtenus par une combinaison
linéaire des symboles d ’information.
⌫ un code linéaire contient v=[0 0 …0]

• Code systématique
Les symboles d ’information et de contrôle sont séparés.

• Distance de Hamming

D (vi , v j ) = (ai1 ⊕ a j1 ) + (ai 2 ⊕ a j 2 ) + .... + ( ain ⊕ a jn )


 Le nombre de coordonnées par lesquels les 2
mots diffèrent
• Illustration spatiale : modèle code groupe

• Un mot = un vecteur dans un espace à n dimensions !


w=[a1 a2 ... an]

V
 W = ensemble des N = 2 mots
n

 V = ensemble des S = 2k mots ayant un sens (mot-code) W


• Capacité de détection et région de décision
vi → Région Wi Région W0 → équidistant

⌫Détection et correction  si Wi grand

Théorème de Hamming

 Détecter d erreurs ⌫Dmin= d+1


 Corriger e erreurs ⌫Dmin= 2e+1
 Corriger e & détecter d erreurs ⌫Dmin= 2e + d + 1

Ex  Hamming(S4)
• Principe de détection et correction

Deux opérateurs : Η D

Η (vi ) = 0 pout tout i = 1 à S = 2 k

 Si Η (vi′) = 0 alors vi′ = vi → pas d' erreur

 Si Η (vi′) = z ≠ 0 → détection d' erreur


Si z est connu → D(z) = ε
vi′ + ε = vi → correction d' erreur
• Décodage et matrice de contrôle

v = [a 1 a 2 ... a n ]
 h11 h12 ... h1n 
h h 22 h 2 n 
Soit H(m,n) la matrice de contrôle, [H] =  21
... ... 
 
h m1 h m2 ... h mn 

 z1 
Soit z le syndrome (ou correcteur), z = H.v′ T =  : 
z m 

Si z=[0] pas d ’erreur, sinon erreur et +- correction


• Codage et matrice génératrice

i = [i1 i 2 ... i k ]  g11 g12 ... g1n 


g g g 
Soit G(k,n) la matrice génératrice, [G ] =  21 22 2n 
... ... 
 
 k1
g g k2 ... g kn 

v = i.G

Les matrices H et G sont liées par : G.H t = 0

et peuvent se mettrent sous la forme systématique

 :   : 
G =  Ik : A k,m  H =  A t k ,m : Im 


 :   : 
• Exemple k=2, m=1, n=3
1 0 1
0 1 1
[G 1 ] =  [H] = [1 1 1] [G 2 ] =  
 0 1 1
1 0 1

0 1 1 0 1 1
[0 0]×   = [0 0 0]
[0 0]×   = [0 0 0]
 1 0 1  1 0 1

[0 1]× 
0 1 1
[0 1]× 
0 1 1 = [0 1 1]
 = [1 0 1] 
1 0 1 1 0 1

[1 0]× 
0 1 1
[1 0]× 
0 1 1
= [0 1 1]  = [1 0 1]

1 0 1 1 0 1

[1 1]× 
0 1 1
[1 1]× 
0 1 1 = [1 1 0]
 = [1 1 0] 
1 0 1 1 0 1
 Code de Hamming groupe
 Correction d'une erreur
 2m ≥ n + 1 ⇔ 2m ≥ k + m + 1

0 0 ... 
 : : : ...
[ ] [
 H = h1 h2 ... hn ] =   avec h = bin(i )
0 1 1 ... i

 
1 0 1 ...

 Mot-erreur : ε = [.... α i .... ]


v′j = v j + ε ⇔ z = H .v′j = H .ε T ⇔ z = hi

 L'erreur est à la position dec(hi)

Ex  Hamming
0 0 0 1 1 1 1
H = 0 1 1 0 0 1 1 v = [c1 c2 i3 c4 i5 i6 i7 ]
1 0 1 0 1 0 1

Circuit de codage
H .v T = 0


 c1 = i3 + i5 + i7

c2 = i3 + i6 + i7
c = i + i + i
 4 5 6 7
 e3 = c1′ + i3′ + i5′ + i7′ ε i = 1 pour i = e3 .2 0 + e2 .21 + e1.2 2

e2 = c2′ + i3′ + i6′ + i7′
 e = c′ + i ′ + i ′ + i ′ Circuit de décodage
 1 4 5 6 7
Codes cycliques (Cyclic Redundancy Check / Frame Check Sequence)

• Code cyclique = code linéaire + propriété de permutation

• Bloc de n symboles ⌫ polynôme de degré n-1 ! :

• Mot-code : v = [a0 a1 .... an −1 ] v( x) = a0 + a1 x + a2 x 2 + ... + an −1 x n −1


• Information : i = [i 0 i1 .... i k −1 ] i( x ) = i 0 + i1x + i 2 x 2 + ... + i k −1 x k −1

[1 0 1 1] ↔ 1 + x 2 + x 3
• Polynôme générateur : g(x)

- g(x) définit le codeur (n,k)


- g(x) est de degré m=n-k
- Il vérifie : 1 + x n = g ( x ) × p( x )
g ( x ) = 1 + g1x + g 2 x 2 + ... + a n − k −1x n − k −1

Exemple : code cyclique (n=7, k=4)


1 + x 7 = (1 + x ) × (1 + x 2 + x 3 ) × (1 + x + x 3 )
g(x) est de degré 3 soit :
g ( x ) = (1 + x 2 + x 3 ) ou g(x) = (1 + x + x 3 )
• Matrice génératrice et polynôme générateur

 g(x ) 
 x.g ( x ) 
G ( k ,n ) = 
 ... 
 k −1 
 x .g ( x )  1 0 1 1 . ..
. 1 0 1 1 . . 
G ( 4, 7 ) =
Exemple : g(x)=(1+x2+x3) . . 1 0 1 1 .
 
. . . 1 0 1 1

1 0 0 0 1 0 1
0 1 0 0 1 1 1 1 1 1 0 1 0 0
G s ( 4, 7 ) =
0 H s (3,7 ) = 0 1 1 1 0 1 0
0 1 0 1 1 0
  1 1 0 1 0 0 1
0 0 0 1 0 1 1
• Codage par multiplication v( x ) = i( x ) × g ( x )

g ( x ) = 1 + x + x3 et i ( x ) = x + x 2 + x3 → v ( x ) = x + x5 + x 6
[0 1 1 1]× [1 1 0 1] = [0 1 0 0 0 1 1]
# convolution discrète !

• Codage par division


 x m .i ( x) 
c( x) = Reste  
v( x ) = c( x ) + x m .i( x )
 g ( x) 
Systématique !

 v′( x) 
• Décodage par division z ( x) = Reste  
Si z(x)=0 ⌫ Transmission OK  g ( x) 
Sinon ⌫ Détection ou correction
Ex 
• Exemples de polynômes générateurs
Code BCH (Bose-Chaudhuri - Hocquenghem)
g ( x) = (1 + x + x 4 )(1 + x + x 2 + x 3 + x 4 )(1 + x + x 2 ) ⌫ n=15, m=10, e=3
R = 33%
Code Golay
g ( x) = 1 + x 2 + x 4 + x 5 + x 6 + x10 + x11 ⌫ n=23, m=11, e=3
R = 52 %
 ATM
- x8 + x2 + x + 1 ⌫Cellule ATM
- x10 + x9 + x5+ x4+ x + 1 ⌫Couche AAL type 3/4

 CCITT N°41 ⌫X25 (HDLC)


- x16 + x12 + x5 + 1

 IEEE 802 ⌫Réseaux locaux


- x32 + x26 + x23+ x22 + x16+ x12 + x10+ x8 + x7+ x5 + x4+ x2 + 1
Codes convolutifs
• Généralités
 Les symboles d'information sont traités en flux continu

 Rque :Blocs de n0 symboles, mais dont les m0 contrôleurs ne


dépendent pas que des k0 symboles d'information !

 Contrainte : m = nb de blocs contrôlés par un bloc donné


 Longueur de contrainte : n=m.n0

k0
 Taux d'émission : R =
n0
• Codes convolutifs systématiques

[
 Mot-code : V = X 1Y1 X 2Y2 ....... X jY j .....1 ]
avec [ ]
X j = X 1j ...... X kj0 . Information

Yj = [Y ......Y ].
1
j j
m0
Contrôle

• Codes convolutifs non systématiques


 Contrôle et information sont mélangés

 Mot-code : V = [U 1U 2 .......U j .....]


• Exemple : m=4, k0=1, m0=1, n0=2

y n = R4 .x n −3 + R3 .x n − 2 + R2 .x n −1 + R1 .x n

 R=[1011]
• Représentation des codes convolutifs
U1(n)

- Par le codeur X1(n)

X2(n) U2(n)

U3(n)

- Par une matrice de transfert


1 0 1 5 0 1 1   3  0 1 0   2
G1 =   =  G2 =   = 2 G3 =   = 
0 0 0  0   0 1 0    1 0 0   4 

5 3 2 
G= 
 0 2 4 
- Un diagramme d'état

- Un treillis  chemin  décodage par chemin le + probable


 Exemple : n0=2, R=0.5 , m=3

U n(1) = xn + xn −1 + xn − 2
U n( 2 ) = xn + xn − 2
 Recherche d'erreur à la fréquence N
⌫Dmin = 2e+1
• Décodage : algorithme de Viterbi

 Stratégie de recherche de Dmin

 Exemple pour N=3

 3 
10 01 10 ⌫Min ∑ d i  = ?
 i =1 
⌫11 01 10
Conclusion sur le codage de canal

 Indispensable

 Théories mathématiques complexes ⌫des solutions concrètes


- Reed-Salomon (1984) : BCH Qaire ⌫ DVB(204,188,8)
- Turbo-Codes (1993) : Code convolutif V+H

 Recherche de codeurs conjoint source / canal


- complexité --
- robustesse ++
- flexibilité ++
A.4 Cryptographie
• Généralités
• Techniques de chiffrage
• Usage des approches clé publique
• Législation & Cryptologie
Généralités
• Objectifs
Garantir la confidentialité des données
Garantir l'intégrité des données
Garantir l'identité des correspondants
⌫ Non répudiation des transactions

• Applications
 Militaires  Téléphonie
 Mots de passe  Commerce électronique
 Sécurité réseaux  @Business
• Vocabulaire

 Cryptographie : techniques de chiffrage


 Cryptologie : cryptographie & cryptanalyse
• Vue de la théorie de l'information
 Chiffrage = Canal très perturbé

nm Messages : [M] Chiffrage [C] : nc Cryptogrammes


mi cj

nk Clés
I (M ; C ) = H (M ) − H (M / C )

 Secret parfait ssi : H ( M / C ) = H ( M ) soit I ( M ; C ) = 0


 Clé unique permet mi ⌫ cj soit nm=nc=nk
 Toutes les clés sont équiprobables
Chiffrage efficace
ssi
(Coût + temps) de décryptage >> Valeur de l'info
Techniques de chiffrage
 Approches classiques
 Chiffrage par substitution
Jules César, l'Abbé Trithème
 Chiffrage par transposition

 Approches modernes
 Chiffrage à clé privée (symétrique)
DES, IDEA,
 Chiffrage à clé publique (asymétrique)
RSA, PGP
• Chiffrage par substitution
 Chaque lettre (ou groupe de lettres) est remplacée par une
lettre (ou un groupe de lettres)

 Abbé Trithème (1499)


• Chiffrage par transposition
 Change l'ordre des lettres sans les substituer

 Exemple
• Chiffrage à clé privée

Clé privée Clé privée

Encryption Decryption
Message &^$!@#l:{Q Message

Encryption and decryption use same key


Encryption and decryption use same mathematical function
Fast
Example: Data Encryption Standard (DES, IDEA ,RC2, ...)
• Challenges with symmetric encryption

 Key length matters


 Keys must often be changed
 Shared keys must be generated and distributed securely
 Ramdomized Key generator
• IDEA (International Data Encryption Algorithm / Lai, Massey 1991 )
 Une succession d’addition (+) , multiplication (x), et Xor (⊕)
 Mot de 64 bits  Clé de 128 bits  8 rondes
 Principe

- X1 x Z1 = Y1 - Y6 + Y7 = Y8
- X2 + Z2 = Y2 - Y8 x Z6 = Y9
- X3 + Z3 = Y3 - Y7 + Y9 = Y10
- X4 x Z4 = Y4 - Y1 ⊕ Y9 = X1’ - X1 x Z1 = X1’
- Y1 ⊕ Y3 = Y5 - Y3 ⊕ Y9 = X3’ - X2 + Z2 = X2’
- Y2 ⊕ Y4 = Y6 - Y2 ⊕ Y10 = X2’ - X3 + Z3 = X3’
- Y2 x Z5 = Y7 - Y4 ⊕ Y10 = X4’ - X4 x Z4 = X4’

• Chiffrage à clé publique

Clé publique Clé privée

Encryption Decryption
Message &^$!@#l:{Q Message

 Encryptor and decryptor use different keys


 Encryptor and decryptor use different mathematical functions
 Slow
 Example: public key algorithms (RSA, Diffie-Hellman, ...)
• RSA (Rivest Shamir Adleman / 1978)
 Basé sur des propriétés algébriques : - multiplication ☺
- factorisation 
Clé publique : N, e Clé privée : N, s

m x m
x = me (mod N) m=xs (mod N)
&^$!@#l:{Q

 Choisir N = p . q avec p et q premiers (512 bits soit # 200 chiffres)


 Choisir s / s premier avec z=(p-1) .(q-1)
 e / e. s = 1 (mod z) e<<s

 Sécurité dépend des connaissances arithmétiques !


 Exemple simple de RSA
 p=3 et q=11 → N = 33 → z = 20
 s = 7 → 7.e = 1 (mod 20) → e = 3
 C = M3 . (mod 33) et M = C7 . (mod 33)
• PGP (Pretty Good Privacy / 1991 )
 Algorithme hybride : PGP = (RSA + IDEA)

 Longtemps interdit en France !


• Comparaison

Symmetric Asymmetric

Number of keys 1 2

Usual key
56 bits 512+ bits
length

Performance fast very slow

Dedicated
yes very rare
hardware
almost
Code breaking difficult
impossible
Usages des approches clé publique

• Confidentialité
• Authentification
• Confidentialité & authentification
• Signature
• Certificat
• Protocoles réseaux sécurisés
• Confidentialité

Alice Bob

Clear Encrypted Clear


Encryption Decryption
Pub
Pri

Bob’s Public Key Bob’s Private Key

• Alice gets Bob’s public key


• Alice encrypts message with Bob’s public key
• Bob decrypts using his private key
• Authentification

Alice Bob

Clear Encryption Encrypted Decryption Clear

Pri Pub

Alice’s Private Key Alice’s Public Key

• Alice encrypts message with her private key


• Bob gets Alice’s public key
• Bob decrypts using Alice’s public key
• Confidentialité & Authentification
• Signature : Authentification & Intégrité

 DSS
• Digital Signature Standard from NIST
• Public and private keys (512+ bits)
• Applied on a digest of the message to be signed

 Digest (Hash) Mess


age

• one-way cryptographic function


• maps a large message into a short hash
Hash
• typical hash size 128 bits Function

• examples: MD5, SHA Hash of Message


• How does Alice sign her message?

a
Mess
ge

Hash
Function

Alice
Hash of Message

Encrypt Hash Using Alice’s Private Key

Digital Signature = Encrypted Hash of Message


• How does Bob verify Alice’s signature?

Message

Re-Hash the
Signature Received Message
Decrypt the
Received Signature Mess
a
Message with ge

Signature Appended Signature

Alice
Decrypt Using Hash
Alice’s Public Key Function

Hash of Message Hash of Message

If Hashes Are Equal,


Signature Is Authentic
• How can Bob be assured that the Alice’s
public key belongs to Alice?

0000123
Bob Pub Certificate SHA, DH, 3837829…
Authority 1/1/97 to 12/31/98
Bob Smith, Acme Corporation
DH, 3813710…
Certificate Authority
SHA, DH, 2393702347…
Bob’s Public
Key

• Digital certificate is signed message that attests to


authenticity of user’s public key
• Certificat : l'identité électronique

• A digital certificate contains


0000123
• Serial number of the certificate SHA,DH, 3837829....
• Issuer algorithm information 1/1/93 to 12/31/98
Alice Smith, Acme Corp
• Valid to/from date DH, 3813710...
Acme Corporation, Security Dept.
• User public key information SHA,DH, 2393702347 ...

• Signature of issuing authority

• Tiers de confiance / sequestre


• Norme CCITT X. 509
• Protocoles réseaux sécurisés

 SSL (Secure Socket Layer)

 SET (Secure Electronic Transaction)

 Secure HTTP

 Secure TCP/IP ⌫ IP v.6

 ...
•SSL
 Communication sécurisée entre deux entités

 Protocole de handshake
 Client vérifie le certificat du serveur
 Client génère paire de clé
 Demande la clé publique du serveur
 Envoie de la clé publique du client chiffrée au serveur
 Test émis par le serveur

 Échange de données sur liaison sécurisée

 Commerce électronique
• Commerce électronique

 Evolution exponentielle, initiée par les professionnels, tirée


par les particuliers

 Pose tous les problèmes traités par la cryptologie


 Authentification  Intégrité
 Confidentialité  Non répudiation

 2 voies principales
 Acheteur / Vendeur ➫ SSL
 Acheteur / Vendeur + Banques ➫ SET
Législation & Cryptologie
Pas de législation internationale + évolution rapide
➫ Difficulté de standardisation des protocoles

 Les logiciels de chiffrage ne sont pas comme les autres !

 USA
 Cryptologie, armes et munitions ⌫Même cadre juridique
 ITAR (International Traffic Arm Regulation) ⌫Export (40 bits)
 France
 Législation très restrictive mais évolutive
 SCSSI (Service Central de Sécurité des Sys. Informations) ⌫Organisme d'état

 Décrets 98-206 & 207 du 23 Mars 1998


- Autorisation ⌫Déclaration ⌫Sans formalité
- 240 essais, F U I E

 Sanctions encourues :
- Import sans autorisation : 6 mois & 200 000 F
- Tiers de confiance illégal : 2 ans & 300 000 F
- Fourniture pour crime & délit : 3 ans & 500 000 F
- Circonstance aggravante ?
Conclusion sur la cryptograhie

 Indispensable aux réseaux de communication


➫ Sécurité Intranet / Extranet / Internet

 Moteur de développement du @Business

 Conséquences juridiques
… Transition ...
Théorie de l'information ➫ Domaine vaste (Continu, Modèle de
réseaux, Théorie de la distorsion, …)

Techniques de codage

Coder, c ’est bien,


mais moduler ça sert aussi ...

Vous aimerez peut-être aussi