Codage et décodage… où les nombres s`amusent

Transcription

Codage et décodage… où les nombres s`amusent
Codage et décodage…
où les nombres s’amusent
Maxime Carpentier de Changy,
Laure Friart et Bastien Noteris
Athénée Royal d’Uccle I
UCL-EPL
Congrès Dédra-MATH-isons
19 avril 2012
Plan de la présentation
•
•
•
•
•
•
Objectifs du travail
Bref historique de la cryptographie
L’arithmétique modulaire
Le chiffrement de Hill
La correction des erreurs
Conclusions
Objectifs du travail
Etude de quelques uns des très
nombreux aspects
mathématiques liés au codage
de l’information.
Bref historique de la cryptographie
• De:
– kruptos (κρυπτoσ) qu’on peut traduire par secret
– et graphein (γραϕην) par écriture
• La cryptographie est l'étude des méthodes
permettant de chiffrer et de coder des
messages.
Bref historique de la cryptographie
• Vers 1900 avant J-C, emploi de hiéroglyphes modifiés
non conformes au langage habituel.
• Vers 487 avant J-C, emploie de la scytale par les
Spartiates.
• Vers 150 avant J-C, invention du carré Polybe.
Bref historique de la cryptographie
• Au 9ème siècle, Al-Kindi rédige une technique de
décryptage basée sur l'analyse fréquentielle.
• A partir de 1226, cryptage des archives de la ville de
Venise.
• En 1466, L.B. Alberti invente et publie le premier
chiffre polyalphabétique. Conception d'un cadran de
codage.
Bref historique de la cryptographie
• Vers 1500, invention du chiffre stéganographique
par l'abbé Jean Trithème. Les Ave Maria.
• En 1506, Giovanni Soro, secrétaire du chiffre de
Venise.
• Vers 1550, invention de la grille de Cardan.
Bref historique de la cryptographie
• En 1585, invention du carré de Vigenère (inventé par
Trithème).
Bref historique de la cryptographie
• En 1623, Sir Francis Bacon invente l'alphabet
bilitère.
• Vers 1790, Thomas Jefferson invente le cylindre
chiffrant.
• En 1917, Gilbert S. Vernam
imagine un code «indécryptable».
Bref historique de la cryptographie
• Beaucoup employée pendant les guerres.
• En 1918, brevet par A. Scherbius de la
machine à chiffrer Enigma.
Bref historique de la cryptographie
• En 1976, invention de la cryptographie à clé
publique par W. Diffle et M. Hellman.
• Par la suite: invention de méthodes de plus en
plus complexes...
La cryptographie aujourd'hui
La cryptographie moderne est
omniprésente: ordinateurs,
cartes bancaires, transmissions
et stockages de données...
Arithmétique modulaire
• Si ses origines remontent à l’Antiquité, les historiens
associent généralement sa naissance à l’année 1801,
date de la publication du livre Disquisitiones
arithmeticae de Carl Friedrich Gauss.
• L'idée de base de l'arithmétique modulaire est de
travailler non sur les nombres eux-mêmes, mais sur
les restes de leur division par un nombre donné.
Le code de César
Le code de Jules César consiste en une substitution mono-alphabétique, où
la substitution est définie par un décalage de lettres.
●Par exemple, si on remplace A par D, on remplace B par E, C par F, D par G,
etc...
●
Le code César peut se formaliser avec l'arithmétique modulaire ou
«arithmétique de l'horloge» qui est un outil mathématique très commun de la
cryptographie. Cette technique trouve ses origines dans le travail du
mathématicien Euclide.
●
L’arithmétique de l’horloge
Donnons comme exemple, l'«arithmétique de l'horloge» qui se réfère à
l'«addition» des heures indiquées par la petite aiguille d'une horloge.
Concrètement, si nous commençons à 9 heures et ajoutons 4 heures, alors
plutôt que de terminer à 13 heures (comme dans l'addition normale), nous
sommes à 1 heure.
De la même manière,
si nous commençons
à minuit et nous
attendons 7 heures
trois fois de suite,
nous nous retrouvons
à 9 heures (au lieu de
21).
Les modulo
Fondamentalement, quand nous atteignons 12, nous recommençons à zéro ;
nous travaillons modulo 12. Pour reprendre l'exemple précédent, on dit que 9
et 21 sont congrus modulo 12. Les nombres 9 ; 21 ; 33 ; 45 ; etc. sont
considérés comme égaux lorsqu'on travaille modulo 12.
Pour généraliser, nous pouvons facilement imaginer une horloge qui contient
un nombre arbitraire d'heures, et faire des calculs avec un nouveau modulo.
●Si a et b sont congruents modulo n, on écrira :
●
a ≡ b(n) ou a ≡ b [ n] ou a ≡ b(mod n)
ce qui se lit dans tous les cas « a est congru à b modulo n ».
●Par exemple :
26 ≡ 12(7)
qui se lit « 26 est congru à 12 modulo 7 ».
Chiffrement
Pour expliquer cette relation prenons l'alphabet français conventionnel de 26
caractères et l'alphabet décalé de 3 lettres et ajoutons leur une
correspondance numérique.
●
A B C D E F G H I J K
L
M N O P
Q R
S
T
U V
W X
Y
Z
D E F G H I J K L MN O P
Q R
S
T
U V
W X
Y
Z
A
B
C
0
13
15
16
17
19
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
14
18
20
Il est possible de trouver une transformation qui permette d'associer, à
chaque valeur numérique, la valeur augmentée de 3 et donne le résultat
modulo 26.
On définit ainsi une fonction
●
C ( x) = x + 3(mod 26)
Chiffrement
Plus généralement:
C ( x) = x + k (mod n)
où n= longueur de l'alphabet et k=la clé
Il suffit alors de remplacer la lettre par son équivalent numérique et de lui
appliquer la transformation.
Prenons par exemple le message « Bleu » et chiffrons le :
●
Le B serait le 1, C(1) = 1+3 ≡ 4 (mod 26) qui correspond au E
●Le L serait le 11, C(11) = 11+3 ≡ 14 (mod 26) qui correspond au O
●Le E serait le 4, C(4) = 4+3 ≡ 7 (mod 26) qui correspond au H
●Le U serait le 20, C(20) = 20+3 ≡ 23 (mod 26) qui correspond au X
●
Le message « BLEU » chiffré avec la clé 3 devient « EOHX ».
●
Déchiffrement
Le déchiffrement consistera à faire l'opération inverse de chiffrement càd :
●
C −1 ( x) = ( x − k )(mod n)
Dans le cas de notre message chiffré « EOHX » avec une clé de chiffrement
de 3
●
C −1 ( x) = ( x − 3)(mod 26)
Ce qui donne
●
Pour E, x= 4, C-1(4)= 4-3 ≡1(mod 26) ce qui correspond au B
-1
●Pour O, x= 14 C (14)= 14-3 ≡ 11(mod 26) ce qui correspond au L
-1
●Pour H, x= 7 C (7)= 7-3 ≡ 4(mod 26) ce qui correspond au E
-1
●Pour X, x= 23 C (23)= 23-3 ≡ 20(mod 26) ce qui correspond au U
●
Le chiffrement affine
C'est une généralisation du chiffrement de César qui se définit comme suit :
●
C( a ,b ) ( x) = ( ax + b)(mod n)
a et b deux nombres entiers inférieurs au nombre n
●Remarque: Il faut que a et n soient premiers entre eux sinon il serait possible
de chiffrer un même caractère de différentes manières.
●Les chiffres affines sont utilisés car ils offrent une plus grande sécurité puisque
les clés d'un chiffrement affine sont doubles (a,b)
●Dans le cas d'un message écrit dans un alphabet de 26 lettres et chiffré selon
un algorithme affine, a et b sont compris entre 0 et 25. Donc le système de
chiffrement pour un alphabet de 26 lettres est 26x26=676
●Ainsi le nombre de clés pour un alphabet de n lettres est n fois supérieur à
celui d'un simple code César.
Codage et décodage d’un chiffrement
affine
Nous allons étudier le déchiffrement au moyen d'un exemple simple au
moyen d'un texte chiffré
●
C(3,1) ( x) = (3 x + 1)(mod 26)
Décodage d’un chiffrement affine
L'opération mathématique de déchiffrement consiste à chercher l'inconnue
x, la valeur y étant donné modulo n soit :
●
ax + b = y (mod n)
ax = ( y − b)(mod n)
Nous cherchons donc une valeur a-1 qui satisfasse a-1a (mod n) = 1 de
manière à ce que :
●
a −1ax = a −1 ( y − b)(mod n)
x = a −1 ( y − b)(mod n)
Exemple
Supposons le message « LBGW » codé avec un chiffre affine de la forme
●
C(3,1) ( x) = 3 x + 1
Trouver la fonction inverse de C(x) modulo 26
●
C(3,1) ( x) = 3 x + 1
3x = y − 1
Pour isoler x, il faut multiplier les 2 membres de l'équation par l'inverse de 3.
L'inverse de 3 modulo 26 est un entier n tel que
3.n≡1(mod26), soit n=9
9.3=27≡1
Donc
●
x = 9( y − 1)
Exemple
•Nous pouvons maintenant déchiffrer le message
–Pour le L, 9(11-1)=99-9≡12(mod 26) ce qui correspond
au M
–Pour le B, 9(1-1)=0≡0(mod 26) ce qui correspond au A
–Pour le G, 9(6-1)=54-9≡19(mod 26) ce qui correspond
au T
–Pour le W, 9(22-1)=198-9≡7(mod 26) ce qui correspond
au H
•Le message déchiffré est MATH
Le chiffrement de Hill
Lester Hill, mathématicien cryptographe
américain (1891-1961) publie en 1929 un
nouveau type d'algorithme de chiffrement.
Son idée n'est plus de coder lettre par lettre,
mais de coder simultanément des groupes
de m lettres! Bien sûr, plus m est grand, plus
les analyses statistiques deviennent
difficiles!
Le chiffre de Hill est un chiffre polygraphique, c'est-à-dire qu'on ne
(dé)chiffre pas les lettres les unes après les autres, mais par paquets. Nous
étudierons la version bigraphique, c'est-à-dire que nous grouperons les
lettres deux par deux.
Codage du message
• Chiffrer les lettres du message par le rang qu’elles
représentent dans l’alphabet.
A B C D E F G H I
J
K L
M N O P Q R S T U V W X Y Z
1
10
11
13
2
3
4
5
6
7
8
9
12
14
15
16
17
18
19
20
21
22
23
24
25
26
• Les lettres du message clair Lk et Lk+1 seront chiffrées Ck et Ck+1
par cette formule:
 Ck   a b   Lk 
C  = 
⋅ L 
 k +1   c d   k +1 
( mod
26 )
Exemple de codage
• Si l’on utilise comme clef de chiffrement la matrice
 2 5
A=

7
9


• Pour chiffrer le message «Je fais un code»
On prendra alors : L1 = j = 10 et L2 = e = 5
Elles seront donc cryptées ainsi :
 C1   2 5 10   45 
19 
=
(mod 26) =  
 =



 11 
 C2   7 9  5  115 
Ce qui correspond aux lettres « s » et « k »
Exemple (suite)
Lettre
J
E
F
A
I
S
U
N
C
O
D
E
Rang
10
5
6
1
9
19
21
14
3
15
4
5
Rang
codé
19
11
17
25
9
26
8
13
3
26
7
21
Lettre
codée
S
K
Q
Y
I
Z
H
M
C
Z
G
U
Le message chiffré sera donc:
« SKQYIZ HMCZGU »
Remarques importantes
• Les composantes de la matrice de chiffrement
doivent toujours être des nombres entiers.
• Il faut que la matrice de chiffrement soit
inversible.
• Pour que la matrice A soit inversible dans Z26
il faut que
det A = ad − bc
soit non nul, c’est-à-dire que det A et 26 sont
premiers entre eux.
Décodage
• Tout d’abord il faut que la matrice de chiffrement
ait une matrice inverse dans Z26 .
a b
c d


−1
( mod
26 )
• Cette matrice existe si (ad-bc)-1 existe et si (ad-bc)
est impair et n’est pas multiple de 13.
Pour déchiffrer c’est le même principe, on prend
les lettres deux par deux et on les multiplie par la
matrice de déchiffrement :
−1
 Lk   a b   Ck 
⋅

=


L
C
c
d
  k +1 
 k +1  
( mod
26 )
Exemple
• Reprenons notre exemple :
−1
 2 5
 9 −5 
1
⋅

 =

2 ⋅ 9 − 7 ⋅ 5  −7 2 
7 9
Il faut calculer l’inverse de -17 modulo 26. Il existe de
nombreux algorithmes dont l’algorithme d’Euclide
étendu (calcul du PGCD), pour effectuer ceci mais nous
allons utiliser la méthode «force brute» qui est la
manière la plus simple.
Exemple (suite)
• Soit k = -17. Trouvons k-1 tel que:
k .k −1 (mod 26) = 1
Il faut alors multiplier k par les entiers m de l’ensemble :
{1,3,5,7,9,11,15,17,19,21,23,25}
-17.1 (mod 26) = 9
-17.3 (mod 26) = 1
Donc -17-1 (mod 26) = 3
• Grâce à cette méthode on peut construire
la table des inverses modulo 26.
…
1
3
5
7
9
11 15 17 19 21 23 25
…
…
1
9
21 15
3
19
…
7
23 11
5
17 25
Exemple (suite)
• On peut maintenant terminer de calculer la
matrice de déchiffrement :
 2 5


7
9


−1
 9 −5 
 27 −15 
 1 11
mod
26
=
3
⋅
mod
26
=
mod
26
=
(
) 
) 
) 
(
(

−
7
2
−
21
6
5
6






et:
 L1   1 11 19 
⋅ 
 =

 L2   5 6   11 
 10 
( mod 26 ) =  
5
Exemple (suite)
Lettre
codée
S
K
Q
Y
I
Z
H
M
C
Z
G
U
Rang
codé
19
11
17
25
9
26
8
13
3
26
7
21
Rang
10
5
6
1
9
19
21
14
3
15
4
5
Lettre
J
E
F
A
I
S
U
N
C
O
D
E
On obtient donc:
« Je fais un code »
Attaque du code
• 1er exemple:
Quand on cherche à déterminer la clé de chiffrement
d’un adversaire, on peut avoir un certain degré
d’information :
- On peut avoir le message chiffré
- On dispose en même temps du message chiffré et
d’une partie du message clair.
• Avoir une partie du message clair n’est pas si
compliqué.
En effet il existe des messages protocolaires comme
dans l’armée où les messages comportent un même
début et une même fin.
C’est ce que fit Türing pour la machine Enigma.
Exemple
• On suppose que le texte codé est le suivant :
COR ZZETMDW… ,
ce qui correspond au début de
MON GENERAL…
• Un espion dans les bases adverses nous a permis de savoir
qu’ils utilisent le chiffrement de Hill, avec une clé de
longueur 2.
On a donc une matrice d’ordre 2 (2x2) à coefficients dans
Z26.
• La première paire CO s’obtient en appliquant la matrice A2x2
à partir de la paire MO, la seconde paire RZ s’obtient en
appliquant la matrice A2x2 à partir de la paire NG.
Exemple (suite)
Message codé: COR ZZETMDW…
Message clair: MON GENERAL…
Les premières paires de lettres sont
C = 2 O = 14 R = 17 Z = 25
M = 12 O =14 N = 13 G = 6
Cela se code matriciellement:
 2 17 
12 13 

 = A⋅

14
25
14
6




Ce que nous écrivons sous la forme B = AC.
Exemple (suite)
•
Si la matrice C est inversible dans Z26, on obtient:
A = BC −1
•
On calcule le déterminant de C qui vaut -110 qui n’est pas premier avec
26. Donc ce n’est pas inversible dans Z26.
On recommence avec la deuxième et la troisième paires :
R = 17 Z = 25 Z = 25 E = 4
N = 13 G = 6 E = 6 N = 13
Ce qui donne :
 17 25 
13 4 

 = A⋅

25
4
6
13




Qu’on écrit D = AE.
Le déterminant de E vaut 145 qui est premier avec 26, E est donc inversible
dans Z26.
Exemple (suite)
• On obtient donc :
1  d −b 
E =


ad − bc  −c a 
−1
1  13 −4 
E =
 −6 13  (mod 26)
145 

−1
145. 7 (mod 26) = 1
13 4 


6
13


−1
 13 −4 
 91 −28 
 13 24 
( mod 26 ) = 7 ⋅ 
 ( mod 26 ) = 
 ( mod 26 ) = 

−
6
13
−
42
91
10
13






Exemple (suite)
• Ce qui donne donc comme matrice de
chiffrement A:
 17 25   13 24 
 471 733 
3 5
A=
⋅
 (mod 26) = 
 (mod 26) = 

25
4
10
13
365
652
1
2

 





Ceci permet de vérifier les autres paires de
lettres en inversant la matrice de chiffrement.
Exemple (suite)
• 2ème exemple:
Le chiffre de Hill est sensible aux attaques de type texte clair connu.
Nous allons décrypter le message ci-dessous, sachant qu’il contient
le nom « GEORGE PAPANDREOU »:
CMYPZ GTAYO EQBYQ JLAOW INELN NECNN UESZT YTFRU
OWYXH KYADM NJRUK CUFZP YPNNM XWSQQ OJMGO JZQZQ
FLVAY XGIPR OPUFJ WTSVA ATQU
Remarquons premièrement que « GEORGE PAPANDREOU »
contient des répétitions de bigrammes à des intervalles paires.
1. GEORGE PAPANDREOU
2. GEORGE PAPANDREOU
Exemple (suite)
• Il nous suffit alors de rechercher les couples de lettres susceptibles
de représenter GE…GE, PAPA et EO..EO
• On remarque que dans le cryptogramme le segment ZQZQ pourrait
correspondre avec PAPA.
CMYPZ GTAYO EQBYQ JLAOW INELN NECNN UESZT YTFRU OWYXH KYADM NJRUK
CUFZP YPNNM XWSQQ OJMGO JZQZQ FLVAY XGIPR OPUFJ WTSVA ATQU
Le premier Z correspond au 77ème rang dans le cryptogramme.
• Essayons alors d’établir un tableau de correspondance.
Cela semble coïncider, après avoir remplacé les lettres par leur rang
dans l’alphabet (a=1 , b=2 , … , y=25 , z=0).
Le couple (15;10) aurait été obtenu à partir du couple (7;5), (13;7) à
partir de (15;18), (0;17) à partir de (16;1), etc
Il faut dès lors trouver la matrice de déchiffrement.
Exemple (suite)
Lettres codées
OJ
MG
OJ
ZQ
ZQ
FL
VA
YX
Couples chiffrés
(15,10)
(13,7)
(15,10)
(0,17)
(0,17)
(6,12)
(22,1)
(25,24)
Couples clairs
(7,5)
(15,18)
(7,5)
(16,1)
(16,1)
(14,4)
(18,5)
(15,21)
Lettres claires
GE
OR
GE
PA
PA
ND
RE
OU
• Dans notre tableau, prenons les premiers et les
quatrièmes couples chiffrés et formons une matrice
(A).
Prenons les premiers et les quatrièmes couples clairs
et formons une matrice (B). On aurait pu prendre
n’importe quel couple du tableau pourvu que la
matrice formée soit inversible modulo 26.
Exemple (suite)
• On obtient l’équation matricielle :
D.A=B
Dans notre exemple : on a :
15 0   7 16 
D
=


10
17
5
1

 

• Pour trouver D, il faut calculer A-1, puis multiplier A-1 par B.
(tant que A n’est pas inversible mod 26, il faut essayer
d’autres matrices A et B):
−1
 15 0 
1  17 0 
A=
 (mod 26) =

 (mod 26)
255  −10 15 
10 17 
 17 0 
 85 0 
7 0 
= 5⋅
 (mod 26) = 
 (mod 26) = 

−
10
15
−
50
75
2
23






Exemple (suite)
• D’où
 7 16   7 0   81 368 
3 4
D=
⋅
=
 (mod 26) = 

 5 1   2 23   37 23 
 11 23 
On peut alors obtenir facilement la matrice de déchiffrement
et, de là, déchiffrer le message.
• Le message clair est :
IT IS BELIEVED BY MANY GREEKS THAT THE HEAD OF THE
GROUP CALLED THE SHIELD IS THE SON OF GEORGE
PAPANDREOU EX PREMIER OF GREECE.
Comment rendre le chiffrement de
Hill plus difficile à craquer?
• Transposer les lettres dans l’alphabet avant de les
chiffrer.
• Modifier les nombres associés aux lettres.
Exemple: A la place de dire A = 1 ; B = 2 ; … on
pourrait dire A = 12 ; B = 5,…
Cela revient à surchiffrer le chiffre de Hill avec
l’alphabet désordonné.
• Agrandir la taille de la matrice de chiffrement.
Des 3x3; 4x4 ; 5x5 ; etc. La seule limitation est
d’ordre pratique: plus les matrices sont grandes
et plus le risque d’erreur est grand.
Code correcteur
●
●
●
Technique de codage basée sur la
redondance.
Détecte et corrige les erreurs de
transmissions des informations.
Domaine: communications classiques et
supports pour le stockage.
Transmission d'un message
Message détérioré
Bruit
Émetteur
Récepteur
Canal
Message
Redondance
Redondance: ajout de caractères
judicieusement choisis au message initial.
●
Code de Hamming
●
●
Permet la détection et la correction
automatique d'une erreur si elle ne porte que
sur une lettre du message.
Code parfait: rendement maximal.
R. W. Hamming
Mathématicien américain (19151998) et professeur
d'université, il a travaillé dans
les laboratoires Bell avec
Claude Shannon.
Problème: Arrêt des machines à
cause des bugs quand les
ingénieurs absents.
Code binaire
●
Système de numérotation de base 2 (0,1)
●
Construction des nombres:
●
En base 10:
2
1
651 = 6.10 + 5.10 + 1.10
●
0
En base 2:
(2) 2 = 1.21 + 0.20 = 10
(5) 2 = 1.22 + 0.21 + 1.20 = 101
Calculer en binaire
●
On calcule en binaire sur le même modèle
que le calcul écrit classique:
1 1
1
1
0
1
1
1
1 0
1 1
1
1 0 0
Code de Hamming (7,4)
●
●
Message de 7 bits dont 4 bits de message et 3
bits de redondance.
Permet la correction de toute erreur portant
sur un unique bit.
Combien de bits de redondance?
Message transmis par p bits (où p=bits de redondance)
●Informations contenues dans le message:
(4 + p) erreurs possibles
●Ajouter la situation d'absence d'erreurs
5+p
p
●Or p bits permettent de véhiculer 2 informations
différentes.
5+p =2p
p=3
●
Code de Hamming (7,4)
d1,d2,d3,d4 sont les 4 bits
de message.
p1,p2,p3 sont les 3 bits
de redondance.
●
Le bit p1 correspond à la parité du disque vert. Si
d1+d4+d2 est pair, p1 = 0 sinon, p1=1
Code de Hamming (7,4)
Toutes les situations sont
résumées dans ce tableau
●
oui= parité conservée
●
non= parité modifiée
Bit n°
1
2
3
4
5
6
7
Bit transmis
p1
p2
d1
p3
d2
d3
d4
Disque rouge
Oui
Oui
Oui
Non
Non
Non
Non
Disque bleu
Oui
Non
Non
Oui
Oui
Non
Non
Disque vert
Non
Oui
Non
Oui
Non
Oui
Non
Construction du code
●
L'encodage (transformer les 4 bits de
message en 7 bits de code) consiste à
multiplier le vecteur de 4 lettres binaires par
une matrice 7X4 pour obtenir un vecteur
composé de 7 lettres binaires.
Construction du code
●
●
Nous allons considérer les messages comme
des matrices.
Prenons les 4 matrices vecteurs de base
●
m1= (1000)
●
m2= (0100)
●
m3= (0010)
●
m4= (0001)
Construction du code
m1= (1000) ce qui signifie: d1=1; d2, d3 et d4=0
Si on place ces valeurs dans le schéma de gauche,
on trouve p1=1, p2=1, p3=0
En replaçant ces valeurs dans le schéma de droite
on obtient le code= 1110000.
Construction du code
●
En faisant de même pour toutes les matrices
de base, on obtient:
●
φ (1000)=1110000
●
φ (0100)=1001100
●
φ (0010)=0101010
●
φ (0001)=1101001
Construction du code
●
La matrice génératrice est formée des 4
colonnes correspondant aux 4
transformations trouvées précédemment.
1

1
1

G = 0
0

0
0

1 0 1

0 1 1
0 0 0

1 1 1
1 0 0

0 1 0
0 0 1 
Exemple
●
Message à communiquer: m=(1011)
●
Alors p1=0, p2=1 et p3=0
●
On obtient donc manuellement le code
c=0110011
Exemple suite
●
Le produit matriciel de la matrice génératrice G par la
matrice colonne M fournit la matrice colonne C du vecteur
c:
1

1
1

G.M =  0
0

0
0

●
1 0 1
0

 
0 1 1
1

1

0 0 0   1
0  
= 0
1 1 1
1
1 0 0  0
1  
0 1 0
1
1
0 0 1 
 
On retrouve bien le résultat précédent.
Correction des erreurs
●
●
Il n’y a pas d’erreur de transmission si la
somme des éléments de chaque disque
est nulle.
●
Pour le disque rouge, p3+d2+d3+d4
●
Pour le disque bleu, p2+d1+d3+d4
●
Pour le disque vert, p1+d1+d2+d4
Cette somme permet de retrouver bit de
redondance de chaque disque.
Correction des erreurs
●
●
Reprenons le tableau des bits de
redondance des disques. Transformons les
oui par 0 et non par 1:
Bit n°
1
2
3
4
5
6
7
Bit transmis
p1
p2
d1
p3
d2
d3
d4
Disque rouge
0
0
0
1
1
1
1
Disque bleu
0
1
1
0
0
1
1
Disque vert
1
0
1
0
1
0
1
Et nous obtenons la matrice de contrôle:
 0 0 0 1 1 1 1


H =  0 1 1 0 0 1 1
 1 0 1 0 1 0 1


Correction des erreurs
Si le produit matriciel de la matrice de contrôle H par
la matrice colonne C du code c est la matrice nulle alors
le code c n'a pas subi d'altération. Il est intact.
●Effectuons le produit matriciel de la matrice de
contrôle H par la matrice colonne C non erronée:
●
0
 
1
 0 0 0 1 1 1 1  1   0 

   
H .C =  0 1 1 0 0 1 1  0  =  0 
 1 0 1 0 1 0 1  0   0 

   
1
1
 
Correction des erreurs
Dans le cas contraire, une erreur s’est introduite
dans le code.
●Une des grandes forces du code de Hamming est la
détection mais surtout la correction du bit
défectueux.
●Si une erreur s'est produite, le vecteur X ne peut
pas passer le test de la matrice de contrôle.
●Le résultat fournit, en binaire, le numéro de la ligne
fautive.
●Il suffit donc de modifier le bit erroné.
●
Exemple
●
●
Supposons que le message reçu soit X=0110111.
Effectuons le produit matriciel
0
 
1
 0 0 0 1 1 1 1  1   1 

   
H . X =  0 1 1 0 0 1 1  0  =  0 
 1 0 1 0 1 0 1  1   1 

   
1
1
 
En binaire, 101 signifie 5. Le 5 ème bit est donc erroné.
Exemple fin
Modifier ce bit et on retrouve le code correct.
0
 
1
1
 
X = 0
1
 
1
1
 
 0
 
1
1
 
C =  0
 0
 
1
1
 
Conclusions
• Cryptographie: domaine très vaste faisant
appel à des notions mathématiques très
simples (arithmétique, …), plus fouillées
(calcul matriciel, …) voir extrêmement
complexes (théorie des espaces vectoriels, …)
• Etude d’une petite contribution des
mathématiques à la cryptographie.
Merci de votre attention et…
bon appétit…