Vous êtes sur la page 1sur 103

MEMOIRE DE FIN D’Etudes POUR L’OBTENTION DU

DIPLOME De master ii EN TELECOMMUNICATION

Présenté par : RAJAOSOLOMANANTENA Haingonirina Ignace


Filière  : Télécommunication
Niveau : 5èmeannée
REMERCIEMENTS
« FA IZAY MIANDRY AN’I JEHOVAH DIA MANDROSO HERY KOSA » (Isaia 40:31a)

C’est avec la force qu’Il m’a donnée que j’ai pu finir ce travail. Alors j’exprime mes
déférences au Seul et Unique Créateur de l’univers ; car sans sa bénédiction, cette étude n’a
pu être accomplie.

De nombreuses personnes ont contribué à la réalisation de ce travail. Je voudrais, ici, leur


adresser toute ma gratitude et ma reconnaissance, notamment à:

– Madame RANDRIAMANANTENA Henriette, Directrice de l’Espace Universitaire


Régional de l’Océan Indien (EUROI), d’avoir bien voulu nous recevoir comme
étudiant à l’EUROI. 

– Monsieur RALAIVAO Haja, mon encadreur pédagogique, qui a su diriger ce travail


avec beaucoup de soins et d’attentions. Il va sans dire que sans lui, l’idée de travail sur
un sujet aussi attrayant et passionnant ne m’aurait pas effleuré l’esprit. Je tiens surtout
à le remercier pour les conseils judicieux et avisés, sa disponibilité et sa rigueur
scientifique, qui m’ont permis d’avancer et de progresser énormément dans mes
travaux. Par ailleurs, il s’est toujours inquiété de savoir si ma mémoire se déroulait
dans les meilleures conditions.

– Monsieur François Jarraud, enseignant-chercheur à l’Université Newcastle Australie


de m’avoir orienté, aidé et conseillé.

Je souhaite également remercier tous les enseignants de l’EUROI qui ont fait de mon lieu de
travail un espace chaleureux et convivial.

Je remercie aussi toutes les personnes que je n’ai pas pu nommer ici et qui ont participé de
près ou de loin à cette épopée.

Enfin, je dédie ce mémoire à mes parents qui m’ont permis de mener à bien cette tâche. Leur
exemplarité, leur sagesse et leur sérénité m’ont aidé à dépasser les limites de mon possible.

A vous tous, merci !

I
SOMMAIRE
REMERCIEMENTS...................................................................................................................I

SOMMAIRE...............................................................................................................................3

LISTE DES ABREVIATIONS...................................................................................................5

LISTE DES FIGURES...............................................................................................................7

LISTE DES TABLEAUX...........................................................................................................8

INTRODUCTION......................................................................................................................9

CHAPITRE 1: CONTEXTE ET PPROCHE………………………………………………....10

CHAPITRE 2: ESONDELETTES…………………………………………………………....14

CHAPITRE 3: LA CRYPTOGRAPHIE……………………………………………………...41

CHAPITRE 4: RESEAU DE NEURONES ARTIFICIELS………………………..………...56

CHAPITRE 5: LA NEURO-CRYPTOGRAPHIE…..……………………………………….71

CHAPITRE 6: SCENARIO ET DISCUSSION…….………………………………………..78

CONCLUSION GENERALE...................................................................................................88

BIBLIOGRAPHIE.....................................................................................................................II

ANNEXES……………………………………………………………………………………IV

TABLE DES MATIÈRES........................................................................................................XI

2
AVANT-PROPOS
Ce projet est le résultat d’un stage de recherche d’une période de deux mois effectué
au sein du laboratoire de CENTIC Mada auprès de Monsieur François Jarraud, enseignant-
chercheur à l’Université Newcastle Australie.

Son expérience, ses relations et ses interventions m’ont été fortement utiles pour
recadrer une étude dont le champ est très vaste.

Ayant déjà une expérience dans le domaine des Technologies de l’Information et de la


communication qui, je dois le dire, est passionnant, je me suis redirigé vers ce domaine pour
effectuer le travail de recherche inclus dans ma formation à l’Espace Universitaire Régional
de l’Océan Indien(EUROI). A la recherche d’un sujet d’actualité et encore peu exploré, je me
suis logiquement adressé à l’HOMI, Centre Hospitalier de Soavinandriana, Antananarivo.

Le choix du sujet est en effet directement issu de l’actualité récente avec l’annonce faite par
cet hôpital même en mai 2015 à l’issue de la mission « Madagascar e-santé ».

Ce mémoire de fin d’études présente alors une nouvelle méthode de cryptographie


contemporaine combinée avec le tatouage numérique et le réseau de neurones artificiels pour
rendre incassable la sécurisation d’une imagerie partagée.

3
Résumé

En guise de conclusion, la cryptographie est l’ensemble des techniques permettant d’écrire un


message de façon brouillée afin que seul son destinataire légitime soit capable de comprendre
la teneur du message. La nôtre est différente car celle-ci est combinée avec le tatouage robuste
et aveugle en ondelette. Pour éviter qu'une tierce personne mal intentionnée n'en modifie pas
le contenu d’une image, on y ajoute une marque, qui code le nom du propriétaire. En outre, le
service de base fourni par la cryptographie est la capacité d'envoyer des informations entre les
participants d'une manière qui empêche les autres de les lire. Afin de protéger le contenu d’un
trafiquant informatique, l'expéditeur crypte son message en utilisant un algorithme de
chiffrement symétrique rapide. Dans ce cas, le récepteur a besoin de connaître la clé de
l'expéditeur pour la lecture de son message, on peut atteindre cet objectif en utilisant un
protocole d'échange de clés. Le protocole Diffie-Hellman a été introduit pour le protocole
d'échange de clés. Pourtant Diffie-Hellman a présenté de faiblesse au niveau de certaines
attaques malignes, de ce fait que la cryptographie neuronale a été introduite pour l'échange de
clés. Les clés secrètes sont générées par la synchronisation de TPM (Tree Parity Machine) qui
doit être lancé sur les deux sites. La clé générée est utilisée pour le chiffrement AES.

Abstract

As a conclusion, cryptography is a package of technical to write a message of blurred way so


that only the rightful recipient is able to understand the content of the message. Ours is
different because it is combined with the robust and blind wavelet watermarking. To avoid
malicious person to change the content of a medical imagery, we add a mark, which encodes
the patient's name and physician. Furthermore, the basic service provided by cryptography is
the ability to send information between participants in a way that prevents others to read it. In
order to protect the content against an opponent, sender encrypts her message using a fast
symmetric encryption algorithm. In this case, receiver needs to know sender's key for reading
her message, one can achieve this by using a key-exchange protocol. Diffie Hellman protocol
was introduced for key exchange protocol. But Diffie Hellman had weakness in some attack
so neural cryptography is used for key exchange. Secret keys are generated by
synchronization of TPM (Three Parity machines) which is running on both sites. Generated
key is used for AES encryption.

4
LISTE DES ABREVIATIONS
AES : Advanced Encryption Standard

ART : Adaptive Resonance Theory

CDMA : Code Division Multiple Access

CWT : Continuous Wavelet Transform

CODES : Cycle Octave Data Enhancement System

dB : Décibel

DCT :  Discrete Cosine Transform

DES : Data Encryption Standard

DWT : Discret Wavelet Transform

FFT : Fast Fourier Transform 

GIF  : Graphics Interchange Format

GSM : Global System for Mobile Communications

GnuPG : Gnu Privacy Guard

HH : High-High frequency band

HL : High-Low frequency band

HSPA : High Speed Packet Access 

IDWT : Inverse Discrete Wavelet Transform 

IA : Intelligence artificielle

JPEG : Joint Photographic Experts Group

LL : Low-Low frequency band

LH : low-High frequency band

Matlab : Matrix laboratory

MSE : Mean Square Error

NEMA : National Electrical Manufacturers Association

5
NIST : National Institute of Standards and Technology

PMC : Perceptron MultiCouche 

PHP  : Hypertext Preprocessor

PSNR : Peak Signal to Noise Ratio

RC : Rivest Cipher

RNA : Réseau de Neurone Artificielles

RSA :  Rivest, Shamir et Adleman

SQL : Structured Query Language

RBF : Radial Basic Function

SSL : Secure Sockets Layer

TF : Transformée de Fourier

TFG : Transformée de Fourier à Fenêtre Glissante

TPM  : Tree Parity Machine

WEP  : Wired Equivalent Privacy

XOR  : eXclusive OR

6
LISTE DES FIGURES
Figure 1.1 : aspect de fonctionnement du projet.......................................................................13
Figure 2.1 : Un Signal sonore émit par un orque......................................................................16
Figure 2.2 : Représentation matricielle d’une image................................................................16
Figure 2.3 : Ondelette « mère » de Morlet................................................................................19
Figure 2.4 : Représentation graphique de f...............................................................................20
Figure 2.5 : Transformée de Fourier de f..................................................................................21
Figure 2.7 : Transformée de Fourier à fenêtre glissante(TFG).................................................22
Figure 2.8 : Un signal représenté en TFG avec deux fréquences différentes...........................23
Figure 2.10: Ondelettes de Morlet avec deux échelles différentes...........................................24
Figure 2.11 : Un signal quelconque..........................................................................................25
Figure 2.12 : Ondelette de Morlet de fréquence 1 a..................................................................25
Figure 2.13 : Multiplication par l’ondelette centrée en b..........................................................26
Figure 2.14 : Signal produit p(t)...............................................................................................26
Figure 2.15 : Comparaison entre CWT et DWT.......................................................................27
Figure 2.16: Arbre de décomposition en paquets d’ondelettes de niveau 3.............................28
Figure 2.17 : Décomposition en paquets d’ondelettes pour un niveau 3..................................29
Figure 2.18 : Approche bancs de filtres, appliqué sur une image.............................................30
Figure 2.19 : Décomposition en paquets d’ondelettes pour un niveau 1..................................31
Figure 2.20 : Interprétation fréquentielle..................................................................................31
Figure 2.21 : Décomposition d’ondelettes sur 3 niveaux de résolution....................................31
Figure 2.22 : Interprétation fréquentielle séparable sur 3 niveaux de résolution......................32
Figure 2.23 : Reconstruction à partir des coefficients d’ondelettes..........................................33
Figure 2.24 : Architecture pour les méthodes de tatouage........................................................34
Figure 2.25 : DWT d’une image (avec deux niveaux)..............................................................34
Figure 2.26 : Représentation basse et haute fréquence de l’image de Lena.............................35
Figure 2.27 : Schéma d’insertion de la marque........................................................................35
Figure 2.28 : Un quantificateur.................................................................................................37
Figure 2.29 : Processus de compression par DWT...................................................................39
Figure 2.30 : carte de coefficient d’ondelettes significatives...................................................40
Figure 3.1 : Fonctionnement d’un cryptosystème.....................................................................43
Figure 3.2 : Les classes de la cryptographie.............................................................................46
Figure 3.3 : Principe du chiffrement à clé secrète....................................................................49
Figure 3.4 : Chiffrement par flot...............................................................................................50

7
Figure 3.5 : Chiffrement par flot synchrone.............................................................................51
Figure 3.6 : Chiffrement par flot autosynchrone......................................................................52
Figure 3.7 : Chiffrement à clé publique....................................................................................54
Figure 4.1 : Un neurone biologique..........................................................................................60
Figure 4.2 : Une Synapse..........................................................................................................61
Figure 4.3 : Un neurone formel.................................................................................................62
Figure 4.4 : Modélisation mathématique d’un neurone formel................................................63
Figure 4.5 : Perceptron monocouche........................................................................................66
Figure 4.6 : Perceptron multicouche.........................................................................................66
Figure 4.7 : Perceptron multicouche auto-associatifs...............................................................67
Figure 4.8 : Cartes auto-organisatrice de Kohonen..................................................................67
Figure 4.9 : Réseau de Hopfield...............................................................................................68
Figure 4.10 : Apprentissage supervisé......................................................................................69
Figure 4.11 : Apprentissage non supervisé...............................................................................69
Figure 5.1 : Attaque de la clé secrète par E..............................................................................74
Figure 5.2 : modèle du perceptron à rétropropagation du gradient...........................................75
Figure 5.3 : Algorithme neuronal d’échange de clé..................................................................77
Figure 6.1 : Tatouage de l’image I1............................................................................................II
Figure 6.2:Image originale et DWT en niveau 2.....................................................................III
Figure 6.3:Marque et DWT en niveau 2...................................................................................III
Figure 6.4 : Image tatouée et différence...................................................................................III
Figure 6.5 : Décomposition par l’ondelette bior 3.5 et quantification avec un pas delta=80....V
Figure 6.6: Variation de l’entropie et du PSNR en fonction du pas de quantification.............VI
Figure 6.7 : Un serveur neuronal cryptographie......................................................................VII
Figure 6.7 : Un client neuronal cryptographie.......................................................................VIII
Figure 6.8 : Résultat de la synchronisation cryptographie neuronale.......................................IX

LISTE DES TABLEAU

Tableau 4.1 : Analogie entre les neurones biologiques et artificiels........................................66


Tableau 5.1 : Règles d’apprentissages......................................................................................79
Tableau 6.1 : attaques et marques reconstruites.......................................................................86

8
INTRODUCTION
Au cours des dernières années, la mondialisation, spécialement sous ses aspects économiques
et financiers, a engendré des projets informatiques de dimension mondiale.

En ingénierie des systèmes, les enjeux de sécurité des données sont aujourd'hui très
importants, du fait des interconnexions multiples entre systèmes hétérogènes et répartis, que
ce soit dans les systèmes de contrôle industriels, dans les systèmes de transport, dans les
applications de gouvernance d'entreprise et de gestion intégrée, dans les applications
d'ingénierie des connaissances, dans les systèmes décisionnels, dans les systèmes des marchés
financiers, médecine…

D’autre part, le déploiement de secret industriel, transaction international, médecine légale


nécessitent un effort accru de sécurisation en termes de confidentialité, fiabilité et
disponibilité contre l’apparition considérable des pirates en ligne.
Dans ce cadre, nous proposons une nouvelle technique de cryptographie moderne faisant
intervenir le réseau de neurone artificiel qui permet de :
- Contrôler l’intégrité et l’authenticité des informations en ligne ;
- Garder la confidentialité des données.
Pour renforcer cette confidentialité et obtenir une authentification rigoureuse, nous devrons
insérer une étape de tatouage de données (ou watermarking) dans la chaîne de neuro-crypto
système. Le tatouage de données permet de renforcer la sécurité en faveur de la fiabilité des
images par l'insertion d'annotations (authentification) ou par l'insertion d'une signature de
l'image source (intégrité). Le watermarking permet également d'intégrer dans les images des
données confidentielles, ce qui assure une plus grande confidentialité aux données. D’autre
part, qu’elles soient stockées numériquement dans des mémoires informatiques ou qu’elles
voyagent à travers Internet, les images occupent beaucoup de place. Heureusement, il est
possible de les « condenser » sans altérer leur qualité ! C’est là qu’intervient aussi la
compression d’image dans ce projet.
La question qui se pose maintenant c’est pourquoi utilisé un tel réseau alors que la
cryptographie ou le tatouage peut suffire ? Quels autres avantages présente ce réseau ?
Ces questions nécessitent une bonne et profonde analyse des deux grands domaines de la
télécommunication telle que la cryptographie et le réseau de neurone artificiel:

9
Dans les deux premières parties, on va parler brièvement des traitements d’image, tatouage et
compression des données par ondelette, puis de la cryptographie. Dans la troisième partie, le
réseau de neurone artificiel ainsi que les points forts sur le choix même de l’architecture cible
qui est celle du perceptron multicouche. Ensuite, la quatrième partie sera consacrée
intégralement à l’étude de la neuro-crypto. Enfin, les scénarios, vont nous aider à mieux
comprendre les résultats des expériences.

10
1. CHAPITRE :

CONTEXTE ET APPROCHE

11
1.1. Le sujet d’étude

1.1.1. Objet de l’étude

Cette étude concerne l’assemblage de la cryptographie contemporaine, du


watermarking(tatouage numérique) et de la compression d’image avec le réseau de neurone
artificiel pour obtenir : « Une sécurité forte qui passe inaperçue ».

Ces quatre techniques seront étudiées pour mieux comprendre la mise en œuvre de leur
combinaison.
1.1.2. Objectifs du sujet d’étude

Malgré l’évolution surprenante des techniques de chiffrement actuel (DES, 3DES…), toutes
les grandes organisations internationales ont tendance à lancer des divers concours relatifs à la
sécurité informatique. En 1997, le NIST lance un concours international qui a pour objectif
de choisir un algorithme de chiffrement public successeur à DES, car celui-ci présentait alors
quelque faiblesse. Quant à la 3DES, il est plus sécurisé mais trois fois plus long que DES
même et avec une taille de bloc limité à 64 bits seulement.

Par conséquent les risques évoluent également. Désormais tout le monde peut être touché :
des particuliers, des entreprises, des organisations publiques ou privées mais aussi des Etats.
L’émergence de nombreux objets connectés accentue ce phénomène ce qui suscite de
nouvelles préoccupations. Les hackers prennent le contrôle de ces « mini-ordinateurs » pour
en montrer les dangers. Trois de ces opérations ont notamment retenues l’attention : vol des
données médicales concernant la « médecine forensique », le détournement de secret
industriel (ex : Cocacola) et le piratage d’un lecteur de cartes bancaires.

Cette tendance montre bien que la sécurité informatique demeure un domaine surprenant
pourtant elle reste vulnérable.

C’est pour remédier à ces différents problèmes que ce thème intitulé « Rijndael neuronal
crypto- système appliqué en imagerie médicale partagée » a été proposé.

12
1.2. Aspect du fonctionnement

Image Tatouage Compression


Neuro-crypto AES
originale en ondelette en ondelette
Canal non sécurisé

Canal non sécurisé

Image
Détatouage Décompression Décryptage
finale

Figure 1.1  : aspect de fonctionnement du projet

Comme nous le voyons sur la figure 1.1, pour garder la confidentialité et obtenir une
authentification rigoureuse, nous devrons insérer une étape de tatouage d’image ou
watermarking dans la chaine neuronal crypto système. Par ailleurs, les données les plus
volumineuses et plus complexes comme l'image a sa spécificité qui demande une bonne prise
en considération. Des efforts sont alors entrepris pour diminuer la taille de l’image transmise.
Comprimer une image revient à chercher comment décrire de manière la plus succincte
possible l'information, en s'autorisant éventuellement à la dégrader. Enfin, la neuro-crypto
système a été introduire pour remédier aux problèmes posés par les cryptosystèmes actuel au
niveau d’échange de clé.
La récupération de l’image se fait par une procédure inverse à ceux du précédent.

13
2. CHAPITRE :

Les ondelettes
2.1. Introduction

Nous verrons dans ce chapitre les notions mathématiques de base en traitement des images. Il
faut savoir que le traitement des images est aujourd’hui un domaine dans lequel les grandes
avancées sont basées sur des résultats mathématiques (ex : JPEG2000 est basé sur la
décomposition en coefficients d’ondelettes).

L’utilisation des ondelettes en traitement d’images s’est généralisée durant les vingt dernières
années, leur intérêt pour la compression et le débruitage a été démontré puisqu’elles ont
intégré le dernier standard de compression des images numériques JPEG 2000. Dans ce
contexte, les ondelettes sont utilisées pour le tatouage aveugle et la compression d’image.

15
2.2. Généralité sur le signal

2.2.1. Définition

Le mot signal est le synonyme de fonction numérique définie sur un espace à une ou plusieurs
dimensions.

2.2.2. Différents forme de signal

 Un signal unidimensionnel est une fonction qui se propage dans une seule direction et
qui dépend d’un unique paramètre (signal sonore).

Amplitude

Temps
Figure 2.1 : Un Signal sonore émit par un orque

 Un signal bidimensionnel est une fonction qui dépend de deux paramètres (image).

Indice de ligne

Pixel [x,y]

Indice de colonne
Figure 2.2 : Représentation matricielle d’une image

16
Une image numérique est une fonction de classe 2 dimensions z = f (x, y) ou x et y sont les
coordonnées d’un pixel et z son niveau de gris.

Pour calculer le nombre total des pixels dans une image on procède comme suit :

Nombre total des pixels = nombre total de colonnes x nombre total


de lignes
Exemple : Dans notre cas ci-dessus, l’image contient 10 lignes et 12 colonnes, ce qui
correspond à 120 pixels.

Suivant leur forme, on peut trouver plusieurs types de signal :

 Signal stationnaire : dont les propriétés statistiques ne dépendent pas du temps


(constant dans le temps). Ex : bruits blanc.
L’outil d’analyse de ce type de signal est le Transformée de Fourier.
 Signal non-stationnaire : il apparait des événements transitoires que l’on ne
pouvait pas prévoir statistiquement à l’aide du passé.
L’outil pour traiter ces signaux est les ondelettes.

2.2.3. Traitement de signal

Le traitement de signal consiste à dégager des informations contenues dans le signal qui se
déroule au cours du temps. On peut dire que la théorie du signal est l’art de détecter dans les
signaux peu compréhensibles, peu lisibles, confus, les informations intéressantes. Souvent, il
faut éliminer des parasites qui corrompent la lecture, bien souvent les informations
recherchées ne sont pas visible.

2.2.4. Les informations au niveau d’un signal 

Lorsqu’on observe son évolution au cours du temps, on repère bien son commencement, sa
fin et la durée de ses éléments caractéristiques, ainsi que des discontinuités, des changements
de rythme, etc. En revanche, cette représentation temporelle du signal renseigne peu sur ses
périodicités, c’est-à-dire sur ses fréquences. Depuis le XVIII e siècle, de nombreux
mathématiciens étudient la représentation en fréquence des signaux. La technique des séries
de Fourier constitue sans doute le point de départ de cette approche qui a abouti à l’analyse
par ondelettes.

17
2.3. Historiques des ondelettes [6] [13] [16]

Les ondelettes ont été créées pour répondre à un besoin en traitement du signal que la
transformée de Fourier ne solutionnait pas. En 1768, Joseph Fourier invente la transformée de
Fourier dont l’analyse permet la décomposition d’un signal et qui est jusqu’au 20e siècle la
seule technique faisable.

En 1909 Alfred Haar définit ce que l’on peut considérer comme les premières ondelettes
(connues sous le nom d’ondelette de Haar), et en 1946 Denis Gabor met en place la
transformée de Fourier à court terme. Ce n’est qu’au début des années 1980 que le terme
d’ondelettes a été introduit dans le langage mathématique par Jean Morlet (1931-2007), un
ingénieur-géophysicien français dans un laboratoire d’Elf Aquitaine. Puis les années 1980-
1990 ont connu l’apparition du traitement du signal qui entraîne l’amélioration de cette
théorie par de nombreux mathématiciens tels que Ingrid Daubechies et Stéphane Mallat.

2.4. Définition [6]

L’ondelette est une petite onde (ou vague) qui a un début et une fin. Ainsi elle est utilisée pour
représenter une fonction (ou un signal) comme une somme pondérée de ces petites ondes
translatées ou dilatées.

Figure 2.3 : Ondelette « mère  » de Morlet

Les ondelettes permettent, comme les sinus et les cosinus, de décomposer un signal. Elles sont
localisées en temps et en fréquence. Le caractère localisé de l’ondelette s’exprime par le fait
que la fonction est non nulle sur un intervalle fini, et nulle partout ailleurs.

18
2.5. De la transformée de Fourier aux ondelettes

2.5.1. Les limites de Fourier

2.5.1.1. La transformée de Fourier (TF) [16]

L’analyse de Fourier est un outil de traitement du signal utilisé par de nombreux appareils
dans la vie courante. Elle permet de décomposer un signal en sinus et en cosinus qui
correspondent chacun à une fréquence donnée. On peut ainsi analyser le contenu fréquentiel
de ce signal, et ensuite le travailler ou l’analyser en profondeur.

La transformée de Fourier pour une fonction f intégrable sur đ s’écrit :

+∞
T fourier f ( )= ∫ f ( t ) e− j t dt (2.01)
−∞

La plupart des signaux du monde réel ne sont pas stationnaires, c’est justement dans
l’évolution de leurs caractéristiques (statistiques, fréquentielles, temporelles, spatiales) que
réside l’essentiel de l’information qu’ils contiennent. Les signaux vocaux et les images sont à
ces titres exemplaires, or l’analyse de Fourier propose une approche globale du signal. Les
intégrations sont faites de moins l’infini à plus infini, et toute notion de localisation
temporelle (ou spatiale pour des images) disparait dans l’espace de Fourier ; il faut donc
trouver un compromis, une transformation qui renseigne sur le contenu fréquentiel tout en
préservant la localisation afin d’obtenir une représentation temps/fréquence ou espace/échelle
du signal.

Exemple : Prenons la fonction f ( x )=sin ( 40 xpi ) +sin ⁡(170 xpi)

Amplitude

Temps

Figure 2.4 : Représentation graphique de f

19
La transformée de Fourier de f est :

Amplitude

Fréquence

Figure 2.5 : Transformée de Fourier de f

La transformée de Fourier nous donne la représentation fréquentielle du signal qui constitue


une hypothèse fondamentale dans le traitement du signal. Espace fréquentielle et espace
temporelle représentent toutes les deux les données à la différence près que celle de l’espace
fréquentielle est plus efficace. Ainsi, elle est largement utilisée dans les applications telles que
la compression, le bruitage…

Fourier propose une approche globale du signal, les intégrations sont faites de moins l’infini à
plus l’infini et toutes les notions de localisation temporelle disparaissent dans l’espace de
Fourier. On ne voit pas l’évolution des caractéristiques dans laquelle réside l’essentiel de
l’information qu’ils contiennent.

La transformée de Fourier est bien adapté pour représenter les signaux réguliers, périodiques
et stationnaires. En effet, elle ne conserve que les Basses Fréquences mais néglige les Hautes
Fréquences.

Elle permet d’estimer les fréquences présentes dans un signal, mais pas de localiser l’endroit
où ces fréquences apparaissent ou disparaissent, car elle agit sur la totalité du signal.

20
2.5.1.2. La transformée de Fourier à fenêtres glissante TFG (Short Term Fourier
Transform)

Figure 2.7 : Transformée de Fourier à fenêtre glissante(TFG)

Par la suite, la transformée de Fourier à fenêtre glissantes (aussi appelée transformée de


Gabor) a été introduite vers 1950:

Multiplication du signal f(t) par une fenêtre glissante h(t−b)(réelle) et par calcul de la
transformée de Fourier de ce produit :

+∞
G f ( , b )=∫ f ( t ) h(t−b)e−2 i t dt ,t R (2.02)
−∞

où b est le temps et la fréquence

Il s’agit donc de calculer la transformée de Fourier du signal temporel découpé en morceaux.


Mais elle ne fonctionne pas dans certains cas. En effet la taille de la fenêtre étant fixe, cette
représentation ne paraît pas adaptée à la représentation de fonctions ou aux signaux ayant des
composantes de tailles différentes de la taille de la fenêtre.

Par exemple, représentons l’enveloppe¿) et la partie réelle des ondelettes de Gabor. La


fonction analysante de la transformée de Fourier à fenêtre s’écrit :

❑b , ( t )=h(t−b)e 2 i t (2.03)

Dans la transformée de Gabor, la fenêtre h est une Gaussienne d’échelle

21
1 −¿¿
 :h ( t )=

e , les fonctions de Gabor sont deviennent :
2

❑b , ( t )=e−(t −b) e2 i t (2.04)


Re(b,(t)) Re(b,(t))

t t
Enveloppe et partie réelle des ondelettes Enveloppe et partie réelle des ondelettes
de Gabor pour =1 de Gabor pour =5

Figure 2.8 : Un signal représenté en TFG avec deux fréquences différentes

Nous pouvons voir que le nombre d’oscillations augmente avec la fréquence  mais que
l’enveloppe reste le même.

2.5.2. Définition mathématiques des ondelettes [6] [13] [16]

En raison des limites de la transformée de Fourier et de Gabor, on a introduit la transformée


en ondelettes qui décompose le signal à la fois en temps et en fréquence avec une fenêtre dont
la taille varie avec la fréquence. Les ondelettes sont des dilatations (i.e qu’on peut les
comprimer ou étirer) et des translations d’une ondelette initiale que l’on nomme ondelette
mère.

Suivant ce que l’on désire réaliser avec le signal, on utilise différents types d’ondelette mère.
Par exemple, les ondelettes peuvent compresser de manière sensible et sans trop de perte sur
une image.

2.5.2.1. Définition [6] [16]

Les ondelettes sont des fonctions élémentaires a,b très particulières ; ce sont les vibrations les
plus courtes et les plus élémentaires que l’on puisse envisager.

1
La fréquence  des fonctions de Gabor est remplacée par une échelle a ( )
a

22
1 t−b 2 i t
❑a ,b ( t )= ( )e (2.05)
√a a
Re(❑a ,b ( t ) Re(❑a ,b ( t )

t t
1 Ondelettes de Morlet pour a=2(partie réelle)
Ondelettes de Morlet pour a= (partie réelle)
2
Figure 2.10: Ondelettes de Morlet avec deux échelles différentes

L’échelle a donne la taille du support (inverse d’une fréquence), b donne la position.

La méthode transformée à fenêtre glissante présente un inconvenient car la longueur de la


plage temporelle que l’on analyse dans le signal est fixe, alors que la Transformée par
ondelettes s’adapte à toutes les échelles temporelles d’analyse.

2.5.2.2. Familles et caractéristiques des ondelettes [16]

Il existe plusieurs familles d’ondelettes (Le chapeau mexicain, l’ondelette de Haar,l’ondelette


de Daubechies, …) qui sont engendrées par une seule ondelette (t) dite « analysante » et
2

définie par : ( t )=cos ( 5 t )∗e−t / 2 . Jean Morlet a construit les ondelettes ❑a ,b à partir de
l’ondelette analysante , non pas par translation et modulation, comme pour la transformée de
Fourier à fenêtre glissante, mais par translation en temps (paramètre b) et contraction ou
dilatation en temps (selon que le paramètre a est plus petit ou plus grand que 1).

Il suffit donc de jouer à l’accordéon avec l’ondelette analysante  pour obtenir la famille des

ondelettes a ,b =
1 t −b
√a
(
a
) (2.06)

23
Une ondelette est caractérisé par :

 Nom : indique la famille d’ondelette (généralement portant le nom du


propriétaire), ex : ondelette de Haar, ondelette de Daubechies, …
 Moment nul : coefficients nuls (capacité de generer des coefficients nuls).
 Support : coefficients non nuls (assure l’exactitude du calcul de la transformée
en ondelette).
 Ordre : dénomme le nombre de coefficients non nuls.
 Support : coefficients non nuls (assure l’exactitude du calcul de la transformée
en ondelette).

2.5.2.3. Exemple de traitement et notion sur les coefficients d’ondelette

Soit un signal s(t ) à analyser :

Figure 2.11 : Un signal quelconque

On va faire l’analyse de ce signal par la transformée d’ondelette, ainsi on doit appeler

1
l’ondelette analysante ❑a ,b  de fréquence pour pouvoir explorer de près un intervalle desiré
a
du signal:

1
Figure 2.12 : Ondelette de Morlet de fréquence
a

24
On va placer l’ondelette analysante ❑a ,b dans la partie à analyser du signal (centrer en b) :

Figure 2.13 : Multiplication par l’ondelette centrée en b

Ainsi, on a le signal produit final :

Figure 2.14 : Signal produit p(t)

Finalement, on doit calculer l’aire du signal produit p(t) ainsi obtenu pour avoir ce qu’on
appelle « coefficients d’ondelette » : l’aire est comptée positivement pour le parties de la
courbe situées au-dessus de l’axe des abscisses, et négativement dans le cas inverse. Cette aire

1
est égale au coefficient d’ondelette C a ,b correspondant à chaque valeur de la « fréquence »
a
et du temps b.

Donc on peut reconstruire facilement un signal à partir des coefficients d’ondelettes C a ,b en

effectuant la somme en continu des termes C a ,b∗❑a ,b (t)/t 2 (2.07)

L’ondelette analysante  joue le rôle d’un microscope dont on règle d’abord le grossissement
à l’échelle des puissance de 2αj (avec j=0, ±1, ±2, …) puis la position (successivement en
chacun des points 0, ±2−αj , ±2∗2−αj, ±3∗2−αj, pour analyser les détails de dimension 2−αj .

2.5.2.4. Classement des transformées des ondelettes [13] [16]

A partir des différentes fonctions analysantes, plusieurs types de transformées sont obtenues.
On peut classer ces transformées en ondelettes selon la famille à laquelle appartiennent les

25
fonctions analysantes choisies. Les transformées obtenues sont suivant les cas continues ou
discrètes, redondantes ou non.

-Les transformées en ondelette continues ou CWT (Continuous Wavelet


Transform): on prend le facteur d’échelle a et le pas de translation b dans l’ensemble des
nombres réels. Or ces transformées sont évidemment très redondantes car l’espace temps-
fréquence est parcouru continûment. Ce type de transformation ne peut, dans la pratique, être
effectué que de façon approximative et il ya toujours en fait une discrétisation du calcul
opérée.

-Les transformées en ondelette discrètes ou DWT (Discret Wavelet Transform):


c’est cette classe d’ondelette qui a le mérite de traiter le problème de l’echantillonnage de
l’espace temps-fréquence avec rigueur et de fournir une mesure de l’eventuelle redondance de
la transformation obtenue. De plus, les algorithmes de calcul conduisent souvent à des
resultats exacts sur des intervalles donnés de l’espace temps-fréquences. Les méthodes de
traitement discrèt sont donc fondamentales car elles sont les seules utilisées en traitement des
images. Parmi les transformées discrètes, on distingue les transformées redondantes, dont les
trames (frames) d’ondelettes et les transformées non redondantes parmi lesquelles les plus
utilisées sont les bases orthogonales et biorthogonales.

Figure 2.15 : Comparaison entre CWT et DWT

26
2.5.2.5. Décomposition en paquet d’ondelette [11] [13]

La transformation en paquets d'ondelettes est la généralisation de la transformation en


ondelettes. Elle permet de choisir un compromis entre la résolution fréquentielle et la
résolution temporelle dans chaque sous-band. Chaque décomposition possible correspond à
une base différente.

Cette transformation peut être utilisée pour l'analyse adaptative des signaux en cherchant
toujours la meilleure base de décomposition.

Voici un arbre décrivant une décomposition en paquet d’ondelette. La décomposition décrite


par cet arbre correspond à une décomposition en ondelette de niveau 3.

Figure 2.16: Arbre de décomposition en paquets d’ondelettes de niveau 3

-L’algorithme de décomposition (Figure 2.17 ci-dessous) se fait par un processus de cascade


avec des filtrages successifs. Il sépare le signal en deux composantes : une composante lisse
(l’allure générale du signal) et un ensemble des petits détails (les fluctuations). L’image lisse
est le signal tel qu’on le voit à la moitié de la résolution la plus fine : avec deux fois moins de
données. On obtient cette image lisse avec un filtre passe-bas qui correspond à la fonction
d’échelle. Les détails sont les retouches qu’il faut apporter à l’image lisse pour reconstituer le
signal initial. On les obtient en utilisant un filtre passe-haut, qui correspond aux plus petites
ondelettes.

27
Figure 2.17 : Décomposition en paquets d’ondelettes pour un niveau 3

Après l’enregistrement des premiers coefficients d’ondelettes (qui encodent les petits détails),
la deuxième étape consiste à répéter la procédure sur le signal à une résolution demie. C’est à
dire on sépare le signal lissé en deux parties : un signal encore plus lissé et de nouveaux
détails (deux fois plus grands que les précédents). Pour cela on dilate d’un facteur 2 la
fonction d’échelle et l’ondelette. Cette étape est deux fois plus rapide que la première car on
détermine deux fois moins de coefficients. Et on répète cette étape jusqu’à obtenir un signal
qui est tellement lissé qu’il disparaît : toute l’information s’est envolée dans les coefficients
d’ondelettes. Ces coefficients sont classés par résolution, chaque résolution correspondant à
une certaine échelle, donc à certaines fréquences. D’où le terme « multirésolution » qui
signifie représentation d’une fonction à plusieurs niveaux de détails: l’Analyse Multi-
résolution permet, par filtrages successifs, de produire une série de signaux correspondant à
une résolution de plus en plus fine du signal, c'est-à-dire à des fréquences de plus en plus
basses.

28
Exemple :

Figure 2.18 : Approche bancs de filtres, appliqué sur une image

Jean Morlet a créé cet algorithme de décomposition dit représentation « cycle-octane »


suivant la technique CODES (Cycle Octave Data Enhancement System). La démonstration de
la validité de ce nouvel algorithme et les essais pour les perfectionner ont conduit l’un d’entre
eux à la découverte de ce qu’on appelle « bases orthogonales d’ondelettes ». La dénomination
« bases orthogonales » signifie que la décomposition est unique (base) et que les ondelettes
sont indépendantes (ou orthogonales).

Les ondelettes ❑ j , k dérivent de  par translation de pas 1, et leurs fréquences sont réparties en
octaves, c'est-à-dire :

j
❑ j , k ( t )=2 (2 j t−k )
2 (2.08)

Où j et k sont des entiers positifs ou négatifs.

Le signal s(t) se décompose ainsi en une somme double de termes indépendants C j , k ❑ j ,k (t ).


Ces termes sont en quelque sorte des retouches successives à effectuer à partir d’une première
ébauche grossière sur des morceaux de plus en plus courts du signal, pour en dévoiler les
détails plus fins.

29
 Résultat de la décomposition en ondelette pour un niveau 1

Figure 2.19 : Décomposition en paquets d’ondelettes pour un niveau 1

 Interprétation fréquentielle de la décomposition en paquets d’ondelettes pour un


niveau 1

Figure 2.20 : Interprétation fréquentielle

– La zone (A) : correspond aux basses fréquences (qui correspondent effectivement aux
coefficients d’approximation).
– La zone(V) : donne les hautes fréquences verticales (contours horizontaux)
– La zone (H) : donne les hautes fréquences verticales (contours horizontaux)
– La zone (D) : donne les hautes fréquences dans les deux directions (les coins)

30
 Décomposition de paquet d’ondelette à 3 niveaux

Figure 2.21 : Décomposition d’ondelettes sur 3 niveaux de résolution.

 Interprétation fréquentielle de la décomposition pour un niveau 3

Figure 2.22 : Interprétation fréquentielle séparable sur 3 niveaux de résolution.

31
2.5.2.6. Reconstruction

La reconstruction des signaux analysés est effectuée à l’aide d’un banc de filtres h et g qui
sont les filtres conjugués du filtre passe-bas h et du filtre passe-haut g.

Figure 2.23 : Reconstruction à partir des coefficients d’ondelettes

Légende :

2  : ne conserve qu’un échantillon sur 2 h : Filtres passe-bas

2  : met un 0 entre chaque échantillon g : Filtres passe-haut

x2  : multiplication par 2 h́ : Filtres passe-bas conjugué

ǵ: Filtres passe-haut conjugué

2.6. Tatouage d’image par ondelette

2.6.1. Principes de Tatouage ou Watermarking [7] [8] [11]

Le tatouage d’images consiste a introduire une marque, le nom ou le logo de l’auteur, dans
une image dans le but de la protéger contre les copies. La lourdeur de la procédure
d’extraction de la marque avec les anciennes méthodes de tatouage nous a poussé a chercher
un nouvel algorithme dans le domaine d’ondelettes(DWT) qui serait aveugle : elle ne
nécessite pas l’image originale pour extraire la marque.

Ce mécanisme d’insertion de marque devrait respecter au moins deux conditions : la marque


doit être imperceptible (l’œil humain ne doit pas pouvoir faire la différence entre une image
marquée et la même non marquée) et robuste (le tatouage doit résister a toutes modifications

32
volontaires ou involontaires). L’extraction devrait être aussi aveugle, c’est-a-dire que pour
extraire la marque, on n’a pas besoin de l’image originale.

Figure 2.24 : Architecture pour les méthodes de tatouage

2.6.2. Tatouage dans le domaine de la DWT (Discret wavelet transform) [8] [11]

Dans le domaine de la DWT bidimensionnelle, chaque niveau de décomposition produit


quatre bandes de données, une correspondante à des basses fréquences (low-pass band)
(LL),et trois autres correspondent à des hautes fréquences Horizontale (HL), verticale (LH),
et diagonale (HH) (high pass band).

Figure 2.25 : DWT d’une image (avec deux niveaux)

Où: LL: low-low frequency band. LH: low-high frequency band


HL: high-low frequency band. HH: high-high frequency band
L’allure générale d’une image est représentée par ses basses fréquences tandis que les détails
par ses hautes fréquences.

33
Basse fréquence de l’image Haute fréquence de l’image
de Lena de Lena
Figure 2.26 : Représentation basse et haute fréquence de l’image de Lena

2.6.3. Principe de la Méthode

Le tatouage d’images que nous proposons suit un schéma classique d’insertion dans le
domaine transformé, la détection étant effectuée en utilisant des méthodes de corrélation.

2.6.4. Diagrammes du système de tatouage proposé

Le tatouage dans le domaine DWT peut être divisé en deux procédures : l’inclusion de la
marque et l’extraction de la marque.

Figure 2.27 : Schéma d’insertion de la marque

Pour insérer un bit, on sélectionne un bloc noté blocHL1 de même taille que la
marque dans la bande HL et on additionne les 2 blocs.

L’algorithme d’insertion est résumé comme suit :

34
1) On calcule la transformée en ondelettes de l’image I (on note IDWT cette
transformée).
2) On ajoute la marque dans blocHL1 de la bande HL en appliquant la
formule :

Si (bitdelamarque = 1)

blocHH = blocHH + λ× bloc front montant

Sinon

blocHH = blocHH + λ× bloc front descendant

Fin Si

3) Finalement, la transformation inverse est appliquée à l’image IDWT pour


former l’image marquée.

Où λ est un facteur permettant de régler la robustesse et l’imperceptibilité de la


technique. Dans cet algorithme, les fronts sont des matrices composées de -1 (noir) et de 1
(blanc).

Ces procédures illustrent la méthode de tatouage d’une image en utilisant la décomposition en


ondelettes. Le détatouage se fait par une procédure inverse à ceux du précédent.

2.7. Compression d’image par ondelettes (DWT) [14]

35
Pour envoyer les imageries médicales en ligne, celles-ci doivent être d’abord comprimées. Il
existe plusieurs méthodes de compression, telle que le codage prédictif, le codage par la DCT,
la Quantification Vectorielle, et bien d’autres. Pourtant la compression par ondelette est une
technique plus récente qui offre de meilleurs résultats lors de la compression de grosses
images, il y a alors moins de pertes visuelles.

2.7.1. Quelques outils indispensables à la compression d’image [12]

 Codeur par transformée : sert à décomposer l’image dans une base orthogonale
(DCT, Ondelette, …). Dans notre cas, on va choisir l’ondelette biorthogonal (bior 3.5)
parce qu’elle génère plus de moments nuls (coefficients nuls) lors de la décomposition
en ondelette.
NB  :
Orthogonalité : assure la conservation de l’énergie pour avoir un algorithme rapide
Une meilleure base en ondelette est celle qui génère plus de coefficients.
 Quantificateur : quantifier de manière uniforme à l’aide d’un pas Δ les coefficients
d’ondelettes obtenus après décomposition.

Figure 2.28 : Un quantificateur

Lors de la compression, on doit aussi évaluer le taux de distorsion introduite par la


quantification. On cherche donc à minimiser la distorsion d’un codage, mesurée par une
erreur de quadratique moyenne. Comme la base est orthogonale, elle s’écrit :

N −1
d= E { F−~
F 2 }= ∑ E ¿ F B [ m ] −~
2
F[m] ¿} (2.09)
m=1

 Codeur : coder chaque coefficient pour réduire le plus d’informations contenues dans
l’image. Un bon codeur minimise la distorsion lors d’un codage.

36
 PSNR (Peak Signal to Noise Ratio) : mesure la dégradation entre l’image originale et
l’image reconstruite après compression.
– Si  augmente PSNR diminue mauvaise compression (Image
dégradée)
– Si  diminue PSNR augmente bonne compression
2552
PSNR=10 log 10 (dB) (2.10)
MSE
M N
1 2
Où MSE= ∑ ∑ (X ( i, j )−Y (i , j)) (2.11)
M ∗N i=1 j=1
X : image originale
Y : image reconstruite

Pourtant, le PSNR a un rapport avec l’entropie.

 Entropie

De manière plus simple, l’entropie peut être définie comme quelques choses de désordonnée
au niveau d’un processus (réaction chimique, transformation, …). Sur l’entropie existe aussi
une compression d’image :

– Si entropie augmente distorsion de l’image reconstruite


– Si entropie diminue image parfaitement reconstruite

Bref,

 Si  est trop élevé entropie diminue PSNR diminue mauvais


codage mauvaise compression de l’image.
 Si  est trop petit PSNR augmente entropie augmente mauvais
codage mauvaise compression de l’image.

Ainsi, il faut bien jouer entre pas de quantification , entropie et PSNR pour avoir une
compression parfaite d’une image.

2.7.2. Procédure de compression [12] [15]

La compression par ondelettes consistera à décomposer l’image perçue comme un signal en


un ensemble d’images de plus petite résolution. Ce procédé, qui repose sur la différence entre
zones de contrastes fortes et zones de contrastes faibles, se développe en trois phases :

37
 Tout d’abord, on procède à une transformation de l’image en ondelettes selon un
schéma à plusieurs niveaux.
 Ensuite, on réalise une quantification des informations. Lors de cette phase, les détails
qui se situent au-dessous d’un certain seuil sont purement et simplement éliminés.
C’est donc à ce niveau que se produit la perte d’informations. La compression consiste
donc à mettre à 0 tous les coefficients d n , k qui seront considérés comme négligeables.

 Enfin, on termine en codant les informations.

Figure 2.29  : Processus de compression par DWT

2.7.2.1. Décomposition en ondelettes [16]

Décompose l’image en sous images avec des fréquences différentes pour concentrer les
informations en peu de coefficients.

Objectifs : - Avoir une structure pyramidale et analyse multi-résolution.

- Faciliter la localisation des coefficients significatifs.

Il y a plus de coefficients significatifs aux grandes échelles 2 jcar les coefficients d’ondelettes
ont tendance à décroître lorsque l’échelle diminue.

2.7.2.2. Quantification

L’image est transformée en ses coefficients dans la base {bn}. Ceux-ci sont quantifiés de
manière uniforme à l’aide d’un pas Δ. Il y a un seuil pour chaque niveau de détail, et en
dessous de ce seuil le coefficient est remplacé par 0.

38
Exemples de quantificateur :

 Quantificateur scalaire
 Quantificateur à haute résolution
 Quantificateur uniforme
 Quantificateur entropique

2.7.2.3. Codage

Finalement, on code les valeurs quantifiées par deux listes : une liste binaire montrant pour
chaque coefficient qu’il est nul ou non et une liste des valeurs quantifiées non nuls. Cette
stratégie s’explique par le caractère particulier des coefficients quantifiés à 0.

Donc le but c’est de localiser les coefficients significatifs selon la carte de coefficients
d’ondelettes significatives suivante :

Figure 2.30 : carte de coefficient d’ondelettes significatives

Type de codage en ondelette :

 Codage EZW
 Codage SPITH

La décompression des images s’opère par le schéma inverse : les informations sont tout
d’abord décodées pour fournir un ensemble à plusieurs niveaux d’ondelettes permettant la
reconstitution progressive de l’image.

39
2.8. Conclusion

Les bases de Fourier n’étaient pas bien adaptées à l’analyse des phénomènes transitoires,
tandis que les bases d’ondelettes le sont. Avec l’arrivée de l’ondelette de Morlet, un nouvel
axe de recherche se développe très rapidement, le tatouage ou watermarking  et la compression
par ondelette. La sphère des applications du tatouage ne cesse d'augmenter depuis quelques
années englobant outre la protection de copyright et l’authentification. Le principe des
techniques dit de tatouage par ondelette est d'insérer une marque imperceptible et indélébile
dans certaines fréquences d’une image. D'autre part, à travers le standard international JPEG-
2000 pour la compression d’images, ces ondelettes envahissent actuellement tous les
domaines de l’image, de l’Internet aux appareils photo numériques, et se dirigent vers les
satellites. Actuellement, il est possible de « condenser » les images sans altérer leur qualité.

40
3. CHAPITRE :

LA cryptographie
3.1. Introduction

Dès que les hommes apprirent à communiquer, ils durent trouver des moyens assurant la
confidentialité d’une partie de leurs communications, ce qui nous amène à savoir que la
fonction première de la cryptographie est de cacher le sens d’un message à tous ceux qui ne
sont pas autorisés à le connaitre. Donc, on peut dire que l’origine de la cryptographie remonte
sans doute aux origines de l’homme.
En effet, le mot cryptographie est un terme générique désignant l’ensemble des techniques
permettant de chiffrer des messages, c’est-à-dire de les rendre inintelligibles sans une action
spécifique. En dépit de l’évolution des moyens de communication depuis l’antiquité, il a
toujours été difficile de garantir la sécurité du canal par lequel transite un message. Un
cavalier transportant un rapport sur la position d’une armée peut être intercepté par des
éclaireurs ennemis ; un employé du télégraphe transmettant des consignes d’investissements
boursiers peut être à la solde d’un actionnaire concurrent ; un ordre militaire transmis par les
ondes radios peut être capté par n’importe quel récepteur réglé sur la bonne fréquence ; un
courrier qui transite sur Internet peut être lu par n’importe quel ordinateur sur la chaîne reliant
l’expéditeur au destinataire. Aussi, la problématique d’établir des communications sécurisées
en utilisant un médium non sécurisé a toujours été d’importance en vue d’applications
militaires, financières, ou simplement du respect de la vie privée.
Un cryptosystème fonctionne de la façon suivante :

Figure 3.1 : Fonctionnement d’un cryptosystème

42
3.2. Quelques définitions [2] [4] [10]

La cryptologie est la science des messages secrets. Longtemps restreinte aux usages
diplomatiques et militaires, elle est maintenant une discipline scientifique à part entière, dont
l’objet est l’´etude des méthodes permettant d’assurer les services d’intégrité, d’authenticité et
de confidentialité dans les systèmes d’information et de communication.
La cryptographie traditionnelle est l’étude des méthodes consistant à transmettre des données
de manière confidentielle. Afin de protéger un message, on lui applique une transformation
qui le rend incompréhensible ; c’est ce qu’on appelle le chiffrement, qui, à partir d’un texte
en clair, donne un texte chiffré ou cryptogramme. Inversement, le déchiffrement est
l’action qui permet de reconstruire le texte en clair à partir du texte chiffré. Dans la
cryptographie moderne, les transformations en question sont des fonctions mathématiques,
appelés algorithmes cryptographiques, qui dépendent d’un paramètre appelé clef.
On appelle texte en clair, les données lisibles et compréhensibles sans intervention
spécifique. Le cryptage ou chiffrement est la méthode permettant de dissimuler du texte en
clair en masquant son contenu. Cela consiste à transformer un texte normal en un charabia
inintelligible appelé texte chiffré. Cette opération permet de s’assurer que seules les personnes
auxquelles les informations sont destinées pourront y accéder. Le processus inverse de
transformation du texte chiffré vers le texte d’origine est appelé le décryptage.
Coder : transformer un texte, une information en remplaçant les mots dans une écriture faite
de signes prédéfinis.
Un cryptosystème est un système matériel ou logiciel effectuant de la cryptographie, il peut
contenir un ou plusieurs algorithmes de chiffrement.
Clef : on appelle clé une valeur utilisée dans un algorithme de cryptographie, afin de chiffrer
un texte. Les clés doivent être stockées de manière sécurisée et de manière à ce que seul leur
propriétaire soit en mesure de les atteindre et de les utiliser.
La cryptographie est donc traditionnellement utilisée pour dissimuler des messages aux yeux
de certaines personnes. Cet intérêt est aujourd’hui d’autant plus grand que les ordinateurs et le
réseau Internet se sont considérablement développés. Elle est désormais indispensable pour
préserver la sécurité et la confidentialité des données, mais aussi leur intégrité et leur
authenticité.
Un service d’intégrité garantit que le contenu d’une communication ou d’un fichier n’a pas
été modifié. Par exemple, on peut souhaiter à vérifier qu’aucun changement du contenu d’un

43
disque dur n’a eu lieu ; des produits commerciaux, mettant en jeu des méthodes
cryptologiques sont disponibles (voir notamment) à cet effet.
Un service d’authenticité garantit l’identité d’une entité donnée ou l’origine d’une
communication ou d’un fichier. Lorsqu’il s’agit d’un fichier et que l’entité qui l’a créé est la
seule à avoir pu apporter la garantie d’authenticité, en évidence on parle de non-répudiation.
Le service de non-répudiation est réalisé par une signature numérique. Une définition précise
sera donneé plus loin ; on s’intéressera ici sur la loi du 20 mars 2000 qui a fait passer ce
concept dans la vie sociale.
Un service de confidentialité garantit que le contenu d’une communication ou d’un fichier
n’est pas accessible aux tiers. Ainsi, la cryptologie se partage en deux sous-disciplines
également importantes : la cryptographie qui fait l’objet de proposer des méthodes pour
assurer les services définis plus haut et la cryptanalyse qui recherche des failles dans les
mécanismes ainsi proposés.

Recherche exhaustive de la clef, cette technique consiste tout simplement à essayer toutes
les clefs possibles jusqu'à ce qu'on trouve la bonne. Pour les chiffres à alphabet décalé,
comme le chiffre de César, cette recherche est envisageable puisqu'il y a peu de possibilités.
3.3. Quelques repères historiques [2] [4] [10]

Figure 3.2 : Les classes de la cryptographie

44
– La cryptographie classique

Les premiers algorithmes utilisés pour le chiffrement d'une information étaient assez
rudimentaires dans leur ensemble et ils sont trop simples pour offrir la moindre sécurité. Pour
cacher la substance d’un texte, ils utilisent la substitution de caractères par d'autres ou les
transposer dans des ordres différents. De ce fait, la confidentialité de l'algorithme de
chiffrement était donc la pierre angulaire de ce système pour éviter un décryptage rapide. On
appelle généralement cette classe de méthodes : le chiffrement à usage restreint.
Exemple : chiffrement par substitution, chiffrement par transposition
– La cryptographie moderne
La cryptographie entre dans son ère moderne avec l'utilisation intensive des ordinateurs à
partir des années septante. Vue la nécessité croissante de sécuriser les données dans tous les
domaines (économique, industriel, informatique,...etc.) …. La cryptographie est appelée à
devenir une technique de plus en plus fondamentale pour la protection des informations
possédées et/ou échangées par des individus ou des organisations. Dans la cryptographie
moderne, on utilise aussi des problèmes mathématiques que l'on ne sait pas (encore) résoudre,
par exemple factoriser des grands nombres (chiffre RSA).
La cryptographie moderne se scinde en deux parties nettement différenciées :
 la cryptographie à clef secrète, ou encore appelée symétrique,
 la cryptographie à clef publique, dite également asymétrique.

– Cryptographie quantique

La cryptographie à base d'algorithmes aura toujours des faiblesses. Même si la cryptanalyse


bloque devant un algorithme, la force brute pourra toujours décrypter n'importe quel code si
on lui donne assez de temps. Même avec le plus solide des chiffrages, le contenu du message
peut être subtilisé et dupliqué. Les clés, quant à elles, peuvent être volées en chemin ou
présenter des faiblesses qui les rendent prévisibles.
Si maintenant on base notre cryptographie, non pas sur un algorithme mathématique, mais sur
des lois de la physique quantique, il n'y plus de force brute qui peut briser un code ici. Le
cryptage ne se trouve pas dans des formules, mais dans des photons, ainsi tout le monde peut
accéder à des formules, mais pas tout le monde peut accéder aux photons sans que le message
devienne inutile. De ce fait, l’information n’est plus sécurisée par des subterfuges
mathématiques, mais plutôt par des lois fondamentales de physique. Au de-là, la
cryptographie quantique a vu le jour.

45
3.4. Cryptographie moderne

3.4.1. Chiffrement et déchiffrement [2] [10]

La cryptographie moderne est principalement liée aux services de confidentialité. Elle réalise
sur les données m une transformation constituée par une formule C = Ek(m), par
l’intermédiaire d’un algorithme de chiffrement E. Cet algorithme prend en entrée le message
clair m et un paramètre secret k, qu’on appelle la clé. Le message m varie dans un ensemble
M et la clé k dans un ensemble K. La restauration du texte clair à partir du chiffré ou
cryptogramme C se fait par un algorithme de déchiffrement Dk, prenant en entrée le chiffré et
la même clé.
On doit avoir la formule suivante : Dk(Ek(m)) = m. En général, le chiffré prend sa valeur dans
le même espace M et l’on a aussi Ek(Dk(c)) = c, c’est `a dire que les algorithmes Ek et Dk
réalisent une permutation de M.
La distinction entre l’algorithme et la clé s’est établie il y a fort longtemps, notamment dans
les travaux du cryptologue Auguste Kerckhoffs. Ce dernier a en effet su reconnaitre que
l’algorithme de chiffrement n’exigeait pas le secret, dans la mesure auquelle il risquait de
toute façon de passer aux mains de l’ennemi. La cryptologie moderne recommande même des
méthodes de chiffrement totalement explicites de manière à ce qu’elles soient évaluées et
validées par un débat ouvert entre experts. Du coup, une convention secrète entre entités qui
souhaitent communiquer de façon chiffrée se limite à l’échange d’une clé k.
3.4.2. Décryptage [2] [10]

L’opération qui consiste à calculer le clair m à partir du chiffré C = Ek(m), mais sans la
connaissance de la clé k est appelée décryptement. La confidentialité est assurée si cette
opération est impossible. On distingue divers scénarios possibles d’attaque
– les attaques à chiffré seul, où l’adversaire dispose d’un certain nombre de chiffrés
Ek(mi) ;
– les attaques à clair connu, où l’adversaire dispose d’un certain nombre de chiffrés
Ek(mi) et des clairs correspondants mi ;
– les attaques à clair choisi, où l’adversaire dispose d’un certain nombre de chiffrés
Ek(mi) correspondant à des clairs de son choix mi ; si de plus chaque message mi est défini en
fonction des chiffrés obtenus antérieurement, on parle d’attaque à clair choisi adaptative.
Le lecteur pourra définir d’autres variantes, comme l’attaque à chiffré choisi. Le but de
l’attaque est la découverte de la clé ou le décryptement d’un chiffré C, correspondant à un

46
clair dont on ne dispose pas. Les attaques à chiffré seul sont les plus difficiles, néanmoins
l’adversaire dispose en général d’informations statistiques sur le clair.
3.4.3. Type de cryptosystème actuel [14] [15]

Il existe deux grandes familles d’algorithmes cryptographiques à base de clefs actuellement:


les algorithmes à clef privé ou algorithmes symétriques, et les algorithmes à clef
publique ou algorithmes asymétriques.
Un bon cryptosystème doit permettre un chiffrement et un déchiffrement rapide, tout en
interdisant toute possibilité de décryptage. Pour alléger les charges en mémoire informatique,
on préfère aussi que les clés soient de petite taille.
3.4.3.1. Cryptographie à clefs privés ou secrète [3] [4] [5] [19] [24]

La cryptographie à clefs privées, appelée aussi cryptographie symétrique est utilisée depuis
déjà plusieurs siècles. C’est l’approche la plus authentique du chiffrement de données et
mathématiquement la moins problématique. La clé de chiffrement peut être calculée à partir
de la clé de déchiffrement, et le destinataire doit se mettre d’accord préalablement sur une clé
qui doit être gardée secrète car la sécurité d’un tel algorithme repose sur cette clé.
Le chiffrement à clé publique et le chiffrement symétrique présentent chacun des avantages et
des inconvénients. Par exemple, le temps de chiffrement et déchiffrement de la cryptographie
à clé publique est supérieur à celui de la cryptographie symétrique. Un des problèmes
principaux du chiffrement symétrique est l’échange préalable de la clé secrète : c’est la
transmission de cette clé entre les intervenants qui représente la faiblesse inhérente au
système. S’ils se trouvent à des emplacements géographiques différents, ils devront faire
confiance à une tierce personne ou un moyen de communication sécurisé. Toute personne
interceptant la clé lors d’un transfert peut ensuite lire, modifier et falsifier toutes les
informations cryptées ou authentifiées avec cette clé.
Le chiffrement à clé publique peut être préféré pour générer de petites séquences comme des
signatures ou des clés secrètes pour le chiffrement symétrique. Le chiffrement symétrique
peut être préférer pour chiffrer des grandes quantités de données.
La taille des clés utilisées varie selon le besoin. Elles font en standard 64 ou 128 bits.

47
Figure 3.3 : Principe du chiffrement à clé secrète

Les principaux types de cryptosystèmes à clefs privés utilisés aujourd’hui se répartissent en


deux grandes catégories : les cryptosystèmes par flots et les cryptosystèmes par blocs.
De la norme de cryptage de données DES au code secret de Jules César, la distribution des
clés reste le problème majeur du cryptage conventionnel (Autrement dit, comment faire
parvenir la clé à son destinataire sans qu’aucune personne ne l’intercepte ?). Les moyens à
déployer pour garantir la distribution sécurisée des clés entre les correspondants sont très
onéreux, ce qui constitue un inconvénient supplémentaire.
Les principaux algorithmes à clé privée utilisés actuellement sont : Blowfish, DES / 3DES,
IDEA, RC2, RC5, RC6, Rijndael(AES).
 Cryptosystèmes par flots ou en continu (Stream cipher) :
Dans un cryptosystème par flots, le cryptage des messages se fait de caractère à caractère ou
bit à bit au moyen de substitutions de type César générées aléatoirement : la taille de la clef
est donc égale à la taille du message.
La fonction de chiffrement est la même pour chaque bit, mais elle dépend d’une clé K k qui
varie dans le temps, dite dynamique. La génération de la clé dynamique dépend d’une clé
secrète  dite statique.
Dans un schéma de chiffrement par flot, lorsqu’Alice et Bob veulent communiquer de façon
sécurisée, ils doivent se rencontrer préalablement et secrètement pour se mettre d’accord sur
la clé secrète  qu’ils partagent et qu’ils vont employer lors de la génération de K k. Quelques
temps plus tard, quand Alice souhaite envoyer un message m k à Bob, elle transforme le
message mk texte chiffré ck= e (Kk, mk), où elle représente une fonction de chiffrement. Elle
envoie le texte chiffré ck à Bob par l’intermédiaire d’un canal qui n’est pas forcement sécurisé.

De son côté, Bob reçoit le texte chiffré c k et calcule mk= d (Kk, ck) où d est une fonction de
déchiffrement. Ainsi, Bob récupère le message initial m k. Ce principe est illustré sur la
figure3.4 suivante :

48
Figure 3.4 : Chiffrement par flot

Un exemple de chiffrement par flot, proposé par Vernam en 1917, est le masque jetable
(« one-time pad »), aussi appelé chiffre de Vernam. Dans ce schéma, le texte chiffré c k est le
résultat d’une combinaison du texte clair mk avec la clé Kk, de même taille, par un OU
exclusif (XOR) :
ck= mk  Kk (3.01)
A partir du texte chiffré, le texte clair peut être retrouvé par l’opération inverse :
mk= ck  Kk (3.02)

Cependant, cela n’est valable que si plusieurs conditions sont vérifiées :

– La clé Kk doit être aussi longue que le message clair ;


– La clé Kk doit être une chaîne de bits parfaitement aléatoire ;
– La clé Kk ne doit être utilisée qu’une fois pour chiffrer les informations
claires mk, d’où le nom de masque jetable. De plus, le flot de clés K k est
généré aléatoire et indépendant des flots passés.

Ces trois conditions font du chiffrement de Vernam une méthode difficile à utiliser en
pratique. 

Dans le chiffrement par flot, il existe deux manières différentes de synchroniser les
générateurs de clé afin de récupérer le message original. La première est appelée chiffrement
par flot synchrone et la seconde est appelée chiffrement par flot autosynchrone.

 Chiffrement par flot synchrone

Dans un schéma de chiffrement par flot synchrone, l’émetteur est donné par :

49
K k =f θ ( K k−1)
{Ck =e (K k , mk )
(3.03)

Où f θ  est une fonction,  la clé statique, Kk la clé dynamique, mk le texte clair et Ck le texte
chiffré. La clé dynamique Kk est générée par une dynamique interne f θ  qui ne dépend ni du
texte clair mk, ni du texte chiffré Ck. Le récepteur est donné par :

K k =f θ^ ( K
^ ^ k−1 )
{m
^ k =d ( K^ k , C k)
(3.04)

Figure 3.5 : Chiffrement par flot synchrone

La récupération du texte clair nécessite une synchronisation des séquences des clés
dynamiques à l’émission et à la réception. La fonction de chiffrement d est telle que m
^ k = mk si
^
K k = Kk. Le flot de clés étant issus de récurrences autonomes, les générateurs de clés doivent
être initialisés de part et d’autre de façon identique. La clé statique  représente la condition
initiale K0. Si, pour une raison quelconque la synchronisation est perdue durant la
transmission, l’émetteur et le récepteur doivent être réinitialisés à la même valeur pour
resynchroniser leur transmission.

 Chiffrement par flot autosynchrone

Dans un schéma de déchiffrement par flot autosynchrone, l’émetteur est donné par :

¿ (3.05)

Où f est une fonction paramétrée par la clé statique, qui génère le flot de clés K k. A l’inverse
du chiffrement par flot synchrone, Kk dépend seulement des valeurs passées du texte chiffré
Ck. Le récepteur est donné par :

K k =f θ^ ( K k−1 , … , K k− j )
^
{ m
^ k =d ( ^ K k , Ck )
(3.06)

50
Figure 3.6  : Chiffrement par flot autosynchrone

Si un symbole du texte chiffré est perdu ou est erroné, les j clés Kk suivantes seront calculées
^ k seront à nouveau correctes.
de façon erronée par le récepteur, après quoi les clés suivantes K

Comme pour le chiffrement par flot synchrone, la récupération du texte clair nécessite la
synchronisation des séquences des clés dynamiques à l’émission et à la réception, et la
fonction de déchiffrement telle que m ^ k = Kk. A l’inverse du chiffrement par flot
^ k = mk si K

synchrone, les séquences des clés dynamiques se synchronisent automatiquement et  est un


paramètre de la dynamique f.

Voici quelques exemples de chiffrement par flot.

– RC4 (utilisé notamment par le protocole WEP du Wi-Fi)


– E0 (utilisé par le protocole Bluetooth)
– A5/1, A5/2, A5/3 (utilisé dans les téléphones mobiles de type GSM pour
chiffrer la communication par radio entre le mobile et l'antenne-relais la
plus proche)

 Cryptosystèmes par blocs :


Dans un schéma de chiffrement par blocs, le message est divisé en blocs de bits, de longueur
fixe d’où chaque bloc est chiffré l’un après l’autre. Le chiffrement peut être effectué par
substitutions (les bits d’un bloc sont substitués avec d’autres bits) et par transpositions (les
bits d’un bloc sont permutés entre eux). La substitution permet d’ajouter de la confusion,
c'est-à-dire de rendre la relation entre le message et le texte chiffré aussi complexe que
possible. La transposition permet d’ajouter de la diffusion, c'est-à-dire de réarranger les bits
du message afin d’éviter que toute redondance dans le message ne se retrouve dans le texte
chiffré.

51
Un exemple de chiffrement par blocs est le célèbre schéma DES (Data Encryption Standard),
adopté par le gouvernement Américain, en 1977, comme algorithme de chiffrement standard
officiel. Pourtant, les longueurs des clés ne permettent pas de résister à des attaques de plus en
plus performantes grâce au progrès des ordinateurs. Pour pallier ce problème, le schéma DES
est amélioré et devient le schéma AES (Advanced Encryption Standard), en 1997.

– Rijndael ou AES (Advanced Encryption Standard)

En 1997, le NIST (National Institute of Standards and Technology) américain lance un appel
d'offre afin de trouver un remplaçant au DES. 15 algorithmes sont alors étudiés, et en fonction
des différents critères, en 2000, l'algorithme belge Rijndaël (à prononcer raindal), proposé par
Joan Daemen et Vincent Rijmen, est retenu. Il faut savoir que chacun des modèles a été testé
sur plusieurs types de surface et Rijndaël n'a été le premier sur aucune d'elle, mais il a montré
qu'il gardait à chaque fois des performances très intéressantes. Il a donc été choisi autant pour
son adaptabilité que pour ses performances.
Du fait de son origine, l'AES est un standard. Il est donc libre d'utilisation, sans restriction
d'usage ni brevet.
3.4.3.2. Cryptographie à clefs publiques [1] [4]

Tous les algorithmes évoqués jusqu’à présent sont symétriques en ce sens que la même clef
est utilisée pour le chiffrement et le déchiffrement. Le problème essentiel de la cryptographie
symétrique est la distribution des clefs : pour que n personnes puissent communiquer de
manière confidentielle il faut n (n-1)/2 clefs. Donc, c’est faire face à ces problèmes liés à la
distribution des clés que ce nouveau cryptosystème à clé publique aussi appelée cryptographie
asymétrique a été mis au point.
L’idée de base des cryptosystèmes à clefs publiques a été proposée dans un article
fondamental de Diffie et Hellman en 1976. Le principe fondamental est d’utiliser des clefs de
chiffrement et déchiffrement différentes, non reconstructibles l’une à partir de l’autre :
Une clef publique pour le chiffrement
Une clef secrète pour le déchiffrement
Ce système est basé sur une fonction à sens unique, soit une fonction facile à calculer dans un
sens mais très difficile à inverser sans la clef privée.
Pour faire une explication imagée, la clef publique joue le rôle d’un cadenas. Imaginons que
seul Bob possède la clef (clef secrète), Alice enferme son message dans une boîte à l’aide du

52
cadenas et l’envoie à Bob. Personne n’est en mesure de lire le message puisque seul Bob
possède la clef du cadenas.
Lorsqu’Alice, l’Emetteur, et Bob le destinataire, veulent communiquer de façon sécurisée,
Bob choisit une paire de clés de chiffrement et de déchiffrement (K e, Kd). Il envoie la clé
publique Ke à Alice, par l’intermédiaire d’un canal qui n’est pas forcement sécurisé. Alice
transforme le message m en texte chiffré C= e (K e, m) où e représente une fonction de
chiffrement, et envoie ce texte chiffré c à Bob. De son côté, Bob reçoit le texte chiffré c et
calcule m= d(Kd, c) où d est une fonction de déchiffrement et K d est la clé privée connue
uniquement de Bob.
Ainsi, Bob récupère le message initiale m. Ce schéma est illustré sur la figure 3.7 ci-dessous :

Figure 3.7 : Chiffrement à clé publique

Il existe plusieurs exemples de cette cryptographie à clé publique, par exemple l’algorithme
de Diffie-Hellman, RSA, Elgamal 6. Pourtant les deux algorithmes les plus connus et les plus
sûrs restent : RSA et Elgamal 6.

3.4.3.3. Cryptographie hybrides

Il existe aussi des systèmes de protection mélangeant les deux techniques pour en garder leurs
avantages, l'idée est d'utiliser la rapidité de l'algorithme symétrique, et la sécurité de
l'asymétrique. On les appelle les systèmes hybrides. L’exemple le plus probant est PGP mais
on peut aussi citer GnuPG et SSL.

3.5. Cryptanalyse [2] [10]

Lorsqu’un cryptosystème est synthétisé, il faut s’assurer qu’il est effectivement robuste face à
des attaques pirates. Cette étape de validation ou de vérification est appelée la cryptanalyse.

53
Elle consiste à tester les cryptosystèmes afin de déceler leurs éventuelles faiblesses. La
cryptanalyse des algorithmes est ainsi essentielle pour trouver les failles des algorithmes.
Faire la cryptanalyse d'un algorithme de chiffrement, c'est étudier sa sécurité en tentant de
casser les fonctions cryptographiques qui le composent à l'aide d'attaques. Le processus par
lequel on tente de comprendre un message en particulier est appelé une attaque.

Il est donc avantageux pour un algorithme d'être complètement publié (code source) pour
permettre aux cryptographes d’étudier sa sécurité.
Il existe plusieurs familles d’attaques cryptanalytiques, les plus connues étant l’analyse
fréquentielle, la cryptanalyse différentielle et la cryptanalyse linéaire.

54
Conclusion

Dans ce chapitre, nous avons pu voir une terminologie et un ensemble de points sur lesquels il
est intéressant d’envisager la neuro-cryptographie, notamment dans l’étude d’algorithmes de
chiffrement et de leurs cryptanalyses, dans les moyens de mise en œuvre d’un logiciel de la
cryptographie.

Après la présentation de ces différents algorithmes de codage, nous pouvons dire qu'il est

nécessaire de distinguer les deux cas symétriques et asymétriques. En effet, chacun d'eux a ses

particularités et n'auront pas les mêmes applications.

Dans les cas où les deux interlocuteurs sont sûrs, il est préférable d'utiliser un chiffrement

symétrique. Parmis les chiffrements symétriques, le chiffrement AES, très récent, s'avère être

le plus efficace. Il est d'ailleurs très employé depuis son officialisation.

L’étude de l’AES réalisée avec une architecture à réseaux de neurones devrait prouver leur
efficacité pour des chiffrements incassables. On trouve dans les prochains chapitres des
théories sur le réseau de neurones.

  

55
4. CHAPITRE :

RESEAU DE NEURONES

ARTIFICIELS
4.1. Introduction

L’intelligence artificielle, grand sujet du moment? Le terme remonte pourtant aux années
1950. Il sonne même de façon presque désuète, en nous ramenant à l’époque où des récits de
science-fiction contribuaient à diffuser la peur de machines plus « intelligentes » que
l’homme. S’il y a un réel renouveau des recherches sur l’intelligence artificielle (IA) et des
peurs qu’elles suscitent, c’est que bien des choses ont changé, comme l’apparition de
nouvelles technologies d’apprentissage automatique (machine learning). Avec le grand retour
de l’IA, un autre terme revient lui aussi sur le devant de la scène : le réseau de neurones
artificiel (RNA) qui est l’une des composantes importantes du domaine de l’intelligence
artificielle. Historiquement, l’inspiration pour les réseaux de neurones provient cependant de
la volonté de créer des systèmes artificiels sophistiqués, voire « intelligents », capables
d’effectuer des opérations semblables à celles que le cerveau humain effectue de manière
routinière, et d’essayer par-là d’améliorer la compréhension du cerveau. Les RNA
ressemblent donc au cerveau humain car la plupart des réseaux de neurones ont une certaine
capacité d’apprendre. Cela signifie qu’ils apprennent à partir d’exemples, de même que les
enfants apprennent à distinguer les chiens des chats à partir d’exemples de chiens et de chats.
Le réseau peut ensuite dans une certaine mesure être capable de généraliser, c’est-à-dire de
produire des résultats corrects sur des nouveaux cas qui ne lui avaient pas été présentés au
cours de l’apprentissage.

57
4.2. Historique [17] [18] [20]

Deux bio-physiciens de Chicago, McCulloch et Pitts, furent les premiers à proposer un


modèle. Ils inventérent en 1943 le premier neurone formel qui porta leurs noms (neurone de
McCulloch-Pitts).
Quelques années plus tard, en 1949, Hebb propose une formulation du mécanisme
d'apprentissage, sous la forme d'une règle de modification des connexions synaptiques (règle
de Hebb). Le premier réseau de neurones artificiels apparait en 1958, grâce aux travaux de
Rosenblatt qui conçoit le fameux Perceptron. Le Perceptron est inspiré du système visuel (en
termes d'architecture neurobiologique) et possède une couche de neurones d'entrée
("perceptive") ainsi qu'une couche de neurones de sortie ("décisionnelle"). Ce réseau parvient
à apprendre à identifier des formes simples et à calculer certaines fonctions logiques. Il
constitue donc le premier système artificiel présentant une faculté jusque là réservée aux êtres
vivants : la capacité d'apprendre par l'expérience.
Malgré tout l'enthousiasme que soulève le travail de Rosenblatt dans le début des années 60,
la fin de cette décennie sera marquée en 1969, par une critique violente du Perceptron par
Minsky et Papert. Ils montrent dans un livre (« Perceptrons ») toutes les limites de ce modèle,
et soulèvent particulièrement l'incapacité du Perceptron à résoudre les problèmes non
linéairement séparables, tels que le célèbre problème du XOR (OU exclusif). Il s'en suivra
alors, face à la déception, une période noire d'une quinzaine d'années dans le domaine des
réseaux de neurones artificiels.
Il faudra attendre le début des années 80 et le génie de Hopfield pour que l'intérêt pour ce
domaine soit de nouveau présent. En effet, Hopfield démontre en 1982 tout l'intérêt d'utiliser
des réseaux récurrents (dits "feed-back") pour la compréhension et la modélisation des
processus manésiques. Les réseaux récurrents constituent alors la deuxième grande classe de
réseaux de neurones, avec les réseaux type perceptron (dits "feed-forward"). En parallèle des
travaux de Hopfield, Werbos conçoit son algorithme de rétropropagation de l'erreur, qui offre
un mécanisme d'apprentissage pour les réseaux multi-couches de type Perceptron (appelés
MLP pour Multi-layer Perceptron), fournissant ainsi un moyen simple d'entraîner les neurones
des couches cachées. Cet algorithme de "back-propagation" ne sera pourtant popularisé qu'en
1986 par Rumelhart.

58
4.3. Neurone biologique [20]

4.3.1. Structure d'un neurone

On pense que le système nerveux compte plus de 1000 milliards de neurones interconnectés.
Avant de rentrer plus en avant dans les détails, examinons un neurone.
Voici le schéma d'un neurone biologique :

Figure 4.1 : Un neurone biologique

On peut le décomposer en trois régions principales :


 Le corps cellulaire
Il contient le noyau du neurone ainsi que la machine biochimique nécessaire à la synthèse des
enzymes. Ce corps cellulaire de forme sphérique ou pyramidale contient aussi les autres
molécules essentielles à la vie de la cellule. Sa taille est de quelques microns de diamètre.
 Les dendrites
Ce sont de fines extensions tubulaires qui se ramifient autour du neurone et forment une sorte
de vaste arborescence. Les signaux envoyés au neurone sont captés par les dendrites. Leur
taille est de quelques dizaines de microns de longueur.
 L'axone
C'est le long de l'axone que les signaux partent du neurone. Contrairement aux dendrites qui
se ramifient autour du neurone, l'axone est plus long et se ramifie à son extrémité ou il se
connecte aux dendrites des autres neurones. Sa taille peut varier entre quelques millimètres à
plusieurs mètres.

59
 Synapse
Une synapse est une jonction entre deux neurones, généralement entre l'axone d'un neurone et
une dendrite d'un autre neurone.
Voici le schéma d'une synapse :

Figure 4.2 : Une Synapse

4.3.2. Fonctionnement

Au point de vu fonctionnel, il faut considérer le neurone comme une entité polarisée, c'est-à-
dire que l'information ne se transmet que dans un seul sens : des dendrites vers l'axone.
Le neurone va donc recevoir des informations, venant d'autres neurones, grâce à ses dendrites.
Il va ensuite y avoir sommation, au niveau du corps cellulaire, de toutes ces informations et
via un potentiel d'action (un signal électrique) le résultat de l'analyse va transiter le long de
l'axone jusqu'aux terminaisons synaptiques.

A cet endroit, lors de l'arrivée du signal, des vésicules synaptiques vont venir fusionner avec
la membrane cellulaire, ce qui va permettre la libération des neurotransmetteurs (médiateurs
chimiques) dans la fente synaptique. Le signal électrique ne pouvant pas passer la synapse
(dans le cas d'une synapse chimique), les neurotransmetteurs permettent donc le passage des
informations, d'un neurone à un autre.
Les neurotransmetteurs excitent (neurotransmetteurs excitateurs) ou inhibent
(neurotransmetteurs inhibiteurs) le neurone suivant et peuvent ainsi générer ou interdire la
propagation d'un nouvel influx nerveux. Les synapses possèdent une sorte de «mémoire» qui
leur permet d'ajuster leur fonctionnement. En fonction de leur «histoire», c'est-à-dire de leur
activation répétée ou non entre deux neurones, les connexions synaptiques vont donc se

60
modifier. Ainsi, la synapse va faciliter ou non le passage des influx nerveux. Cette plasticité
est à l'origine des mécanismes d'apprentissage.
4.4. Neurone artificiel ou formel

4.4.1. Présentation [17] [18]

Le premier neurone formel est apparu en 1943. On le doit à Mac Culloch et Pitts.
Voici un schéma de leur modèle de neurone formel :

Figure 4.3 : Un neurone formel

Le neurone formel est donc une modélisation mathématique qui reprend les principes du
fonctionnement du neurone biologique. La structure d’un neurone formel est en fait copiée
sur la structure des neurones biologiques. Les principales structures biologiques des neurones
ont toutes leur équivalent artificiel, ceci ayant pour but de reproduire leur fonctionnement de
la meilleure façon possible (d’une manière logique, simple et facilement représentable sur
informatique). Un neurone est une minuscule structure qui traite les influx nerveux qui
arrivent (inputs) chacun selon son importance relative, et qui émet un (et un seul) signal de
sortie (output). Les neurones artificiels reproduisent le même procédé, recevant chaque signal
d’entrée (input) tempéré par un poids (weight). Ces poids sont aussi appelés poids
synaptiques, par analogie. Les intrants pondérés, habituellement (mais pas toujours) sommés,
sont ensuite comparés à un seuil d’activation θ (Plusieurs réseaux n’utilisent pas de seuils
d’activation. Cependant, ces neurones ne sont pas différents des neurones présentés ici, mais
plutôt un cas particulier où θ = 0) et passés dans la fonction du neurone (habituellement une
fonction très simple), qui produit l’extrant (output) désiré. Dans les neurones biologiques, les
intrants et extrants sont des influx électriques, représentés artificiellement par des valeurs

61
numériques. Habituellement, les neurones sont reliés ensemble en réseaux, les neurones d’un
niveau (les réseaux de neurones sont habituellement bâtis en niveaux hiérarchiques) passant
leurs extrants aux neurones du niveau suivant (devenant les intrants des neurones suivants).

Neurone biologique Neurone artificiel Représentation


symbolique

Soma Fonction d’activation

Dendrite Signal d’entrée(Input) xi, X (intrant net)

Axone Signal de sortie (Output) Y

Synapse Poids de connexions wi

Tableau 4.1 : Analogie entre les neurones biologiques et artificiels

4.4.2. Interprétation mathématique

D'un point de vue mathématique, le neurone formel peut être représenté de la manière
suivante:

Figure 4.4 : Modélisation mathématique d’un neurone formel

Sur ce schéma, le neurone a trois connexions en entrée, le reliant à trois autres neurones. Il
reçoit de l’information provenant de chacun de ces trois neurones. Les valeurs qu’il reçoit
ainsi en entrée par chacune de ces connexions sont respectivement notées x1, x2 et x3 : ce
sont les « entrées » du neurone.

Toutes les connexions n’ont pas une importance égale pour le neurone, certaines sont plus
importantes que d’autres. Le poids w affecté à chaque connexion mesure cette importance
relative : le poids est « proportionnel » à l’importance de la connexion. En fait, tout se passe
comme si le neurone ne recevait qu’une entrée E et que celle-ci prenait la valeur :
E=w1*x1+w2*x2+w3*x3. (4.01)
Une fois l’entrée connue, le neurone effectue une opération qui dépend de E, cela revient à
dire qu’il applique une fonction f à la valeur E. Cette fonction f est appelée fonction

62
d’activation. Le choix de cette fonction f se révèle être un élément constitutif important des
réseaux de neurones. Ainsi, l'identité est rarement suffisante, et des fonctions non linéaires et
plus évoluées sont nécessaires.
 Entrées (xi)
Les valeurs d'entrée sont des stimulis externes en provenance de l'environnement ou des
sorties d'autres neurones artificiels. Elles peuvent être discrétisées grâce à un ensemble tel que
{0,1} ou bien être des valeurs réelles.
 Poids des connexions, wi
La première chose que fait un neurone artificiel est de calculer la somme pondérée de ses
entrées (i.e. le produit scalaire entre le motif d'entrée et les poids des connexions). Les poids
sont des valeurs réelles qui déterminent la contribution de chaque entrée.
Le but d'un algorithme d'apprentissage pour un réseau de neurones est de déterminer le
meilleur ensemble de poids pour le problème en considération.
 Seuil ()
Le seuil est un nombre réel qui est soustrait de la somme pondérée des valeurs d'entrée.
Parfois, le seuil est appelé valeur de biais, dans ce cas le nombre réel est additionné à la
somme des valeurs d'entrée. Pour des raisons de simplicité, le seuil peut être vu comme une
entrée supplémentaire associée à un poids, où w0 =  et x0 = -1.
 Fonction d'activation, f
On distingue deux phases : la première est habituellement le calcul de la somme pondérée des
entrées (a) selon l'expression suivante :
a = ∑ (wi . ei) (4.02)
A partir de cette valeur, une fonction d’activation calcule la valeur de l'état du neurone. C'est
cette valeur qui sera transmise aux neurones avals. Il existe de nombreuses formes possibles
pour la fonction d’activation, on remarquera qu'à la différence des neurones biologiques dont
l'état est binaire, la plupart des fonctions d’activation sont continués, offrant une infinité de
valeurs possibles comprises dans l'intervalle [0, +1] (ou [-1, +1]).
Exemple : fonction à Seuil, Gaussienne, signe, sigmoide, …

La question qui se pose est donc de savoir, comment choisir la fonction d'activation ? La
réponse c’est qu’il faut prendre la plus rapide en termes de temps de calcul global de
l'apprentissage, quel que soit le nombre de couches intermédiaires et le nombre de neurones
que le réseau de neurones contient. Par exemple, pour l'apprentissage du XOR (avec 2

63
neurones sur la couche intermédiaire), c'est la Gaussienne qui est la plus rapide en temps de
calcul (et la plus stable), avec 30 itérations seulement.

La fonction d’activation par signe est très utile, mais d’autres fonctions peuvent être utilisées.
Par exemple, la fonction par étage (Y = {0,1}) est meilleure pour les sorties par bits et pour
les tables de vérités. La fonction sigmoïde présente davantage de souplesse et de nuance lors
du traitement des erreurs.

 Sortie du neurone, y
Le neurone artificiel calcule sa sortie grâce à l'équation ci-dessous : c'est le résultat
correspondant à l'application de la fonction d'activation à la somme pondérée des entrées,
moins le seuil. Cette valeur peut être discrète ou réelle selon la fonction d'activation utilisée.
y=f ¿ (4.03)
Une fois que la sortie est calculée, elle peut être passée à un autre neurone (ou groupe de
neurones) ou directement à l'environnement extérieur.
4.5. Architecture des réseaux de neurones [20] [21] [22]

Le neurone artificiel étant défini, il suffit d’en associer plusieurs pour former un réseau. Il
existe plusieurs types de réseaux suivant la façon dont sont reliés les neurones qu’on appelle
par la suite architecture des réseaux de neurone.
On peut classer les RNA en deux grandes catégories :
4.5.1. Les réseaux à propagation de l’information vers l’avant

Appelés aussi « réseaux de type Perceptron », ce sont des réseaux dans lesquels l'information
se propage de couche en couche sans retour en arrière possible.
4.5.1.1. Les Perceptrons

 Le perceptron monocouche
Historiquement, c'est le premier RNA, aussi dit le Perceptron de Rosenblatt. C'est un réseau
simple, puisque il ne se compose que d'une couche d'entrée et d'une couche de sortie. Il est
calqué, à la base, sur le système visuel et de ce fait a été conçu dans un but de reconnaissance
des formes. Cependant, il peut aussi être utilisé pour faire de la classification et pour résoudre
des opérations logiques simples (telle "ET" ou "OU"). Sa principale limite est qu'il ne peut
résoudre que des problèmes linéairement séparables. Il suit généralement un apprentissage
supervisé selon la règle de correction de l'erreur (ou selon la règle de Hebb).

64
/
Figure 4.5 : Perceptron monocouche

 Le perceptron multicouche (PMC)


C'est une extension du précédent, avec une ou plusieurs couches cachées entre l'entrée et la
sortie. Chaque neurone dans une couche est connecté à tous les neurones de la couche
précédente et de la couche suivante (excepté pour les couches d'entrée et de sortie), par contre
il n'y a pas de connexions entre les cellules d'une même couche. Les fonctions d'activation
utilisées dans ce type de réseaux sont principalement les fonctions à seuil ou sigmoïdes. Il
peut résoudre des problèmes non-linéairement séparables et des problèmes logiques plus
compliqués, notamment le fameux problème du XOR.

Figure 4.6 : Perceptron multicouche

Dans le cas particulier où l’entrée doit être la même que la sortie, ces réseaux étant appelés
auto-associatifs ; on n’a pas besoin des valeurs de sortie que devraient produire le PMC,
celles-ci étant les mêmes que l’entrée. Ces PMC auto-associatifs ont ceci d’intéressants que
la première partie du réseau constitue un codage des données, alors que la seconde partie est
le décodage, pour retrouver l’information entrée.

65
codage décodage

Entrées Sorties

Figure 4.7 : Perceptron multicouche auto-associatifs

4.5.1.2. Les réseaux à fonction radiale


Codage Décodage
Ce sont les réseaux que l'on nomme aussi RBF ("Radial Basic Functions"). L'architecture est
la même que pour les PMC cependant, les fonctions de base utilisées ici sont des fonctions
Gaussiennes. Les RBF seront donc employés dans les mêmes types de problèmes que les
PMC à savoir, en classification et en approximation de fonctions, particulièrement.
L'apprentissage le plus utilisé pour les RBF est le mode hybride et les règles sont soit, la règle
de correction de l'erreur soit, la règle d'apprentissage par compétition.
4.5.2. Les réseaux à rétro propagation de l’information

Appelés aussi "réseaux récurrents", ce sont des réseaux dans lesquels il y à retour en arrière de
l'information.
4.5.2.1. Les cartes auto-organisatrices de Kohonen

Ce sont des réseaux à apprentissage non-supervisé qui établissent une carte discrète, ordonnée
topologiquement, en fonction de patrons d'entrée. Le réseau forme ainsi une sorte de treillis
dont chaque nœud est un neurone associé à un vecteur de poids.

66
Couche d’intrants
Couche de Kohonen

Figure 4.8  : Cartes auto-organisatrice de Kohonen

4.5.2.2. Les réseaux de Hopfield

Les réseaux de Hopfield sont des réseaux récurrents et entièrement connectés. Dans ce type de
réseau, chaque neurone est connecté à chaque autre neurone et il n'y a aucune différenciation
entre les neurones d'entrée et de sortie L'application principale des réseaux de Hopfield est
l'entrepôt de connaissances mais aussi la résolution de problèmes d'optimisation. Le mode
d'apprentissage utilisé ici est le mode non-supervisé.

x1
y1

Entrées Sorties
x2
y2

x3
y3

x4
y4

Figure 4.9 : Réseau de Hopfield

4.5.2.3. Les ART (Adaptative Resonnance Theorie)

Les réseaux ART sont des réseaux à apprentissage par compétition. Le problème majeur qui
se pose dans ce type de réseaux est le dilemme « stabilité/plasticité ». Il est à noter qu'il existe
deux principaux types de réseaux ART : les ART-1 pour des entrées binaires et les ART-2
pour des entrées continues. Le mode d'apprentissage des ART peut être supervisé ou non.
4.6. Apprentissage [17] [18]

4.6.1. Présentation

67
Lorsque nous apprenons, des circuits nerveux sont modifiés dans notre cerveau. Ces circuits
sont constitués d'un certain nombre de neurones. Ces neurones sont un peu comme une forêt
où l'on fait circuler de l'information. A force de prendre le même chemin dans une forêt, il se
crée un sentier. Ce sentier est d'autant plus facile à trouver qu'il s'est profondément creusé à
force d'y passer. C'est la même chose pour nos souvenirs : plus on les repasse dans notre tête,
plus ils se gravent profondément dans nos connexions nerveuses.
Une caractéristique des réseaux de neurones est leur capacité à apprendre (par exemple à
reconnaître une lettre, un son...). L’apprentissage peut être considéré comme le problème de la
mise à jour des poids des connexions au sein du réseau, afin de réussir la tâche qui lui est
demandée. L'apprentissage peut se faire de différentes manières et selon différentes règles.
4.6.2. Types d'apprentissage [17] [18] [20]

Il y a deux algorithmes principaux : l’apprentissage supervisé et l’apprentissage non

supervisé.

4.6.2.1. Le mode supervisé (supervised learning)

Pour les réseaux à apprentissage supervisés (Perceptron, Adaline, etc. ), les résultats corrects
(c’est-à-dire les valeurs que l’on désire que le réseau obtienne en sortie) sont fournis au
réseau, si bien que celui-ci peut ajuster ses poids de connexions pour les obtenir. Après
l’apprentissage, le réseau est testé en lui donnant seulement les valeurs d’entrée mais pas les
sorties désirées, et en regardant si le résultat obtenu est proche du résultat désiré. De ce fait,
l’apprentissage supervisé s’effectue sous le contrôle d’un expert.
Par exemple on lui présente en entrée une lettre " a " manuscrite et en sortie un code
correspondant à la lettre " a ". Le réseau doit alors se reconfigurer, c'est-à-dire calculer ses
poids afin que la sortie qu'il donne corresponde bien à la sortie désirée.

Figure 4.10 : Apprentissage supervisé

4.6.2.2. Le mode non supervisé (unsupervised learning)

68
L’apprentissage non supervisé (Hopfield, Kohonen, etc.) est autodidacte, c'est-à-dire que ce
type d’apprentissage ne nécessite pas le contrôle d’un expert. Lors d’un apprentissage non
supervisé, on ne fournit pas au réseau les sorties que l’on désire obtenir. On le laisse évoluer
librement jusqu'à ce qu'il se stabilise. Ce comportement est connu sous le nom « auto
organisation ».

Figure 4.11 : Apprentissage non supervisé

Le but ici est de chercher l’ensemble des poids tel que les entrées puissent être regroupées
correctement selon des critères inconnus à priori avec une bonne généralisation par la suite.
On peut citer l’exemple des classifications des images satellites où l’on utilise des réseaux de
neurones bouclés à apprentissage non supervisé afin de faciliter l’analyse de l’importante
quantité d’images que les satellites envoient.

Il existe aussi des réseaux à apprentissage dit semi-supervisés (reinforcement learning) qui ne

tiennent compte que d'une évaluation partielle ou qualitative des sorties.

4.6.3. Règles d'apprentissage [17] [18]

4.6.3.1. Règle de Hebb

Cette règle est basée sur des données biologiques, elle modélise le fait que si des neurones, de
part et d'autre d'une synapse, sont activés de façon synchrone et répétée, la force de la
connexion synaptique va croître. Il est à noter ici que l'apprentissage est localisé, c'est-à-dire
que la modification d'un poids synaptique wij ne dépend que de l'activation d'un neurone i et
d'un autre neurone j.

4.6.3.2. Règle de correction d'erreurs

Cette règle s'inscrit dans l'apprentissage supervisé, c'est-à-dire dans le cas où l'on fournit au
réseau une entrée et la sortie correspondante. Si on considère y comme étant la sortie calculée
par le réseau, et d la sortie désirée, le principe de cette règle est d'utiliser l'erreur (d-y), afin de
modifier les connexions et de diminuer ainsi l'erreur globale du système. Le réseau va donc

69
s'adapter jusqu'à ce que y soit égal à d. Ce principe est notamment utilisé dans le modèle du
perceptron simple.
4.6.3.3. Apprentissage de Boltzmann

Les réseaux de Boltzmann sont des réseaux symétriques récurrents. Ils possèdent deux sous-
groupes de cellules, le premier étant relié à l'environnement (cellules dites visibles) et le
second ne l'étant pas (cellules dites cachées). Cette règle d'apprentissage est de type
stochastique (qui relève partiellement du hasard) et elle consiste à ajuster les poids des
connexions, de telle sorte que l'état des cellules visibles satisfasse une distribution probabiliste
souhaitée.

4.6.3.4. Règle d'apprentissage par compétitions

Le principe de cet apprentissage est de regrouper les données en catégories. Les patrons
similaires vont donc être rangés dans une même classe, en se basant sur les corrélations des
données, et seront représentés par un seul neurone, on parle de « winner-take-all ».
Dans un réseau à compétition simple, chaque neurone de sortie est connecté aux neurones de
la couche d'entrée, aux autres cellules de la couche de sortie (connexions inhibitrices) et à
elle-même (connexion excitatrice). La sortie va donc dépendre de la compétition entre les
connexions inhibitrices et excitatrices.
4.7. Conclusion

Dans ce chapitre, on voit que le modèle de réseau de neurones le plus intéressant est le
modèle du perceptron à rétropropagation du gradient et que l’apprentissage supervisé est le
plus adapté. De plus, l’utilisation des réseaux de neurones en cryptographie est très faible et
même très peu connue alors que l’étude qui a été faite jusqu’à présent des réseaux de
neurones permet de dire que les réseaux à perceptrons sont capables d’apprendre et de
synthétiser une fonction de transfert assez aisément. Ils permettent de donner des statistiques,
aussi bien que des méthodes de statistiques plus traditionnelles, en fonction des valeurs
d’entrées, ce qui les rend fort utiles en cryptographie.

Tout montre qu’il conviendrait de lier les réseaux de neurones à la cryptographie, mais est-ce
que la cryptographie s’y prête ? Et quels outils cryptographiques employer ? Les réponses se
trouvent dans les chapitres suivants.

70
71
5. CHAPITRE :

La neuro-cryptographie
5.1. Introduction

On avait vu précédemment qu’il existe de nombreux algorithmes de cryptographie de nos


jours. Certains d'entre eux sont plus sûr, d'autres moins. Tous ces algorithmes peuvent être
divisés en cryptographie symétrique ou asymétrique. Dans la cryptographie symétrique,
l'expéditeur et le destinataire utilisent une clé de partage pour coder et décoder les données.
Dans les algorithmes asymétriques, les utilisateurs ont leurs propres clés privées et publiques.
Chacun de ces algorithmes ont leurs avantages et inconvénients en termes de vitesse et de
niveau de sécurité. Les algorithmes symétriques sont beaucoup plus rapides que ceux des
asymétriques. Mais ils ont besoin d'une clé partagée. L’un de problème majeur posé par la
cryptographie actuelle est le partage de clé via un canal public et de la protéger contre toutes
attaques externes .Il y a beaucoup de façons de le faire, qui sont plus ou moins efficaces, mais
nous tenons à offrir une nouvelle technique absolument sécurisé: « la cryptographie
neuronal ».

5.2. Fonctionnement [18] [20] [23]

L'algorithme à échange de clés neuronal est une application de synchronisation. Les deux
partenaires A et B utilisent une machine TPM (Tree Parity Machine) avec la même structure.
Les paramètres K(nombre d'unités de couches cachées), L(la gamme des valeurs de poids
synaptiques fait par les deux machines A et B) et N (les unités de couches d'entrée pour
chaque unité de couche cachée) sont publiques. Chaque machine TPM est initialisée avec des
poids choisis au hasard et qui doivent être gardé secrètement. Au cours du processus de
synchronisation, seuls les vecteurs d'entrée et les vecteurs de sortie sont transmis sur le canal
public. Par conséquent, chaque utilisateur sait juste la représentation interne de sa propre
TPM, ce qui ouvre une nouvelle vision dans le monde de la cryptographie contemporaine.
Garder secrètement l'information est essentielle pour la sécurité du protocole d’échange de
clés. Après que la synchronisation est complète, A et B utilisent les poids modifiés comme clé
secrète commune qui est ainsi utilisée pour le chiffrement AES.

Le principal problème de l'attaquant E est qu’il ignore totalement la représentation interne de


A et le TPM de B. Alors que le mouvement des poids dépend uniquement de σ i, il est ainsi
difficile pour une attaque de deviner correctement l'état des unités cachées.

73
A B
A

E
Figure 5.1 : Attaque de la clé secrète par E

5.3. La cryptographie neuronale [21] [22]

Le protocole d’échange de clés Diffie-Hellman a été introduit par Whitfield Diffie et Martin
Hellman en 1976, pour résoudre le problème posé par l'échange de clés sur un canal non
sécurisé en chiffrement symétrique. Pourtant, l'échange de clés Diffie-Hellman est vulnérable
à une attaque « man-in-the-middle ». Dans cette attaque, un adversaire E intercepte la clé
publique d'Alice et envoie sa propre clé publique à Bob. Quand Bob transmet sa clé publique,
Eve la remplace avec sa propre clé et l'envoie à Alice. Eve et Alice sont ainsi d'accord sur une
clé partagée et Eve et Bob conviennent d'une autre clé partagée. Après cette échange, Eve
décrypte simplement tous les messages envoyés par Alice ou Bob, puis lit et, éventuellement,
les modifie avant de re-chiffrer avec la clé appropriée et de les transmettre à l'autre partie.

Pour remédier au problème posé ci-dessus, on construira deux réseaux de neurones, un pour
chaque utilisateur. Ensuite, ils doivent synchroniser leurs réseaux, et les poids seront les clés
secrètes de la TPM. Le type de réseau choisi ici est le perceptron multicouche à circulation
vers l’avant et l’apprentissage est en mode supervisé.

74
Voici un réseau de neurones simples développé par Rosenblatt en 1968

Figure 5.2 : modèle du perceptron à rétropropagation du gradient

Ce modèle est un réseau multicouche à circulation vers l’avant (Voir la figure 5.2).

L’apprentissage supervisé dans ce cas consiste à mesurer l’erreur entre les entrées et les
sorties puis à effectuer la propagation de l’erreur vers les neurones des couches cachées et
ceux des entrées.
Il se compose d'un vecteur d'entrée X, une couche cachée Sigma , un poids coefficients W
entre le vecteur d'entrée et la couche cachée, et une procédure d'activation qui compte la
valeur du résultat τ. Appelons un tel réseau neuronal une machine de neurones. Il peut être
décrit par trois paramètres : K : le nombre de neurones cachés, N : le nombre de neurones
d'entrée connectés à chaque neurone caché, et L : la valeur maximale pour un poids {-L,..+
L}. Deux partenaires ont les mêmes machines de neurones. Pour compter la valeur de sortie,
nous utilisons une méthode simple :
K
¿ ∏ SIGN ¿ ¿ (5.01)
i=1

Une question se pose, comment pouvons-nous mettre à jour les poids ? Nous mettons à jour
les poids lorsque les valeurs de sortie des machines de neurones sont égales. Il y a trois règles
différentes :

+¿= g(w i, j + x i, j (❑ A ❑B ) )¿
wi, j Règle d’apprentissage de Hebb

+¿= g(w i, j −x i, j (❑i ) ( ❑ A ❑ B ) )¿


wi, j Règle d’apprentissage deAnti- Hebb

+¿= g(w i, j + x i, j (❑ i ) (❑ A ❑B ) )¿
wi, j Règle d’apprentissage Random-walk

Tableau 5.1 : Règles d’apprentissages

75
Ici,  est une fonction spéciale. (a, b) = 0 si a <> b; d'autre  = 1. La fonction g (...) maintient
le poids dans la gamme -L … + L. x est le vecteur d'entrée et w est le vecteur de pondération.
Après les machines sont synchronisés, leurs poids sont égaux: nous pouvons les utiliser pour
construire une clé partagée qui sera impossible à pirater du faite de l’existence de la
synchronisation chaotiques.

5.4. Algorithme de synchronisation [22] [23]

Nous allons suivre les étapes suivantes pour la génération de clés de neurones qui est basé sur
les réseaux de neurones :

1. Tout d'abord déterminer les paramètres de réseau de neurones à savoir : k, N et L


2. Initialisation au hasard des poids de réseau neuronale A et B.
3. Répéte 4 à 7 jusqu'à ce que la synchronisation se produise.
4. Calculés les entrées des couches cachées.
5. Le bit de sortie est généré et échangées entre les deux machines A et B.
6. Si les vecteurs de sortie des deux machines sont égaux c’est-à-dire τA = τB alors les
poids correspondants sont modifiés en utilisant la règle d'apprentissage de Hebb et
Anti-Hebbian.
7. Une fois la synchronisation complète, les poids synaptiques sont les mêmes pour les
deux réseaux ainsi ces poids sont utilisés comme clé secrète.

Cette clé est utilisée par la suite pour chiffrer une image pour être transmis sur un canal non
sécurisé utilisant l’algorithme de chiffrement AES avec une clé de taille 128 bits, 192 bits et
256 bits.

76
Figure 5.3 : Algorithme neuronal d’échange de clé

77
5.5. Conclusion

Ce chapitre nous a permis d’envisager l’association possible des deux vastes domaines que
sont les réseaux de neurones d'Intelligence Artificielle et la cryptographie contemporaine en
utilisant le TPM.

L'objet principal de cette unité TPM (Tree Parity Machine) est qu’il contient deux vecteurs: H
et W. "H" est utilisé pour les opérations internes au cours de la valeur du résultat de
comptage, "W" contient les poids. Il y a aussi trois valeurs entières: K, L, N. Après le
chiffrement, les résultats montrent que le serveur et le client de réseau obtiennent la même clé
après la synchronisation. Une fois la synchronisation établie, le client va utiliser la clé pour un
chiffrement AES.

78
6. CHAPITRE :

Scenario et discussion
6.1. Introduction

Dans ce dernier chapitre, nous allons définir le protocole de tests que nous avons utilisé pour
la validation de notre méthode. Nous avons basé nos tests sur cinq images différentes.
Les résultats sont obtenus par simulation sous Matlab et Java. On a effectué d’abord le
tatouage de l’image pour éviter qu'une tierce personne mal intentionnée n'en modifie le
contenu, on y ajoute alors une marque, qui code le nom du propriétaire. Contrairement à la
plupart des algorithmes de tatouage dans le domaine des ondelettes, celui-ci est aveugle et les
résultats montrent qu’il est robuste contre les compressions JPEG et GIF, ce qui convient très
bien à notre projet. Par conséquent les échanges sur un support limité nous ont obligé à
trouver des moyens de représenter les images de manière la plus concise possible. Par ailleurs,
cela facilite aussi le cryptage de l’image par les réseaux de neurones.

6.2. Tatouage et détatouage de l’image

La figure suivante illustre la chaîne d’insertion dans le domaine de la DWT

Figure 6.1 : Tatouage de l’image I1

80
Les figures suivantes montrent respectivement l’image originale et sa transformation en
ondelette de niveau 2, la marque insérée et sa transformation en ondelette de niveau 2, l’image
tatouée et la différence entre l’image originale et celle tatouée. Le PSNR moyen mesuré entre
les deux images (tatouée et originale) est de 25 dB :

Figure 6.2:Image originale et DWT en niveau 2

Figure 6.3:Marque et DWT en niveau 2

Figure 6.4 : Image tatouée et différence

La robustesse de la technique a été évaluée en attaquant l’image tatouée par la compression


JPEG (facteur de qualité en %), la réduction de couleurs GIF ainsi que la rotation (faible

81
rotation). Le tableau suivant montre les marques extraites et les taux d’erreurs binaires
moyens (tebm) obtenus :
Attaque et Taux d’erreur Marque originale Marque reconstruite
binaire

– Attaque : JPEG (10%)

– Tebm= 0,0425

– Attaque : Gif

– Tebm=0,0401

– Attaque : Rotation

– Tebm=0,0523

Tableau 6.1 : attaques et marques reconstruites

Nous avons proposé une nouvelle méthode de tatouage « robuste et aveugle »pour mieux
sécuriser les données en ligne. Les extraits d’images du tableau 3 montrent que notre
technique résiste à plusieurs types d’attaques : compression JPEG, GIF et rotation. Cela nous

82
est utile parce qu’après nous devons appliquer une technique de compression sur chaque
image pour faciliter le transfert de cette dernière en ligne.
6.3. Compression et décompression de l’image

Dans cette deuxième simulation, on a à traiter l’image précédente, après on applique à cette
image la transformée en ondelettes par l’ondelette bior3.5. Ensuite, on fait la quantification
des coefficients avec un pas de delta=80. Le quantificateur utilisé est un quantificateur
uniforme. L’entropie des coefficients quantifiés obtenue est de 3.0426.

1.2. Image 1.1. Décomposition par l’ondelette


originale bior3.5

1.4. Coefficients quantifiés avec 1.3. Image

=10 reconstruite

Figure 6.5 : Décomposition par l’ondelette bior 3.5 et quantification avec un pas
delta=80

L’image reconstruite comme l’illustre la Figure 6.5 représente une faible dégradation par
rapport à l’image originale, avec un PSNR de 37.9068.
La dégradation de l’image reconstruite après compression varie en fonction du pas de
quantification. Pour mesurer cette dégradation, nous utilisons le PSNR. La Figure 6.6 montre
la variation du PSNR en fonction du pas de quantification.

83
Figure 6.6: Variation de l’entropie et du PSNR en fonction du pas de quantification

On constate que le PSNR diminue quand le pas de quantification augmente. Quantifier une
image entraine une dégradation de la qualité de l’image, ceci explique la diminution du PSNR
quand on augmente le pas de quantification.
L’algorithme de compression décrit précédemment est capable de comprimer toute image et
de la restituer avec une qualité dépendant du pas de quantification utilisé.

84
6.4. Cryptage et décryptage

Finalement, pour pouvoir envoyer l’image en ligne, nous allons procéder maintenant au
cryptage. Pour obtenir une clé partagée via un canal public et la protéger contre des
adversaires, on va offrir une nouvelle technique absolument sécurisée « la cryptographie
neuronal ou neuro-crypto». Dorénavant, la clé est générée automatiquement et instantanément
de part et d’autres du réseau de neurones en synchronisant tout simplement les deux réseaux.

6.4.1. Implémentation

Figure 6.7 : Un serveur neuronal cryptographie

Dans ce paragraphe, nous programmons des machines neuronales développées en java.


L'objet principal est de concevoir un TPM. Il contient deux vecteurs : H et W. "H" est utilisé
pour les opérations internes au cours de la valeur du résultat de comptage "W" contient des
poids. Il y a aussi quatre valeurs entières : K, L, N et TPOutput. Après la synchronisation, le
serveur et le client obtiennent la même clé. Puis, on initialise au hasard le vecteur d’entrée du

85
client et celui du serveur. Après avoir obtenu la clé, le client va utiliser l’algorithme AES pour
chiffrer l’image.

Figure 6.7 : Un client neuronal cryptographie

86
6.4.2. Résultats : synchronisation en temps réel

L'ensemble des données obtenues pour le temps de synchronisation en nombre d'unités


d'entrée (n) variable est représenté sur la figure 7. Le nombre d'itérations nécessaires pour la
synchronisation en faisant varier le nombre d'unités d'entrée (n).

Figure 6.8 : Résultat de la synchronisation cryptographie neuronale

87
6.5. Bilan et recommandation

La transmission par courrier électronique via le réseau téléphonique commuté d’images


échographiques ou radiographiques a été réalisée sans difficulté, rapidement : 3 minutes 46s
pour des fichiers de 4 Mo après compression à faible coût et avec une bonne qualité. Après
l’arrivée du HSPA 3G+ ou du HSPA+ dual cel en 2015, qui atteint un débit max jusqu’à 42
Mbits/s en voie descendante et 11 Mbits/s en voie montante, les échanges d’images en ligne
dans notre pays ne devra plus poser trop de problèmes.
D'autre part, les algorithmes de tatouage doivent être imperceptibles à l’œil nu, robustes aux
attaques, aveugles c'est-à-dire que la détection ou l’extraction de la marque ne nécessite pas
l’image originale. La décomposition en ondelettes est très utilisée en compression, en
débruitage et en tatouage d’images. Elle a montré son efficacité en compression avec la
naissance de la norme JPEG2000. Concernant l’utilisation des ondelettes en tatouage,
comparée aux autres techniques comme la transformée de Fourier FFT (Fast Fourier
Transform), la transformée en cosinus discrète DCT (Discret cosinus Transform), l’étalement
de spectre CDMA (Code division Multiple Access), le nombre de recherche dans le domaine
de la transformée en ondelette DWT (Discrète Wavelet Transform) ne cesse d’augmenter.
Concernant la technique de compression choisie, pour l’ondelette bior3.5, le nombre de
moments nuls est égal à 3 et la taille du support égal à 7 pour la reconstruction et 11 pour la
décomposition. Ceci explique le nombre de coefficients nuls générés beaucoup plus
nombreux, par l’utilisation de l’ondelette biorthogonal bior3.5, que par
l’utilisation d’autres types d’ondelette. Donc pour cette méthode de compression,
l’ondelette biorthogonale est meilleure.

88
CONCLUSION GENERALE
En guise de conclusion, Nous avons présenté la neuro-cryptographie ainsi que le domaine
d’application envisageable pour effectuer un nouveau chiffrement presque incassable. D’une
part, le watermarking ou tatouage d'image, propose une solution pour éviter qu'une tierce
personne mal intentionnée n'en modifie le contenu, on a ajouté alors une marque, qui code le
nom du propriétaire de l’image. L’insertion de la marque a été faite dans le
domaine d’ondelette du fait que celle-ci résiste à la compression JPEG et Gif. En utilisant un
quantificateur uniforme avec un pas de 80 et en utilisant l’ondelette biorthogonal bior3.5, on
peut avoir une entropie allant jusqu’à 1.4021 et un PSNR de 27.0153. L’algorithme de
compression décrit dans ce projet est capable de comprimer toute image et de la restituer avec
une qualité dépendant du pas de quantification utilisé et de l’ondelette utilisée pour la
décomposition et la restitution. D’autre part, ce sujet a pu ouvrir un nouvel horizon dans le
domaine de la cryptographie car garder secrètement l'information est essentielle pour la
sécurité du protocole d'échange de clés. Avec l’arrivée du TPM ou Tree Parity Machine
réalisé avec le réseau de neurones artificiels, dorénavant ce risque est contourné. 

Il existe de nombreux algorithmes de cryptographie de nos jours. Certains d'entre eux sont
plus sûrs, d'autres moins. Tous ces algorithmes peuvent être divisés en cryptographie
symétrique ou asymétrique. Dans la cryptographie symétrique, l'expéditeur et le destinataire
utilisent une clé partagée pour coder et décoder l’image brute. Dans les algorithmes
asymétriques, les utilisateurs ont leurs propres clés privées et publiques. Il y a quelques
avantages et inconvénients des deux méthodes en matière de vitesse et de niveau de sécurité.
Les algorithmes symétriques sont beaucoup plus rapides que ceux des asymétriques. Mais ils
ont besoin d'une clé partagée. Comment pouvons-nous obtenir une clé partagée via un canal
public et la protéger contre des adversaires ? Il y a beaucoup de méthodes qui sont plus ou
moins efficaces, mais la nôtre est plus sûre et absolument sécurisée : « la cryptographie
neuronale ou neuro-cryptographie ». L'algorithme d'échange de clés utilisé par le TPM est une
application de synchronisation entre deux utilisateurs A et B. Au cours du processus de
synchronisation, seuls les vecteurs d'entrée et les vecteurs de sortie sont transmis sur le canal
public. Par conséquent, toute tentative de piratage reste un travail de casse-tête voire
impossible. Une fois la synchronisation réussie, A et B utilisent les vecteurs de poids modifiés
comme clé secrète.

89
BIBLIOGRAPHIE
[1] RSA Laboratories, Frequently Asked Questions about Today’s Cryptography – Version
4.1, 2000.

[2] Schneier Bruce, Cryptographie appliquée – Algorithmes, protocoles et codes sources en C


– 2ème édition, International Thomson Publishing France, 1997.

[3] AES. Announcing the Advanced Encryption Standard. Federal Information Processing
Standards Publication, 2001.

[4] Douglas R. Stinson, Cryptography, Theory and Practice.

[5] Dr. Brian Gladman, A Speci_cation for the AES Algorithm. http ://www.gladman.uk.net/.

[6] Réné Alt, La transformation en ondelette, Universit ´e Pierre et Marie Curie.

[7] C. S. Lu, "Multimedia Security: Steganography and Digital Watermarking Techniques for
Protection of Intellectual-Property", IDEA GROUP PUBLISHING, 2005.

[8] A. Meerward, "Digital Image Watermarking in the wavelet transform domain", Diploma
thesis, Salwburg University, 2001.

[9] C.C. Chang, M.S. Hwang, et T-S Chen. A new encryption algorithm for image
cryptosystems. The Journal of Systems and Software, p. 83–91, 2001.

[10] Douglas R. Stinson. Cryptography: Theory and Practice, (Discrete Mathematics and Its
Applications) . Chapman & Hall/CRC Press, New York, Novembre 2005.

[11] J.M Shapiro "Embedded Image Coding Using Zerotrees of Wavelet Coefficients", IEEE
Trans. on Signal Processing, Vol 41, No.12, pp.3445-3462, Dec. 1993.

[12] Amir Said "Example of Application for Image Compression", 1999.

[13] Matthieu MOINARD "Quantification et codage après transformée en ondelettes


orientés", 4 septembre 2007.

[14] R. Norcen, M. Podesser, A. Pommer, H.P. Schmidt, et A. Uhl. Confidential storage and
transmission of medical image data. Computers in Biology and Medicine, p. 277–292, 2003.

II
[15] W. Puech, J.J. Charre, et M. Dumas. Transfert sécurisé d’images par chiffrement de
Vigenère. Dans NimesTic 2001, La relation Homme - Système : Complexe, Nîmes, France, p.
167–171, 2001.

[16] Nicolas Thome "Analyse Multi Résolution et Ondelette",2013.

[17] A. Forouzan., “Cryptography and Network Security ", First Edition. McGraw-Hill,
(2007), USA.

[18] Atul Kahate (2009), Cryptography and Network Security, second edition, McGraw-Hill.

[19] Aseem jagadev, “Advanced Encryption Standard (AES) Implementation”, M.Tech


Thesis National Institute of Technology, Rourkela. May, 2009.

[20] Andreas Ruttor, “Neural Synchronization and Cryptography “, PhD thesis, Bayerische
Julius MaximilianUniversity Wurzburg, 2006.

[21] www.codeproject.com/Articles/39067/Neural-Cryptography.

[22] github.com/sagunms/NeuroCrypto.

[23] Neural_cryptography , en.wikipedia.org/wiki/.

[24] Advanced_Encryption_Standard, en.wikipedia.org/wiki/.

III
ANNEXES
Programmes Neuro-crypto Serveur :
package utilitaire;

/**

* encrypt and decrypt using three algorithms AES, Serpent, Twofish

* @author H.I RAJAOSOLOMANANTENA

*/

import gnu.crypto.cipher.BaseCipher;

import gnu.crypto.cipher.Rijndael;

import gnu.crypto.cipher.Serpent;

import gnu.crypto.cipher.Twofish;

import java.io.UnsupportedEncodingException;

import java.lang.reflect.Array;

import java.security.InvalidKeyException;

public class Crypto {

public static String encrypt(String type,String value, String key) throws


InvalidKeyException, UnsupportedEncodingException {

BaseCipher crypto=null;

if(type.equals("Twofish"))

crypto=new Twofish();

else if(type.equals("Serpent"))

crypto=new Serpent();

else if(type.equals("AES"))

crypto=new Rijndael();

IV
byte[] plainText;

byte[] encryptedText;

// create a key

byte[] keyBytes = key.getBytes();

Object keyObject = crypto.makeKey(keyBytes, 16);

//make the length of the text a multiple of the block size

if ((value.length() % 16) != 0) {

while ((value.length() % 16) != 0) {

value += " ";

// initialize byte arrays for plain/encrypted text

plainText = value.getBytes("UTF8");

encryptedText = new byte[value.length()];

// encrypt text in 8-byte chunks

for (int i = 0; i < Array.getLength(plainText); i += 16) {

crypto.encrypt(plainText, i, encryptedText, i, keyObject, 16);

String encryptedString = Base64Coder.encodeLines(encryptedText);

return encryptedString;

public static String decrypt(String type,String value, String key) throws


InvalidKeyException, UnsupportedEncodingException {

V
BaseCipher crypto=null;

if(type.equals("Twofish"))

crypto=new Twofish();

else if(type.equals("Serpent"))

crypto=new Serpent();

else if(type.equals("AES"))

crypto=new Rijndael();

byte[] encryptedText;

byte[] decryptedText;

//create the key

byte[] keyBytes = key.getBytes();

Object keyObject = crypto.makeKey(keyBytes, 16);

//make the length of the string a multiple of the block size

if ((value.length() % 16) != 0) {

while ((value.length() % 16) != 0) {

value += " ";

//initialize byte arrays that will hold encrypted/decrypted text

encryptedText = Base64Coder.decodeLines(value);

decryptedText = new byte[value.length()];

//Iterate over the byte arrays by 16-byte blocks and decrypt.

for (int i = 0; i < Array.getLength(encryptedText); i += 16) {

VI
crypto.decrypt(encryptedText, i, decryptedText, i, keyObject, 16);

String decryptedString = new String(decryptedText, "UTF8");

return decryptedString;

Programmes Neuro-crypto Serveur :


package ncrypt.crypto;

/**

* encrypt and decrypt using three algorithms AES, Serpent, Twofish

* @H.I RAJAOSOLOMANANTENA

*/

import gnu.crypto.cipher.BaseCipher;

import gnu.crypto.cipher.Rijndael;

import gnu.crypto.cipher.Serpent;

import gnu.crypto.cipher.Twofish;

import java.io.UnsupportedEncodingException;

import java.lang.reflect.Array;

import java.security.InvalidKeyException;

public class Crypto {

VII
public static String encrypt(String type,String value, String key) throws
InvalidKeyException, UnsupportedEncodingException {

BaseCipher crypto=null;

if(type.equals("Twofish"))

crypto=new Twofish();

else if(type.equals("Serpent"))

crypto=new Serpent();

else if(type.equals("AES"))

crypto=new Rijndael();

byte[] plainText;

byte[] encryptedText;

// create a key

byte[] keyBytes = key.getBytes();

Object keyObject = crypto.makeKey(keyBytes, 16);

//make the length of the text a multiple of the block size

if ((value.length() % 16) != 0) {

while ((value.length() % 16) != 0) {

value += " ";

// initialize byte arrays for plain/encrypted text

VIII
plainText = value.getBytes("UTF8");

encryptedText = new byte[value.length()];

// encrypt text in 8-byte chunks

for (int i = 0; i < Array.getLength(plainText); i += 16) {

crypto.encrypt(plainText, i, encryptedText, i, keyObject, 16);

String encryptedString = Base64Coder.encodeLines(encryptedText);

return encryptedString;

public static String decrypt(String type,String value, String key) throws


InvalidKeyException, UnsupportedEncodingException {

BaseCipher crypto=null;

if(type.equals("Twofish"))

crypto=new Twofish();

else if(type.equals("Serpent"))

crypto=new Serpent();

else if(type.equals("AES"))

crypto=new Rijndael();

byte[] encryptedText;

byte[] decryptedText;

//create the key

IX
byte[] keyBytes = key.getBytes();

Object keyObject = crypto.makeKey(keyBytes, 16);

//make the length of the string a multiple of the block size

if ((value.length() % 16) != 0) {

while ((value.length() % 16) != 0) {

value += " ";

//initialize byte arrays that will hold encrypted/decrypted text

encryptedText = Base64Coder.decodeLines(value);

decryptedText = new byte[value.length()];

//Iterate over the byte arrays by 16-byte blocks and decrypt.

for (int i = 0; i < Array.getLength(encryptedText); i += 16) {

crypto.decrypt(encryptedText, i, decryptedText, i, keyObject, 16);

String decryptedString = new String(decryptedText, "UTF8");

return decryptedString;

TABLE DES MATIÈRES

X
REMERCIEMENTS...................................................................................................................I
SOMMAIRE...............................................................................................................................2
AVANT-PROPOS......................................................................................................................3
LISTE DES ABREVIATIONS...................................................................................................5
LISTE DES FIGURES...............................................................................................................7
LISTE DES TABLEAUX...........................................................................................................8
INTRODUCTION......................................................................................................................9
CHAPITRE 1: CONTEXTE ET APPROCHE

1.1. Le sujet d’étude..............................................................................................................12

1.1.1. Objet de l’étude.......................................................................................................12

1.1.2. Objectifs du sujet d’étude........................................................................................12

1.2. Aspect du fonctionnement..............................................................................................13

CHAPITRE 2: LES ONDELETTES

2.1. Introduction....................................................................................................................15

2.2. Généralité sur le signal...................................................................................................16

2.2.1. Définition.................................................................................................................16

2.2.2. Différents forme de signal.......................................................................................16

2.2.3. Traitement de signal................................................................................................17

2.2.4. Les informations au niveau d’un signal...................................................................17

2.3. Historiques des ondelettes..............................................................................................18

2.4. Définition ......................................................................................................................18

2.5. De la transformée de Fourier aux ondelettes..................................................................19

2.5.1. Les limites de Fourier..............................................................................................19

2.5.1.1. La transformée de Fourier (TF) .......................................................................19

2.5.1.2. La transformée de Fourier à fenêtres glissante TFG (Short Term Fourier


Transform).....................................................................................................................21

2.5.2. Définition mathématiques des ondelettes ...............................................................22

2.5.2.1. Définition .........................................................................................................22

2.5.2.2. Familles et caractéristiques des ondelettes ......................................................23

2.5.2.3. Exemple de traitement et notion sur les coefficients d’ondelette.....................24

XI
2.5.2.4. Classement des transformées des ondelettes.....................................................25

2.5.2.5. Décomposition en paquet d’ondelette ..............................................................27

2.5.2.6. Reconstruction..................................................................................................32

2.6. Tatouage d’image par ondelette.....................................................................................32

2.6.1. Principes de Tatouage ou Watermarking ................................................................32

2.6.2. Tatouage dans le domaine de la DWT (Discret wavelet transform) ......................33

2.6.3. Principe de la Méthode............................................................................................34

2.6.4. Diagrammes du système de tatouage proposé.........................................................34

2.7. Compression d’image par ondelettes (DWT) ................................................................36

2.7.1. Quelques outils indispensables à la compression d’image .....................................36

2.7.2. Procédure de compression.......................................................................................37

2.7.2.1. Décomposition en ondelettes ...........................................................................38

2.7.2.2. Quantification...................................................................................................38

2.7.2.3. Codage..............................................................................................................39

2.8. Conclusion......................................................................................................................40

CHAPITRE 3: LA CRYPTOGRAPHIE

3.1. Introduction....................................................................................................................42

3.2. Quelques définitions ......................................................................................................43

3.3. Quelques repères historiques .........................................................................................44

3.4. Cryptographie moderne..................................................................................................46

3.4.1. Chiffrement et déchiffrement .................................................................................46

3.4.2. Décryptage ..............................................................................................................46

3.4.3. Type de cryptosystème actuel .................................................................................47

3.4.3.1. Cryptographie à clefs privés ou secrète ...........................................................47

3.4.3.2. Cryptographie à clefs publiques .......................................................................52

3.4.3.3. Cryptographie hybrides.....................................................................................53

3.5. Cryptanalyse ..................................................................................................................53

Conclusion.............................................................................................................................55

XII
CHAPITRE 4: RESEAU DE NEURONES ARTIFICIELS

4.1. Introduction....................................................................................................................57

4.2. Historique ......................................................................................................................58

4.3. Neurone biologique .......................................................................................................59

4.3.1. Structure d'un neurone.............................................................................................59

4.3.2. Fonctionnement.......................................................................................................60

4.4. Neurone artificiel ou formel...........................................................................................61

4.4.1. Présentation ............................................................................................................61

4.4.2. Interprétation mathématique....................................................................................62

4.5. Architecture des réseaux de neurones ...........................................................................64

4.5.1. Les réseaux à propagation de l’information vers l’avant........................................64

4.5.1.1. Les Perceptrons.................................................................................................64

4.5.1.2. Les réseaux à fonction radiale...........................................................................66

4.5.2. Les réseaux à rétro propagation de l’information....................................................66

4.5.2.1. Les cartes auto-organisatrices de Kohonen.......................................................66

4.5.2.2. Les réseaux de Hopfield....................................................................................67

4.5.2.3. Les ART (Adaptative Resonnance Theorie).....................................................67

4.6. Apprentissage.................................................................................................................67

4.6.1. Présentation.............................................................................................................67

4.6.2. Types d'apprentissage .............................................................................................68

4.6.2.1. Le mode supervisé (supervised learning).........................................................68

4.6.2.2. Le mode non supervisé (unsupervised learning)..............................................68

4.6.3. Règles d'apprentissage ............................................................................................69

4.6.3.1. Règle de Hebb...................................................................................................69

4.6.3.2. Règle de correction d'erreurs............................................................................69

4.6.3.3. Apprentissage de Boltzmann............................................................................69

4.6.3.4. Règle d'apprentissage par compétitions............................................................70

4.7. Conclusion......................................................................................................................70

XIII
CHAPITRE 5: LA NEURO-CRYPTOGRAPHIE

5.1. Introduction....................................................................................................................72

5.2. Fonctionnement .............................................................................................................72

5.3. La cryptographie neuronale ...........................................................................................73

5.4. Algorithme de synchronisation .....................................................................................75

5.5. Conclusion......................................................................................................................77

CHAPITRE 6: SCENARIO ET DISCUSSION

6.1. Introduction....................................................................................................................79

6.2. Tatouage et détatouage de l’image.................................................................................79

6.3. Compression et décompression de l’image....................................................................81

6.4. Cryptage et décryptage...................................................................................................84

6.4.1. Implémentation........................................................................................................84

6.4.2. Résultats : synchronisation en temps réel................................................................86

6.5. Bilan et recommandation...............................................................................................87

CONCLUSION GENERALE...................................................................................................88
BIBLIOGRAPHIE.....................................................................................................................II
ANNEXES................................................................................................................................IV
TABLE DES MATIÈRES........................................................................................................XI

XIV