les algorithmes génétiques dans les cryptographie

publicité
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
Proposition d’un Crypto-Système à Clé Secrète sur
la base d’Algorithme Génétique
Mohamed Sadek ALI-PACHA
Laboratoire SIMPA (Signal-Image-Parole)
Université des Sciences et de la Technology d’Oran USTO,
BP 1505 El M’Naouer Oran 31036 ALGERIE
Email: [email protected]
1
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
Résume :
Nous avons assisté ces dernières années à une croissance très rapide des
travaux utilisant les algorithmes génétiques. Les algorithmes génétiques
(AGs) sont des algorithmes d’optimisation stochastique fondés sur les
mécanismes de la sélection naturelle et de la génétique.
Cette tendance peut être observée dans tous les domaines y compris dans la
transmission de l’information.
Dans cette communication on essaye de faire d’une part l’introduction aux
algorithmes génétiques et d’autre part étudier la possibilité de mettre les
AGs à la disposition de la cryptographie c'est-à-dire tout simplement
chercher d’abord des modèles mathématiques adéquats pour sécuriser
l’information, et que ses derniers les satisfassent les conditions des AGs.
Mots Clés :
2

Algorithmes génétiques,

Cryptographie,

Générateur des bits pseudo-aléatoires,

polynôme primitif.
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
1. Introduction :
Les AGs ont été initialement développés par John Holland [1]. C’est au livre de Goldberg [2] que nous devons leur
popularisation.
Les algorithmes génétiques (AGs) sont des algorithmes d’optimisation stochastique fondés sur les mécanismes de la
sélection naturelle et de la génétique. Leur fonctionnement est extrêmement simple. On part avec une population de
solutions potentielles (chromosomes) initiales arbitrairement choisies. On évalue leur performance (fitness) relative.
Sur la base de ces performances on crée une nouvelle population de solutions potentielles en utilisant des opérateurs
évolutionnaires simples : la sélection, le croisement et la mutation. On recommence ce cycle jusqu’à ce que l’on
trouve une solution satisfaisante.
Leurs champs d’application sont très vastes. Outre l’économie, ils sont utilisés pour l’optimisation de fonctions (De
Jong (1980)), en finance (Pereira (2000)), en théorie du contrôle optimal (Krishnakumar et Goldberg (1992),
Michalewicz, Janikow et Krawczyk (1992) et Marco et al. (1996)), encore en théorie des jeux répétés (Axelrod
(1987)) et différentiels (Özyildirim (1996, 1997) et Özyildirim et Alemdar (1998)).
Leur application dans la cryptographie fut initie [3] en 1993 par Spillman, Janssen, Nelson et Kepner, et leur travail
été de casser un chiffrement par substitution simple en utilisant un algorithme génétique. Beaucoup de travaux ont
été effectue dans ce sens c'est-à-dire, l'approche algorithme génétique a été utilisée uniquement pour casser des
crypto systèmes classique (Substitution Mono alphabétique, Substitution Poly alphabétique, Chiffre de Permutation,
Chiffrement par Transposition, Chiffre de Merkle-Hellman, Chiffre de Chor-Rivest, Chiffre de Vernam).
La cryptographie est l’ensemble des processus de verrouillage visant à protéger l’accès à certaines données afin de
les rendre incompréhensible aux personnes non autorisées [4], autrement dit garantir la confidentialité, l’intégrité de
ces informations, ainsi que leur imputabilité.
La figure N : 1 représente le schéma de principe de chiffrage où S est une source binaire (Laquelle peut être la sortie
d’un convertisseur analogique-numérique).
Figure N :1 Schéma de principe de chiffrage
3
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
Aussi, beaucoup d'algorithmes génétiques de chiffrement ont été proposées A. Tragha et al. [5, 6], Décrivent un
système de chiffrement symétrique par bloc appelé ICIGA (Improved Cryptography Inspired by Genetic
Algorithms : cryptographie Amélioration Inspiré par Algorithmes Génétiques) qui génère une clé de session dans un
processus aléatoire. Les tailles de bloc et les longueurs de clés sont variables et peuvent être fixés par l'utilisateur au
début du chiffrement.
Dans la même démarche à ces derniers travaux, nous présentons une nouvelle approche d’un crypto- système basé
sur le principe des algorithmes génétiques.
2. Algorithmes Génétiques
Holland fut le premier qui a proposé les Algorithmes Génétiques (AGs) dans les années 70. Ces derniers sont des
algorithmes d’optimisation stochastique fondés sur les mécanismes de l’évolution génétique des espèces, plus
précisément, du principe de sélection naturelle.
2.1. Présentation des Algorithmes Génétiques
Les AGs travaillent sur une population de points au lieu d’un point unique. Contrairement aux autres méthodes, Ils
utilisent un codage des paramètres et non les paramètres eux mêmes.
De plus, les AGs ne prennent en considération que les valeurs de la fonction étudiée, pas sa dérivée, ou une autre
connaissance auxiliaire [7]. Lors de leur fonctionnement, ils utilisent des règles de transition probabilistes (en
situation de croisement ou de mutation par exemple) et non déterministe.
Un AG manipule une population de taille constante N. Cette population se compose d’individus, chacun représente
le codage d’une solution potentielle au problème posé, donnée sous la forme d’une chaîne de caractères. Chaque
chaîne de caractères correspond à un Chromosome (individu / séquence). Chaque caractère à un gène et chaque lettre
de l’alphabet à un allèle. Le locus est la position d’un gène au sein d’un chromosome. Reste la fonction sélective, qui
permet d’associer une valeur à chaque individu de la population. Cette fonction est souvent une transformation de la
fonction objective à optimiser (appelée fonction de fitness). Par ailleurs, il existe trois principaux types de codage :
binaire, gray ou réel. Pour résumer, Lerman et Ngouenet [8] distinguent 4 principaux points qui font la différence
fondamentale entre ces algorithmes et les autres méthodes :
 Individu/chromosome/séquence: une solution potentielle du problème ;
 Population : un ensemble de chromosomes ou de points de l’espace de recherche ;
 Environnement : l’espace de recherche ;
 Fonction de fitness : la fonction - positive - que nous cherchons à maximiser.
Le fonctionnement d’un algorithme génétique de base (figure N°2) est comme suit:
4
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
1. Initialisation: il s’agit de générer aléatoirement une population d’individus de taille donnée ;
2. Evaluation : chaque chromosome est décodé puis évalué ;
3. Sélection : utilisation d’une technique de sélection appropriée afin de créer une nouvelle population de N
chromosomes ;
4. Reproduction : il s’agit, en fait, de recombiner deux individus appariés (lors de la phase précédente) pour créer
deux nouveaux individus. Il y a donc possibilité de mutation ou de croisement au sein de la nouvelle population.
5. Retour : à la phase de décodage et d’évaluation des chromosomes, jusqu’à l’arrêt du processus.
Anciens chromosomes
Nouveaux chromosomes
Evaluation
Crossover /
Mutation
Sélection
Accouplement
Figure 2: Cycle de l'algorithme génétique de base
2.2. Opérateurs Génétiques
Nous avons signalé que la sélection des parents intervenant dans les opérateurs génétiques se faisait aléatoirement;
cependant tous les individus ne sont pas sélectionnés comme parents, une certaine proportion des individus de la
population B(t) survit dans la population B(t+1).
Il existe quatre opérateurs génétiques classiques:
1.
le croisement ou cross-over,
2.
l'inversion,
3.
la mutation et
4.
l'insertion ou échange.
L'utilisateur doit aussi fixer le taux d'utilisation des opérateurs génétiques retenus: par exemple 60% des individus
sont retenus comme parents pour le cross-over, 1% subit une mutation et les autres sont inchangés.
5
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
2.2.1 Croisement (cross-over)
L'opérateur le plus important est le cross-over ; il concerne deux génotypes parents choisis au hasard au temps t pour
donner naissance à deux génotypes enfants qui se vont se substituer à eux dans la population au temps t+1.
Il existe plusieurs formes de cross-over. La plus simple est le cross-over à un point : L'opération consiste à
sélectionner une position au hasard dans les deux génotypes parents G1 et G2 et de créer les génotypes enfants G'1 et
G'2 en attribuant à l'un d'entre eux la tête de G1 et la queue de G2 et à l'autre l'inverse.
Exemple avec une coupure en position 22 d'un parent à allèles alphabétiques et d'un autre à allèles décimales :
Abcdefghijklmnopqrstuv
wxyz
parent 1
12345678901234567890
1234
parent 2
Accouplement
abcdefghijklmnopqrstuv
1234
enfant 1
12345678901234567890
wxyz
enfant 2
Chaque enfant reçoit une partie du don des maths et de celui des langues.
Le cross-over à deux points procède de même mais en sélectionnant deux points de coupure et en échangeant les
parties centrales :
abcdefghijkl
mnopqrstuv
wxyz
parent 1
1234567890
1234567890
1234
parent 2
Accouplement
abcdefghijkl
1234567890
1234
enfant 1
1234567890
mnopqrstuv
wxyz
enfant 2
A coté de ces deux cross-over "historiques" sont apparues d'autres formes plus modernes et plus complexes.
Le partially matched cross-over (PMX), l'order cross-over (OX) et le cycle cross-over (CX) qui réordonnent les
gènes sans changer leurs valeurs.
2.2.2 Inversion
L'inversion est l'opérateur génétique le moins utilisé; il n'emploie qu'un seul parent pour créer un enfant qui le
remplace dans la population. Il procède comme le cross-over à un ou deux points mais ne modifie pas les valeurs des
allèles ; seulement leur ordre.
6
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
Exemple à deux points :
abcdefgh
ijklm
opqrstuvwxyz
parent
abcdefgh
mlkji
opqrstuvwxyz
enfant
En pratique il faut noter la valeur de l'allèle et la position du gène pour pouvoir continuer à l'identifier.
Il en résulte des conflits avec l'opérateur de croisement car les génotypes que l'on essaye de croiser n'ont en général
pas leur gènes à la même place.
Il faut alors :

soit éviter cet opérateur au profit du croisement ; c'est le cas le plus courant,

soit réordonner l'un des parents en accord avec l'autre avant chaque application du croisement,

soit limiter le croisement à des portions de génotypes contenant les mêmes gènes.
2.2.3 Mutation
La mutation est l'opérateur génétique le plus simple; son emploi est peu important en fréquence mais son rôle est
indispensable. La mutation consiste à changer la valeur d’un seul allèle choisi au hasard d'un parent et lui donner une
valeur différente aléatoire.
Exemple la 6e allèle est choisie et la valeur g est remplacée par w.
abcdef
g
hijk
parent
abcdef
w
hijk
enfant
La mutation est indispensable car elle est la seule à pouvoir introduire une valeur d'allèle inexistante dans la
population initiale ou réintroduire celle qui aurait disparu suite à l'emploi des autres opérateurs.
2.2.4 Insertion ou Echange
L'insertion déplace un gène choisi au hasard vers une autre position choisie aussi au hasard sans changer sa valeur.
L'échange choisit deux gènes au hasard et les permute sans changer leurs valeurs.
7
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
3. Crypto-Système Proposé :
On prend les hypothèses suivantes donné par le tableau ci-dessous qui fait la correspondance entre les concepts des
algorithmes génétiques et ceux de la cryptographie.
Algorithme Génétique
Cryptographie
Chromosome (individu / séquence)
Caractère du texte en claire ou cryptogramme
Gène
Bit
Locus est la position d’un gène au sein d’un chromosome
Position dans le caractère
Fitness qui permet d’associer une valeur à chaque individu de
Valeur ASCII du caractère
la population
Codage : binaire, gray ou réel
Codage binaire ou réel
Initialisation de l’algorithme
Texte en clair
Evaluation (chaque chromosome est décodé puis évalué)
Valeur en ASCII
Sélection des parents aux hasards pour créer des enfants
Ordonnancement des caractères dans le texte en claire
3.1 Processus de Chiffrement
Le texte en clair c’est le message à chiffrer. Il peut être une suite de bits, un fichier de texte, un enregistrement de
voix numérisé, ou une image vidéo numérique. De toute façon le texte en clair n’est rien d’autre que de l’information
binaire, comme il peut être transmis ou stocké.
Les caractères du texte en claire sont ordonnancés et sont analysés deux à deux. Donc, la sélection des caractères
parents pour produire des enfants sont issus de l’ordonnancement du texte en claire.
La fonction fitness est la valeur décimale du code ASCII du caractère.
1.
Si le nombre de caractère du texte en claire est impair le dernier caractère est choisi tout seul pour être
parent et l’opérateur génétique choisi est l’inversion.
2.
Soient A et B les valeurs décimales des caractères sélectionnés pour être parents.
3.
La position du caractère qui correspond à la valeur A et avant la position du caractère qui correspond à
la valeur B dans le texte en claire.
4.
Si on compare A et B on aura trois possibilités :
 Deux possibilités (A>B ; A<B) l’opérateur génétique choisi est le cross-over ou l’échange selon
la sélection au hasard des positions tête et queue des deux génotypes parents G1 et G2 pour créer
les génotypes enfants si la position de la tête est inférieur à la position la queue l’opérateur
8
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
génétique choisi est le cross-over dans le cas contraire l’opérateur génétique choisi sera
l’échange.
 une seule possibilité (A=B) l’opérateur génétique choisi est la mutation produisant deux enfants
jumeaux.
5.
Déroulement d’une procédure d’aléas pour déterminer deux positions qui vont être utilisé pour l’opérateur
génétique choisi (Cross-over il faut la tête et la queue ; Inversion deux positions afin d’intervertir les valeurs
des allèles ; Mutation deux postions une position ou se fait le remplacement et une autre la valeur de ce
changement ; Echange deux positions et on suite on permute).
6.
Pour simplifier l’algorithme, on prend les enfants de la première génération.
7.
Le caractère obtenu représentant l’enfant sera additionné modulo 2 avec une séquence aléatoire issu du bloc
masquage de la même taille du caractère en clair (8 bits). Le résultat est le cryptogramme.
Les figures N°3 et N°4 représentent respectivement le principe de chiffrement et de déchiffrement.
Evaluation
(fitness)
Texte en clair
Clé de Chiffrement
Choix d’Opérateurs
Génétiques
Sélection
Masquage
+
Texte Chiffré
Texte Chiffré
Figures N°3: Principe de chiffrement
Masquage
+
Evaluation
(fitness)
Sélection
Clé de Chiffrement
Choix d’Opérateurs
Génétiques
Texte en clair
Figures N°4: Principe de déchiffrement
Le système cryptographie ainsi obtenu est un système à clé secrète et la clé de chiffrement est constituée par cinq
champs suivants :
1
Valeur initiale d’Aléa
2
Nombre de Génération
3
Fonction de rétroaction f
4
Fonction non-linéaire g
5
Valeur initiale des bascules du registre
Clé de chiffrement/déchiffrement
9
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
3.2 Procédure d’Aléas
POSITION = POSITION modulo (8)
Si Valeur (POSITION) ≤ 2
Then
POSITION = POSITION + 1
else
POSITION =POSITION + 2
Remarque on extrait la valeur initiale de position par rapport aux champs de la clé de chiffrement. On la note
POSITION. Dans cette procédure d’aléas (si on la prend comme exemple) seuls les positions 2 ; 3 ; 5 et 7 dans le
caractère ASCII peuvent être choisi les valeurs de ces positions correspondent sont des nombres premiers.
3.3 Masquage
Le principal intérêt de l’étude des Générateurs Pseudo-Aléatoires de Suites Cryptographiquement Surs GPASCS est
qu’ils sont parfaits pour le chiffrement en continu.
Leur construction se fait en tenant compte de:
1.
Longue période
2.
Pas de répétitions
3.
Complexité linéaire locale
4.
Critères de non linéarité pour des fonctions booléennes
La génération pseudo-aléatoire repose sur l'utilisation d'Automate Cellulaire (CA pour "Cellular Automata") et plus
généralement sur l'utilisation d'un Registre à Décalage à Rétroaction Linéaire [9, 10].
Un registre à décalage à rétroaction non-linéaire (NLFFSR) est un mécanisme pour générer des séquences binaires
[11]. La figure N : 5 montre un modèle général d'un NLFFSR de n bits avec une fonction de rétroaction f et une
fonction non linéaire g.
Fonction non-linéaire g
Séquence binaire de sortie
Fonction de rétraction f
Figure 5 : Modèle général de NLFFSR à 4 bits
10
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
NLFFSR sont des bons générateurs pseudo-aléatoires délivrant en sortie des séquences binaires. Lorsque ce registre
est initialisé avec une valeur donnée (sauf 0 qui va générer une séquence des 0 binaire pseudo-aléatoire), il génère
séquence binaire pseudo-aléatoire qui a une très bonne propriété statistique.
Au-delà de cet aspect pseudo-aléatoire, de nombreuses études ont été menées afin de juger le caractère aléatoire des
séquences de sortie du générateur en fonction :

de la fréquence d'apparition des valeurs 0 et 1 sur les différents bits des vecteurs produits,

des corrélations possibles entre ces bits,

des densités de 0 et de 1 au sein d'un vecteur donné.
Pour les NLFFSR le signal n'est nécessaire que pour la génération de la séquence binaire est une impulsion
d'horloge. A chaque impulsion d'horloge la séquence binaire est produite. On prend pour modèle NLFFSR de 4 bits
les hypothèses suivantes :

la fonction de rétroaction f = 1 + x + x4 et

la fonction non-linéaire g est définie par

le registre est initialisé à : (1111).

La séquence de sortie Zn: 011111000000001... ... ... ..

Pour utiliser la séquence Zn dans notre application on peut regroupe chaque huit bits successifs et on obtient
a1.a3 + a2.a4
ainsi la séquence décimale comme celle issue du texte en claire.

NLFFSR est périodique de période 15
Période de la séquence générée par NLFFSR est maximale si on utilise le polynôme primitif. Le polynôme
caractéristique associé à une séquence de longueur maximum est appelé polynôme primitif. Un polynôme primitif est
irréductible et satisfait les deux conditions suivantes :
1.
il a un nombre impair de termes (le terme 1 inclus)
2.
si il est de degré supérieur à 3 alors P(x) doit se diviser en (1+x k), avec k=2n–1
Pour concevoir un système de chiffrement de flux, il faut considérer un registre à décalage non-linéaire avec des
polynômes primitifs de rétroaction.
11
Proposition d’un Système Cryptographique à la base d’Algorithme Génétique
4. Conclusion :
Dans ce travail, nous avons utilisé les concepts des algorithmes génétiques en cryptographie ainsi que les propriétés
aléatoire des NLFFSR, afin de construire une nouvelle approche d’un crypto-système à clé secrète.
La difficulté majeure des algorithmes génétiques ne réside pas dans la mise en œuvre de l’algorithme lui-même, mais
plutôt, dans le choix des valeurs adéquates des différents paramètres de ce dernier.
Le réglage de ces paramètres est une question très délicate qui diffère d’un problème à un autre.
Cette étape constitue une part très importante du travail de l’utilisateur qui doit les adapter à la nature du problème
posé. Les résultats des simulations de notre crypto-système ont indiqué que les résultats de chiffrement sont
complètement chaotiques et, très sensibles aux changements des paramètres.
Bibliographies
[1] Holland, J. H. (1975), "Adaptation in Natural And Artificial Systems", University of Michigan Press.
[2] Goldberg, D. (1989), "Genetic Algorithm In Search, Optimization And Machine Learning", Addison-Wesley.
[3] Spillman R., Janssen M., Nelson B., and Kepner M., "Use of a Genetic Algorithm in the Cryptanalysts of Simple
Substitution Ciphers", Cryptologia, vol. 16, no. 1, pp. 31- 44, January 1993.
[4] Bruce Schneir, "Applied Cryptography, Protocols, Algorithms, and source Code in C", edition John Wiley &
Sons Inc., 1994.
[5] Tragha A., Omary F., A. Kriouile, “Genetic Algorithms Inspired Cryptography” A.M.S.E Association for the
Advancement of Modeling & Simulation Techniques in Enterprises, Series D: Computer Science and Statistics,
2005.
[6] Tragha A., Omary F., Mouloudi A.,”ICIGA: Improved Cryptography Inspired by Genetic Algorithms”,
Proceedings of the International Conference on Hybrid Information Technology (ICHIT'06), pp. 335-341, 2006.
[7] Vallée T. et M. Yildizoglu, Présentation des algorithmes génétiques et de leurs applications en économie,
Document de travail n° 2001-3, IFREDE-E3i, Université Montesquieu Bordeaux IV, septembre 2001.
[8] Lerman, I. & Ngouenet, F. (1995), Algorithmes génétiques séquentiels et parallèles pour une représentation
affine des proximités, Rapport de Recherche de l’INRIA Rennes - Projet REPCO 2570, INRIA.
[9] P.H. Bardell, "Analysis of Cellular Automata Used as Pseudorandom Pattern Generators", Proc. of International
Test Conference, pp. 762-767, 1990.
[10] C. DUFAZA, G. CAMBON, ”LFSR based deterministic and pseudo–random test pattern generator structures”,
Proc. ETC’91, pp. 27–34, 1991.
[11] Ahmad A., Al-Musharafi M. J., Al-Busaidi S., Al-Naamany A., and Jervase J. A., “An NLFSR Based Sequence
Generation for Stream Ciphers”, Proceedings of International Conference on Sequences and their Applications,
pp. 11-12, 2001.
12
Téléchargement