Upload
dinhmien
View
217
Download
0
Embed Size (px)
Citation preview
UNIVERSITE D’ORAN ES-SENIA FACULTE DES SCIENCES
DEPARTEMENT D’INFORMATIQUE
Thème : Approche Cryptographique basée sur les algorithmes génétiques
Pour la sécurité des réseaux Ad Hoc
Présenté par : BENHAOUA MOHAMED KAMEL
Pour l’obtention du diplôme de
Magistère en informatique
Option : « Méthodes et modèle pour la sécurité des SI »
Devant le jury :
Président : Benhamamouch Djilali
Rapporteur : Mustapha kamel Rahmouni
Co-Rapporteur : Bouabdellah Kechar
Examinateur : Hafid Haffaf
Examinateur : Larbi Sekhri
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEURE ET DE LA REC HERCHE
SCIENTIFIQUE
TABLE DES MATIÈRES
Introduction générale 1
Chapitre I 5
Les Réseaux Ad Hoc et sécurité
I.1 Introduction .................................................................................................. ……………5
I.2 Mode de communication dans les réseaux mobiles ......................................... ……………5
I.3 Les classes de réseaux mobiles .................................................................... ……………. 6
I.3.1 Les réseaux avec infrastructure (cellulaires) ........................................ ……………. 6
I.3.2 Les réseaux sans infrastructure (Ad Hoc)….. ...................................... …………… 7
I.3.2.1 Définition d’un réseau ad hoc ..................................................... …………… 7
I.3.2.2 Les caractéristiques des réseaux ad hoc ...................................... …………… 8
I.3.2.3 Les applications des réseaux mobiles ad hoc .............................. …………… 8
I.4 Le routage dans les réseaux ad hoc ............................................................ ……………. 9
I.4.1 Définition du routage ......................................................................... ……………. 9
I.4.2 Difficulté de routage dans les réseaux ad hoc….. ................................ ……………. 9
I.5 Classification des protocoles de routages ..................................................... ……………. 9
I.6 Exigence de sécurité des réseaux sans fil Ad Hoc .................................... ……………..10
I.7 Conclusion ................................................................................................... ……………..14
Chapitre II 15
La cryptographie
II.1 Introduction ............................................................................................... ……………..15
II.2 Définitions : ................................................................................................ ……………..15
II.3 Cryptographie classique .............................................................................. ……………..16
II.3.1 Le code de César ................................................................................. ……………..16
II.3.2 Le carré de Polybe ............................................................................. ……………..16
II.3.3 Chiffrement de Delastelle .................................................................. ……………..17
II.3.4 le chiffre des templiers (ou de PigPen) ............................................... ……………..18
II.3.5 Le Chiffrement par décalage ............................................................ ……………..18
II.3.5.1 Arithmétique modulaire ............................................................. ……………..18
II.3.5.2 Application ................................................................................ ……………..19
II.3.6 Le chiffrement affine ......................................................................... ……………..19
II.3.7 Le chiffrement de Hill........................................................................ …………….. 20
II.3.8 Le chiffrement de Vigenère .............................................................. …………….. 22
II.3.9 Le chiffrement par transposition (par permutation) .......................... …………….. 23
II.3.10 Le chiffrement par substitution ....................................................... …………….. 24
II.3.11 Systèmes à clés jetables .................................................................... ……………...25
II.4 Cryptographie moderne .............................................................................. ……………. 25 II.4.1 Cryptographie symétrique .................................................................. …………….. 26
II.4.1.1 DES ......................................................................................... …………….. 26
II.4.1.2 IDEA ....................................................................................... …………….. 33
II.4.1.3 AES ......................................................................................... …………….. 38
II.4.2 Cryptographie asymétrique ................................................................ …………….. 50
II.4.2.1 RSA .......................................................................................... …………….. 50
II.4.3 Cryptographie Hybride ...................................................................... ……………...53
II.4.3.1 Algorithme du PGP ................................................................... ……………...53
II.4.4 Cryptographie Quantique................................................................... ……………...53
IV.4.4.1 Introduction............................................................................. ……………...53
IV.4.4.2 Bases théoriques ...................................................................... ……………...54
IV.4.4.3 Description du protocole ......................................................... ……………...55
II.4.5 Cryptographie par courbe elliptique .................................................. ……………...55
IV.4.5.1 Addition de deux points ........................................................... ……………...56
IV.4.5.2 Multiplication d'un point par un nombre entier ..................... ……………...57
IV.4.5.3 Echange de clés ...................................................................... ……………...57
IV.4.5.4 Sécurité .................................................................................. ……………...58
IV.4.5.5 Inconvénients .......................................................................... ……………...58
II.5 Le hachage………………………………………………………………………………….. 58
II.6 Le certificat ................................................................................................ ……………...59
II.7 La signature digitale ................................................................................... ……………...60
II.8 Conclusion ................................................................................................. ……………...60
Chapitre III 61
La Cryptographie par Les Algorithmes Génétiques
Partie A : Présentation des algorithmes génétiques
III.1 Introduction .............................................................................................. ………………61
III.2 Algorithmes génétiques ............................................................................. ………………61
II.2.1 Définition et origine .......................................................................... ………………61
II.2.2 Corps d’un algorithme génétique ..................................................... ………………62
II.2.2.1 Codage ..................................................................................... ………………63
II.2.2.2 Construction de la population initiale ..................................... ………………63
II.2.2.3 Evaluation des individus ......................................................... ………………64
II.2.2.4 sélection ................................................................................... ………………64
II.2.2.5 Opérateurs génétiques ............................................................ ………………66
II.2.2.6 Critère d’arrêt .......................................................................... ………………67
III.3 Naissance des algorithmes génétiques ........................................................ ………………67
III.3.1 Les algorithmes génétiques parallèles ............................................. ………………67
III.3.2 Extension vers les problèmes d’optimisation ................................ ………………68
III.3.3 Extension vers les problèmes d’ordonnancement ............................. ………………68
III.3.3.1 Codage .................................................................................... ………………68
III.3.3.2 Opérateurs génétiques adaptés ............................................... ………………69
III.4 Recommandations ...................................................................................... ………………71
III.5 Applications .............................................................................................. ………………72
Partie B : Contribution
III.6 Introduction a la cryptographie par les algorithmes génétiques .............. ………………72
III.7 Description de l’algorithme de chiffrement .............................................. ……………… 73
III.8 Squelette de l’algorithme .......................................................................... ………………74
III.9 L’Algorithme par étapes .......................................................................... ………………74
III.10 les opérateurs classiques et le Bestof2 …………………………………………………….76
III.11 Exemple ……………………………..…………………………………………………….78
Partie C : Application dans les réseaux Ad hoc
III.12 Application pour les réseaux Ad hoc ……………………………………………………81
III.13 Conclusion..…………………………………………………………..……………….… 82
Chapitre IV 83
Implémentation et Evaluation
IV.1 Introduction …………………………………………………………………………………83
IV.2 Evaluation des choix méthodologiques ..................................................... ………………. 83
IV.2.1 Implémentation ...............................................................................………………. 83
IV.2.2 Evaluation .......................................................................................………………. 87
IV.2.2.1 Comparaison du bestof2 avec les opérateurs classiques ...........………………. 87
IV.2.2.2 Comparaison entre les méthodes Roulette et par Trie...............………………. 88
IV.3 Evaluation par comparaison avec d’autres méthodes ................................. ………………. 89
IV.3.1 Implémentation ...............................................................................………………. 89
IV.3.1.1 Implémentation de l’IDEA .......................................................………………. 89
IV.3.1.2 Implémentation de l’RSA .........................................................………………. 94
IV.3.1.3 Implémentation de PGP ............................................................………………. 97
IV.3.1.4 Implémentation de CAG ...........................................................………………. 99
IV.3.2 Evaluation .......................................................................................……………….105
IV.3.2.1 Evaluation par comparaison avec d’autres méthodes entre les algorithmes IDEA ,
RSA , PGP et CAG ................................................................................……………….105
IV.4 Conclusion ............................................................................................... ……………….109
Conclusion générale 110
Bibliographie
TABLE DES FIGURES
Titre Page
Figure I.1 : Les différents modes de communication .................................................................. ………………… 5
Figure I.2 : Les réseaux cellulaires (GSM)............................................................................... …………………. 6
Figure I.3 : Un réseau ad hoc .................................................................................................. …………………. 7
Figure I.4 : Le changement de la topologie des réseaux ad hoc ........................................... …………………. 7
Figure II.1 : Le chiffrement de Pig Pen …………………………………………………………………………….18
Figure II.2 : Le cylindre de scytale .......................................................................................... ………………….23
Figure II.3 : Fréquences des lettres en français ...................................................................... …………………24
Figure II.4 : Principe de chiffrement symétrique .................................................................. ………………….26
Figure II.5 : La diversification des clés en DES ………………………………………………………………….. 28
Figure II.6 : Enchaînement des opérations de chiffrement dans le système DES ..................... ………………….30
Figure II.7 : Description de l’opération Dn=Gn-1 ⊕ F(Dn-1,Kn)........................................... ………………….32
Figure II.8 : fonctionnement de l’algorithme d’IDEA .......................................................... ………………….34
Figure II.9 : L’organigramme d’une itération ........................................................................ ………………….35
Figure II.10 : Détail de transformation .................................................................................. ………………….36
Figure II.11 : Schéma bloc d’AES ......................................................................................... ………………….39
Figure II.12 : Forme du texte clair et la clef pour AES-128 .................................................. ………………….40
Figure II.13 : L’opération Mix columns pour AES version 128 ........................................... ………………….45
Figure II.14 : Matrice utilisée dans l’extension des clés …………………………………………………………. 46
Figure II.15 : Principe de chiffrement symétrique .................................................................... ………………….50
Figure II.16 : Principe de RSA ................................................................................................. ………………….51
Figure II.17 : exemple de courbe elliptique .............................................................................. ………………….56
Figure III.1 Un algorithme génétique ....................................................................................... ………………….63
Figure III.2 : Croisement ‘1-point’ ........................................................................................... ………………….66
Figure III.3 : Croisement ‘2-point’ ........................................................................................... ………………….67
Figure III.4 : Croisement MPX .................................................................................................. ………………….70
Figure III.5 : Croisement OX................................................................................................... ………………….70
Figure III.6 : Mutation d’un individu ........................................................................................ ………………….71
Figure III.7 : La représentation du message à chiffrer................................................................... ………………….73
Figure III.8 : Les étapes de chiffrement ....................................................................................... ………………….76
Figure III.9 : Le croisement en 1 point ..................................................................................... ………………….77
Figure III.10 : Le croisement MPX ........................................................................................... ………………….77
Figure III.11 : Ségrégation des gènes........................................................................................ ………………….78
Figure III.12 : Croisement bestof2.............................................................................................. ………………….78
Figure III.13 : Application symétrique...................................................................................... ………………….81
Figure III.14 : Application hybryde ............................................................................................ ………………….82
Figure IV.1 : Représentation graphique de la convergence vers la meilleure solution ............ ………………….87
Figure IV.2 : Comparaison des temps d’exécutions des méthodes de croisement sur différentes tailles de fichiers
…………………………………………………………………………………………………………………..… 88
Figure IV.3 : Comparaison des temps d’exécution des méthodes de sélection sur différentes tailles de fichiers
…………………………………………………………………………………………………………………..… 88
Figure IV.4 : Interface d’IDEA dans le cas du cryptage d’un texte (4 k.o) ................................. ………………….92
Figure IV.5 : Interface d’IDEA dans le cas du cryptage d’une image (4 k.o) .............................. ………………….92
Figure IV.6 : Interface d’RSA dans le cas du cryptage d’un texte (4 k.o)…………………………………………. 96
Figure IV.7 : Interface PGP dans le cas du cryptage d’un texte (4 k.o)……………………………………………. 98
Figure IV.8 : Interface des fichiers CAG ……………………………………………………………………….. 103
Figure IV.9 : Interface des paramètres de l’AG de CAG ……………………………………………………….. 104
Figure IV.10 : Représentation graphique du délai de cryptage/décryptage [4k.o…. 20k.o] …………………… 107
Figure IV.11 : Représentation graphique du délai de cryptage/décryptage [20k.o…. 100k.o] …….......................108
Table II.1 : Le chiffrement de César ......................................................................................... …………………16
Table II.2 : La grille de Polybe .................................................................................................. …………………16
Table II.3 : Un chiffrement de Delastelle ............................................................................... …………………17
Table II.4 : Un chiffrement par décalage................................................................................... …………………19
Table II.5 : Un chiffrement affine ............................................................................................. …………………20
Table II.6 : Un déchiffrement affine ......................................................................................... …………………20
Table II.7 : Un chiffrement de Hill ........................................................................................... …………………21
Table II.8 : Un déchiffrement de Hill ........................................................................................ …………………22
Table II.9 : Un chiffrement de Vigenère ................................................................................... …………………22
Table II.10 : Les permutations CP1 et CP2 .............................................................................. …………………27
Table II.11 : La table des décalages à gauche LS ...................................................................... …………………28
Table II.12 :La permutation initiale: PI et son inverse PI-1
........................................................ …………………31
Table II.13 : les S-Boxes ........................................................................................................... …………………31
Table II.14 : la table d’expansion E et la permutation P .............................................................. …………………32
Table II.15: Forme de matrices de chaque version d’AES ........................................................ …………………40
Table II.16 : Représentation Hexadécimale .............................................................................. …………………40
Table II.17 : S-Box.................................................................................................................... …………………44
Table II.18: Inverse S-Box ....................................................................................................... …………………49
Table II.19 : Difficulté du calcul de logarithme discret ............................................................ …………………55
Table IV.1 : Résultat obtenu avec l’IDEA………………………………………………………………………. 93
Table IV.2 : Résultats obtenu avec l’RSA………………………………………………………………………….. 97
Table IV.3 : Résultat obtenu avec le PGP……………………………………………………………………….... 99
Table IV.4 : Résultat obtenu avec CAG………………………………………………………………………… 105
Table IV.5 : Délai de cryptage/décryptage [4k.o…. 20k.o] …………………………………………………… 106
Table IV.6 : Délai de cryptage/décryptage [20k.o…. 100k.o]…………………………………………………… 107
Introduction générale
1
Introduction générale
L’évolution dans le domaine de la communication sans fil et l’informatique
mobile gagne de plus en plus de popularité. Les unités mobiles deviennent de plus en plus
fréquente (PDA, laptops, handsets), ceci a permis l’apparition de réseaux locaux sans fil
dans les entreprises et même chez les particuliers.
La communication au sein de l’environnement mobile se base essentiellement sur la
transmission radio. Cet environnement mobile engendre de nouvelles caractéristiques
telles que : des ressources modestes, et des sources d’énergie limitées.
Les réseaux mobiles sans fil, peuvent être classés en deux grandes classes : les réseaux
avec infrastructure qui utilisent généralement le modèle de la communication cellulaire,
et les réseaux sans infrastructure appelés réseaux ad hoc. Plusieurs systèmes utilisent
déjà le modèle cellulaire et connaissent une très forte expansion à l'heure actuelle (ex : les
réseaux GSM) mais requièrent une importante infrastructure logistique et matérielle fixe.
La contrepartie des réseaux cellulaires sont les réseaux mobiles ad hoc. Un réseau ad
hoc peut être défini comme une collection d'entités mobiles interconnectées par une
technologie sans fil formant un réseau temporaire sans l'aide de toute administration ou
de tout support fixe. Aucune supposition ou limitation n'est faite sur la taille du réseau
cela veut dire qu'il est possible que le réseau ait une taille très importante.
Vu les caractéristiques et les limitations qu’engendre un réseau Ad hoc, plusieurs
problèmes ont été posés pour ce type de réseaux problème de routage et les besoins en
confidentialité a même d’influer sur le problème des sources d’énergies (taille des
batteries) .
Le présent travail aborde le domaine qui permet d'échanger des données tout en
préservant leur confidentialité c’est le domaine de la cryptographie.
Introduction générale
2
La cryptographie vient du grec kryptos qui veut dire cacher et de graphein qui signifie
écrire, étant donné qu'une lettre ou une communication peuvent être interceptées par un
individu mal intentionné, il est prudent de rendre le message incompréhensible.
La cryptographie est donc un ensemble de techniques permettant de protéger une
communication au moyen d'un code secret.
En dépit de son antiquité et de son importante évolution, de la cryptographie
classique (code de César et autres) à la cryptographie moderne (IDEA, AES, RSA,
PGP). En fait, les meilleurs systèmes de chiffrement sont comptés sur les bouts des
doigts, nous pouvons en citer quelques-uns :
■ DES, système de chiffrement symétrique, il chiffre par blocs en utilisant une
clé secrète ayant pour taille 64 bits. Cette taille si petite a favorisé son attaque
par recherche exhaustive.
■ IDEA, il est aussi un système de chiffrement symétrique (par blocs), sauf qu'il
dispose d'une clé secrète de taille plus grande soit ,128 bits .Il est aussi sujet
d’attaques.
■ AES, remplace actuellement le DES, grâce à la taille comparativement longue
de sa clé, allant jusqu'à 256 bits, il résiste toujours à la cryptanalyse
■ RSA, système de chiffrement asymétrique, basé sur l'arithmétique modulaire
et notamment sur le problème de factorisation. Il est actuellement loin d'être
sujet d'attaque ou de cryptanalyse. Mais l'avenir est incertain vu l'évolution
extrêmement rapide de la science et la technologie.
■ PGP, système hybride, combinant à la fois des algorithmes symétriques et
asymétriques. Il est pour le moment, le système le plus dominant.
Parallèlement, les domaines d’application des algorithmes génétiques n’ont cessé de
s’élargir grâce à leur grande efficacité (performance, rapidité,…).Leur succès a atteint
son apogée dans le domaine de l’intelligence artificielle et recherche opérationnelle pour
résoudre des problèmes d’optimisation et notamment les combinatoires qui sont en
général NP-complets ou NP-difficiles.. Certes, concevoir et réaliser un bon algorithme
génétique de chiffrement pour sécuriser des communications en mode ad hoc tout en
prenant en compte leurs limitations ne peut qu’être couronné de succès. C’est le but de
notre travail.
Introduction générale
3
La méthode génétique 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 opérateurs 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 commencer, nous avons donné au problème de chiffrement une nouvelle
formalisation permettant de le ramener à un problème d'optimisation combinatoire.
En fait, nous avons représenté le message à chiffrer par un ensemble de listes
disjointes. Chaque liste est composée par les différentes positions dans le message du
caractère correspondant. L'objectif principal est de modifier au maximum les
fréquences d'apparition et les positions des caractères dans le message.
Notre étude consiste à répondre à la question suivante :
« Comment peut on sécuriser des communication dans les réseaux ad hoc tout en prenant
en compte la contrainte de consommation d’énergie»
Dans le cadre de notre travail, nous allons Exploiter la force des algorithmes génétiques
qui est basée sur l’aléatoire. Pour réaliser un algorithme cryptographique et sécuriser des
communications dans les réseaux ad hoc en produisant des clés de session jetables, tout
en définissant soigneusement dans chaque opérateur génétique (sélection , croisement ) la
méthode la plus adaptée au problèmes des réseaux ad hoc par une évaluation intra
proposition . L’opérateur de croisement est l’un des opérateurs les plus délicats pour les
algorithmes génétique. Nous montrons ainsi les limitations des opérateurs de croisement
classiques et nous présentons un nouvel opérateur de croisement inspiré de la génétique
moderne nommé « Bestof2 » qui est capable de générer toujours des solutions plus
adaptées a notre problème et d’une meilleure façon dans l’espace de recherche, dont le
but est de converger rapidement vers la solution optimale .Dans un deuxième temps nous
donnons une comparaison a base de simulation de l’approche génétique avec les autres
algorithmes cryptographiques les plus dominant actuellement (IDEA,RSA,PGP ) par une
Introduction générale
4
évaluation extra proposition pour conclure la position de l’approche para port au
contraintes des réseaux ad hoc
Organisation du mémoire :
Dans un premier temps, nous présentons dans le chapitre I les environnements sans fil, et
principalement, les réseaux mobiles ad hoc et sécurité. Dans un deuxième temps nous
donnons dans le chapitre II un état de l’art des quelques solutions proposées dans le
domaine de la cryptographie. Dans un troisième temps dans le chapitre III aborder une
introduction aux algorithmes génétiques et présentation de l’algorithme cryptographique
a base des algorithmes génétiques. Finalement, nous donnons une évaluation intra
proposition (choix méthodologiques) et une évaluation extra proposition (évaluation de
l’approche génétique avec d’autres algorithmes cryptographiques IDEA, RSA, PGP).
Nous achevons notre mémoire par une conclusion générale et présentons les différentes
perspectives.
Chapitre I
LES RESEAUX AD HOC
I.1 Introduction
I.2 Mode de communication dans les réseaux mobiles
I.3 Les classes de réseaux mobiles
I.3.1 Les réseaux avec infrastructures (cellulaires)
I.3.2 Les réseaux sans infrastructures (réseaux Ad Hoc)
I.3.2.1 Définition d’un réseau Ad Hoc
I.3.2.2 Les caractéristiques des réseaux Ad hoc
I.3.2.3 Les applications des réseaux mobiles Ad Hoc
I.4 Le routage dans les réseaux ad hoc
I.4.1 Définition du routage
I.4.2 Difficulté de routage dans les réseaux Ad Hoc
I.5 Classification des protocoles de routage
I.6 Exigence de sécurité des réseaux sans fil Ad Hoc
I.7Conclusion
Chapitre I : Les Réseaux Ad Hoc
5
I.1 Introduction
Les réseaux sans fil (Wireless LAN ou WLAN ou IEEE 802.11), offrent aujourd'hui de
nouvelles perspectives dans le domaine des télécommunications. C’est un système de
transmission des données conçu pour assurer une liaison indépendante de l'emplacement des
périphériques informatiques qui composent le réseau. Les réseaux sans fil sont principalement
employés lorsqu'il s'agit d'interconnecter des utilisateurs nomades (par exemple des portables)
entre eux.
Ce système ne pose aucune restriction sur la localisation des usagers. Il utilise des ondes radio
plutôt qu'une infrastructure câblée pour communiquer. Ce nouveau mode de communication
engendrent de nouvelles caractéristiques, propres à l’environnement mobile : un débit de
communication et des ressources modestes, et des sources d’énergie limitées.
Les réseaux mobiles peuvent être classés en deux grandes classes :
• Réseau sans fil avec infrastructure (comme le GSM).
• Réseau sans fil sans infrastructure (comme les réseau ad hoc).
Cette deuxième classe de réseaux sans fil constitue la base de notre sujet d’étude, et c’est ce
que l’on va développer dans ce présent chapitre.
Dans le but de bien comprendre les stratégies et les approches utilisées dans les réseaux ad
hoc. Il est donc utile de décrire les réseaux ad hoc et leurs principales caractéristiques. [1]
I.2 Modes de communication dans les réseaux mobile
La communication dans les réseaux mobiles Ad Hoc utilise plusieurs modes dont : la
communication « point à point » ou « Unicast », la communication « multipoint » ou «
Multicast », et la diffusion « Brodcast ». Ces trois modes de communication peuvent être
schématisés par la Figure I.1.
Figure I.1 : Les différents modes de communication
Chapitre I : Les Réseaux Ad Hoc
6
I.3 Les classes de réseaux mobiles
Dans l’espace des réseaux mobiles, nous pouvons distinguer deux classes de réseaux, à savoir,
les réseaux mobiles basés sur une infrastructure de communication (modèle cellulaire), et les
réseaux mobiles sans infrastructure (modèle ad hoc).
I.3.1 Les réseaux avec infrastructure (cellulaires)
Dans ce mode, le réseau sans fil est composé de deux ensembles d'entités distinctes : les «
sites fixes » d'un réseau de communication filaire classique, et les « sites mobiles ». Certains
sites fixes, appelés stations de bases (SB) sont munis d'une interface de communication sans
fil pour la communication directe avec les sites ou les unités mobiles (UM) localisés dans une
zone géographique limitée, appelée cellule.
Chaque station de base délimite une cellule à partir de laquelle des unités mobiles peuvent
émettre et recevoir des messages. Alors que les sites fixes sont interconnectés entre eux à
travers un réseau de communication filaire, généralement fiable et d'un débit élevé. Les
liaisons sans fil ont une bande passante limitée qui réduit sévèrement le volume des
informations échangées.
Dans ce modèle, une unité mobile ne peut être, à un instant donné, directement connectée qu'à
une seule station de base. Elle peut communiquer avec les autres sites à travers la station à
laquelle elle est directement rattachée. L'autonomie réduite de sa source d'énergie, lui
occasionne de fréquentes déconnexions du réseau; sa reconnexion peut alors se faire dans un
environnement nouveau voire dans une nouvelle localisation [1].
Figure I.2 : Le réseau cellulaire (GSM)
Chapitre I : Les Réseaux Ad Hoc
7
A fin d’agrandir la surface de couverture, plusieurs points d'accès peuvent être installés pour
un même ‘groupe de travail’. Dans le cas d'utilisateurs mobiles, il y'a possibilité de passer
d'un point d'accès à un autre sans perte de lien réseau (comme pour un réseau GSM
schématiser dans la Figure I.2). Cette fonctionnalité s'appelle "Roaming".
I.3.2 Les réseaux sans infrastructure (AD HOC)
I.3.2.1 Définition d’un réseau ad hoc
Un réseau mobile Ad Hoc (Figure I.3), appelé généralement MANET (MobileAd hoc
NETwork), consiste en une grande population, relativement dense, d'unités mobiles qui se
déplacent dans un territoire quelconque. Le seul moyen de communication est l'utilisation «
des ondes radio » qui se propagent entre les différents noeuds mobiles, sans l'aide d'une
infrastructure préexistante ou administration centralisée.
Figure I.3 : un réseau Ad Hoc
La topologie du réseau peut changer à tout moment, elle est donc dynamique et imprévisible
ce qui fait que la déconnexion des unités soit très fréquente (Figure I.4).
Figure I.4 : Le changement de la topologie des réseaux Ad Hoc
Chapitre I : Les Réseaux Ad Hoc
8
I.3.2.2 Les caractéristiques des réseaux Ad Hoc
Les réseaux sans fil ad hoc se caractérisent principalement par :
• Bande passante limitée : Une des caractéristiques primordiales des réseaux basés sur la
communication sans fil est l'utilisation d'un médium de communication partagé (ondes radio).
Ce partage fait que la bande passante réservée à un hôte soit modeste.
• Contraintes d'énergie : Les hôtes mobiles sont alimentés par des sources d'énergie autonomes
comme les batteries ou les autres sources consommables. Le paramètre d'énergie doit être pris
en considération dans tout contrôle fait par le système.
• Sécurité physique limitée : Les réseaux mobiles Ad Hoc sont plus touchés par le paramètre de
sécurité que les réseaux filaires classiques. Cela se justifie par les contraintes et limitations
physiques qui font que le contrôle des données transférées doit être minimisé.
• Erreur de transmission : Les erreurs de transmission radio sont plus fréquentes que dans les
réseaux filaires.
• Interférences : Les liens radios ne sont pas isolés, deux transmissions simultanées sur une
même fréquence ou, utilisant des fréquences proches peuvent interférer [1].
• Absence d'infrastructure : Les réseaux ad hoc se distinguent des autres réseaux mobiles par la
propriété d'absence d'infrastructures préexistante et de tout genre d'administration centralisée.
Les hôtes mobiles sont responsables d'établir et de maintenir la connectivité du réseau d'une
manière continue.
• Topologie dynamique : Les unités mobiles du réseau se déplacent d'une façon libre et
arbitraire. Par conséquent, la topologie du réseau peut changer à des instants imprévisibles,
d'une manière rapide et aléatoire.
I.3.2.3 Les applications des réseaux mobiles Ad Hoc :
Les applications ayant recours aux réseaux ad hoc couvrent un très large spectre, incluant les
applications militaires et de tactique, l’enseignement à distance, les opérations de
secours…etc.
D'une façon générale, les réseaux ad hoc sont utilisés dans toutes applications où le
déploiement d'une infrastructure réseau filaire est trop contraignant, soit parce qu’il est
difficile le mettre en place, soit parce que la durée d'exploitation du réseau ne justifie pas de
câblage à demeure [2].
Chapitre I : Les Réseaux Ad Hoc
9
I.4 Le routage dans les réseaux ad hoc
Pour mieux comprendre les stratégies et les approches utilisées dans la conception des
protocoles permettant aux réseaux ad hoc de se relier à Internet, nous allons, tout d’abord,
parler du routage à l’intérieur des réseaux ad hoc. Dans ce qui suit nous allons présenter les
principes des protocoles de routages inter ad hoc les plus connus.
I.4.1 Définition du routage
Le routage est une méthode à travers laquelle on fait transiter une information donnée depuis
un certain émetteur vers un destinataire bien précis. Le problème du routage ne se résume pas
seulement à trouver un chemin entre les deux noeuds du réseau, mais encore à trouver un
acheminement optimal et de qualité des paquets de données.
I.4.2 Difficulté de routage dans les réseaux Ad Hoc
Afin de palier aux problèmes dues aux différents mouvements des nœuds mobiles qui
pourront modifier le trafic, un réseau ad hoc doit donc pouvoir s’ordonnancer
automatiquement de tel sorte à être déployable rapidement, et de pouvoir s’accommoder aux
conditions de propagation. Dans le cas où le noeud destinataire se trouve dans la portée du
noeud émetteur nous n’aurons pas besoin de routage proprement dit, malheureusement ce
n’est pas toujours le cas, en effet, chaque nœud sera donc susceptible de jouer un rôle dans
l’acheminement du paquet vers sa destination finale. Ce qui nous pousse à dire qu’il se peut
que plusieurs noeuds puisse participer au routage. Nous parlons alors d’un environnement dit
"multihop"3. Autrement dit, chaque noeud participera au processus de routage du paquet.
Vu les modestes capacités de calcul et de sauvegarde dont est caractérisé un réseau ad hoc, et
la taille du réseau, il est très important de signaler que les méthodes et les approches utilisés
pour l’acheminement des paquets dans le réseau sont évidemment différentes et plus
complexes à mettre en oeuvre par rapport à celles utilisées dans les réseaux classiques
(statique). Ce qui nous pousse à dire que la gestion du routage dans un environnement ad hoc
diffère de loin à celle utilisée dans les réseaux filaires. [2]
I.5 Classification des protocoles de routage
Le principal but de toute stratégie de routage est de mettre en oeuvre une bonne gestion
d’acheminement qui sot robuste et efficace. D’une manière générale, toute stratégie de
routage repose sur des méthodes et des mécanismes que l’on peu regrouper en trois grandes
classes :
a. Les protocoles de routage proactifs.
b. les protocoles de routage réactifs.
Chapitre I : Les Réseaux Ad Hoc
10
c. les protocoles de routage hybrides.
I.6 Exigences de Sécurité des Réseaux sans fil Ad Hoc [16]
Contraintes :
Déterminer les exigences de sécurité d'un système nécessite d'appréhender l'ensemble des
contraintes qui pèsent sur ce système. Cette étape permet par la suite de quantifier les critères
de sécurité. Les spécificités des réseaux sans fil ad hoc sont multiples. On peut les répartir en
six grands thèmes traitant des caractéristiques des nœuds, de la gestion de l'énergie, des
caractéristiques du réseau, des technologies sans fil sous jacentes, de la mobilité et de la
configuration.
Caractéristiques des Nœuds :
• Les participants peuvent posséder des systèmes hétérogènes qui doivent s'interconnecter
facilement.
• Certains éléments peuvent avoir de faibles capacités de calculs.
Gestion de l'Energie :
• L'énergie doit être conservée au maximum pour éviter d'incessantes recharges du
système qui diminuent sa mobilité.
• Les nœuds chercheront donc à se mettre en veille le plus souvent possible, ce qui
provoquera alors une diminution de réactivité de l'ensemble du réseau.
Caractéristiques du réseau :
• La charge du réseau doit être distribuée équitablement entre les éléments en
tenant compte de leur capacité respective.
• Chaque élément d'un réseau ad hoc est autonome et possède à la fois les
fonctionnalités de relais et de point de communication. L'administration de ces
éléments reste interne au réseau.
• L'absence d'infrastructure centralisée sera une contrainte très forte pour la
gestion des accès aux ressources du réseau.
Technologie sans fil :
• Les perturbations dues à l'environnement radio peuvent entraîner des diminutions
de débit et bande passante.
• Les réseaux sans fil ad hoc héritent de l'architecture propre aux technologies
Chapitre I : Les Réseaux Ad Hoc
11
WLAN et WPAN, et notamment des couches physique et liaison de données de
ces technologies.
Mobilité :
• Les éléments étant fortement mobiles, leur sécurité physique est moins assurée
que pour un poste de travail fixe, dans un bureau par exemple.
Leur valeur marchande peut être d'importance non négligeable.
• La topologie du réseau peut changer d'autant plus rapidement que les nœuds
sont mobiles.
• Des liens asymétriques peuvent se créer lorsqu'un élément muni d'un récepteur
particulièrement sensible est capable de capter les émissions d'un autre nœud qui est
hors de portée du premier élément.
Configuration :
• L'auto configuration permet aux nœuds de s'intégrer facilement dans un réseau.
Elle facilite la gestion du réseau car l'interconnexion des éléments ne nécessite
qu'un minimum d'intervention technique externe. Cette fonctionnalité est de plus
en plus nécessaire pour un déploiement à grande echelle des réseaux sans fil ad
hoc.
Authentification / Intégrité / Confidentialité / Disponibilité :
Coopérer au sein de tels réseaux présente un risque s'il n'y a aucun contrôle des
participants. L'authentification des parties apparaît donc comme la pierre angulaire d'un
réseau sans fil ad hoc sécurisé. En effet, comment assurer une quelconque confidentialité
et intégrité des messages échangés si, dès le départ, on n'est pas sûr de communiquer
avec la bonne entité ?
Contrairement au réseau filaire, il n'est pas nécessaire de pénétrer dans un local
physique pour accéder au réseau. Si l'authentification est mal gérée, un attaquant peut
s'attacher au réseau sans fil et injecter des messages erronés. L'intégrité des messages
échangés est donc une exigence importante pour ces réseaux. L'intégrité des nœuds est,
elle aussi, primordiale car les éléments d'un réseau ad hoc sont moins sujets à
surveillance. En effet, ils ne sont pas confinés dans un bureau mais transportés par leur
propriétaire et peuvent donc être momentanément égarés. Un attaquant peut subtiliser un
Chapitre I : Les Réseaux Ad Hoc
12
appareil, le corrompre avec un cheval de Troie par exemple, avant de le restituer discrètement à
son propriétaire.
Une fois les parties authentifiées, la confidentialité reste un point important étant donné que
les communications transitent via les airs et sont donc potentiellement accessibles à tout
possesseur du récepteur adéquat.
La disponibilité est une propriété difficile à gérer dans les réseaux sans fil ad hoc étant donné
les contraintes qui pèsent sur ces réseaux :
• Topologie dynamique.
• Ressources limitées sur certains nœuds de transit.
• Communications sans fil pouvant être facilement brouillées ou perturbées.
Les applications sans fil en mode ad hoc ne devraient donc pas se focaliser sur
ce critère.
Anonymat / Protection de la Vie Privée :
Certaines applications peuvent nécessiter la discrétion sur l'identité des participants qui
collaborent au réseau sans fil ad hoc : par exemple un vote anonyme au cours d'une conférence.
De plus, les différents gadgets électroniques qui formeront les nœuds des réseaux ad hoc de
demain, auront en toute probabilité, la possibilité de garder la trace de nos préférences afin de
nous faciliter le quotidien et de nous offrir des services toujours plus appropriés. Cette tendance
va pourtant à l'encontre de la protection de la vie privée de tout un chacun. Qui a envie de voir
diffuser sur les ondes ses goûts et affinités ?
Vulnérabilités
La première vulnérabilité de ces réseaux est liée à la technologie sans fil sous-jacente.
Quiconque possédant le récepteur adéquat peut potentiellement écouter ou perturber les
messages échangés. Et ceci, même s'il se trouve dans un lieu public, à l'extérieur du bâtiment où
se déroulent les échanges.
Les nœuds eux-mêmes sont des points de vulnérabilités du réseau car un attaquant peut
compromettre un élément laissé sans surveillance.
L'absence d'infrastructure fixe pénalise l'ensemble du réseau dans la mesure où il faut faire
abstraction de toute entité centrale de gestion pour l'accès aux ressources.
Les mécanismes de routage sont d'autant plus critiques dans les réseaux ad hoc que chaque
entité participe à l'acheminement des paquets à travers le réseau. De plus, les messages de
routage transitent sur les ondes radio.
Chapitre I : Les Réseaux Ad Hoc
13
Enfin, ces réseaux héritent de toutes les vulnérabilités propres aux technologies sans fil WLAN
et WPAN.
Menaces
On distingue les menaces de type passif, où l'attaquant est limité à l'écoute et l'analyse du
trafic échangé, des menaces de type actif. Dans ce dernier mode, l'attaquant se donnera les
moyens d'agir sur la gestion, la configuration et l'exploitation du réseau. Il peut injecter son
propre trafic, modifier le fonctionnement d'un nœud, usurper l'identité d'un élément valide,
rejouer des messages, modifier des messages transitant sur le réseau ou provoquer un déni de
service. L'attaque passive prive le réseau de la confidentialité des messages échangés.
Éventuellement, l'analyse du trafic représente un risque pour l'anonymat des participants et le
respect de leur vie privée.
Résultat de l'Analyse de Risque
Après l'étude des besoins et exigences des réseaux sans fil ad hoc en terme de sécurité, puis
corrélation avec les risques issus des vulnérabilités et menaces s'appliquant à ces réseaux nous
avons pu dresser une liste des attaques fortement probables ou faisables et qui constituent un
risque non négligeable en cas de réalisation.
Les dénis de services, denial of services (DoS), apparaissent comme les attaques les plus
faciles à réaliser par un attaquant. La criticité de telles attaques dépend fortement du contexte
d'utilisation mais n'est jamais complètement négligeable. Les modèles de dénis de services qui
suivent se dégagent plus particulièrement dans le cas de réseau sans fil ad hoc :
• Brouillage du canal radio pour empêcher toute communication.
• Tentative de débordement des tables de routages des nœuds servant de
relais.
• Non-coopération d'un nœud au bon fonctionnement du réseau dans le but de préserver son
énergie. L'égoïsme d'un nœud est une notion propre aux réseaux ad hoc. Un réseau ad hoc
s'appuie sur la collaboration sans condition de ses éléments. Un nœud refusant de jouer le
jeu peut mettre en péril
l'ensemble.
• Tentative de gaspillage de l'énergie de nœuds ayant une autonomie de batterie faible ou
cherchant à rester autonome (sans recharge) le plus longtemps possible. Ces nœuds se
caractérisent par leur propension à passer en mode veille le plus souvent possible. L'attaque
Chapitre I : Les Réseaux Ad Hoc
14
consiste à faire en sorte que le nœud soit obligé de rester en état d'activité et ainsi de lui
faire consommer toute son énergie.
• Dispersion et suppression du trafic en jouant sur les mécanismes de routage.
Les attaques passives d'écoute et d'analyse du trafic constituent une menace certaine pour la
confidentialité et l'anonymat.
L'usurpation de l'identité d'un nœud en leurrant les mécanismes de contrôle d'accès permet de
nombreuses attaques actives rendant particulièrement critiques la protection des mécanismes de
routage.
L'attaque physique d'un élément valide d'un réseau sans fil ad hoc, entraînant la
compromission du nœud, se révèle comme étant un point faible de ces réseaux.
I.7 Conclusion
L’étude effectuée sur les réseaux mobiles ad hoc nous a permis de connaître leurs différentes
caractéristiques, et ainsi constater que leur apparition a, certes, facilité la mise en oeuvre
d’applications mobiles et ne supportant pas d’infrastructure préexistante (telles que les
applications militaires), mais en revanche, a laissé émerger un bon nombre de problèmes dont
celui du routage, sécurité ...
Après avoir fait connaître brièvement les réseaux Ad’hoc et leurs différentes caractéristiques
et exigence de sécurité, nous allons aborder dans le prochain chapitre les tactiques de la
cryptographie.
Ces techniques s’avèrent être notre principale préoccupation dans le cadre de la sécurité et la
confidentialité des communication dans les réseaux ad hoc.
Chapitre II
LA CRYPTOGRAPHIE
II.1 Introduction
II.2 Définitions
II.3 Cryptographie classique
II.3.1 Le code de César
II.3.2 Le carre de Polybe
II.3.3 Chiffrement de Delastelle
II.3.4 le chiffre des templiers (ou de PigPen)
II.3.5 Le Chiffrement par décalage
II.3.6 Le chiffrement affine
II.3.7 Le chiffrement de Hill
II.3.8 Le chiffrement de Vigenère
II.3.9 Le chiffrement par transposition (par permutation)
II.3.10 Les faiblesses de la méthode de substitution
II.3.11 Systèmes a clefs jetables
II.4 Cryptographie moderne
II.4.1 Chiffrement symétrique
II.4.1.1 DES
II.4.1.2 IDEA
II.4.1.3 AES
II.4.2 Chiffrement asymétrique
II.4.2.1 RSA
II.4.3 Cryptographie Hybride
II.4.3.1 Algorithme du PGP
II.4.4 Cryptographie Quantique
II.4.5 Cryptographie par courbe elliptique
II.5 Le hachage
II.6 Le certificat
II.7 La signature digitale
II.8 Conclusion
Chapitre II La cryptographie
15
II.1 Introduction
La cryptographie vient du grec kryptos qui veut dire cacher et de graphein qui signifie écrire,
étant donné qu'une lettre ou une communication peuvent être interceptées par un individu
mal intentionné, il est prudent de rendre le message incompréhensible.
La cryptographie est donc un ensemble de techniques permettant de protéger une
communication au moyen d'un code secret.
Depuis Jules César, qui a été sans doute le premier à l'utiliser pour communiquer avec ses
troupes, jusqu'à l'armée allemande qui s'est servie de machines électromécaniques lors de la
deuxième guerre mondiale, la cryptographie a fait d'énormes progrès avec l'arrivée de
l'informatique. Car la cryptographie se sert de la puissance des ordinateurs et des progrès
mathématiques pour rendre tout message incompréhensible par un tiers.
Qu’est ce qu’un bon système de chiffrement ? C’est un système permettant de rendre un
message indéchiffrable par toute personne a laquelle il n’est pas destine tout en pouvant être
facilement traduit par le destinataire officiel. Dans la mesure du possible, ce système doit
permettre de joindre une signature inviolable au message pour permettre au destinataire de
contrôler son authenticité.
II.2 Définitions :
La cryptologie est une science mathématique qui comporte deux branches : la cryptographie
et la cryptanalyse [17].
La cryptographie classique est l'étude des méthodes permettant de transmettre des données de
manière confidentielle. Afin de protéger un message, on lui applique une transformation
dépendante d’un paramètre appelle clé, afin de le rendre incompréhensible ; c'est ce qu'on
appelle le chiffrement, qui, a partir d'un texte en clair, donne un texte chiffré ou
cryptogramme. Inversement, le déchiffrement est l'action qui permet de reconstruire le texte
en clair à partir du texte chiffré.
La cryptographie moderne est la science de la sécurisation des données, elle nous permet de
stocker des informations sensibles ou de les transmettre à travers des réseaux non surs
(comme Internet).
La cryptanalyse, a l'inverse, est l'étude des procèdes cryptographiques dans le but de trouver des
faiblesses, permettant de retrouver de texte en clair sans connaître la clé de chiffrement [18]. Les
cryptanalyses sont aussi appelées attaquants.
Chapitre II La cryptographie
16
II.3 Cryptographie classique Dans la cryptographie classique, la méthode et la clé de chiffrement ainsi que celles de
déchiffrement sont connues par l’émetteur et le destinataire. L’émetteur et le destinataire
doivent se mettre préalablement d’accord sur la clé. Ce qui pose le problème de l’échange
des clés , par exemple, dans un réseau de N entités susceptibles de communiquer
secrètement, il faut distribuer 2
NC = N(N-1)/2 clés.
La plupart des méthodes de chiffrement classiques reposent sur deux principes essentiels: la
substitution et la transposition [19]. La substitution consiste à remplacer certaines lettres par
d'autres ou par des symboles. La transposition signifie qu'on permute les lettres du message
afin de le rendre inintelligible.
Au cours des siècles, de nombreux systèmes cryptographiques ont été mis au point, de plus
en plus perfectionnés et de plus en plus astucieux.
II.3.1 Le code de César Le code de César est la méthode de cryptographie la plus ancienne communément admise par
l'histoire [20]. Il consiste à substituer chaque lettre de l’alphabet par celle obtenue après un
décalage des lettres. Par exemple, si on remplace A par D, on remplace alors B par E, C par
F, D par G, etc. ...
Table II.1 : Le chiffrement de César.
Il n'y a que 26 façons différentes de chiffrer un message avec le code de César. Donc, il est
très facile de le casser, en testant de façon exhaustive toutes les possibilités.
II.3.2 Le carré de Polybe Polybe était un écrivain grec. C’est lui qui a invente le premier chiffre de substitution [21].
Le carre de Polybe est base sur une grille comme celle-ci :
Chapitre II La cryptographie
17
Table II.2 : La grille de polybe.
Chaque lettre est codée par 2 chiffres. Exemple : X=53. Les lettres I et J ne sont pas
différenciés. "BONJOUR" sera chiffre par "12343324344542"
II.3.3 Chiffrement de Delastelle Le chiffre de Delastelle est un mélange de codage par substitution et par transposition. On
commence par découper le message en des blocs de 5 lettres, puis on utilise le carre de
Polybe. On écrit verticalement pour chaque lettre la position dans le tableau. Par exemple, si
on souhaite coder "KAMELKECH", on procède comme suit :
Le groupe des 5 premières lettres :
Table II.3 : Un chiffrement de Delastelle.
(Remarquons que les lettres vides sont remplacées par un double 00).
Ensuite, on effectue la transposition qui consiste a regrouper les chiffres deux par deux, de la
gauche vers la droite, puis du haut vers le bas. On obtient alors :
21313512512112055330 . La dernière opération consiste à transformer le code précèdent en
message littéral, en utilisant a nouveau le carre de Polybe. Toutefois, il peut apparaître des
nombres du type 00 01 02 10 20 etc... Qu’on remplace par des lettres spéciales ou des
chiffres. Par exemple :
00 0 01 1 02 2 03 04 4 05 5 10 6 30 7 30 8 40 9 50 %
On trouve ici finalement le message chiffre : "FLPBVFB5X7"
K A M E L
2 1 3 1 3
5 1 2 5 1
K E C H
2 1 1 2 0
5 5 3 3 0
Chapitre II La cryptographie
18
II.3.4 le chiffre des templiers (ou de PigPen) Au lieu de remplacer chaque lettre par une autre, certains ont préféré remplacer les lettres par
des symboles pour diffuser leurs messages codés. C'est ainsi qu'ont procédé les francs-
maçons au XIXème
siècle avec le chiffre de PigPen. Ils remplaçaient chaque lettre par un
symbole, selon la substitution suivante :
Figure II.1 : Le chiffrement de PigPen.
Par exemple, si nous souhaitons coder "UN BON CRYPTANALYSTE", on obtient:
II.3.5 Le Chiffrement par décalage II.3.5.1 Arithmétique modulaire
Soient a, b et m des entiers avec m>0, on écrit a= b mod(m) « a est congru à b modulo m » si
m divise (b – a), cela équivalent aussi à : a et b ont même le reste de division par m.
On définit alors l’arithmétique modulo m : l’anneau Z//mZ/ symbolise l’ensemble :
{0, 1, 2, …, m-1} muni des opérations addition (+) et multiplication ( . )
Par exemple : Dans Z/ /26Z/, on calcule 11 x 13 = 143, on effectue une division euclidienne :
143 = 5 x 26 + 13. Donc 11. 13 = 13 mod(26).
On calcule 14 + 13 = 27 et puisque 27= 1x 26 + 1 alors 14 + 13 = 1 mod(26)
Chapitre II La cryptographie
19
II.3.5.2 Application
Le chiffrement par décalage [19] est basé sur l’arithmétique modulaire. On l’utilise dans
l’ensemble Z/ /26Z/, car on a 26 lettres dans l’alphabet. Il est représenté a l’aide de la
fonction f définie par : f(x) = x + k mod(26).
Exemple : On applique la formule avec k=5 pour le texte « message secret » on a :
Table II.4 : Un chiffrement par décalage.
Remarquer que pour k = 3 on obtient le chiffrement de César.
II.3.6 Le chiffrement affine
Ce chiffrement est réalisé a l’aide d’une fonction affine f(x) = ax + b mod (26).
On remarque que l’on retrouve le chiffrement par décalage dans le cas où a=1.
Pour que l’on puisse déchiffrer, il faut que l’opération inverse soit possible. C’est a dire que
l’équation : y =ax + b mod(26) ait une solution unique (cela revient a dire que la fonction f
doit être injective).
Théorème 1 [19] :
L’équation y=a.x + b mod(26) admet une solution unique x ∈Z/ /26Z/ pour tout b∈Z/ /26Z/
si pgcd(a, 26) = 1.
On a donc 12 possibilités pour choisir a (1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25). Par contre, b
peut être quelconque. On a donc 12x26=312 clés possibles pour le chiffrement affine. Ce
nombre va augmenter si on utilise tous les caractères ASCII.
Le déchiffrement
Considérons maintenant la fonction f de chiffrement avec m= 26. On suppose que
pgcd(a,26)=1. L’équation y = a.x + b mod(26) admet alors une solution, pour la déterminer il faut
faire appel a la notion d’inverse modulaire définie par :
Soit a ∈Z/ /26Z/ l’inverse de a est un élément a ∈−1
Z/ /26Z/ tel que :
a.a-1
= a-1
.a=1 mod(26).
Chapitre II La cryptographie
20
Dans Z/ /26Z/ , grâce a la table de multiplication on peut obtenir les inverses de tous les
nombres premiers avec 26 :
1-1
=1, 3-1
=9, 5-1
=21, 7-1
=15, 11-1
=19, 17-1
=23, 25-1
=25.
En effet, on a les égalités suivantes modulo 26 :
3x9 = 27 =1, 5x21 = 105 = 4x26+1 = 1, …, 25x25 = 625 = 1
Par exemple : pour une clé de chiffrement a=7 et b=3 on a alors la fonction de chiffrement :
y= 7.x + 3 et la fonction de déchiffrement sera x= 7-1
.(y-3) mod(26).
On note que 7-1
= 15 mod(26). D’où la formule finale : x= 15.y - 19 mod(26)
Application : sur le texte en clair "BONJOUR"
Table II.5 : Un chiffrement affine.
Ce qui donne le texte chiffre : "KXQOXNS"
Le déchiffrement sera a laide de la table :
Table II.6 : Un déchiffrement affine.
II.3.7 Le chiffrement de Hill
Le chiffrement de Hill, inventé en 1929 par Lester S. Hill, se rapproche beaucoup du
chiffrement affine. Il consiste à déterminer les caractères du texte chiffré par combinaison
linéaire de m caractères du texte en clair [19].
Exemple : Avec m=2 le texte clair est décomposé en bloc de deux caractères x1 et x2. Le
texte chiffré sera alors composé de blocs y1 et y2. Un exemple de combinaison pourrait être :
Chapitre II La cryptographie
21
y1= 11.x1 +3.x2
y2= 8x1 +7.x2
La clé de chiffrement sera alors une matrice carrée d’ordre 2 :
Dans le cas général, la clé est une matrice carrée d’ordre m. Dans notre exemple, nous
pouvons écrire de manière matricielle les deux équations :
Et plus généralement : Ou bien Y = K.X
Le déchiffrement d’un message sera possible à condition que la matrice K soit inversible et il
sera réalisé à l’aide de la matrice inverse K-1
puisque :
Y = K.X ⇔ X=k-1
.Y
Exemple :
Avec la clé k = le message "SECRET" sera chiffre en "CQVFXJ"
Table II.7 : Un chiffrement de Hill.
Le déchiffrement se fait a l’aide de K-1
qui est égale à
En effet det K = = 77 - 24 = 53 = 1 mod(26) et
Chapitre II La cryptographie
22
Table II.8 : Un déchiffrement de Hill.
II.3.8 Le chiffrement de Vigenère
Blaise de Vigenère a développe son Tracté des chiffres ou Secrètes manières d'écrire, qui
ressemble au chiffrement de César, à la différence près qu’il utilise un mot clé au lieu d’un
simple caractère [20].
Pour chiffrer un message, on choisit une clé qui sera un mot de longueur arbitraire. On écrit
ensuite cette clé sous le message à chiffrer, en la répétant aussi souvent que nécessaire pour
que sous chaque lettre du message a chiffrer, on trouve une lettre de la clé. Pour chiffrer, on
fait la somme modulo 26 de chaque caractère du message et du caractère de la clé
correspondant.
Exemple : On veut chiffrer le texte "CRYPTOGRAPHIE DE VIGENERE" avec la clé
"SECRET". On commence par écrire la clé sous le texte à chiffrer :
Table II.9 : Un chiffrement de Vigenère.
Bien que ce chiffrement soit beaucoup plus sûr que le chiffrement de César, il peut encore
être facilement cassé. En effet, lorsque les messages sont beaucoup plus longs que la clé, il
est possible de repérer la longueur de la clé et d’utiliser pour chaque séquence de la longueur
de la clé la méthode consistant a calculer la fréquence d’apparition des lettres, permettant de
déterminer un à un les caractères de la clé…
Pour éviter ce problème, une solution consiste à utiliser une clé dont la taille est proche de
celle du texte afin de rendre impossible une étude statistique du texte chiffré. Ce type de
système de chiffrement est appelé système a clé jetable.
Chapitre II La cryptographie
23
II.3.9 Le chiffrement par transposition (par permutation)
Matériellement : (Technique Assyrienne)
Cette technique de chiffrement est vraisemblablement la première preuve de l'utilisation de
moyens de chiffrement en Grèce dés 400 avant Jésus Christ pour dissimuler des messages
écrits sur des bandes de papyrus [17].
Figure II.2 : Le cylindre de Scytale. La technique consistait à:
- enrouler une bande de papyrus sur un cylindre appelé scytale
- écrire le texte longitudinalement sur la bandelette ainsi enroulée (le message dans l'exemple
ci-dessus est "KAMEL KECHAR")
Le message une fois déroule n'est plus compréhensible (dans l’exemple ci-dessus "KLCA
HMKAEER ").
Il suffit au destinataire d'avoir un cylindre de même rayon pour pouvoir déchiffrer le
message. En réalité un casseur (il existait des casseurs a l'époque...) peut déchiffrer le
message en essayant des cylindres de diamètre successifs différents, ce qui revient a dire que
la méthode peut être cassée statistiquement (il suffit de prendre les caractères un a un,
éloignés d'une certaine distance).
Formellement : On fixe un entier m≠0 et une permutation de {1, 2 …m} qui seront la clé de
chiffrement, par exemple avec m=5 et la permutation
Le message "CRYPTOGRAPHIE CLASSIQUE" sera chiffre en "TYCRPPROGACEHI
ISLAS EQU". En effet, le texte en clair est décomposé en blocs de cinq caractères chacun.
Chaque bloc est transformé en utilisant la permutation ci-dessus. Par exemple CRYPT et
OGRAP sont chiffrés respectivement en TYCRP et PROGA et ainsi de suite. La clé de
déchiffrement est le nombre 5 et la permutation inverse :
K A M E
L K E
C H A R
Chapitre II La cryptographie
24
II.3.10 Chiffrement par substitution
II.3.10.1 La méthode de substitution
Le chiffrement par substitution consiste à remplacer dans un message une ou plusieurs entités
(généralement des lettres) par une ou plusieurs autres entités [22].
On distingue plusieurs types de crypto systèmes par substitution :
· La substitution mono-alphabetique consiste a remplacer chaque lettre du message par une
autre lettre de l’alphabet. Comme le chiffrement par décalage.
· La substitution poly-alphabetique consiste a utiliser une suite de chiffres monoalphabetique
réutilisée périodiquement. Comme exemple le chiffrement de Vigenère.
· La substitution homophonique permet de faire correspondre a chaque lettre du message en
clair un ensemble possible d’autres caractères.
· La substitution de polygramme consiste a substituer un groupe de caractères (polygramme)
dans un message par un autre groupe de caractères.
- Au moyen d’une table (système de Playfair)
- Au moyen d’une transformation mathématique (système de Hill)
II.3.10.2 Les faiblesses de la méthode de substitution
Dans le chiffrement par substitution, la clé est simplement la permutation des 26 lettres
alphabétiques. Le nombre de clés est 26 ! Une recherche exhaustive de la clé est donc
impossible. Cependant, le chiffrement par substitution possède une grosse faiblesse
structurelle [23] : dans les langues, toutes les lettres n'ont pas la même fréquence
d'apparition. Dans un texte français, il y a presque toujours beaucoup plus de E que de W. Or,
le E est toujours remplace par la même lettre et le W aussi. Donc, si dans votre texte, la lettre
qui apparaît le plus fréquemment est un L, il y a de fortes chances que ce soit un E. En
revanche, si il n'y a presque pas de D, on peut se dire que c'est probablement un W, ou un K,
un X, etc ... Voici un exemple de l'analyse de la fréquence d'apparition des différentes lettres
dans une biographie :
Figure II.3 : Fréquences des lettres en Français.
Chapitre II La cryptographie
25
On voit clairement apparaître sur ce graphique plusieurs groupes de lettres qui ont la même
fréquence. Le E est de loin le plus fréquent. Il y a donc de fortes chances que la lettre la plus
fréquente du texte codé est en fait un E.
· Ensuite, les A, I, N, R, S, T.
· Puis les O, U, L, ...
Pour déterminer dans le deuxième groupe quelle lettre est un A, une méthode possible est
d'étudier les lettres qui apparaissent isolées (c'est-à-dire dans un mot à une seule lettre du
texte) : la lettre isolée la plus fréquente a de fortes chances d'être un A.
Ensuite, on étudie les groupes de 2 lettres. On peut étudier leur fréquence d'apparition dans le
texte, et comparer aux fréquences possibles du texte. Par exemple, les EN, NE, TE, SE sont
bien plus fréquents que les ST, NR, ...
II.3.11 Systèmes à clefs jetables
Pour éviter les attaques statiques il faut utiliser une substitution qui rend le texte chiffré non
analysable statiquement. D’ou l’apparition des systèmes a clefs jetables comme solution [24].
Cela consiste a générer une clé qui est une suite binaire parfaitement aléatoire (phénomène
physique aléatoire : le bruit électromagnétique). Pour chiffrer un message faire le ou
exclusive (XOR) du message et de la clé.
Si chaque clé ne sert qu’une fois, le chiffre est incassable. Mais il y a l’inconvénient de la
taille de la clé et le problème de synchronisation (si l’on perd une seule donnée on ne sait
plus déchiffrer).
II.4 La cryptographie moderne (symétrique, asymétrique) :
Si le but traditionnel de la cryptographie est d'élaborer des méthodes permettant de
transmettre des données de manière confidentielle, la cryptographie moderne s'attaque en fait
plus généralement aux problèmes de sécurité des communications. Pour cela, on utilise un
certain nombre de mécanismes basés sur des algorithmes cryptographiques.
La sécurité des données chiffrées dépend des éléments suivants :
• La robustesse de l’algorithme cryptographique (difficile à casser).
• La confidentialité de la clé.
Il existe deux grandes familles d'algorithmes cryptographiques à base de clés : les
algorithmes à clé privée ou algorithmes symétriques, et les algorithmes à clé publique ou
algorithmes asymétriques.
Chapitre II La cryptographie
26
II.4.1 Chiffrement symétrique ou à clé privée :
Dans la cryptographie conventionnelle, les clés de chiffrement et de déchiffrement sont
identiques : c'est la clé privée , qui doit être connue exclusivement par les
communicants. Le procédé de chiffrement est dit symétrique. On parle de cryptographie
symétrique lorsque deux ou plusieurs personnes utilisent une même clé pour crypter et
décrypter des messages (Figure II.4).
� Les inconvénients du chiffrement symétrique :
Le principal inconvénient de ce système est le partage de cette clé unique entre les différentes
personnes : Comment envoyer à tout le monde et de façon sécurisée cette clé unique qui
permet de crypter et décrypter ?
II.4.1.1 DES
Le 15 mai 1973 le NBS (National Bureau of Standards, aujourd'hui appelée NIST National
Institute of Standards and Technology) a lancé un appel dans le Fédéral Register (l'équivalent
aux Etats-Unis du Journal Officiel en France) pour la création d'un algorithme de chiffrement
répondant aux critères suivants:
- Ayant un haut niveau de sécurité lié à une clé de petite taille servant au chiffrement et au
déchiffrement
- Compréhensible
- Ne devant pas dépendre de la confidentialité de l'algorithme
- Adaptable et économique
Texte
en
clair
Texte
chiffré
Texte
chiffré
Texte
en
clair
+
+
Clé privée
Clé privée
Figure II.4 : Principe de chiffrement symétrique.
Chapitre II La cryptographie
27
- Efficace et exportable
Fin 1974, IBM propose Lucifer, qui, grâce a la NSA (National Security Agency), est modifié
le 23 novembre 1976 pour donner le DES (Data Encryption Standard). Le DES a finalement
été approuve en 1978 par le NBS. Le DES fut normalisé par l'ANSI (American National
Standard Institute) sous le nom de ANSI X3.92, plus connu sous la dénomination DEA (Data
Encryption Algorithm) [25].
C'est un système de chiffrement par blocs de 64 bits, dont 8 bits (un octet) servent de test de
parité (pour vérifier l'intégrité de la clé). Chaque bit de parité de la clé (1 tous les 8 bits) sert
à tester un des octets de la clé par parité impaire, c'est-à-dire que chacun des bits de parité est
ajusté de façon a avoir un nombre impair de '1' dans l'octet à qui il appartient. La clé a donc
une longueur "utile" de 56 bits, ce qui signifie que seuls 56 bits servent dans l'algorithme.
L'algorithme [22] consiste à faire des combinaisons, des substitutions et des permutations
entre le texte à chiffrer et la clé, en faisant en sorte que les opérations puissent se faire dans
les deux sens (pour le déchiffrement). On appelle code produit la combinaison entre
substitutions et permutations. La clé est codée sur 64 bits et formée de 16 blocs de 4 bits,
généralement notes k1 a k16. Etant donne que "seulement" 56 bits servent réellement a
chiffrer, il y a 256
(soit 7.2*1016
) possibilités de clés différentes
a) La génération des clés partielles :
La clé initiale K0 de 64 bits subit, dans un premier temps, une première permutation CP1
(une réduction de 8 bits les bits de parité de chaque octet). La chaîne de caractères résultante
de 56 bits est alors divisée en 2 blocs de 28 bits (L0 et R0). Chacun d'eux subira alors un
décalage a gauche. Les deux nouveaux blocs (L1 et R1) seront alors concaténés avant une
nouvelle permutation CP2 (une autre réduction de 8 bits). On obtient alors une clé partielle
K1 de 48 bits.
On réitérera ces opérations 15 fois pour générer les 15 clés (K2, K3,..., K16). La différence
résidera dans l'incrémentation des paramètres des deux permutations.
Table II.10 : Les permutations CP1 et CP2.
Chapitre II La cryptographie
28
Table II.11 : La table des décalages à gauches LS.
Figure II.5 : La diversification des clefs en DES.
Chapitre II La cryptographie
29
b) Le chiffrement :
Les grandes lignes de l'algorithme sont les suivantes:
- Fractionnement du texte en blocs de 64 bits (8 octets)
- Permutation initiale des blocs
- Découpage des blocs en deux parties: gauche et droite, nommées G et D
- Etapes de permutation et de substitution répétées 16 fois (appelées rondes)
- Recollement des parties gauche et droite puis permutation initiale inverse
Dans un premier temps, chaque bit d'un bloc est soumis à la permutation initiale, pouvant
être représentée par la matrice de permutation initiale (notée PI)
Cette matrice de permutation indique, en parcourant la matrice de gauche a droite puis de
haut en bas, que le 58ème
bit du bloc de texte de 64 bits se retrouve en première position, le
50ème
en seconde position et ainsi de suite.
Une fois la permutation initiale réalisée, le bloc de 64 bits est scindé en deux blocs de 32 bits,
notes respectivement G et D (pour gauche et droite, la notation anglo-saxonne étant L et R
pour Left and Right). On note G0 et D0 l'état initial de ces deux blocs. Ces derniers sont
soumis à un ensemble de transformations itératives appelées rondes et schématisées dans la
Figure II.5. On note Gn et Dn les blocs obtenus à la nème
ronde par le biais de la fonction F
schématisée dans la Figure II.6. Pour interpréter les opérations de cette figure, nous disons
que les 32 bits du bloc Dn sont étendus à 48 bits grâce a une matrice appelée table
d'expansion et notée E, dans laquelle les 48 bits sont mélangés et 16 d'entre eux sont
dupliqués, aboutissant a E(Dn).
L'algorithme DES procède ensuite a un OU exclusif entre la clé partielle Kn+1 et E(Dn).
Le résultat est un bloc de 48 bits que nous appellerons D’n et auquel nous appliquons les S-
boxes. Il y a huit boites différentes. Elles sont représentées dans la table 5 par des tableaux a
4 lignes (indexées par 0, 1, 2, 3) et 16 colonnes (indexées de 0 à 15).
Soit un sous bloc de 6 bits de D’n , on calcule une chaîne de quatre
bits Sj(B) = Les deux bits forment la représentation binaire de
l’indice d’une ligne h de Sj (0 ≤ h ≤ 3) et les quatre bits composent la
représentation binaire de l’indice d’une colonne k de Sj (0 ≤ k ≤ 15), C est alors la
représentation binaire sur quatre bits du terme Sj(h , k).
Le bloc obtenu D″n de longueur 32 bits est réordonné suivant une permutation fixée P.
Le résultat est combinée avec Gn par Ou exclusif pour donner Dn+1 . Ainsi Gn+1 prend la
valeur de Dn.
Chapitre II La cryptographie
30
Figure II.6 : Enchaînement des opérations de chiffrement dans le système DES
.
Chapitre II La cryptographie
31
Table II.12 : La permutation initiale : PI et son inverse PI-1
.
Table II.13 :Les S-Boxes.
Chapitre II La cryptographie
32
Table II.14 : La table d’expansion E et la permutation P.
Figure II.7 : Description de l’opération Dn=Gn-1 ⊕ F(Dn-1,Kn).
Chapitre II La cryptographie
33
c) Le déchiffrement :
Pour déchiffrer on utilise le même algorithme de chiffrement, mais cette fois-ci en inversant
l’ordre d’application des clés, c’est a dire on commence par la clé K16 et on termine avec la
clé K1.
d) Le triple DES :
En 1990 Eli Biham et Adi Shamir [26] ont mis au point la cryptanalyse différentielle. Elle
permet de casser des versions restreintes de DES, dans lesquels on diminue le nombre de
tours de la boucle principale. On peut ainsi facilement casser un DES a 8 ou a 10 tours. Le
DES complet a 16 tours est resté hors de portée de cette attaque. Ceci d’une part. D’autre
part, l’ordinateur baptise « DES cracker » contenant 1536 puces et pouvant chercher 88
milliards de clés par seconde, a réussi le concours des laboratoires RSA, en trouvant une clé
DES en 56 heures.
Cette méthode marche pour un nombre de rondes inférieur a 15, or l'algorithme Triple DES
(TDES) contient 16 rondes ce qui donne une solution a court terme. Le processus du TDES
consiste a enchaîner trois chiffrement DES a l'aide de deux clés de 56 bits (ce qui équivalant
a une clé de 112 bits) [17]. Le TDES permet d'augmenter significativement la sécurité du
DES, toutefois il a l'inconvénient majeur de demander également plus de ressources pour le
chiffrement et le déchiffrement.
II.4.1.2 Algorithme symétrique IDEA (International Data Encryption Algorithm)
� Principe :
IDEA est un algorithme de chiffrement qui utilise une clé privée de 128 bits, et qui s’exécute
sur 8 itérations. Cet algorithme n'utilise que trois opérations simples : le XOR, l'addition
modulo 2 16
et la multiplication modulo 2 16+1
.
Pour l’IDEA Le texte est découpé en blocs de 64 bits, qui sont à leur tours redivisés en
quatre blocs de 16 bits : X1, X2, X3, X4. La clé K de 128 bits est divisée en 8 blocs de 16 bits,
puis ces fragments sont décalés circulairement sur la gauche de 25 bits, et redivisés, et ainsi
de suite jusqu'à l’obtention de 52 clés. Ces clés formeront 8 groupes de 6 clés (un groupe par
ronde) : K1, K2, K3, K4, K5, K6, et un groupe de 4 clés supplémentaires pour la ronde finale :
K1, K2, K3, K4 (figure II.8) [5].
Chapitre II La cryptographie
34
Texte en clair
Lire bloc
Bloc de 64 bits
Divisé en 4 blocs
Clef de128 bits
Divisé en 6 blocs
K1 K2 K3 K4 K5 K6
i:=0;
Itération i
E1
S1
E2
Inc(i);
i<8
E1:=S1;
Oui
E3:=S1;
Transformation
Décaler la clef
De 25 bits
E3
Réassembler les
4 blocs
Bloc de 64 bits
#@&
Texte
chiffrer
Écrire
bloc
IDEA
X1 X2 X3 X4
S2
S2
X1 X2 X3 X4
Figure II.8 : Fonctionnement de l’algorithme d’IDEA
Chapitre II La cryptographie
35
La figure II.9 et figure II.10 montrent les différentes opérations combinant à l'aide de nos trois
opérateurs (le XOR, l'addition modulo 2 16
et la multiplication modulo 2 16
+ 1) les 4 blocs
de données aux blocs de la clé.
X1 X2 X4 X3
4 blocs d’entrée de 16 bits
x + + x
# #
+ x
x +
# #
# #
X1 X2 X4 X3
4 blocs de sortie de 16 bits
+
x
#
Addition 16 bits
Modulo 216
Multiplication 16 bits
Modulo 216 +1
Ou Exclusif sur 16 bits
FigureII.9 : L’organigramme d’une itération
K1 K2 K3 K4
K5
K6
Chapitre II La cryptographie
36
Chiffrement : Etapes des 8 rondes :
Code d’une itération :
• Etape1 = X1 * K1
• Etape2 = X2 * K2
• Etape3 = X3 * K3
• Etape4 = X4 * K4
• Etape5 = Etape1 XOR Etape3
• Etape6 = Etape2 XOR Etape4
• Etape7 = Etape5 * K5
• Etape8 = Etape6 + Etape7
• Etape9 = Etape8 * K6
• Etape10 = Etape7 + Etape9
• Etape11 = Etape1 XOR Etape9 => X1 de la ronde suivante
• Etape12 = Etape3 XOR Etape9 => X3 de la ronde suivante
• Etape13 = Etape2 XOR Etape10 => X2 de la ronde suivante
• Etape14 = Etape4 XOR Etape10 => X4 de la ronde suivante
Pour finir, on applique une étape supplémentaire après la huitième ronde :
X1 X2 X3 X4
4 blocs d’entrée de 16 bits
x + + x
X1 X2 X3 X4
4 blocs de sortie de 16 bits
K1 K2 K3 K4
Figure II.10 : Détail de transformation
Chapitre II La cryptographie
37
Code de transformation :
• C1 = X1 * K1
• C2 = X2 + K2
• C3 = X3 + K3
• C4 = X4 * K4
Les 4 blocs C1, C2, C3, C4, forment alors le message chiffré.
Déchiffrement :
Pour déchiffrer le texte, il faut d'abord inverser la dernière opération :
• C1 = C1 * K1-1
• C2 = C2 - K2
• C3 = C3 - K3
• C4 = C4 * K4-1
On applique alors les opérations suivantes selon 8 rondes, en utilisant les groupes de 6
clés en partant de la dernière à la première :
• Etape1 = C1 XOR C3 (Etape5 lors du cryptage)
• Etape2 = C2 XOR C4 (Etape6 lors du cryptage)
• Etape3 = Etape1 * K5 (Etape7 lors du cryptage)
• Etape4 = Etape2 + Etape3 (Etape8 lors du cryptage)
• Etape5 = Etape4 * K6 (Etape9 lors du cryptage)
• Etape6 = Etape3 + Etape5 (Etape10 lors du cryptage)
• Etape7 = C1 XOR Etape5 (Etape1 lors du cryptage)
• Etape8 = C3 XOR Etape5 (Etape3 lors du cryptage)
• Etape9 = C2 XOR Etape6 (Etape2 lors du cryptage)
Chapitre II La cryptographie
38
• Etape10 = C4 XOR Etape6 (Etape4 lors du cryptage)
• Etape11 = Etape7 * K1-1
=> C1 de la ronde suivante
• Etape12 = Etape8 - K3 => C3 de la ronde suivante
• Etape13 = Etape9 - K2 => C2 de la ronde suivante
• Etape14 = Etape10 * K4-1
=> C4 de la ronde suivante
Les 4 blocs C1, C2, C3, C4 obtenus après la dernière ronde forment alors le message en
clair.
L’IDEA est l’algorithme le plus sûr parmi les algorithmes de chiffrement symétrique.
II.4.1.3 AES (Advanced Encryption System)
Pour comprendre le fonctionnement interne d’AES, il paraît judicieux de commencer par
l'envisager dans son schéma bloc comme le montre la Figure II.7. Les différentes opérations
seront détaillées successivement par la suite. De plus, il existe trois variantes de cet
algorithme : 128, 192 et 256 bits, il convient donc de faire un choix [27].
C’est un algorithme itératif. Il est découpé en 3 blocs ; pour le processus de chiffrement
chaque bloc compte des opérations à faire ;
Bloc 1 : première étape (Initial Round), C'est la plus simple des étapes. Elle ne compte
qu'une seule opération: AddRoundKey
Bloc2 : deuxième étape (N Rounds), Cette étape est constituée de N itérations comportant
chacune les quatres opérations suivantes :
� Sub Bytes,
� Shift Row,
� Mix Columns,
� Add Round Key.
Le nombre d’itération varie en fonction de la taille de la clé utilisée.
128 bits N=9,
192 bits N=11,
256 bits N=13.
Bloc3 : troisième étape (Final Round), Cette étape est quasiment identique à l'une des N
itérations du deuxième bloc. La seule différence est qu'elle ne comporte pas l'opération « Mix
Columns »
Chapitre II La cryptographie
39
Pour le processus de déchiffrement de toutes les opérations réalisées lors du chiffrement sont
réversibles, à condition d’avoir la clé bien étendue car à chaque étape et pour chaque itération
une nouvelle clé sera déduite.
Figure II.11 : Schéma bloc d’AES
a) Notation et convention
Comme tout système cryptographique symétrique, AES dispose de deux entrées, à savoir le
texte clair à chiffrer (plaintext) et la clé de cryptage (Key).
La longueur de la clé est fixe (128, 192, 256 bits), ainsi, la longueur du texte clair est
variable d'une application à l'autre. Or AES étant un algorithme de bloc, il doit commencer
par découper le texte clair selon la longueur de la clé.
Chapitre II La cryptographie
40
Ensuite, le bloc de texte clair en cours de chiffrage ainsi que la clé sont mis sous forme
matricielle.
� S’il s’agit de la version 128 bits de l’algorithme, les matrices obtenues sont carrées c'est-
à-dire la matrice est de Nc= 4 (Nc désigne le nombre de colonnes) et Nl=4 (Nl désigne le
nombre de lignes). Elle compte 16 éléments, chacun de ces éléments contient 1 byte.
� S’il s’agit de la version 192 bits de l’algorithme, les matrices obtenues sont à Nc= 6 et
Nl=4. Elle compte 24 éléments chacun de ces éléments contient 1 byte.
� S’il s’agit de la version 256 bits de l’algorithme, les matrices obtenues sont à Nc= 8 et
Nl=4. Elle compte 32 éléments chacun de ces éléments contient 1 byte.
Nombre de Lignes Nombre de Colonnes
AES-128 4 4
AES-192 4 6
AES-256 4 8
Pour d'évidentes raisons de taille, les valeurs binaires seront notées sous forme hexadécimale.
S0 S1 S2 S3
S4 S5 S6 S7
S8 S9 S10 S11
S12 S13 S14 S15
K0 K1 K2 K3
K4 K5 K6 K7
K8 K9 K10 K11
K12 K13 K14 K15
Bit binaire Caractère
0000 0
0001 1
0010 2
0011 3
Bit binaire Caractère
0100 4
0101 5
0110 6
0111 7
Bit binaire Caractère
1000 8
1001 9
1010 a
1011 b
Bit binaire Caractère
1100 C
1101 D
1110 E
1111 F
Texte clair: (State)
Clé originale : (Key)
Figure II.12 : Forme du texte clair et la clef pour AES-128
Table II.16 : Représentation Hexadécimale
Table II.15 : Forme des matrices de chaque version d’AES
Chapitre II La cryptographie
41
b) Fondement mathématique
Les bytes dans l’algorithme AES sont interprétés autant qu’éléments d’un corps fini, les
éléments d’un corps fini peuvent être additionné et multiplier, mais ces deux opérations sont
d’une forme différente à celle utiliser pour les autre corps. Dans ce qui suit nous introduisons
le concept de base de ces deux opérations.
Addition
L’addition de deux éléments dans un corps fini est réalisé par une addition des coefficients
des deux éléments, l’addition est représenté par l’opération XOR (dénoté⊕), c'est-à-dire
modulo 2, alors :1⊕1= 0, 1 ⊕ 0=1, 0 ⊕ 0= 0.
L’addition des éléments d’un corps fini peut être donc décrite par une addition modulo 2
d’une correspondance bits à bits d’un byte.
Alors pour deux byte {a7 a6 a5 a4 a3 a2 a1 a0} et {b7 b6 b5 b4 b3 b2 b1 b0} la somme est {c7 c6 c5 c4
c3 c2 c1 c0} avec : ci = ai ⊕bi (c'est-à-dire, c7 = a7⊕ b7 , c6 = a6⊕b6….........c0 = a0⊕b0 )
Multiplication
La multiplication est défini sur le Corps de Galois GF(28), deux méthodes permettent de
calculer les produits dans ce corps :
Application mathématique
Considérons le produit des deux byte {a7 a6 a5 a4 a3 a2 a1 a0} et {b7 b6 b5 b4 b3 b2 b1 b0},donc, il
faut voir ces deux bytes à multiplier comme deux polynômes du septième degré a(x),
respectivement b(x) dont les coefficients sont donnés par les 8 bits composant le byte.
Reprenons le calcul ci-dessus :
a(x) = a7x7 + a6 x
6 + a5x
5 + a4x
4 + a3x
3 + a2x
2 + a1x
1 + a0x
0
b(x) = b7x7
+ b6x6 + b5x
5 + b4x
4 + b3x
3 + b2x
2 + b1x
1 + b0x
0
Maintenant que a(x) et b(x) sont connus, il reste à les multiplier modulo le polynôme de
degré 8, m(x) = x8
+x4
+x3
+ x +1.
Ce polynôme est irréductible dans GF ( 28 ), il ne peut être divisé que par lui-même et par 1
a( x )b( x ) mod m(x ) = (a7x7
+ a6 x6
+ a5x5
+ a4x4 + a3x
3 + a2x
2 + a1x
1 + a0x
0 ) (b7x
7 + b6x
6 +
b5x5
+ b4x4
+ b3x3 + b2x
2 + b1x
1+ b0x
0 ) mod ( x
8 +x
4 +x
3+x +1 )
Le résultat de cette expression est le polynôme représentant le produit des deux bytes dans le
champ de Galois GF (28).
Cette première méthode était juste pour montrer le lien entre Rijndael et Les champs de
Galois.
Il ne présente pas de réel intérêt dans la mesure où la deuxième Méthode est non seulement
plus simple, mais aussi plus adaptée à l'implémentation dans des circuits programmables.
Chapitre II La cryptographie
42
Propriétés du calcul binaire
Dans le calcul binaire, certaines opérations sont particulièrement simples. C'est notamment le
cas de la multiplication par 2 qu'on réalise par un simple décalage des bits vers la gauche.
Soit N, un nombre binaire arbitraire et 2N, son double :
N = 10101110
2 N = 101011100
Cette propriété simplifie considérablement les multiplications dans le champ de Galois.Dans
l’algorithme AES nous avons deux matrices constantes, la première ne compte que 3
valeurs différentes : 01, 02 et 03, la deuxième compte les valeurs suivante : 09, 0B, 0D, 0E ,
donc toutes les multiplications définies par la suite seront l'une de ces valeurs. Elles sont
toutes faciles à réaliser en binaire, mais montrent tout de même quelques particularités liées
au Champ de Galois :
• Multiplication par 01 ( 00000001 en binaire) :
Le nombre reste inchangé
• Multiplication par 02 ( 00000010 en binaire ) :
Les bits du nombre sont décalés vers la gauche, prenons par exemple : N = 10101110 , la
multiplication de N par 2 se fait comme suite :
� Décalage vers la gauche : 2N = 101011100
� Puisque les opérations se font dans un nombre fini de valeurs (champ de Galois)
GF (28) de 256 valeurs), le MSB de 2N= 101011100 doit être omis, nous aurons le résultat
intermédiaire suivant :
2N = 01011100
• Si le MSB (que nous venons d'omettre) était un '0', alors 2N est le résultat final de la
multiplication : 2N = 01011100
• Si par contre le MSB (que nous venons d'omettre) était un '1', ce qui est le cas dans cet
exemple, alors il faut encore additionner (XOR) le nombre binaire 00011011 ( 1B ) à 2N
afin de compenser la perte du MSB occasionnée par le décalage :
2 N ⊕ 00011011 = 01011100 ⊕ 00011011 = 01000111
2N = 01000111 c’est le résultat final.
• Multiplication par 03 ( 00000011 en binaire ) :
La multiplication par 03 peut être vue comme une multiplication par 02 suivie d'une
addition modulo 2 du nombre multiplié. On peut illustrer ceci par :
N * 0x03 = N * ( 0x02 + 0x01 ) = (N* 0x02) + (N * 0x01)
MSB
Chapitre II La cryptographie
43
Dans le reste, la multiplication est réalisée par une multiplication de 02 suivis d’une addition
modulo 2 selon le nombre.
Multiplication par 09 ( 00001001 en binaire )
N * 0x09 = N* ( 0x08 + 0x01 ) = ( N * 0x02 * 0x02 * 0x02 ) + ( N * 0x01 )
• Multiplication par 0B ( 00001011 en binaire )
N * 0x0B = N * ( 0x08 + 0x02 + 0x01 )
= ( N * 0x02 * 0x02 * 0x02 ) + ( N * 0x02 ) + ( N * 0x01 )
• Multiplication par 0D ( 00001101 en binaire )
N * 0x0D = N * ( 0x08 + 0x04 + 0x01 )
= ( N * 0x08 ) + ( N * 0x04 ) + ( N * 0x01 )
= ( N * 0x02 * 0x02 * 0x02 ) + ( N* 0x02 * 0x02 ) + ( N * 0x01 )
• Multiplication par 0E ( 00001110 en binaire )
N * 0x0E = N * ( 0x08 + 0x04 + 0x02 )
= ( N * 0x02 * 0x02 * 0x02 ) + ( N * 0x02 * 0x02 ) + ( N * 0x02 )
Le chiffrement
Lorsque les matrices seront formées, le processus de chiffrement peut commencer :
Bloc1
Première étape – Round 0 :
Consiste à combiner la matrice du texte clair (State) (voir Figure II.16) avec la clé originale.
Cette opération s'appelle Add Round Key. Elle consiste à additionner modulo 2 (OU exclusif
ou XOR) chaque byte de la matrice du texte clair avec son homologue de la matrice de la clé
originale (Key) (voir Figure II.16). On obtient ainsi une nouvelle matrice appelé « Etat ».
Elle constitue la matrice d'entrée de l'étape suivante.
Bloc 2
Deuxième étape – Rounds 1-9 :
Cette partie du processus de chiffrement dépend de la taille de la clé utilisée. Comme il a été
déjà montrer la taille de la clé change le nombre d’itération « N » . Chacune de ces N
itérations effectue successivement les quatre opérations détaillées ci-dessous :
a Sub Bytes Cette opération consiste à remplacer chaque byte de la matrice Etat par une autre
valeur. La substitution se fait à l'aide d'une table appelée S-Box et concrétise le principe de
confusion de Shannon. Les bytes que cette table contient sont les bytes de remplacement.
Chapitre II La cryptographie
44
La substitution se fait de la manière suivante, pour chaque élément de cette matrice, procéder
comme suit :
● Le premier caractère hexadécimal de l'élément indique une ligne de la S-Box tandis que le
deuxième indique une colonne.
● Le byte se trouvant à l'intersection ligne-colonne dans la S-Box est celui qui doit être
substitué à celui de la matrice Etat.
b. Shift Rows
Cette opération consiste à décaler des lignes dans la matrice Etat. En ce sens, elle garantit le
Principe de diffusion de Shannon. De faibles changements dans le texte clair impliquent de
grands changements dans le texte chiffré. Les décalages ne modifient pas les valeurs des
bytes, mais changent leur ordre et on obtient une nouvelle matrice Etat
Les décalages se font comme suit :
● La première ligne n'est pas décalée.
● La deuxième ligne est décalée de 1 byte vers la gauche.
● La troisième ligne est décalée de 2 bytes vers la gauche.
● La quatrième ligne est décalée de 3 bytes vers la gauche.
c. Mix Columns
Cette opération participe également au principe de diffusion de Shannon. Elle consiste à
multiplier une matrice constante avec la matrice Etat.
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15
3 04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75
4 09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84
5 53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF
6 D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8
7 51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2
8 CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73
9 60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB
A E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79
B E7 CB 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08
C BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A
D 70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E
E E1 F8 98 11 69 D9 8E 94 9B 1E 87 E9 CE 55 28 DF
F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16
Table IІ.17 : S-Box
Chapitre II La cryptographie
45
L'opération Mix Columns est particulièrement laborieuse puisque les Si-1 autres éléments de
la matrice doivent tous être calculés de cette manière (Si est le nombre d’élément de la
matrice Etat, pour AES-128, Si = 16 éléments, AES-192, Si = 24 éléments, AES-256, Si = 32
éléments)
•
Matrice constante matrice Etat matrice Résultat
d. Add Round Key
Lors du processus de chiffrement,AES transforme la clé (matrice Key). A chaque itération
(Round), une matrice clé différente est utilisée (RoundN Key). Ceci permet d'éliminer les
attaques liées à la clé en faisant disparaître la symétrie.
Pour obtenir les 10 nouvelles clés nécessaires AES procède à une opération appelée Key
Scheduling ou Key Expansion (cette opération sera expliquée au point suivant).
Si la clé change à chaque Round, l'opération Add Round Key reste simple. Elle consiste, tout
comme celle de la première étape, à additionner modulo 2 (XOR) la matrice Etat et la clé
itération en cours (RoundN Key).
Bloc 3 :
Troisième étape – Round 10 :
C’est une étape identique à l'un des N itérations de la deuxième étape. La seule différence
est que, dans cette dernière itération, l'opération Mix Columns n'est pas effectuée.
Extension de la clé (Key Expansion)
Il s'agit ici de voir comment AES opère pour déduire les N+1 clés secondaires dont il a
besoin pour aboutir au texte chiffré. On considère les deux matrices suivante Rcon ( elle est
donnée, et constante) et la Clé Originale (Key) avec la version 128,
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
S0 S1 S2 S3
S4 S5 S6 S7
S8 S9 S10 S11
S12 S13 S14 S15
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
Figure II.13 : L’opération Mix Columns pour AES version 128
Chapitre II La cryptographie
46
Clé original (key) Rcon (round constant word array)
Les quatre vecteurs composant la matrice Clé sont appelés Mots (Words, ce sont des mots de
32 bits). On commence par calculer le cinquième vecteur (Wi) :
Wi-4 Wi-1 Wi
K0 K1 K2 K3 ?
K4 K5 K6 K7 ?
K8 K9 K10 K11 ?
K12 K13 K14 K15 ?
On prend le vecteur Wi-1 auquel on applique une opération appelée RotWord qui consiste en
un simple décalage des quatre bytes du vecteur vers le haut. Au résultat on applique encore
l'opération Sub Bytes :
Wi-1 RotWord(Wi-1) SubBytes {RotWord(Wi-1)}
Le vecteur obtenu (Sub-Bytes {RotWord (Wi-1)}) doit encore être additionné modulo 2 avec
le vecteur Wi-4 ainsi que le premier vecteur de la matrice Rcon :
Wi-4 Rcon(colonne1) SubBytes{RotWord(Wi-1)} Wi
⊕
Le vecteur résultant de cette addition est Wi :
K0 K1 K2 K3
K4 K5 K6 K7
K8 K9 K10 K11
K12 K13 K14 K15
01 02 04 08 10 20 40 80 1b 36
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
K’3
K’7
K’11
K’15
K3
K7
K11
K15
K15
K7
K11
K3
K’’3
K’’7
K’’11
K’’15
01
00
00
00
K0
K4
K8
K12
K’3
K’7
K’11
K’15
⊕
Figure IІ.14 : Matrice utilisée dans l’extension des clés
Chapitre II La cryptographie
47
Il constitue le premier des quatre vecteurs de la deuxième clé :
Le deuxième vecteur de la deuxième clé s'obtient plus simplement que le premier. En effet, il
est donné par Wi = Wi-4 ⊕ Wi-1 :
Wi-4 Wi-1 Wi
Le troisième vecteur de la deuxième clé s'obtient de la même manière que le deuxième. On a
donc à nouveau Wi = Wi-4 ⊕ Wi-1 :
Wi-4 Wi-1 Wi
Le quatrième et dernier vecteur de la deuxième clé s'obtient de la même manière que les
deuxième et troisième (Wi = Wi-4 ⊕ Wi-1) :
Wi-4 Wi-1 Wi
Les quatre vecteurs de la deuxième clé sont maintenant définis. La matrice Key a doublé de
taille. Elle contient pour l'instant les clés des Rounds 0 et 1 :
K0 K1 K2 K3 K’’3
K4 K5 K6 K7 K’’7
K8 K9 K10 K11 K’’11
K12 K13 K14 K15 K’’15
K0 K1 K2 K3 K’’3 ?
K4 K5 K6 K7 K’’7 ?
K8 K9 K10 K11 K’’11 ?
K12 K13 K14 K15 K’’15 ?
K0 K1 K2 K3 K’’3 K’’1
K4 K5 K6 K7 K’’7 K’’5
K8 K9 K10 K11 K’’11 K’’9
K12 K13 K14 K15 K’’15 K’’13
K0 K1 K2 K3 K’’3 K’’1 K’’2
K4 K5 K6 K7 K’’7 K’’5 K’’6
K8 K9 K10 K11 K’’11 K’’9 K’’10
K12 K13 K14 K15 K’’15 K’’13 K’’14
K0 K1 K2 K3 K’’3 K’’1 ?
K4 K5 K6 K7 K’’7 K’’5 ?
K8 K9 K10 K11 K’’11 K’’9 ?
K12 K13 K14 K15 K’’15 K’’13 ?
K0 K1 K2 K3 K’’3 K’’1 K’’2 ?
K4 K5 K6 K7 K’’7 K’’5 K’’6 ?
K8 K9 K10 K11 K’’11 K’’9 K’’10 ?
K12 K13 K14 K15 K’’15 K’’13 K’’14 ?
K0 K1 K2 K3 K’’3 K’’1 K’’2 K’’3
K4 K5 K6 K7 K’’7 K’’5 K’’6 K’’7
K8 K9 K10 K11 K’’11 K’’9 K’’10 K’’11
K12 K13 K14 K15 K’’15 K’’13 K’’14 K’’15
Chapitre II La cryptographie
48
Round0 Key Round1 Key
Il reste à faire 9 fois l'intégralité de cette démarche d'extension de la clé pour trouver les 9
autres clés secondaires.
Round0 Key Round1 Key Round2 Key ……….. Round10key
S’il s’agit de AES-192 Rcon sera:
S’il s’agit de AES-256 Rcon sera :
Le déchiffrement
Lors de processus de déchiffrement toutes les opérations déjà défini lors du chiffrement sont
réversibles, pour déchiffrer on doit procéder comme suit :
� Le récepteur procède à l'extension de la clé de la même manière que l’émetteur a fait
lors du chiffrement.
K0 K1 K2 K3
K4 K5 K6 K7
K8 K9 K10 K11
K12 K13 K14 K15
K’’3 K’’1 K’’2 K’’3
K’’7 K’’5 K’’6 K’’7
K’’11 K’’9 K’’10 K’’11
K’’15 K’’13 K’’14 K’’15
K0 K1 K2 K3 K’’3 K’’1 K’’2 K’’3 ? ? ? ?
K4 K5 K6 K7 K’’7 K’’5 K’’6 K’’7 ? ? ? ?
K8 K9 K10 K11 K’’11 K’’9 K’’10 K’’11 ? ? ? ?
K12 K13 K14 K15 K’’15 K’’13 K’’14 K’’15 ? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
01 02 04 08 10 20 40 80 1b 36 72 E4
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
01 02 04 08 10 20 40 80 1b 36 72 e4 1c8 390
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
Chapitre II La cryptographie
49
� Les additions modulo 2 (XOR) effectuées lors de l'opération Add Round Key sont
réversibles (en effet, (A ⊕ B) ⊕ B = A).
� L'opération Sub Bytes est inversée en utilisant la table Box inverse (Inverse S-Box).
Si par exemple la S-Box indique le byte F7 (ligne 2, colonne 6), alors la Inverse S-Box
restituera le byte 26 (ligne F, colonne 7).
0 1 2 3 4 5 6 7 8 9 a b c d e F
0 52 09 6A D5 30 36 A5 38 BF 40 A3 9E 81 F3 D7 FB
1 7C E3 39 82 9B 2F FF 87 34 8E 43 44 C4 DE E9 CB
2 54 7B 94 32 A6 C2 23 3D EE 4C 95 0B 42 FA C3 4E
3 08 2E A1 66 28 D9 24 B2 76 5B A2 49 6D 8B D1 25
4 72 F8 F6 64 86 68 98 16 D4 A4 5C CC 5D 65 B6 92
5 6C 70 48 50 FD ED B9 DA 5E 15 46 57 A7 8D 9D 84
6 90 D8 AB 00 8C BC D3 0A F7 E4 58 05 B8 B3 45 06
7 D0 2C 1E 8F CA 3F 0F 02 C1 AF BD 03 01 13 8A 6B
8 3A 91 11 41 4F 67 DC EA 97 F2 CF CE F0 B4 E6 73
9 96 AC 74 22 E7 AD 35 85 E2 F9 37 E8 1C 75 DF 6E
A 47 F1 1A 71 1D 29 C5 89 6F B7 62 0E AA 18 BE 1B
B FC 56 3E 4B C6 D2 79 20 9A DB C0 FE 78 CD 5A F4
C 1F DD A8 33 88 07 C7 31 B1 12 10 59 27 80 EC 5F
D 60 51 7F A9 19 B5 4A 0D 2D E5 7A 9F 93 C9 9C EF
E A0 E0 3B 4D AE 2A F5 B0 C8 EB BB 3C 83 53 99 61
F 17 2B 04 7E BA 77 D6 26 E1 69 14 63 55 21 0C 7D
� Les décalages de l'opération Shift Rows sont inversés, c'est-à-dire effectués vers la droite.
� La multiplication matricielle de l'opération Mix Columns nécessite une autre matrice
Constante que celle utiliser en chiffrement. Une fois la matrice inverse obtenue, la
manipulation est la même que pour l'opération Mix Columns faite lors du chiffrement.
Inverse matrice constante :
0E 0B 0D 09
09 0E 0B 0D
0D 09 0E 0B
0B 0D 09 0E
Table IІ.18 : Inverse S-Box
Chapitre II La cryptographie
50
AES est un algorithme sûr car l’utilisation de la S-Box constitue une réelle difficulté pour les
cryptanalyses. L’opération Mix Columns combinée avec Shift Rows fait que, après des
nombreuses itérations, tous les bits de sortie dépendent de tous les bits d’entrée. Ceci rend
aussi la cryptanalyse difficile. L’utilisation des clés secondaires construites par extension de
la clé originale complique les attaques liées à la clé.
II.4.2 Chiffrement asymétrique ou à clé publique
Dans ce type de cryptographie, chaque utilisateur utilise deux clés liées mathématiquement.
• La première est privée et différente pour chaque utilisateur qui doit être gardée secrète.
• La deuxième est publique et qui est connue par tous les utilisateurs.
Dans la pratique, la clé publique sert à crypter les messages, et la clé privée sert à les
décrypter. Une fois le message crypté, seul le destinataire est en mesure de le décrypter.
II.4.2.1 Algorithme asymétrique RSA (Ronald Rivest, Adi Shamir, et Leonard Adleman) :
� Principe :
Cette algorithme de chiffrement est une méthode à clé publique qui repose sur certains
concepts de la théorie des nombres. Il a été nommé à partir des noms de famille de ses
inventeurs (Ronald Rivest, Adi Shamir, et Leonard Adleman).
Les grandes lignes de l’algorithme RSA sont montrées dans la (Figure II.16). Le principe
est très simple et en voici les principales étapes [7]:
Figure II.15 : Principe du chiffrement symétrique
Texte
en
clair
Texte
chiffré
Texte
chiffré
Texte
en
clair
+
+
Clé publique
Clé privée
Chapitre II La cryptographie
51
Pour mieux comprendre voici un exemple simple qui décrit les étapes de cet algorithme
décrit ci-dessus :
Exemple :
Soient les deux nombres premiers suivants ( On commence par choisir deux nombres
premiers quelconques ) : p=79 , q=127
La Clé publique : est calculée de la façon suivante :
• n = p x q = 79 x 127 = 10033
• a = 97 tel que le PGCD (a,(p-1)*(q-1)) = 1
Trouver 2 nombres premiers p et q
(P,q) sont secrets
Calculer n=p*q (n clé public µ=(p-1)*(q-1))
Choisir a / PGCD (a, µ)=1 (a clé public)
Trouver b /a*b=1(mod µ) (b clé privée)
Message en clair M
N =Ma (mod n)
W=Nb (mod n)
Chiffrer avec clé Public (n,a)
Message
chiffré
Message
en clair
Déchiffrer avec clé Privé (b)
Figure II.16 : Principe R.S.A
Chapitre II La cryptographie
52
La clé privée : est calculée de la façon suivante :
• b = 25 tel que a*b = 1 (mod (p-1)*(q-1))
• (p-1)*(q-1) =78 * 126 = 9828.
Message en clair : B O N
02 15 14 = M
Bloc1 Bloc2
0002 1514 devisé M en blocs de 4 caractères de droite vers gauche (On ajoute des
0 si M est non multiple de 4 caractères)
151497
mod (10033) =2500
Chiffrer chaque bloc
000297
mod (10033) =9208
Message codé est : 9208 2500
� Les inconvénients de l’algorithme RSA :
La principale faiblesse de l’algorithme RSA provient des temps de calculs nécessaires au
cryptage.
Donc, on ne les emploiera que pour transmettre des données courtes (de quelques octets) tels
que les clés privées.
Les crypto systèmes à clés publiques tel RSA sont également moins performant au niveau du
cryptage proprement dit. Une clé publique de 512 bits (utilisé pour le chiffrage RSA) offre
approximativement le même niveau de sécurité qu’une clé de 40 bits utilisée pour un
algorithme à clé privé (type IDEA).
Position de
La lettre
dans
L'alphabet
Chapitre II La cryptographie
53
II.4.3 Algorithme hybride
II.4.3.1 Algorithme du PGP :
� Le principe:
PGP est un crypto système (système de chiffrement) inventé par Philip Zimmermann, un
analyste informaticien.
PGP est une combinaison des fonctionnalités de la cryptographie de clé publique et de la
cryptographie conventionnelle. PGP est donc un système de cryptographie hybride.
Lorsqu'un utilisateur chiffre un texte avec PGP, les données sont d’abord compressées. Cette
compression des données permet de réduire le temps de transmission par modem,
d'économiser l'espace disque et, surtout, de renforcer la sécurité cryptographique.
Ensuite, l'opération de chiffrement se fait principalement en deux étapes :
• PGP crée une clé secrète IDEA de manière aléatoire, et chiffre les données avec cette clé.
• PGP crypte la clé secrète IDEA et la transmet au moyen de la clé RSA publique du
destinataire.
De même, l'opération de décryptage se fait aussi en deux étapes :
• PGP déchiffre la clé secrète IDEA au moyen de la clé RSA privée.
• PGP déchiffre les données avec la clé secrète IDEA précédemment obtenue.
Cette méthode de chiffrement associe la facilité d'utilisation du cryptage de clé publique à la
vitesse du cryptage conventionnel. Le chiffrement conventionnel est environ 1 000 fois plus
rapide que le cryptage de clé publique. Le cryptage de clé publique résout le problème de la
distribution des clés. Utilisées conjointement, ces deux méthodes améliorent la performance
et la gestion des clés, sans pour autant compromettre la sécurité. Il est très rapide et sûr ce qui
le rend quasiment impossible à cryptanalyser [8].
II.4.4 Cryptographie Quantique
II.4.4.1 Introduction
Le chiffrement parfait existe: il s'agit du "One-Time Pad" de Vernam, dit aussi masque
jetable, utilise notamment pour chiffrer le téléphone rouge entre Moscou et Washington
pendant la guerre froide. Le problème principal de ce protocole est le transport des clés:
Celles- ci doivent être aussi grandes que le message, et la valise diplomatique n'est pas à la
portée du particulier. Les algorithmes à clé publique, développés auparavant, permettent de
Chapitre II La cryptographie
54
résoudre ce problème mais rien ne stipule qu'ils sont inviolables. Le protocole utilise ici
permet la création d'un canal d'échange de clé dont la sûreté repose sur des lois physiques
inviolables.
II.4.4.2 Bases théoriques
a) Des clés espionnées
La physique classique (à notre échelle) permet la mesure de toutes les propriétés physiques.
L’information est codée à l'aide de propriétés physique mesurables d'un objet ou d'un signal
(papier, bande magnétique, signal radio...), un espion pourrait mesurer ces propriétés sans
qu'il soit possible de s'en rendre compte.
Dans le monde quantique (a très petite échelle), cette possibilité disparaît. Les effets
quantiques se manifestent pour des objets microscopiques, comme les atomes ou les photons
("particules" de lumière), ou l'acte de mesurer n'est alors pas uniquement un processus passif.
Il est alors possible de concevoir un canal quantique - qui transporte des signaux bases sur
des phénomènes quantiques - ou l'écoute même de ces signaux perturbe irrémédiablement ces
derniers, ce qui rend impossible de lire deux fois L’information [23]. C'est une des
conséquences du principe de Verner Heisenberg.
b) Photons et polarisation
La plus petite unité de la lumière, le photon, peut être assimilée à un minuscule champs
électrique oscillant. La direction de l'oscillation est la polarisation du photon. La lumière
naturelle est composé de photons dont les polarisations sont quelconques, cependant, en
faisant passer cette lumière dans un filtre polariseur, il est possible de ne garder que les
photons dont la polarisation est parallèle au filtre.
Nous sommes donc capables d'émettre des photons ayant une polarisation de 0°, 45°, 90°, et
135°. On peut détecter d'une façon certaine grâce a un cristal de calcite placé a 0° la
polarisation de photons polarises a 0° ou 90°.
Si le photon possède une polarisation de 45° ou de 135° avec un cristal toujours a 0°, le
résultat sera aléatoire, il donnera 0° ou 90°. Maintenant, si le cristal est place a 45°, il permet
de détecter de façon certaine les polarisations diagonales mais de manière aléatoire les
polarisations rectilignes (0° ou 90°). De plus, il est impossible de lire la polarisation sans la
modifier (principe d'incertitude de Heisenberg), on ne peut donc pas effectuer plusieurs
mesures sur un même photon, et donc connaître de façon certaine la polarisation de n'importe
quel photon. Voici les bases avec lesquelles nous allons construire un protocole parfaitement
sur. Dans la suite, pour simplifier le fonctionnement du cristal, on le considérera comme un
filtre (et on le nommera ainsi) laissant ou non passer le photon suivant sa polarité. D’un objet
ou d'un signal sans que ces propriétés ne soient perturbées.
Chapitre II La cryptographie
55
II.4.4.3 Description du protocole
Voici un exemple de protocole permettant de transmettre une clé composée de bits d'Alice a
Bob. Ils possèdent deux canaux: un quantique avec lequel ils peuvent échanger des photons
polarises et un canal classique non sécurise ou ils peuvent discuter. Ils conviennent que les
photons polarisés à 0° ou 45° représentent 0, et ceux polarisés à 90° ou 135° représentent 1.
Alice émet, sur le canal quantique, une suite de photons polarisés au hasard parmi 0°, 45°,
90° et 135°. A l'autre bout, Bob reçoit les photons et mesure aléatoirement soit leur
polarisation rectiligne (filtre placé à 0°), soit leur polarisation diagonale (filtre placé a 45°).
Si le photon traverse le filtre, Bob note 0, sinon il note 1.
Bien sûr, certaines mesures de Bob (en moyenne, une sur deux) n'ont pas d'intérêt : il a pu
essayer de mesurer la polarisation rectiligne d'un photon polarisé à 45°, ce qui n'a pas de sens
et donne un résultat aléatoire (par exemple, le photon a été bloque par le filtre, Bob note donc
1 alors qu'Alice avait envoyé 0). Pour éliminer ces bits sans sens, il indique à Alice, par le
canal radio, quelle type de mesure (rectiligne ou diagonale) il a fait pour chaque photon. Par
le même canal radio, Alice lui indique quelles sont les mesures correctes (photon polarisé à
0° ou 90° avec filtre rectiligne, photon a 45° ou 135° avec filtre diagonal).
Il faut encore vérifier que ce protocole est sur. Si caroline écoute le canal quantique, elle peut
faire la même chose que Bob, c'est à dire intercepter les photons en plaçant un filtre
polarisant tantôt rectiligne, tantôt diagonal. Pour que Bob ne se doute de rien, elle doit
remettre un photon polarisé. Elle va essayer d'envoyer le même photon qu'Alice, mais
comme elle a une chance sur deux d'avoir choisi le mauvais filtre, elle a une chance sur deux
de se tromper. Quand Bob reçoit le photon, s'il est mal polarisé par Caroline, il a une chance
sur deux d'avoir un résultat différent d'avec le photon original, et finalement, pour chaque
photon intercepté par Caroline, il y a une chance sur 4 que Bob reçoive une information
erronée.
Alice et Bob décident alors de "sacrifier" une partie de leur clé commune. Parmi tous les bits
qu'ils ont en commun, ils en choisissent quelques-uns au hasard, et les compare publiquement
par le canal radio : s'ils sont différents, ils ont une preuve qu'ils ont été écoutés, et ils oublient
vite cette clé. En comparant suffisamment de bits, ils ont une garantie presque absolue de ne
pas avoir écouté.
II.4.5 Cryptographie par courbe elliptique
Les spécialistes en cryptographie font de plus en plus appel à une technique qui s'appuie sur
des courbes elliptiques, proposée indépendamment par Victor Miller et Neal Koblitz en 1985
[23]. La théorie des courbes elliptiques en général est un domaine riche et a donné de
nombreux résultats, dont la preuve du dernier théorème de Fermat par Andrew Wiles.
Chapitre II La cryptographie
56
Une courbe elliptique est un objet très simple mais qui a des propriétés tout a fait
surprenantes. Elles ont normalement la forme suivante:
y2+ 1a xy+ 3a y=x
3+ 2a x
2+ 4a x+ 6a
Pour leur usage en cryptographie, 1a , 2a et 3a doivent être égaux à 0. Comme les
cryptographes ont l'habitude de renommer 4a =a et 6a =b, on obtient y2=x
3+ax+b
Un exemple typique de courbe elliptique est donne sur la figure ci-dessous. Son équation est
y2=x
3-5x
2+3.
Figure II.17 : exemple de courbe elliptique
II.4.5.1 Addition de deux points
Prenons deux points A et B sur cette courbe. En général, la courbe passant par A et B
recoupe la courbe en un troisième point de coordonnées (x, y). Son symétrique (x, -y) est lui
aussi sur la courbe et on le désigne par A+B pour signifier qu'il est construit a l'aide de A et
B. La chose surprenante est que cette opération "+" possède toutes les propriétés de l'addition
des nombres. C'est-à-dire que l'on peut faire tous les calculs de type addition, soustraction et
division avec un reste entier que nous faisons sur la droite des nombres réels sur cet objet
tordu que constitue une courbe elliptique. Il est possible, comme l'ont démontre Miller et
Koblitz, de coder avec cette opération bizarre au lieu de travailler avec l'addition usuelle. Il
en résulte une plus grande complexité des calculs qui fait dire aux spécialistes que le
chiffrement par la méthode des courbes elliptiques avec une clé de 192 bits assure le même
niveau de sécurité qu'une clé de 1024 bits pour la méthode RSA. Il est donc probable que
cette méthode sera de plus en plus utilisée pour transmettre les clés.
Chapitre II La cryptographie
57
Règles de l'addition
Soit la courbe elliptique cryptographique y2 = (x
3 + ax + b) mod p. On reconnaît l'équation
déjà vue ci-dessus, sauf que l'on travaille modulo p. Le nombre p doit être un nombre
premier.
Lors des calculs, il arrive parfois que l'on doive faire une division par 0. Quand cela arrive, le
point résultat sera appelé "infini".
infini+infini = infini
( 1x , 1y ) + infini = ( 1x , 1y )
( 1x , 1y )+( 1x ,- 1y )= infini
Si 21 xx ≠ , ( 1x , 1y )+( 2x , 2y )=( 3x , 3y )avec
3x =(k2- 1x - 2x ) mod p
3y = (k( 1x - 3x )- 1y ) mod p
où k = ( 2y - 1y ) . ( 2x - 1x )-1
mod p
Si 1y ≠ 0, ( 1x , 1y ) + ( 1x , 1y )= 2( 1x , 1y )=( 3x , 3y ), avec
3x = (k2-2 1x ) mod p
3y = (k( 1x - 3x )- 1y ) mod p
où k = (3 1x2+a) . (2 1y )
-1 mod p
On remarque que pour calculer k, on doit trouver l'inverse d'un nombre modulo p. Pour
trouver cet inverse, on utilise l'algorithme d'Euclide étendu.
II.4.5.2 Multiplication d'un point par un nombre entier
On remplace la multiplication par une série d'additions. Prenons un exemple.
Soit la courbe y2 = (x
3 + x + 2) mod 11.
Calculons d.P, avec d=3 et P=(4, 2). On peut vérifier que le point P appartient bien à la
courbe elliptique. On peut remplacer 3.P par P + P + P.
Calculons d'abord P+P. D'après la règle 5, P+P = (4, 2) + (4, 2) = (8, 4) = 2.P.
D'après la règle 4, 2.P + P = (8, 4) + (4, 2) = (2, 10) = 3.P.
II.4.5.3 Echange de clés
Alice et Bob se mettent d'accord (publiquement) sur une courbe elliptique E(a,b,p), c'est-à-
dire qu'ils choisissent une courbe elliptique y2 = (x
3+ax
2+b) mod p. Ils se mettent aussi
d'accord, publiquement, sur un point P situé sur la courbe.
Secrètement, Alice choisit un entierA
d , et Bob un entier B
d . Alice envoie à Bob le point
Ad P, et Bob envoie a Alice
Bd P. Chacun de son cote, ils sont capables de calculer
Ad
Chapitre II La cryptographie
58
(B
d P)= B
d (A
d P)=( A
dB
d )P, qui est un point de la courbe, et constitue leur clé secrète
commune.
II.4.5.4 Sécurité
Si Steve a espionné leurs échanges, elle connaît E(a,b,p), P, A
d P et B
d P. Pour pouvoir
calculer A
dB
d P, il faut pouvoir calculer A
d connaissant P et A
d P. C'est ce que l'on appelle
résoudre le logarithme discret sur une courbe elliptique. Or, actuellement, si les nombres sont
suffisamment grands, on ne connaît pas de méthode efficace pour résoudre ce problème en
un temps raisonnable.
II.4.5.5 Inconvénients
La théorie des fonctions elliptiques est complexe, et encore relativement récente. Il n'est pas
exclu que des trappes permettent de contourner le problème du logarithme discret.
La technologie de cryptographie par courbe elliptique a fait l'objet du dépôt de nombreux
brevets a travers le monde. Cela peut rendre son utilisation très coûteuse!
II.5 Le hachage
Une bonne cryptographie doit pouvoir offrir une garantie de l'intégrité des informations. En
effet, il ne doit pas être possible de pouvoir modifier des informations cryptées de façon
totalement transparente. Un processus de vérification de l'intégrité du message (crypté et en
clair) doit être mis en place. Ce processus est réalisé par une fonction de hachage.
Une fonction de hachage (parfois appelée fonction de condensation) est une fonction
permettant d'obtenir un condensé (appelé aussi haché) d'un texte, c'est-à-dire une suite de
caractères assez courte représentant le texte qu'il condense.
Les algorithmes de hachage les plus utilisés actuellement sont :
• MD5 (MD signifiant Message Digest),
• SHA-1 (Secure Hash Algorithm 1),
• SHA-2 (Secure Hash Algorithm 2).
• RIPEMD-160 (Ripe Message Digest)
En expédiant un message accompagné de son haché, il est possible de garantir l'intégrité
d'un message, c'est-à-dire que le destinataire peut vérifier que le message n'a pas été altéré
(intentionnellement ou de manière fortuite) durant la communication.
Chapitre II La cryptographie
59
Lors de la réception du message, il suffit au destinataire de calculer le haché du message reçu
et de le comparer avec le haché accompagnant le document. Si le message (ou le haché) a été
falsifié durant la communication, les deux empreintes ne correspondront pas [4].
II.6 Le certificat
C'est un document électronique qui fait correspondre une clé à une entité (personne,
entreprise, ordinateur...). Cette correspondance est validée par une autorité de certification
(Certificate Authority : CA). Ces certificats sont utilisés pour identifier une entité. Ce
certificat est normalisé (norme X.509). Concrètement, les données utilisateur (identité du
propriétaire de la clé, la clé publique et l'usage de la clé) sont elles mêmes signées par
l'autorité de certification, en y incluant certaines données propres (période de validité du
certificat, l'algorithme de cryptage utilisé, numéro de série, etc...).
Les certificats sont des petits fichiers divisés en deux parties :
• La partie contenant les informations
• La partie contenant la signature de l'autorité de certification
La structure des certificats est normalisée par le standard X.509 qui définit les informations
contenues dans le certificat :
• Le nom de l'autorité de certification
• Le nom du propriétaire du certificat
• La date de validité du certificat
• L’algorithme de chiffrement utilisé
• La clé publique du propriétaire
L'ensemble de ces informations est signé par l'autorité de certification, cela signifie qu'une
fonction de hachage crée une empreinte de ces informations, puis ce condensé est chiffré à
l'aide de la clé publique de l'autorité de certification, clé publique ayant été préalablement
largement diffusée ou elle-même signée par une autorité de niveau supérieur.
Lorsqu'un utilisateur désire communiquer avec une autre personne, il lui suffit de se procurer
le certificat du destinataire. Ce certificat contient le nom du destinataire, ainsi que sa clé
publique et est signé par l'autorité de certification. Il est donc possible de vérifier la validité
du message en appliquant d'une part la fonction de hachage aux informations contenues dans
Chapitre II La cryptographie
60
le certificat, en déchiffrant d'autre part la signature de l'autorité de certification avec la clé
publique de cette dernière et en comparant ces deux résultats.
II.7 La signature digitale
C'est un code électronique unique qui permet de signer un message codé. Cette signature
permet d'identifier l'origine du message : elle a la même fonction qu'une signature "à la
main". C'est la clé privée qui permet de signer, et la clé publique qui permet de vérifier cette
signature.
II.8 Conclusion
La cryptographie a donc connu une rapide évolution en s’enrichissant de nouvelles
techniques de chiffrement et c’est en partie du à deux facteurs essentiels [12] :
1. L’irruption des mathématiques et de l’informatique.
2. le développement des moyens de télécommunication.
Qui a eu pour effet de multiplier ses activités .Avant elle n’avait pour rôle que de protéger un
texte écrit ; maintenant elle s’étend dans différents domaines, pour cela il faut que la
cryptographie avance, c'est à dire qu'il faut toujours chercher de nouveaux algorithmes plus
puissants même si ceux utilisés aujourd'hui sont fiables. Et dans ce cadre de recherche des
méthodes cryptographique plus puissant, on va exploiter le mécanisme de la génétique pour
proposer un algorithme cryptographique performant pour sécuriser des communications en
mode ad hoc.
Chapitre III
LA CRYPTOGAPHIE PAR ALGORITHMES GENETIQUES
III.1 Introduction
III.2 Algorithmes génétiques
III.2.1 Définition et origine
III.2.2 Corps d'un algorithme génétique
III.2.3 Evaluation des individus
III.3 Naissance des algorithmes génétiques
III.3.1 Les algorithmes génétiques parallèles
III.3.2 Extension vers les problèmes d'optimisation
III.3.3 Extension vers les problèmes d'ordonnancement
III.4 Recommandation
III.5 Applications
III.6 Introduction à la cryptographie par algorithmes génétiques
III.7 Description de l’algorithme de chiffrement
III.8 Squelette de l’algorithme
III.9 L’Algorithme par étapes
III.10 Conclusion
Chapitre III La cryptographie par les algorithmes génétiques
61
Partie A : Présentation des algorithmes génétiques
Vu les travaux de recherche récente qui utilise les algorithmes génétiques dans le domaine de la
cryptographie (‘’Genetic Algorithm in Crptography by Bethany Delman Rocher institute of
technology 2004 ‘’ , ‘’ A New Encryption and Decryption Algorithm combining the feautures of
genetic algorithm and cryptography’’ , ‘’Artificial intelligence Genetic Algorithm in
Cryptography … ) nous donnons dans cette partie une présentation détaillé du fonctionnement
des algorithmes génétiques .
III.1 Introduction
Le succès des méthodes basées sur les algorithmes évolutionnistes n'a cessé de grandir
depuis leurs apparitions, notamment dans le domaine de la recherche opérationnelle et
l'intelligence artificielle. Cependant, leurs applications à certains problèmes comme les
problèmes d'ordonnancement sont limités, par conséquent des extensions ont été développées
[28] ce qui a donné naissance aux algorithmes génétiques.
III.2 Algorithmes génétiques
III.2.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 adaptés 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 à des problèmes d'optimisation [29], 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érisé 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 à la reproduction sexuée des individus dans une population en
respectant les phénomènes d'hérédité. Ainsi, lorsque deux individus considérés 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 à la sélection naturelle, ce
qui n'est pas le cas d'individus plus faibles. La mutation représente les modifications de l'empreinte
Chapitre III La cryptographie par les algorithmes génétiques
62
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érisé 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 opérateurs 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 à 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. L'exécution d'un tel algorithme doit contenir, à partir d'une
population initiale, après de nombreuses générations, à une population initiale où les individus
sont tous très forts, en d'autres termes, à un ensemble de meilleures solutions au problème
considéré.
Donc : Qu’est ce qu’un algorithme génétique ? Un algorithme génétique est une méthode de
recherche itératif, dont le but est d’optimiser une fonction de coût (ou fitness) [27]. Il utilise à la
fois les principes de la survie des structures les mieux adaptées et les échanges d’informations
pseudo aléatoires, pour former un algorithme d’exploration qui possède certaines caractéristiques
de l’exploration humaine [9].
En résumé, pour mettre en œuvre un AG, il est nécessaire de disposer :
- D'une représentation génétique du problème, c'est à dire d'un codage
approprié 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'opérateurs génétiques adaptés 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 opérateur.
III.2.2 Corps d'un algorithme génétique
Chapitre III La cryptographie par les algorithmes génétiques
63
Etape 0 : Définir un codage du problème
Etape 1 : Créer une population initiale P0 de q individus {X1, 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 opérateurs génétiques
1-Coisement : Appliquer l'opération de croisement aux paires sélectionnées
2-Mutation : Appliquer la mutation aux individus issus du croisement
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 souhaité
Figure III.1 : Un algorithme génétique
Nous détaillons dans les paragraphes suivants les cinq étapes de l'AG.
III.2.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 codé par un chromosome ou un génotype [29].
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 utilisé. Le chromosome est alors un vecteur dont les éléments ou les gènes
appartiennent à {0,1}. Nous verrons plus loin que dans l'extension des AG, d'autres types de
codage sont utilisés.
III.2.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 recommandé
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
Chapitre III La cryptographie par les algorithmes génétiques
64
l'optimum. Cela dit, dans le cas où l'on ne connaît rien du problème à résoudre, il est essentiel
que la population initiale soit répartie sur l'espace de recherche.
III.2.2.3 Evaluation des individus
Evaluer un individu ou un chromosome consiste à 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 à optimiser pour
l'individu x. Si ce critère doit être maximisé, il peut servir directement de mesure de la force.
Dans le cas où l'on désire minimiser ce critère, il est nécessaire de le complémenter pour se
ramener à un cas de maximisation. Goldberg [30] propose donc de calculer la force F(x) d'un
individu x de la façon suivante :
où Cmax peut être un coefficient fixé 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.
III.2.2.4 Sélection
La sélection consiste à choisir les individus à 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 placés 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 [30]. par rang de classement
dans la population [31], par tournoi et par élitisme.
Sélection de la roulette (Roulette Wheel Selection)
C'est la plus classique et la plus utilisée. Nous décrivons son processus ci-dessous :
On affecte à chaque individu xi une probabilité d'apparition p(xi), appelée encore force
relative :
Cmax-C(x) Si C{x) > 0
F{x)=
0 Sinon
Chapitre III La cryptographie par les algorithmes génétiques
65
La sélection d'un individu se fait de la manière suivante.
Soit qi= la ∑=
i
k
kxP1
)( 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:
X1 si q1 ≤ r Ou
.Xi si ii
qrq ≤<−1 pour 2<i<q
q étant le nombre d'individu dans la population.
Ce processus est répété 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é.
Sélection par rang de classement
Dans ce schéma de sélection, les individus d'une population sont classés dans une liste selon
l'ordre croissant de leur évaluation, ensuite la sélection est proportionnelle à leur rang dans la
liste de la population [31]. 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 G {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.
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
Chapitre III La cryptographie par les algorithmes génétiques
66
probabilité doit être grande (entre 70% et 100%). A partir de q paires, on détermine ainsi q
individus pour la reproduction.
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
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.
III.2.2.5 Opérateurs génétiques
Les parents sélectionnés sont introduits dans le bassin de reproduction où ils seront de
nouveaux choisis aléatoirement pour voir leurs chromosomes subir des transformations par
les opérateurs 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.
a) 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 tiré 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 III.2 : Croisement '1-point'.
Ce processus est appliqué à 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 effectué dans le chromosome. Cette notion est généralisée
au croisement 'k-points' où k points de coupe sont effectués dans le chromosome, générant
Chapitre III La cryptographie par les algorithmes génétiques
67
k+1 sous chromosomes qui sont re-combiné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-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 III.3 : Croisement '2-points'
b) Opérateur de mutation
L'opérateur de mutation est appliqué, 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 à modifier sa valeur.
III.2.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 basé
sur le critère de convergence.
III.3 Naissance des algorithmes génétiques
Les AG ainsi introduits, ont retenu l'attention de nombreux chercheurs et praticiens de l'optimisation,
en raison de leurs qualités particulières. Cependant, le codage binaire des solutions constitue un frein
majeur à l'utilisation des AG. En effet, ce type de codage s'est révélé insuffisamment adapté à des
problèmes d'optimisation avec des variables réelles, à des problèmes nécessitant la représentation de
permutations, ou d'autres problèmes complexes. Des extensions des AG utilisant d'autres types de
codages et d'autres opérateurs génétiques, tout en conservant l'esprit des AG ont été proposées.
Parmi les principales extensions des AG nous en citons :
111.3.1 Les algorithmes génétiques parallèles
Dans cette classe d'algorithmes, on cherche à améliorer parallèlement chaque individu par
la méthode du Hill-Climbing , puis chaque individu s'accouple avec un autre individu de son
voisinage. Il n'y a donc plus de sélection comme dans les algorithmes génétiques classiques.
Chapitre III La cryptographie par les Les algorithmes génétiques
68
Les individus évoluent en parallèle, sans contrôle central. Un exemple d'AG parallèle est décrit
par Mühlenbein H. [32].
111.3.2 Extension vers les problèmes d'optimisation
Dans un AG, quand on est devant un problème à n variables réelles, on pourra le représenter par
un chromosome codé sous la forme d'un vecteur composé de n réels. En fait, la représentation
binaire a quelques inconvénients lorsqu'elle est appliquée à des problèmes de plusieurs variables
avec une grande précision numérique.
A titre d'exemple, pour un problème à 100 variables comprises dans un intervalle réel [-500 ,
500] et pour une précision requise de six chiffres après la virgule, la taille du chromosome est
3000 [28]. Un tel chromosome engendre un espace de taille 101000. C.Z. Janikow et
Z.Michalewicz ont confirmé par des expérimentations que le codage réel augmente la rapidité
de l'algorithme et apporte la précision dans les résultats ainsi ils ont montré que les résultats
sont uniformes d'un essai à l'autre [33].
Des opérateurs de croisement et de mutation adaptés à ce genre de codage ont été proposés tels
que : le croisement arithmétique [28] défini comme combinaison linéaire de deux vecteurs ou
chromosomes, la mutation uniforme [32] et non uniforme [33].
111.3.3 Extension vers les problèmes d'ordonnancement
III.3.3.1 Codage
Dans le cas de problèmes d'ordonnancement, on utilise le codage de permutation dans lequel
les gènes d'un chromosome représentent des opérations et l'ordre des gènes dans le
chromosome indique la séquence de ces opérations. Dans ce cas le croisement simple des AG
n'est plus applicable car il risque de donner des solutions non admissibles. En fait, si on considère
deux chromosomes possibles représentés par les chromosomes :
C1 = A B C D et C2 = D A B C.
Supposons que le point de croisement est au centre des chromosomes, on obtient alors deux
chromosomes fils aberrants F1 = A B B C et F2 = D A D C, car une même opération apparaît
plusieurs fois. Ce problème nécessite d'améliorer le codage des permutations et de concevoir
des opérateurs génétiques qui préservent chaque gène mais qui modifient leur ordre. Dans ce
contexte un codage binaire pour les permutations a été conçu de la manière suivante :
Chapitre III La cryptographie par les Les algorithmes génétiques
69
Etant donné une permutation de n éléments, on peut considérer la permutation comme étant
la suite des entiers 1,2, . . . n, on obtient facilement une représentation en binaire équivalente, il
suffit de prendre la partie triangulaire supérieure stricte (sans aucun terme de la diagonale) de la
matrice de précédence associée M telle que :
Mij = 1 si et seulement si i est avant j dans la permutation et
Mii = 1 par convention.
Cette matrice M est transitive et antisymétrique. Elle a également la propriété de n'avoir
qu'une et une seule ligne comportant exactement k valeurs 1 pour k variant de 1 à n et qu'une et
une seule colonne comportant exactement k valeurs 0 pour k variant de 0 à n-1. Cette matrice
est de taille n2.
Parmi les meilleurs exemples de problèmes où le codage de permutation a donné de très bons
résultats est le problème du voyageur du commerce en anglais "Travelling Salesman problem"
(TSP). Dans ce codage, chaque chromosome est une chaîne de nombres.
Exemple : Un vendeur doit distribuer ou livrer des marchandises à 9 villes. Il faut trouver un ordre de
parcours des villes permettant de réduire au minimum la distance parcourue.
C1= 1 5 3 2 6 4 7 9 8
C 2= 8 5 6 7 2 3 1 4 9
C1 et C2 sont deux chromosomes distincts. Chacun d'eux indique l'ordre des villes dans lesquelles le
vendeur les visitera.
III.3.3.2 Opérateurs génétiques adaptés
Croisement
Des différents croisements ont été définis pour les types précédents de codage. A titre d'exemples
nous citons : le croisement de Nakano &Yamada [35], le croisement simple binaire de permutation , le
croisement uniforme de permutation [36] pour le codage de permutation binaire et le croisement PMX
conçu par Goldberg & Lingle [30] pour résoudre le problème du voyageur de commerce. Nous en
présentons ci-dessous, trois autres types fréquemment utilisés.
- Croisement MPX (Maximal Préservative X)
Ce croisement a été proposé par Mülhenbein [32] et [37] pour le problème du voyageur de
commerce. L'idée de cet opérateur est d'insérer une partie du chromosome d'un parent dans le
Chapitre III La cryptographie par les Les algorithmes génétiques
70
chromosome de l'autre parent de telle façon que le croisement résultant soit le plus proche possible
de ses parents. C'est un croisement à deux points. Les deux fils sont obtenus de manière symétrique.
Par un exemple nous illustrons le fonctionnement.
Exemple :
Figure III.4: Croisement MPX
La zone de croisement est comprise entre les positions 5 et 9 . La première étape consiste à
recopier la zone de croisement du parent 1 sur le fils 1. Ensuite, les gènes du fils qui ne sont pas
dans la zone de croisement sont complétés de la façon suivante: Le ième
gène du parent2 est
recopié sur le ième
gène du fils 1 si cette recopie respecte les contraintes (ne crée pas une
tournée incohérente). Sinon, le ième gène du parent1 est recopié sur le ième
gène du fils 1 si
cette recopie ne crée pas de doublons.. Si les deux cas précédents ne peuvent pas s'appliquer, le
ième
gène du fils 1 reçoit un gène de la zone de croisement du parent 2 qui respecte les contraintes
(premier non pris). Ce croisement est appliqué aux individus sélectionnés avec un taux bien
précis. Le meilleur taux est de l'ordre de 60% à 100% [37] .
-Croisement d'ordre à deux points OX
Ce croisement a d'abord été proposé par Davis [31], puis modifié par Starkweather T. et
al. [38]. C'est un croisement à deux points. La zone interne du parent 2 est utilisée pour le fils 1
et la zone interne du parent 1 est utilisée pour le fils 2. Ensuite, en commençant par la troisième
zone et en poursuivant par la première, les valeurs manquantes de fils 1 sont copiés dans l'ordre
du parent 1 (pour fils 2, on prend l'ordre de parent 2).
Figure III.5 : Croisement OX
Chapitre III La cryptographie par les Les algorithmes génétiques
71
-Croisement d'ordre à deux points linéaires ou croisement LOX
Il a été proposé par Falkenauer et Bouffouix [39] comme une amélioration du croisement OX pour la
résolution du problème d'ordonnancement de type « job-shop ». Le début est similaire à OX, mais on
termine autrement : en commençant par la première zone et en poursuivant par la troisième, les valeurs
manquantes de fils 1 sont copiés dans l'ordre du parent 1 (pour fils 2, on prend l'ordre du parent 2).
Mutation
Les individus de la population issue du croisement vont ensuite subir un processus de mutation
avec une probabilité Pmut. Comme pour les croisements, de nombreuses méthodes de mutation
ont été développées dans la littérature du domaine. Nous présentons ici le plus simple qui
consiste à inverser les gènes de deux chromosomes choisis aléatoirement. Cette méthode est
illustrée sur la figure ci-dessous.
Figure III.6 : Mutation d'un individu
III.4 Recommandations
Pour en finir, nous citons quelques recommandations concernant le choix des valeurs des
paramètres. En effet, d'après Grefenstette [40] les valeurs des paramètres doivent être choisies
avec les considérations suivantes :
• Taille de la population
Elle doit être judicieusement choisie en fonction de la taille du problème et du code.
- Trop faible : l'AG n'a pas assez d'échantillons de l'espace de recherche.
- Elevée:l'AG est plus informé.Une taille élevée prévient contre la convergence prématurée.
- Trop élevée : le nombre élevé d'évaluations de la fonction objective par génération ralentit la
convergence.
• Taux de croisement
Plus le taux de croisement Pcros est élevé, plus il y aura de nouvelles structures qui
apparaissent dans la population.
- Trop élevé : les bons individus risquent de pas être cassés trop vite par rapport à
l'amélioration que peut apporter la sélection.
- Trop faible : la recherche risque de stagner.Le taux habituel est choisi entre 60% et 100%.
• Taux de Mutation
La mutation est un opérateur secondaire pour introduire la diversité dans la population. Son taux
d'application Pmut est choisi entre 0.1% et 5%.
Chapitre III La cryptographie par les Les algorithmes génétiques
72
- Trop élevé : le taux de mutation rend la recherche trop aléatoire ;
- Trop faible : la recherche risque de stagner.
Si la taille de la population est faible, un taux de croisement faible doit être combiné avec un taux
de mutation élevé. Mais sur cette étude de l'influence des paramètres, Grefenstette suggère
que la performance d'un AG dépend plus du codage et de la fonction d'évaluation que de
l'optimisation de ses paramètres [40].
III.5 Applications
Les domaines d’applications sont multiples :
• optimisation de fonctions numériques difficiles (discontinues…)
• traitement d’image (alignement de photos satellites, reconnaissance de suspects…)
• optimisation d’emplois du temps.
• optimisation de design.
• contrôle de systèmes industriels.
• apprentissage des réseaux de neurones.
Partie B : Contribution
Après la présentation des algorithmes génétiques nous abordons dans cette partie :
- l’idée détaillé d’utiliser les algorithmes génétiques pour réaliser un algorithme cryptographique
- Notre proposition d’un nouveaux opérateurs génétiques nommé bestof2 qui est plus adapté a notre
problème.
III.6 Introduction a la cryptographie par algorithmes génétiques
De nos jours, la cryptographie s’est imposée dans la vie courante notamment pour la protection (Ou
Sécurité) des transactions. Malgré son antiquité (plus de 3000 ans) elle est toujours à l’état
embryonnaire. En effet, les vrais algorithmes de chiffrement sont comptés sur les bouts des doigts
(AES, DES, IDEA (1977), RSA (1970) …). Et actuellement, le cryptosystéme dominant est le PGP
(1992). Parallèlement, les domaines d’application des algorithmes génétique n’ont cessé de s’élargir
grâce à leur grande efficacité (performance, rapidité,…).Leur succès a atteint son apogée dans le
domaine de L’intelligence artificielle et recherche opérationnelle pour résoudre des problèmes
d’optimisation. Certes, concevoir et réaliser un bon algorithme évolutionniste pour chiffrement peut
avoir un grand Succès.
Vu le grand succès des algorithmes évolutionnistes dans les problèmes d'optimisations, nous les
exploitons dans la phase principale de la cryptographie soit: le chiffrement. Dans ce chapitre nous
allons voir un algorithme de chiffrement basé sur les Algorithmes génétiques [11]. Pour
commencer, il faut coder le problème de chiffrement en le simulant (ou rapprochant) à un problème
Chapitre III La cryptographie par les Les algorithmes génétiques
73
d'ordonnancement (notamment permutations). Après, on crée un codage adapté pour les
chromosomes. Ensuite en définit la fonction d'évaluation adéquate, pour appliquer les opérateurs
génétiques.
III.7 Description de L’algorithme de chiffrement
Soit B le message à chiffrer. B est une suite de N caractères. Soit C une clé secrète formée de p
caractères. Après un brouillage initial (ce brouillage peut être effectué par combinaison de plusieurs
méthodes simples comme les substitutions ou les transpositions matricielles .... à ce stade, nous
devons disposer de clés secrètes symétriques.) permettant de masquer les caractères de M.
� Schématisation du problème
Soit B le message à chiffrer (de taille n). a1, a2, ..., al les différents caractères de B (l<=255).
Désignons par Li (1≤i ≤l) la liste des différentes positions du caractère (ai) dans B avant le
chiffrement et par (occu) le nombre des occurrences de ai dans B. le bloc B peut être représenté
par le tableau ci-dessous (FigureIII.7) :
P1/^L Occu1 ^ L
Occu2
Occu3
Occu4
Occu5
Occu255
Occu6
Occu253
Occu254
^ L
^ L
^ L
^ L
^ L
^ L
^ L
^ L
1
2
3
4
5
6
253
254
255
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
P1/^L
Figure III.7 : La représentation du message à chiffrer (structures de données utilisées)
Chapitre III La cryptographie par les Les algorithmes génétiques
74
Désignons par :
- l’indic i de M-tab : le code ASCII de caractères ai de M .
- Li : la liste des positions du caractère ai dans M.
- occu i : le nombre des occurrences de ai dans M.
Le but de L’algorithme est de créer le maximum de désordre dans les positions des caractères de B.
de telle manière que la différence entre le cardinal de la nouvelle liste affectée à chaque caractère ai
et le cardinal de la liste Li d’origine soit maximale. Nous sommes donc devant un problème
d’optimisation.
III.8 Squelette de l’algorithme
• Définir un codage du problème.
• Créer une population initiale P0 de q individus{X1, X2, …, Xq}
• Evaluation des individus.
Soit F la fonction d’évaluation. Calculer F(Xi) pour chaque individu Xi de la population Pi
• Sélection
Sélectionner les meilleurs individus (au sens de F(Xi)) et les grouper par paire.
• Application des opérateurs génétiques
1. Croisement : Appliquer l’opération de croisement aux paires sélectionnées.
2. Mutation : Appliquer la mutation aux individus issus du croisement .
Ranger les nouveaux individus obtenus dans une nouvelle génération Pi+1.
Répéter les étapes 2,3 et 4 jusqu’à l’obtention du niveau de performance souhaité.
III.9 l’algorithme par étapes :
� Le chiffrement
1. Le codage
Un individu (chromosome) : est une chaîne de caractère de taille l (l<=255) dont les gènes
sont les caractères de M.
Ch- initial : chromosome initial dont les gènes sont (avec respect d’ordre) : a1, a2,
....................., al Le i ème caractère d’un individu remplace Le i ème caractère de Ch-
initial.
Chapitre III La cryptographie par les Les algorithmes génétiques
75
2. Créer une population initial P0 de q individus {X1,X2,………Xq}
Nous appliquons q bonnes permutation sur Ch-initial afin d’obtenir q individus distincts
formant ainsi la population initiale constituée de q solutions potentielles du problème.
3. La fonction d’évaluation
Soit Xk un individu de Pi (la taille maximale de la population est 30 individus) dont les
gènes sont ak1, ak2 ,…,akl . Désignons par Card (aki) le nombre d’occurrence de
caractère aki telle que :
Card (aki) = M_tab [pos (aki)].occu
Pos : fonction qui donne le code ASCII d’un caractère.
F la fonction d’évaluation sur l’ensemble Xk
F (Xk) =∑ card (aki) – card (ai)
4. Le mécanisme de sélection
Nous utilisons la méthode classique de la roulette, permettant de retenir les individus
les plus forts.
5. Les opérateurs génétiques
a- Croisement : La probabilité du crossover est de 60% à 100%.
b- Mutation : permuter aléatoirement deux gènes d’un chromosome. La probabilité de
la mutation est de 0.1% à 5%.
On applique le processus génétique jusqu'à l’obtention d’un niveau de performance
souhaité.
6. La phase finale de l’algorithme
A partir de la meilleure solution Ch-final obtenue par L’algorithme nous constituons le
bloc chiffré correspondant. Ensuite nous concaténons ces blocs chiffrés. Ceci nous
donne le message chiffré M' du message initial M. Le schéma de la (FigureIV.8)
montre les différents étapes effectués par l’algorithme de chiffrement.
Chapitre III La cryptographie par les Les algorithmes génétiques
76
� Le déchiffrement :
Le déchiffrement est effectué sans appliquer les AG, il suffit de déchiffrer le message avec la
clé de session.
1. Déchiffrement d’un bloc
Une fois la meilleure solution Ch- final est donnée par l’algorithme, nous identifions alors la
permutation qui, partant de Ch- initial aboutit à Ch-final. Cette permutation servira de clé de
session pour obtenir le chromosome initial Ch- initial. Ainsi à la fin de l’algorithme nous
ajoutons une fonction dont le rôle est d’établir cette identification.
III.10 Les opérateurs de croisement classiques et Bestof2
Dans cette partie nous allons présenter les croisements classique 1-point et MPX (2-point) [4]
et [5], tout en montrant leur inconvénient et introduire une nouvelle méthode de croisement
nommer Bestof2 plus efficace et qui est aussi inspirer de la nature et nous allons faire une
comparaison indiquant la puissance de notre croisement par rapport aux autres.
Créer une Population
Ch -initiale
Population parent
Population
fils
Affectation
Evaluation Génération
niveau de
performance
souhaité
Ch- finale
oui
non
Figure III.8 : Les étapes de chiffrement
Chapitre III La cryptographie par les Les algorithmes génétiques
77
Les opérateurs de croisement classiques
Dans cette partie en va mettre en évidence le fonctionnement des deux opérateurs classiques 1-
point et MPX, qui visent à améliorer les performances de la population en découpant les
individus en deux ou plusieurs morceaux et en les échangeant. En effet, les caractéristiques des
enfants devraient être le fruit d’un mélange de celles des parents, ce qui fait les enfants
résultants comportent les mauvais et les meilleurs gènes ce mélange pouvant se révéler
bénéfique comme négatif du point de vue de la fitness comme le montre les Figures III.9 et
III.10.
Figure III.9 : Le Croisement en 1point
Figure III.10 : Le Croisement MPX
Donc on a besoin de mettre au point un opérateur de croisement de telle sorte que les enfants
aient de bonnes chances de combiner les avantages des parents, c’est la raison pour laquelle
que nous avons proposé le croisement bestof2.
Le croisement « Bestof2 »
Dans la nature, toute espèce hérite deux gènes. Pour chaque caractère, un en provenance de sa
mère et l’autre en provenance de son père. Si les deux diffèrent, l'un deux, le gène dominant
s'exprime pleinement dans l'apparence du caractère, l'autre, le gène récessif, n'a pas d'effet
notable sur son apparence. Il y a donc une ségrégation des deux gènes de chaque caractère au
cours de la formation des caractères, c’est le même mécanisme qu’on a utilisé dans le «
Bestof2 » [6].
De quoi s’inspire le croisement « Bestof2 » ?
Notre idée est inspirée du concept de la première loi élaborée par le biologiste ‘Mendel’ [8],
Celui-ci installe un jardin expérimental dans la cour et met sur pied le pois comme plan
d’expérience visant à expliquer les lois de l’origine et de la formation des hybrides. Il montre
que les caractéristiques des espèces sont données par leurs gènes dominants au profit des autres
récessifs. Ce concept est expliqué dans la Figure III.11 ci dessous:
Chapitre III La cryptographie par les Les algorithmes génétiques
78
Figure III.11 : Ségrégation des gènes
En quoi consiste le croisement « Bestof2 » ?
Le croisement « Bestof2 » consiste à créer un enfant à partir de deux parents, de façon à ce que
l’enfant résultant comporte seulement les meilleurs gènes, c’est à dire le iéme gène de l’enfant
correspond au meilleur des iéme gènes parents. Pour cela on a mis en place une fonction GF
pour les évaluer et nous donner le meilleur, ce qui fait qu’elle a comme paramètre deux gènes
parents l’une du parent1 et l’autre du parent2. Cette règle normale qui fait ressortir que le choix
de la fonction dépend du domaine qu’on est entrain d’optimiser.
Soit A, B deux parents et C leur fils dont les gènes sont respectivement : {A1, A2, ..., AN},
{B1, B2, ..., BN } et {C1, C2, ..., CN }. Nous définissons le croisement par :
Pour i de 1 à N : Ci :=GF (Ai, Bi).
Donc on obtient un individu qui hérite les meilleurs gènes de ses parents, c’est exactement ce
qui ce passe dans la nature, comme le montre la Figure III.12 :
Figure III.12 : Croisement bestof2
III.11 Exemple :
Dans l’exemple suivant en va dérouler l’algorithme de l’approche génétique pour crypté le message
‘’croisement bestof2’’.
Chapitre III La cryptographie par les Les algorithmes génétiques
79
1- Codage : c r o i s e m e n t b e s t o f 2
2- Creation d’une population:
3- Evaluation des chromosomes: F (Xk) =∑ card (aki) – card (ai)
F(Ch1) = 8 F(Ch2) =8 F(Ch3) =6 F(Ch4) =7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 position des caractère dans le texte
C 1
R 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
1 nil
2
1
1
3
16 nil
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
O 2
I 1
R 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
O 2
Chromosome Initial qui représente le message a crypté
Chromosome1 Chromosome2 Chromosome3 Chromosome4
Chapitre III La cryptographie par les Les algorithmes génétiques
80
4- Sélection : sélectionné les chromosomes les plus fort
Les meilleurs chromosomes sont Ch1 et Ch2
5- Opérateurs de croisement:
- croisement en 1-point :
Evaluation des chromosomes: F (Xk) =∑ card (aki) – card (ai)
F(Fils1) = 8 , F(Fils2) = 8
- croisement en Bestof2 :
Evaluation des chromosomes: F (Xk) =∑ card (aki) – card (ai) F(Fils1’) = 10
O 2
I 1
S 2
E 3
M 1
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
R 1
O 2
I 1
S 2
E 3
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
Parent 1 Parent2 Fils 1 Fils 2
Choisir un
Point
Aléatoire Croisement en
1-point
R 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
C 1
R 1
O 1
O 2
S 1
E 2
E 3
M 1
T 2
T 1
B 1
F 1
2 1
1
C 1
Parent 1’ Parent2’ Fils 1’
Croisement
bestof2
Chapitre III La cryptographie par les Les algorithmes génétiques
81
Nous remarquons que la méthodes de croisement bestof2 donne un score meilleur par rapport a 1-
point donc la solution final est le chromosome Fils1’ .
Le message ‘’croisement bestof2’’ sera crypté par : ‘’ooseemtmtbcfmebs2 ‘’
Partie C : Application pour les réseaux Ad hoc
III.12 Application pour les réseaux Ad hoc :
Etant donné que le domaine des réseaux Ad hoc est un nouvel axe de recherche, notre problématique
essentielle est les limitations des travaux de recherche dans le domaine de la sécurité des
communications dans les réseaux Ad hoc. Pour cela nous avons essayé de proposer notre approche
génétique améliorée et l’adaptée a se type de réseaux pour générer des clés des sessions au sein d’un
nœud du réseau .Pour bien situer notre travail deux cas se présentent:
1-Si la clé peut être acheminée à travers un canal sûr alors nous avons établi un algorithme de
chiffrement symétrique.
Figure III.13 : Application Symétrique
donné
CAG
&#@
Clé privée
&#@
CAG
donné
Nœud A Nœud B
Clé privée
C 1
R 1
O 2
I 1
S 2
E 3
M 1
N 1
T 2
B 1
F 1
2 1
1
Chromosome Initial
O 1
O 2
S 1
E 2
E 3
M 1
T 2
T 1
B 1
F 1
2 1
1
C 1
Chromosome Final
C O
R O
O S
I E
S E
E M
M T
N T
T B
B F
F 2
2
C
Clé de session
Canal de communication
Chapitre III La cryptographie par les Les algorithmes génétiques
82
2-Si la clé de session est chiffrée par un algorithme asymétrique ensuite envoyée accompagnée du
message chiffré nous pouvons dire que nous avons établi un système de chiffrement hybride.
Figure III.14 : Application Hybride
III.13 Conclusion :
Les domaines d'application des algorithmes génétiques s'étendent de plus en plus et l'avenir est à
eux. Mais en dépit de leur simplicité, les algorithmes génétiques ne sont pas évidents dans leurs
applications.
En fait, concevoir et réaliser un bon algorithme génétique demande une bonne connaissance du
problème, une bonne compréhension des mécanismes évolutionnistes et beaucoup de créativité.
Etant donné que la plupart des processus utilisés dans les algorithmes génétiques sont aléatoires, ceci
donne de la résistance à l’algorithme de chiffrement. En effet, l'aléatoire est un ennemi des
cryptanalystes. D'autant plus, nous avons exploité ces processus pour déduire la clé de session en
plus de clés secrètes symétriques utilisées initialement. Ces dernières renforcent la sécurité
davantage. Cela dit, l’algorithme jouit de tous les avantages d'un algorithme évolutionniste, à savoir:
simplicité, rapidité, coût faible des opérateurs génétiques et performance. Il suffit de choisir des
paramètres (taux de population, taux des opérateurs,…) adaptés.
donné
CAG
&#@ &#@
CAG
donné
Nœud A Nœud B
Clé de session
Clé publiquedestinataire
Clé de session
Clé publiquedestinataire
RSA
RSA
Clé de session
Canal de communication
Chapitre IV
IMPLEMENTATION & EVALUATION
IV.1 Introduction
IV.2 Evaluation des choix méthodologiques
IV.2.1 Implémentation
IV.2.2 Evaluation
IV.2.2.1Comparaison de bestof2 avec les opérateurs classiques
IV.2.2.2 Comparaison entre les méthodes roulette et par trie
IV.3 Evaluation par comparaison avec d’autres méthodes
IV.3.1 Implémentation
IV.3.1.1 Implémentation de L’IDEA
IV.3.1.2 Implémentation de L’RSA
IV.3.1.3 Implémentation de PGP
IV.3.1.4 Implémentation de CAG
IV.3.2 Evaluation
IV.3.2.1 Evaluation par comparaison avec d’autres méthodes entre les
algorithmes IDEA, RSA, PGP et CAG
IV.4 Conclusion
Chapitre IV Implémentation & Evaluation
83
IV.1 Introduction:
Dans cette partie nous allons présenter l’implémentation des principales procédures utilisées
lors du cryptage (cryptographie par algorithme génétique) pour l’application intra proposition
(Evaluation des choix méthodologiques). Ainsi que les résultats obtenus après plusieurs
essais. Le fonctionnement de l’application développé lors de ce travail est montrer dans les
annexes 1 et 2. Cette application est réalisée sous l’environnement Windows avec le langage
de programmation C++.
IV.2 Evaluation des choix méthodologiques:
IV.2.1 Implémentation :
Les structures de données utilisées sont les suivantes :
Structure Pos
Emplacement : entier
Suivant : pointeur
Fin
Structure élément
Car : Char
Occur : entier
Liste : Pos
Fin
Type Chromosome = tableau [255] d’élément
Structure individu
MyChromosome : Chromosome
F : entier
Proba : réel
Cumule : réel
Fin
Type Individus = Tableau [20] d’individu
Structure Clé
Char_Origine : char
Char_Crypté : char
Fin Type Clé Session = tableau [255] de clé
Chapitre IV Implémentation & Evaluation
84
Les procédures de la cryptographie par algorithme génétique sont les suivantes :
La procédure Insérer Liste : la procédure Insérer Liste permet l’insertion de la structure de
donnés liste
La procédure Lire Message : la procédure Lire Message permet a partir du message en clair
de créer le chromosome initial (le codage du problème).
Procédure Insérer Liste (Liste : Pos, Emp : entier)
Début
P, Q:Pos
P=New (Pos)
P^.emplacement=Emp
P^.suivant = NULL
Si (liste=null) alors
liste=P
Sinon Q=liste
Tant que (Q^.suivant !=Null)
Faire Q=Q^.suivant
Fait Q^.suivant=P
FSI Fin
Procédure Lire Message (Chi : Chromosome, MSG : Text)
Début
c char
Tant que not (fin (MSG))
Faire Lire(c, MSG)
chi [ord(c)].car=c
chi[ord(c)].occur= chi[ord(c)].occur+1
insérer Liste (chi[ord(c)].Liste ,Pos)
Fait Fin
Chapitre IV Implémentation & Evaluation
85
La procédure Désordre : La procédure Désordre permet la création d’une population parent à
partir du chromosome initial. La procédure évaluer : La fonction évaluer calcule la valeur d’adaptation de l’individu qui est
le score qui prendra l’individu.
Les opérateurs de croisement sont programmés afin d’explorer l’espace de recherche du
problème
La procédure Croisement : La procédure croisement prend comme paramètre deux parents et
donne naissance à deux fils (croisement en 1 point)
La procédure MPX : La procédure MPX permet de créer 2 fils a partir de deux parents mais
avec un repère de deux points.
Procédure Désordre (chi,ch :Chromosome)
Début
Insérer les éléments du chi dans ch dans un nouvel ordre (aléatoire)
Fin
Procédure évaluer (chi, ch : Chromosome)
Début F, i: entier
Pour i=1 à 255
Faire F=F+ABS ((Chi[i].occur)-chi[i].occur))
Fait Fin
Procédure Croisement (chi,chk:Chromosome)
Début
générer un nombre aléatoire Point_Crois=[1..255]
Permuter (chi,chk,Point_Croisement)
Fin
Chapitre IV Implémentation & Evaluation
86
La procédure Mutation : la procédure Mutation effectue une permutation aléatoire entre deux
gènes fils. La procédure Sélection Par trie : La procédure Sélection Par Trie permet de sélectionner les
meilleurs individus en les trient.
La procédure Sélection Par Aléatoire : La procédure Sélection Par Aléatoire permet de
sélectionner les meilleurs individus par leurs fréquence cumulé.
Procédure MPX (chi,chk :Chromosome)
Début
générer deux nombres aléatoires dans [1..255] : R1 et R2
Permuter (chi,chk,R1,R2)
Fin
Procédure Sélection Par trie (indiv : Population, chf : chromosome)
Début
trier les individus de la population selon F(décroissant)
chf=indiv[1].MyChromosome
Fin
Procédure Sélection Par Aléatoire (indiv : population ,chf :chromosome)
Début
générer un nombre aléatoire
Sélectionner le chromosome chf correspondant à cette probabilité
Fin
Procédure Mutation (chi,chk :chromosome)
Début
générer un nombre aléatoire i = [1..255]
Permuter(ch[i],chk[i])
Fin
Chapitre IV Implémentation & Evaluation
87
La procédure Clé Session : La procédure Clé Session permet d’établir le lien de changement
entre les caractère du message initial est le message crypté.
IV.2.2 Evaluation : IV.2.2.1 Comparaison de « bestof2 » avec les opérateurs classiques
Nous avons remarqué ces dernières années une croissance très rapide des travaux utilisant les
algorithmes génétiques (AG) grâce à leurs grandes efficacités. Cette tendance peut être
observée dans tous les domaines, la cryptographie est l’un d’eux. Nous avons choisis
d’appliquer la cryptographie par algorithme génétique pour sécuriser des communications en
mode ad hoc [7] où on a appliqué notre croisement « Bestof2 ».
Dans cette partie nous avons entamé une comparaison entre le « Bestof2 » et les opérateurs
classiques, la figure suivante (Figure IV.1) est une représentation graphique de la convergence
vers la meilleure solution par les trois méthodes de croisement :
Figure IV.1 : Représentation graphique de la convergence vers la meilleure solution
Nous pouvons dire que le croisement « bestof2 » favorise une exploration rapide de l’espace
de recherche du problème et donne des résultats meilleurs que celle du croisement classique.
En plus de la comparaison entre les différentes méthodes de croisement (y compris notre
approche en terme de convergence vers la meilleure solution par rapport à la fonction
d’adaptabilité), nous avons effectué des simulations au niveau de chaque méthode pour
Procédure Clé Session (chf : chromosome, MyCle : Clé de session)
Début i : entier
Pour i=1 à 255
Faire Mycle[i].Char_Origine=Chf[i].car
Mycle[i].Char_Crypté=Chr(i)
Fait Fin
0 0
Chapitre IV Implémentation & Evaluation
88
mesurer les temps de calcul consommés par chacune. La figure suivante montre la position de
notre approche comparativement aux autres.
20 25 30 35 40 45 500
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Taille du fichier (Ko)
Tem
ps
d'e
xéc
utio
n (m
illi sec
ond
e)
1point
bestof2
MPX
Figure IV.2 :Comparaison des temps d’exécutions des méthodes de croisement sur différentes tailles de fichiers
IV.2.2.2 Comparaison entre les méthodes de sélection Roulette et Par Trie Puisque notre problème essentiel dans les réseaux ad hoc est la contrainte de consommation
d’énergie, nous avons donc effectué des simulations au niveau des méthodes de sélection pour
arriver à conclure la méthode la plus adaptée à notre problème d’optimisations des temps de
calculs. La figure qui suit montre les tps d’exécution des deux méthodes de sélection Roulette
et Par Trie sur différentes taille de fichiers.
20 25 30 35 40 45 500
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Taille du fichier (Ko)
Tem
ps d
'exécutio
n (
Mill
i seconde)
Trié
Aléatoire
Figure IV.3 : Comparaison des temps d’exécution des méthodes de sélection sur différentes tailles de fichiers
Pour bien positionner l’approche de la cryptographie par algorithme génétique avec les
meilleurs paramètres retenu par l’étude de simulation, l’algorithme itératif utilise la méthode
de la roulette (aléatoire) pour l’opérateur de sélection ainsi que le bestof2 pour l’opérateur de
croisement. Après études de simulation au niveau interne de l’approche nous avons pu faire
ressortir les meilleurs paramètres compromis sur la base de comparaison par simulation, par la
suite nous avons fait une évaluation extra proposition (évaluation par comparaison avec
d’autres méthodes) de l’approche avec les algorithmes cryptographiques IDEA, RSA, PGP.
Chapitre IV Implémentation & Evaluation
89
IV.3 Evaluation par comparaison avec d’autres méthodes
IV.3.1 Implémentation :
Dans cette partie nous allons présenter l’implémentation des principales procédures utilisées
lors du cryptage (IDEA, RSA, PGP, CAG), et le fonctionnement du logiciel développé lors
de ce travail.Ainsi que les résultats obtenus après plusieurs essais.Ce logiciel est réalisé
sous l’environnement Windows avec le langage de programmation Delphi.
IV.3.1.1 Implémentation de l’IDEA : Les procédures de l’IDEA sont les suivantes :
shr25bit, generZ, transformation, iteration, crypte_bloc.
La procédure shr25bit réalise le décalage circulaire de 25 bits de la clé.
Puis la clé est divisée en 8 sous-clés de 16 bits , décalées circulairement sur la gauche de 25
bits à l’aide de la procédure generZ. cette procédure est exécutée à chaque itération jusqu'à
l’obtention 52 sous-clés c’est-à-dire 8 groupes de 6 sous-clés (un groupe par itération) : Z1,
Z2, Z3, Z4, Z5, Z6, et un groupe de 4 sous-clés pour la transformation finale : Z1, Z2, Z3, Z4.
Procedure shr25bit (var cle :tableau byte; var debutcle: byte);
var test1,test2:byte;
count2: integerr;
debut debutcle:=(debutcle+3)mod 16 ; // le nombre de carctére de
// la clé
test1:=tableau1[15] et 1;
count2:=0;
tant que count2<=15 faire
debut test2:=tableau1[count2] et 1;
tableau1[count2]:=tableau1[count2] shr 1;
si (test1=1) alors
tableau1[count2]:=tableau1[count2]+ 128;
test1:=test2;
inc(count2);
fin;
fin;
Chapitre IV Implémentation & Evaluation
90
L’ensemble de ces sous clés seront combinées avec le bloc de données(X1,X2,X3,X4) à
l’aide des deux procédures suivantes :
procedure transformation (var X,Z:tableau Word );
var round: integer;
debut X[1] := (X[1]+Z[1]) mod n2E16;
X[2] := (X[2]+Z[2]) mod n2E16;
X[3] := (X[3]+Z[3]) mod n2E16;
X[4] := (X[4]+Z[4]) mod n2E16;
fin;
procedure generZ (var cle :tableau de byte; var debutcle;
parcourcle:
byte);
var round1:integer;
bytevarlo, bytevarlo:byte;
wordvar:word;
procedure concat_2bytetoword;
asm
mov ah,bytevarlo;
mov al,bytevarhi;
mov wordvar,ax;
fin;
debut pour round1:=0 a max faire
debut bytevarhi:=t2[parcourcle];varr1:=( parcourcle +1) mod
16;
bytevarlo:=t2[parcourcle];varr1:=( parcourcle +1) mod
16;
concat_2bytetoword;
t1[round1]:=wordvar;
si varr1=varr2 alors
debut shr25bit (cle, debutcle);
parcourcle:= debutcle;
fin;
fin
Chapitre IV Implémentation & Evaluation
91
La procédure crypte_bloc effectue le cryptage d’un bloc de données de 64 bits .
procedure crypte_bloc (var X:tableau Word ; var cle:tableau de
byte);
var round: integer;
debut
generZ (Z,cle);
pour round:=1 a 8 faire
debut Iteration (X, Z);
generZ (Z,cle);
fin;
transformation(X, Z);
end;
procedure iteration (var X:tableau Word ; var cle:tableau byte);
var Etape :tableau[1..10] de Word;
debut
Etape[1] := (X[1]+Z[1])mod n2E16;
Etape[2] := (X[2]+Z[2])mod n2E16;
Etape[3] := (X[3]+Z[3])mod n2E16;
Etape[4] := (X[4]+Z[4])mod n2E16;
Etape[5] := Etape[1] XOR Etape[3];
Etape[6] := Etape[2] XOR Etape[4];
Etape[7] := (Etape[5] + Z[5])mod n2E16;
Etape[8] := (Etape[6] + Etape[7])mod n2E16;
Etape[9] := (Etape[8] + Z[6])mod n2E16;
Etape[10]:= (Etape[7] + Etape[9])mod n2E16;
X[1] := Etape[1] XOR Etape[9];
X[3] := Etape[3] XOR Etape[9];
X[2] := Etape[2] XOR Etape[10];
X[4] := Etape[4] XOR Etape[10];
fin;
Chapitre IV Implémentation & Evaluation
92
Présentation de l’interface d’IDEA :
Figure IV.4 : Interface d’IDEA dans le cas du cryptage d’un texte (4 ko)
Figure IV.5 : Interface d’IDEA dans le cas de cryptage d’image (48 ko)
Chapitre IV Implémentation & Evaluation
93
Fonctionnement d’IDEA :
• Pour crypter :
Premièrement il faut que l’utilisateur choisis le mode de cryptage texte ou image
(menu/Typefichier ) avant d’ouvrir le fichier adéquat et taper la clef (de 16 caractère
de long) et pour lancer l’opération de cryptage il faut cliquer sur le bouton crypter.
• Pour décrypter :
La personne voulant décrypter le fichier codé n’a pas besoin de taper la clé de session
par ce qu’elle a été insérée dans ce fichier lors du cryptage (c’est notre idée afin
d’acheminer la clé au destinataire d’une façon sécurisée), donc il suffit de cliquer sur
le bouton décrypter où le programme va premièrement récupérer la clé et en suite
décrypter les données.
Résultats Expérimentaux :
� Texte :
Nous allons crypter le texte clair : “ there is only one God and Mohamed his prophet“ .
avec les clés : ‘ benhaoua__kechar’ , ’ benhaouarahmouni’ et ’benhaoua__haffaf ’.
Tableau IV.1 : Résultats obtenues avec l’IDEA
Nous remarquons que le changements des clés donne des résultats différents par contre le
temps de cryptage reste constant.
Clé secrète Texte crypté
benhaoua__kechar �I G ùo§ �€be%¨H Íýãø›˜†& Úê- �nhê µæ•Ž(æ´TF¥ºÚ&e½6£ûvP
benhaouarahmouni r—ªk•hŒ-be— �Ę! TR � �¦ëú>Ñ nh˜1\ � �Òæ¯ 5 R FkÑ �€v žÓ râ
benhaoua__haffaf ID¡frz:¯ beÝgBo ÛŒ2VQ@Ó‘§@nh BõÎõ¸M½²ãu´Å¸…¦Ò<;E`…
Chapitre IV Implémentation & Evaluation
94
IV.3.1.2 Implémentation de l’RSA : Les procédures et fonctions constituant l’RSA sont :
premier ,premiersuiv, cleprive, clepublic, puissance, cryptemsg .
La fonction premier : tester si le nombre nbr est premier ou non .
La fonction suivante donne le nombre premier qui suit le nombre nbr .
La fonction clepriv sert à calculer la clé privée dans le but de l’utiliser dans
l’algorithme de chiffrement.
fonction premier(nbr:int64):boolean;
var notexiste:boolean;
nbrimper:integer;
debut
notexiste:=true;
nbrimper:=3;
tant que (notexiste et (nbr div 3>= nbrimper)) faire
si (nbr mod nbrimper) =0 alors notexiste:=false
sinon nbrimper:= nbrimper+2;
result:=notexiste;
fin;
fonction premier(nbr:int64):boolean;
var notexiste:boolean;
nbrimper:integer;
debut
notexiste:=true;
nbrimper:=3;
tant que (notexiste et (nbr div 3>= nbrimper)) faire
si (nbr mod nbrimper) =0 alors notexiste:=false
sinon nbrimper:= nbrimper+2;
result:=notexiste;
fin;
fonction cleprive(v1,v2:int64):int64;
var r,x,x1,x2,a,b:int64;
debut
x:=1; x1:=0;
a:=v1; b:=v2;
tant que b>0 faire
debut
r:=a mod b;
x2:= x -(a div b)*x1;
x:=x1;
x1:=x2;
a:=b;
b:=r;
fin;
cleprive:=x;
fin;
Chapitre IV Implémentation & Evaluation
95
La fonction clepublic comme son nom l’indique sert à calculer la clé publique [13].
La fonction suivante sert à calculer la puissance d’un nombre ,à l’aide de
l’exponentiation modulo Nvar par algorithme dichotomique, cette fonction est utilisée
pour le cryptage et le décryptage [13].
On crypte les messages à l’aide de la procedure suivante :
fonction clepublic(nbr:int64):int64;
var keyE:int64;
debut keyE:=nbr div 4;
repeter premiersuiv(keyE);
jusqu’a (nbr mod keyE<>0);
clepublic:=keyE;
fin;
fonction puissance( msg2,a1, Nvar:int64):int64;
var boucle,msgvar,mul:int64;
debut msgvar:=1;
mul:=msg2;
boucle:=a1;
tant que boucle<>0 faire
si (boucle mod 2)<>0 alors
debut boucle:=boucle-1;
msgvar:=msgvar*mul mod Nvar;
fin
sinon
debut
boucle:=boucle div 2;
mul:=mul*mul mod Nvar;
fin;
puissance:=msgvar;
fin;
procedure cryptemsg(var msg:int64);
debut msg:=puissance(msg,e);
fin;
Chapitre IV Implémentation & Evaluation
96
Présentation de l’interface d’RSA :
Fonctionnement d’RSA :
Tout d’abord il faut choisir deux nombres premiers différents p et q à l’aide du bouton suivant
qui nous permet de choisir un nombre premier puis appuyer sur le bouton ‘calculer’ pour
générer les clés de (dé)codage (privée/ publique) et le groupage c à d le nombre de lettres à
coder à chaque passage (le groupage est inférieur au nombre de chiffre de p*q ) .Dans ce cas ,
la personne voulant décrypter le message doit posséder les deux clés alors que les autres ne
connaissent que la clé publique.
• Pour crypter :
Il suffit de taper la clé publique (fixée par la personne qui veut décrypter ) cliquer ensuite
sur le bouton ‘ crypter ‘.
• Pour décrypter :
Taper la clé publique et la clé privée , placer le texte crypté dans le champ ‘ textenclaire ’
, et appuyer ensuite sur le bouton décrypter.
Figure IV.6 : Interface d’RSA dans le cas du cryptage d’un texte (10 ko)
Chapitre IV Implémentation & Evaluation
97
Résultats Expérimentaux :
Nous allons crypter le même texte en claire employé avec l’IDEA , à chaque essai on utilise
un couple ( privée/ publique ) différent :
Tableau IV.2 : Résultats obtenues avec l’RSA
IV.3.1.3 Implémentation du PGP :
PGP est un système de chiffrement à clé publique qui combine les avantages de l’IDEA de
RSA : IDEA est 1000 fois plus rapide que RSA et il est pratiquement impossible de percer la
clé secrète RSA. Touts les procédures utilisées par l’IDEA et l’RSA sont exploitées par le
PGP.
Les Nbrs premier
Clé Privée
Clé publique
Groupage Tps
d’exe Texte crypté
P=103
q=13
N=1339
E=311 D=551 1 5 ms
0493010402770680027708430547
0396084312500739127110630843
1250073902770843090812501199
0843025807391199084310131250
0104025804630277119908430104
0547039608431266068012501266010402770493027702770493
P= 1087 q=1361
N=1479407 E=369247
D= 263743 2 7 ms
1252971031753303257500550315
0077592065770908938200343967
03257500436347030187204753990301872055101409077500449040
0301872037948907529500764163
0995416058344009715290249765
P=104327
q=13591
N=1417908
257
E=35444758
9
D=265835689 3 10 ms
1043912300060106345708089660
5402383742870234897607006525
6773009414657009526789511077
1430500390595259124060618601
7018162113094085351157449377
03524459430538912535
Chapitre IV Implémentation & Evaluation
98
Présentation de l’interface de PGP :
Fonctionnement du PGP:
Pour les clés (privée/publique) utilisées par le PGP ,on les génére de la même façon que
l’RSA , tel que la clé de session d’IDEA est donnée par l’utilisateur .
• Pour crypter :
Lorsque vous utilisez PGP pour coder des données (texte ou image) il faut tout d’abord entrer
la clé publique (dans le champs RSA ) donnée par le destinataire et taper la clé de session
(dans le champs IDEA). une fois vous cliquez sur le bouton crypter les étapes suivantes sont
automatiquement déclenchées :
a. PGP utilise l'algorithme IDEA pour chiffrer les données avec la clé de session.
b. Il emploie l'algorithme RSA pour chiffrer la clé de session avec la clé publique du
destinataire.
c. Il sauvegarde, la clé de session chiffrée et les données chiffrées dans le même fichier.
• Pour décrypter : le processus de décodage se déroulera comme suite :
a. PGP emploie RSA pour déchiffrer la clé de session avec la clé privée de destinataire.
b. Il utilise de nouveau IDEA pour déchiffrer enfin le message avec la clé de session.
Figure IV.7 : Interface PGP dans le cas du cryptage d’un texte (10 ko)
Chapitre IV Implémentation & Evaluation
99
Résultats Expérimentaux :
L’exemple suivant montre le contenu du fichier crypté par PGP. on a utilisé le même texte
employé auparavant par l’IDEA et RSA :
Tableau IV.3 : Résultats obtenues avec le PGP
On remarque que le texte crypté commence par les trois lettres ‘PGP’ pour indiquer que ce
dernier a été crypté par PGP , ensuite on trouve les chiffres qui représentent la clé de session ,
suivie par les données cryptées par l’IDEA.
IV.3.1.4 Implémentation de CAG :
L’ensemble des procédures et fonctions utilisées par le CAG sont les suivantes : select,
Fonctadapt, crossover, Generation, algorithm_genetique et cryptage.
La fonction select donne l’index qui correspond à l’individu sélectionné dans la population
« pop ». L’algorithme utilisé pour la sélection est celui de la roue de lottrie [8].
Clé privée Clé publique clé de session Texte crypté
D=307 N=1339
E=307 benhaoua__kechar
pgp0201010100070104133302140117133300950095010
�701010408010413330114I G ùo§ �€%¨H Íýãø›˜†& Úê-
�ê µæ•Ž(æ´TF¥ºÚ&e½6£ûvPÇ
fonction select(pop:Tpopulation):byte;
var rand,partsom:real;
comp:byte;
c:integer;
debut
partsom:=0; c:=0;
rand:=random*somfadapt;
repeter c:=c+1;
partsom:=partsom+pop[c].Fadapt;
jusqu’a ((c>=tailpop)ou(rand<=partsom));
select:=c;
fin;
Chapitre IV Implémentation & Evaluation
100
La fonction Fonctadapt calcule la valeur d’adaptation de l’individu indiv qui est le score
qui prendra l’individu.
Les opérateurs de croisement (crossover et mutation) sont programmés afin d’explorer
l’espace de recherche du problème ,ces operateurs utilisent la fonction flip[8] (la pièce
biaisée) pour décider s’il faut faire l’exploration ou non, cette fonction prend comme
paramètre d’entrées les probabilités (pcross,pmut) et les considère comme face.
La procedure crossover prend comme paramètre deux parents par1,par2 et donne naissance
à deux fils ,fils1,fils2 (crossover en 1 point) ;
procedure crossover (var par1,par2,fils1,fils2:Tinvidu ; pcross:real);
var pointc,compt, pointcross:byte;
debut
si flip(pcross) alors
debut tailchrom:=length(pa1);
repeter pointc:=random(tailchrom)+1; jusqu’a pointc>1;
pointcross:=pointc;
fils1:=copy(par1,1,pointc-1);
fils2:=copy(par2,1,pointc-1);
pour compt:=pointc a length(par1) faire
debut si pos(par2[compt],fils1)<=0 alors
fils1:=fils1+par2[compt]
sinon si pos(par1[compt],fils1)<=0 alors ar1[compt]
sinon
fils1:=fils1+par1[poszonecros(fils1,par1,pointc)];
si pos(par1[compt],fils2)<=0 alors
fils2:=fils2+par1[compt]
sinon
si pos(par2[compt],fils2)<=0 alors
fils2:=fils2+par2[compt]
sinon fils2:=fils2+par2[poszonecros(fils2,par2,pointc)];
fin;
fin si
debut
fils1:=par1;
fils2:=par2;
fin;
fin;
fonction Fonctadapt(indiv:Tindivedu):integer;
var count: byte ;
som: integer;
debut
som:=0;
pour count:=1 a length(indiv) faire
som:=som+abs(ch_init[ord(str[count])].occu-
ch_init[ord(indiv_init[count])].occu);
Fonctadapt:=som;
fin
Chapitre IV Implémentation & Evaluation
101
la procedure mutation effectue une permutation aléatoire des deux gènes d’un fils .
La procédure ‘Generation’ permet la création d’une population popfils1 à partir de la
population popparent1 en utilisant les opérateurs de croisement et mutation .
procedure mutation(var indiv:Tindividu;pmut:real);
var pointm1,pointm2,nbr:byte;
permut: char;
debut
si flip(pmut) alors
debut
nbr:=length(indiv);
pointm1:=random(nbr)+1;
repeter pointm2:=random(nbr)+1; jusqu’a pointm1<>pointm2;
permut:= indiv [pointm1];
indiv [pointm1]:= indiv [pointm2];
indiv [pointm2]:= permut;
fin;
fin;
procedure Generation(var popfils1, popparent1 :Tpopulation);
var sature,par1,par2,dotcross:byte;
p1,p2,f1,f2:string;
debut sature:=1;
repeter par1:=select(popparent1); par2:=select(popparent1);
p1:=pop1[par1].chrom; p2:=pop1[par2].chrom;
//* croisement des parents sélectionnée p1,p2 *//
crossover(p1,p2,f1,f2, pcross);
//* mutation des fils f1,f2 *//
mutation(f1,pmut); mutation(f2,pmut);
pour 1 à popfils1 [sature] faire
debut chrom:=f1; part1:=par1; part2:=par2; fin;
pour popfils1 [sature+1] à n faire
debut chrom:=f2; part1:=par1; part2:=par2; fin;
sature:=sature+2;
jusqu’a (sature>=tailpop);
fin;
Chapitre IV Implémentation & Evaluation
102
Avec la procédure ‘Evaluation’ on évalue l’adaptation de chacun des individus de la
population pop, et on calcule la variable somfadapt qui est utilisée dans la roue de lottrie et
dans d’autres statistiques telle que la convergence de l’adaptation des individus .
La procédure ‘algo_gene’ sélectionne à partir d’une population initiale une population
de solutions, cette procédure se répète jusqu'à ce que la compteur de génération
dépasse un maximum maxgen dont le but est de trouver la meilleure solution.
procedure Evaluation(var pop:Tpopulation;tailpop1:byte;var
som,max,bestmax:integer;var meil:byte);
var count:byte;
debut max:=0; som:=0;
pour count:=1 à tailpop1 faire
debut
pop[count].Fadapt:=Fonctadapt(pop[count].chrom);
som:=som+pop[count].Fadapt;
si max <pop[count].Fadapt alors
debut
max:=pop[count].Fadapt;
meil:=count;
fin;
fin;
si bestmax<max alors bestmax:=max;
fin;
procedure algo_gene (var indiv_init, indiv_fin:Tindividu; popfils,
popparent :Tpopulation);
var gen :byte ;
debut bestmaxfadapt :=0 ;
creation_popparent(indiv_init,popparent);
Evaluation(popparent,tailpop,somfadapt,maxfadapt,
bestmaxfadapt,meilleur);
gen:=0;
repeter
Generation(popparent,popfils);
Evaluation(popfils,tailpop,somfadapt,maxfadapt,bestmaxfadapt,
meilleur);
popparent:=popfils ;
inc(gen);
jusqu’a gen>=maxgene;.
indiv_fin2:=popfils[meilleur].chrom;
fin;
Chapitre IV Implémentation & Evaluation
103
La procédure de chiffrement cryptevolutionnist, concatène touts les caractères constituant le
texte à crypter pour former l’ indiv_init puis fait appel au AG pour trouver l’indiv_fin, qui
représente la solution qu’on cherche. La concaténation de ces individus constitue la clé de
session à utiliser lors de décryptage, enfin chaque caractère de l’ indiv_init sera substitué par
leur correspondant dans l’ indiv_fin .
Présentation de l’interface CAG :
procedure cryptage(var buffer:array of char;var cle_session:string);
debut indiv_init
charsfile (indiv_init);
resltat de la
algo_gene (indiv_init,indiv_fin);
cle_session:=indiv_fin+indiv_init;
cryptfile;
fin;
Figure IV.8 : Interface des fichiers de CAG
Chapitre IV Implémentation & Evaluation
104
Fonctionnement :
Avec les algorithmes qu’on a vu, avant le cryptage l’utilisateur fait entrer la clé au
programme, mais dans le cas de CAG l’opération est inversée c’est le programme qui génère
la clé de session après le cryptage pour l’utiliser lors de décryptage.
• Pour crypter :
Il suffit de fixer les valeurs des paramètres de l’algorithme génétique comme la taille de la
population sizepop et le nombre de génération nbrgen et de choisir le type de croissement
1point ou bestof2 (notons que le croissement bestof2 est notre propre idée), Le cryptage sera
lancé par un simple clic sur le bouton crypter et les informations suivantes sont affichées :
1. les individus de chaque population avec leurs fonctions d’adaptation et l’indice
du meilleur individu.
2. les individus indiv_init et indiv_fin.
3. le graphe de convergence d’adaptation des individus et le temps de
(dé)cryptage.
• Pour décrypter :
La clé de session est insérée dans le fichier crypté donc il suffit de cliquer sur le bouton
décrypter pour que le programme récupère la clé et lance le décryptage.
Figure V.9 : Interface des paramètres de l’AG de CAG
0 0
Chapitre IV Implémentation & Evaluation
105
Résultats Expérimentaux :
L’exemple suivant montre le cryptage du texte précédent avec CAG.
Tableau IV.4 : Résultats obtenues avec CAG
Le fichier crypté débute toujours par ‘AG’ pour dire que ce dernier est crypté à l’aide des
algorithmes génétiques , suivi par la clé de session et le texte.
IV.3.2 Evaluation :
Dans le but d’achever l’évaluation de notre travail, nous allons présenter les différentes
comparaisons du chiffrement CAG aux systèmes les plus dominants actuellement IDEA, RSA
et PGP. Ces comparaisons se basent sur le délai moyen de chiffrement et du déchiffrement
IV.3.2.1 Evaluation par comparaison avec d’autres méthodes entre les algorithmes IDEA , RSA , PGP et CAG
Les paramètres utilisés pour chaque algorithme :
IDEA : n’a aucun paramètre qui influe sur le tps du calcul.
RSA : le paramètre qui influe sur le tps du calcul est la valeur des nombres premiers p et q (le
tps augmente suivant la valeur de p et q).
On a pris q= 103, p= 13 .
PGP : les même paramètres que RSA .
CAG : les paramètres qui influent sur le tps du calcul sont le nombre de génération et la taille
de la population.
On a choisit taillepop =10 , nbrgene=10 .
Le Tableau IV.5 montre les délais de cryptage/décryptage en microsecondes des différents
algorithmes sur différentes tailles de fichiers [4 k, 5…. ,20 k]
Paramètres AG
clé de session Texte crypté
size pop Nbrgen
10 5 ytsrmlihgeda
ponadeghilmnoprsty
�AG ytsrmlihgeda pon
adeghilmnoprstyolr
yipydehnyderymdsytesygdltgrsylipya
dalrol
Chapitre IV Implémentation & Evaluation
106
IDEA RSA PGP CAG
4 k.o 10 m.s 125 m.s 16 m.s 15 m.s
5 k.o 15 m.s 165 m.s 21 m.s 20 m.s
6 k.o 15 m.s 220 m.s 25 m.s 20 m.s
7 k.o 25 m.s 235 m.s 26 m.s 25 m.s
8 k.o 25 m.s 265 m.s 35 m.s 30 m.s
9 k.o 30 m.s 310 m.s 36 m.s 35 m.s
10 k.o 30 m.s 310 m.s 41 m.s 40 m.s
11 k.o 40 m.s 335 m.s 45 m.s 50 m.s
12 k.o 40 m.s 370 m.s 50 m.s 55 m.s
13 k.o 40 m.s 370 m.s 50 m.s 60 m.s
14 k.o 45 m.s 395 m.s 55 m.s 75 m.s
15 k.o 50 m.s 425 m.s 55 m.s 95 m.s
16 k.o 55 m.s 450 m.s 60 m.s 95 m.s
17 k.o 55 m.s 465 m.s 60 m.s 105 m.s
18 k.o 60 m.s 485 m.s 70 m.s 120 m.s
19 k.o 60 m.s 505 m.s 70 m.s 140 m.s
20 k.o 65 m.s 525 m.s 70 m.s 140 m.s
Tableau IV.5 : Délai de cryptage et décryptage [4k, 5…. ,20k]
Le Tableau IV.6 montre les délais de cryptage/décryptage en microsecondes des différents
algorithmes sur différentes tailles de fichiers [20k, 30…. ,100 k]
Chapitre IV Implémentation & Evaluation
107
IDEA RSA PGP CAG
20 k.o 10 m.s 125 m.s 16 m.s 15 m.s
30 k.o 15 m.s 165 m.s 21 m.s 20 m.s
40 k.o 15 m.s 220 m.s 25 m.s 20 m.s
50 k.o 25 m.s 235 m.s 26 m.s 25 m.s
60 k.o 25 m.s 265 m.s 35 m.s 30 m.s
70 k.o 30 m.s 310 m.s 36 m.s 35 m.s
80 k.o 30 m.s 310 m.s 41 m.s 40 m.s
90 k.o 40 m.s 335 m.s 45 m.s 50 m.s
100 k.o 40 m.s 370 m.s 50 m.s 55 m.s
Tableau IV.6 : Délai de cryptage et décryptage [20k, 30…. ,100k]
4 6 8 10 12 14 16 18 200
100
200
300
400
500
600
Taille du fichier (Ko)
Dé
lai
de
cty
pta
ge
/dé
cry
pta
ge
(M
icro
se
co
nd
e)
IDEA
RSA
PGP
CAG
Figure IV.10 : Représentation graphique du Délai de cryptage /décryptage [4k, 5…. ,20k]
Chapitre IV Implémentation & Evaluation
108
20 30 40 50 60 70 80 90 1000
2000
4000
6000
8000
10000
12000
Taille du fichier (Ko)
Déla
i m
oyen d
e c
rypta
ge/d
écry
pta
ge (M
ico s
econde)
IDEA
RSA
PGP
CAG
Discussions : On a vu que :
a. L’IDEA a un délai de cryptage/décryptage très rapide par rapport aux trois autres
algorithmes mais l’inconvénient qui reste dans les algorithmes symétriques est comment
faire circuler la clé privée de manière sûr et confidentielle. c’est un algorithme performant
et difficile à casser.
b. RSA a le plus long délai de cryptage/décryptage par rapport aux trois autres algorithmes
on peut le considérer comme un inconvénient, mais c’est un algorithme robuste sa clé
privée est difficile à casser.
c. PGP à un délai de cryptage /décryptage très proche de L’IDEA .c’est un algorithme a clés
de session qui combine entre les avantages de IDEA et RSA.
d. CAG a un délai de cryptage/décryptage moyen par rapport au délai de l’IDEA et PGP
jusqu'à une taille de fichier de 10 k.o (Figure IV.10).le délai cryptage décryptage de CAG
dépasse le délai de l’IDEA et PGP a partir d’une taille de fichier de 10 k.o(Figure IV.10). le
délai cryptage /décryptage de CAG est inférieurs au délai du RSA jusqu'à une taille de
fichier de 50 k.o .
Après les comparaisons qu’on a effectuer de l’approche CAG avec les méthodes IDEA,RSA
et PGP en terme de délai de cryp/decr, et comme l’approche est une proposition pour
sécuriser des communication en mode ad hoc où la contrainte de consommation d’énergie est
un facteur important , en propose cette approche pour sécurisé des communication en mode ad
hoc pour un échange de données qui peut aller jusqu'à 10 k.o
Figure IV.11 : Représentation graphique du Délai de cryptage /décryptage [20k, 30…. ,100k]
Chapitre IV Implémentation & Evaluation
109
V.3 Conclusion
Etant donné que la plupart des processus utilisés dans les algorithmes génétique sont
aléatoires, ceci donne de la résistance à l’algorithme de chiffrement. En effet, l'aléatoire est un
ennemi des cryptanalystes. D'autant plus, nous avons exploité ces processus pour déduire la
clef de session. L’algorithme a tous les avantages d'un algorithme évolutionniste, à savoir:
simplicité, rapidité, coût faible des opérateurs génétiques et performance. Il suffit de choisir
des paramètres (taux de population, taux des opérateurs,…) adaptés.
Etant donné que la plupart des méthodes cryptographiques utilisées dans les réseaux ad hoc
sont symétriques, notre approche a dans ce cadre été basée sur des études de simulations sur la
contraintes essentielles des réseaux ad hoc qui est la consommation d’énergie . Les résultats
obtenus font ressortir que l’approche par algorithme génétique a tous les avantages d’un
crypto systèmes utilisé dans les réseaux ad hoc pour un échange de données qui peut aller
jusqu'à 10 k. Comme perspectives de notre travail, il nous reste à étudier la robustesse de cette
approche qui relève du domaine de la cryptanalystes.
Malgré la puissance des algorithmes génétiques dans les problèmes d’optimisation, ils ont des
limitations qu’il faut toujours penser a améliorer et c’est la raison pour laquelle nous avons
proposé dans cet article un nouvel opérateur de croisement que nous croyons aussi efficace
dans d’autres domaines. Ce nouvel opérateur est inspiré de la nature et que de nouvelles
expériences sont nécessaires pour le prouver.
procedure
generZ
(var
cle :tablea
u de byte;
110
Conclusion générale
Par le biais de cette thèse, nous avons pu réaliser un travail d'innovation à savoir :
1- Proposition d’une approche cryptographique basée sur les algorithmes génétiques.
2- Proposition d’un nouvel opérateur génétique adapté au problème.
Notre outil de base est : les algorithmes génétiques. Le premier obstacle franchis pour la
réalisation de ce travail, était la formalisation du problème de chiffrement 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 génétique à savoir : codage des chromosomes, définition de la
fonction d'évaluation, choix des opérateurs génétiques. Enfin, la génération de la clé de session du
chiffrement par l'algorithme évolutionniste en était l’ultime.
Ainsi, après la construction d'un système de chiffrement évolutionniste dont des applications
sur différents messages ont été réalisées, illustrant le bon fonctionnement de ce système.
Comme domaine d’application, nous avons choisis les réseaux Ad hoc, qui constitue un nouvel
axe de recherche où les travaux portant sur la sécurité de ce type de réseaux sont peu, dont on a
pris en compte leurs contraintes .Des discussions évaluatives ont eu lieu, permettant ainsi
d'illustrer les avantages et les qualités du systèmes proposé comparativement aux autres existants
actuellement. Cependant, montrer qu'un système de chiffrement est sûr n'est pas une tâche facile.
Nous rejoignons nos collègues cryptologues en disant que tous les systèmes de chiffrement sont
cassables à long terme, mais l'essentiel c'est que la durée de vie souhaitée pour le texte chiffré soit
inférieure à celle mise par le cryptanayste désirant casser ce système.
Comme perspective dans une prochaine publication, nous présenterons notre technique de
Chiffrement, appliqué pour les réseaux de capteurs sans fils.
BIBLIOGRAPHIE
[1] Thèse Doctorat « Unicast et Multicast dans les réseaux Ad Hoc ». Par LAOUITI Anis, Juillet 2002.
[2] Mini projet « Le Routage dans les Réseaux Mobiles Ad Hoc ». Par LEMLOUMA Tayeb,
Septembre 2000.
[3] http://www.dmi.ens.fr/equipes/grecc/crypto/intro/intro.html .
[4] http://www.securiteinfo.com .
[5] http://www.menard.bourgogne.net.com/tipe98/algom/IDEA.htm#idea.
[6] Thèse d’ingéniorat AES et ECC
[7] http://www.carefour.usherbrooke.ca/resultats2004/rsa_berube+5/rsa/rsa/introduction.html.
[8] http://www.commentcamarche.com.
[9] David Goldberg .(1994).Les algorithms genetiques .Edition Wesley.
[10]Vincent Magnin.Algorithmes Evolutionnaires et Algorithmes Génétiques.
[11] Omary.F, Lbekkouri.A et Tragha.A"Extension des applications des algorithmes évolutionistes ".
Rapport interne N° 7 / 01/ 2004 .Département de mathématiques et informatique Faculté des
sciences -Rabat.
[12] A.ALI PACHA ‘’ Sécurité des donnée par l’IDEA ‘’. Deuxième journées d’Informatique pour
l’Entreprise .
[13] Emeric Jioan .Introduction à la cryptographie. Université de la réunion .
[14] Christian Paquin.Les codes correcteurs quantique et leurs applications cryptographique.
Faculté des arts et des sciences / Département d'informatique et recherche opérationnelle.
[15] Valérie gayrand loutfi Nuayni francis Dupont , sylvain goubault et Bruno ‘’ la sécurité dans les
réseaux ad hoc sans fil ‘’
[16] PGP (1998) personal privacy ; traduction française news.misc-cryptologie , NAI.
[17] Florin G. et Natkin S., les techniques de la cryptographie. CNAM 2002.
[18] Dubertret G. Initiation à la cryptographie. Edition Vuibert, 1998.
[19] Douglas Stinson, D. Cryptographie Théorie et pratique. Traduction de Serge Vaudenay,
Gildas Avoine et Pascal Junod. (2ième édition). Paris Vuibert Informatique, 2003.
[20] Beckett B., Introduction aux méthodes de la cryptologie. Edition Masson 1990.
[21] B. Schneier, Cryptographie appliquée. Seconde édition (John Wiley & Sons, 1996).
[22] Menezes A.J., Oorschot P.C. van et Vanstone S.A., Handbook of Applied Cryptography. (CRC Press,
1997).
[23] Giry D. et Durand S. Travaux d'études et de recheche Cryptographie. Octobre 2001.
http://www.cryptologie.com/W eb_Ter
[24] Labouret G. (2001). Introduction à la cryptographie. http://www.hsc.fr/ressources/
cours/crypto/index.html.fr
[25] Didier Müller, Ars Cryptographica. 2003. http: / /www.apprendre-en-ligne.net/crypto /
[26] Biham E. and Shamir A., Differential Cryptanalysis of the Data Encryption Standard. Springer-Verlag,
1993.
[27] Mémoire ‘’problème du voyageur de commerce a l’aide des algorithmes génétiques’’
[28] Michalewicz Z., Genetic Algorithms +Data= Evolution Program. Springer- Verglas, 1992.
[29] Holland J.H., Adaptation in Natural and Artificial Systems. Cambridge, Mas s: MIT pres s, 1975.
[30] Goldberg D.E, GeneticAlgorithms in Search, Optimisation & Machine Learning. Addison-Wesley
Publishing Company, Inc,1989.
[31] L. Davis , The genetic Algorithm Handbook. Ed. New-York: Van Nostrand Reinhold, ch.17, 1991.
[32] Mühlenbein H.,Evolutionary Algorithms: Theory and applications. (Wiley) 1993.
[33] Janikow C.Z, and Michalewicz Z., An experimental Comparison of Binary and Floating Point
representation in Genetic Algorithms. Proceedings of the Fourth International Conference on
Genetic Algorithms, 1991,pp 31-36.
[34]Michalewicz Z., Evolutionary Computation techniques for non linear Programming. International
Transactions on Operational Research, 1(2), 1994, pp 223-240.
[35] Nakano R., and Yamadat, Conventional Genetic Algorithm for Job S hop Problems. Proc. Fourth Int.
Conf.on Genetic Algorithms, ed. Morgan Kaufman, San Mateo , California, 1991, pp 474-479.
[36] Djerid L. Portmann M.C. and Villon P., Performance Analysis of Previous and New Proposed Cross-Over
Genetic Operators Designed for Permutation Scheduling Problems. International Conference on
Industrian Engineering and Production Management, Marrakech, April 4-7, 1995.
[37] Mühlenbein H., and Schlierkamp-Voosen D. Predictive Models for the Breeder Genetic Algorithm-I,
Continuous Parameter Optimisation. Evolutionary Computation (1), 1993. pp 25-49.
[38] Starkweather T. , Mc Daniel S., Mathias K, Whittley C, and Whittley D, A Comparison of Genetic
Sequencing Operators. Proc. Fourth Int. Conf. On genetic Algorithms ed. Morgan Kaufman, San
Mateo, California, 1991, pp 69-76.
[39] Falkenauer E. and Bouffouix S., A Genetic Algorithm for job S hop. Proceedings of the IEEE
international Conference on Robotics and Automation, 1991.pp 824-829.
[40] Grefenstette J.J,Optimization of Control Parameters for Genetic Algorithms. IEEE Trans. On SMC,
Vol. 16, n°1, Jan/Feb. 1986, pp. 122-128.
[41] John A Clark. Invited Paper . Nature-Inspired Cryptography: Past, Present and Future. Department
of computer Science, university of York, York, YO10 5DD, UK, 1991. Email:
[42] Goldberg D.E, and Lingle R., Alleles, Loci, and the TSP. Proceedings of the First International
Conference on Genetic Algorithms, 1985, pp 154-159.
Résumé
L’exploitation de la force des algorithmes génétiques est basée sur l’aléatoire. Pour réaliser un
algorithme cryptographique et sécuriser des communications dans les réseaux ad hoc en
produisant des clés de session jetables, tout en définissant soigneusement dans chaque
opérateur génétique (sélection , croisement ) la méthode la plus adaptée au problèmes des
réseaux ad hoc par une évaluation intra proposition . L’opérateur de croisement est l’un des
opérateurs les plus délicats pour les algorithmes génétique. Nous montrons ainsi les
limitations des opérateurs de croisement classiques et nous présentons un nouvel opérateur de
croisement inspiré de la génétique moderne nommé « Bestof2 » qui est capable de générer
toujours des solutions plus adaptées a notre problème et d’une meilleure façon dans l’espace
de recherche, dont le but est de converger rapidement vers la meilleur solution .Dans un
deuxième temps nous donnons une comparaison a base de simulation de l’approche génétique
avec les autres algorithmes cryptographiques les plus dominant actuellement
(IDEA,RSA,PGP ) par une évaluation extra proposition pour conclure la position de
l’approche para port au contraintes des réseaux ad hoc.
Mots-clés : algorithme génétique, croisement : 1-point, MPX, Bestof2, cryptographie, ad
hoc.
Abstract
Exploitation of the genetic algorithms witch is based on the random. To realise a
cryptographic algorithm and to make safe communications in the ad hoc networks by
producing disposable keys of session, while defining carefully in each genetic operator
(selection, crossing) the method most adapted to the problems of the ad hoc networks by an
evaluation intra proposal. The operator of crossing is one of the most delicate operators for
the algorithms genetics. We thus show the limitations of the traditional operators of crossing
and we introduce a new operator of crossing inspired by the modern genetics named
"Bestof2" which is able to always generate more adapted solutions has our problem and in a
better way in space of research, of which the goal is to converge quickly towards the solution
optimal the second time we give a comparison containing simulation of the genetic approach
with the other cryptographic algorithms more currently dominating (IDEA, RSA, PGP) by an
evaluation extra proposal to conclude the position from the approach Para port to the
constraints of the ad hoc networks.
Key words: genetic algorithm, crossing: 1-point, MPX, Bestof2, cryptography, ad hoc.