Vous êtes sur la page 1sur 82

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Université Dr Moulay Tahar de Saida
Faculté des sciences et de la technologie

Département de Mathématique et Informatique

Mémoire de fin d’étude pour l’obtention du diplôme Master en Informatique

Spécialité : Sécurité des Systèmes d’Information et de la Communication

Thème :

UTILISATION DES TECHNIQUES EURISTIQUES


(Algorithme Génétique) POUR LE PROBLEME DE
CRYPTANALYSE DU CHIFFREMENT DE VEGENERE
Présenté par :

Mehdi FEZZA

Encadreur : Ahmed Chaouki LOKBANI


Co-encadreur : Reda Mohamed HAMOU

Session : Juin 2013


promotion : 2012/2013
Dédicace

Je dédie ce modeste travail


A ma très chère mère
A toi mon père
A, mes sœurs, mes frères et mes chers amis.

Mehdi FEZZA
Remerciement

Je remercie Allah pour la force


et le courage qu’il m’a donné pour terminer mes études et élaborer
ce modeste travail.

Ce travail n’aurait certainement jamais vu le jour sans le soutien et le


dévouement de certaines personnes
que je remercie vivement.

Aussi un grand merci à mes encadreurs Monsieur Ahmed Chaouki


LOKBANI & Monsieur Reda Mohamed HAMOU pour leurs savoirs,
leurs compétences scientifiques
et leurs patiences durant ma recherche.

Mes remerciments les plus vif s’adressent au comité de jury d’avoir


accepté d’examiner
et d’évaluer mon travail.

Un grand remerciement à mes parents.

Mes remerciements les plus sincères à toutes


les personnes qui m’ont aidé dans l’élaboration de ce mémoire, même
avec
un simple sourire.

Mehdi FEZZA
Table des matières

Introduction générale 1

Chapitre I

1/ Définition 4

2/ L’objectif de la sécurité :.............................................................................................................4

3/ Les attaques :...............................................................................................................................4

4/ Les principales attaques : ............................................................................................................5

4.1/ Les virus : .....................................................................................................................5

4.2/ Les vers : .....................................................................................................................6

4.3/ Les bombes logiques : .................................................................................................6

4.4/ Les chevaux de Troie : ................................................................................................6

4.5/ L’attaque par saturation (déni de service) : .................................................................7

4.6/ L’attaque de répudiation IP spoofing : .......................................................................7

5/ L’ espionage: ...............................................................................................................................7

5.1/ Man in the middle: .......................................................................................................7

5.2/ Le Spyware :.................................................................................................................8

5.3/ Cookies :......................................................................................................................8

6/ La politique de sécurité : ............................................................................................................8

7/ Les outils pour la protection :.....................................................................................................9

7.1/ L’Authentification :......................................................................................................9

7.2/ Le cryptage :.................................................................................................................9

7.3/ Les antivirus : .............................................................................................................10

7.4/ Les pare-feu :.............................................................................................................10

7.4.1/ Le filtrage : ..................................................................................................11


Table des matières

7.4.2/ La translation d'adresses :............................................................................11

8/ Conclusion.................................................................................................................................11

Chapitre II 12
Introduction ...................................................................................................................................13

1/ Définitions et terminologie .......................................................................................................13

1.1/ Domaine d’encryptage ..................................................................................................13

1.2/ Transformation d’encryptage et de décryptage .............................................................13

1.3/ Principe de KERCKHOFF ............................................................................................14

2/ Définitions ................................................................................................................................15

3/ Cryptographie symétrique ........................................................................................................16

4/ Cryptographie asymétrique ......................................................................................................17

5/ La cryptographie classique .......................................................................................................18

5.1/ Substitution ................................................................................................................18

5.1.1/ Chiffre monoalphabetique simple 19


5.1.1.1.1/ Analyse de fréquences ..............................................................19

5.1.1.1.2/ Chiffre de César ........................................................................19

5.1.1.2/ Chiffrement polygraphique.......................................................................20

5.1.1.2.1/ Chiffre Playfair .........................................................................20

5.1.1.2.2/ Chiffre Hill (1929) .....................................................................20

5.1.1.3/ Chiffrement polyalphabetique ................................................................21

5.1.1.3.1/ Chiffre de Vigenère ..................................................................22

5.1.1.3.1.1/ Historique ...................................................................22

5.1.1.3.1.2/ Chiffre de Vigenère ....................................................22

5.1.1.3.1.3/ Principe du chiffrement ..............................................23

5.1.1.3.1.4/ La table de Vigenère ..................................................23

5.1.1.3.1.5/ Chiffrement ................................................................24

5.1.1.3.1.6/ Principe mathématique ...............................................25


Table des matières

5.1.1.3.1.7/ Cryptanalyse ...............................................................26

5.1.1.3.2/ Chiffre de Vernam (On Time Pad) ............................................26

5.1.2/ Permutation (transposition) .........................................................................28

5.1.3/ La machine à Rotors ...........................................................................28

5.2/ La cryptographie moderne .........................................................................................30

5.2.1/ Algorithmes de cryptographie symétrique .............................................................30

5.2.1.1/ Cryptosystème par blocs ..........................................................................30

5.2.1.1.1/ La structure de Fiestel ...............................................................31

5.2.1.1.2/ D.E.S .........................................................................................31

5.2.1.1.2.1/ Fonctionnement du DES ............................................32

5.2.1.1.2.2/ Algorithme de cadencement des clés .........................35

5.2.1.1.3/ A.E.S ........................................................................................36

5.2.1.1.3.1/ Fonctionnement du RIJENDEAL ..............................37

5.2.1.2/ Cryptosystème par flots ...........................................................................40

5.2.2/ Algorithmes de cryptographie asymétrique ...........................................................40

5.2.2.1/ RSA .........................................................................................................40

5.2.2.1.1/ Fonctionnement du RSA............................................................41

5.2.2.1.1.1/ Génération des clés .....................................................41

5.2.2.1.1.2/ Distribution des clés....................................................41

5.2.2.1.1.3/ Le chiffrement du message .........................................41

5.2.2.1.1.4/ Le déchiffrement du message .....................................41

Conclusion :...................................................................................................................................42

Chapitre III 43

Introduction ...................................................................................................................................44

1/ Terminologie ............................................................................................................................45

2/ Algorithme ...............................................................................................................................45

3/ Généralités ................................................................................................................................46
Table des matières

4/ Principales familles ..................................................................................................................47

5/ Programmation évolutionnaire .................................................................................................47

6/ Algorithmes génétiques ............................................................................................................47

6.1/ Définition et origine ..................................................................................................48

6.2/ Corps d’un algorithme génétique ..............................................................................49

6.2.1/ Codage ........................................................................................................50

6.2.2/ Construction de la population initiale .........................................................51

6.2.3/ Evaluation des individus .............................................................................51

6.2.4/ Sélection .....................................................................................................52

6.2.4.1/ Sélection de la roulette (Roulette Wheel Sélection) ....................52

6.2.4.2/ Sélection par rang de classement .................................................53

6.2.4.3/ Sélection par tournoi ....................................................................53

6.2.4.4/ Sélection par Elitisme ..................................................................53

6.2.5/ Operateurs génétiques .................................................................................54

6.2.5.1/ Opérateur de croisement ..............................................................54

6.2.5.2/ Opérateur de mutation .................................................................55

6.2.6/ Critère d’arrêt .............................................................................................55

6.2.7/ Convergence ...............................................................................................55

Conclusion 56

Chapitre IV : Implémentation et expérimentation…………………………………....……….…57


Introduction ................................................................................................................................... 58

1. Langage utilisé : ........................................................................................................................ 58

1.1 Les avantages de JAVA : ............................................................................................ 58

1.2 Les caractéristiques de JAVA : .............................................................................. 59

2. Implémentation :.................................................................................................................... 59

2.1/ Création de la population initiale : C’est une population de base générée................. 59

2.2/ Evaluation : C’est une étape de comparaison des individus, donc elle permettra...... 60
Table des matières

2.3/ Sélection .................................................................................................................... 60

2.4/ Application des opérateurs génétiques: ...................................................................... 60

2.5/ Critère d’arrêt : Peut être arbitraire par le nombre d’itération ou par la meilleure .... 61

3. Description de l’application : ................................................................................................ 61

4. Expérimentation des résultats:............................................................................................... 65

Conclusion ................................................................................................................................. 71
Listes des Figures

FIG 1.1 : Le principe de pare-feu …………………………………………………………….10

FIG 2.2 : Cryptosystème Symétrique…………………………………………………………16

FIG 2.3 : Cryptosystème Asymétrique……………………………………………………….17

FIG 2.4 : Cryptosystème Hybride ……………………………………………………………18

FIG 2.5 : Technique du Scytale………………………………………………………………18

FIG 2.6: Table de Vigenère…………………………………………………………………...23

FIG 2.7 : La machine ENIGMA de Base…………………………………………………….29

FIG 2.8 : Exemple de Boite de Substitution et de Permutation……………………………...31

FIG 2.9 : Structure de Fiestel……………………………………………………………...…31

FIG 2. 10: Schéma du D.E.S…………………………………………………………………36

FIG 2.11 : Les états du message AES………………………………………………………...38

FIG 2.12 : Les états de la clé AES……………………………………………………………38

FIG 2.13: Shift Row de AES…………………………………………………………………39

FIG 2.14 : Mix Colum du AES………………………………………………………………39

Figure 3.1 : Un algorithme génétique………………………………………………………...49

Figure 3.2 : Croisement '1-point'……………………………………………………………...54

Figure 3.3 : Croisement ‘2-points’……………………………………………………………55

Fig 4.1: L’Onglet chiffrement « Chiffrement de Vignère »………………………………….62

Fig 4.2: L’Onglet Traitement avec AG « L’utilisation des AG pour le déchiffrement »…….63

Fig 4.3: L’Onglet Traitement avec AG « L’utilisation des AG pour le déchiffrement »……64
Listes des Figures

Fig 4.4: L’Onglet Résultat optimals «Affichage des texte décrypter optimals au texte
claire»…………………………………………………………………………………………65

Fig 4.5: Représentation graphique des résultats du tableau 4.1………………………………66

Fig 4.6: Représentation graphique des résultats du tableau 4.2………………………………67

Fig 4.7: Représentation graphique des résultats du tableau 4.3………………………………68

Fig 4.8: Représentation graphique des résultats du tableau 4.4………………………………70

Fig 4.9: Représentation graphique des résultats du tableau 4.5………………………………71


Liste des Tableaux

TAB 2.1 : Tableau du chiffre Playfair.……………. ……………………………………….20

TAB 2.2 : Exemple du On Time Pad………………………………………………………..27

TAB 2.3 : Permutation des bits d’un bloc dans le D.E.S……………………………………32

TAB 2.4 : Bloc scindé dans D.E.S…………………………………………………………..32

TAB 2.5 : Fonction d’expansion……………………………………………………………..33

TAB 2.6 : Première boite de substitution du D.E.S…………………………………………..33

TAB 2.7: Table de permutation D.E.S………………………………………………………..34

TAB 2.8 : Table de transposition finale du D.E.S…………………………………………...34

TAB 2.9 : Matrice de réduction de la clé……………………………………………………35

TAB 2.10: Permutation pour l’algorithme de cadencement des clés dans le D.E.S…………35

TAB 2.11 : Rotation de l’algorithme de cadencement des clés du D.E.S……………………35

TAB 2.12 : Permutation compressive finale de Ki…………………………………………...36

TAB 2.13 : Tableau récapitulatif du nombre de rondes AES………………………………...40

TAB 4.1: Nombre de texte selectionés lorsque nombre d’itération égale à 100……………..66

TAB 4.2: Nombre de texte selectionés lorsque nombre d’itération égale à 200……………..67

TAB 4.3: Nombre de texte selectionés lorsque nombre d’itération égale à 300……………..68

TAB 4.4: Nombre de texte selectionés lorsque nombre d’itération égale à 400…………..…69

TAB 4.5: Nombre de texte selectionés lorsque nombre d’itération égale à 500………..……70
Introduction générale

La cryptologie, « science du secret » est l’une des sciences les plus antiques (plus de
3000 ans). Elle a été réservée pendant longtemps, aux milieux diplomatiques et militaires. Grace
au développement de la société de l’information et l’évolution des réseaux de communications sa
démocratisation s’est installée et elle s’est imposée dans tous les domaines. De nouvelles
exigences se sont alors apparues : assurer la confidentialité des messages ne suffit plus, il faut
également assurer leur intégrité et leur authenticité.

Dans la cryptologie, on distingue la cryptographie et la cryptanalyse. La première définit


et étudié les systèmes utilisés, alors que la seconde cherche à valider ou a casser ces systèmes.

Depuis des siècles, de nombreux mécanismes ont été inventés. Nous ne remontons qu'à la
fin du XVIe siècle pour étudier le chiffrement de Vigenère, qui est un système de chiffrement
polyalphabétique sur les textes, c'est un chiffrement par substitution, mais une même lettre du
texte clair peut, suivant sa position dans celui-ci, être remplacée par des lettres différentes,
contrairement à un système de chiffrement monoalphabétique comme le chiffre de César (une
extension du chiffrement de César).

Cependant, bien que le système de chiffrement de Vigenère semble a priori robuste, une
clé de 20 caractères présente 2x1026 = 294 possibilités, ce qui nécessiterait plus d'un million
d'années pour toutes les essayer sur un parc d'un million de machines.

Une première méthode d'attaque (ou cryptanalyse) a été proposée près de 3 siècles plus
tard, indépendamment, par Babbage et Kasiski.

Dans notre travail, pour casser ce système de chiffrement, nous avons opte pour
l’utilisation des algorithmes évolutionnistes (AE).

Pourquoi les algorithmes évolutionnistes ?

Les AE ont connu un grand succès dans la résolution des problèmes d’optimisation et
notamment les combinatoires qui sont en général NP-complets ou NP-difficiles.

1
Introduction générale

Etant donné que nous avons pu ramener notre problème de chiffrement a un problème
d’optimisation combinatoire, l’appel aux AE est justifie. Ceci d’une part.

D’autre part, la majorité des processus dans les AE est aléatoire ce qui est un atout pour la
cryptanalyse. D’une manière générale, on utilise les algorithmes évolutionnistes lorsque les
méthodes d'optimisation classiques ne permettent pas d'obtenir de bons résultats.

Nous rappelons que la méthode évolutionniste est une métaphore du principe de la


sélection naturelle et de la loi de survie du plus fort de Darwin. Elle utilise un ensemble de
solutions (ou population), la loi de sélection, et les operateurs de transformation qui sont, entre
autres, le croisement et la mutation. Une solution au problème est codée en terme de
chromosome, appelé parfois aussi génotype. Les chromosomes sont croisés entre eux ou mutés
pour générer d'autres chromosomes.

Pour éviter la génération de solutions invalides, l'idée est d'incorporer dans les operateurs
de croisement ou de mutations des contraintes ou des heuristiques.

Le but de ce projet est de programmer ce chiffrement de Vigenère (utilisation la clé


secrète pour chiffrer un texte), ainsi que son décryptement ayant pour outil de base les AE afin de
trouver une partie ou la totalité de ce texte chiffré.

2
Chapitre I La sécurité informatique

1/ Définition :

La sécurité informatique c’est l’ensemble des moyens mis en œuvre pour réduire la
vulnérabilité d’un système contre les menaces accidentelles ou intentionnelles. Il convient
d'identifier les exigences fondamentales en sécurité informatique [YVS, 02].

2/ L’objectif de la sécurité :

La sécurité est essentielle pour la protection de trois caractéristiques critiques des


systèmes et de l’information qu’ils traitent et maintiennent, à savoir [DID, 02] :

1. Confidentialité : assure que l’information soit protégée contre toute divulgation


accidentelle ou malveillante aux parties non autorisées.
2. Intégrité : assure que l’information et les systèmes soient protégés contre toute
modification ou destruction accidentelle ou malveillante.
3. Disponibilité : assure que l’information et les systèmes soient accessibles et
utilisables par les parties autorisées aux moments où elles en ont besoin.

La sécurité recouvre ainsi plusieurs aspects :

 L’intégrité des données et la confidentialité : gestion des accès physiques et logiques,


sécurité des réseaux.
 Authentification des interlocuteurs (signature).
 Respect de la vie privée (informatique et liberté).

Du point de vue de la sécurité informatique, une menace est une violation potentielle de la
sécurité. Cette menace peut être accidentelle, intentionnelle (attaque), active ou passive
[YVS, 02].

3/ Les attaques :

Les informations ou les systèmes d’informations d’une entreprise peuvent subir


des dommages de plusieurs façons : certains intentionnels (malveillants), d’autres par accident.
Ces événements seront appelés des « attaques » .Il existe quatre catégories principales
d’attaque : l’accès, la modification, le déni de service, et la répudiation.

4
Chapitre I La sécurité informatique

Les attaques peuvent être réalisées grâce à des moyens techniques ou par
ingénierie sociale. L’ingénierie sociale consiste à employer des méthodes non techniques pour
obtenir un accès non autorisé [STP, 03].

4/ Les principales attaques :

4.1/ Les virus :

Un virus informatique est un programme informatique écrit dans le but de se propager


à d'autres ordinateurs en s'insérant dans des programmes légitimes appelés « hôtes ». Il
peut aussi avoir comme effet, recherché ou non, de nuire en perturbant plus ou moins
gravement le fonctionnement de l'ordinateur infecté. Il peut se répandre à travers tout moyen
d'échange de données numériques comme l'internet, mais aussi les disquettes, les cédéroms,
les clefs USB, etc... [HAN, 08]

Les virus peuvent contaminer une machine de plusieurs manières :

·Téléchargement de logiciel puis exécution de celui-ci sans précautions,

·Ouverture sans précautions de documents contenant des macros,

·Pièce jointe de courrier électronique (exécutable, script type VBs…),

·Ouverture d’un courrier au format HTML contenant du JavaScript exploitant une faille de
sécurité du logiciel de courrier (normalement JavaScript est sans danger).

·Exploitation d’un bug du logiciel de courrier (effectuer régulièrement les mises à jour) [YVS,
02].

Les virus peuvent être très virulents mais ils coûtent aussi beaucoup de temps en mise en
place d’antivirus et dans la réparation des dégâts causés. On peut malheureusement trouver
facilement des logiciels capables de générer de virus et donc permettant à des « amateurs »
(aussi appelés crackers) d’étaler leur incompétence. La meilleure parade est l’utilisation
d’un antivirus à jour et d’effectuer les mises à jour des logiciels (pour éviter l’exploitation des
bugs) [YVS, 02].

5
Chapitre I La sécurité informatique

4.2/ Les vers :

Un ver (Worm en anglais) est un type de virus , il est devenu le plus fréquent , il est
identique à un virus classique en tous points sauf qu’ un virus normal à besoin, pour se
reproduire, d’une intervention manuelle de l’utilisateur victime par contre un ver est
capable de se reproduire de manière autonome sans aucune intervention. Par exemple un
programme a infecté une machine de votre réseau, il utilise une faille de sécurité de
votre système d’exploitation et se propage automatiquement sur toutes machines de votre
réseau. Ici, alors on déduit qu’il s’agit bien d’un ver car il s’est reproduit sans l’aide
d’aucun utilisateur [J M, 05].

4.3/ Les bombes logiques :

Les bombes logiques sont des parties de code qui dorment au cœur d’un programme
jusqu’à ce qu’un évènement les déclenche. Là encore, ce sont les sources de certains
programmes qui sont mise en cause. Les évènements déclencheurs peuvent être de types
divers et variés. Il peut s’agir de date, d’heure, de nombres d’utilisateurs travaillant ou de
tout ce qui peut passer par la tète des créateurs de ces bombes à retardement. Certains
virus sont également les bombes logiques, c’est le cas de Friday 13th qui se propose de
reformater joyeusement votre disque dur à cette date [PAS, 96].

4.4/ Les chevaux de Troie :

Les chevaux de Troie sont des programmes informatiques cachés dans d’autres
programmes. Ce nom vient de la légende grecque de la prise de Troie à l’aide d’un cheval en
bois rempli de soldats qui attaquèrent la ville une fois à l’intérieur [STP, 03].un cheval
de Troie est composé de deux parties, le module serveur et le module client, le module
serveur installé dans l’ordinateur de la victime, donne discrètement à l’attaquant accès à tous ou
parties de ses ressources, qui en dispose via le réseau (en générale), grâce à un module client
(il est le client des services délivrés inconsciemment par la victime)(Éric, 2004).

En général, le but d’un cheval de Troie est de créer une porte dérobée (backdoor)
pour qu’un pirate informatique puisse ensuite accéder facilement l’ordinateur ou le réseau
informatique. Il peut aussi voler des mots de passe, copier des données, exécuter des actions
nuisibles [STP, 03].

6
Chapitre I La sécurité informatique

4.5/ L’attaque par saturation (déni de service) :

En terme de serveur et, plus rarement de poste client, une attaque de type DoS est
une activité consistant à empêcher quelqu’un d’utiliser un service .Pour se faire, l’attaquant
utilise un programme qui cherche à rendre le système cible indisponible en le faisant se
suspendre ou en le surchargeant.

En terme de réseau, une attaque de type DoS consiste à submerger la victime


d’un flot de trafic supérieur à sa capacité de traitement. La bande passante est alors saturée
et le réseau devient indisponible [O O, 05].

Il existe différente attaque par saturation : le flooding (l’envoi de nombreux paquets IP


de grosse taille), le smurf, le débordement de tampon… [STP, 03].

4.6/ L’attaque de répudiation IP spoofing :

La répudiation est une attaque contre la responsabilité. Autrement dit, la


répudiation consiste à tenter de donner de fausses informations ou de nier qu’un
événement ou une transaction se soient réellement passé [STP, 03].

L’IP Spoofing signifie usurpation d’adresse IP. Bien que cette attaque soit
ancienne, certaines formes d’IP Spoofing sont encore d’actualité .Effectivement, cette attaque
peut être utilisée de deux manières différentes :

- La première utilité de l’IP Spoofing va être de falsifier la source d’une attaque.


Par exemple, lors d’une attaque de type déni de service, l’adresse IP source des
paquets envoyés sera falsifiée pour éviter de localiser la provenance de l’attaque.
- L’autre utilisation de l’IP Spoofing va permettre de profiter d’une relation de
confiance entre deux machines pour prendre la main sur l’une des deux [SUP, 06].

5/ L’ espionage:

5.1/ Man in the middle:

Man-in-the-Middle signifie l’homme du milieu. Cette attaque fait intervenir trois


protagonistes : le client, le serveur et l’attaquant. Le but de l’attaquant est de se faire passer

7
Chapitre I La sécurité informatique

pour le client auprès du serveur et se faire passer pour le serveur auprès du client. Il devient
ainsi l’homme du milieu. Cela permet de surveiller tout le trafic réseau entre le client et le
serveur, et de le modifier à sa guise pour l’obtention d’informations (mots de passe, accès
système, etc.).

La plupart du temps, l’attaquant utilise les techniques de détournement de flux décrites


dans les précédentes sections pour rediriger les flux du client et du serveur vers lui [ALX, 04].

5.2/ Le Spyware :

Un spyware (logiciel espion) est un logiciel malveillant qui s'installe dans un


ordinateur dans le but de collecter et transférer des connaissances. L'essor de ce type de
logiciel est associé à celui d'internet, qui lui sert de moyen formations sur l'environnement
dans lequel il s'est installé, très souvent sans que l'utilisateur en ait connaissance de transmission
de données [HAN ,08].

5.3/ Cookies :

Les cookies sont de petits fichiers textes stockés par le navigateur Web sur le disque
dur du visiteur d'un site Web et qui servent (entre autres) à enregistrer des informations
sur le visiteur ou encore sur son parcours dans le site [HAN, 08].

6/ La politique de sécurité :

La politique de sécurité est le point d’entrée de tout bon plan de sécurité. Similaire
au règlement de travail, la politique de sécurité traduit en quelques pages l’attitude de
sécurité de l’entreprise. Les finalités de sécurité s’articulent auteur de 5 axes [DID, 02]:

 Sensibiliser aux risques pesant sur les systèmes d’information et aux moyens disponibles
pour s’en prémunir.
 Créer une structure chargée d’élaborer, de mettre en œuvre des consignes et procédures
cohérentes pour assurer la sécurité des systèmes informatiques.
 Promouvoir la coopération entre les différentes services et unités de l’entreprise pour
l’élaboration et la mise en œuvre des consignes et procédures définies.
 Susciter la confiance dans le système d’information de l’établissement.

8
Chapitre I La sécurité informatique

 Faciliter la mise au point et l’usage du système d’information pour tous les utilisateurs
autorisés de l’établissement [DID, 02].

7/ Les outils pour la protection :

7.1/ L’Authentification :

L’authentification est basée sur les 3 principes :

- Savoir : login, mot de passe…

- Être : il existe des dispositifs plus sophistiqués de protection à partir de la


reconnaissance biométrique comme la forme de l’iris, structure de la voix, dynamique de la
signature, forme de la main. Mais ces techniques sont mal acceptées par la population, car elles
sont assimilées à des méthodes policières. Elles sont à réserver pour des protections de haut
niveau.

- Avoir : clés USB, carte à puce (équipée d’un véritable microprocesseur avec
mémoire vive pour les calculs intermédiaires, morte et PROM), carte magnétique (possède
diverses pistes correspondant aux diverses normes bancaires)…

Une authentification est dite forte lorsqu’elle utilise deux mécanismes différents (carte à
puce avec mot de passe par exemple) [GLF, 03].

7.2/ Le cryptage :

La cryptographie est utilisée pour protéger des informations mémorisées ou en transit sur
des réseaux, pour en renforcer la protection vis-à-vis des tentatives d’espionnage. Il n’est
pas possible d’empêcher passive mais de rendre les informations indéchiffrables. La
surveillance des réseaux devient de toute façon de plus en plus complexe. Le cryptage est
aussi pour authentifier avec certitude l’émetteur d’un message seul capable de le coder d’une
certaine manière à l’aide d’une clé d’un algorithme secret [GLF, 03].

9
Chapitre I La sécurité informatique

7.3/ Les antivirus :

L’anti-virus est un logiciel capable de détecter des virus, de les détruire, de les mettre
en quarantaine et parfois même de réparer les fichiers infectés sans les endommager. Ils
utilisent pour cela de nombreuses techniques, parmi lesquelles [HAN, 08]:

 La reconnaissance de séquences d'octets caractéristiques (signatures) d'un virus particulier.


 La détection d'instructions suspectes dans le code d'un programme (analyse heuristique).
 La création de listes de renseignements sur tous les fichiers du système, en vue de
détecter d'éventuelles modifications ultérieures de ces fichiers par un virus.
 La détection d'ordres suspects.
 La surveillance des lecteurs de support amovible : disquettes, Zip, CD-ROM, ...

Il existe des anti-virus commerciaux (comme Norton Antivirus ou McAfee VirusScan)


qui sont de bons outils pour traquer les virus. Toutefois, il convient de les mettre
régulièrement à jour pour profiter pleinement de leurs capacités [ALX, 04].

7.4/ Les pare-feu :

Les pare-feu (firewalls en anglais) ont pour mission de contrôler les données
qui sortent du réseau et entrent dans le réseau, c’est la première mesure à mettre en place
pour sécuriser un réseau. L’emplacement du pare-feu sur le réseau est fondamental. Il doit
être situé à l’endroit où l’on est sûr qu’il va pouvoir intercepter toutes les données,
généralement entre l’arrivée de la liaison Internet et le réseau local [J M, 04].

Il existe différentes types de pare-feu : les pare-feu bridge, les pare-feu matériels (ils
se trouvent souvent sur des routeurs achetés dans le commerce par de grands
constructeurs comme Cisco ou Nortel), et les pare-feu logiciels (présente la fois dans les
serveurs et les routeurs) [A A, 04].

FIG 1.1 : Le principe de pare-feu.

10
Chapitre I La sécurité informatique

7.4.1/ Le filtrage :

Une des fonctions de base d'un firewall est de filtrer le trafic entre les
différentes zones auxquelles il est connecté. Ce filtrage est fait à l'aide de règles
définies par l'administrateur du firewall. Dans un scénario classique on laissera passer à peu
prés toutes les connexions qui émanent d'un réseau prive et qui vont sur Internet, alors qu'on ne
laissera entrer depuis Internet que des connexions vers quelques serveurs et services bien
définis (http,..), le filtrage peut se faire d’après les critères : adresse IP source ou
destination, protocoles (TCP, UDP, ICMP, …) et ports, et flags et options (ICMP,…) [A A, 04].

7.4.2/ La translation d'adresses :

Son principe consiste à modifier l’adresse IP source ou destination, dans l’en-tête


d’un datagramme IP lorsque le paquet transite dans le pare-feu en fonction de l’adresse
source ou destination et du port source ou destination. Cette technologie permet de cacher
le schéma d’adressage réseau présente dans une entreprise derrière un environnement de
pare-feu [J F, 09].

8/ Conclusion

Malgré l’évolution importante des moyens de sécurisation (pare-feu, cryptographie,


antivirus…etc.), la sécurité informatique n’est jamais sûr a 100%.

11
Chapitre II Cryptographie

Introduction

La cryptographie est une science à part entière, ne représente en fait, qu’une partie de la
cryptologie, et son complément c’est l’inverse : la cryptanalyse. La cryptographie se charge de
transformer un texte en clair en texte crypté, illisible et sans sens. Tout récepteur illégitime, la
cryptanalyse développe des techniques, qui permet de déchiffrer ce message et d’en tirer le
maximum d’informations.

La sûreté de la communication, ne repose pas seulement sur la transformation du texte,


mais sur d’autres techniques et concepts. Dans ce chapitre, nous nous intéresserons à la partie
essentielle de la cryptographie, en l’occurrence le chiffrement, nous essayerons d’en exposer les
deux types, symétrique et asymétrique, et avant de présenter les deux grands standards de
chacun de ces types, nous présenterons le développement chronologique de la cryptographie ; en
allant de la simple transposition et substitution, à la machine à retors.

1/ Définitions et terminologie:

1.1/ Domaine d’encryptage :

1) Soit A un ensemble fini appelé alphabet, si par exemple A = {0,1}, il s’agira alors de
l’alphabet binaire.

2) Soit M un ensemble de chaîne de symboles de A, M est dit espace de message. Un


élément de M est appelé message en clair (Plaintext message en Anglais).

3) C dénote un ensemble dit de textes chiffrés, il s’agit d’un ensemble de chaînes de


symboles de l’alphabet A et qui diffère de M, un élément de C est un texte chiffré
(Ciphertext en Anglais). [DRM, 09].

1.2/ Transformation d’encryptage et de décryptage :

1) K représente l’ensemble ou l’espace des clés. Chaque élément K de K défini une


bijection de M vers C, c’est la fonction d’encryptage dénotée E.

2) Pour chaque élément de K qui défini une bijection de C vers M, alors cette bijection
est la fonction de décryptage D.

13
Chapitre II Cryptographie

3) Un schéma d’encryptage constitue l’ensemble de fonction d’encryptage {EK1 /K1


et un ensemble correspondant {D K2 / K2

4) K1, et K2 sont définis jusque là comme étant des clés différentes, ce qui constitue un
cryptosystème dit symétrique, mais peuvent être égales, ce qui constituera un
cryptosystème asymétrique.

5) Un schéma d’encryptage est dit cassable si une troisième partie, sans connaissance au
préalable de la paire (K1, K2), puisse retrouver le texte en clair à partir du texte chiffré
[DRM09].

1.3/ Principe de KERCKHOFF :

Selon l’article « la cryptographie militaire » de KERCKOFF, un cryptosystème doit


remplir six conditions qui se suivent [CRS]:

1- « Le système doit être matériellement, sinon mathématiquement, indéchiffrable »

2- « Il faut qu’il n’exige pas le secret, et qu’il puisse sans inconvénient tomber entre les
mains de l’ennemi »

3- « La clef doit pouvoir en être communiquée et retenue sans le secours de notes écrites,
et être changée ou modifiée au gré des correspondants »

4- « Il faut qu’il soit applicable à la correspondance télégraphique »

5- « Il faut qu’il soit portatif, et que son maniement ou son fonctionnement n’exige pas le
concours de plusieurs personnes »

6- « Enfin, il est nécessaire, vu les circonstances qui en commandent l’application, que le


système soit d’un usage facile, ne demandant ni tension d’esprit, ni la connaissance d’une
longue série de règles à observer. »

Ici, nous nous intéressons au principe de la deuxième condition. La reformulation en est


donnée dans [DUM, 07] comme suit:

«La sécurité du chiffre ne doit pas dépendre de ce qui ne peut pas être facilement changé.»

14
Chapitre II Cryptographie

D’une autre manière la sécurité de l’information chiffrée, ne doit pas dépendre du secret
de E (la fonction d’encryptage), qui peut être même dévoilée volontairement, mais plutôt de la
clé K. Si K est connue le texte en clair est facilement retrouvé.

2/ Définitions :

Bruce Schneider stipule que «L’art et la science de garder le secret de message est appelé
cryptographie, pratiquée par des cryptographes. Les cryptanalyses pratiquent la
cryptanalyse, qui est l’art de décrypter des messages chiffrés » [SCH, 96].

Pour A.MENZES «la cryptographie est l’étude des techniques mathématiques liés à
l’aspect sécuritaire de l’information tel que la confidentialité, l’intégrité, authentification …»
[MOV, 96] La cryptographie est reconnue comme « la science du secret » par excellence, elle
a pour rôle la transformation d’un texte simple, ou dit texte en clair (Plaintext), en texte
inintelligible ou texte chiffré (Ciphertext), sauf pour le/les destinataire(s) légitime(s), à qui il a
était destiné et qu’il(s) devrai (en)t pouvoir retrouver le message en clair à partir du message
chiffré grâce à la fonction de déchiffrement D, qui utilise une clé K2 [DRM, 09].

M= DK2 (C) = DK2 (EK1(M)).

Le texte en clair, ou le message, qui peut être un enregistrement audio, une image, ou un
simple fichier texte, que l’on note M, va être, grâce à une fonction d’encryptage E, utilisant une
clé K1, transformé en texte chiffré, que l’on note C [DRM, 09].

C= EK1(M).

Le fait de crypter un message en clair, n’est pas la simple opération qui consiste en sa
transformation en indéchiffrable, mais de le transformer en message inintelligible sauf pour le/les
destinataire(s) illégitime(s)

Le/les destinataire(s) légitime(s) devrai(en)t pouvoir retrouver le message en clair à partir


du message chiffré grâce à la fonction de déchiffrement D, qui utilise une clé K2. [DRM, 09].

M= DK2 (C) = DK2 (EK1(M)).

15
Chapitre II Cryptographie

FIG 2.1: Processus de Cryptage /Décryptage.

La figure représente le processus de cryptage et de décryptage de façon générale.

Cependant, deux cas de figure se présentent, soit que les clés de cryptage et de décryptage
sont identiques, soit qu’elles sont tout à fait différentes. Ceci permet une certaine classification
au sein même de la cryptographie en se basant sur le critère de l’égalité ou non des clés de
cryptage et de décryptage.

3/ Cryptographie symétrique :

Dans un système de cryptage symétrique, la clé de cryptage est la même utilisée pour le
décryptage. Ce genre de cryptosystème, est basé sur des opérations plus ou moins simples de
transposition et de substitution (les opérations de transposition et de substitution seront traitées
plus loin), appliquées au message en clair. La simplicité des opérations rend le processus de
cryptage et de décryptage plus rapide.

L'inconvénient de ce type de cryptosystème, et en cryptographie classique en général,


réside dans la distribution de clé. En effet, dans un système à N utilisateurs on aura souvent
besoin de N(N-1)/2 clés, qui devrons être distribuées entre ces utilisateurs, ce qui deviendra vite
impraticable si le nombre de clé est suffisamment grand [DRM 09].

FIG 2.2 : Cryptosystème Symétrique.

16
Chapitre II Cryptographie

4/ Cryptographie asymétrique :

L'idée essentielle de ce type de cryptosystèmes fut présentée dans un article de Whitfield


Diffie et Martin Hellman en 1976 [SCH ,96], et se distingue par le principe fondamental de
l’utilisation d’une paire de clés (SK, PK), l'une secrète pour le déchiffrement et l'autre publique
pour le chiffrement (chose qui fait que dans la littérature du domaine, ce genre de cryptosystème
est aussi appelé cryptosystème à clé publique).

Une fois la paire de clés prêtes, la clé de cryptage sera distribuée, tandis que celle du
décryptage restera secrète. De ce fait, la sécurité du message est assurée, puisque quiconque peut
envoyer un message, en le cryptant grâce à la clé publique mais seul le possesseur de la clé de
décryptage saura déchiffrer le message. Le Cryptosystème est schématisé dans la figure qui suit
[DRM, 09].

FIG 2.3 : Cryptosystème Asymétrique.

Le fait de connaître la clé publique ne permet pas pour autant de pouvoir extraire la clé
secrète, car ce genre de cryptosystème se base sur des fonctions mathématiques
unidirectionnelles (à sens unique), autrement dit des fonctions mathématiques faciles à calculer
dans un sens mais difficile ci ce n'est impossible dans l'autre sens (du moins avec la force de
calcul actuelle), tel que la factorisation d’un grand nombre [DRM, 09].

Il est vrai que dans ce type de cryptosystème, il n’est plus question de gérer un grand
nombre de clé puisque il n’y aura que N paires dans un cryptosystème à N composantes.

Cependant, ce type de cryptosystème est beaucoup plus gourmant en terme de temps,


vue la complexité des calculs à effectuer [DRM, 09].

Pour cela, en pratique, et en marge de ces deux systèmes, c’est une combinaison des deux
types qui sera utilisée. La philosophie de cryptage asymétrique est utilisée pour échanger une clé
qui, elle, sera par la suite utilisée dans un processus de chiffrement symétrique [DRM, 09].

17
Chapitre II Cryptographie

FIG 2.4 : Cryptosystème Hybride.

5/ La cryptographie classique :

Il est vrai que la cryptographie a pris l'ampleur qu'avec l'avènement de l'informatique et


de l'Internet, mais ses origines sont loin derrière, certains les renvoient à la technique du
"Scytale", nous somme alors au Vième siècle AJ.

" Le Scytale" est une technique qui consistait à enrouler des bandelettes de papyrus sur un
bâtonnet puis d'écrire longitudinalement sur le papyrus, une fois le message fini, les bandelettes
sont déroulées puis envoyées à destination. Arrivées au destinataire, il aurait besoin du diamètre
du bâtonnet initial pour enrouler une seconde fois ces bandelettes sur un bâtonnet de même
diamètre et pouvoir lire enfin le message [DRM, 09].

FIG 2.5 : Technique du Scytale.

Plus tard, d'autres techniques de cryptographie font leur entrée, reposant essentiellement
sur deux principes la substitution et la transposition.

5.1/ Substitution :

La substitution repose sur le remplacement des ‘composants’ du message par d’autres,


même avec l’avènement des ordinateurs. La différence réside dans le type des ‘composants’.
Auparavant, il s’agissait de caractères, mais actuellement il s’agit de bits, donc la taille de
l’alphabet varie de 26 à 2 [DRM, 09].

18
Chapitre II Cryptographie

Il est possible de distinguer avec cette technique entre:

 Chiffre monoalphabetique simple.


 Chiffrement polygraphique.
 Chiffre polyalphabetique.

5.1.1/ Chiffre monoalphabetique simple :

Avec le chiffre monoalphabetique simple, il s’agit de remplacer les caractères d’un


message par d’autres caractères du même alphabet. Parmi les plus connus on citera le chiffre de
César et le chiffre affine, cependant, ce mode de chiffrement est sensible à une analyse de
fréquences [DRM, 09].

5.1.1.1.1/ Analyse de fréquences :

Lorsque la méthode de chiffrement est aussi facile que le fait de substituer une lettre par
une autre, et lorsque l’alphabet de départ et connu, il est possible d’analyser un message chiffré
en exploitant une importante caractéristique du système linguistique utilisé, la fréquence
d’apparition d’une lettre dans les mots de ce système langagier. L’efficacité de l’analyse dépend
de la longueur du message pour pouvoir dégager des fréquences significatives [DRM, 09]

5.1.1.1.2/ Chiffre de César :

Le chiffre de César est un des chiffres monoalphabetiques les plus connus, et le plus
ancien aussi. Il fut utilisé par les armées de l’antiquité pour la transmission de leurs messages
secrets.

Le principe de ce chiffre est le décalage. En effet, il suffit, pour coder un message, de se


mettre d'accord sur une clé, soit k cette clé. La clé n'est autre que le nombre à rajouter au rang de
chaque lettre du message,

Les chiffre de César est un système très rudimentaire, et la confidentialité est nulle, car
quiconque qui mettrait un peu d'effort nécessaire pourrait déchiffrer le message en usant de la
technique de l’analyse des fréquences, puisque le décalage ne touche en rien les propriétés
statistiques de l’alphabet utilisé [DRM, 09].

19
Chapitre II Cryptographie

5.1.1.2/ Chiffrement polygraphique :

Le deuxième mode de chiffrement par substitution est le chiffrement polygraphique.


Dans ce mode ce n’est plus un caractère, mais un groupe de caractères du texte en clair qui va
être remplacé par un autre groupe de caractères [SCH ,96].

Parmi ce type de chiffrement on citera le playfair et Hill.

5.1.1.2.1/ Chiffre Playfair :

Le playfair est un chiffre à substitution polygraphique, inventé par Sir Charles


Wheatstone en 1854 [SCH, 96].

Le chiffre utilise un carré de 5*5 où l'on dispose les lettres de l'alphabet mis à part le « w »
pour la version française (en gardant ce dernier et en fusionnant le « i » et le « j » dans la version
anglaise).

Ce qui donne le tableau suivant [DRM, 09]:

TAB 2.1 : Tableau du chiffre Playfair.

5.1.1.2.2/ Chiffre Hill (1929):

Le chiffre de Hill est aussi un chiffre polygraphique, où la clé consiste en une matrice
d’entier inversible dans Z26.

Sa taille n’est pas fixe, elle grandit en fonction du nombre de caractères à chiffrer.

Ainsi pour chiffrer un message, il faut le subdivisé en un ensemble de diagrammes (sous


groupes de deux lettres), qui seront remplacées par leurs rangs dans l’alphabet, soient Pi, Pi+1
les rangs. Ci et Ci+1 sont les résultats du produit de la matrice-clé et le vecteur de composantes

20
Chapitre II Cryptographie

Pi, Pi+1. Ci et Ci+1 correspondent aux rangs des lettres représentant le diagramme chiffré
[DRM, 09]:

Équation 2.1 : Fonction de chiffrement Chiffre de Hill.

Ainsi chaque digramme Pi Pi+1 sera chiffrer de la sorte :

Ci = Pi *a + Pi+1 * b mod 26.

Ci+1 = Pi *c + Pi+1 * d mod 26.

Pour déchiffrer, le principe reste le même, en utilisant la matrice inverse de la matrice de


chiffrement :

Équation 2.2 : Fonction de déchiffrement Chiffre de Hill.

L’inverse d’une matrice se calcule comme suit:

Équation 2.3 : Inverse d'une matrice.

5.1.1.3/ Chiffrement polyalphabetique :

Le troisième type de chiffre par substitution est le chiffre polyalphabetique, où plus d’un
alphabet est utilisé pour le chiffrement, Il a été inventé par Leon BATTISTA en 1568[SCH,
96].

21
Chapitre II Cryptographie

5.1.1.3.1/ Chiffre de Vigenère :

5.1.1.3.1.1/ Historique :

Blaise de Vigenère (1523-1596), diplomate français, se familiarisa avec les écrits


d'Alberti, Trithème et Porta à Rome, où, âgé de vingt-six ans, il passa deux années en mission
diplomatique. Au début, son intérêt pour la cryptographie était purement pratique et lié à son
activité diplomatique. Une dizaine d'années plus tard, vers 1560, Vigenère considéra qu'il avait
mis de côté assez d'argent pour abandonner sa carrière et se consacrer à l'étude. C'est seulement à
ce moment-là qu'il examina en détail les idées de ses prédécesseurs, tramant grâce à elles un
nouveau chiffre, cohérent et puissant. Bien qu'Alberti, Trithème, Bellaso et Porta en aient fourni
les bases, c'est du nom de Vigenère que ce nouveau chiffre fut baptisé, en l'honneur de l'homme
qui lui donna sa forme finale.

Le chiffre de Vigenère est une amélioration décisive du chiffre de César. Sa force réside
dans l'utilisation non pas d'un, mais de 26 alphabets décalés pour chiffrer un message. On peut
résumer ces décalages avec un carré de Vigenère. Ce chiffre utilise une clef qui définit le
décalage pour chaque lettre du message (A: décalage de 0 cran, B: 1 cran, C: 2 crans, ..., Z: 25
crans).

5.1.1.3.1.2/ Chiffre de Vigenère :

Le chiffre de Vigenère est un système de chiffrement polyalphabétique, c'est un


chiffrement par substitution, mais une même lettre du message clair peut, suivant sa position
dans celui-ci, être remplacée par des lettres différentes, contrairement à un système de
chiffrement monoalphabétique comme le chiffre de César (qu'il utilise cependant comme
composant). Cette méthode résiste ainsi à l'analyse de fréquences, ce qui est un avantage décisif
sur les chiffrements monoalphabétiques. Cependant le chiffre de Vigenère a été cassé par le
major prussien Friedrich Kasiski qui a publié sa méthode en 1863. Il n'offre plus depuis cette
époque aucune sécurité.

Il est nommé ainsi au XIXe siècle en référence au diplomate du XVIe siècle Blaise de
Vigenère, qui le décrit (intégré à un chiffrement plus complexe) dans son traité des chiffres paru

22
Chapitre II Cryptographie

en 1586. On trouve en fait déjà une méthode de chiffrement analogue dans un court traité de
Giovan Battista Bellaso paru en 1533.

5.1.1.3.1.3/ Principe du chiffrement :

Ce chiffrement introduit la notion de clé. Une clé se présente généralement sous la forme
d'un mot ou d'une phrase. Pour pouvoir chiffrer notre texte, à chaque caractère nous utilisons une
lettre de la clé pour effectuer la substitution. Évidemment, plus la clé est longue et variée et
mieux le texte sera chiffré. Il faut savoir qu'il y a eu une période où des passages entiers d'œuvres
littéraires étaient utilisés pour chiffrer les plus grands secrets. Les deux correspondants n'avaient
plus qu'à avoir en leurs mains un exemplaire du même livre pour s'assurer de la bonne
compréhension des messages.

5.1.1.3.1.4/ La table de Vigenère :

L'outil indispensable du chiffrement de Vigenère est la « table de Vigenère »

FIG2.6: Table de Vigenère.

23
Chapitre II Cryptographie

5.1.1.3.1.5/ Chiffrement :

Pour chaque lettre en clair, on sélectionne la colonne correspondante et pour une lettre de
la clé on sélectionne la ligne adéquate, puis au croisement de la ligne et de la colonne on trouve
la lettre chiffrée. La lettre de la clé est à prendre dans l'ordre dans laquelle elle se présente et on
répète la clé en boucle autant que nécessaire.

Clé : MUSIQUE

Texte : j'adore écouter la radio toute la journée

Texte en clair :

J’adore écouter la radio toute la journée

Clé répétée : M USIQU EMUSIQU EM USIQU EMUSI QU EMUSIQU

Colonne O, ligne I : on obtient la lettre W.

Colonne D, ligne S : on obtient la lettre V.

Colonne A, ligne U : on obtient la lettre U.

Colonne J, ligne M : on obtient la lettre V.

Le texte chiffré est alors :

V'UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY.

Si on veut déchiffrer ce texte, on regarde pour chaque lettre de la clé répétée la ligne
correspondante et on y cherche la lettre chiffrée. La première lettre de la colonne que l'on trouve
ainsi est la lettre déchiffrée.

Texte chiffré : V'UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY

Clé répétée : M USIQU EMUSIQU EM USIQU EMUSI QU EMUSIQU

24
Chapitre II Cryptographie

Ligne I, on cherche W: on trouve la colonne O.

Ligne S, on cherche V: on trouve la colonne D.

Ligne U, on cherche U: on trouve la colonne A.

Ligne M, on cherche V: on trouve la colonne J.

5.1.1.3.1.6/ Principe mathématique :

Mathématiquement, on identifie les lettres de l'alphabet aux nombres de 0 à 25 (A=0, B=1 ...).
Les opérations de chiffrement et de déchiffrement sont, pour chaque lettre, celles du chiffre de César. En
désignant la i-ème lettre du texte clair par Texte[i], la i-ème du chiffré par Chiffré[i], et la i-ème lettre de
la clé, répétée suffisamment de fois, par Clés[i], elle se formalise par :

25
Chapitre II Cryptographie

 Chiffré[i] = (Texte[i] + Clés[i]) modulo 26


 Texte[i] = (Chiffré[i] - Clés[i]) modulo 26

Où x modulo 26 désigne le reste de la division entière de x par 26. Pour le chiffrement il


suffit d'effectuer l'addition des deux lettres puis de soustraire 26 si le résultat dépasse 26. Pour le
déchiffrement il suffit d'effectuer la soustraction et d'additionner 26 si le résultat est négatif. Le
déchiffrement est aussi une opération identique à celle du chiffrement pour la clé obtenue par
Clé'[i] = 26 - Clé[i]. Un disque à chiffrer (en), qui utilise une représentation circulaire de
l'alphabet (après Z on a A), permet de réaliser directement cette opération.

Le chiffré d'un texte suffisamment long constitué uniquement de A donne la clé (0 + x = x, soit
A + Clés[i] = Clés[i]).

5.1.1.3.1.7/ Cryptanalyse :

Si l'on connait le nombre de symboles que comporte la clé, il devient possible de


procéder par analyse de fréquences sur chacun des sous-textes déterminés en sélectionnant des
lettres du message clair à intervalle la longueur de la clef (autant de sous-textes que la longueur
de la clef). C'est l'attaque bien connue sur les chiffrements mono-alphabétiques.

Friedrich Kasiski publie en 1863 une méthode efficace pour déterminer la taille de la clef,
le test de Kasiski, en repérant la répétition de certains motifs dans le message chiffré. Charles
Babbage s'est intéressé au chiffrement de Vigenère une dizaine d'année auparavant. Il avait
décrypté dans des cas particuliers des messages chiffrés par la méthode de Vigenère. Il n'a rien
publié à ce sujet, mais on dispose de ses notes. On ne sait pas quelle méthode il a utilisé, il a pu
exploiter des faiblesses de l'utilisation du chiffrement. Certains historiens pensent qu'il a pu
découvrir la méthode de Kasiski, bien qu'il n'en ait pas laissé de trace écrite

5.1.1.3.2/ Chiffre de Vernam (On Time Pad):

Le chiffre de Vernam ou masque jetable, est aussi une technique de cryptographie par
substitution polyalphabetique, il a été inventé par le major Joseph MAUBORGNE et Gilbert
VERNAM, ce fut en 1917 [DRM, 09].

26
Chapitre II Cryptographie

Dans sa forme traditionnelle et la plus ancienne, le masque jetable n'est autre qu'une
longue suite aléatoire de lettres, l'une à côté de l'autre, écrites sur des pages pour former un bloc
de lettres aléatoire [DRM, 09].

Pour chiffrer un texte en claire, l'émetteur doit sommer le rang de chaque lettre du texte
en claire avec le rang d'une lettre du bloc, le résultat modulo 26, cela donnait le rang de la lettre
du message chiffré. L'opération est répétée jusqu'à chiffrer la totalité du message en clair. La
longueur de la clé de chiffrement s’allongeait au fur et à mesure pour atteindre celle du message
en clair [DRM, 09].

Exemple: soit le message en clair "masquejetable".

Soit le morceau de masque la suite : "tbfrgfarfmikl".

TAB 2.2 : Exemple du On Time Pad.

Le message chiffré est alors "gcyibkkw nkwq", le rang du « m » est 13, et celui du « t »
est 20, (13+20) mod 26= 7, ce qui représente le rang de la lettre « g », on procède de la même
manière pour le reste des caractères du texte en clair.

L’idée est retenue pour des systèmes de chiffrement actuels, où la différence avec
l’ancien modèle réside dans l’alphabet. L’alphabet actuellement est binaire A = {0,1} et le
chiffrement d’un message n’est alors qu’une simple opération de XOR entre le message et la clé
choisit aléatoirement dans A. [MOV, 96].

Le point fort de la technique, en plus du fait que la clé soit aléatoire, c’est que cette
dernière est jetable, puisqu'elle n'est utilisée qu'une seule fois, pour un seul message. L'émetteur
chiffrait le message et déchirait les pages qui contenaient le masque, dans la version
traditionnelle et la clé est aléatoire dans la version moderne, via l’utilisation des PRG (Pour
Pseudo Random Generator).

27
Chapitre II Cryptographie

Le masque jetable est aussi considéré comme étant le système de chiffrement le plus sûr,
si l’on respecte le secret de la clé. En effet il est totalement impossible de retrouver le texte en
clair sans la connaissance de la clé [DK, 06], d’autant plus qu’un même caractère du texte en
clair, s’il y en a plusieurs occurrences, chacune sera codée différemment vu que l’aspect
aléatoire de la clé.

Il est vrai qu’il est impossible de mener une attaque par analyse de fréquences, cependant,
le problème qui subsiste, réside dans l’échange de la clé entre les deux parties de manière secrète
et sûre. Ajoutant à cela le fait que la clé, ou le masque, doit avoir la même longueur du message
en claire, ce qui pose un autre problème en matière de stockage des clés lorsque leurs tailles sont
assez grandes [DRM, 09].

5.1.2/ Permutation (transposition):

Jusque là, nous n'avons abordé que des systèmes de cryptage par substitution, ce qui
consiste à remplacer des caractères du message en clair par d'autres caractères du même alphabet
de départ, formant ainsi le message chiffré.

Il y a toujours dans le contexte de la cryptographie classique, des systèmes basés non plus
sur la substitution, mais sur le brouillage du message en clair en changeant l'ordre des lettres qui
le constitue. Ainsi, un message qui contient N lettres aura N! Configurations possible pour le
positionnement de ces lettres, ce qui n'est pas très sûr lorsqu'il s'agit d’un message court, puisque
la possibilité de retrouver le message en clair est très élevée. Il suffit pour ce faire de passer en
revue, dans une recherche exhaustive, toutes les possibilités de positionnement des caractères du
message chiffré [.DRM, 09]

L'idée de l'un de ces systèmes est de disposer les lettres du message en clair dans une
grille rectangulaire puis, d'organiser les lettres du message en clair selon l’ordre des rangs des
caractères d’un mot de passe donné [DRM, 09].

5.1.3/ La machine à Rotors :

Entre deux guerres on a connu une véritable explosion en matière de mécanisation,


plusieurs machines mécaniques et électromécaniques sont mises à disposition. La cryptographie
ne s'en est pas privée, du moment que le besoin en vitesse et sécurité ne cessait de s'accroître
dans la conjoncture de l’époque. Ainsi, plusieurs machines électromécaniques qui servaient à la

28
Chapitre II Cryptographie

fois à crypter et à décrypter sont mises au point. Ces machines sont basées sur les concepts de
rotors et des contacts électriques, pour réaliser une forme de substitution. On cite parmi ces
machines les plus connues Purple (Japon), Nema (Suisse), Sigaba (USA), et Enigma
(Allemagne) [DUM, 07].

Le principe de la machine Enigma est assez simple; elle est formée d'un clavier, d'un
panneau lumineux, une sorte d'écran d'affichage, et de trois rotors disposés selon un certain
ordre. Pour chiffrer un message l'utilisateur n'avait qu'à taper les lettres du message sur le clavier
de la machine, à chaque fois qu'une lettre était tapée, une autre apparaissait sur l'écran [DRM,
09].

En fait, une autre opération se passait en arrière plan, à chaque frappe, le premier rotor
tournait d'un cran, après chaque 26 frappes, c'est le deuxième rotor qui est décalé d'un cran, et
après 676 (26*26) frappes c'est au tour du troisième rotor de tourner. Ainsi la lettre D par
exemple pouvait faire apparaître la première fois la lettre B sur le panneau lumineux, puis C dés
que le rotor tournait [DRM09].

FIG 2.7 : La machine ENIGMA de Base.

Le côté ingénieux, à l'époque, pour cette machine, c'est qu'elle était utilisée tout aussi
bien pour chiffrer que pour déchiffrer. En effet, si A donne C, alors obligatoirement C donnait A,
la simple et unique condition pour pouvoir déchiffrer correctement, est qu'il fallait mettre les
trois rotors dans la position initiale de chiffrement. Cette même position initiale constituait la clé
de chiffrement [DRM, 09].

29
Chapitre II Cryptographie

5.2/ La cryptographie moderne :

Les techniques quand a vu précédemment n'ont presque plus aujourd'hui qu'une importance
historique, les améliorations qu'on leur apporte a permis à d'autres techniques de chiffrement plus
sophistiquées de voir le jour, parmi elles, celles qui sont même considérés comme des standards.

En fait, nous faisons ici allusion aux cryptosystèmes à clé secrète et à clé publique, nous
essayerons de les détailler plus dans ce qui suit :

5.2.1/ Algorithmes de cryptographie symétrique :

Les cryptosystèmes symétriques, ou aussi appelés cryptosystèmes à clé secrète, sont donc les
cryptosystèmes où les deux opérations de chiffrement et de déchiffrement utilisent la même et unique
clé, qu’ils sont utilisés depuis des siècles certes, et même de nos jours vu la simplicité des opérations
et donc la rapidité et la facilité d’implémentation mais le seul inconvenant c’est que sur la sécurité de
cette clé que repose toute la sécurité du système de chiffrement [DRM, 09].

On distingue deux grandes catégories : les cryptosystèmes par blocs et ceux par flots.

5.2.1.1/ Cryptosystème par blocs :

Dans les cryptosystèmes par blocs, l’idée générale est la suivante [DRM, 09] :

1- Découper le message en blocs d’une longueur donnée.

2- Chiffrer le bloc en additionnant ses bits un à un avec ceux de la clé secrète de chiffrement.

3- Déplacer certains bits du bloc.

4- Chiffrer encore une fois.

5- Passer au bloc suivant et revenir à la troisième étape.

Pour ce qui est du chiffrement, on y utilise :

-boxe).

-boxe).

30
Chapitre II Cryptographie

à on parlera de round. Lasuccession des


rounds est dite réseau SP de Shannon.

FIG 2.8 : Exemple de Boite de Substitution et de Permutation.

5.2.1.1.1/ La structure de Fiestel :

Cette structure fut proposée par Fiestel même, en 1973, et sera utilisée par la majorité des
algorithmes de la fin du XXième siècle. La structure repose sur le principe de rendre la structure de
Shannon inversible. Autrement dit, le matériel utilisé pour réaliser les opérations de substitution et de
permutation, qui constituent le réseau de Shannon cité plus haut, et qui seront opérées dans les rondes
pour le chiffrement (ce que nous verrons plus loin dans les rondes du D.E.S), ce même matériel sera
utilisé pour le déchiffrement [DUM, 07].

FIG 2.9 : Structure de Fiestel.

5.2.1.1.2/ D.E.S :

Le DES, (Data Encryption Standard), est un algorithme de chiffrement faisant partie des
chiffrements par produit, car on y combine la transposition à la substitution, avec un certain nombre
d'acrobaties de calcule [DRM, 09].

31
Chapitre II Cryptographie

Les DES a était publié en 1977, par le NBS (National Bureau of Standards), mais tire ses
origines au projet LUCIFIER d'IBM. L'algorithme est de loin le plus utilisé et le plus sûr [DUM, 07].
Il a pu résister pendant des décennies au différentes cryptanalyses, et est souvent recommandé pour
les institutions à caractère fédéral, personnel ou privé, mais pas militaire. Cependant, le DES a
montré une certaine vulnérabilité envers des attaques récentes ce qui a empêché l'ISO (International
Standards Organisation), de le normaliser. Le DES est donc un algorithme de chiffrement symétrique
par blocs. Il manipule des mots de 64 bits à partir d'une clé de 56 bits (les 8 bits restants sont des bits
de parité servant à vérifier la validité de la clé), suivant un nombre d’itérations [DRM, 09].

Nous présentons son fonctionnement comme suit :

5.2.1.1.2.1/ Fonctionnement du DES :

Dans un premier temps, le message est subdivisé en blocs de 64 bits. Chaque bloc subit une
permutation de ses bits selon l’organisation suivante [DRM, 09] :

TAB 2.3 : Permutation des bits d’un bloc dans le D.E.S.

Le bloc est par la suite scindé en deux autres blocs, chacun de 32 bits (Structure de Fiestel):

TAB 2.4 : Bloc scindé dans D.E.S.

On remarque alors, qu'un bloc contient les bits de rangs pairs, l'autre, les bits de rangs
impairs.

On notera les deux blocs G0 (pour Gauche) et D0 (pour Droite).

32
Chapitre II Cryptographie

Une fois cette décomposition faite, la première ronde peut débuter :

 Fonction d'expansion:

Les 32 bits de la partie droite sont étendus à 48 grâce à la fonction d'expansion qui permute les
bits constituant le bloc et en duplique d'autres. Les 48 bits du bloc obtenu, et que l'on nommera D 0',
sont disposer de la façon suivante [DRM, 09] :

TAB 2.5 : Fonction d’expansion.

 Le XOR avec la clé :

Après cette permutation, le bloc subit une opération de ou exclusif avec la première clé K 1,
qui est générée à partir de l'algorithme de cadencement, on obtiendra alors D0" [DRM , 09].

 Les boites de substitution:

Le bloc obtenu suite à l'opération de ou exclusif, est scindé en 8 sous-blocs, chacun de 6 bits,
chaque sous-bloc, noté D"0i où 1 ≤ i ≤ 8, passera par une S-boxe Si. Chaque Si est une boite à
substitution, dans laquelle on dispose de 4 lignes et 16 colonnes, le premier et le dernier bit du
bloc D"ji déterminent la ligne de la fonction de substitution dans la boite Si, les quatre bits restant
déterminent la colonne de la fonction [DRM ,09].

TAB 2.6 : Première boite de substitution du D.E.S.

Si, à titre d'exemple, D01 égale à 010101, le premier et dernier bit, donc 0 et 1, vont donnés ‘01’
donc la première ligne de la S-boxe (ci-dessus la table de la S-boxe 17), les quatre bits restants,
c'est-à-dire’1010’, ce qui donne 10 en décimale, représentant la dixième colonne de la S-boxe.

33
Chapitre II Cryptographie

L'intersection de la première ligne et la dixième colonne donne la valeur ‘6’, autrement dit
‘0110’ en binaire. Donc, la suite de bits initiale „010101’, devient après le passage par la S-boxe
‘0110’.

Les 8 blocs de 6 bits, se transforment en 8 blocs de 4 bits chacun, ils sont regroupés pour former
un bloc de 32 bits.

 Permutation

Ce bloc de 32 bits va maintenant subir une autre permutation suivant la table ci-après [DRM,
09]:

TAB 2.7 : Table de permutation D.E.S.

 Le XOR avec Gi :

Le bloc résultant de l’opération de permutation, est soumis à un ou exclusif, avec le G0, ce qui
donnera le D1. G1 étant le D0 initiale (structure de Fiestel) [DRM, 09].

La ronde est ainsi répéter seize fois. Au bout des ces seize itérations, on obtiendra G16 et D16, qui
seront "recoller", pour former un seul bloc de 64 bits, qui subira une transposition finale. Elle est
décrite dans la table suivante [DRM, 09] :

TAB 2.8 : Table de transposition finale du D.E.S.

34
Chapitre II Cryptographie

5.2.1.1.2.2/ Algorithme de cadencement des clés :

La clé du DES est formée initialement de 64 bits, puis sera réduite à 56 bits en ignorant
un bit sur huit, ces huit bits seront utilisés comme bits de parité [DRM, 09].

TAB 2.9 : Matrice de réduction de la clé.

Le calcul de la clé passera par les quatre étapes suivantes:

1) Permutation selon la table 3.16

2) Les 56 bits de la clé seront scindés en deux sous-clés chacune de 28 bits.

3) Les sous-clés vont subir un décalage d’un ou deux bits, suivant le numéro de la ronde, comme
le montre le tableau 3.17

TAB 2.10: Permutation pour l’algorithme de cadencement des clés dans le D.E.S.

TAB 2.11 : Rotation de l’algorithme de cadencement des clés du D.E.S.

35
Chapitre II Cryptographie

4) Suite à cette opération les deux sous-clés seront recombinées pour former un bloc de 56 bits,
ce même bloc subira encore une réduction puis une permutation de ses bits (permutation
compressive) pour avoir la clé Ki de 48 bits comme le montre le tableau ci-dessous. La clé est
maintenant de longueur égale à la longueur de D'i, résultat de la fonction expansive.

TAB 2.12 : Permutation compressive finale de Ki.

Un schéma récapitulatif du processus D.E.S est donné dans la Figure 3.13 [DRM, 09]

FIG 2. 10: Schéma du D.E.S.

5.2.1.1.3/ A.E.S :

Le NIST (Pour National Institut of Standard and Technology), a lance un appel d'offre
international pour remplacer le D.E.S qui commençait à s'affaiblir devant les nouvelles attaques
malgré les améliorations qui lui ont été apportées (2 D.E.S, et 3 D.E.S), surtout avec le

36
Chapitre II Cryptographie

développement de la puissance de calculs. Parmi les propositions qui ont été soumises, 15 d'entre
elles ont été choisies pour des tests avancés, parmi lesquels:

MARS, RC6, Serpent, Twofish, et Rijendeal, de l'abréviation des noms ces deux
concepteurs Rijmen et Daemen. C'est finalement ce dernier qui fut retenu en 2000 par le NIST
comme standard et prendra le nom de A.E.S (Pour Advanced Encryption Standard) (une
comparaison des résultats des tests avancés est présentée dans [DUM, 07]).

5.2.1.1.3.1/ Fonctionnement du RIJENDEAL :

L'algorithme RIJENDEAL se distingue du D.E.S, par le fait qu'il utilise des blocs et des
clés de taille variables de 128,192 et 256 bits. Cependant, on y maintient le principe de rondes,
même si le nombre de ces dernières varie aussi entre 10 et 14 [DRM, 09].

Une ronde est constituée de quatre opérations:

1. Substitution d’octets dans le tableau d’état.

2. Décalage de rangées dans le tableau d’état.

3. Déplacement de colonnes dans le tableau d’état (sauf à la dernière ronde).

4. Addition d’une "clef de ronde" qui varie à chaque ronde.

 Tableau des états:

Le message et la clé, sont conservés sous forme de tableaux, dont le nombre de colonnes
dépend de leurs longueurs respectives. Chaque colonne est un mot de 32 bits, et chaque cellule
de colonne est composée de 4 bits [DRM, 09].

Nbrm=Lm/32. Équation 2.4 : Nombre de colonnes pour le tableau d'états du message


dans AES.

Nbrk=Lk/32. Équation 2.5 : Nombre de colonnes pour le tableau d'états de la clé dans
AES.

37
Chapitre II Cryptographie

Où Lm et Lk sont respectivement la longueur du message et de la clé.

FIG 2.11 : Les états du message AES.

FIG 2.12 : Les états de la clé AES.

Le message et la clé qui constitue l’entrée de l'algorithme sont sous forme d'une
séquence linéaire prise à partir du tableau d’état où les colonnes sont mises l’une après l’autre
sous forme linéaire, ce qui donne respectivement la représentation suivante [DRM ,09]:

Celle des clés est telle:

 La substitution (ByteSub):

La seul différance du D.E.S c’est que A.E.S utilise qu’une seul boite à substitution, et que
le D.E.S on utilise 8 boite .

 Décalage de rangs (shift row):

Le décalage dans les rangées est lié à la taille du bloc, et il ne sera donc jamais le même
pour des blocs de taille différentes [DRM, 09].

Le décalage se fait de la sorte :

38
Chapitre II Cryptographie

FIG 2.13: Shift Row de AES.

 Déplacement de colonnes (MixColumn):

FIG 2.14 : Mix Colum du AES.

La matrice utilisée dans cette étape est définie par Rijendael, et contiendra donc toujours
ces mêmes valeurs

 Addition de la clé de la ronde (Add Round Key):

A ce stade, il s'agira d'un simple Ou exclusif entre les blocs du message et ceux
correspondants de la clé de la ronde [DRM, 09].

FIG 2.15 : Add RoundKey AES.

 Nombre de rondes:

Le nombre de rondes dans AES dépend de la longueur du message à chiffrer et de celle de


la clé utilisée, il se résumera dans le tableau suivant:

39
Chapitre II Cryptographie

TAB 2.13 : Tableau récapitulatif du nombre de rondes AES.

5.2.1.2/ Cryptosystème par flots :

Dans un cryptosystème par flots, le chiffrement se fait caractère par caractère ou bit par
bit, en combinant la séquence du texte en clair avec la séquence de la clé ; k1, k2, … ,ki. La
sécurité du cryptosystème repose ainsi sur l’aspect aléatoire de la séquence de la clé. Si ki=0
pour tout i, alors le texte chiffré est égale au texte en clair. Par contre, plus la clé est aléatoire,
plus on se rapproche d’un chiffrement du type One Time Pad, qui constitue le chiffrement le plus
sécurisé [DRM, 09].

En pratique, il s’agit d’un générateur pseudo-aléatoire qui sera utilisé pour générer la
séquence de la clé.

5.2.2/ Algorithmes de cryptographie asymétrique :

A la différence des algorithmes de chiffrement symétrique, les algorithmes asymétriques


se distinguent par le fait d’utiliser une paire de clés. L’une des clés est utilisée pour le
chiffrement, souvent il s’agit de la clé publique, elle est mise à la disposition de tous les
utilisateurs du système. La deuxième clé est la clé sécrète qui sert au déchiffrement du message.

L'un des algorithmes asymétriques les plus réputés, on cite l'algorithme dit RSA, dont le
principe sera détaillé dans ce qui suit. Il est considéré comme standard et excellente illustration
du principe des algorithmes asymétriques [DRM, 09].

5.2.2.1/ RSA :

Des initiales de ces concepteurs Ron Riverst Adi, Shamir et Len Adleman, qui l'ont conçu
en 1977, le RSA est un standard des algorithmes de chiffrement asymétriques.

40
Chapitre II Cryptographie

L'algorithme RSA repose sur la difficulté de factoriser un grand nombre en produits de


deux nombres premiers. On trouve dans [MOV, 96], une description de son fonctionnement qui
se résume dans les points suivants.

5.2.2.1.1/ Fonctionnement du RSA:

5.2.2.1.1.1/ Génération des clés:

Soit n = p*q, tel que p et q sont deux nombres premiers générés aléatoirement. On choisit
e, un nombre premier avec (p-1) (q-1). d est un entier choisi entre [2, (p-1)(q-1)[, tel que ed soit
congru à 1 modulo (p-1)(q-1) [DRM ,09].

5.2.2.1.1.2/ Distribution des clés:

Le couple (n,e) constitue la clé publique qui sera communiquée par le récepteur à
l'expéditeur, et le couple (n,d) la clé privée [DRM, 09].

5.2.2.1.1.3/ Le chiffrement du message:

Pour crypter un message en clair, il suffit alors de le représenter sous forme d'un où
plusieurs entiers m compris entre 0 et n-1, puis de calculer C grâce à la clé publique (n,e) tel que
[DRM, 09] :

C=Me mod n Équation 2.6 : Chiffrement RSA.

5.2.2.1.1.4/ Le déchiffrement du message:

Pour déchiffrer le message crypter C, le récepteur de ce dernier, et possédant la clé


privée, doit calculer m comme suit [DRM, 09] :

M=Cd mod n Équation 2.7 : Déchiffrement RSA.

41
Chapitre II Cryptographie

Conclusion

Dans ce chapitre on a détaillé les différentes méthodes de la cryptographie et


précisément la méthode de chiffrement Végenere, sur laquelle qu’on va travailler notre système
de la cryptanalyse a l’aide d’utilisation des AE qui vont être détaillés dans le chapitre suivant.

42
Chapitre III Les algorithmes évolutionnistes

Introduction

Les algorithmes évolutionnistes ou algorithmes évolutionnaires (evolutionary


computation), sont une famille d'algorithmes s'inspirant de la théorie de l'évolution pour résoudre
des problèmes divers. Ils font ainsi évoluer un ensemble de solutions à un problème donné, dans
l'optique de trouver les meilleurs résultats. Ce sont des algorithmes stochastiques, car ils utilisent
itérativement des processus aléatoires.

La grande majorité de ces méthodes sont utilisées pour résoudre des problèmes
d'optimisation, elles sont en cela des métaheuristiques, bien que le cadre général ne soit pas
nécessairement dédié aux algorithmes d'optimisation au sens strict. On les classe également
parmi les méthodes d'intelligence calculatoire.

Un algorithme évolutionnaire utilise itérativement des opérateurs de sélections et de


variation.

i : initialisation, f(X) : évaluation, ? : critère d'arrêt, Se : sélection, Cr : croisement, Mu :


mutation, Re : remplacement, X* : optimum.

Ces algorithmes manipulent des populations de solutions.

L'« arbre de la vie », tel que le représente Charles Darwin dans son ouvrage L'Origine
des espèces, où il présente ses théories sur l'évolution des êtres vivants.

Les algorithmes évolutionnaires s'inspirent de l'évolution des êtres vivants, en considérant


que celle-ci tend à produire des organismes plus adaptés à leur environnement.

Selon la théorie de l'évolution, plusieurs mécanismes sont à l'œuvre pour ce faire.


Schématiquement :

 Les caractéristiques d'un organisme sont en grande partie codées dans ses gènes,
 chaque population d'organismes est composée d'individus tous différents,
 les différences entre individus leur confèrent une adaptation plus ou moins grande à leur
environnement,

44
Chapitre III Les algorithmes évolutionnistes

 les organismes transmettent une partie de leurs caractéristiques à leurs descendants,


 les individus les plus adaptés se reproduisent plus « efficacement », leurs caractéristiques
ont donc tendance à davantage se répandre dans la population.

1/ Terminologie :

Tous les algorithmes évolutionnaires font évoluer un ensemble (une population) de solutions
(les individus). Les individus sont représentés par leur génotype, qui s'exprime sous la forme d'un
phénotype, auxquels on associe une qualité (la fitness). Les algorithmes sont conçus de façon à ce
que plus la fitness d'un individu est élevée, plus il doit avoir de chances de transmettre son
génotype au sein de la population.

À chaque étape de l'algorithme est associé un « opérateur », qui décrit la façon de manipuler
les individus. On regroupe parfois les différents opérateurs sous des termes génériques :

 opérateurs de sélection pour la sélection et le remplacement,


 opérateurs de variation pour la mutation et le croisement.

2/ Algorithme :

Pour ce faire, on utilise l'algorithme général suivant :

Construction et évaluation d'une population initiale ;

Jusqu'à atteindre un critère d'arrêt :

Sélection d'une partie de la population,

Reproduction des individus sélectionnés,

Mutation de la descendance,

Évaluation du degré d'adaptation de chaque individu,

Remplacement de la population initiale par une nouvelle population.

45
Chapitre III Les algorithmes évolutionnistes

Après avoir initialisé une première population d'individus, on itère un nombre fini de fois,
jusqu'à atteindre un critère d'arrêt (par exemple un nombre maximum de générations). La
première étape de sélection permet de séparer les individus qui participeront à la reproduction de
ceux qui n'y participeront pas. Les individus sélectionnés (les parents) se reproduisent (on dit
aussi que l'on effectue des croisements), donnant un ensemble d'enfants partageant une partie des
caractéristiques de leurs ascendants. Ces enfants subissent alors une étape de mutation, qui
modifie aléatoirement leur génotype. Les nouveaux individus sont alors évalués (on met à jour
leur valeur en faisant appel à la fonction objectif). Enfin, on choisit un nombre d'individus
déterminé parmi l'ensemble parents + enfants, pour former la génération suivante.

3/ Généralités :

Les notions d'intensification (ou exploitation), de diversification (ou exploration) et de


processus aléatoires sont au cœur du comportement des opérateurs utilisés par les algorithmes
évolutionnaires.

Il existe toujours au moins un opérateur utilisant un processus aléatoire, au minimum pour la


construction de la population initiale et pour la mutation, mais souvent pour la sélection et la
reproduction également. Selon les méthodes, on met l'accent sur l'un ou l'autre des opérateurs.

Une pratique courante reste de maintenir suffisamment longtemps la « diversité génétique »


de la population, afin d'éviter une convergence prématurée. Quand un algorithme évolutionnaire
utilise une procédure de recherche locale à chaque individu, il est appelé « algorithme
mémétique ».

Dans la terminologie historique, on cherche à maximiser la valeur de la fonction objective, à


l'aide d'opérateurs montrant des comportements d’exploitations ou d’exploration. Ces termes
correspondent aux notions d'intensification et à la diversification, plutôt utilisés dans le domaine
des métaheuristiques, où l'on cherche en général à minimiser la valeur de la fonction objectif.
Néanmoins, ces deux domaines sont tout à fait similaires, les algorithmes évolutionnaires ayant
tendance à être classés parmi les métaheuristiques.

46
Chapitre III Les algorithmes évolutionnistes

4/ Principales familles :

Historiquement, trois grandes familles d'algorithmes ont été développées


indépendamment, entre la moitié des années 1960 et 70. Les premières méthodes furent les
stratégies d'évolution, proposées par I. Rechenberg en 1965, pour résoudre des problèmes
d'optimisations continus. L'année suivante, Fogel, Owens et Walsh conçoivent la programmation
évolutionnaire comme une méthode d'intelligence artificielle pour la conception d'automates à
états finis. Enfin, en 1975, J. H. Holland propose les premiers algorithmes génétiques, pour
l'optimisation combinatoire. La parution en 1989 du livre de D. E. Goldberg sur les algorithmes
génétiques rendra ceux-ci particulièrement populaires.

Par la suite, ces différentes approches ont beaucoup évoluées et se sont rapprochées, pour
finir par êtres regroupées sous le terme générique d'algorithmes évolutionnaires. Aujourd'hui, la
littérature sur le sujet est extrêmement abondante, et ces algorithmes sont considérés comme un
domaine de recherche très prolifique.

5/ Programmation évolutionnaire :

Historiquement, ces algorithmes étaient conçus pour des problèmes d'apprentissage à


partir d'automates à états finis et n'utilisaient que des opérateurs de mutation et de remplacement.
Cependant, aujourd'hui ils ne se limitent plus à une représentation, mais n'utilisent toujours pas
d'opérateur de croisement. Ils diffèrent des stratégies d'évolution en ce qu'ils privilégient des
opérateurs de remplacement stochastiques.

Dans ce chapitre on va baser sur les Algorithmes Génétiques

6/ Algorithmes génétiques :

Le succès des méthodes basées sur les algorithmes génétiques (AG) n’a cesse de grandir
depuis leur apparition, notamment dans le domaine de la recherche opérationnelle et
l’intelligence artificielle. Cependant, leurs applications a certains problèmes comme les
problèmes d’ordonnancement sont limites, par conséquent des extensions ont été développes
[MIC 92] ce qui a donne naissance aux algorithmes évolutionnistes.

47
Chapitre III Les algorithmes évolutionnistes

6.1/ Définition et origine :

Les algorithmes génétiques s’inspirent de l’évolution darwinienne des populations


biologiques, pour définir leurs mécanismes. Les principes de cette évolution sont tels que, dans
une population d’individus ce sont les plus forts, c’est à dire les mieux adaptes au milieu, qui
survivront et pourront donner une descendance ou une bonne progéniture.

C’est en 1950 que les algorithmes génétiques ont vu le jour par des biologistes utilisant
des ordinateurs pour simuler l’évolution des organismes.

Vers 1960, John Holland et son équipe adaptaient ces algorithmes pour la recherche de
solutions a des problèmes d’optimisation [Hol 75], en développant une analogie entre un individu
dans une population et une solution d’un problème dans un ensemble de solutions.

En effet, un individu dans une population est caractérise par son empreinte génétique
autrement dit un ensemble de chromosomes issue de la recombinaison des empreintes de ses
deux parents, obtenue par croisement (en anglais : "Crossover") ou modifiée par mutation. Le
croisement correspond a la reproduction sexuée des individus dans une population en respectant
les phénomènes d’hérédité. Ainsi, lorsque deux individus considères comme assez forts
s’accouplent, ils vont créer un nouvel individu, membre de la génération suivante, qui aura lui-
même de bonnes chances d’être assez fort et de résister a la sélection naturelle, ce qui n’est pas le
cas d’individus plus faibles. La mutation représente les modifications de l’empreinte génétique
qui peuvent se produire sur les individus d’une génération à l’autre et qui évitent la
dégénérescence de la population.

Par analogie, dans un AG, un individu ou une solution est caractérise par une structure de
données qui représente son empreinte génétique. La force d’un individu, encore appelée son
"fitness", peut être mesurée par la valeur de la fonction d’évaluation correspondante. Les
operateurs génétiques de croisement et de mutation agissent sur les structures de données
associées aux individus et permettent de parcourir l’espace des solutions du problème. Le
renouvellement de la population c’est a dire de l’ensemble de solutions courantes, autrement dit
la création d’une nouvelle génération, est obtenu par itération de l’AG qui va créer de nouveaux
individus et en déduire d’autres, c’et équivalent au mécanisme de sélection naturelle.

48
Chapitre III Les algorithmes évolutionnistes

L’exécution d’un tel algorithme doit contenir, a partir d’une population initiale, après de
nombreuses générations, a une population initiale ou les individus sont tous très forts, en d’autres
termes, à un ensemble de meilleures solutions au problème considéré.

En résume, pour mettre en œuvre un AG, il est nécessaire de disposer :

- D’une représentation génétique du problème, c’est a dire d’un codage approprie des
solutions sous la forme de chromosomes.

- D’un moyen de créer la population initiale.

- D’une fonction d’évaluation ou fonction objective pour mesurer la force de chaque


chromosome.

- D’un mode de sélection des chromosomes à reproduire.

- D’operateurs génétiques adaptes au problème.

- De valeurs pour les paramètres qu’utilisent l’algorithme : la taille de la population, la


probabilité d’appliquer tel ou tel operateur.

6.2/ Corps d’un algorithme génétique :

Figure 3.1 : Un algorithme génétique

49
Chapitre III Les algorithmes évolutionnistes

Nous détaillons dans les paragraphes suivants les cinq étapes de l’AG.

6.2.1/ Codage :

Le premier pas dans l’implantation des algorithmes génétiques est de créer une population
d’individus initiaux. Par analogie avec la biologie chaque individu de la population est code par
un chromosome ou un génotype [HOL 75].

Une population est donc un ensemble de chromosomes. Chaque chromosome code un


point de l’espace de recherche. L’efficacité de l’algorithme génétique va donc dépendre du choix
du codage d’un chromosome. Il faut retenir que non seulement le codage dépend de la nature de
la solution mais aussi de la fonction à optimiser.

Dans le cas des AG, c’est le codage binaire qui est le plus utilise. Le chromosome est
alors un vecteur dont les éléments ou les gènes appartiennent à {0,1}. Nous verrons plus loin,
dans le paragraphe 3, que dans l’extension des AG, d’autres types de codage sont utilises.

Etape 0 : Définir un codage du problème

Etape 1 : Créer une population initiale P0 de q individus{X 1, X2, …, Xq}

i := 0 ;

Etape 2 : Evaluation des individus.

Soit F la fonction d’évaluation. Calculer F(Xi) pour chaque individu Xi de Pi

Etape 3 : Sélection

Sélectionner les meilleurs individus (au sens de F) et les grouper par paire.

Etape 4 : Application des operateurs génétiques

1-Croisement : Appliquer l’opération de croisement aux paires sélectionnées

Mut 2-Mutation : Appliquer la mutation aux individus issus du croisement

50
Chapitre III Les algorithmes évolutionnistes

Ranger les nouveaux individus obtenus (de 1 et 2) dans une nouvelle génération Pi+1

Répéter les étapes 2, 3 et 4 jusqu’à l’obtention du niveau de performance souhaite

6.2.2/ Construction de la population initiale :

La population initiale est générée d’une manière aléatoire. Cependant, il est très
recommande de disposer d’un mécanisme permettant de générer une population non homogène
qui servira de base pour les générations futures. Ce choix conditionne la rapidité de la
convergence vers l’optimum. Cela dit, dans le cas ou l’on ne connait rien du problème à résoudre,
il est essentiel que la population initiale soit repartie sur l’espace de recherche.

6.2.3/ Evaluation des individus :

Evaluer un individu ou un chromosome consiste a calculer sa force. Cette évaluation


permettra aux individus les plus forts d’être retenus lors de la sélection. Le but de l’AG est de
maximiser la force des individus de la population. Soit C(x) la valeur du critère a optimiser pour
l’individu x. Si ce critère doit être maximise, il peut servir directement de mesure de la force.
Dans le cas ou l’on désire minimiser ce critère, il est nécessaire de le complémenter pour se
ramener a un cas de maximisation.

Goldberg [GOL 89] propose donc de calculer la force F(x) d’un individu x de la façon suivante :

Ou Cmax peut être un coefficient fixe ou la plus grande valeur observée de C(x) soit dans une
population, soit depuis le début de l’algorithme.

Aucune condition n’est requise pour la fonction objective. Il suffit simplement que cette fonction
retourne des valeurs numériques comparables. La performance de l’AG peut être sensible au
choix de cette fonction.

51
Chapitre III Les algorithmes évolutionnistes

6.2.4/ Sélection :

La sélection consiste à choisir les individus a partir desquels on va créer la génération


suivante. Comme dans la sélection naturelle, un caractère stochastique est introduit dans la
probabilité de sélection qui est souvent basée sur la fonction d’évaluation.

Les individus sélectionnés sont places dans un bassin de reproduction dans lequel auront lieu des
opérations de croisement et de mutation. Plusieurs procédures de sélections existent. On peut
citer la sélection proportionnelle basée sur le principe de la roulette [GOL 89]. Par rang de
classement dans la population [DAV 91], par tournoi et par élitisme.

6.2.4.1/ Sélection de la roulette (Roulette Wheel Sélection) :

C’est la plus classique et la plus utilisée. Nous décrivons son processus ci-dessous :

On affecte a chaque individu xi une probabilité d’apparition p(xi), appelée encore force relative :

On affecte a chaque individu Xi une probabilité d’apparition p(Xi) :

La sélection d’un individu se fait de la manière suivante.

Soit qi= la probabilité d’apparition cumulée d’un individu Xi et soit r un nombre aléatoire
compris entre 0 et 1, l’individu retenu est:

q étant le nombre d’individu dans la population.

52
Chapitre III Les algorithmes évolutionnistes

Ce processus est répète q fois. Avec ce principe, un individu fort peut être sélectionné
plusieurs fois. Par contre un individu faible a moins de chance d’être sélectionné.

6.2.4.2/ Sélection par rang de classement :

Dans ce schéma de sélection, les individus d’une population sont classes dans une liste
selon l’ordre croissant de leur évaluation, ensuite la sélection est proportionnelle a leur rang dans
la liste de la population [DAV 91]. Cette méthode est utilisée pour une fonction d’évaluation dont
les valeurs sont très proches.

Le classement permet de calculer la nouvelle fonction d’évaluation basée sur le rang :

F = MAX - (rang - 1) * (MAX - MIN)/ (q - 1) Avec q est la taille de la population,

1.0 < MAX ≤ 2.0 et MIN = 2 – MAX et rang Î{1, 2, 3, ..., q}

Avec cette nouvelle fonction d’évaluation, les meilleurs ont toujours plus de chance d’être
choisis, mais moins souvent que la roulette et les moins bons individus auront plus de chance de
participer au bassin de reproduction.

6.2.4.3/ Sélection par tournoi :

Sur une population de q chromosomes, on forme q paires de chromosomes. Dans les


paramètres de l’AG, on détermine une probabilité de victoire du plus fort. Cette probabilité
représente la chance qu’a le meilleur chromosome de chaque paire d’être sélectionné. Cette
probabilité doit être grande (entre 70% et 100%). A partir de q paires, on détermine ainsi q
individus pour la reproduction.

6.2.4.4/ Sélection par Elitisme :

A la création d’une nouvelle population, il y a de grandes chances que les meilleurs


chromosomes soient perdus après les opérations de croisement et de mutation. Pour éviter cela,
on utilise la méthode d’élitisme. Elle consiste à copier un ou plusieurs des meilleurs
chromosomes dans la nouvelle génération. Ensuite, on génère le reste de la population selon

53
Chapitre III Les algorithmes évolutionnistes

l’algorithme de reproduction usuel. Cette méthode améliore considérablement les algorithmes


génétiques, car elle permet de ne pas perdre les meilleurs solutions.

6.2.5/ Operateurs génétiques :

Les parents sélectionnés sont introduits dans le bassin de reproduction ou ils seront de
nouveaux choisis aléatoirement pour voir leurs chromosomes subir des transformations par les
operateurs génétiques. Le croisement réalise une opération binaire ou sexuée, et nécessite deux
parents. La mutation est une opération unaire ou asexuée, utilisée pour introduire une faible
variation dans la solution ou changer la direction de la recherche.

6.2.5.1/ Opérateur de croisement :

Le croisement le plus simple fonctionne de la manière suivante. Soient deux


chromosomes X et Y devant subir le croisement, un nombre aléatoire entier p tire entre 1 et m, m
étant le nombre de gènes d’un chromosome. Le nombre p indique la position de coupure dans les
chromosomes :

Figure 3.2 : Croisement '1-point'.

Ce processus est applique a chaque paire de chromosomes sélectionnés avec une certaine
probabilité Pcross. Les paires de chromosomes sont recopiées sans modification dans la génération
suivante avec la probabilité 1-Pcross. Ce croisement est appelé croisement '1-point' car un seul
point de coupe est effectue dans le chromosome. Cette notion est généralisée au croisement 'k-
points' ou k points de coupe sont effectues dans le chromosome, générant k+1 sous chromosomes
qui sont recombinés pour créer deux chromosomes fils. Le premier chromosome fils est alors la
concaténation des sous- chromosomes de numéro pair du premier parent et des sous-

54
Chapitre III Les algorithmes évolutionnistes

chromosomes de numéro impair du deuxième parent. Le deuxième fils est obtenu de manière
symétrique.

Reprenons les deux chromosomes X et Y auxquels on applique un croisement

'2_points' :

Figure 3.3 : Croisement ‘2-points’

6.2.5.2/ Opérateur de mutation :

L’operateur de mutation est applique, avec une certaine probabilité Pmut, aux individus
issus du croisement. La mutation la plus classique consiste à sélectionner aléatoirement un gène
du chromosome d’un individu et a modifier sa valeur.

6.2.6/ Critère d’arrêt :

Le critère d’arrêt peut être arbitraire, par exemple le nombre maximal de générations, ou base sur
le critère de convergence décrit ci-dessous.

6.2.7/ Convergence :

J. Holland a défini des propriétés concernant la convergence des AG en introduisant la


notion de schéma [HOL 75].

Un schéma est un masque qui permet d’explorer les similitudes entre chromosomes. La
mise en œuvre de schémas nécessite d’ajouter a l’alphabet des gènes un symbole supplémentaire
* qui représente indifféremment 0 ou 1. Ainsi, un schéma 1*10 représente les chromosomes 1010

55
Chapitre III Les algorithmes évolutionnistes

et 1110. D’une manière générale, un schéma représentera 2r chromosomes, r étant le nombre de


symboles * présents dans le schéma.

De même, un chromosome de longueur m est représente par 2m schémas. Les schémas


sont caractérisés par leur ordre et leur longueur de définition.

L’ordre d’un schéma est le nombre de 0 et 1 contenu dans ce schéma. C’est aussi la
différence entre la longueur du chromosome et le nombre de symboles *.

La longueur de définition d’un schéma est la distance entre la première et la dernière


position fixe du chromosome ; une position fixe est un gène dont la valeur est différente de *. Par
exemple, pour le schéma ***001*110, la longueur de définition est 10-4=6. Cette notion permet
de calculer la probabilité de survie d’un chromosome après un croisement.

Conclusion

Les AE ont connu un grand succès dans la résolution des problèmes d’optimisation et
notamment les combinatoires qui sont en général NP-complets ou NP-difficiles. Mais on a les
problèmes suivant :

 Nécessite beaucoup de temps de calcul.


 Ils sont le plus souvent difficiles à mettre en œuvre.
 Impossible d'être assuré que la solution trouvée est la meilleure.

Problème de convergence vers un optimum local, si celui si est le plus majoritaire

56
Chapitre IV Implémentation et expérimentation

Introduction

La vie artificielle est un champ de recherche interdisciplinaire alliant informatique et


biologie, mais avec des applications dans des domaines variés tels que l'économie ou
l'archéologie. Son objectif est de créer des systèmes artificiels s'inspirant des systèmes
vivants, soit sous la forme de programmes informatiques, soit sous la forme des robots.

Dans notre chapitre nous avons utilisé les algorithmes génétiques qui s’appuyant sur
des techniques dérivées de la génétique et des mécanismes d’évolution de la nature :
croisement, mutation, sélection pour le décryptage d’un texte chiffré par la méthode de
Vigenère.

Les résultats obtenus seront suivis par une description de son principe de
fonctionnement. Cette description sera accompagnée avec des résultats représentés par des
tableaux et des courbes.

1. Langage utilisé :

Notre projet est réalisé avec le langage de programmation orienté objet JAVA, sous un
environnement de développement Eclipse version 3.6 appelée Helios, sortie en juin 2010, qui
est universel et polyvalent, permettant de créer des projets de développement mettant en
œuvre n'importe quel langage de programmation. Eclipse IDE est principalement écrit en Java
(à l'aide de la bibliothèque graphique SWT, d'IBM), et ce langage, grâce à des bibliothèques
spécifiques, est également utilisé pour écrire des extensions.

1.1 Les avantages de JAVA :

L'un des avantages évidents de ce langage est une bibliothèque d'exécution qui se veut
indépendante de la plateforme: en théorie, il vous est possible d'utiliser le même code pour
Windows 95/98/NT, Solaris UNIX, Macintosh, etc.

Un autre avantage de ce langage de programmation réside dans le fait que la syntaxe


de Java est analogue à celle de C++ ce qui le rend économique et professionnel.

58
Chapitre IV Implémentation et expérimentation

1.2 Les caractéristiques de JAVA :

 Distribué : Java possède une importante bibliothèque de routines


permettant de gérer les protocoles TCP/IP tels que HTTP et FTP. Les applications
Java peuvent charger et accéder à des sur Internet via des URL avec la même facilité
qu'elles accèdent à un fichier local sur le système.
 Fiabilité : Java a été conçue pour que les programmes qui l'utilisent
soient fiables sous différents aspects. Sa conception encourage le programmeur à
traquer préventivement les éventuels problèmes, à lancer des vérifications dynamiques
en cours d'exécution et à éliminer les situations génératrices d'erreurs.
 Orienté objet : Pour rester simples, disons que la conception orientée
objet est une technique de programmation qui se concentre sur les données (les objets)
et sur les interfaces avec ces objets. Pour faire une analogie avec la menuiserie, on
pourrait dire qu'un menuisier "orienté objet " s'intéresse essentiellement à la chaise
l'objet qu'il fabrique et non à sa conception (le "comment"). Par opposition, le
menuisier "non orienté objet " penserait d'abord au "comment ".
 Sécurité : Java a été conçue pour être exploité dans des environnements
serveur et distribués. Dans ce but, la sécurité n’a pas été négligée. Java permet la
construction de systèmes inaltérables et sans virus.
 Simple : Nous avoirs voulu créer un système qui puisse être programmé
simplement sans nécessiter apprentissage ésotérique, et qui tire parti de l'expérience
standard actuelle.

La spécificité d'Eclipse IDE vient du fait de son architecture totalement développée


autour de la notion de plugin (en conformité avec la norme OSGi) : toutes les fonctionnalités
de cet atelier logiciel sont développées en tant que plug-in.

2. Implémentation :

L’implémentation des algorithmes génétiques passe par ces étapes suivantes ;

2.1/ Création de la population initiale : C’est une population de base générée


aléatoirement, elle consiste à générer des textes de la même taille du texte crypté

59
Chapitre IV Implémentation et expérimentation

Remarque : dans cette étapes on doit utiliser une fonction « Random ; Fonction du
choix aléatoire des nombres» qui sert à générer des nombres varient aléatoirement
entre 65 et 91, chacun représente un caractère.

2.2/ Evaluation : C’est une étape de comparaison des individus, donc elle permettra
d’évaluer les textes les plus adaptés lors de la sélection.

2.3/ Sélection : Elle ne garde que les meilleurs individus (Textes). Dans notre application
les meilleurs textes sont choisis par un seuil de sélection.

Remarque : Le seuil est un paramètre qui représente le nombre des mots significatifs
sur le nombre de tous les mots d’un individu (Texte). Cette étape est réalisée par
l’intégration du WordNet pour le calcule des mots afin de déduire des textes
convergeant au texte claire.

WordNet : est une base de données lexicale développée par des linguistes du
laboratoire des sciences cognitives de l’université de Princeton depuis une vingtaine
d’année. Son but est de répertorier, classifier et mettre en relation de diverses
manières le contenu sémantique et lexical de la langue anglaise. Des versions de
WordNet pour d’autres langues existent, mais la version anglaise est cependant la
plus complète à ce jour.

La base de données ainsi que des outils sont disponibles pour téléchargement gratuit.
Par rapport aux outils fournis, un développeur peut aussi accéder la base de données
à partir des interfaces disponibles pour de nombreux langages de programmation.

WordNet est distribué sous une licence libre, permettant de l’utiliser


commercialement ou à des fins de recherche.

La dernière version distribuée en avril 2013 est la 3.1. Cette version est par ailleurs
consultable en ligne [WIK, 13].

2.4/ Application des opérateurs génétiques: Cette phase se compose de deux parties :

 Croisement : consiste à combiner deux individus quelconques (parents) pour


construire deux autres individus (enfants). Donc on coupe en un point deux

60
Chapitre IV Implémentation et expérimentation

individus (parents) (à la même position sur les deux parents) et on échange les
parties situées entre ces points.

Le Taux de Croisement :

 L’opérateur de croisement est appliqué avec une probabilité Pc.


 Plus le taux est élevé plus de nouveaux individus sont introduits.
 En général, Pc varie entre 0.25 et 0.70.

 Mutation : C’est une modification aléatoire d’un paramètre du dispositif


(l’inversion d’un bit dans un chromosome (Un bit dans un caractère d’un
mot)).

Le Taux de Mutation:

 L’opérateur de mutation est appliqué avec une probabilité Pm.


 En général, Pm varie entre 0.01 et 0.1.
 Si ce taux est grand, la recherche devient purement aléatoire.
 S’il est faible la population est moins diversifiée et en plus il y a risque
de stagnation.

2.5/ Critère d’arrêt : Peut être arbitraire par le nombre d’itération ou par la meilleure
solution (Texte déchiffré).

3. Description de l’application :

Notre application se compose de trois étapes principales, la première est le


chiffrement d’un texte par la méthode de Vignère, la deuxième, c’est l’application de
l’algorithme génétique pour le décryptage et la troisième donne les résultats les plus
approchés au texte clair.

61
Chapitre IV Implémentation et expérimentation

Dans les figures qui viennent ci-dessous on va illustrer notre application avec la
description de chaque onglet :

Fig 4.1: L’Onglet chiffrement « Chiffrement de Vignère ».

Cet onglet à pour rôle de charger un fichier texte et le crypter, tel que :

 Le bouton Parcourir fait le chargement du fichier stocké dans un chemin quelconque.


 Le JTextArea en haut : le champ où il va apparaitre le texte sélectionné à chiffré.
 Le JTextField La clé de chiffrement le champ où on va mettre la clé de chiffrement.
 Le bouton Chiffrer fait le chiffrement de texte puis son apparition dans le JTextArea.
 Le JTextArea en bas : le champ où il va apparaitre le texte chiffré.
 Le bouton Initialiser fait l’initialisation de tous les paramètres.
 Le bouton Enregistrer fait l’enregistrement le texte crypté dans un chemin
quelconque.
 Le bouton Suivant assure le passage à l’étape suivante qu’on va l’expliquer.

62
Chapitre IV Implémentation et expérimentation

Fig 4.2: L’Onglet Traitement avec AG « L’utilisation des AG pour le déchiffrement ».

Cet onglet (Fig 4.2) permet de traiter le texte crypté pour le but de déchiffrer le texte à
l’aide de l’algorithme génétique. Alors il est nécessaire d’introduire les paramètres suivants :

 Nombre d’individus (le nombre des textes à générer).


 Nombre d’itérations.
 Seuil de sélection (le nombre des mots significatifs sur le nombre de tous les
mots d’un texte).
 Probabilité de croisement.
 Probabilité de mutation.

 Le bouton Générer les textes fait la génération des textes d’une façon aléatoire de
taille similaire au texte chiffré et les afficher dans le JTextArea à gauche.
 Le bouton Croisement fait la combinaison entre deux textes quelconques (parents)
pour construire deux autres textes (enfants), comme l’indique la figure 4.3 :

63
Chapitre IV Implémentation et expérimentation

Fig 4.3: L’Onglet Traitement avec AG « L’utilisation des AG pour le déchiffrement ».

Dans cet onglet (Fig 4.3) les résultats de croisement sont affichés dans le JTextArea à droite.

64
Chapitre IV Implémentation et expérimentation

Fig 4.4: L’Onglet Résultat optimals «Affichage des texte décrypter optimals au texte claire»

Enfin dans ce dernier onglet (Fig 4.4) les résultats optimaux qui s’approchent au texte
clair sont apparus.

4. Expérimentation des résultats:

Après plusieurs exécutions de notre application, on a eu plusieurs résultats mentionnés


comme suit :

65
Chapitre IV Implémentation et expérimentation

Résultat 1 :

Texte
Population Nombre Seuil de Non-
Trouvés (Sur Significatif
initiale (Texte) d'itération Sélection (%) Significatif
1000)
1000 100 10 395 0 395

1000 100 30 52 0 52

1000 100 40 16 0 16

1000 100 50 7 0 7

1000 100 60 1 0 1

1000 100 70 0 0 0

Tab 4.1: Nombre de texte selectionés lorsque nombre d’itération égale à 100

Dans le premier résultat le nombre d’itération est fixé à 100 et on a fait varier le seuil
de sélection de 10 à 70 cela nous a donné le graphe ci-dessus :

450
400
350
300
250
200 nombre de texte
selectionner
150
100
50
0
10 30 40 50 60 70

Fig 4.5: Représentation graphique des résultats du tableau 4.1

Nous remarquons qu’au seuil de sélection égal à 70, il n’y avait aucun texte trouvé.

Afin d’obtenir de bons résultats on a augmenté le nombre d’itération de 100 à 200


(résultat 2) :

66
Chapitre IV Implémentation et expérimentation

Résultat 2 :

Texte
Population Nombre Seuil de Non-
Trouvés (Sur Significatif
initiale (Texte) d'itération Sélection (%) Significatif
1000)
1000 200 10 402 0 402

1000 200 30 157 0 157

1000 200 40 103 0 103

1000 200 50 8 0 8

1000 200 60 5 0 5

1000 200 70 1 0 1

Tab 4.2: Nombre de texte selectionés lorsque nombre d’itération égale à 200

Dans le deuxième résultat le nombre d’itération est fixé à 200 et toujours avec la
même variation du seuil de sélection, cela nous a donné le graphe ci-dessus :

450
400
350
300
250
200 nombre de texte
selectionner
150
100
50
0
10 30 40 50 60 70

Fig 4.6: Représentation graphique des résultats du tableau 4.2

Nous remarquons qu’au seuil de sélection égal à 70, l’apparition du premier et le seul
texte, mais ce dernier n’était pas significatif.

67
Chapitre IV Implémentation et expérimentation

Ce résultat obtenu n’est pas suffisant pour cela nous avons augmenté une autre fois le
nombre d’itération de 200 à 300 (résultat 3).

Résultat 3 :

Texte
Population Nombre Seuil de Non-
Trouvés (Sur Significatif
initiale (Texte) d'itération Sélection (%) Significatif
1000)
1000 300 10 500 0 500

1000 300 30 500 0 500

1000 300 40 417 0 417

1000 300 50 89 0 89

1000 300 60 36 0 36

1000 300 70 3 1 2

Tab 4.3: Nombre de texte selectionés lorsque nombre d’itération égale à 300

Dans le troisième résultat en gardant la même variation du seuil de sélection et


faisant l’augmentation du nombre d’itération de 200 à 300 ce qui nous a donné le graphe ci-
dessus :

600

500

400

300
nbr de texte trouver
200

100

0
10 30 40 50 60 70

Fig 4.7: Représentation graphique des résultats du tableau 4.3

68
Chapitre IV Implémentation et expérimentation

Nous remarquons qu’au seuil de sélection égal à 70, l’apparition des trois textes dont :
deux textes non significatifs et un seul texte significatif qui se rapproche au texte claire d’une
façon que le nombre des mots trouvés dans le texte significatif est inférieur au nombre des
mots dans le texte claire.

Ce résultat obtenu n’est pas très suffisant pour cela nous avons augmenté une autre
fois le nombre d’itération de 300 à 400 (résultat 4).

Résultat 4 :

Texte
Population Nombre Seuil de Non-
Trouvés (Sur Significatif
initiale (Texte) d'itération Sélection (%) Significatif
1000)
1000 400 10 488 0 488

1000 400 30 500 0 500

1000 400 40 312 0 312

1000 400 50 73 0 73

1000 400 60 6 0 6

1000 400 70 0 0 0

Tab 4.4: Nombre de texte selectionés lorsque nombre d’itération égale à 400

Dans le quatrième résultat en gardant la même variation du seuil de sélection et en


augmentant le nombre d’itérations de 300 à 400 ce qui nous a donné le graphe ci-dessus :

69
Chapitre IV Implémentation et expérimentation

600

500

400

300 nbr de texte


trouver
200

100

0
10 30 40 50 60 70

Fig 4.8: Représentation graphique des résultats du tableau 4.4

Nous remarquons qu’au seuil de sélection égal à 70, il n’avait pas d’apparition des
textes malgré l’augmentation de nombre d’itérations, ce qui nous a conduits à l’augmenter
une autre fois, et par conséquent on a eu le résultat 5.

Résultat 5 :

Texte
Population Nombre Seuil de Non-
Trouvés (Sur Significatif
initiale (Texte) d'itération Sélection (%) Significatif
1000)
1000 500 10 712 0 712

1000 500 30 603 0 603

1000 500 40 509 0 509

1000 500 50 297 0 297

1000 500 60 102 0 102

1000 500 70 24 5 19

Tab 4.5: Nombre de texte selectionés lorsque nombre d’itération égale à 500

Dans le cinquième résultat on a gardé la même variation du seuil de sélection et on a


fait augmenter le nombre d’itérations 400 à 500 ce qui nous a donné le graphe ci-dessus :

70
Chapitre IV Implémentation et expérimentation

800
700
600
500
400
nbr de texte trouver
300
200
100
0
10 30 40 50 60 70

Fig 4.9: Représentation graphique des résultats du tableau 4.5

Nous remarquons qu’au seuil de sélection égal à 70, l’apparition des vingt cinq textes
dont : dix neufs textes non significatifs et cinq textes significatifs.

Ces textes significatifs qui s’approchent au texte clair, sont apparus comme suit :

 Texte 1 => 72 % du texte clair.


 Texte 2 => 70 % du texte clair.
 Texte 3 => 43 % du texte clair.
 Texte 4 => 26 % du texte clair.
 Texte 5 => 19 % du texte clair.

Conclusion

Dans ce dernier chapitre, nous avons démontré l'intérêt des algorithmes génétique pour
le décryptage du chiffrement de Vigenére, avec un temps de décryptage plus court par rapport
aux autres méthodes tel que Brute Force, Clé génétique, Indice de coïncidence, Test de
Kasiski…etc. ce qui nous a permet d’avoir ,jusqu'à maintenant, un résultat optimal à 72%
proche du résultat exacte pendent une durée de 5heurs et 36 minutes.

Nous remarquons que le temps d’exécution augmente selon l’augmentation du nombre


d’itération, prenant compte la configuration de la machine d’exécution (processeur Core2Duo
2.1Ghz et une mémoire vive de capacité 2 Go).

71
Conclusion générale

Dans ce contexte, nous avons pu réaliser un travail consistant à décrypter le système de


chiffrement de Vigenère. Notre outil de base est les algorithmes évolutionnistes.

Le premier obstacle franchis pour la réalisation de ce travail, était la formalisation du


problème de décryptage, de façon à le ramener à un problème d’optimisation combinatoire.

Le deuxième obstacle franchis était l’établissement des éléments de base de l’algorithme


évolutionniste à savoir : codage des chromosomes, définition de la fonction d’évaluation, choix
des operateurs génétiques. Enfin, la génération de texte par l’algorithme évolutionniste en était
l’ultime.

Le présent travail se compose de quatre chapitres dont le premier chapitre, une étude sur
la sécurité informatique a été présentée d’une façon générale.

La deuxième partie a été consacrée à l’étude théorique de la cryptographie et plus


particulièrement au problème de Vigenère qui a été décrit d’une façon plus détaillée.

Dans la troisième partie de notre travail nous nous sommes intéressés tous d’abord aux
algorithmes évolutionnistes où nous avons étudiés leurs principe de fonctionnement en spécifiant
leurs paramètres, pour les utilisés dans la résolution du problème de Vigenère.

Enfin dans la quatrième partie, nous avons réalisé un système de décryptage basé sur les
algorithmes génétique pour résoudre le problème de Vigenère, après cette réalisation nous avons
présenté les résultats de nos exécutions de notre système sous forme des tableaux en associant
chacun son graphe.

Les résultats obtenus démontrent le bon fonctionnement de notre système dont le


décryptage réalisé était proche du texte cible à 72%, cela nous a confirmé la fiabilité de notre
application.

73
Conclusion générale

Ce sujet de mémoire a donc permis d’offrir certaines perspectives d’études sur les
techniques et les méthodes de la cryptographie en améliorant d’autres paramètres sur les
algorithmes génétique.

74
Bibliographie

[A A, 04] : Alban Jacquemin et Adrien. M, 2004. Les firewalls.

[ALX, 04]: Alexandre Viardin, 2004. « Un petite guide pour la sécurité ».

[DAV 91] : L. Davis, The genetic Algorithm Handbook. Ed. New- York: Van Nostrand
Reinhold,ch.17, 1991.

[DID, 02]: Didier Godart, 2002. Sécurité informatique risques stratégies et solutions. 2 Édition
ENI.

[D K, 06]: H. Delfs, H. Knebl, 2006, « Introduction to Cryptography Principles and


Applications » Seconde édition.

[DRM, 09]: DJELLAB Rima,2009, « CRYPTOGRAPHIE : APPROCHE QUANTIQUE »


Mémoire présenté en vue de l’obtention du diplôme de Magister Option : Informatique Industriel.

[DUM, 07]: R. Dumont, 2007. « introduction à la cryptographie et à la sécurité de l’information»

[GOL 89] : Goldberg D.E, Genetic Algorithms in Search, Optimisation& Machine Learning.
Addison-Wesley Publishing Company,Inc,1989.

[GLF, 03]: Georges-Louis et Félix Paoletti, 2003. « Informatique, communication et société».

[HAN, 08]: Hans. P, 2008. « La sécurité informatique ».

[HOL 75] : Holland J.H., Adaptation in Natural and Artificial Systems. Cambridge, Mass: MIT
press, 1975.

[J F, 09]: Jean-François Carpentier, 2009. « La sécurité informatique dans la petite


entreprise ». Édition ENI.

[J M, 04]: Jean-Marc Royer, 2004. « Sécuriser l’information de l’entreprise enjeux, menaces,


prévention et parades ».

76
Bibliographie

[MOV, 96]: Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, Août 1996.
«Handbook of Applied Cryptography ».

[O O, 05]: Olivier. G, Michel. B, Olivier. I, Pascal. L, François. P, et Simon. J, 2005. “Les


virus informatiques ».

[PAS, 96]: Pascal Brunox, 1996. « Introduction à la sécurité des systèmes UNIX connectés
à Internet ».

[SCH, 06]: Schneider Electric, 2006. “Guide des solutions d’automatisme schémathèque ».

[SCH, 96]: B. Schneier, 1996. « CRYPTOGRAPHIE APPLIQUÉE », international thomson


publishing France.

[STP, 03]: Stéphane Gill, 2003. « Type d'attaques ».

[YVS, 02]: Yves, 2002. « La sécurité informatique ».

Liste des liens:

[CRS]: www.cryptosec.org/Les-principes-de-Kerckhoffs.html

[SUP, 02]: http://www.supinfo-projects.com/fr/2002/nat_pat

77

Vous aimerez peut-être aussi