These Omary PDF
These Omary PDF
Présentée par
OMARY FOUZIA
Spécialité : Informatique
Devant le jury
Président :
Mr Abdelhak Mouradi PES et Directeur à l’Ecole Nationale des Systèmes
d’Information et d’Analyse des Systèmes.
Examinateurs :
Aboubakr Lbekkouri PES à la Faculté des Sciences de Rabat.
Safwan Benjelloun Ex. PES à la Faculté des Sciences de Rabat.
Mohammed Benkhalifa PES à la Faculté des Sciences de Rabat.
Abdelghani Bellaachia Professeur à l’Université de Georges Washington
aux Etats Unis.
Zouhair Guenoun PES à l’Ecole Mohammadia d’Ingénieurs de Rabat.
Faculté des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat – Maroc
Tel +212 (0) 37 77 18 34/35/38, Fax : +212 (0) 37 77 42 61, [Link]
RESUME
Cette thèse présente trois différents systèmes de chiffrement ayant tous le même outil de
base : les algorithmes évolutionnistes. Ce sont des systèmes symétriques générant leurs
propres clés (secrètes) de session. Le problème de chiffrement a été formalisé de la même
manière dans les trois systèmes. En fait, nous avons réussi à le ramener à un problème
d’optimisation combinatoire et fait appel aux algorithmes évolutionnistes pour le résoudre.
Dans le premier système, l’objectif principal est d’établir un échange des positions et des
fréquences d’apparition des différents caractères du message. Cet échange se fait par le biais
d’un algorithme évolutionniste dont nous avons défini les composantes de base adaptées à
notre problème.
Le deuxième système est une amélioration du premier, par la conception d’une nouvelle
méthode de chiffrement permettant de modifier les valeurs des fréquences d’apparition des
caractères du message. Cette méthode a l’avantage de réaliser un pré-chiffrement pour
notre algorithme évolutionniste. En fait, elle permet d’une part de générer une population
initiale plus intéressante et d’autre part d’augmenter davantage la résistance du premier
système.
A
REMERCIEMENTS
Les travaux présentés dans ce mémoire ont été effectués au sein du laboratoire
d’Informatique de la faculté des Sciences de Rabat, du laboratoire de l’Ecole Hassania des
travaux publics de Casa et du laboratoire de mathématiques appliquées à Pas-de-Calais
(Université de Lille), sous la direction de Mr Aboubaker Lbekkouri, Professeur à la faculté
des Sciences de Rabat, pour qui je tiens à exprimer ma profonde gratitude pour son
soutien et son aide précieux.
Par la même occasion, j’aimerais témoigner à mon co-encadrant Mr Safwan Benjelloun,
ex Professeur à la faculté des Sciences de Rabat, ma grande reconnaissance pour sa
collaboration si bénéfique et si motivante le long de ce travail.
Sans oublier notre cher Professeur et rapporteur de thèse Mr Abdelghani Bellaachia, de
l’université de George Washington, qui a tant sacrifié son temps pour m’aider. Ses conseils
et ses commentaires m’ont tellement guidée durant ce long parcours.
Aussi, je présente mes vifs remerciements et ma grande considération à Mr Mohammed
Benkhalifa, Professeur à la faculté des Sciences de Rabat, qui a accepté avec enthousiasme
d’être rapporteur de cette thèse et de faire partie du jury.
Mr le Professeur Abdelhak Mouradi et Directeur de l’ENSIAS, a bien voulu examiner ce
travail et être membre du jury, qu’il trouvera ici l’expression de mon profond respect et
mon sincère estime.
Mes remerciements s’adressent aussi à Mr Zouhair Guenoun, Professeur à l’Ecole
Mohammadia d’Ingénieurs, qui m’a fait l’honneur de participer au jury.
Enfin, je ne manque pas de remercier :
Notre invité, Mr le Professeur Abdelaaziz Sadok, Doyen de la faculté des sciences de Ain-
Chok pour son soutien et son aide le long de ce travail.
Mr le Professeur Hassan Sadok, Directeur de recherche du Laboratoire de mathématiques
appliquées de Pas-de-Calais qui m’a bien reçue et m’a aidée à franchir pas mal d’obstacles.
TABLE DES MATIÈRES
Chapitre 1 1
Introduction générale
Chapitre 2 5
La cryptographie
I Introduction.............................................................................................................................23
II Définitions :............................................................................................................................23
III Cryptographie classique......................................................................................................24
III.1 Le code de César.........................................................................................................24
III.2 Le carré de Polybe.....................................................................................................25
III.3 Chiffrement de Delastelle ........................................................................................25
III.4 le chiffre des templiers (ou de PigPen)..................................................................26
Sommaire
Chiffrement évolutionniste
I Introduction.............................................................................................................................71
II Motivation................................................................................................................................72
II.1 Position du problème.................................................................................................72
II.2 Description de l’algorithme......................................................................................72
Corps de l’AE................................................................................................................72
Premier concept : Choix de la population initiale ..................................................73
Deuxième concept : Sélection des meilleurs individus..........................................73
Chapitre 7 113
Conclusion générale
I Limites de nos travaux .........................................................................................................123
II Perspectives ..........................................................................................................................124
Bibliographie
INTRODUCTION GENERALE
La cryptologie, « science du secret » est l’une des sciences les plus antiques (plus de
3000 ans). Elle a été réservée pendant longtemps, aux milieux diplomatiques et
militaires. Grâce au développement de la société de l’information et l’évolution des
réseaux de communications sa démocratisation s’est installée et elle s’est imposée dans
tous les domaines. De nouvelles exigences se sont alors apparues : assurer la
confidentialité des messages ne suffit plus, il faut également assurer leur intégrité et
leur authenticité.
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 (Chapitre3 §.IV).
Les AE ont connu un grand succès dans la résolution des problèmes d’optimisation
et notamment les combinatoires qui sont en général NP-complets ou NP-difficiles.
Etant donné que nous avons pu ramener notre problème de chiffrement à un
problème d’optimisation combinatoire, l’appel aux AE est justifié. Ceci d’une part.
D’autre part, la majorité des processus dans les AE est aléatoire ce qui est un atout
pour la cryptographie. D’une manière générale, on utilise les algorithmes
évolutionnistes lorsque les méthodes d'optimisation classiques ne permettent pas
d'obtenir de bons résultats.
Des comparaisons avec d’autres systèmes connus et de même nature ont permis
d’évaluer notre système SEC.
Dans un deuxième lieu, nous avons défini une nouvelle méthode de chiffrement
intitulé « fusion ». Cette méthode consiste à regrouper un certain nombre de listes
dans une seule. La liste résultante est représentée par un seul caractère désigné
aléatoirement. Cette fusion peut être considérée comme un pré-chiffrement pour
SEC. Ainsi l’AE mis en œuvre débutera avec des solutions potentielles plus
intéressantes. L’avantage de cette méthode est qu’elle masque les fréquences réelles
des caractères ce qui mène à un nouveau système très résistant à la cryptanalyse par
étude des fréquences d’apparition des caractères. Nous désignons cette version
améliorée de SEC par ESEC-1 ( « enhancement of SEC »).
Ainsi le chapitre 1, situe le contexte de notre travail, cite en bref les différents
travaux existants et donne les grandes lignes de notre contribution.
Le chapitre 7 est consacré à des comparaisons sur le plan pratique avec les
algorithmes les plus dominants actuellement tels que IDEA, RSA, et PGP.
Nous achevons notre document par une conclusion générale, où nous faisons un
bilan de nos travaux effectués, ceux qui sont en cours et présentons les différentes
perspectives.
I Introduction
II Algorithmes génétiques
II.1 Définition et origine
II.2 Corps d’un algorithme génétique
III Naissance des algorithmes évolutionnistes
III.1 Les algorithmes génétiques parallèles
III.2 Extension vers les problèmes d’optimisation
III.3 Extension vers les problèmes d’ordonnancement
I Introduction
Le succès des méthodes basées sur les algorithmes génétiques (AG) n’a cessé de
grandir depuis leur apparition, 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és [MIC 92] ce qui a donné naissance aux algorithmes
évolutionnistes.
II Algorithmes génétiques
II.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 [Hol 75], en développant une
analogie entre un individu dans une population et une solution d’un problème dans
un ensemble de solutions.
En effet, un individu dans une population est caracté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
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é.
i := 0 ;
Etape 3 : Sélection
Sélectionner les meilleurs individus (au sens de F) et les grouper par paire.
Ranger les nouveaux individus obtenus (de 1 et 2) dans une nouvelle génération Pi+1
Nous détaillons dans les paragraphes suivants les cinq étapes de l’AG.
II.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 [HOL 75].
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, dans le paragraphe 3, que dans l’extension des AG, d’autres types de codage
sont utilisés.
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.
II.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
On affecte à chaque individu xi une probabilité d’apparition p(xi), appelée encore force
relative :
On affecte à chaque individu Xi une probabilité d’apparition p(Xi) :
F(Xi )
p(Xi) = q
∑ F(X
k =1
k )
Soit qi= la ∑ p( X
k =1
k ) probabilité d’apparition cumulée d’un individu Xi et soit r un
Xi si qi-1<r ≤ qi pour 2 ≤ i ≤ q
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é.
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.
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 :
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.
II.2.7 Convergence
J. Holland a défini des propriétés concernant la convergence des AG en introduisant la
notion de schéma [HOL 75].
Un schéma est un masque qui permet d’explorer les similitudes entre chromosomes. La
mise en œuvre de schémas nécessite d’ajouter à l’alphabet des gènes un symbole
supplémentaire * qui représente indifféremment 0 ou 1. Ainsi, un schéma 1*10
représente les chromosomes 1010 et 1110. D’une manière générale, un schéma
représentera 2r chromosomes, r étant le nombre de symboles * présents dans le schéma.
De même, un chromosome de longueur m est représenté par 2m schémas. Les schémas
sont caractérisés par leur ordre et leur longueur de définition.
L’ordre d’un schéma est le nombre de 0 et 1 contenus dans ce schéma. C’est aussi la
différence entre la longueur du chromosome et le nombre de symboles *.
10-4=6. Cette notion permet de calculer la probabilité de survie d’un chromosome après
un croisement.
Théorème des schémas [HOL 75] :
Dans un algorithme génétique, si le croisement est du type « un –point » et si la sélection
repose sur le principe de la roulette alors le nombre de chromosomes correspondant à
des schémas de longueur de définition courte, d’ordre faible et de force supérieure à la
moyenne augmente au cours des itérations.
En résumé, les travaux de Holland [HOL 75] montrent que, si les chances de
reproduction sont proportionnelles à la force (évaluation), les schémas de force au-
dessus de la moyenne auront tendances à apparaître plus fréquemment dans la prochaine
génération. Au contraire, les schémas de force en-dessous de la moyenne deviendront de
plus en plus rares. Par ailleurs, la longueur de définition d’un schéma est liée à la
position des génes dans le chromosome. La convergence d’un algorithme génétique
dépend donc des opérateurs génétiques mis en œuvre.
De leur côté K. Dejong [DEJ 75], et Greffenstette [GRE 86] ont proposé des mesures
statistiques permettant aussi de juger la convergence. Nous en citons deux :
Performance en-ligne
La performance en cours de la recherche est mesurée par la performance moyenne de
l'algorithme basée sur la fonction d’évaluation :
t =T
Performance-en-ligne(T) = 1 ∗∑ F ( t )
T t =1
Avec T, le nombre total des itérations jusqu'à l'itération t, F(t) est la valeur moyenne de
la fonction d’évaluation à la tième itération. Lors de l'exécution de l'AG, Performance-en-
ligne(T) converge de plus en plus vers une valeur stable (état stationnaire), et comme
Performamnce-en-ligne(T) converge, les solutions trouvées par l'algorithme deviennent de
plus en plus stables.
Performance hors-ligne
La mesure de performance hors-ligne, est similaire à celle en-ligne sachant que la
performance hors-ligne accorde plus l'importance aux meilleures performances
obtenues:
t =T
Performance-hors-ligne(T) = 1 ∗ ∑ F max ( t ) avec Fmax(t)=Sup(F(t)) et 1≤ t ≤ T
T t =1
Dans l'équation ci-dessus, ce qui change par rapport à la performance en-ligne est la
fonction Fmax(t), qui enregistre le meilleur fitness jusqu'à présent et ignore toute autre
évaluation.
Ces mesures de performance peuvent être utilisées comme critère d'arrêt. Puisque si
Performance-hors-ligne(T) converge vers une valeur stable durant l'évolution, la
chance d'obtenir une solution encore meilleure diminue fortement et l'on peut déjà
arrêter la simulation, car si meilleur signifie seulement une légère amélioration,
continuer l'algorithme serait une perte de temps.
Enfin, on a montré que la convergence peut-être observée directement en mesurant
comment les individus changent à chaque position de gène [BEA 93]. Un gène est dit
avoir convergé lorsque 95% de la population partage la même valeur et la population
est qualifiée d’avoir convergé si tous les gènes ont convergé.
C1 = A B C D et C2 = D A B C.
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
C2= 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.
Exemple :
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% [MÜH 93b] .
-Croisement d’ordre à deux points OX
Ce croisement a d’abord été proposé par Davis [DAV 85], puis modifié par
Starkweather T. et al. [STA 91]. 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).
IV Recommandations
Pour en finir, nous citons quelques recommandations concernant le choix des valeurs
des paramètres. En effet, d’après Grefenstette [GRE 86] les valeurs des paramètres
doivent être choisies avec les considérations suivantes :
• Taille de la population
- Elevée : l’AE est plus informé. Une taille élevée prévient contre la convergence
prématurée.
• 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.
• Taux de Mutation
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 AE dépend plus du codage et de la
fonction d’évaluation que de l’optimisation de ses paramètres [GRE 86].
LA CRYPTOGRAPHIE
I Introduction
II Définitions
III Cryptographie classique
III.1 Le code de César
III.2 Le carré de Polybe
III.3 Chiffrement de Delastelle
III.4 le chiffre des templiers (ou de PigPen)
IIII.5 Le Chiffrement par décalage
III.6 Le chiffrement affine
III.7 Le chiffrement de Hill
III.8 Le chiffrement de Vigenère
III.9 Le chiffrement par transposition (par permutation)
III.10 Les faiblesses de la méthode de substitution
III.11 Systèmes à clés jetables
IV Cryptographie moderne
IV.1 Cryptographie symétrique
IV.1.1 DES
IV.1.2 IDEA
IV.1.3 AES
IV.2 Cryptographie asymétrique
IV.2.1 Schéma ElGamal
IV.2.2 RSA
IV.3 Cryptographie Hybride
IV.4 Cryptographie Quantique
IV.5 Cryptographie par courbe elliptique
V La cryptanalyse
V.1 Cryptanalyse linéaire
V.2 Cryptanalyse différentielle
V.3 L'attaque boomerang
I Introduction
L’idée de coder un message dans le but de le rendre intelligible à toute tierce personne
ne date pas d’aujourd’hui. Les « messages secrets » ont joué un rôle important dans
tous les conflits depuis que l’homme a appris à écrire et sont habituellement associés
aux guerres et aux agents secrets. Ce qui est nouveau, c’est le besoin quasi vital de
coder toute sorte d’information dans notre vie de tous les jours. En effet, les cartes
bancaires qui sont devenues nos proches compagnes, utilisent des systèmes de
chiffrement. Les transactions qui s’effectuent par lettre, par téléphone ou par contact
direct entre deux personnes se font de plus en plus par l’intermédiaire de réseaux de
communications électroniques. La généralisation de l’emploie des moyens modernes
de communication multiplie les possibilités d’indiscrétion et de falsification. Les
conséquences de telles falsifications peuvent être graves.
II Définitions :
La cryptologie est une science mathématique qui comporte deux branches : la
cryptographie et la cryptanalyse [FLO 02].
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
Texte
clair A B C D E F GH I J K L M N O P Q R S T U V W X Y Z
Texte
codé D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
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.
1 2 3 4 5
1 A B C D E
2 F G H IJ K
3 L M N O P
4 Q R S T U
5 V W X Y Z
Chaque lettre est codée par 2 chiffres. Exemple : X=53. Les lettres I et J ne sont pas
différenciés. "BONJOUR" sera chiffré par "12343324344542"
O M A R Y F O U Z
3 3 1 4 5 2 3 4 5 0
4 2 1 2 4 1 4 5 5 0
(Remarquons que les lettres vides sont remplacées par un double 00).
Ensuite, on effectue la transposition qui consiste à regrouper les chiffres deux par
deux, de la gauche vers la droite, puis du haut vers le bas. On obtient alors :
33145421242345014550. La dernière opération consiste à transformer le code
précédent en message littéral, en utilisant à nouveau le carré 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 :
000 011 022 033 044 055 106 207 308 409 50%
On trouve ici finalement le message chiffré : "NDYFIHU1U%"
III.5.2 Application
Le chiffrement par décalage [STI 03] 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
Texte en clair m e s S a g e s e c r e t
Nombre correspondant
12 4 18 18 0 6 4 18 4 2 17 4 19
à la lettre en clair
Nombre correspondant
17 9 23 23 5 11 9 23 9 7 22 9 24
à la lettre cryptée
Texte crypté r j x X f l j x j h w j y
Pour que l’on puisse déchiffrer, il faut que l’opération inverse soit possible. C’est à
dire que l’équation : y =ax + b mod(26) ait une solution unique (cela revient à dire
que la fonction f doit être injective).
Théorème 1 :
L’équation y=a.x + b mod(26) admet une solution unique x ∈ Z//26Z/ pour tout
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 à la notion d’inverse modulaire définie par :
Dans Z/ /26Z/ , grâce à la table de multiplication on peut obtenir les inverses de tous
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).
Lettre en clair B O N J O U R
Nombre x 1 14 13 9 14 20 17
Résultat y=7.x+3 10 23 16 14 10 13 18
Lettre chiffrée K X Q O X N S
Table 3.5 : Un chiffrement affine.
y1 11 3 x1
=
y2 8 7
x2
7 23
Le déchiffrement se fait à l’aide de K-1 qui est égale à .
18 11
−1
11 3 a b d −b
en effet det K = = 77 - 24 = 53 = 1 mod(26) et = 1 . .
8 7 det K −c a
c d
Lettre chiffrée C Q V F X J
Y=(y1 y2) 2 16 21 5 23 9
Résultat X=K-1.Y 18 4 2 17 4 19
Lettre obtenue S E C R E T
Table 3.8 : Un déchiffrement de Hill.
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 à 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 à clé jetable.
III.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 [FLO 02].
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 "OMARY FOUZIA ARRIVE")
Le message une fois déroulé n'est plus compréhensible (dans l’exemple ci-dessus
"OYU IM ZAVAFIREROAR ").
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, ...
Exemple commenté :
Afin de décoder un message chiffré. Son fonctionnement est très naïf. La lettre la plus
fréquente est assimilée à un E. La lettre la plus isolée est supposée être un A. On regarde
ensuite les mots de 2 lettres pour distinguer les lettres N, R, S, T, puis O, U, L.
Nous étudions par exemple le message suivant, chiffré par substitution mono
alphabétique :
TIXIV KYWXEZ PINIYRI-HMVMGLPIX IWX RI PI 13 JIZVMIV 1805 E HYVIR, YRI
ZMPPI H'EPPIQEKRI WMXYII E QM-GLIQMR IRXVI EEGLIR IX GSPSKRI. WSR
IV Cryptographie moderne
Si le but de la cryptographie classique est d’élaborer des méthodes permettant de
transmettre des données de manière confidentielle, la cryptographie moderne s’intéresse
en fait plus généralement aux problèmes de sécurité des communications. Le but est
d’offrir un certain nombre de services de sécurité comme la confidentialité, l’intégrité,
l’authentification des données transmises. La cryptographie moderne se compose de
deux grandes parties : La cryptographie symétrique et la cryptographie asymétrique.
IV.1 Cryptographie symétrique
Aussi appelée cryptographie conventionnelle ou à clé secrète.
Principe : sur la base d’une clé secrète, réaliser une transformation capable
respectivement de rendre illisible et de restituer une pièce d’information [MEN 97]. Il
existe de nombreux systèmes de chiffrement symétrique (DES, IDEA, AES, …). La
clé étant secrète, elle doit être échangée entre les intervenants par un canal confidentiel.
Dans les algorithmes symétriques, on distingue le chiffrement par bloc et le chiffrement
continu. Dans le premier, le message en clair est décomposé en blocs de même taille ;
chacun d’eux est chiffré individuellement et de la même manière. Pour le second,
chaque unité (lettre dans le cas d'un e-mail) du message en clair est chiffrée une par une
(exemples : substitution, chiffrement affine, masque jetable,…).
Texte chiffré
Algorithme de Algorithme de
chiffrement déchiffrement
IV.1.1 DES
Le 15 mai 1973 le NBS (National Bureau of Standards, aujourd'hui appelé NIST
National Institute of Standards and Technology) a lancé un appel dans le Federal
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
- Efficace et exportable
Fin 1974, IBM propose Lucifer, qui, grâce à la NSA (National Security Agency), est
modifié le 23 novembre 1976 pour donner le DES (Data Encryption Standard). Le DES
a finalement été approuvé en 1978 par le NBS. Le DES fût 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) [MÜL 03].
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 clef (1 tous les
8 bits) sert à tester un des octets de la clef par parité impaire, c'est-à-dire que chacun des
bits de parité est ajusté de façon à 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 [MEN 97] 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 notés k1 à k16. Etant donné que "seulement" 56 bits
servent réellement à 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 à 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.
57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 21 6 15 28 3 5 1 24 11 17 14
10 2 59 51 43 35 27 19 11 3 60 52 44 36 2 13 20 27 7 16 8 26 4 12 19 23
63 55 47 39 31 23 15 7 62 54 46 38 30 22 48 33 45 51 40 30 55 47 37 31 52 41
14 6 61 53 45 37 29 21 13 5 28 20 12 4 32 29 36 50 42 46 53 34 56 39 49 44
1 2 4 6 8 10 12 14 15 17 19 21 23 25 27 28
i =1
Permutation CP1
56 bits
28 bits 28 bits
56 bits
Permutation CP2
i ← i+1
Non
i >16 ?
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
L'algorithme DES procède ensuite à 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 à 4 lignes ( indexées par 0, 1, 2, 3) et 16 colonnes (indexées de 0 à 15).
Le bloc obtenu D″n de longueur 32 bits est réordonnée 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.
PI
G0 D0
K1
L1
G1 D1
R1
K2
L2
G15 D15
R2
K16
D16 G16
PI-1
58 50 42 34 26 18 10 2 40 8 48 16 56 24 64 32
60 52 44 36 28 20 12 4 39 7 47 15 55 23 63 31
62 54 46 38 30 22 14 6 38 6 46 14 54 22 62 30
64 56 48 40 32 24 16 8 37 5 45 13 53 21 61 29
57 49 41 33 25 17 9 1 36 4 44 12 52 20 60 28
59 51 43 35 27 19 11 3 35 3 43 11 51 19 59 27
61 53 45 37 29 21 13 5 34 2 42 10 50 18 58 26
63 55 47 39 31 23 15 7 33 1 41 9 49 17 57 25
S1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
32 1 2 3 4 5 16 7 20 21
4 5 6 7 8 9 29 12 28 17
8 9 10 11 12 13 1 15 23 26
12 13 14 15 16 17 5 18 31 10
16 17 18 19 20 21 2 8 24 14
20 21 22 23 24 25 32 27 3 9
24 25 26 27 28 29 19 13 30 6
28 29 30 31 32 1 22 11 4 25
Dn-1 Kn
32bits 48bits
48bits
48bits
8x6 bits
S1 S2 S3 S4 S5 S6 S7 S8
8x4 bits
32bits
P
Dn
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 à 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 [BIH 93] 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 à 8 ou à 10 tours. Le DES complet à 16 tours est resté hors de portée de cette
attaque. Ceci d’une part. D’autre part, l’ordinateur baptisé « 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 à 15, or l'algorithme Triple
DES (TDES) contient 16 rondes ce qui donne une solution à court terme. Le processus
du TDES consiste à enchaîner trois chiffrement DES à l'aide de deux clés de 56 bits (ce
qui équivalant à une clé de 112 bits) [FLO 02]. 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.
IV.1.2 IDEA
IDEA est un système de chiffrement par blocs de 64 bits, avec une clé de 128 bits, qui
tourne sur 8 rondes [MEN 97]. Cet algorithme, utilisé par PGP, n'utilise que trois
opérations simples : le XOR notée ⊕ , l'addition modulo 216 notée [+] et la
multiplication modulo 216+1 notée ⊗ . Le principe est basé sur la difficulté d’inverser les
nombres dans un corps intègre abélien Z/ /pZ/ .
Sortie : Les 52 clés de taille 16 bits Ki (r) pour les 8 rondes et la transformation finale.
3. Répéter ce qui suit jusqu’à ce que toutes les 52 clés soient affectées :
Décaler d’une manière cyclique, vers la gauche, les 25 bits de la clé K; décomposer de
nouveau le résultat en 8 blocs ; affecter ces blocs aux huit prochaines sous clés.
(r) (r)
b) t0 ← K5 ⊗ (X1 ⊕ X3 ), t1 ← K6 ⊗ (t0[+](X2 ⊕ X4)), t2 ← t0[+]t1
(9)
4. Y1 ← X1 ⊗ K1 , Y4 ← X4 ⊗ K4(9), Y2 ← X3[+]K2(9),Y3 ← X2[+]K3(9)
(transformation de sortie)
c) Déchiffrement
On utilise l’algorithme de chiffrement de IDEA, mais cette fois-ci avec le texte chiffré Y
comme entrée et la même clé K. Le seul changement réside dans la génération des clés
dérivées. En fait, on utilise K pour générer les sous clés Ki (r) ; à partir de ces dernières,
d’autres clés Ki’ (r) sont obtenues dans la table 3.15 ; ensuite on utilise Ki’ (r) à la place des
(r)
Ki dans l’algorithme de chiffrement IDEA. Dans la table3.15, -Ki dénote l’opposé
modulo 216 de Ki , l’entier u=(216 -Ki)AND O × FFFF, 0 ≤ u ≤ 216-1. Ki-1 dénote l’inverse
multiplicative de Ki mod(216+1), se trouvant aussi dans {0, 1, …,216-1}, dérivant de
l’extension de l’algorithme d’Euclide [Men 97] qui pour deux ,entiers a ≥ b ≥ 0 retourne
deux entiers x et y tels que : ax+by=pgcd(a,b). En utilisant a=216+1 et b=K ; le pgcd est
toujours égal à 1 (sauf pour Ki=0 étudié séparément ) et ainsi Ki-1 =y ou 216+1+y si y<0.
Quand Ki=0, cette entrée est appliquée à 216 et (216)-1=216 et alors (Ki)-1=0.
IV.1.3 AES
Avec le temps, et les progrès de l'informatique, les 256 clés possibles du DES ne
représentent plus une barrière infranchissable. Il est désormais possible, avec des
moyens modestes, de percer les messages chiffrés par DES en un temps raisonnable. En
janvier 1997, le NIST (National Institute of Standards and Technologies) des Etats-Unis
lance un appel d'offres pour élaborer l'AES, Advanced Encryption System [BAY 03].
Le cahier des charges comportait les points suivants :
- Une large portabilité : L'algorithme devant remplacer DES, est destiné à servir
aussi bien dans les cartes à puces, dans les processeurs 8 bits peu puissants, que
dans des processeurs spécialisés pour chiffrer des milliers de télécommunications
à la volée.
- La rapidité.
- Une lecture facile de l'algorithme, puisqu'il est destiné à être rendu public.
Techniquement, le chiffrement doit se faire par blocs de 128 bits, les clés comportant
128, 192 ou 256 bits.
Au 15 juin 1998, date de la fin des candidatures, 21 projets ont été déposés. Certains
sont l’œuvre d'entreprises (IBM), d'autres regroupent des universitaires (CNRS), les
derniers sont écrits par à peine quelques personnes. Pendant deux ans, les algorithmes
ont été évalués par des experts, avec forum de discussion sur Internet, et organisation de
conférences. Le 2 octobre 2000, le NIST donne sa réponse : c'est le Rijndael qui est
choisi, un algorithme mis au point par 2 belges, Joan Daemen et Vincent Rijmen.
Le Rijndael procède par blocs de 128 bits, avec une clé de 128 bits également. Chaque
bloc subit une séquence de 5 transformations répétées 10 fois :
L’intérêt du schéma ElGamal est de donner une méthode efficace permettant de rendre
A (et B) secrets pour celui qui ne possède pas la clef de déchiffrement, en se basant sur
la difficulté du calcul d’un logarithme discret.
En effet, il est impossible, dans un temps raisonnable, de déterminer dans certains cas la
valeur d’un logarithme discret.
Pour expliquer le problème du logarithme discret qui est à la base du schéma ElGamal.
Nous aurons besoin de quelques notions d’algèbre.
Notation :
▪ Z//nZ/ est l’ensemble des classes d’équivalence modulo n.
Pour utiliser le schéma ElGamal, il faut tout d’abord construire des clefs de chiffrement,
c’est à dire déterminer les quatre éléments n, g, x, et s.
Nous nous intéressons dans un premier lieu au choix de n, afin que En soit un groupe
cyclique et afin d’assurer l’existence d’un générateur de En. A ce sujet, le théorème
suivant nous donne une condition suffisante.
Comme n est un nombre premier, tout nombre entier choisi dans {1, …, n-1} est
premier avec n.
α = gk mod(n) .
La sécurité du chiffrement est assurée par le fait que, α et la clef publique, personne ne
c) Exemple d’application
Considérons le nombre premier n=181. Un générateur de Z//nZ/ est g=23.
Le chiffrement :
Ensuite, on chiffre les nombres en les multipliant par αs = gks = xk = 576 mod(181)
90 x 576 = 93 mod(181)
(On rajoute des 0 s’il est nécessaire, afin de n’avoir que des éléments de 3 chiffres)
IV.2.2 RSA
Développé au MIT (Massachussets Institute of Technology) en 1977 par Ronald Rivest,
Adi Shamir et Leonard Adleman; le système RSA est à la fois sûr et à clef publique
[STI 03]. Il convient parfaitement pour le chiffrement des fichiers stockés dans les
mémoires de masse des ordinateurs personnels et il préserve la confidentialité des
messages électroniques.
Il possède une sécurité potentielle de travail largement plus grande que le système DES
(Data Encryption Standard, 1977) qui est pourtant utilisé par les organisations à
caractère fédéral, commercial ou privé pour sa rapidité.
Le RSA est un chiffrement exponentiel qui se résume ainsi :
Soient c et d deux entiers tels que :
En se basant sur ce théorème, nous pouvons démontrer les théorèmes et les corollaires
ci-dessous.
Théorème 5 : Soit a un entier non divisible par le nombre premier p et soit r et s deux
entiers tels que r = s mod(p-1) alors ar = as mod(p)
Corollaire 2 : Pour tout entier a et tout nombre premier p et avec r tel que :
r=1 mod(p-1) on a : ar =a mod(p)
En particulier, ap = a mod(p)
Corollaire 3 : Soit a un entier non divisible par les deux nombres premiers distincts
p et q et soient r et s deux entiers tels que : r=s mod((p-1)(q-1)) alors ar = as mod(pq). .
Le théorème suivant permet de construire et de démontrer l’algorithme RSA
En résumé :
L’utilisateur B veut envoyer un message M à l’utilisateur A.
L’utilisateur A construit à partir de deux nombres premiers aléatoires p et q les nombres
n, d et c comme vu précédemment.
L’utilisateur A distribue alors sa clef publique (n,c) puisqu’on a vu qu’il est impossible de
trouver d, nécessaire au déchiffrement, par une méthode de calcul simple et rapide si on
ne possède pas les nombres p et q. Il conserve sa clef privée (d).
L’utilisateur B chiffre le message M en utilisant la clef publique (n,c) de l’utilisateur A. Il
transmet le message C ainsi obtenu.
Le destinateur, c’est à dire l’utilisateur A, peut alors déchiffrer ce message C en utilisant
sa clef privée (d).
L’algorithme est simple, la sécurité repose sur la taille du problème et la complexité de sa
solution. Tout le monde sait comment le résoudre, mais le temps nécessaire est plus
qu’irréaliste.
d) Exemple d’application
Considérons les deux nombres premiers :
P=11 et q=13. On calcule les clefs correspondantes :
Clef publique [143,53] Clef privée [77]
Supposons que le message à envoyer est une date de naissance : 071290
▪ Chiffrement :
Comme n est de longueur 3, il nous faut prendre des blocs de longueur 2 :
[ 07 , 12 , 90 ]
Pour le traitement, il s’agit du déchiffrement des nombres 7, 12 et 90.
On utilise pour cela, la clef publique [ 143, 53 ]
753 = 24 mod(143) ; 1253 =12 mod(143) ; 9053 =129 mod(143).
Ce qui nous donne : [ 24, 12 , 129 ]
n étant de longueur 3, on rajoute des 0, si nécessaire, afin de n’avoir que des éléments de
3 chiffres [ 024 , 012 , 129 ]
On envoie alors le message 024012129
▪ Déchiffrement :
On reçoit le message précédent que l’on décompose en blocs de 3 chiffres (car n est de
longueur 3), ce qui donne [ 24 , 12 , 129 ]
On applique à chaque élément a du tableau la formule : a77 mod(143)
Afin de déchiffrer (en utilisant la clef privée [ 77 ].
On obtient ainsi le tableau suivant : [ 7, 12 , 90 ]
Il ne reste qu’à compléter chaque bloc par des 0, si nécessaire, afin d’avoir des éléments
de longueur n-1, c’est à dire 2. On obtient donc : [ 07 , 12 , 90 ].
Ce qui correspond bien à notre message original : 071290
IV.3 Cryptographie Hybride
Les algorithmes à clé publique (on parle aussi de chiffrement asymétrique) ont pourtant
un grave défaut : ils sont lents, beaucoup plus lents que leurs homologues symétriques.
Pour des applications où il faut échanger de nombreuses données, ils sont inutilisables
en pratique. On a alors recours à des cryptosystèmes hybrides. On échange des clés pour
un chiffrement symétrique grâce à la cryptographie à clé publique, ce qui permet de
sécuriser la communication de la clé. On utilise ensuite un algorithme de chiffrement
symétrique. Le célèbre PGP, décrit ci-dessous, fonctionne sur ce principe.
Le PGP (Pretty Good Privacy) est un algorithme de chiffrement à destination des
particuliers [PGP 98]. Il est surtout utilisé pour chiffrer des messages envoyés par
courrier électronique, même s'il peut aussi être utilisé pour chiffrer tous les fichiers. PGP
a été mis au point en 1991 par l'informaticien américain Philip Zimmermann, et ceci lui
valut divers problèmes avec la justice. D'une part, le PGP utilise l'algorithme RSA, qui
est breveté aux Etats-Unis. D'autre part, la NSA a tout fait pour tenter d'empêcher la
diffusion du PGP. La puissance de ce programme met en effet à la disposition de
chacun un moyen de cacher ses échanges électroniques qui résiste même aux assauts de
la plus puissante des agences de renseignements du monde. PGP s’appelle un système
hybride, il utilise le meilleur de la cryptographie symétrique (rapidité du chiffrement) et
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 (à 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), où 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 basés sur des phénomènes quantiques - où l'écoute même de ces signaux
perturbe irrémédiablement ces derniers, ce qui rend impossible de lire deux fois
l'information [GIR 01]. 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 à un cristal de calcite placé à 0°
la polarisation de photons polarisés à 0° ou 90°.
Si le photon possède une polarisation de 45° ou de 135° avec un cristal toujours à 0°, le
résultat sera aléatoire, il donnera 0° ou 90°. Maintenant, si le cristal est placé à 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 sûr. 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.
écoutés, et ils oublient vite cette clé. En comparant suffisamment de bits, ils ont une
garantie presque absolue de ne pas avoir écouté.
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 [GIR 01]. 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.
Une courbe elliptique est un objet très simple mais qui a des propriétés tout à fait
surprenantes. Elles ont normalement la forme suivante:
y2+a1xy+a3y=x3+a2x2+a4x+a6
Pour leur usage en cryptographie, a1, a2 et a3 doivent être égaux à 0. Comme les
cryptographes ont l'habitude de renommer a4=a et a6=b, on obtient y2=x3+ax+b
Un exemple typique de courbe elliptique est donné sur la figure ci-dessous. Son
équation est y2=x3-5x2+3.
lui aussi sur la courbe et on le désigne par A+B pour signifier qu'il est construit à 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émontré 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 clef de 192 bits assure le même niveau de sécurité qu'une clef 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.
Règles de l'addition
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.
Calculons dP, avec d=3 et P=(4, 2). On peut vérifier que le point P appartient bien à
Calculons d'abord P+P. D'après la règle 5, P+P = (4, 2) + (4, 2) = (8, 4) = 2P.
dAP, et Bob envoie à Alice dBP. Chacun de son côté, ils sont capables de calculer
commune.
IV.5.4 Sécurité
Si Eve a espionné leurs échanges, elle connaît E(a,b,p), P, dAP et dBP. Pour pouvoir
calculer dAdBP, il faut pouvoir calculer dA connaissant P et dAP. 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.
IV.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.
V La cryptanalyse
La cryptanalyse est l’étude des systèmes cryptographiques, notamment de leurs
faiblesses, dans le but de retrouver les messages clairs correspondants à des messages
chiffrés dont on n’est pas destinataire. En général, on part de l’hypothèse, connue sous
le nom de Kerckhoffs (fin du 19ième siècle), qui exprime que la méthode de chiffrement
utilisée doit « pouvoir tomber sans inconvénients aux mains de l’ennemi ». Autrement
dit, la sécurité d’un chiffrement doit reposer uniquement sur la protection de la clé.
Un cryptanalyste ou attaquant est donc une personne qui tente de déchiffrer des
messages, c’est-à-dire de retrouver des textes clairs à partir des textes chiffrés sans, à
priori, connaître la clé.
Selon les moyens dont dispose l’attaquant, on distingue plusieurs types d’attaques. Par
ordre de difficulté décroissante, nous en citons les modèles les plus courants :
Attaque sur texte chiffré seul (ciphertext-only) : le cryptanalyste possède des
exemplaires chiffrés des messages, il peut faire des hypothèses sur les messages
originaux qu'il ne possède pas. Le cryptanalyste est plus ardue de par le manque
d'informations à disposition.
Attaque à texte clair connu (known-plaintext attack) : le cryptanalyste possède des
messages ou des parties de messages en clair ainsi que les versions chiffrées
correspondantes. La cryptanalyse linéaire fait partie de cette catégorie.
Attaque à texte clair choisi (chosen-plaintext attack) : le cryptanalyste a la possibilité
d’obtenir la version chiffrée de messages clairs de son choix (en ayant accès à
une machine chiffrante ) . La cryptanalyse différentielle est un exemple d'attaque
à texte clair choisi.
Attaque à messages chiffrés choisis : Le cryptanalyste a temporairement
l’opportunité de déchiffrer les messages de son choix (en ayant par exemple
accès à une machine déchiffrante ). Il tente alors d’en profiter pour obtenir des
informations lui permettant de déchiffrer ensuite d’autres messages par ses
propres moyens.
L’attaque de DES nécessitait à l'origine 247 couples (tous chiffrés avec la même clé) que
l'attaquant a pu récupérer par un moyen ou un autre. Par la suite, Matsui améliore son
algorithme en 1994 et propose une solution avec 243 couples. La complexité avec une
bonne implémentation est toutefois inférieure et de l'ordre de 239 opérations DES.
Elle a par la suite été appliquée avec succès sur d’autres algorithmes. Les algorithmes
plus récents comme AES, IDEA et bien d'autres encore sont insensibles à une attaque
linéaire. La complexité de l'attaque est dans ces cas largement supérieure à celle d'une
recherche exhaustive.
V.2 Cryptanalyse différentielle
La cryptanalyse différentielle est une méthode générique de cryptanalyse qui peut être
appliquée aux algorithmes de chiffrement itératif par blocs, mais également aux
fonctions de hachage. Elle utilise une attaque à texte en clair choisi et se base sur
l’observation de l’évolution des différences entre deux textes lorsqu’ils sont chiffrés avec
la même clé. En analysant ces différences entre paires de textes, il est possible d’attribuer
des probabilités à chaque clé possible. A force d’analyser des paires de textes, on finit
soit par trouver la clé recherchée, soit par réduire suffisamment le nombre de clés
possibles pour pouvoir mener une attaque exhaustive rapide.
Origines de la cryptanalyse différentielle :
La découverte de la cryptanalyse différentielle est généralement attribuée à Eli Biham et
Adi Shamir à la fin des années 1980. Ces derniers publièrent un nombre d'attaques
contre divers algorithmes de chiffrement itératif par blocs et diverses fonctions de
hachage; ces articles comprenaient la présentation d'une faiblesse théorique dans
l'algorithme DES [BIH 93].
Il a été alors noté que DES était particulièrement résistant à cette attaque et en
particulier que de petites modifications dans ses paramètres l'affaiblissaient. Ce constat a
fait naître la rumeur que ses concepteurs (travaillant pour IBM) connaissaient déjà cette
méthode dans les années 1970. Effectivement, plusieurs personnes ayant participé à sa
conception ont depuis admis que la défense contre la cryptanalyse différentielle était
bien alors un des buts recherchés (Don Copperfield, 1994). Il semblerait que la NSA qui
contribua également à la conception de DES, avait même connaissance de cette
technique avant sa redécouverte par IBM. Et même La NSA exigea que le processus de
la conception soit tenu secret afin d'éviter la propagation de cette méthode. À l'intérieur
d'IBM, la cryptanalyse différentielle était connu sous le nom de T-attack, abréviation de
"Tickling attack", l'attaque par chatouillement car elle consistait à chatouiller les entrées
pour voir l'effet sur les sorties.
Alors que DES avait été conçu pour résister à la cryptanalyse différentielle, d'autres
algorithmes conçus à la même époque se sont révélés particulièrement vulnérables.
V.3 L'attaque boomerang
L'attaque boomerang est une version améliorée de la cryptanalyse différentielle, cette
méthode a été inventée par David Wagner en 1999. Elle consiste à attaquer les deux
moitiés d'un algorithme de chiffrement par bloc et part du principe que certaines
propriétés, après perturbations des entrées, ne se propagent pas à travers toute la
structure.
V.3.1 Description
On considère quatre messages en clair : P, P', Q et Q'. On dispose également des
versions chiffrées de ces messages : C, C', D et D'. On considère également un
algorithme de chiffrement symétrique E dont le chiffrement peut être décomposé en
deux parties.
La première moitié du chiffrement est représentée par E0 et E1 est la deuxième partie.
On définit deux caractéristiques différentielles ∆ → ∆* pour E0 et ν → ν* pour E1-1.
Cette notation signifie qu'une modification ∆ sur les entrées va entraîner une
modification ∆* sur les sorties après passage dans l'algorithme. Le but est d'obtenir des
caractéristiques qui vont satisfaire les données que nous avons.
On veut en premier que la paire (P,P') soit compatible avec la caractéristique de E0.
Ensuite, les paires (P,Q) ainsi que (P',Q') doivent satisfaire la caractéristique de E1-1.
Nous supposons ensuite que la paire (Q,Q') est configurée de telle manière à ce que la
caractéristique différentielle ∆* → ∆ soit respectée.
Si les paramètres sont corrects, la différence entre Q et Q' doit être égale à la différence
entre P et P' d'où le surnom de Boomerang.
V.3.2 Les différentes étapes
Nous avons donc un bloc P et un bloc P' avec une différence ∆ entre les deux. La
différence se traduit sous la forme d'un ou-exclusif du bloc P avec un vecteur, on obtient
alors P'. On calcule E0(P) et E0(P'). Ces deux résultats diffèrent de ∆*. On applique
ensuite E1 sur ces deux valeurs pour obtenir C et C' :
C = E1(E0(P)) et C' = E1(E0(P')).
CHIFFREMENT EVOLUTIONNISTE
I Introduction
II Motivation
II.1 Position du problème
II.2 Description de l’algorithme
II.3 Discussion
III Description du système de chiffrement SEC
III.1 Formalisation du problème
III.2 Notre système de chiffrement
IV Déchiffrement
V Expérimentation
V.1 Les messages modèles
V.2 Résultats retenus
V.3 Interprétation
VI Extension de SEC à des blocs binaires
VI.1 Motivation
VII.2 Description de la méthode
VII Discussion
VIII Conclusion
I Introduction
L’optimisation combinatoire est un domaine vivant des Mathématiques Appliquées
s’appuyant principalement sur l’algorithmique et la Théorie de la Complexité qui s’est
développée en parallèle avec l’informatique. Il existe un tas de problèmes d’optimisation
combinatoire qui sont NP-complets tels que le Voyageur du Commerce (TSP), ou
problème d’ordonnancement. D’autres qui sont polynomiaux tels que les problèmes du
Flot maximal dans un graphe pondéré [LAC 03].
Nos contributions dans ce domaine, s’inscrivent dans le contexte de la cryptographie et
notamment le chiffrement.
Dans la première section de ce chapitre, nous présentons notre première approche pour
la conception et réalisation d’un système de chiffrement. Cette approche n’en est qu’à
ses balbutiements. Cependant, elle est à l’origine de la motivation pour la mise en œuvre
de notre premier système de chiffrement SEC. L’objectif principal de cette approche est
l’obtention d’un système de chiffrement symétrique dont la clé secrète est inattaquable
actuellement (≥240) bits). Cela se réalise par l’optimisation (maximisation) d’une
fonction d’évaluation concrétisant notre problème de chiffrement. La valeur de cette
fonction varie en fonction des transformations subies par les blocs d’un texte traduit en
binaire. Ces transformations se réalisent grâce aux opérateurs génétiques de l’AE que
nous avons adopté.
Dans la deuxième section, nous décrivons notre premier système de chiffrement SEC,
qui présente la résolution d’un problème d’optimisation cette fois-ci combinatoire
auquel a été ramené notre problème de chiffrement. En fait, nous avons représenté le
texte à chiffrer par un ensemble de listes disjointes. Chaque liste est composée par les
différentes positions dans le texte du caractère correspondant. L’objectif principal est
d’optimiser les fréquences d’apparition et modifier les positions des caractères dans le
message. Cela revient à déterminer une permutation des listes qui une fois affectées aux
différents caractères du texte assurent le résultat souhaité. Or, le nombre des
permutations d’un ensemble à n éléments est n! . Par conséquent, nous nous trouvons
devant un problème d’optimisation combinatoire (OC) exponentiel pour lequel la
résolution par AE est sollicitée.
II Motivation
II.1 Position du problème
Dans le but de concevoir un nouveau système de chiffrement basé sur un problème
d’optimisation combinatoire, nous avons essayé de trouver une formalisation du
problème de chiffrement menant à un tel système. Les grandes lignes tracées, dans cet
objectif sont les suivantes :
- Définir des nouvelles transformations dans le contexte du chiffrement.
- Ces transformations se basent sur des processus aléatoires.
- Le nombre de ces transformations est contrôlé par un critère basé sur la
convergence d’une fonction objective réelle. Cette convergence est équivalente à
une optimisation.
D’où l’émergence d’un problème d’optimisation pour lequel nous faisons appel aux AE
qui ont donné satisfaction dans la résolution de ce genre de problème.
Dans cette partie, nous présentons notre première approche de chiffrement, qui est
toujours à l’état embryonnaire. Cette approche consiste à décomposer le message clair
en un nombre fini de blocs de même taille qui constituent les individus (selon les AE),
auxquels nous appliquons les opérateurs génétiques servant d’outils pour les
transformations mentionnées ci-dessus. D’où la nécessité de franchir les premiers
obstacles, à savoir : la définition du codage et la construction de la fonction d’évaluation
adaptée. Nous allons décrire d’une manière détaillée les étapes essentielles de cette
approche.
II.2 Description de l’algorithme
Corps de l’AE
L’algorithme détaillé
Etape 0 : Nous traduisons le message à chiffrer M en binaire. Désignons par n sa taille.
Etape 1 : Création de la population initiale P0
Nous décomposons M en q blocs: M1, M2,…, Mq de même taille N tel que : n=q.N
(le choix de q respectera les normes des algorithmes génétiques).
Posons P0={ M1, M2, …, Mq }
Etape 2 : Evaluation des individus.
Pour faire la sélection, il faut d'abord définir la fonction d'évaluation.
Pour cela nous définissons une fonction caractéristique f sur l'ensemble {1, …, N}
des indices i d'un bloc B , considéré comme un vecteur de taille N, par:
Si la valeur initiale du ième bit a changé après l'application d'une opération Alors f(i)=1
Sinon f(i)= 0
Définition de la fonction d'évaluation F sur l'ensemble des individus par:
N
F(Bk)= ∑ f ( i ) ( 1 ≤ k ≤ q)
i =1
D'une manière intuitive, ce sont les individus ayant subi le plus de modifications
qui vont être sélectionnés. Car n'oublions pas que le but du chiffrement est
d'avoir le maximum d'individus modifiés.
Etape3: Sélection des meilleurs individus par le pseudo-elitisme défini plus haut:
Nous trions les individus en fonction de leur valeur d'évaluation. Et nous sélectionnons
les meilleurs selon les taux des opérateurs, fixés au départ.
Etape 4 : Application des opérateurs génétiques.
1-Croisement: Nous utilisons le croisement simple à un point. Cet opérateur est appliqué
aux individus sélectionnés dans l'étape 3. Le point de croisement est tiré au hasard.
Le taux de croisement pour lequel nous optons varie entre 75% et 90% [GRE 86] .
2-Mutation: Nous choisissons la mutation qui consiste à échanger deux gènes dans un
chromosome, autrement dit, elle est analogue à une transposition. Ces deux gènes sont
choisis au hasard. Cet opérateur sera appliqué aux individus issus du croisement. Le
meilleur taux est de l'ordre de 0,1% à 5% [GRE 86]. Plaçons la nouvelle progéniture
dans une nouvelle population en ajoutant ceux qui n'ont pas été sélectionnés pour
compléter la population dont la taille est fixe.
Répéter les étapes 2, 3, 4 jusqu'au critère d'arrêt défini ci-dessous.
Le but de notre travail est de modifier au maximum les fréquences d’apparition des
caractères dans le message M et d’établir le plus de désordre dans leurs positions. Pour
cela, nous changeons itérativement la répartition des listes sur les différents caractères
de M. Autrement dit, nous devons trouver une permutation σ de {1, 2, …, m} pour
laquelle la différence entre le cardinal de la nouvelle liste Lσ(i) affectée au caractère ci et
le cardinal de la liste initiale Li soit maximale. Là nous nous rendons compte que nous
sommes devant un problème d’optimisation combinatoire. Or les algorithmes
évolutionnistes sont très efficaces dans ce genre de problème, donc nous allons les
utiliser et notamment ceux appliqués aux problèmes de permutations [CAU 95]. Ces
algorithmes ont plusieurs versions, parmi lesquelles nous celle choisissons celle
présentée dans la figure 4.1 et qui est fréquemment utilisée.
III.2 Notre système de chiffrement
Etape 0 : Codage
Un individu (ou chromosome) est un vecteur de taille m.
Les gènes sont les listes Lp (1 ≤ i ≤ m).
i
Le ième gène Lp contient les nouvelles positions que prendra le caractère ci.
i
Nous désignons par Original-Ch le chromosome dont les gènes sont les listes
L1,L2,…,Lm (placés dans cet ordre) qui représentent le message avant l’application de
l’algorithme.
Nous appliquons à Original-Ch, des transformations simples et capables de modifier les
fréquences d’apparition des caractères. Par exemple, nous tirons au hasard q
permutations de {1,2,…,m} et l’appliquons afin d’obtenir une population initiale
constituée de q solutions potentielles .
i :=0.
Etape 2 : Evaluation des individus
Soit Xj un individu de Pi dont les gènes sont : Lj1,Lj2,…,Ljm.
Nous définissons la fonction d’évaluation F sur l’ensemble des individus Xj par :
m
F(Xj) = ∑
i =1
card(L ji )−card(Li)
m m
∑i =1
card ( Lk i )− card ( Li ) ≤ ∑ (card ( L )+ card ( L )) ≤ 2*l
i =1
ki i
IV Déchiffrement
Le déchiffrement du message chiffré M’ se fait en deux étapes :
Dans la première étape, nous allons représenter le texte chiffré, par un vecteur de listes
comme nous l’avons fait pour le message en clair. Désignons alors par c’1, c’2, …, c’m les
différents caractères de M’ et par L’1, L’2 , …, L’m leurs listes respectives de positions dans
M’. Grâce à la clé génétique, les caractères vont retrouver leurs listes de positions
correspondantes dans le message en clair. En effet, la clé est une permutation de
{1,2,…,m} que nous pouvons représenter par un vecteur noté Clef, de taille m telle
que : Clef(1) = p1 , Clef(2) = p2 , …, Clef(i) = 1 , …, Clef(m) = pm où
Le caractère c’p va être associé à la liste L1’
1
Le caractère c’p va être associé à la liste L2’ ….Le caractère c’p va être associé à la liste
2 m
L’m.
Ainsi, nous obtenons le message M.
Dans la deuxième étape, nous procédons au déchiffrement de M pour obtenir M0. Or,
le passage de M0 à M se fait par le biais d’opérations ou fonctions simples de la
V Expérimentation
Nous avons appliqué notre algorithme sur des messages de différentes tailles ; mais nous
n’avons retenu que quatre modèles comme des exemples. Et pour chacun d’eux, nous
avons fait l’application pour des différentes tailles de populations nous avons retenu les
meilleures. Puis dans un tableau récapitulatif, nous avons enregistré les résultats
importants à savoir : valeur de la convergence de la fonction d’évaluation, nombre de
générations atteint lors de cette convergence.
V.1 Les messages modèles
Nous citerons ci-dessous les quatre messages modèles, et donnerons les opérations
utilisées pour brouiller le message et la clé de session générée par notre algorithme
évolutionniste Le brouillage utilisé pour les quatre messages ci-dessous est un
chiffrement affine défini par : F(x) = ax+b où a= -1 , b = 255. Et x est le code ASCII du
caractère du message initial.
Message 1 : Taille=1026
Travelling salesman problem (TSP) is an NP-complete problem, implying that there is no known algorithm to solve it exactly
in better than O(an) time (for n cities). In fact, there are (n-1)!/2 possible combinations, so to try every one requires factorial
time with the problem size. Just to remind, there are cities and given distances between them. Travelling salesman has to
visit all of them, but he does not want to travel very much. The task is to find a sequence of cities to minimize travelled
distance. In other words, find a minimal Hamiltonian tour in a complete graph of n nodes. A method was implemented for
a 6-city problem. The optimal tour found for the 6 cities was: 1- 2 - 5 - 4 - 6 - 3 - 1 which has distance 9.242640 [Link]
processor times for the 5 and 6 city runs were below the timer resolution. The time for each combination can be estimated as
2e-07 seconds. The number of combinations for the 29 cities problem is 8.84e30. This gives a time estimate of 1.77e24
seconds, or 5.60e16 years.
La clé: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 4 5 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49 50 6 7 51 23 52 0 1 2 3 25 29 24 27 28 30 26 31
Astronauts In August 1983 Guion Bluford became the first African American to go into space,
while serving on a mission aboard the Challenger space shuttle. Bluford said that the blastoff
of the shuttle was like riding in a high-speed elevator through a bonfire. He also recognized
that, "From a black perspective, my flight on the shuttle represented another step forward.
"Astronaut Mae Jemison became the first African American woman to travel in space when
she flew on the space shuttle Endeavor in a September 1992 mission. After her space flight,
Jemison resigned from NASA and established the Jemison Group, a company that researches,
develops, and markets advanced technologies.
║öłČć╣ĂăłöŜ╣î║ăıăöłîŹÉĹ×îİăÂć╣î▀śă╬ćČ▓îð╠ĎĂĚ╠îłů╠î╬ÂČöłî║╬ČÂĎĂ╣î║Ě
╠ČÂĎĂ╣îłćîıćîÂ╣łćîöÁĂĎ╠▒î═ůÂś╠îö╠ČŞÂ╣ıîć╣îĂîĚÂööÂć╣îĂðćĂČ▓îłů╠îľůĂśś
╠╣ı╠ČîöÁĂĎ╠îöůăłłś╠śî▀śă╬ćČ▓îöĂÂ▓îłůĂłîłů╠îðśĂöłć╬╬îć╬îłů╠îöůăłłś╠î═Ă
öîśÂô╠îČÂ▓Â╣ıîÂ╣îĂîůÂıůÖöÁ╠╠▓î╠ś╠ŞĂłćČîłůČćăıůîĂîðć╣╬ÂČ╠śîŤ╠îĂśöćîČ╠
Ďćı╣ÂŁ╠▓îłůĂł▒îÜťČćĚîĂîðśĂĎôîÁ╠ČöÁ╠ϳª╠▒îĚĺî╬śÂıůłîć╣îłů╠îöůăłłś╠îČ
╠ÁČ╠ö╠╣ł╠▓îĂ╣ćłů╠Čîöł╠Áî╬ćČ═ĂČ▓śÜ║öłČć╣ĂăłîŚĂ╠îĆ╠ĚÂöć╣îð╠ĎĂĚ╠îł
ů╠î╬ÂČöłî║╬ČÂĎĂ╣î║Ě╠ČÂĎĂ╣î═ćĚĂ╣îłćîłČĂŞ╠śîÂ╣îöÁĂĎ╠î═ů╠╣îöů╠î╬ś╠═îć
╣îłů╠îöÁĂĎ╠îöůăłłś╠îË╣▓╠ĂŞćČîÂ╣îĂîł╠Áł╠Ěð╠ČîŹÉÉëîĚÂööÂć╣śî║╬ł╠Čîů╠Čî
öÁĂĎ╠î╬śÂıůł▒îĆ╠ĚÂöć╣îČ╠öÂı╣╠▓î╬ČćĚî╝║ł║îĂ╣▓î╠öłĂðśÂöů╠▓îłů╠îĆ╠ĚÂ
öć╣îİČćăÁ▒îĂîĎćĚÁĂ╣ĺîłůĂłîČ╠ö╠ĂČĎů╠ö▒î▓╠Ş╠śćÁö▒îĂ╣▓îĚĂČô╠łöîĂ▓ŞĂ╣
Ď╠▓îł╠Ďů╣ćśćıÂ╠öśî
La clé: 8 9 10 11 12 13 14 15 16 17 18 19 6 7 22 29 30 31 32 33 34 35 36 37 38
39 40 41 42 43 44 21 1 23 24 25 2 5 4 20 26 0 3 28 27
Message1 -(1026) Message2 -(684)
1800 1200
1600
1000
1400
1200
800
1000 Itérations
800 600
Evaluation
moyenne
600
400
400
200 200
0
16 24 30 32 0
T aille de population 16 24 30 32
Abraham Lincoln, the 16th president of the United States, guided his country through the most
devastating experience in its national history--the CIVIL WAR. He is considered by many
historians to have been the greatest American president. Abraham Lincoln was born Sunday,
February 12, 1809, in a log cabin near Hodgenville, Kentucky. He was the son of Thomas and
Nancy Hanks Lincoln, Thomas Lincoln was a. Abraham had gone to school briefly in
Kentucky and did so again in Indiana. He attended school with his older sister... Both of
Abraham's parents were members of a Baptist congregation which had separated from another
church due to opposition to slavery. When Abraham was 7, the family moved to southern
Indiana As Abraham grew up, he loved to read and preferred learning to working in the fields.
This led to a difficult relationship with his father who was just the opposite. Abraham was
constantly borrowing books from the neighbors. Lincoln's declining interest in politics was
renewed by the passage of the Kansas-Nebraska Act in 1854. In 1860 he furthered his national
reputation with a successful speech at the Cooper Institute in New York.
ě╚Ľ╩Ü╩╬╔ł╣═ă¤Ă═┤╔öÜŜ╔ŁŹöÜ╔׼ŜŚ╣ĺŜ═ö╔¤▀╔öÜŜ╔│═╣öŜĺ╔ľö╩öŜŚ┤╔Ĺť╣ĺŜĺ╔Ü╣Ś╔㤝
═öĽÉ╔öÜĽ¤ťĹÜöÜŜ╔╬¤Śö╔ĺŜô╩Śö╩ö╣═Ĺ╔Ŝź×ŜĽ╣Ŝ═ăŜ╔╣═╔╣öŚ╔═╩ö╣¤═╩Ă╔Ü╣Śö¤ĽÉ▒▒ö
ÜŜ╔śĆîĆł╔ŤěÖ¬╔ČŜ╔╣Ś╔ă¤═Ś╣ĺŜĽŜĺ╔╚É╔╬╩═É╔Ü╣Śö¤Ľ╣╩═Ś╔ö¤╔Ü╩ôŜ╔╚ŜŜ═╔öÜŜ╔ĹĽŜ╩
öŜŚö╔ě╬ŜĽ╣ă╩═╔׼ŜŚ╣ĺŜ═ö¬ě╚Ľ╩Ü╩╬╔ł╣═ă¤Ă═╔ś╩Ś╔╚¤Ľ═╔ľť═ĺ╩É┤╔İŜ╚Ľť╩ĽÉ╔Łć┤╔Ł
ëçĎ┤╔╣═╔╩╔äĹ╔ă╩╚╣═╔═Ŝ╩Ľ╔ȤĺĹŜ═ô╣ĂĂŜ┤╔╝Ŝ═öťăÂɬ╔ČŜ╔ś╩Ś╔öÜŜ╔ڤ═╔¤▀╔ęܤ
╬╩Ś╔╩═ĺ╔Ę╩═ăÉ╔Č╩═ÂŚ╔ł╣═ă¤Ă═┤╔ęܤ╬╩Ś╔ł╣═ă¤Ă═╔ś╩Ś╔╩¬╔ě╚Ľ╩Ü╩╬╔Ü╩ĺ╔Ť═Ŝ╔
ö¤╔Śăܤ¤Ă╔╚Ľ╣Ŝ▀ĂÉ╔╣═╔╝Ŝ═öťăÂÉ╔╩═ĺ╔ĺ╣ĺ╔ڤ╔╩Ĺ╩╣═╔╣═╔Ć═ĺ╣╩═╩¬╔ČŜ╔╩ööŜ═ĺŜĺ
╔Śăܤ¤Ă╔ś╣öÜ╔Ü╣Ś╔¤ĂĺŜĽ╔Ś╣ŚöŜĽ¬¬¬╔ş¤öÜ╔¤▀╔ě╚Ľ╩Ü╩╬ðŚ╔×╩ĽŜ═öŚ╔śŜĽŜ╔╬Ŝ╬╚ŜĽŚ
╔¤▀╔╩╔ş╩×ö╣Śö╔ă¤═ĹĽŜĹ╩ö╣¤═╔śÜ╣ăÜ╔Ü╩ĺ╔ŚŜ×╩Ľ╩öŜĺ╔▀Ľ¤╬╔╩═¤öÜŜĽ╔ăÜťĽăÜ╔ĺťŜ╔ö
¤╔¤×פŚ╣ö╣¤═╔ö¤╔ŚĂ╩ôŜĽÉ¬╔ŤÜŜ═╔ě╚Ľ╩Ü╩╬╔ś╩Ś╔Ě┤╔öÜŜ╔▀╩╬╣ĂÉ╔╬¤ôŜĺ╔ö¤╔ڤťöÜ
ŜĽ═╔Ć═ĺ╣╩═╩ěŚ╔ě╚Ľ╩Ü╩╬╔ĹĽŜś╔ť×┤╔ÜŜ╔äôŜĺ╔ö¤╔ĽŜ╩ĺ╔╩═ĺ╔׼Ŝ▀ŜĽĽŜĺ╔ĂŜ╩Ľ═╣═Ĺ╔
ö¤╔ś¤ĽÂ╣═Ĺ╔╣═╔öÜŜ╔▀╣ŜĂ匬╔ęÜ╣Ś╔ĂŜĺ╔ö¤╔╩╔ĺ╣▀▀╣ăťĂö╔ĽŜĂ╩ö╣¤═ŚÜ╣×╔ś╣öÜ╔Ü
╣Ś╔▀╩öÜŜĽ╔śÜ¤╔ś╩Ś╔ËťŚö╔öÜŜ╔¤×פŚ╣öŜ¬╔ě╚Ľ╩Ü╩╬╔ś╩Ś╔ă¤═Śö╩═öĂÉ╔╚¤ĽĽ¤ś╣═Ĺ╔
╚¤¤ÂŚ╔▀Ľ¤╬╔öÜŜ╔═Ŝ╣ĹÜ╚¤ĽŚ¬ł╣═ă¤Ă═ðŚ╔ĺŜăĂ╣═╣═Ĺ╔╣═öŜĽŜŚö╔╣═╔פĂ╣ö╣ăŚ╔ś╩Ś╔
ĽŜ═ŜśŜĺ╔╚É╔öÜŜ╔×╩ŚŚ╩ĹŜ╔¤▀╔öÜŜ╔╝╩═Ś╩Ś▒ĘŜ╚Ľ╩ŚÂ╩╔ěăö╔╣═╔Łëı╦¬╔Ć═╔ŁëŹç╔ÜŜ╔
▀ťĽöÜŜĽŜĺ╔Ü╣Ś╔═╩ö╣¤═╩Ă╔ĽŜםö╩ö╣¤═╔ś╣öÜ╔╩╔ŚťăăŜŚŚ▀ťĂ╔Ś×ŜŜăÜ╔╩ö╔öÜŜ╔ś¤¤×ŜĽ
╔Ć═Śö╣öťöŜ╔╣═╔ĘŜś╔ޤĽÂ¬
La clé: 15 16 17 18 19 20 21 22 23 24 25 26 27 50 51 4 5 6 31 32 33 34 35 36 37
38 39 40 41 42 43 44 45 46 47 48 49 7 8 9 10 11 12 13 14 28 29 30 0 1 2 3 52 53
ôŚðźÄŁĎŚůöśćÄ▀ðÜźðĹźťÄðťðůĎćŁźŹŹðćĆðŁćÄıźĎöśÄľðśÄĆćĎĹťöśćÄðöćðťðÉśŹ
ľÂśŹźÉðĆćĎĹðśÄðćĎÉźĎðöćðŹźÄÉðśöðťŁĎ描ðťðůćöźÄöśťĚĚŚðÂÄŹťĆźð٬ťÄÄźĚ
çðˬźðĎźıźĎŹźðůĎćŁźŹŹðśŹðŁťĚĚźÉðÉźŁĎŚůöśćÄçðłŹśÄľðŹöĎćÄľðźÄŁĎŚůöśćÄð
öźŁ¬ÄśĺÂźŹ▀ðŹźÄŹśöśıź▀ðıťĚÂť×ĚźðśÄĆćĎĹťöśćÄðŁťÄðןðůĎćöźŁöźÉðťľťśÄŹöð
ćĎľťÄśîźÉðŁĎśĹśÄťĚŹ▀ðĹťĚśŁśćÂŹð¬ťŁÖźĎŹ▀ðćĎðŹůśźŹðĆĎćĹðťðĆćĎźśľÄðĹś
ĚśöťĎŚðůćÜźĎ▀ðĆćĎðźëťĹůĚźçðśÄÉźźÉ▀ðŁĎŚůöćľĎťů¬ŚðÂŹźÉðöćðןðťĚĹćŹöðźëŁĚ
ÂŹśıźĚŚðťðöććĚðĆćĎðö¬źðŜ̜öťĎŚçðŤćÜźıźĎ▀ðśÄðĹćıśÄľðśÄöćðťÄðśÄĆćĎĹť
öśćÄðŹćŁśźöŚ▀ðö¬źðıťĚÂźðćĆðŁĎŚůöćľĎťů¬ŚðśÄðźıźĎŚÉťŚð̜ƟðśÄðŹÂ٬ðťĎź
ťŹðťŹðůĎśıťŁŚ▀ðöĎÂŹö▀ðźĚźŁöĎćÄśŁðůťŚĹźÄöŹ▀ðťÄÉðťŁŁźŹŹðŁćÄöĎćĚð¬ťŹð×
źŁćĹźðźıśÉźÄöçðśÄðö¬śŹðÜťŚ▀ðö¬źðĆśźĚÉðćĆðŁĎŚůöćľĎťů¬Śð¬ťŹð×ĎćťÉźÄźÉðĆ
ĎćĹðŁĚťŹŹśŁťĚðźÄŁĎŚůöśćÄðöźŁ¬ÄśĺÂźŹðśÄöćðťĎźťŹðŹÂ٬ðťŹðťÂö¬źÄöśŁťöść
Ä▀ðÉťöťðśÄöźľĎśöŚ▀ðťÄÉðÄćÄİĎźůÂÉśťöśćÄðćĆðÉťöťðöϝďƟĎçð
La clé: 9 10 11 12 13 14 15 16 17 18 19 24 25 26 27 28 29 30 31 32 33 0 1 2 3
22 4 5 7 8 23 20 21 6
Message3- ( 1149)
Message4-( 803)
1800
1400
1600
1400 1200
1200 1000
1000 Itérations
800
800
600 Evaluation
600
moyenne
400 400
200 200
0
16 24 30 32 0
Taille de population 16 24 30 32
Taille -Population
16 24 30 32
Message1 Nbre de générations 35 58 71 64
1026 car. Valeur de CV 1288 1394 1638 1354
Message2 Nbre de générations 26 58 46 53
684 car. Valeur de CV 1068 1100 982 1002
Nbre de générations 44 58 111 53
Message3
1149 car. Valeur de CV 1458 1622 1512 1444
V.3 Interprétation
Pour la plus part des exemples traités dans nos expériences, nous constatons que les
meilleures valeurs de l’optimum (valeur de convergence) sont atteintes pour une
population de taille 24 ( message2 et message 3 dans figure1). Dans certains cas, les
tailles 30 et 32 ont donné aussi de bons résultats, mais le nombre de générations dans ce
cas été doublé ce qui est coûteux du point de vue temps. Nous conseillons alors de
prendre 24 comme taille de la population.
Exemple :
Supposons que le Message à chiffrer est constitué des deux lignes qui suivent:
0100010001100101011101010111100000100000011101000111100101110000011001010
1110011001000000110010001100101001000000111010001100101011000110110100001
1011100110100101110001011101010110010101110011001000000111001101100101001
0000001100100011010010111001101110100011010010110111001100111011101010110
0101011011100111010000100000011001010110111001100111011011000110111101100
0100110000101101110011101000010000001110100011011110111010101110100011001
0101110011001000000110110001100101011100110010000001101101000101110111010
0011010000110111101100100011001010111001100100000011001000110010100100000
0110001101101000011010010110011001100110011100100110010101101101011001010
1100101011011100111010000100000011011010110111101100100011001010111001001
1011100110010101110011001000000110001101101111011011100110111001110101011
001010111001100100000001000000
0100010001: {1}
1001010111: {2}
0101011110: {3}
0000100000: {4,32,40}
0111010001: {5,41}
1110010111: {6}
0000011001: {7,23}
0101110011: {8,48}
0010000001: {9,49,69}
1001000110: {10,54}
0101001000: {11}
0001110100: {12}
0110010101: {13,33,81}
1000110110: {14}
1000011011: {15}
1001101001: {16}
0111000101: {17}
1101010110: {18}
0101011100: {19,55,75}
1100100000: {20,56,76}
0111001101: {21,25}
1001010010: {22,58}
0001101001: {24}
1101000110: {26}
1001011011: {27}
1001100111: {28}
0111010101: {29}
1001010110: {30,66}
1110011101: {31,39}
1011100110: {34,74}
0111011011: {35}
0001101111: {36}
0110001001: {37}
1000010110: {38}
1011110111: {42}
0101011101: {43}
0001100101: {44,72}
0111001100: {45}
1000000110: {46}
1100011001: {47}
1011010001: {50}
0111011101: {51}
0001101000: {52}
0110111101: {53}
0110010001: {57}
0000011000: {59}
1101101000: {60}
0110100101: {61}
1001100110: {62}
0110011100: {63}
1001100101: {64}
0110110101: {65}
0101011011: {67}
1001110100: {68}
1011010110: {70}
1111011001: {71}
0111001001: {73}
0110001101: {77}
1011110110: {78}
1110011011: {79}
1001110101: {80}
1100110010: {82}
0000001000: {83,84}
La clé de chiffrement
23 21 22 17 18 19 20 16 11 12 13 14 15 46 47 49 55 56 57 1 2 24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40 41 42 43 44 45 3 4 5 6 7 8 9 10 50 51 48 59 58 61 60 54 53
52 62 0
Commentaires :
Comme nous le remarquons dans l’exemple, les caractères du texte en clair sont
complètement modifiés ainsi que leurs fréquences. Par conséquent, il n’est guère
possible de faire une cryptanalyse par étude des fréquences des caractères.
Pour en conclure :
- Cette méthode est une généralisation de SEC. En effet, pour k=8, c’est exactement le
système SEC décrit auparavant.
- Elle augmente la résistance de notre système. Donc, elle mérite d’être étudiée analysée
plus profondément, et expérimentée pour les différentes valeurs de k. Dans ce but, des
travaux sont en cours de réalisation.
VII Discussion
Nous allons comparer notre algorithme avec l’un des algorithmes les plus connus, le
DES. En général, les algorithmes symétriques les plus connus (DES, IDEA, AES) font
des chiffrements par blocs. Le notre chiffre le message tout entier en une seule prise ce
qui est moins coûteux.
Le DES a une clé de 64 bits (mais ne sont utilisés que les 56 bits). Cette taille si petite a
favorisé son attaque par une recherche exhaustive de la clé ou attaque par force brute.
Dans notre algorithme nous pouvons toujours supposer que le message contient plus de
30 caractères différents, donc la taille de la clé est au moins égale à 240 bits, taille
résistante actuellement aux attaques (dans le cas où le texte contient moins de vingt
différents caractères nous pouvons le compléter par d’autres afin qu’il le soit). En outre,
notre clé est de session, et générée par notre propre algorithme, par contre celle du DES
ne l’est pas. Or les clés de session sont plus résistantes aux attaques que les autres types.
Autre point important à évoquer, on peut penser à une cryptanalyse par l’étude de
fréquences d’apparition des caractères dans le message. Or, nous rappelons que nos
messages ne sont pas exclusivement des messages littéraux sans ponctuation, dont
l’attaque par étude des fréquences d’apparition des lettres dans un texte écrit en une
langue naturelle est applicable en se basant sur des études en linguistique, mais peuvent
contenir tous les caractères de ponctuation, des nombres etc. Et puisqu’il n’y a aucune
étude exacte sur ces derniers donc des attaques de ce type ne sont pas satisfaisantes.
D’autant plus, l’utilisation d’un brouillage initial ou l’extension de SEC à des blocs
binaires, le cryptanalyste ne peut avoir une idée préalable sur les caractères du message.
VIII Conclusion
Notre travail a apporté deux contributions simultanées. La première est l’élargissement
de l’espace d’application des algorithmes évolutionnistes ; en fait, leurs applications dans
le domaine cryptographique sont jusqu’à maintenant très limitées. Cependant, leur
efficacité a été prouvée en cryptanalyse. En effet, ils ont été utilisés pour casser le
fameux algorithme de chiffrement asymétrique « Knapsack cipher » basé sur le
problème du sac à dos. La deuxième contribution est la conception d’une nouvelle
formalisation du problème de chiffrement et l’innovation d’un algorithme de
chiffrement évolutionniste. Ce dernier bénéficie de tous les avantages des algorithmes
évolutionnistes (simplicité des opérations, performance…) et possède des qualités qu’on
a mentionnées dans la discussion ci-dessus. Toutefois, montrer qu’un système de
chiffrement est sûr reste une tâche très délicate, excepté le système à masque jetable. Et
même, la plus part des cryptologues pensent que tous les algorithmes de chiffrement
sont cassables à long terme, mais l’essentiel c’est de concevoir son système de
chiffrement de telle manière que la durée de vie souhaitée pour le texte chiffré doit être
inférieure à celle mise par le cryptanalyste pour casser ce système.
I Introduction
II Description du système
II.1 Formalisation du problème
II.2 Système de chiffrement
III Déchiffrement
IV Expérimentation
V Discussion
VI Conclusion
I Introduction
Le système de chiffrement présenté dans ce chapitre est une version améliorée de SEC
« enhancement of SEC » et intitulé ESEC-1. Ayant pour objectif la modification au
maximum des fréquences d’apparition des caractères du texte en clair T, afin de rendre
délicate la cryptanalyse statistique, nous avons conçu une nouvelle méthode de
chiffrement nommée « fusion ». Cette dernière constitue une étape préparatoire pour
l’application de l’algorithme évolutionniste. Elle permet en fait de générer une
population initiale plus intéressante. Ensuite, par le biais de la clé générée par notre
algorithme, nous illustrons le processus de chiffrement et déchiffrement. En dernier lieu
nous présentons nos différentes applications tout en les interprétant et par une
discussion évaluative nous montrons les avantages de notre système en comparaison
avec d’autres.
Le but de notre travail est de modifier au maximum les fréquences d’apparition des
caractères dans le texte T et d’établir le plus de désordre dans leurs positions. Cela est
décrit dans le paragraphe 2.3 ci-dessous.
II.2 Système de chiffrement
II.2.1 Première partie: la fusion
Le message M avant la fusion peut être représenté par le vecteur ci-dessous :
Où les listes L1, L2, …, Ln constituent une partition de l’ensemble {1, 2, …, l }et sont
triées en fonction de leurs tailles dans l’ordre décroissant. Nous les partageons en trois
sous ensembles de tailles voisines de [n/3](partie entière de n/3), nommés
respectivement : EL, Em, Ep.
Désignons respectivement par NL, Nm et Np les cardinaux de EL, Em et Ep.
Désignons par Lm et Lp les plus petits éléments respectifs de Em, Ep, et par Sk la taille de
la clé désirable.
- Si la fusion de ces deux listes amène à une clé de taille non souhaitable la fusion
ne sera appliquée que dans Ep comme suit :
Tirons au hasard un certain nombre de listes Lp1, Lp2,…, Lpf dans Ep.
Remplacer les caractères tp1, tp2, …, tpf correspondants à ces listes par un
caractère cf tiré au hasard et ne représentant aucune autre liste.
Ep ← Ep-{ Lp , Lp ..., Lp }.
1 2 f
Désignons d’abord les listes qui vont être fusionnées. Ces listes se
composent de Lp1, Lm1,…, Lpf, Lmf tels que f est pris au hasard dans
{1,2,…, min(Nm,Np)}, Lp1, Lp2,…, Lpf sont choisies dans Ep dans l’ordre
croissant de leur taille, en alternance avec Lm1, Lm2,…, Lmf prises dans Em
dans le même ordre, tout en tenant compte de la contrainte « ne pas
dépasser la taille souhaitable de la clé ».
r ←1; E←Ø
répéter
E ← E U Lp ULm
r r
Si taille de E ≤ Sk alors r ←r+1
f←r
Fusionner les listes ci-dessus revient à :
remplacer les caractères tp1, tm1, tp2, tm2, …, tpf , tmf correspondants à ces
listes par un seul caractère cf tiré au hasard et qui n’est pas déjà pris.
([tp1, tm1, tp2, tm2, …, tpf , tmf] ; [Lp1, Lm1,…, Lpf, Lmf] ; cf)
ci est le remplaçant des caractères ti1, ti2, …, tip dont les listes de positions
i
(1 ≤ i ≤ m). Le i ème
gène Lp contient les nouvelles positions que prendra le caractère cfi.
i
l’algorithme.
Nous appliquons q permutations sur Ch-Initial afin d’obtenir une population initiale
constituée de q solutions potentielles du problème.
i :=0.
Etape 2 : Evaluation des individus
Soit Xj un individu de Pi dont les gènes sont : Lj , Lj , …, Lj .
1 2 m
m m
≤∑card(Lki )+∑card(Li)≤2*l
i =1 i =1
III Déchiffrement
Evidemment, nous commençons par le déchiffrement de la deuxième partie du
système.
Représentons le texte chiffré T’ par un vecteur de listes comme nous l’avons fait pour le
texte en clair. Désignons alors par c’1, c’2, …, c’m les différents caractères de T’ et par L’1,
L’2…, L’m leurs listes respectives de positions dans T’. Grâce à la clé génétique, les
caractères vont retrouver leurs listes de positions correspondantes dans le message en
clair. En effet, la clé est une permutation de {1,2,…,m} que nous pouvons représenter
par un vecteur noté Clef, de taille m telle que :
Clef(1)=p1 , Clef(2)=p2 , …, Clef(i)=1 , …, Clef(m)=pm où
Le caractère c’p va être associé à la liste L1’.
1
IV Expérimentation
Nous avons appliqué notre algorithme sur des messages de différentes tailles ; mais nous
n’avons retenu que quatre exemples typiques. Et pour chacun d’eux, nous avons fait
l’application pour des différentes tailles de populations (nous avons retenu les
meilleures). Puis dans un tableau récapitulatif, nous avons enregistré les résultats
importants à savoir : valeur de la convergence de la fonction d’évaluation, nombre de
générations atteint lors de cette convergence.
Les messages modèles
Le brouillage utilisé pour les quatre messages ci-dessous est un chiffrement affine défini
par F(x)=ax+b où a=-1 , b=255 et x est le code ASCII du caractère du message
initial.
Message 1 : Taille=1026
La clé de la fusion :
({ë, ś, Î} ;{4 111 230 327 358 382 429 433 501 969,10 70 97 325 364 581 967, 29 141 152 187 865} ; ź)
({Ł, Č, ▒};{24 57 128 201 208 276 341 402 641 802 852 904 914 945, 31, 42}; Ć )
({ł, ╬} ;{ 92 263 344 418 527 609 687 717 797 806 , 190 692 715 992 1017,} ; ć )
({Í , Ď, Ë, ö, ç, ░, Â}; {33 144 165 191 , 44 189 632 693 697 701 705 709 713 883, 61 175 217 301 400 532
1007 , 89 452, 118,140, 168 518}; »)
La deuxième clé :
22 23 24 25 26 27 28 29 30 31 32 20 33 34 35 36 37 0 1 2 3 4 5 6 7 8
17 18 19 9 21 10 11 12 13 14 15 16
Message 2 : Taille=684
Astronauts: In August 1983 Guion Bluford became the first African
American to go into space, while serving on a mission aboard the
Challenger space shuttle. Bluford said that the blastoff of the
shuttle was like riding in a high-speed elevator through a
bonfire. He also recognized that, "From a black perspective, my
flight on the shuttle represented another step forward.
"Astronaut Mae Jemison became the first African American woman to
travel in space when she flew on the space shuttle Endeavor in a
September 1992 mission. After her space flight, Jemison resigned
from NASA and established the Jemison Group, a company that
researches, develops, and markets advanced technologies.
La clé de la fusion :
({İ, Â, ╬, Ă, ă} ; {8 15 17 27 34 149 158 196 247 333 380 483 609, 11, 21 513, 22 514 515, 23} ; Ŝ)
({╠,Ş, ś, Ł,╝} ; {24, 26 606, 32 156, 40 120 178 253 295 395 509 586, 130} ; ś)
({ ł , ë} ; {92 202 367 429 454 466, 101 237 310 441 494 642 664}; Ť)
({Ć }; {86 142 229 301 305 341 362 449 476 505 538 610 618 646 }; )
({Ë} ; {90 285 312 549 611 638 ť648} ; ô)
ð
({ } ;{154 260 371 525 683} ; )
La deuxième clé
21 22 24 17 18 19 25 20 7 23 26 27 28 29 0 1 2 3 4 5 6 9 12 10 11 13
15 14 8 16
Message 3 : Taille=1149
śśİşðşĚłĚ╣═ă¤Ă═öł╦ð╚łĚă╦ðłöİ╚Ľ╣╩╚═╦ł¤Žł╦ð╚łĚ═╣╦╚╩łĂ╦ş╦╚ĽöłËı╣╩╚╩ł
ð╣Ľłă¤ı═╦İŽł╦ðݤıËð╦ð╚łĚ¤Ľ╦ł╩╚ËşĽ╦ş╦╣═Ëł╚ăö╚İ╣╚═ă╚ł╣═ł╣╦Ľł═ş╦╣¤
═şĂłð╣Ľ╦¤İŽöö╦ð╚łĂËËËĚłıśôźł▒╚ł╣Ľłă¤═Ľ╣╩╚İ╚╩łśŽłĚş═Žłð╣Ľ╦¤İ╣ş═Ľł╦¤
łðşË╚łś╚╚═ł╦ð╚łËİ╚ş╦╚Ľ╦łśĚ╚İ╣ăş═łöİ╚Ľ╣╩╚═╦źśśİşðşĚłĚ╣═ă¤Ă═łŜşĽłś¤İ═ł
Ăı═╩şŽöłŹ╚śİışİŽłĚ×öłĚŚś┤öł╣═łşłĂ¤Ëłăşś╣═ł═╚şİł▒¤╩Ë╚═Ë╣ĂĂ╚öłě╚═╦ıă原ł
▒╚łŜşĽł╦ð╚łĽ¤═ł¤Žł▀ð¤ĚşĽłş═╩łľş═㎳▒ş═弳Ě╣═ă¤Ă═öł▀ð¤ĚşĽłĚ╣═ă¤Ă═łŜşĽłşźł
śśİşðşĚłðş╩łË¤═╚ł╦¤łĽăð¤¤Ăłśİ╣╚ŽĂŽł╣═łě╚═╦ıă厳ş═╩ł╩╣╩łĽ¤łşËş╣═ł╣═łË═
╩╣ş═şźł▒╚łş╦╦╚═╩╚╩łĽăð¤¤ĂłŜ╣╦ðłð╣Ľł¤Ă╩╚İłĽ╣Ľ╦╚İźźźłĹ¤╦ðł¤ŽłśśİşðşĚť
Ľłöşİ╚═╦ĽłŜ╚İ╚łĚ╚Ěś╚İĽł¤ŽłşłĹşö╦╣Ľ╦łă¤═Ëİ╚Ëş╦╣¤═łŜð╣ăðłðş╩łĽ╚öşİş╦╚
╩łŽİ¤Ěłş═¤╦ð╚İłăðıİăðł╩ı╚ł╦¤ł¤öö¤Ľ╣╦╣¤═ł╦¤łĽĂşË╚İŽźłıð╚═łśśİşðşĚłŜşĽ
łÉöł╦ð╚łŽşĚ╣ĂŽłĚ¤Ë╚╩ł╦¤łĽ¤ı╦ð╚İ═łË═╩╣ş═şśĽłśśİşðşĚłËİ╚Ŝłıööłð╚łĂ¤Ë╚╩
ł╦¤łİ╚ş╩łş═╩łöİ╚Ž╚İİ╚╩łĂ╚şİ═╣═Ëł╦¤łŜ¤İĺ╣═Ëł╣═ł╦ð╚łŽ╣╚Ă╩Ľźł▀ð╣ĽłĂ╚
╩ł╦¤łşł╩╣ŽŽ╣ăıĂ╦łİ╚Ăş╦╣¤═Ľð╣öłŜ╣╦ðłð╣ĽłŽş╦ð╚İłŜð¤łŜşĽłÜıĽ╦ł╦ð╚ł¤öö¤
Ľ╣╦╚źłśśİşðşĚłŜşĽłă¤═Ľ╦ş═╦ĂŽłś¤İݤŜ╣═Ëłś¤¤ĺĽłŽİ¤Ěł╦ð╚ł═╚╣Ëðś¤İĽźĚ╣═ă
¤Ă═ťĽł╩╚ăĂ╣═╣═Ëł╣═╦╚İ╚Ľ╦ł╣═łö¤Ă╣╦╣㼳ŜşĽłİ╚═╚Ŝ╚╩łśŽł╦ð╚łöşĽĽşË╚ł¤Žł
╦ð╚łěş═ĽşĽöľ╚śİşĽĺşłśă╦ł╣═łĚŚîŤźłË═łĚŚăśłð╚łŽıİ╦ð╚İ╚╩łð╣Ľł═ş╦╣¤═şĂłİ╚öı
╦ş╦╣¤═łŜ╣╦ðłşłĽıăă╚ĽĽŽıĂłĽö╚╚ăðłş╦ł╦ð╚łĂ¤¤ö╚İłË═Ľ╦╣╦ı╦╚ł╣═łľ╚ŜłÖ¤İĺź
La clé de la fusion :
({Ł} ; {2 174 201 239 258 273 301 406 432 534 559 666 720 883 905
Ŝ
915 935 993 1024} ; ) ĺ
({ │, ╬, ¬} ;{9 150 246 374 390 940, 22 280 284 1038 1047, 44}; )
ť
({ ╔, ç} ;{23 1049, 107} ; ) ś
Ć ę};{96 198 316 654 693 741,147 149 472 709 1044 1128, 148}; )
({ë,Â,
({ , Ď} ;{27 108 228 543 571 602 638 639 733 757 837 873 874 972
Č 1000 1080 1108 1124, 140 141 1021} ; Ë)
({ ć, ╝};{51 263, 146 1121};ô)
({ };{76 139 175 İ180 268 278 330 366 438 450 657 689 903 994}; Ö)
({Ę} ;{152,660}; )
La deuxième clé
22 23 24 25 29 30 31 32 33 34 19 17 18 35 36 37 38 0 1 2 3 4 5 6 7 8
9 10 27 11 20 21 26 28 13 14 15 12 16
Message 4 : Taille=805
Cryptographic knapsacks are based on the Subset Problem: Given
a finite set W={w1, ..., wn} of positive integers and a positive
integer C, does there exist a subset W'of W such that the sum of
all elements in W' is equal to C? The relationship with
encryption is straightforward. Let the message space be the
set of binary strings b1,...,bn as
C= b1w1 + ... + bnwn In practice arithmetic is carried out in
some finite field and various sophistications are used to
construct the knapsack set(e.g. arithmetic may be modulo some
prime p and the knapsack elements are chosen in such a way to
enable the receiver to easily decrypt the message). If the
subsets of W are arranged to have unique sums then this
encryption is reversible and so, given a sum S, there will be a
unique plaintext message.
La clé de la fusion :
ć Ć
{{ , ,»};{3 258 331 519 593 627 633 720, 4 10 18
98 123 247 259 306 378 448 491 536 542 555 634 721 787, 49}; {╝}}
{{ö , Ť } ;{ 15 22 488 495ś 552 559 , 33 119 143 282 407 432 436 469
526Č546┼ 629 683 743} ;{ }} Ś
{{ , , } ;{ 42 761, 56 ,60};{ }}
{{ ô } ;{ 53 198 199 202 223 238 431 528 562 602 626 738 772
773 788} ;{Ł}} ť
{{ ë , ┬ } ;{ 62 104 129 438 614 690 732 751, 80 355};{ İ}}
{{ Ö, ä } ;{ 68 96 172 195 276 324 421 428 652 667, 81};{ }} ĺ
{{ Ę , ł } ;{79 169 174 213 669, 82 91 249 279 359 372 591 770};{ }}
La deuxième clé :
14 15 16 17 18 13 1 6 4 19 20 21 22 23 24 25 26 27 28 29 0 5 7 12 10 8 9 2 11 3
V Discussion
Pour qualifier notre système ESEC-1, nous allons le comparer à des systèmes de
chiffrement symétriques très connus. Prenons par exemple IDEA. Il est considéré par
les spécialistes comme l’un des meilleurs cryptosystèmes à clé privée. Il est utilisé par le
PGP pour le chiffrement de données.
La longueur de sa clé est 128 bits (mieux que le DES qui est de 64 bits). Notre système
possède deux clés. La première est celle de la « fusion » dont la taille sera fixée à une
valeur raisonnable et incassable de nos jours ( nous évitons la taille proche de la taille du
texte pour ne pas avoir le même inconvénient que le chiffre de Vernam [LAB 01] où la
clé est de la taille du message à envoyer). La deuxième, est générée par l’algorithme
évolutionniste, et au moins de l’ordre de 30*8 =240 bits (elle peut même aller jusqu’à
256*8), car nous pouvons toujours supposer que le nombre de caractères différents dans
le texte est au moins 30 (sinon nous pouvons lui en rajouter afin qu’il le soit) ; taille
encore plus importante puisqu’elle résiste mieux à la cryptanalyse par recherche
exhaustive. Cela dit, les deux clés sont de session et purement aléatoires alors que celle
de IDEA ne l’est pas.
IDEA chiffre par blocs (opère sur le texte en clair par groupes de bits appelés blocs) ; ce
qui est un atout pour la cryptanalyse différentielle. Le nôtre chiffre autrement (agit sur
tout le texte en clair à la fois), donc il est d’une part à l’abri d’une telle cryptanalyse,
d’autre part il est moins coûteux. Cependant, la seule cryptanalyse redoutable dans notre
cas est celle basée sur l’étude des fréquences d’apparition des lettres dans un texte. Or,
grâce à la fusion les vraies fréquences des caractères ne sont plus reconnues, par
VI Conclusion
Par ce travail nous avons atteint deux objectifs. Le premier est l’introduction d’une
nouvelle méthode de chiffrement « fusion » dont le majeur avantage est le renforcement
du système contre les attaques les plus redoutables, quant aux autres avantages, ils sont
mentionnés dans la discussion ci-dessous. Le deuxième est l’exploitation des algorithmes
évolutionnistes pour la conception et la réalisation d’un chiffrement bénéficiant de
toutes les qualités des A.E (simplicité des opérations génétiques, performance,…). Nous
avons évalué ce travail en le comparant à d’autres systèmes de même nature.
Malgré les qualités dont dispose notre système (résistance aux attaques, génération
aléatoire de ses propres clés, taille intéressantes des clés….) nous ne pouvons, comme le
pensent la plus part des cryptologues, dire qu’il est sûr (seul le chiffre de Vernam ou
masque jetable l’est, d’après Shanon [SHA 49]). Donc là, un long trajet reste à parcourir
par les mathématiciens cryptologues.
I Introduction
II Description de l’algorithme
II.1 Premier chiffrement
II.2 Fragmentation des listes
III Déchiffrement
III.1 Premier déchiffrement
III.2 Second déchiffrement
IV Discussion et conclusion
I Introduction
Dans ce chapitre, nous présentons un nouveau système de chiffrement basé sur SEC,
désigné par ESEC-2. Ce système consiste, en premier lieu, à modifier les fréquences
d’apparition des caractères du texte à chiffrer et en second lieu, à établir un équilibre
entre ces dernières.
Ainsi, dans la première partie de notre système de chiffrement nous faisons appel à SEC,
notre premier algorithme de chiffrement, tel qu’il a été donné au chapitre 4, nous
l’appliquons à un message M pour aboutir à un message M’. Ensuite, nous procédons à
la « fragmentation » des listes des positions des caractères de M’ qui sont de grandes
tailles et désignons de nouveaux caractères pour les associer respectivement aux
positions figurant dans les fragments de liste. Cela permet d’avoir des listes de tailles
très voisines dont il est encore plus difficile de faire la cryptanalyse par étude des
fréquences de caractères. Cette fragmentation est en fait un sur-chiffrement de SEC.
II Description du système ESEC-2
II.1 Premier chiffrement
Etant donné un message M formé à partir de n caractères c1, c2, …, cn. Nous
définissons les listes : L1, L2, …, Ln des différentes positions de chacun des caractères ci,
1 ≤ i ≤ n.
La première partie du système de chiffrement consiste à répartir, d’une manière itérative,
les listes sur les différents caractères de M, de telle sorte que la différence entre le
cardinal de la nouvelle liste L'i associée au caractère ci et le cardinal de sa liste initiale
Li soit maximale. Nous obtenons ainsi un message chiffré M’.
Pour plus de détails, nous renvoyons le lecteur au chapitre 4.
taille, ceci en décomposant les listes de grandes tailles en d’autres listes, lesquelles sont
associées à de nouveaux caractères.
II.2.2 Description formelle
Soient L’1, …, L’n les listes des différentes positions associées aux caractères c1, …, cn du
message M’ obtenu à partir du premier chiffrement.
n
∑ card ( L 'i )
Soit l= E i =1
n
Parmi les listes ci-dessus, nous pouvons distinguer celles de grandes tailles ( leur taille est
supérieur à la taille moyenne l )
Soit L’j une liste de grande taille associée au caractère cj (card(L' j )>l) .
card ( L ' j )
Posons n j = E + 1
l
Nous allons fragmenter la liste L’j en nj+1 listes L’j , L’j , …, L’j et L’j de tailles égales
1 2 nj nj+1
exceptée L’j dont la taille est soit nulle soit plus petite que celle des L’j (1≤ k≤ nj).
nj+1 k
’
En effet, si le résultat de la division euclidienne de card(L ) par nj est : j
card(L’j) = nj *q + r alors q sera la taille des listes L’j , L’j , …, L’j et r sera celle de L’j .
1 2 nj nj+1
La première liste L’j sera associée au caractère c j tandis que les autres listes sont
1
La décomposition de L' j en L’j , L’j , …, L’j et L’j est effectuée comme suit :
1 2 nj nj+1
Le caractère associé à la liste ayant subi une fragmentation est enregistré avec les
nouveaux caractères dans une liste appelée clé-fragment
La liste ci-dessus constituera une clé secrète qui va être utilisée lors du déchiffrement.
D’une manière formelle, l’algorithme de chiffrement par fragmentation est le suivant :
Début
Données : Message M’ obtenu à partir de l’algorithme 1 de chiffrement
Résultats : Message chiffré M’’
Méthode :
Déterminer les listes des positions L'1,L'2 ,...,L'n associées aux caractères c1, …, cn
du message M’
n
∑ card(L'i)
Soit l = E i =1
n
Où E[x] est la partie entière de x, i.e le plus grand entier inférieur ou égal à x.
III Déchiffrement
Le déchiffrement est effectué en deux étapes essentielles :
Première étape : déchiffrement par l’utilisation de clé-fragment qui à partir du message
chiffré M’’ permet de trouver le message M’.
Exemples
Message 1 :
Abraham Lincoln, the 16th president of the United States, guided
his country throughthe most devastating experience in its
national history--the CIVIL WAR. He is considered by many
historians to have been the greatest American [Link]
Lincoln was born Sunday, February 12, 1809, in a log cabin near
Hodgenville, Kentucky. He was the son of Thomas and Nancy Hanks
Lincoln, Thomas Lincoln was a. Abraham had gone to school briefly
in Kentucky and did so again in Indiana. He attended school with
his older sister... Both of Abraham's parents were members of a
Baptist congregation which had separated from another church due
to opposition to slavery. When Abraham was 7, the family moved to
southern IndianaAs Abraham grew up, he loved to read and
preferred learning to working in the fields. This led to a
difficult relationship with his father who was just the opposite.
Abraham was constantly borrowing books from the
[Link]'s declining interest in politics was renewed by
the passage of the Kansas-Nebraska Act in 1854. In 1860 he
furthered his national reputation with a successful speech at the
Cooper Institute in New York.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 52 53 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 0 1 2 27 28 8 9 10 29 3 4 5 6 7 30 31 32
wFF2NB''jj9KkA&r[7*B]m
QqƒL{\h=9n‰?X†c…ŠaBPo‚39!>^lQE?a)r@,t|9n>n7B9[`zttK‹e]7qB2t,,B*ˆƒ''A
iX7n8D)ŠaN=&,…!0LL{3\‰KkP|‚^79G@7(?=†&EZb739iz‹eTTTaB[54Y4j]pwsdƒf!X
|)…`J‰Gi9nh2hPFe^'D‚e@*=9ia{39NKi7†[q(8ˆ]F !&ƒŠaBX,‹\ENˆGQ…w' h|9D‰P
L{!hi9n‚?dwF‹2*('^j=9`zA&@UE)i7JA‰[lt‚KDer]S\F{ttNeƒmgrXmuyvr…39P(^Z
b,@7EF|&K7ˆDN[f†>, ‚889Z!r]xxhKt`-
edƒf\XUUN…7qˆP7i&^Jc@CCB'()i7‰K[ID‚Kk]ffNKGƒj=&`†A‰rXC*z'(N…j3‚KkZbP
UE)^Dd@wF{2q(''7B>[,,& ]Q†ƒG`*zJAXF‹|!cZe…7‰Pxx‚?ttke^DNK@>=9n7i[7N(
3&]|‰ƒ4‚>nENDdXf\…7Naˆ&Kn>P)`q†zA^U=Qa@*3Gi7Zbnh[7|)?a{ddd]VVŠqƒ†cXw
F‹(NB'WG…LDN2‰KaPUˆ{ ^'!'FF‹)@zcc7[V(LQa9?]7k‚,,2,EŠ=9AƒU*3`qX7B>…7i
LLN(N hPc‹†'^E&zQ*!h@7qt{`kB7tt[?J]7LL†)|Ša9‰ƒ7aXGiD8\‹ed…p*ˆ‚PwFF2q
('^UEN@Rrr7aB[cD'=Ze]''8!hƒ?†X)ztŠ*B{2…4&>39N(wGPwF‹EqD'^,,2U@tLrr7B
[7b8 h]7aƒ{!hNX(‚K…L‹2c\h{ˆ>PZ E‹2K&,^Q†@UzA2-
‰,,7‚[?*!]c39hbndƒCq|)XZ\>…ŠJPD^7n9c=9ktb@{ˆZbN39AKiBLL7U9*[q=9]c(Ša
B‹ƒU*†XUE)….tGiPQq!^zLLJA3?ad@wFFDNB''7()[`k&GŠE‰Kae]F†{‹zU|‚,ƒFJA--
Xcc2'…Q*\P7Kh9qFz{)dj=&KkZ‰WG^> `k3‚|9K@7&?!‹2hia7‰[LLZ39|9k]UDGƒ72‚
ˆU hXFe…QaBPLLN)(,,^†c@?*\h7ENKDNTIˆF{2N-([w`Š]7&ƒmuH1dX4‰…mu
yPq ^ct‹2aBh2>@*=Gi7EQ3zADN[{\Lt?aN|J&]UU9qƒ(X7tt`ˆ)GctZ…7i !hkPEQ^?
*B@55†L\‹24‰)Š=9tQˆ[3‚]I Uƒ6zA2d
Message2 :
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 51 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 2 3 4 1 52 0 6 7 26 27 28 29 5 30 31 8 9
ddzqqu‰3H778B23FT_[EaVze‰#‡+ldingLYŒR*8€}
nssmvaa3uƒ aG‹e‰>‡oˆUHaa3{H7]$pB"\=Z(uzu8HE['+6€A::L_‰7ŠVŒHp(Y$‹*F'v3#}U"
„552=‰bˆ{[]eƒu$>G\"ZB€A8l_2AE+=pHrLl99vY[*8ŒHU Rg0}P€ 992$oˆ"p#V„]BGƒ\llA)
gN-
cc8ŠvF{ee3E8m‡ee[_=Œ'€Ro+8TL8pY$pz*8u Vb}‹vA G„t,UHzFˆ992"'V{B‰]=pH>\:ŒHZ
(E$p(+aGzee3‡LRUy#0Yh,,"*=Š}8zu{[ko 8ZƒV>ˆ_Gz]\8mHŒ FT8€kE7Uq#u+k{R"B[&„u
Leƒ=:>u€Y8p ‡0*ddzq#‰33H7}FT‰„RTB[ Z_2ˆ$‹]qŒFU"\82‰3E'9+=pƒ‡oLe,,YZ>*kkv
u}€Š$ :B2Aˆ=‹]8V_q u\q#GbbE8,,m0+dZ„L$p26Y{F*"'}99[k BˆRƒt,>€&m]89\8Œ=U uT8
pE‡{HAHŒy#+$pzq„‰33kLkUF"p[&>0YP€*‹=p(V}:'GkRo 9{HAˆB]‡r[ŒH_‰\ww2UH3p
€{B2AE$Š,,+8[L_Y8mva‰ "#*7Vz2Z}'9 €ˆ8Ak„u0]\xx8ƒ=p(kE:BF+ŒHaa3‡r[A kL9‹GY
_*Os&U$b}aaze‰#u0 dZ„ˆ8v"{‡r2]=Š,V\9‹,€kk8'GE8pƒ+OL8mHŒ>RY:B2f*)s}c sˆ.]s\II8
EO+sL1Ys*)}:ZU&m Z_Fˆk{R"p2Am]!0cIcOI/\,[AHp0dd u8az&#FRŠVE8ŒH„u+9‹GL$Zƒ
Y.*B€k}O 8U"bˆ8z,A]:>Vz\e ‰'::8p#E8{‡„G+8zRTv3$pH[0LYdZ>*"ŒHr}9‹V _&mˆ8
m‡eU€A2{Hv]&B[\e#u8uTpH_$ƒkE82+c>s/SLRTum€kk0Y*dZ }8A‡e#G ‹9ˆ&'veŒ[B"UH
€F]9Šv\=p„u8!E8{HpHR+aV‹e‰>‡LŒHYJ0JIIu/0*dZUF}7{q R _ˆ$pH#]„u"Œ‡r2ƒ\'9980S
S>cIEFTumvARo+ŠGL.0O/ )OYb#B2z0*
Message 3:
Cryptographic knapsacks are based on the Subset Problem: Given a finite set W={w1, ..., wn} of
positive integers and a positive integer C, does there exist a subsetW'of W such thatthe sum of
all elements in W' is equal to C? The relationship with encryption is straightforward. Let the
message space be the set of binary strings b1,...,bn as C= b1w1 + ... + bnwn In practice
arithmetic is carried out in some finite field and various sophistications are used to construct the
knapsack set(e.g. arithmetic may be modulo some prime p and the knapsack elements are chosen
in such a way to enable the receiver to easily decrypt the message)...
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 0 5 6 26 27 7 29 1 2 3 28 4 8 9 10
ww??T+,jq<TI()rrOxT|Dr@KCxqtoO8~gXF/[20;Œaho9V\Aijq1cˆ
kZJCnQsstK|&.‹(y(~XC;t+}L'ebdŒCBSSAe/uZF.J<T1Q2‹sVtKC(\ˆ,,tq&CxgXO[CT9Q^‹s~ŒC
(y+,VjAwdZgg1tp2+ItqtK;PQ@\&|X8ho9V^}lF.[}ŒChh)AC+I2\0ˆZ@h JC..OccKCc~
; ^8&‹(y}l[C(ŒVmh|cAC+Zw:JCGGIKjqcc2Q(1y0‹<&ee(+I~ D)??^QF1y‹@Œ8p+Ox(02..1q
|jgBAZJv;\+K^+I&
ˆ9ppx,t[@<Ox)ŒAo;ZC0VJ8ˆ2+[Link]/|x?&9\j‹ ,,pobddBSSooyCxŒwLAobebZfJBSBSfKo/e
&WWyCTqD^+()t|jQ(+I~2‹DŒC(AC)xjQ;gZC1\J‹/y9F
VK..(Q^ˆ&.‹(cgXOxg[s|xq(1hp@F<0Q8p‹D)2+(19AOj~Zhh;gJ\F1C)1@^+qD)+2+I&rr|xTpx)X
9ˆ\==t,B[OjQ^0 ~t‹DŒ |?Ao;Z Fghcc1CF Vt<Tq(ˆKCTCxgX2+Itr O<@|x)Œ~c;
Vt\8ACjˆZD0I1ptJQ yChh)IO&e|?X^F[~tyxc;ŒC0VACqD)‹s~jZJ2+1;O@p(?KgVt)??\&^+IX
t9|,~{{BS
Figure 6.8 : Le chiffrement du 3ème message (après fragmentation des listes)
Message 4:
kxxIHbtxoo.B0Dej'n[HMŒE o/8!‰HG„ZppIty--H()0UDNMp8yi<[Link]'I.ŒI q) BU
TNGjq„p8/nn I0DZ&q[H'(.ŒI‰Mq )4„E!/8GrrIDo [Link]'T0GEpjŒI, <M b[
zw m,‰„&i-jHi[HI/i!‰GrDIG'ItzzzHŒqj!&x o4)80w aarMU„[Link][0b/ xo(. BM
D4‰!,,bsTTHr'Gj0brB.-[ Œ-EzT<fz‰ )Mp8&nn(NZy„It0bIf Hooi4j!t[q'< U Uc M
G(Œ 8/UE cbv‰q I&Nnn0< zzr„nnz)!NZTGrIEcg gHirDI/' GoojHŒ p& 8n <„p
Zy[) UM bINzz4./x Dooe‰& 'p8yŒIHEnozjw uub[‰ q „!/xoo.U &<o,xxI GrH D(.'fj
ŒIzn8y4 [ddzTG)-‰zx„EcI.yzDp8y'(,,HnNzz4</xw lZej-[& „)0bIn-NMU DIBb.'I0
Œ)M pZyiE(NBy Ir!t‰4x „I.,H-<zTjDZp'I/xo(.U&io,xŒ)0 [-‰HxqEx„zNpp HIM
DGT!,' </jHcŒEG o&)-<cx „[Link]. [z‰!(/8ybBDooxnnH4G 'EM qŒ< !tjHG !Z
[Link]„,,crI[ Htn ‰DI--qj0(w'uMŒ4,)G eEx „I.[HIN‰zq DZp'!tx o(.U/<o, xŒ,,c f&8E
qqHjq „ppinnIz<Grr!tzD[0b/xo 4)BM'I‰!,,bsTTHŒI0(8 E& j<c„GTT,,IcDET4,[M
b.!<(NZyb'qq4E ŒI0b‰UUi(x <Mq„Ib0h/iHTqNB4.8M bIpDqEc.'(&icb pjHwŒ
IV Discussion et conclusion
Le système de chiffrement ESEC-2 que nous avons détaillé, bénéficie, en plus des
avantages du système SEC, d’une force considérable de défense contre les attaques qui
se basent sur les études des fréquences d’apparition des caractères dans un texte. En
effet, avec l’utilisation de SEC, des échanges de fréquences d’apparition des caractères
sont établies aléatoirement . Et par la fragmentation des listes, les valeurs des
fréquences sont complètement modifiées. D’autant plus, les caractères représentants les
listes fragmentées sont tirés au hasard et changent d’une session à l’autre.
Enfin, cette méthode est avantageuse par rapport à la « fusion » décrite au chapitre 5.
En effet, la clé de fragmentation ne contient pas les positions des caractères ajoutés.
I Introduction
II Implémentation de l’IDEA
III Implémentation de RSA
IV Implémentation de PGP
V Implémentation de notre algorithme SEC
VI Comparaison et analyse
I Introduction
Dans le but d’achever l’évaluation de notre travail, nous allons présenter dans ce
chapitre les différentes comparaisons de nos systèmes de chiffrement SEC aux
systèmes les plus dominants actuellement IDEA, RSA et PGP. Ces comparaisons se
basent sur les temps de chiffrement et du déchiffrement. Pour ce, le langage de
programmation utilisé est Delphi, sous l’environnement Windows.
Dans la deuxième partie de ce chapitre nous exposons les résultats relatifs au système
IDEA. Quant à la troisième partie, elle est consacrée à ceux du système RSA. Les
résultats concernant PGP sont présentés dans la quatrième partie, et ceux concernant
notre système SEC sont présentés dans la cinquième partie. Enfin par des comparaisons
évaluatives, nous achevons ce chapitre.
Commentaire :
Les temps de chiffrement et déchiffrement sont très voisins dans le cas d’un texte
• Texte :
Nous allons chiffrer le texte suivant : « there is only one God and Mohamed his
prophet ». avec les clés : ‘n_lagraa_b_kamel’ , ’n_lagraa_lakhdar’ et
‘o_lakhda_b_kamel ’.
• Image :
Nous allons chiffrer le même texte « employé avec IDEA « there is only one God and
Mohamed his prophet ». Dans chaque essai on utilise un couple ( privée/ publique )
différent :
125297103175330655465075295003
439671224695007759203747940444
P= 1087 N=1479407 367114810910723751219521051763
D= 263743 2 7 ms
q=1361 E=369247 613604131475350070889306952390
550315116284700892051117956024
9765
104391230013963270620604073620
087056168511456340440849465526
P =104327 N=1417908257 085024887904183708470460259670
D=265835689 3 10 ms 018254469204364683551178963961
q=13591 E=354447589
023791672901206759770893980837
IV Implémentation du PGP
Le PGP est un système de chiffrement hybride clé publique combinant les avantages de
IDEA et RSA. IDEA est 1000 fois plus rapide que RSA alors qu’il est pratiquement
impossible de percer la clé secrète de RSA. Toutes les procédures utilisées par l’IDEA
Clé
Clé privée clé de session Message crypté
publique
pgp0108133301070104010013330114009501071333
N=1339 113901010108009509770053' ø?R cëw†KÁ§ ®Jÿ&)Ø
D=307 Lakhdar_kamel_25
E=307 Gb<l
°9ç ~(ÎAÝ9Xêx-^Œu´ÓÕ¼¼/
On remarque que le message chiffré commence par les trois lettres ‘pgp’ indiquant que
ce dernier a été chiffré par PGP, ensuite on trouve les chiffres représentants la clé de
session, suivis par les données cryptées.
Paramètres AG
clé de session Texte chiffré
size pop nbrgen
AE ytsrmlihgeda pon
10 5 ytsrmlihgeda adeghilmnoprstyolr
ponadeghilmnoprsty yipydehnyderymdsytesygdltgrsylipya
dalrol
Table 7.4 : Résultats obtenus avec SEC
Le fichier contenant le message chiffré débute par ‘AE’ indiquant que ce dernier est
chiffré à l’aide des AE ensuite la clé de session suivie du texte chiffré.
VI Comparaison et analyse
VI.1 Comparaison entre les algorithmes modernes et l’algorithme évolutionniste
RSA : Les paramètres qui influent sur le temps du calcul sont les valeurs des nombres
premiers p et q (le tps augmente suivant la valeur de p et q).
SEC : Les paramètres qui influent sur le temps du calcul sont le nombre de génération
et la taille de la population. On a choisi taillepop =10 et nbrgene=10.
450
400
350
300
250
tps de
200 cryptage
150
100 tps de
50
decryptage
0
IDEA RSA SEC
VI.2 Discussions
On a vu que :
Par le biais de cette thèse, nous avons pu réaliser un travail d’innovation consistant à
définir un système de chiffrement basé sur un problème d’optimisation combinatoire.
Notre outil de base est : les algorithmes évolutionnistes. Le premier obstacle franchis
pour la réalisation de ce travail, était la formalisation du problème de 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 évolutionniste à
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 premier 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, deux améliorations ont été élaborées dont le but d’avoir
un chiffrement plus sûr. Ce qui a permis l’obtention de deux autres systèmes de
chiffrements distincts plus résistants que le premier. Des discussions évaluatives ont eu
lieu, à la fin de chaque chapitre décrivant l’un des trois systèmes, permettant ainsi
d’illustrer les avantages et les qualités de nos systèmes 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 ( excepté le masque jetable d’après
Shanon), 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.
II Perspectives
Dans le but de délimiter les champs de nos travaux, nous envisageons de nouvelles
perspectives :
[GOL 89] Goldberg D.E, Genetic [MIC 92] Michalewicz Z., Genetic
Algorithms in Search, Optimisation Algorithms +Data= Evolution
& Machine Learning. Addison- Program. Springer- Verglas, 1992.
Wesley Publishing Company, [MIC 94] Michalewicz Z., Evolutionary
Inc,1989. Computation techniques for non linear
[GRE 86] Grefenstette J.J, Programming. International
Optimization of Control Parameters Transactions on Operational
for Genetic Algorithms. IEEE Research, 1(2), 1994, pp 223-240.
Trans. On SMC, Vol. 16, n°1, [MÜH 93a] Mühlenbein H.,
Jan/Feb. 1986, pp. 122-128. Evolutionary Algorithms: Theory and
[HOL 75] Holland J.H., Adaptation in applications. (Wiley) 1993.
Natural and Artificial Systems. [MÜH 93b] Mühlenbein H., and
Cambridge, Mass: MIT press, Schlierkamp-Voosen D.
1975. Predictive Models for the Breeder
[JAN 91] Janikow C.Z, and Genetic Algorithm-I, Continuous
Michalewicz Z., An experimental Parameter Optimisation.
Comparison of Binary and Floating Evolutionary Computation (1),
Point representation in Genetic 1993. pp 25-49.
Algorithms. Proceedings of the [MÜL 03] Didier Müller, Ars
Fourth International Conference Cryptographica. 2003.
on Genetic Algorithms, 1991,pp [Link]
31-36. [Link]/crypto/
[KHA 88] Khan Phang C., [NAK 91] Nakano R., and Yamadat,
Algorithmes heuristiques et Conventional Genetic Algorithm for
évolutionnistes. Thèse de doctorat Job Shop Problems. Proc. Fourth
université de Lille. (Octobre Int. [Link] Genetic
1988). Algorithms, ed. Morgan
[LAB 01] Labouret G. (2001). Kaufman, San Mateo , California,
Introduction à la cryptographie. 1991, pp 474-479.
[Link] [PGP 98] PGP. (1998). Personal
ours/crypto/[Link] Privacy pour windows 2000, XP, et
[LAC 03] Lacomme P., Prins C. et NT. Traduction française:
Sevaux M., Algorithmes de graphes. [Link]-cryptologie, NAI.
collection algorithmes, Ed. [SHA 48] Claude Shannon, A
Eyrolles, Paris, 2003. Mathematical theory of
[MEI 93] Meier W., On the Security of Communication. Bell System
the IDEA Block Cipher. Advances Technical Journal, July 1948., p.
in Cryptology EUROCRYPT 379; Oct. 1948, p.623
93, Proceedings, Springer - [SHA 49] Claude Shannon.
Verlag, 1994, pp. 371-385. (1949). Communication Theory of
[MEN 97] Menezes A.J., Oorschot Secrecy Systems. Bell Systems
P.C. van et Vanstone S.A., Technical Journal
Handbook of Applied Cryptography. [SCH 96] B. Schneier, Cryptographie
(CRC Press, 1997). appliquée. Seconde édition (John
Wiley & Sons, 1996).