Vous êtes sur la page 1sur 19

Universit Paul Sabatier

dpartement Sciences Appliques

Introduction la Cryptographie
et la Stganographie

Jean-Max REDONNET

version 0.2 Septembre 2009

Ce document est distribu sous license Creative Commons selon le contrat Paternit - Pas
dUtilisation Commerciale - Partage des Conditions Initiales lIdentique / 2.0 / France,
disponible en ligne http ://creativecommons.org/licenses/by-nc-sa/2.0/fr/ ou par courrier
postal Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Jean-Max Redonnet, 2009

Avant-propos

Ce document est perptuellement en cours de dveloppement et, de ce fait, ne prsente


pas tous les aspects dun document finalis. Le lecteur ne stonnera donc pas dy trouver
coquilles, erreurs ou fautes dorthographes. Merci de me signaler toute anomalie et de me
faire parvenir toutes vos remarques (constructives) permettant den amliorer la qualit.

Table des matires


Avant-propos

Introduction

1 Petite histoire du message secret

1.1 Les gnraux de lAntiquit . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Des chiffres cl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3 Secrets et dissimulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Le Chiffre et ses principes

2.1 Notion de cl de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Notion de fonction de hachage . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3 Algorithmes cl secrte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4 Algorithmes cl publique . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.5 Stganographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

3 La cryptographie est partout !

14

3.1 Cartes bancaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.2 Communication Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.3 Tatouage numrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

Bibliographie

15

Table des figures

16

Glossaire

17

Index

18

Introduction
La cryptographie constitue un des piliers de la cryptologie1 . Comme lindique ltymologie
du mot, la cryptologie est la science du secret. La cryptographie peut donc tre vue comme la
science des critures caches. Plus pragmatiquement, on peut dfinir la cryptographie comme
ltude des techniques permettant sassurer la confidentialit, lauthenticit et lintgrit dun
message.
Comme nous le verrons dans la premire partie de ce document, cest un art ancien qui
correspond certainement un besoin profond de lhomme puisque les premire traces de
documents cods nous viennent de lantiquit. Nanmoins, avec la multiplication et la dmatrialisation des communications dans la socit moderne, les techniques de cryptographie
ont connu un dveloppement considrable partir de la seconde moiti du XXime sicle.
Nous essaierons, dans la seconde partie de ce document de donner un aperu des ces techniques tandis que la dernire partie nous permettra den valuer les enjeux travers quelques
applications parmi les plus courantes dans notre vie quotidienne.
De plus nous fournirons galement quelques lmentaires notion ayant trait la stganographie, qui est, daprs ltymologie du mot, lart de cacher un crit.

Lautre tant la cryptanalyse, cest dire ltude des moyens de dcryptage dun message.

Chapitre 1
Petite histoire du message secret
1.1

Les gnraux de lAntiquit

Les premiers outils de cryptographie qui soient parvenus jusqu nous visaient rpondre
cette question :
Comment faire parvenir ses ordres aux gnraux en toute confidentialit ?
La premire rponse est apporte par la scytale, utilise par les spartiates ds le Xime
sicle avant J.-C. Cet objet constitue de fait le premier outil de cryptographie. Il est constitu
dun bton autour duquel est enroule une bande de cuir ou de parchemin sur lequel est
inscrit transversalement le message en utilisant une lettre pour chaque tour de bande (voir
figure 1.1).

Figure 1.1 La scytale


Une fois sortie du bton, la bande de cuir peut voyager sans risque puisque seul un bton
de mme diamtre que loriginal permet de reconstituer le message.
5

Chapitre 1. Petite histoire du message secret


A Ier sicle avant J.-C., Jules Csar utilisait une autre mthode de codage base sur un
dcalage des lettres de lalphabet. Par exemple, en utilisant un dcalage de 3, A devient D,
B devient E, et ainsi de suite. Cette mthode, connue sous le non de chiffre de Jules Csar a
connu une renaissance partir du XIXime sicle avec lalgorithme ROT13. Bas sur le mme
principe que le chiffre de Jules Csar en utilisant un dcalage de 13 lettres, lalgorithme
ROT13 peut servir la fois chiffrer et dchiffrer le message puisque lalphabet compte
26 lettres.

1.2

Des chiffres cl

Bien que trs faciles mettre en uvre, ces systmes de codage antiques ne rsistent pas
aux moyens modernes de cryptanalyse (notamment lanalyse frquentielle). Il faut attendre
le XVIime sicle et un diplomate franais du nom de Vigenre pour voir apparatre des
techniques de codage beaucoup plus difficiles dcrypter. Comme la plupart de ses anctres,
la technique de Vigenre est un systme de substitution de lettres, mais contrairement elles,
elle ne substitue pas toujours la mme lettre une lettre donne. Ceci est rendu possible
par lintroduction dune cl de chiffrement (voir 2.1). Cette cl est consitu dune suite de
lettres connue des seuls correspondants. En sappuyant sur une table de correspondance, on
peut ainsi faire correspondre une lettre diffrente chaque lettre du message originel.
exemple.

1.3

Secrets et dissimulation

Si la cryptographie est lart du secret, la stganographie est lart de la dissimulation.


Lide est de tranmettre un message cach dans un autre message, apparemment anodin,
mais visible par tous. La lettre de George Sand Alfred de Musset constitue sans doute un
parfait exemple de stganographie (voir figure 1.2).
De nos jours des applications bien moins frivoles de la stganographie sont utilises dans
de nombreux domaines.

Chapitre 1. Petite histoire du message secret

Je suis trs mue de vous dire que jai


bien compris, lautre jour que vous avez
toujours une envie folle de me faire
danser. Je garde un souvenir de votre
baiser et je vous voudrais que ce soit
l une preuve que je puisse tre aime
par vous. Je suis prte vous montrer mon
affection toute dsintresse et sans calcul. Si vous voulez me voir ainsi
dvoiler, sans aucun artifice, mon me
toute nue, daignez donc me faire une visite.
Et nous causerons en amis et en chemin.
Je vous prouverai que je suis la femme
sincre capable de vous offrir laffection
la plus profonde et la plus troite
amiti. En un mot, la meilleure amie
que vous puissiez rver. Puisque votre
me est libre, alors que labandon o je
vis est bien long, bien dur, et bien souvent,
pnible, ami trs cher, jai le cur
gros accourez vite et venez me le
faire oublier. A lamour, je veux me soumettre.
Figure 1.2 Lettre de George Sand Alfred de Musset

Chapitre 2
Le Chiffre et ses principes
2.1

Notion de cl de chiffrement

La notion de cl de chiffrement, introduite par Vigenre dans le chiffre qui porte son nom
(voir 1.2), permet de rendre les messages chiffrs beaucoup plus difficiles dcrypter.
Une cl peut prendre diverses forme selon les algorithmes utiliss : un simple mot, tout
un texte (parfois mme trs long) ou encore une squence de bits comme dans la plupart
des algorithmes de chiffrement modernes. Les algorithmes de chiffrement se basent donc sur
deux paramtres : le message chiffrer lui-mme et la cl de chiffrement. Lintroduction de
ce nouveau paramtre que constitue la cl rend le message chiffr beaucoup plus abscons que
sil tait chiffr partir du message originel seul.
La figure 2.1 donne un exemple de chiffrement bas sur une cl binaire et utilisant un
algorithme lmentaire : le OU exclusif.
message en clair 01100110
cl

10001010

message chiffr

11101101

Figure 2.1 Chiffrement par cl binaire en utilisant un OU exclusif

Nous pouvons voir travers cet exemple que pour quelquun qui ne connat ni lalgorithme
de chiffrement, ni la cl utiliss, il est trs difficile de remonter au message en clair partir
du seul message chiffr.
Par contre, pour quelquun qui connat lalgorithme de chiffrement et la cl utilise, il
suffit, pour dchiffre le message dappliquer le mme algorithme partir du message chiffr
et de la cl (voir figure 2.2).
8

Chapitre 2. Le Chiffre et ses principes


message chiffr

11101101

cl

10001010

message en clair 01100110


Figure 2.2 Dchiffrement par cl binaire en utilisant un OU exclusif

Cet algorithme prsente cependant un dfaut majeur : la cl de chiffrement doit avoir la


mme taille que le message chiffrer. Si cela ne constitue pas vraiment un problme pour
chiffrer un seul octet comme dans notre exemple, cela devient rapidement rdhibitoire pour
une utilisation dans des cas concrets.
Une des solution est alors de fixer la taille de la cl et de la rutiliser plusieurs fois
squentiellement pour chiffrer tout le message (voir figure 2.3).
message en clair
cl
message chiffr

01 10 01 10
10
11 00 11 00

Figure 2.3 Chiffrement par cl binaire de taille fixe en utilisant un OU exclusif

Linconvnient de ce procd est que le message chiffr devient beaucoup plus facile
dcrypter. De fait, un algorithme aussi simple que celui employ dans notre exemple et
utilisant une cl aussi courte (2 bits), ne tiendrait pas 2 secondes en utilisant les mthodes
modernes de cryptanalyse.
Cet exemple nous permet nanmoins de mettre en vidence deux caractristiques essentielles dun procd de chiffrement : La robustesse dune mthode de chiffrement dpend de
lalgorithme utilis et de la longueur de la cl.

2.2

Notion de fonction de hachage

Une fonction de hachage est un algorithme qui fournit une empreinte (ou condenst) de la
donnes passe en entre. Les caractristiques essentielles des fonctions de hachage utilises
en cryptographie sont les suivantes :
elles permettent didentifier la donne passe en entre sans en rvler le contenu, cest
dire quil est impossible de remonter la donne passe en entre partir de la seule
empreinte

Chapitre 2. Le Chiffre et ses principes


elles sont trs sres dans le sens o lempreinte obtenue est unique pour chaque donne
passe en entre
Les fonctions de hachage les plus courantes sont MD5 (Message-Digest 5) et SHA-1 (Secure
Hash Algorithm 1). Elles sont beaucoup utilises en informatique, notamment pour effectuer
des sommes de contrle (MD5 sums) ou le stockage et la comparaison des mots de passe
(SHA-1).

2.3

Algorithmes cl secrte

Les algorithmes cl secrte utilisent la mme cl pour chiffrer et dchiffrer le message.


On parle alors de chiffrement symtrique (par opposition au chiffrement asymtrique des
algorithmes cl publique voir 2.4). Ce procd implique bien sr que la cl doit tre
connue par lauteur et le destinataire du message et seulement par eux ; do dventuels
problmes pour communiquer cette cl de manire totalement scurise (notamment travers
un rseau).
Un des algorithmes de chiffrement symtrique parmi les plus connus est lalgorithme
DES. Lalgorithme DES utilise une cl de 56 bits, ce qui de nos jours est gnralement
considr comme insuffisant. Il est recommand dutiliser des systmes plus robustes tels que
le standard de chiffrement avanc AES qui peut utiliser des cls de 128, 192 ou 256 bits.

2.4

Algorithmes cl publique

Le fonctionnement des algorithmes cl publique repose sur lutilisation dune paire de


cls et non plus dune seule cl secrte comme dans les algorithmes cl secrte tels que le
DES. Cette paire de cl est constitue dune cl publique et dune cl prive.
Le principe fondamental est le suivant :
seule la cl prive peut dchiffr une message chiffr par la cl publique
seule la cl publique peut dchiffr une message chiffr par la cl prive
Ce principe de chiffrement est aussi connu sous le nom de chiffrement asymtrique. Il
permet, la fois dassurer la confidentialit dun message et son authenticit.
Lefficacit de ce chiffrement repose sur deux points essentiels :
chaque paire de cls gnre est appari de manire unique, cest dire que pour une
cl prive il nexiste quune cl publique correspondante, et vice-versa

10

Chapitre 2. Le Chiffre et ses principes


il est impossible de remonter la cl priv partir de la cl publique (en ltat actuel
de nos connaissances)
Imaginons quAlice et Bernard veuille correspondre de manire tout fait confidentielle.
Bernard veut envoyer un message secret Alice. Comment faire pour sassurer que seule
Alice pourra dchiffrer son message ?
1. Alice gnre une paire de cls.
2. Elle conserve prcieusement sa cl prive et ne la communique personne.
3. Elle donne sa cl publique Bernard.
4. Bernard chiffre son message avec la cl publique dAlice.
5. Bernard envoie son message chiffr Alice.
6. Alice dchiffre le message laide de sa cl prive.
7. Bernard est sr que son message na pas pu tre dchiffr par quelquun dautre car
seule la cl prive dAlice (quelle a soigneusement tenue secrte) peu le dchiffrer.
Cette procdure assure la confidentialit du message.
Bernard veut pouvoir recevoir un message confidentiel dAlice. Comment faire pour sassurer quAlice est bien lautrice de ce message.
1. Alice gnre une paire de cls.
2. Elle conserve prcieusement sa cl prive et ne la communique personne.
3. Elle donne sa cl publique Bernard.
4. Alice chiffre son message avec sa cl prive.
5. Alice envoie son message chiffr Bernard.
6. Bernard dchiffre le message laide de la cl publique dAlice.
7. Bernard est sr que le message vient bien dAlice car seule la cl prive dAlice (quelle
est seule connatre) a pu chiffrer un message dchiffrable par la cl publique dAlice.
Cette procdure assure lauthenticit du message.
Pour assurer la fois la confidentialit et lauthenticit du message, il suffit de combiner
les deux procdures. Par exemple, si Alice veut envoyer un message secret Bernard en lui
garantissant que ce message provient bien delle, la procdure employer est la suivante :
11

Chapitre 2. Le Chiffre et ses principes


1. Alice et Bernard gnrent tous les deux une paire de cls.
2. Ils conservent prcieusement leur cl prive et ne la communiquent personne.
3. Ils changent leurs cls publiques
4. Alice chiffre son message avec la cl publique de Bernard
5. Alice chiffre le premier message chiffr ainsi obtenu en utilisant cette fois sa propre cl
prive
6. Alice envoie son message chiffr Bernard.
7. Bernard dchiffre le message en utilisant la cl publique dAlice.
8. Bernard dchiffre nouveau le message ainsi obtenu en utilisant cette fois sa propre
cl prive.
En combinant les deux procdures on peut donc assurer la fois lauthenticit et la
confidentialit du message. En pratique, on utilise une fonction de hachage, plutt que de
chiffrer et dchiffrer deux fois le message.
En utilisant une cl de hachage, la procdure de transmission dun message secret entre
Alice et Bernard devient :
1. Alice et Bernard gnrent tous les deux une paire de cls.
2. Ils conservent prcieusement leur cl prive et ne la communiquent personne.
3. Ils changent leurs cls publiques
4. Alice utilise une fonction de hachage pour crer une empreinte de son message puis elle
chiffre cette empreinte laide de sa cl prive.
5. Alice chiffre le message en utilisant cette fois la cl publique de Bernard
6. Alice envoie son message chiffr Bernard accompagn de son empreinte chiffre par
sa cl prive.
7. Bernard dchiffre le message en utilisant sa cl prive
8. Bernard dchiffre dchiffre le condenst pour obtenir lempreinte du message envoy
par Alice
9. Bernard applique la mme fonction de hachage au message dchiffr et compare les
deux empreintes ainsi obtenues. Si les deux empreintes sont identiques, le message
provient bien dAlice.
Un des algorithmes cl publique parmi les plus connus est lalgorithme RSA du nom de
ses auteurs : Ron Rivest, Adi Shamir et Len Adleman. Cet algorithme est notamment utilis
dans les logiciels PGP (Pretty Good Privacy) et GPG (Gnu Privacy Guard).
12

Chapitre 2. Le Chiffre et ses principes


Sur un plan pratique, le chiffrement/dchiffrement dun message avec un algorithme
cls asymtriques est beaucoup plus gourmand en ressources que le chiffrement/dchiffrement
dun message avec un algorithme cls symtriques. De ce fait, de nombreux outils utilisent
un canal scuris par un chiffrement asymtrique pour changer une cl symtrique qui est
utilise pour chiffrer lchange de donnes proprement dit, une fois la connexion tablie.
Cette cl est cre spcifiquement pour un change donn et elle est ensuite dtruite. On
parle alors de cl de session.
Par exemple, le protocole SSH peut utiliser une cl RSA pour changer une cl AES qui
servira chiffrer et dchiffrer les donnes changes lors de la session et sera dtruite lissue
de celle-ci.

2.5

Stganographie

Par exemple, on peut utiliser les bits de poids faible dune image pour cacher un message.
Chaque pixel de limage est cod sur 3 octets, un par composante Rouge-Vert-Bleu.
En utilisant les 2 derniers bits de chaque octet, il suffit de 2 pixels pour coder une lettre
(en utilisant son code ASCII).
code ASCII de la lettre S : 01010011
R

254 11111110 11111101 253

142 10001110 10001101 141

076 01001100 01001100 076

125 01111101 01111111 127

etc

B
Tab. 2.1 Utilisation des bits de poids faible dune image pour dissimuler un message
La valeur des composantes RVB de limage modifie sont tellement proches de celles de
limage originale que la diffrence est imperceptible loeil nu.

13

Chapitre 3
La cryptographie est partout !
3.1

Cartes bancaires

3.2

Communication Internet

PGP
certificats

3.3

Tatouage numrique

14

Bibliographie
[PLS02] Lart du secret. Pour la Science, dossier H.S. n 36, 2002.

15

Table des figures


1.1 La scytale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Lettre de George Sand Alfred de Musset . . . . . . . . . . . . . . . . . . .

2.1 Chiffrement par cl binaire en utilisant un OU exclusif . . . . . . . . . . . .

2.2 Dchiffrement par cl binaire en utilisant un OU exclusif . . . . . . . . . . .

2.3 Chiffrement par cl binaire de taille fixe en utilisant un OU exclusif . . . . .

16

Glossaire
AES Advanced Encryption Standard.
DES Data Encryption Standard.
RSA Rivest Shamir Adleman.
SSH Secure SHell.

17

Index
A

AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 13 Vigenre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 8

C
chiffrement
asymtrique . . . . . . . . . . . . . . . . . . . . . . . . . 10
symtrique . . . . . . . . . . . . . . . . . . . . . . . . . . 10
condenst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
cryptologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

D
DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

F
fonction de hachage . . . . . . . . . . . . . . . . . . . . . . 9

J
Jules Csar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

M
MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

R
ROT13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 13

S
scytale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
stganographie . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

18