Académique Documents
Professionnel Documents
Culture Documents
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.
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.
I
SOMMAIRE
REMERCIEMENTS...................................................................................................................I
SOMMAIRE...............................................................................................................................3
INTRODUCTION......................................................................................................................9
CHAPITRE 2: ESONDELETTES…………………………………………………………....14
CHAPITRE 3: LA CRYPTOGRAPHIE……………………………………………………...41
CHAPITRE 5: LA NEURO-CRYPTOGRAPHIE…..……………………………………….71
CONCLUSION GENERALE...................................................................................................88
BIBLIOGRAPHIE.....................................................................................................................II
ANNEXES……………………………………………………………………………………IV
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.
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é ».
3
Résumé
Abstract
4
LISTE DES ABREVIATIONS
AES : Advanced Encryption Standard
dB : Décibel
IA : Intelligence artificielle
5
NIST : National Institute of Standards and Technology
RC : Rivest Cipher
RNA : Réseau de Neurone Artificielles
RSA : Rivest, Shamir et Adleman
TF : Transformée de Fourier
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
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…
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
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
Détatouage Décompression Décryptage
finale
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.
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 :
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.
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.
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.
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
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.
+∞
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.
Amplitude
Temps
19
La transformée de Fourier de f est :
Amplitude
Fréquence
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)
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)
−∞
❑b , ( t )=h(t−b)e 2 i t (2.03)
21
1 −¿¿
:h ( t )=
❑
e , les fonctions de Gabor sont deviennent :
2
t t
Enveloppe et partie réelle des ondelettes Enveloppe et partie réelle des ondelettes
de Gabor pour =1 de Gabor pour =5
Nous pouvons voir que le nombre d’oscillations augmente avec la fréquence mais que
l’enveloppe reste le même.
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.
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
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 :
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) :
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.
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 .
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.
26
2.5.2.5. Décomposition en paquet d’ondelette [11] [13]
Cette transformation peut être utilisée pour l'analyse adaptative des signaux en cherchant
toujours la meilleure base de décomposition.
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 :
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)
29
Résultat de la décomposition en ondelette pour un niveau 1
– 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
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.
Légende :
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.
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.
2.6.2. Tatouage dans le domaine de la DWT (Discret wavelet transform) [8] [11]
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
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.
Le tatouage dans le domaine DWT peut être divisé en deux procédures : l’inclusion de la
marque et l’extraction 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.
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)
Sinon
Fin Si
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.
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.
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
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 :
Bref,
Ainsi, il faut bien jouer entre pas de quantification , entropie et PSNR pour avoir une
compression parfaite d’une image.
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.
Décompose l’image en sous images avec des fréquences différentes pour concentrer les
informations en peu de coefficients.
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 :
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 :
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]
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
45
3.4. Cryptographie moderne
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]
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
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)
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.
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)
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.
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
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.
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 :
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.
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.
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
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
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]
58
4.3. Neurone biologique [20]
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 :
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 :
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
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 :
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).
D'un point de vue mathématique, le neurone formel peut être représenté de la manière
suivante:
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
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
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
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
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]
supervisé.
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.
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 ».
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
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.
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.
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
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.
73
A B
A
E
Figure 5.1 : Attaque de la clé secrète par E
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
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 Random-walk
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.
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 :
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.
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 :
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
– Tebm= 0,0425
– Attaque : Gif
– Tebm=0,0401
– Attaque : Rotation
– Tebm=0,0523
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.
=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
85
client et celui du serveur. Après avoir obtenu la clé, le client va utiliser l’algorithme AES pour
chiffrer l’image.
86
6.4.2. Résultats : synchronisation en temps réel
87
6.5. Bilan et recommandation
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.
[3] AES. Announcing the Advanced Encryption Standard. Federal Information Processing
Standards Publication, 2001.
[5] Dr. Brian Gladman, A Speci_cation for the AES Algorithm. http ://www.gladman.uk.net/.
[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.
[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.
[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.
[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.
III
ANNEXES
Programmes Neuro-crypto Serveur :
package utilitaire;
/**
*/
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;
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
if ((value.length() % 16) != 0) {
plainText = value.getBytes("UTF8");
return encryptedString;
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;
if ((value.length() % 16) != 0) {
encryptedText = Base64Coder.decodeLines(value);
VI
crypto.decrypt(encryptedText, i, decryptedText, i, keyObject, 16);
return decryptedString;
/**
* @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;
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
if ((value.length() % 16) != 0) {
VIII
plainText = value.getBytes("UTF8");
return encryptedString;
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;
IX
byte[] keyBytes = key.getBytes();
if ((value.length() % 16) != 0) {
encryptedText = Base64Coder.decodeLines(value);
return decryptedString;
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
2.1. Introduction....................................................................................................................15
2.2.1. Définition.................................................................................................................16
XI
2.5.2.4. Classement des transformées des ondelettes.....................................................25
2.5.2.6. Reconstruction..................................................................................................32
2.7.2.2. Quantification...................................................................................................38
2.7.2.3. Codage..............................................................................................................39
2.8. Conclusion......................................................................................................................40
CHAPITRE 3: LA CRYPTOGRAPHIE
3.1. Introduction....................................................................................................................42
Conclusion.............................................................................................................................55
XII
CHAPITRE 4: RESEAU DE NEURONES ARTIFICIELS
4.1. Introduction....................................................................................................................57
4.3.2. Fonctionnement.......................................................................................................60
4.6. Apprentissage.................................................................................................................67
4.6.1. Présentation.............................................................................................................67
4.7. Conclusion......................................................................................................................70
XIII
CHAPITRE 5: LA NEURO-CRYPTOGRAPHIE
5.1. Introduction....................................................................................................................72
5.5. Conclusion......................................................................................................................77
6.1. Introduction....................................................................................................................79
6.4.1. Implémentation........................................................................................................84
CONCLUSION GENERALE...................................................................................................88
BIBLIOGRAPHIE.....................................................................................................................II
ANNEXES................................................................................................................................IV
TABLE DES MATIÈRES........................................................................................................XI
XIV