UNIVERSITE MOHAMMED V FACULTE DES SCIENCES Rabat THÈSE DE DOCTORAT. Zakaria KADDOURI

Dimension: px
Commencer à balayer dès la page:

Download "UNIVERSITE MOHAMMED V FACULTE DES SCIENCES Rabat THÈSE DE DOCTORAT. Zakaria KADDOURI"

Transcription

1 UNIVERSITE MOHAMMED V FACULTE DES SCIENCES Rabat N d ordre : 2739 THÈSE DE DOCTORAT Présentée par Zakaria KADDOURI Discipline : Informatique Spécialité : Sécurité Informatique MISE EN ŒUVRE DE NOUVELLES TECHNIQUES POUR LA SECURITE INFORMATIQUE BASEES SUR LES ALGORITHMES EVOLUTIONNISTES ET LES FONCTIONS DE HACHAGE Soutenue le 4 Décembre 2014 devant le jury composé de : Président : Noureddine ZAHID PES Faculté des Sciences de Rabat, Maroc Examinateurs : Fouzia OMARY PES Faculté des Sciences de Rabat, Maroc Abderrahim TRAGHA PES Faculté des Sciences Ben M'Sik, Casablanca, Maroc Bouazza El BENANI PH Faculté des Sciences de Rabat, Maroc Belaïd AHIOD PH Faculté des Sciences de Rabat, Maroc Invité : Mustapha RACHIDI PES Faculté des Sciences de Rabat, Maroc Faculté des Sciences, 4 Avenue Ibn Battouta B.P RP, Rabat Maroc Tel +212 (0) /35/38, Fax: +212 (0) ,

2

3 A Mon cher père Benachir Ma chère mère Fatima Mon cher frère Si Mohamed

4

5 Remerciements Les travaux de recherche de cette thèse ont été réalisés dans le Laboratoire de Recherche en Informatique, sous la direction de Mme Fouzia OMARY, Professeur à la Faculté des Sciences de Rabat. Ce travail n aurait pas abouti sans la contribution ou l encouragement de plusieurs personnes, je tiens donc à les remercier. Tout d abord je tiens à remercier Mme Fouzia OMARY, mon directeur de thèse, Professeur à la Faculté des Sciences de Rabat, qui m'a fait découvrir le domaine de la sécurité informatique. Sa rigueur, sa disponibilité et ses conseils m ont été très précieux. Sans son soutien, à la fois scientifique, moral et pédagogique, ce travail n'aurait pas vu le jour. Je suis également très reconnaissant envers Noureddine ZAHID professeur à la faculté des Sciences de Rabat d'avoir accepté de rapporter et de présider le jury de cette thèse, bien que son emploi du temps soit très chargé. Je le remercie pour sa lecture très attentive du manuscrit ainsi que ses corrections et remarques qui m ont permis d'améliorer le document final. Je remercie aussi tout spécialement le professeur Abderrahim TRAGHA professeur à la Faculté des Sciences Ben M'Sik, Casablanca, d'avoir accepté de rapporter ma thèse avec grand soin. La pertinence de ses commentaires ne manque pas de compléter la version finale que vous lisez actuellement. Je présente mes vifs remerciements et ma grande considération à Bouazza EL BENANI, Professeur à la faculté des Sciences de Rabat, qui a accepté avec enthousiasme d examiner mon travail et de faire partie du jury. Mr Belaïd AHIOD Professeur à la faculté des Sciences de Rabat a bien voulu examiner ce travail et être membre du jury, je tiens à lui exprimer mon profond respect et ma sincère estime. Je remercie chaleureusement Mr. Mustapha RACHIDI professeur à la faculté des Sciences de Rabat, notre invité qui s est déplacé de France pour assister à la soutenance en tant que membre du jury. Je tiens à remercier tous les membres de ma famille ainsi que mes amis. Mes remerciements vont également vers tous les membres du Laboratoire de recherche en Informatique qui m ont exprimé beaucoup de gentillesse et de sympathie. Finalement, un grand merci à Mr. Lahcen YOUSSFI pour son encouragement et support quotidien pendant toutes mes années d études et ces années de thèse.

6

7 Abstract The subject of this thesis focuses on computer security in particular symmetric encryption algorithms and cryptographic hash functions. First, we implemented two encryption systems presenting an improvement of the encryption system SEC "Balancing Process" and "Binary Fusion Process". These are systems that generate their own symmetric key (secret) session. They allow to change the appearance frequencies of characters through random characterized operations. By combining each of these two techniques with "SEC", the resulting encryption system becomes more resistant to cryptanalysis study by appearance frequency and the exhaustive search. Then we designed a new encryption system whose internal structure is essentially based on Tabu search. Finally, we are interested in the application of memetic algorithm, which is a hybrid metaheuristic combining an evolutionary algorithm and a local search method for solving a scheduling problem in the domain of symmetric cryptography. In the second part of this thesis, we addressed the field of cryptographic hash functions in which we came to the design and construction of a new hash function that combines the techniques of encryption standard DES (Data Encryption Standard) and SHA (Secure Hash Algorithm) family. This hybridization ensures a strong confusion in the compression function and therefore the resulting hash function becomes more efficient. Keywords: Computer security, cryptography, metaheuristic, symmetric encryption, hash function.

8 Résumé Le sujet de la thèse s'articule autour de la sécurité informatique notamment les algorithmes de chiffrement symétrique et les fonctions de hachage cryptographiques. Tout d'abord, nous avons mis en œuvre deux systèmes de chiffrement présentant une amélioration du système de chiffrement SEC : «SEC avec équilibrage» et «SEC avec fusion binaire». Ce sont des systèmes symétriques générant leurs propres clés (secrètes) de session. Ils permettent de modifier au maximum les fréquences d apparitions des caractères par le biais d opérations à caractères aléatoires. En combinant chacune de ces deux techniques avec «SEC», le système de chiffrement résultant devient plus résistant à la cryptanalyse par étude des fréquences d apparition des caractères et par la recherche exhaustive. Ensuite, nous avons conçu un nouveau système de chiffrement dont la structure interne est basée essentiellement sur la recherche tabou. Enfin, nous nous sommes intéressés à l application de l algorithme mémetique, qui représente une métaheuristique hybride combinant un algorithme évolutionniste et une méthode de recherche locale pour la résolution d un problème d ordonnancement dans le domaine de la cryptographie symétrique. Dans la deuxième partie de cette thèse, nous avons abordé le domaine des fonctions de hachage cryptographiques dans lequel nous avons abouti à la conception et la réalisation d une nouvelle fonction de hachage combinant les techniques du standard de chiffrement DES (Data Encryption Standard) et de la famille SHA (Secure Hash Algorithm). Cette hybridation utilisée assure une confusion forte dans la fonction de compression et par conséquent la fonction de hachage résultante devient plus performante. Mots-clefs : Sécurité informatique, cryptographie, métaheuristique, chiffrement symétrique, fonction de hachage

9 TABLE DES MATIERES Chapitre 1 : LA CRYPTOGRAPHIE I Introduction... 5 II Aspect technique du chiffrement... 7 III Cryptographie classique... 8 III.1 Le chiffrement par substitution... 8 III.1.1 Substitution monoalphabétique... 8 III.1.2 Substitution polyalphabétique... 8 III.1.3 Substitution homophonique... 9 III.1.4 Substitution polygrammes... 9 III.2 Le chiffrement par transposition III.2.1 Transposition simple par colonnes III.2.2 Transposition complexe par colonnes III.2.3 Transposition par carré polybique IV Le chiffrement moderne IV.1 Chiffrement symétrique IV.1.1 DES (Data Encryption Standard) IV.1.2 IDEA IV.1.3 AES IV.2 Chiffrement asymétrique IV.2.1 RSA IV.2.2 Diffie-Hellman IV.2.2 El Gamal V La cryptographie hybride VI Cryptanalyse VI.1 Cryptanalyse linéaire VI.1 La cryptanalyse différentielle Chapitre 2 : LES ALGORITHMES EVOLUTIONNISTES I. Introduction II. Optimisation combinatoire III. Les méthodes Métaheuristiques IV. Les Algorithmes Evolutionnaires V Les algorithmes génétiques... 35

10 V.1 Les éléments des algorithmes génétiques V.2 Principes généraux des algorithmes génétiques V.3 Codage V.3.1 Codage binaire V.3.2 Codage réel V.3.3 Codage sous forme d'arbre V.4 La sélection V.5 Les opérateurs d un algorithme génétique V.5.1 Le croisement V.5.2 La mutation V.6 Critères d arrêt Chapitre 3 : CHIFFREMENT EVOLUTIONNISTE I Système de chiffrement SEC I.1 Introduction I.2 Description du système de chiffrement SEC I.2.1 Formalisation du problème I.2.2 Système de chiffrement I.2.3 Système de déchiffrement I.3 Extension de SEC à des blocs binaires I.3.1 Formalisation du problème I.3.2 Système de chiffrement I.3.3 Système de déchiffrement I.4 Conclusion II Chiffrement avec équilibrage II.1 Introduction II.2 Système de chiffrement en utilisant le processus d équilibrage (BP) II.2.1 Description II.2.2 Chiffrement II.2.3 Déchiffrement II.3 Expérimentations II.3.1 Convergence II.3.2 Configuration II.3.3 Comparaison des fréquences d apparition... 57

11 II.3.4 Temps d'exécution II.4 Conclusion III Chiffrement avec fusion binaire III.1 Introduction III.2 Système de chiffrement III.2.1 Description III.2.2 Chiffrement III.2.3 Déchiffrement III. 3 Expérimentations III.3.1 Configuration III.3.2 La longueur de clé III.3.3 Temps d'exécution III.3.4 Comparaison des fréquences d apparition III.4 Conclusion Chapitre 4 : APPLICATION DE L ALGORITHME DE RECHERCHE TABOU A LA CRYPTOGRAPHIE I Introduction II. La recherche Tabou II.1 Définition II.2 Principe de la recherche tabou II.3 Algorithme générale de la recherche Tabou III. Description de notre algorithme de chiffrement III.1 Formalisation du problème III.2 Squelette de l algorithme III.3 Déchiffrement IV Expérimentations IV.1 Comparaison des fréquences d apparition IV.2 Configuration IV.3 La longueur de clé IV.4 Temps d'exécution V. Conclusion Chapitre 5 : APPLICATION DES ALGORITHMES MEMETIQUES A LA CRYPTOGRAPHIE I. Introduction II. Algorithmes mémetiques II.1 Définition... 82

12 II.2 Principe des algorithmes mémetiques III. Description de notre algorithme de chiffrement III.1 Formalisation du problème III.2 Squelette de l algorithme III.3 Système de chiffrement III.3 Déchiffrement IV Expérimentations IV.1 Comparaison des fréquences d apparition IV.2 Configuration IV.3 La longueur de clé IV.4 Temps d'exécution V Conclusion Chapitre 6 : LES FONCTIONS DE HACHAGE CRYPTOGRAPHIQUES I Introduction générale aux fonctions de hachage I.1 Principes des fonctions de hachage I.2 Domaines d'utilisation des fonctions de hachage cryptographiques I.3 Propriétés des fonctions de hachage cryptographiques I.3.1 Définition I.3.2 Critères de sécurité I.4 Bref historique des principales fonctions de hachage cryptographiques II Constructions classiques des fonctions de hachage et leur sécurité II.1 Introduction II.2 Fonction de compression II.2.1 Fonctions de compression fondées sur le chiffrement par bloc II.2.2 Fonctions de compression fondées sur un problème réputé difficile 104 II.3 Extenseur de domaine II.3.1 Algorithme de Merkle-Damgård II.3.2 Autres extenseurs de domaine II La construction wide pipe II Fonctions éponges III Présentation des fonctions de la famille SHA III.1 Introduction aux fonctions SHA-0 et SHA III.2 Présentation des fonctions SHA-0 et SHA III.2.1 Extenseur de domaine

13 III.2.2 Fonction de compression III.2.3 Sécurité de la fonction SHA III.2.4 Sécurité de la fonction SHA III.3 Présentation des fonctions de la famille SHA III.4 Le concours SHA Chapitre 7 : LA FONCTION DE HACHAGE SHA-SBOX I Introduction II Nouvelle fonction de hachage SHA-SBOX II.1 Description II.2 Formalisation mathématique II.3 Sécurité et performance II.4 Expérimentation III Conclusion

14 TABLE DES FIGURES Figure 1 : Cryptographie à clé secrète Figure 2: Cryptographie à clé publique... 6 Figure 3: Principales techniques en cryptographie... 7 Figure 4: Algorithme de chiffrement DES Figure 5: Description des opérations sur les blocs Ln et Rn Figure 6: Construction des sous-clés de chiffrement DES Figure 7: Algorithme de chiffrement Triple-DES avec 3 clés différentes Figure 8: Le chiffrement IDEA Figure 9 : Algorithme de chiffrement AES Figure 10: Chiffrement asymétrique Figure 11: Principe de fonctionnement Diffie-Hellman Figure 12 : Fréquence d apparition des caractères Figure 13 : Une classification des métaheuristiques Figure 14 : Organigramme d'un algorithme évolutionnaire Figure 15 : Les différents types d algorithmes évolutionnaires (EA) Figure 16 : Codage sous forme d'arbre de deux individus Figure 17 : Sélection par roulette Figure 18 : Opérateur de croisement à deux points Figure 19 : Opérateur de mutation Figure 20 : Une itération de l algorithme SEC Figure 21 : L opération de chiffrement ESEC Figure 22 : L opération de déchiffrement ESEC Figure 23 : Schéma de notre système de chiffrement Figure 24 : Organigramme du processus d'équilibrage Figure 25 : Comparaison de la convergence du système SEC avec et sans processus d équilibrage Figure 26 : Représentation graphique des fréquences d'apparition des différents caractères dans le texte clair, le texte chiffré en utilisant le procédé BP et le texte chiffré sans BP

15 Figure 27 : Représentation graphique de comparaison entre le temps d'exécution de SEC et le temps d'exécution de SEC-BP Figure 28 Schéma de chiffrement SEC avec le processus de fusion binaire Figure 29 : Représentation graphique des fréquences d apparition dans le texte chiffré en utilisant le processus de BFP et le texte chiffré sans BFP Figure 30 : Organigramme de la méthode de recherche tabou Figure 31 : Organigramme de l algorithme de chiffrement STSC Figure 32 : Schéma de notre système de chiffrement STSC Figure 33 : Représentation graphique des fréquences d apparition dans le texte clair et le texte chiffré avec STSC Figure 34 : Schéma des algorithmes Mémétiques (MA) Figure 35 : Organigramme de la méthode de descente Figure 36 : Une itération de l algorithme SMC Figure 37 : Schéma de notre système de chiffrement SMC Figure 38 : Représentation graphique des fréquences d apparition dans le texte clair et le texte chiffré avec SMC Figure 39 : Représentation graphique de comparaison entre le temps d'exécution de SMC et le temps d'exécution de SEC Figure 40 : Principe du hachage Figure 41 : Principe de signatures électroniques Figure 42 : Principe de fonction de hachage Figure 43 : Modes opératoires de Davies-Meyer Figure 44 : Modes opératoires de Matyas-Meyer-Oseas Figure 45 : Modes opératoires de Miyaguchi-Preneel Figure 46 : Algorithme d extension de domaine de Merkle-Damgård Figure 47 : La construction wide-pipe Figure 48 : Construction éponge Figure 49 : Fonction de mise à jour des registres commune à SHA-0 et SHA Figure 50 : Une opération SHA-SBOX Figure 51 : Schéma de notre fonction de compression Fps Figure 52 : Représentation graphique colonne de l effet d avalanche de SHA-256 et SHA- SBOX Figure 53 : Représentation graphique ligne de l effet d avalanche de SHA-256 et SHA- SBOX

16 LISTE DES TABLEAUX Tableau 1: Règles de chiffrement de Hill Tableau 2: La permutation initiale IP Tableau 3: Scindement en blocs de 32 bits Tableau 4: La table d'expansion E Tableau 5: Table de substitution S Tableau 6: les S-Boxes Tableau 7: La permutation P Tableau 8: La permutation initiale : IP Tableau 9: La permutation CP Tableau 10: Les tables Li et Ri Tableau 11: La permutation CP Tableau 12: La table des décalages à gauche LS Tableau 13: Ordre d utilisation des sous-clés d IDEA Tableau 14: 1ère ronde d IDEA Tableau 15: Les sous clés de déchiffrement Ki' générées à partir des sous clés Ki Tableau 16 : Ordre de fréquence d apparition des caractères Tableau 17 : Codage binaire d un chromosome Tableau 18 : Codage réel d un chromosome Tableau 19 : Valeurs d évaluations des individus de chaque population dans les deux systèmes Tableau 20 : Tableau récapitulatif des résultats Tableau 21 : L'analyse de la fréquence dans le nouveau et l'ancien système SEC Tableau 22 : Comparaison entre le temps d'exécution de SEC et le temps d'exécution de SEC-BP en (ms) Tableau 23 : Tableau récapitulatif des résultats Tableau 24 : Tableau récapitulatif des résultats Tableau 25 : Comparaison entre le temps d'exécution de SEC et le temps d'exécution de TripleDES en (ms) Tableau 26 : L'analyse de fréquence dans le texte chiffré en utilisant le processus de BFP et le texte chiffré sans BFP Tableau 27 : L'analyse de fréquence dans le texte clair et le texte chiffré avec STSC Tableau 28 : Tableau récapitulatif des résultats... 78

17 Tableau 29 : Récapitulatif présentant les résultats du nombre des différents blocs binaires générés par STSC Tableau 30 : Comparaison entre le temps d'exécution de STSC et le temps d'exécution de SEC en (ms) Tableau 31 : L'analyse de fréquence dans le texte clair et le texte chiffré avec SMC Tableau 32 : Tableau récapitulatif des résultats Tableau 33 : Récapitulatif présentant les résultats du nombre des différents blocs binaires générés par SMC Tableau 34 : Comparaison entre le temps d'exécution de SMC et le temps d'exécution de SEC en (ms) Tableau 35 : Critères de sécurité des fonctions de hachage Tableau 36 : Valeurs d'initialisation utilisées dans SHA-0 et SHA Tableau 37 : Fonctions booléennes et constantes utilisées dans SHA-0 et SHA Tableau 38 : Comparaison d effet d avalanche SHA-256 et SHA-SBOX Tableau 39 : Complexité des attaques les plus connues

18 LISTE DES ABRÉVIATIONS AES BFP BP DES EA GA IDEA MA NBS NIST OTP RSA SEC SEC-EX SHA SMC STSC Advanced Encryption Standard Binary Fusion Process Balancing Process Data Encryption Standard Evolutionary Algorithm Genetic Algorithm International Data Encryption Algorithm Memetic Algorithm National Bureau of Standards National Institute of Standards and Technologies Chiffrement à clé jetable One-Time Pad Chiffrement à clé publique de Rivest, Shamir et Adleman Symmetrical Evolutionist-based Ciphering SEC extension à des blocs binaires Secure Hash Algorithm Symmetrical Memetic Ciphering Symmetrical Tabu Search Ciphering

19 INTRODUCTION GENERALE Depuis l'invention de l'écriture, les hommes expriment le besoin de transmettre des informations de manière sécurisée en les rendant inintelligibles pour toute personne étrangère à l'échange, c'est-à-dire que les messages ne peuvent pas être compris par l ennemi, même s ils sont interceptés. Littéralement «science du secret», elle a longtemps été associée à des enjeux d'espionnage militaire et diplomatique bien éloignés des préoccupations scientifiques. La cryptographie est quant à elle, l ensemble des techniques constituant la cryptologie [STI 03]. À l'époque actuelle, l'information sous toutes ses formes circule au format numérique à travers le monde en une fraction de seconde sur les réseaux. Cette information est chaque jour échangée d'un point à un autre que ce soit par téléphone, câble, fibres optiques ou par satellite, elle se trouve susceptible d'être lue, supprimée ou falsifiée. La cryptologie constitue un domaine scientifique en pleine activité et répond aujourd hui aux besoins de la sécurité de l information. La cryptographie symétrique, aussi appelée cryptographie à clef secrète est la plus ancienne forme de chiffrement, elle désigne l'une des trois façons de chiffrer un message. Les deux autres grands types de cryptographie sont la cryptographie asymétrique (dite à clef publique) et la cryptographie hybride. Les algorithmes évolutionnaires sont une famille d'algorithmes inspirés par la théorie de l'évolution pour résoudre divers problèmes. Ils évoluent un ensemble de solutions à un problème donné, en vue de trouver les meilleurs résultats. Ce sont des algorithmes stochastiques, car ils utilisent des processus aléatoire de manière itérative. Nous notons qu'ils sont utiles en cryptographie. L'efficacité de ces algorithmes est prouvée par la résolution de problèmes d'optimisation combinatoire, qui sont généralement NP-difficile. En 2005, F.Omary et al. ont introduit un nouveau système de chiffrement [OMA05], appelé SEC (Symmetrical Evolutionist-based Ciphering) qui est fortement lié aux algorithmes évolutionnistes. Son principe consiste à construire les listes contenant les différentes positions des caractères du texte en clair, et il enchaine le processus évolutionnaire (évaluation, sélection, opérateur de croisement et de mutation) sur l ordre de ces listes pour obtenir un désordre maximal sans modifier leurs contenus, à la fin de l algorithme une clé dite «clé génétique» est générée, utilisée pour l opération de déchiffrement. En 2006, la même équipe a publié une version généralisée du système SEC [OMA06], intitulée SEC-EX (SEC extension à des blocs binaires). Cette variante est plus résistante aux attaques, elle consiste à couper le texte à chiffrer en blocs de bits après l avoir converti en codage binaire, puis elle applique l algorithme évolutionnaire aux listes des positions des blocs binaires comme dans [OMA05]. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 1

20 Introduction générale Les travaux de recherche exposés dans ce document s inscrivent dans le cadre de la cryptographie symétrique. Ces travaux concernent principalement l analyse et la conception de nouveaux outils cryptographiques. L'objectif principal de la première partie est la conception et l évaluation de nouveaux systèmes de chiffrement. Dans un premier lieu nous avons développé une nouvelle méthode de chiffrement nommée «Équilibrage». Elle consiste à créer un équilibre entre les listes de positions des caractères, les fréquences réelles des caractères sont masquées et sont presque les mêmes tout au long du texte chiffré, une clé supplémentaire secrète est générée au cours de ce processus que nous appelons «la clé d équilibrage» qui va servir au déchiffrement. En combinant cette méthode avec «SEC» le système de chiffrement résultant devient plus résistant à la cryptanalyse par étude des fréquences d apparition des caractères et par la recherche exhaustive [KAD13a]. Dans un deuxième lieu, nous avons défini une autre méthode de chiffrement intitulée «Processus de Fusion Binaire». Elle permet de modifier au maximum les fréquences d apparitions des caractères par le biais d opérations à caractères aléatoires. Nous appliquons cet algorithme sur les blocs binaires puis nous appliquons SEC-EX. Ce processus génère une clé supplémentaire secrète que nous appelons «la clé de fusion binaire». Ce principe va assurer une confusion très forte dans le texte chiffré et renforcera davantage la résistance contre de redoutables cryptanalyses [KAD13b]. Ensuite, nous présentons un nouveau système de chiffrement intitulé «Symmetrical Tabu Search Ciphering (STSC)» dont la structure interne est basée essentiellement sur la recherche Tabou. Pour cela nous avons ramené le problème de chiffrement d un message M à un problème d optimisation comme dans le système de chiffrement évolutionniste SEC [OMA05]. Après, nous avons codé ce problème d une manière particulière permettant de nous ramener aux problèmes d ordonnancement. Cette conception est basée sur l enrichissement de l espace de recherche et l application d un modèle bien défini durant le processus de la recherche tabou [WIL93]. Enfin, nous nous sommes intéressés à l application de l algorithme mémétique qui représente une métaheuristique hybride combinant un algorithme évolutionniste et une méthode de recherche locale pour la résolution d un problème d ordonnancement dans le domaine de la cryptographie symétrique. Les deux méthodes utilisées sont complémentaires, car l algorithme évolutionniste permet de bien balayer l espace de recherche, tandis que la recherche locale permet de bien intensifier la recherche dans ces zones pour trouver les meilleures solutions. Les critères de performances considérés sont le temps d exécution et la convergence du système. Les travaux présentés dans la seconde partie de cette thèse abordent à la fois la conception et l analyse de la sécurité des fonctions de hachage cryptographiques. Dans cette partie, nous Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 2

21 Introduction générale avons développé une nouvelle fonction de hachage - basée sur le schéma de SHA dont les opérations non linéaires sont basées essentiellement sur les permutations et substitutions, nous l'appelons SHA-SBOX [KAD13c]. Organisation de la thèse Cette thèse est divisée en deux parties et est composée de sept chapitres. Dans la première partie nous présentons des outils théoriques et algorithmiques servant de références pour la suite et nous étudions en profondeur l algorithme de chiffrement SEC et ses dérivés qui seront utilisées tout au long de la première partie de cette thèse. Les chapitres 3, 4 et 5 sont consacrés respectivement à la description de nos systèmes de chiffrement : SEC avec BP, SEC avec BFP, STSC et SMC. La deuxième partie commence par le chapitre 6, qui est une introduction aux fonctions de hachages. Dans le même chapitre nous exposons les principes de conception sur lesquels les fonctions de hachage les plus utilisées sont fondées. Dans le chapitre 7, nous détaillons notre nouvelle fonction SHA-SBOX, ses résultats d application sont donnés à la fin de ce chapitre. Nous achevons ce document par une conclusion, et nous donnons quelques perspectives quant aux nouvelles problématiques pouvant être abordées sur la base de nos travaux. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 3

22 Chapitre 1 LA CRYPTOGRAPHIE Sommaire I Introduction II Aspect technique du chiffrement III Cryptographie classique III.1 Le chiffrement par substitution III.2 Le chiffrement par transposition IV Cryptographie moderne IV.1 Cryptographie symétrique IV.2 Cryptographie asymétrique IV.3 Cryptographie Hybride VI La cryptanalyse VI.1 Cryptanalyse linéaire VI.2 Cryptanalyse différentielle Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 4

23 Chapitre 1 La cryptographie I Introduction La cryptologie est une science qui s appuie sur des fondements mathématiques. Elle comporte deux branches : la cryptographie et la cryptanalyse. La première définit et étudie les systèmes utilisés, alors que la seconde cherche à casser ces systèmes [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 transformation à l'aide d'une clé de chiffrement, afin de le rendre incompréhensible pour celui qui ne dispose pas de la clé ; c'est ce qu'on appelle le chiffrement, qui, à partir d'un texte en clair, donne un texte chiffré. Inversement, le déchiffrement est l'action qui consiste à retrouver le texte à partir du texte chiffré. La cryptographie moderne se base essentiellement sur des concepts mathématiques et algorithmiques. Elle a pour but l étude des méthodes qui permettent d assurer un certain nombre de services de sécurité ; l intégrité, l authenticité et la confidentialité dans les systèmes d information et de communication. D une manière globale, la cryptographie permet de résoudre quatre problèmes différents : - La confidentialité : Le texte chiffré ne doit être lisible que par les destinataires concernés. Il ne doit pas pouvoir être lu par un attaquant. - L'intégrité : Le destinataire d'un message doit pouvoir vérifier que celui-ci n'a pas été modifié. Un attaquant ne doit pas être capable de faire passer un faux message pour légitime. - L'authentification : Le destinataire d'un message doit pouvoir s'assurer de son origine. Un attaquant ne doit pas être capable de se faire passer pour quelqu'un d'autre. - La non répudiation : Un expéditeur ne doit pas pouvoir, par la suite, nier avoir envoyé un message. Le chiffrement est la transformation d une information intelligible en une information inintelligible (qui ne peut pas être comprise par des personnes qui ne sont pas autorisées à lire cette information). Cela contribue à protéger la vie privée tout en envoyant les données de l'expéditeur au destinataire, le concept de chiffrement et de déchiffrement nécessite des informations supplémentaires pour crypter et décrypter les données. Cette information est connue comme la clé de déchiffrement. Il y a des cas où une seule clé peut être utilisée pour le chiffrement et le déchiffrement tandis que, dans certains cas, le chiffrement et le déchiffrement peuvent exiger des clés différentes [STI 03]. Il existe deux catégories d algorithmes à base de clés : la première est appelée symétrique et la seconde asymétrique. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 5

24 Chapitre 1 La cryptographie Cryptographie à clé secrète Ce type de cryptographie utilise une clé unique, l'expéditeur demande une clé pour chiffrer un message tandis que le récepteur utilise la même clé pour déchiffrer le message. Comme il y a une clé utilisée tout au long du processus alors nous disons qu'il s'agit d'un chiffrement symétrique : Figure 1 : Cryptographie à clé secrète. Le principal problème avec cette méthode est que l'expéditeur et le destinataire doivent échanger la clé, et pendant cet échange, sans précautions particulières, tout peut se produire. Cryptographie à clé publique La cryptographie asymétrique est une méthode de chiffrement qui s'oppose à la cryptographie symétrique, l'expéditeur peut utiliser la clé publique du destinataire pour coder un message que seul le destinataire peut décoder. Réciproquement, l'expéditeur peut utiliser sa propre clé privée pour coder un message que le destinataire peut décoder avec la clé. Figure 2: Cryptographie à clé publique La cryptographie est une science en évolution continue, et beaucoup d études dans ce domaine sont faites dans les laboratoires du monde entier. Le but de ces recherches est de rendre les méthodes de chiffrement de plus en plus sûres (incassables même avec l évolution technologique). L avenir reste cependant toujours incertain, puisqu on ne peut pas imaginer quelle sera la puissance réelle des futurs ordinateurs. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 6

25 Chapitre 1 La cryptographie Les meilleurs systèmes de chiffrement sont moins nombreux. Le DES [NIS99] et l IDEA [LAI99] sont les algorithmes les plus répandus en matière de chiffrement symétrique. RSA quant à lui le plus fameux des algorithmes asymétriques. Toutes ces méthodes et techniques sont expliquées plus en détail dans la suite de ce manuscrit. II Aspect technique du chiffrement Les méthodes cryptographiques peuvent être classées en trois catégories, comme le montre le schéma ci-dessous : Figure 3: Principales techniques en cryptographie La cryptographie classique est la plus ancienne classe d algorithmes de chiffrement. Elle traite des systèmes basés sur les lettres et les caractères d une langue. La substitution et la transposition sont les principaux outils utilisés, ils remplacent des caractères par des autres et les permutent dans des ordres différents. Les meilleurs systèmes répètent ces deux opérations de base plusieurs fois [STI 03]. Les méthodes utilisées aujourd'hui sont plus complexes, mais le principe reste le même. La différence essentielle est que les méthodes modernes manipulent directement des bits contrairement aux vieilles méthodes qui opéraient directement sur des caractères alphabétiques. Comme on l a déjà indiqué, les techniques de chiffrement évoluent tous les jours, il est donc possible que les standards d aujourd hui ne soient plus les standards de l avenir. En exposant les principales techniques de cryptographie, nous montrons l évolution de la cryptographie à travers le temps ainsi que les améliorations apportées aux systèmes existants. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 7

26 Chapitre 1 La cryptographie III Cryptographie classique Généralement les méthodes de chiffrement classiques reposent sur deux principes fondamentaux : la substitution et la transposition. La substitution signifie qu'on remplace des lettres par d'autres ou par des symboles. La transposition consiste à permuter les lettres du message afin de le rendre inintelligible. III.1 Le chiffrement par substitution Un chiffrement par substitution est un procédé de codage par lequel les unités du texte en clair sont remplacés par des chiffrés, en général, les unités peuvent être de simples lettres, des paires de lettres, des triplets de lettres, des mélanges de ce qui précède... Le déchiffrement du texte s effectue en appliquant la substitution inverse. Il existe plusieurs types de chiffrement par substitution. Si le chiffrement s applique sur de simples lettres, il est appelé un chiffrement par substitution simple, un chiffre qui exploite un grand groupe de lettres est appelé polygraphique [BEC 90]. La substitution consiste à effectuer des transformations de telle sorte que chaque caractère du message chiffré soit différent des caractères du message en clair. Le destinataire applique l opération inverse au texte chiffré pour récupérer le message initial. La complexité des systèmes à substitutions repose sur trois facteurs : - la composition caractéristique de l alphabet utilisé pour chiffrer, - le nombre d alphabets utilisés dans le cryptogramme, - la façon spécifique dont ils sont utilisés. III.1.1 Substitution monoalphabétique Un chiffre monoalphabétique utilise la substitution fixe sur l'ensemble du message (il remplace chaque lettre du message par une autre lettre de l'alphabet), les exemples les plus connus sont les algorithmes de César, Rot13, et le code morse. Ces types de chiffrement sont encore utilisés aujourd hui pour cacher le sens de certains messages, cependant ils sont très peu sûrs. En fait en utilisant ce principe, les lettres les plus fréquentes dans le texte en clair restent les plus fréquentes dans le texte chiffré [STI 03]. Aujourd hui les algorithmes à base de substitutions monoalphabétiques sont facilement cassés par les cryptanalystes. III.1.2 Substitution polyalphabétique La substitution polyalphabétique consiste à utiliser une suite de chiffres monoalphabétique réutilisés périodiquement (une unité de texte en clair est adressée à l'une des nombreuses possibilités dans le texte chiffré et vice versa.). Ce procédé est plus sûr par rapport au premier, mais aussi cryptanalysé par les spécialistes. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 8

27 Chapitre 1 La cryptographie III.1.3 Substitution homophonique La substitution homophonique consiste à remplacer chaque lettre par divers substituts. Dans sa version la plus résistante, le choix des symboles est proportionnel à la fréquence d apparition de la lettre. Le fait d offrir plusieurs alternatives de substitution pour les lettres les plus usuelles perturbe les fréquences dans le texte chiffré. Et vu qu aucun symbole n'apparait plus souvent que les autres, le message sera plus résistant à la cryptanalyse basée sur l étude de fréquence d apparition des caractères [STI 03]. III.1.4 Substitution polygrammes La substitution de polygrammes permet de substituer un groupe de n lettres par un autre groupe de n symboles : les caractères du texte en clair sont chiffrés par blocs. Les exemples les plus célèbres sont les algorithmes de PLAYFAIR et de HILL inventés en 1854 et utilisés pendant la première guerre mondiale par les anglais. En chiffrant des blocs de caractères, la substitution de polygrammes rend la cryptanalyse plus délicate en éliminant la signification des fréquences des lettres prises distinctement [STI 03]. Le chiffrement de Playfair est une substitution de bigrammes créée en 1854 et utilisée par les anglais durant la première guerre mondiale. La clé est constituée d'une matrice 5 x 5. Chaque paire de caractères m1 m2 du message est chiffrée selon 3 règles basées sur la position de m1 et m2 dans la matrice. Pour le déchiffrement, on procède dans l ordre inverse. 1. Si les lettres se trouvent sur la même ligne, il faut prendre les deux lettres qui les suivent directement à leur droite. 2. Si les lettres se trouvent sur des "coins", les lettres chiffrées sont les deux autres coins. 3. Si les lettres se trouvent sur la même colonne, il faut prendre les deux lettres qui les suivent directement en dessous. Tableau 1: Règles de chiffrement de Hill. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 9

28 Chapitre 1 La cryptographie III.2 Le chiffrement par transposition Le chiffrement par transposition commence par découper le texte clair en blocs de même taille. Le texte peut avoir besoin d être complété (opération de bourrage) afin d aboutir à ce découpage. La permutation utilisée représente la clé de chiffrement. Ce type de chiffrement est moins résistant pour de messages de taille petite puisque peu de variantes existent. Lorsque le nombre de lettres augmente, il devient de plus en plus difficile de retrouver le texte en clair sans savoir l opération de brouillage [FLO 02]. Il existe plusieurs types de transpositions : III.2.1 Transposition simple par colonnes On écrit le message horizontalement dans un tableau de dimensions prédéfinies, puis on retrouve le message chiffré en lisant la matrice de manière verticale. Pour déchiffrer il suffit de réaliser l opération inverse. III.2.2 Transposition complexe par colonnes Dans ce type de transposition un mot clé avec seulement des caractères différents est utilisé pour produire une suite de chiffres commençant par 1 et se terminant au nombre de lettres constituant le mot clé. La clé de chiffrement est obtenue en numérotant les lettres du mot clé selon l'ordre où ils apparaissent dans l'alphabet. Ensuite, le message sera chiffré en l'écrivant dans un tableau dont le nombre de colonnes correspond au nombre de lettres du mot clé et en recopiant ses colonnes dans l'ordre de la clé de chiffrement [STI 03]. III.2.3 Transposition par carré polybique La transposition est faite à partir d un carré de Polybe contenant toutes les lettres dans un ordre spécifique et pouvant être identifiées chacune par deux coordonnées. Un mot clé secret est utilisé pour construire un alphabet dans un tableau de dimensions prédéfinies. Les coordonnées des lignes et des colonnes sont utilisés pour transcrire le texte en chiffres. En utilisant cette méthode chaque lettre du texte en clair est représentée par deux chiffres écrits verticalement. Ces coordonnées sont ensuite transposées en les recombinants par deux sur la ligne obtenue [SCH 96]. IV Le chiffrement moderne La cryptographie entre dans son ère moderne avec la naissance des ordinateurs. Comme les données traitées par les ordinateurs sont uniquement sous forme de bits, les techniques de substitutions et de transpositions sont encore employées mais seulement sur deux éléments 0 et 1. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 10

29 Chapitre 1 La cryptographie Dans la cryptographie moderne, il existe deux types d algorithmes à clés : les systèmes de chiffrement symétriques et les systèmes de chiffrement asymétriques. IV.1 Chiffrement symétrique La cryptographie symétrique est la plus ancienne forme de chiffrement. Une seule clé est utilisée pour le chiffrement et le déchiffrement, celle-ci doit rester obligatoirement confidentielle, dans le cas contraire le système devient inefficace [FLO02]. On distingue deux types d algorithmes de chiffrement symétriques, le chiffrement à flot et le chiffrement par bloc. On appelle usuellement chiffrement à flot un algorithme de chiffrement qui opère sur un flot de bits ou d octets au moyen d'une fonction qui est générée de manière pseudo-aléatoire, ce type de chiffrement traite les données de longueur quelconque et sans avoir besoin de les découper. Au contraire, un algorithme par blocs applique des opérations bien choisies (par exemple substitution et permutation) aux différents blocs du message clair qui sont ici de même taille (typiquement 64, 128 ou 256 bits). IV.1.1 DES (Data Encryption Standard) Pendant les années 1970, National Bureau of Standards américain (NSB) demande la création d'un nouvel algorithme de chiffrement. Pour cela le Bureau Fédéral des Standards organise un concours pour trouver ce standard. C'est IBM qui se place en première position, avec un algorithme original appelé Lucifer [NIS99]. Cet algorithme est accepté initialement mais nécessite quelques renforcements. Finalement le NSB a approuvé en 1978 l'algorithme DES comme standard de codage des données. L'algorithme DES permet d effectuer des combinaisons, des substitutions et des permutations entre le texte en clair et la clé de chiffrement, en s assurant que les opérations peuvent être inversées. Sa sécurité repose spécialement sur ses tables de substitutions non linéaires très efficaces pour perturber les informations. Il utilise un réseau de Feistel à 16 rondes pour chiffrer des blocs de 64 bits à l'aide d'une clé secrète de 64 bits. Le chiffrement d'un bloc s'effectue en trois étapes : - Une permutation initiale (IP0), - l'application d'un schéma de Feistel utilisant 16 fonctions f1, f2,... f16 déterminées par 16 sous-clés K1, K2,..., K16 dérivées de la clé K, fk : {0,1} 32 {0,1} 32 (k correspond à la sous-clé Ki) - Une permutation finale (IP -1 ) inverse de (IP0). DES utilise huit tables de substitution nommées S-Boxes. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 11

30 Chapitre 1 La cryptographie Figure 4: Algorithme de chiffrement DES Permutation initiale et finale Au début, chaque bit d'un bloc est soumis à la permutation initiale IP0, représentée par la table suivante : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 12

31 Chapitre 1 La cryptographie Tableau 2: La permutation initiale IP0 Ce tableau de permutation indique, que le 58ème bit du bloc de texte de 64 bits se situe en première position, le 50ème en deuxième position et ainsi de suite. Scindement en blocs de 32 bits Le bloc résultant de la permutation initiale de 64 bits est subdivisé en deux blocs de 32 bits, notés respectivement L et R. On note L0 et R0 leur état initial : Tableau 3: Scindement en blocs de 32 bits. Rondes Les blocs Ln et Rn sont soumis à un ensemble d opérations itératives, montrées dans ce schéma, et dont les détails sont présentés ci-dessous : Figure 5: Description des opérations sur les blocs Ln et Rn Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 13

32 Chapitre 1 La cryptographie Fonction d'expansion Les blocs R0 sont étendus de 32 bits à 48 bits grâce à la fonction d expansion utilisant une table de 48 bits, à noter que certains bits de l'entrée sont dupliqués à la sortie. Tableau 4: La table d'expansion E En appliquant cette table, le dernier bit de R0 devient le premier, le premier devient le deuxième et ainsi de suite. OU exclusif avec la clé La clé de chiffrement k est additionnée à E(R) et le résultat est divisé en huit blocs de six bits : E(R) k = B1B2B3B4B5B6B7B8 Fonction de substitution A chaque bloc Bi de 6 bits une fonction de substitution Si de {0,1} 6 {0,1} 4, appelée (S- BOX ). Les premiers et derniers bits de chaque sous bloc Bi désignent la ligne de la fonction Si, les autres bits au milieu désignent la colonne. Avec cette opération, la fonction de substitution sélectionne une valeur toujours codée sur 4 bits [NIS99]. La première table substitution S1, est représentée comme suit : Tableau 5: Table de substitution S1. Soit le bloc à substituer. Les premiers et derniers bits donnent la valeur 3. Les bits au milieu donnent la 6. Le résultat de la fonction de substitution est donc la valeur située à la ligne n 3, dans la colonne n 6. Il s'agit de la valeur 1, soit en binaire Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 14

33 Chapitre 1 La cryptographie Voici les autres fonctions de sélection : Tableau 6: les S-Boxes. Chaque bloc de 6 bits est ainsi réduit en un bloc de 4 bits. Les huit blocs obtenus sont fusionnés afin de donner un bloc de 32 bits : C = C1C2C3C4C5C6C7C8. Ce bloc résultant de la substitution est finalement soumis à une permutation P : Tableau 7: La permutation P Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 15

34 Chapitre 1 La cryptographie Ou exclusif Ainsi le résultat de P est soumis à un OU Exclusif avec le G0 de départ pour donner D1, pendant que le D0 initial donne G1. Permutation initiale inverse IP -1 : Finalement, les deux derniers blocs L16 et R16 sont fusionnés, puis soumis à la permutation initiale inverse donnée par : Tableau 8: La permutation initiale : IP- 1 Construction des 16 sous-clés de chiffrement Cette étape permet d obtenir à partir d'une clé de 64 bits, 16 clés différentes de 48 bits chacune utilisées dans l'algorithme du DES. Figure 6: Construction des sous-clés de chiffrement DES Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 16

35 Chapitre 1 La cryptographie Premièrement les bits de parité de la clé sont éliminés afin d'obtenir une clé de 56 bits, celle-ci subit une permutation notée CP-1 dont la table est donnée par : Tableau 9: La permutation CP-1 bits : Cette tables peut s'écrire sous la forme de deux tables Li et Ri composées chacune de 28 Tableau 10: Les tables Li et Ri. Par la suite ces deux blocs subissent une rotation à gauche, ils seront ainsi regroupés en un bloc de 56 bits. Ce dernier passe par une permutation, notée CP-2, donnant en sortie un bloc de 48 bits, désignant la clé Ki. Tableau 11: La permutation CP-2. Des opérations de décalage à gauche sur la clé après toutes ces itérations permettent de générer les 16 clés K1 à K16 utilisées durant l'algorithme de chiffrement DES. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 17

36 Chapitre 1 La cryptographie Tableau 12: La table des décalages à gauche LS. Déchiffrement Le déchiffrement s'effectue à partir du même algorithme, 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 [NIS99]. TDES, une alternative au DES Le TDES permet d'augmenter significativement la sécurité du DES, en utilisant le système de chiffrement DES trois fois sur le bloc de message en clair [TUC99]. On distingue habituellement plusieurs types de chiffrement triple DES : DES-EEE3 : 3 chiffrements DES avec 3 clés différentes ; DES-EDE3 : une clé différente pour chacune des 3 opérations DES (chiffrement, déchiffrement, chiffrement) ; DES-EEE2 et DES-EDE2 : une clé différente pour la seconde opération (déchiffrement). Description Figure 7: Algorithme de chiffrement Triple-DES avec 3 clés différentes. IV.1.2 IDEA «IDEA» est un algorithme de chiffrement par bloc conçu par Xuejic LAI et James MASSEY de l Institut Technologique Fédéral Suisse, Sa première publication remonte à 1990 [LAI99]. Un an plus tard fut publié une seconde version plus résistante aux attaques des cryptanalystes. «IDEA» est l un des remplaçants les plus performants du «DES». «IDEA» utilise une clé de 128 bits (qui doit être choisie aléatoirement) et manipule des blocs de texte en clair de 64 bits. Trois opérations binaires sont au cœur de «IDEA», - OU exclusif «XOR», noté, - Addition modulo 2 16 notée, Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 18

37 Chapitre 1 La cryptographie - Multiplication modulo notée, Toutes ces opérations citées manipulent des sous-blocs de 16 bits en entrée pour produire un bloc de 16 bits en sortie. Construction des sous-clés Chaque ronde utilise 6 sous-clés de 16 bits différentes et la transformation finale utilise 4 sous-clés, un ensemble de 52 sous-clés est donc créé. La construction des 52 sous-clés à partir de la clé initiale se fait de la manière suivante : - La clé de 128 bits est divisée en huit blocs de 16 bits. Ces huit blocs constituent les 8 premières sous-clés de chiffrement. - Ensuite la clé de 128 bits est cycliquement décalée vers la gauche de 25 positions et divisée en huit blocs de 16 bits. Ces huit blocs sont les 8 sous-clés suivantes de chiffrement. - Le processus s arrête jusqu'à l'obtention des 52 sous-clés désirées. L'ordre d utilisation des sous-clés est représenté dans le tableau suivant : Tableau 13: Ordre d utilisation des sous-clés d IDEA Présentation de l'algorithme Le bloc initial de 64 bits est découpé en quatre blocs de 16 bits A, B, C et D. En désignant par K1, K2,..., K52 les 52 sous-clés, l'algorithme est le suivant Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 19

38 Chapitre 1 La cryptographie Tableau 14: 1ère ronde d IDEA. Figure 8: Le chiffrement IDEA. Rondes 2 à 8 Le même processus est répété sur les 7 rondes restantes en utilisant les sous-clés correspondantes. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 20

39 Chapitre 1 La cryptographie Transformation finale Après la huitième ronde, une transformation finale est appliquée sur la dernière génération de sous-blocs : - multiplier le dernier A et la sous-clé K49 ; - additionner le dernier B et la sous-clé K50 ; - additionner le dernier C et la sous-clé K51 ; - multiplier le dernier D et la sous-clé K52. A = A. K 49 B = B+ K 50 C = C + K 51 D = D. K 52 Enfin les 4 sous-blocs sont réassemblés pour former le texte chiffré de 64 bits. Déchiffrement L opération de déchiffrement s'effectue de façon similaire, en traitant les blocs de texte chiffré dans l'ordre inverse du chiffrement [LAI99]. A partir des sous-clés utilisées dans l opération de chiffrement les 52 sous-clés nécessaires pour le déchiffrement sont recalculées en remplaçant les opérations utilisées au cours de la ronde (soit l'addition soit la multiplication) par leurs opérations réciproques Tableau 15 : Les sous clés de déchiffrement Ki' générées à partir des sous clés Ki IV.1.3 AES Le standard de chiffrement avancé «AES», aussi connu sous le nom de Rijndael, est un algorithme de chiffrement symétrique. Il est issu d'un appel à candidatures internationales Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 21

40 Chapitre 1 La cryptographie lancé en janvier 1997 par le NIST et ayant reçu 15 propositions. Parmi ces 15 algorithmes, 5 furent choisis pour une évaluation plus poussée en avril 1999 : MARS [BUR99], RC6 [RIV98], Rijndael [BAU99], Serpent [AND98], et Twofish [SCH98]. Il remporta en octobre 2000 le concours AES, et devint le nouveau standard de chiffrement pour les organisations du gouvernement des États-Unis. Il a été également approuvé par la NSA (National Security Agency) pour les informations secrètes. Détails techniques L'AES procède par blocs de 128 bits du texte en clair qu'ils transforment en blocs cryptés de 128 bits par une séquence de cinq transformations à partir d'une clé de 128, 192 ou 256 bits. Suivant la taille de celle-ci, le nombre de rounds diffère : respectivement 10, 12 et 14 rounds [Bau99]. Les étapes suivantes décrivent brièvement le déroulement du chiffrement : - BYTE_SUB (Transformation non linéaire d'octets) est une fonction non-linéaire opérant indépendamment sur chaque bloc. Les 128 bits sont repartis en 16 blocs de 8 bits (8 bits=un octet), eux même distribués dans une matrice 4 4. Chaque octet est transformé à partir d une table de substitution. - SHIFT_ROW (Décalage de lignes) est une fonction opérant des décalages (les 3 dernières lignes sont décalées cycliquement vers la gauche : la 2eme ligne est décalée d'une colonne, la 3 eme ligne de 2 colonnes, et la 4eme ligne de 3 colonnes). - MIX_COL (Brouillage des colonnes) est une fonction qui transforme chaque octet d'entrée en une combinaison linéaire d'octets, elle peut être exprimée mathématiquement par un produit matriciel sur le corps de Galois (2 8 éléments). - AddRoundkey (Addition de la clé de tour) à chaque tour, une clé de tour Ki est générée à partir de la clé principale K par un algorithme dit de cadencement. Cette clé de tour est ajoutée par un Ou exclusif au dernier bloc obtenu. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 22

41 Chapitre 1 La cryptographie Figure 9 : Algorithme de chiffrement AES. Le déchiffrement consiste à appliquer les opérations inverses de celles utilisées durant le chiffrement, également avec des sous-clés dans l'ordre inverse. Pour une étude plus détaillée de l AES, voir [STI 03]. Sécurité L'AES n'a pour l'instant pas été cassé et la recherche exhaustive («force brute») reste la seule solution actuelle. Il présente une plus grande résistance aux attaques comme la cryptanalyse linéaire ou différentielle [FLO 02]. IV.2 Chiffrement asymétrique La cryptographie asymétrique, ou cryptographie à clé publique, est une solution au problème de transmission des clés dans le chiffrement symétrique. Le concept a été introduit par Whitfield Diffie et Martin Hellman en 1975 [HAR04]. C est une méthode qui s'oppose à la cryptographie symétrique. En effet, elle repose sur l'utilisation de deux clés une clé publique (qui est diffusée) et une clé privée (gardée secrète), l'une permettant de coder le message et l'autre de le décoder. Ainsi, Il suffit à un utilisateur voulant chiffrer des données sécurisées avec ce type de chiffrement de diffuser sa clé publique aux personnes avec qui il veut communiquer. Les clés publiques utilisées durant le processus de chiffrement peuvent être distribuées Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 23

42 Chapitre 1 La cryptographie clairement puisqu'elles ne permettent pas de déchiffrer les données. Cependant, il est nécessaire de s'assurer de l'identité de l'entité qui fournit la clé publique pour ne pas risquer de lui donner des informations confidentielles. Figure 10: Chiffrement asymétrique. La première application à ce principe fut le chiffrement RSA [RSA78]. Depuis, plusieurs systèmes ont été publiés. Leur sécurité repose sur divers problèmes mathématiques, et particulièrement la théorie des grands nombres. IV.2.1 RSA Le chiffrement RSA, est le premier algorithme de chiffrement asymétrique. Il a été découvert en 1977 par Ronald Rivest, Adi Shamir et Leonard Adleman. Ensuite, il a été breveté par le Massachusetts Institute of Technology (MIT) en 1983 aux États-Unis [RSA78]. Le RSA est basé sur la théorie des nombres premiers, et sa robustesse réside dans la difficulté à décomposer un grand nombre en facteurs premiers. En fait, il est facile de multiplier deux nombres premiers, mais il est très difficile de récupérer ces deux entiers sachant leur produit. Fonctionnement du chiffrement RSA Le RSA utilise deux nombres premiers, que l on appellera p et q. Afin d'éviter certaines vulnérabilités, ces deux nombres doivent être suffisamment grands. Aujourd hui, on utilise une taille de 256 à 2048 bits, ce qui donne un choix de clé virtuellement illimité [RSA78]. Génération des clés On note n le produit n = p q, et φ = (p 1) (q 1). - Cherchons maintenant un nombre e (inférieur à φ), qui doit nécessairement être premier avec φ. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 24

43 Chapitre 1 La cryptographie - Soit d un grand entier choisi aléatoirement, premier avec φ. Et e l'inverse de d modulo φ. d e -1 mod φ - La clé publique de chiffrement est le couple (e, n), la clé privée de déchiffrement le couple (d, n). Chiffrement Initialement, le message en clair doit être décomposé en une série d'entiers M de valeurs choisies dans l intervalle [1,, n-1]. On calcule C = M e mod n pour chaque entier M. Le message chiffré est constitué à partir de la série d'entiers C. Déchiffrement Le message reçu doit être composé d'une succession d'entiers C de valeurs choisies dans l intervalle [1,, n-1]. On calcule M = C d mod n pour chaque entier C. Le message en clair peut alors être reconstitué à partir des valeurs de M. IV.2.2 Diffie-Hellman L'échange de clés Diffie-Hellman du nom de ses auteurs Whitfield Diffie et Martin Hellman, est le premier protocole d échange de clés développé en 1976 [HAR04]. Le but de ce protocole est de créer un secret (une clé pour chiffrer la conversation) commun aux personnes qui veulent communiquer sans que d autres personnes puissent découvrir ce secret, même en ayant écouté tous leurs échanges. Il est basé sur l'existence de fonctions appelées fonctions à sens unique, qui se caractérisent par le fait que le calcul est facile dans un sens (le chiffrement) et quasiment impossible dans l'autre (le déchiffrement) sans la possession de la clé privée. - Le principe de fonctionnement est le suivant : Nous allons voir maintenant comment Alice et Bob peuvent s'échanger une clé secrète par le protocole de Diffie-Hellman. Ils font des actions en parallèle, que l'on décrit dans les étapes suivantes : Les deux interlocuteurs (Alice et Bob) partagent deux paramètres importants nonsecrets : un nombre premier p et un nombre g inférieur à p dont les puissances modulo p engendrent Zp - {0}. Chacun d'eux choisit une valeur comprise entre 1 et p-2, Alice choisit une valeur a et Bob une valeur b ces deux valeurs représentent la clé privée de l algorithme. Ensuite, chacun calcule une valeur publique qu'ils s échangent : Alice envoie α = (g a mod p) à Bob qui lui envoie β = (g b mod p). Alice calcule β a mod p et Bob de son côté calcule α b mod p. L échange entre Alice et Bob est illustré dans le tableau suivant Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 25

44 Chapitre 1 La cryptographie Avec les propriétés suivantes : Figure 11: Principe de fonctionnement Diffie-Hellman k = β a mod p = (g b mod p) a = g ba mod p = g ab mod p = (g a mod p) b = α b mod p Sécurité La sécurité de la méthode repose sur la difficulté de calcul de k = g ab mod p à partir de g a mod p et de g b mod p lorsque p est très grand. Retrouver x connaissant f(x) = g x mod p, g et p est très difficile, il s agit de résoudre le problème du logarithme discret de base g modulo p, (c est le cas pour le problème de la factorisation d'entiers) [HAR04]. IV.2.2 El Gamal C est une méthode de cryptographie à clé publique de signature électronique. Il fut inventé par Taher ElGamal en Sa sécurité repose, comme le protocole de Diffie et Hellman, sur la difficulté de calculer le logarithme discret. Le problème du logarithme discret consiste à retrouver un entier λ tel que h = g λ mod p. Chiffrement Soit p un entier premier très grand et p 1 doit avoir un grand facteur premier. On a : une clé secrète s, telle que s (1...p 2), Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 26

45 Chapitre 1 La cryptographie une clé publique reposant sur l entier p, un entier a premier avec p, et l entier P tel que P = a s mod p Le nombre a est choisi tel que a (0...p 1) et k (1...p 2) : a k 1 mod p Soit M un message à chiffré, avec M < p. On choisit un nombre aléatoire k et on calcule : C1 = a k mod p C2 = M.P k mod p On obtient alors le message chiffré sous forme de C = (C1, C2). Principe du déchiffrement Pour le déchiffrement, on calcule R1 = (C1) s mod p = a sk mod p = P k mod p Le destinataire connaît la clé privée. Ayant P k, on divise C2 par cette valeur : DK(C) = C2/(R1) = M.P k mod p/ P k mod p = M P k est donc considéré comme un masque appliqué sous forme multiplicative à M. Pour décrypter le message, il faudra soit trouver directement un masque jetable, soit trouver la clé privée s, solution de P = a s mod p ce qui est en pratique impossible (la difficulté de calculer le logarithme discret). Sécurité La faiblesse du système d'elgamal est que le message chiffré est de taille grande (soit deux fois plus long que le message original). Il est peu utilisé comme méthode pratique en cryptographie. Cependant, il est très utilisé dans le domaine de signature électronique, souvent avec des groupes plus compliqués que (Z/pZ) *, mais dans lesquels il est néanmoins très compliqué de résoudre le problème du logarithme discret. V La cryptographie hybride La cryptographie hybride a été introduite pour profiter des avantages des deux techniques précédemment citées, en fait cette technique bénéficie de la cryptographie symétrique par sa rapidité de traitement des données et de la cryptographie asymétrique par sa puissance de chiffrement. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 27

46 Chapitre 1 La cryptographie Le principe est assez simple, l échange des clés pour un chiffrement symétrique est effectué grâce à la cryptographie à clé publique, et les données à échanger sont chiffrées en utilisant un algorithme de chiffrement symétrique, cela rend la communication assez rapide. Le principe de PGP PGP (Pretty Good Privacy) est un système de cryptographie hybride, utilisant une combinaison des fonctionnalités de la cryptographie symétrique (rapidité du chiffrement) et de la cryptographie à clé publique (sécurité de l'échange de clés) [ZIM 91]. PGP a été mis au point en 1991 par l'informaticien americain Philip Zimmermann, il a été très mal accueilli par le gouvernement américain [ZIM 91]. D'une part, le PGP utilise l'algorithme RSA, qui était breveté à l'époque aux Etats-Unis. D'autre part, le PGP avait la réputation d'être le logiciel libre de cryptographie asymétrique le plus sûr au monde qui peut même résister aux assauts de la plus puissante des agences de renseignements du monde, ceci a poussé la NSA (national security agency) à tout tenter afin d'empêcher la diffusion du PGP. Il fonctionne comme suit : Les données sont d abord compressées ce qui permet de réduire le temps de transmission des données, et d améliorer également la sécurité cryptographique. L'opération de chiffrement se déroule en deux étapes : - Chiffrement du message : PGP génère une clé secrète (de session) générée aléatoirement qui ne sera utilisée qu une seule fois et qui va servir à chiffrer le message. - Chiffrement de la clé de session : La clé de session est chiffrée au moyen de la clé RSA publique du destinataire. Ensuite, la clé de session ainsi que le message crypté sont envoyés au destinataire. L'opération de déchiffrement se fait également en deux étapes : - Déchiffrement de la clé de session : Le destinataire déchiffre la clé secrète en utilisant sa clé privée RSA. - Déchiffrement des données : Le destinataire déchiffre les données avec la clé secrète précédemment obtenue. VI Cryptanalyse La cryptanalyse est tout simplement la science qui consiste à rendre clair un texte crypté sans posséder la clé de chiffrement. Ce domaine est apparu en même temps que la cryptographie. En effet, dès que des hommes ont voulu coder des messages, d autres ont voulu découvrir ce qu il y était caché. De là est née la guerre entre codeurs de messages et casseurs de codes. La sécurité d'un système cryptographique ne repose pas sur l ignorance de l algorithme de chiffrement utilisé mais sur la puissance du principe utilisé. Plusieurs méthodes de cryptanalyse existent, chacune appropriée pour casser un algorithme spécifique [NAY09]. Une attaque est généralement caractérisée par les données qu'elle nécessite. On distingue, les différents types d'attaques en fonction des données supposées connues par les cryptanalyste : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 28

47 Chapitre 1 La cryptographie 1. L attaque à texte chiffré seulement : le cryptanalyste a connaissance de un ou plusieurs textes chiffrés avec le même algorithme. Il peut faire des hypothèses sur les messages en clair qu'il ne connait pas. 2. L attaque à texte clair connu : le cryptanalyste possède plusieurs textes chiffrés ainsi que les textes clairs correspondants. La cryptanalyse linéaire fait partie de cette catégorie. 3. L attaque à texte clair choisi : le cryptanalyste a accès à des textes chiffrés et aux textes clairs correspondants, en plus il peut choisir les textes en clair à chiffrer. Cette attaque est plus efficace que les deux attaques précédentes car le cryptanalyste peut choisir des textes en clair typiques qui donneront plus d'informations sur la clé. La cryptanalyse différentielle est un exemple de ce type d attaque. 4. L attaque à texte chiffré choisi : Le cryptanalyste peut choisir différents textes chiffrés, il essaie d obtenir des informations lui permettant de déchiffrer d autres messages, sa tâche est de retrouver la clé. 5. L attaque par force brute : Le cryptanalyste essaie toutes les combinaisons possibles des clés jusqu'à l'obtention du texte clair. C'est la seule méthode pour récupérer la clé dans le cas des algorithmes les plus modernes et encore résistants (comme AES, Triple DES, Blowfish). En dépit de son coût très couteux en termes de temps de calcul et de mémoire à cause de la recherche exhaustive. 6. Attaque à l aide de l analyse statistique : Le cryptanalyste possède la fréquence des lettres employées dans un message chiffré (fréquences des lettres ou des séquences de lettres), voir les statistiques d'utilisation des lettres dans le tableau ci-dessous. Cette méthode est fréquemment utilisée pour décoder des messages chiffrés par substitution (par exemple le chiffre de César). On a donc l ordre suivant Figure 12 : Fréquence d apparition des caractères Tableau 16 : Ordre de fréquence d apparition des caractères. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 29

48 Chapitre 1 La cryptographie VI.1 Cryptanalyse linéaire La cryptanalyse linéaire, due à Mitsuru Matsui, est une attaque à textes clairs connus qui cherche des relations linéaires entre des entrées et des sorties [MAT96]. Cette technique s'applique aux réseaux de permutations-substitutions (SPN). Elle date de 1993 et s'avère être l'attaque la plus sûre sur le standard DES (Data Encryption Standard) [BIH 93]. Dans ce type d attaque le cryptanalyste doit disposer d'un grand nombre de couples (X,Y) de textes clairs/textes chiffrés. Xj1 + Xj2+ +Yj1 + Yj2 + = KK1 + KK2+ Il tente alors de faire une approximation linéaire entre certains bits de l'entrée X, de la sortie Y et de la clé K (non aléatoire). Une telle relation serait vérifiée avec une probabilité égale à 1/2, Si les bits d'entrée et de sortie étaient des variables aléatoires indépendantes. Plusieurs algorithmes (comme DES, LOKI, ou une version simplifiée de Serpent) ont été cryptanalysés à l aide de l attaque linéaire, cependant ce type d attaque reste inapplicable dans le cas des algorithmes les plus récents (comme IDEA, triple-des, AES (Rijndael), et bien d'autres encore), La complexité de l'attaque est dans ces cas largement supérieure à celle d'une recherche exhaustive. VI.1 La cryptanalyse différentielle La cryptanalyse différentielle est une analyse statistique des changements dans la structure de la méthode de chiffrement après avoir légèrement modifié les entrées [OHT93], elle peut être appliquée aux algorithmes de chiffrement itératif par blocs, et également aux fonctions de hachage. Cette attaque date de 1990 (présentée à la conférencecrypto 90). Elle est due à Eli Biham et Adi Shamir. Elle utilise une attaque à texte en clair choisi et cherche la manière dont les différences entre les données en entrée affectent les différences de leurs sorties. Elle finit soit par trouver la clé secrète, soit par réduire le nombre de clés possibles pour pouvoir mener une attaque exhaustive plus rapide. Dans le cas des systèmes de chiffrement par bloc elle exploite la mauvaise propagation des différences à l intérieur du système de chiffrement. La procédure de la cryptanalyse repose sur des couples de textes clairs X et X présentant une différence X fixée. Les différences peuvent être définies de différentes manières, en générale la Fonction OU exclusif bit à bit est la plus utilisée. Les différences dans les textes chiffrés sont nommées des différentielles. Leurs propriétés statistiques dépendent de la nature des boîtes de substitutions utilisées dans l'algorithme de chiffrement [KJJ98]. Afin d'en extraire des motifs pouvant indiquer un biais, le cryptanalyste calcule pour chaque boîte de substitution S, une paire de différentielles ( X, Y) avec : Y= S(X) S(X X) = la différence en sortie Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 30

49 Chapitre 2 LES ALGORITHMES EVOLUTIONNISTES Sommaire I Introduction II L optimisation combinatoire III Les méthodes Métaheuristiques IV Les Algorithmes Evolutionnaire V Les algorithmes génétiques V.1 Les éléments des algorithmes génétiques V.2 Principes généraux des algorithmes génétiques V.3 Codage V.4 La sélection V.5 Les opérateurs d un algorithme génétique V.6 Critères d arrêt Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 32

50 Chapitre 2 Les algorithmes évolutionnistes I. Introduction Les métaheuristiques constituent une famille d algorithmes d optimisation qui ont pour objectif de résoudre des classes générales de problèmes mathématiques en combinant des procédures de recherche pour trouver rapidement la meilleure solution. II. Optimisation combinatoire En mathématique, l'optimisation est une branche qui cherche à analyser et à résoudre analytiquement ou numériquement les problèmes qui consistent à déterminer le meilleur élément (optimum), avec ou sans contraintes. En théorie, un problème d'optimisation combinatoire peut être défini par l ensemble de ses instances. En pratique, le problème se réduit à résoudre mathématiquement l une de ces instances, par une méthode algorithmique [GOL89]. A Toute instance du problème est associé un ensemble de solutions S, un sous-ensemble X de S définissant les solutions réalisables, ainsi qu une fonction objective f qui assigne à chaque solution s X le nombre f(s). La résolution d un problème d optimisation consiste alors à chercher une solution s* X qui optimise la valeur de la fonction objective f. On essaye de trouver donc s* X tel que f(s*) f(s) pour tout s X. La solution s* est l optimum globale du problème (solution optimale). III. Les méthodes Métaheuristiques Les métaheuristiques forment une classe de méthodes qui génèrent de bonnes solutions dans un temps raisonnable à des problèmes combinatoires (réputés difficiles) pour lesquels les méthodes classiques ne permettent pas de les résoudre. Plusieurs métaheuristiques existent, de la simple recherche locale à des algorithmes plus complexes de recherche globale. Ces méthodes peuvent être partagées en deux catégories. Celles qui permettent de déterminer un minimum local, et celles qui s'efforcent de déterminer un optimum global [HER03]. Les méthodes de recherche locale, commencent par une solution initiale et, par des procédés successifs, génèrent des solutions de coûts croissants pour un problème de maximisation. L algorithme s arrête lorsque la solution courante ne peut plus s améliorer ou le nombre maximal d itérations est atteint. Dans la littérature de nombreuses méthodes locales existent : on trouve parmi elle la méthode de la descente, le recuit simulé, la recherche Tabou, etc. Contrairement à la première catégorie des métaheuristiques, les méthodes globales visent à atteindre un ou plusieurs optima globaux [HW03]. Ces méthodes sont aussi appelées des méthodes à population. Dans la littérature de nombreuses méthodes globales existent. On retrouve parmi elles les algorithmes génétiques, les algorithmes à évolution différentielle, la recherche dispersée, etc. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 32

51 Chapitre 2 Les algorithmes évolutionnistes Figure 13 : Une classification des métaheuristiques L hybridation consiste à combiner des algorithmes à solution exacte avec des algorithmes à solution approchée, en essayant de tirer les points forts de chaque approche afin d améliorer la qualité de l algorithme. IV. Les Algorithmes Evolutionnaires Les algorithmes évolutionnaires font partie de l Intelligence Artificielle (IA) et de la recherche opérationnelle (R.O), ils reposent sur l idée de la sélection naturelle élaborée par Charles Darwin.En s appuyant directement sur des similitudes avec les phénomènes biologiques, ces algorithmes représentent une sorte d'évolution artificielle identique à l'évolution naturelle. Le vocabulaire utilisé dans les AE est inspiré de celui de la génétique et de la théorie de l évolution [MÜH 93]. En effet, nous trouvons des mots d individus (solutions potentielles), de population, de gènes (variables), de chromosomes, d opérateurs génétiques, et ainsi de suite. Après avoir initialisé une première population d'individus. On calcule pour chaque individu le résultat d'une fonction d'évaluation mesurant le degré de leur adaptation. L étape de sélection va permettre de désigner les individus qui participeront à la reproduction de nouvelles générations. Les individus sélectionnés vont être reproduits en utilisant les opérateurs génétiques (croisements et mutations), donnant un ensemble d enfants partageant des informations de leurs ascendants. Enfin, on choisit les meilleurs individus déterminés parmi l'ensemble parents et enfants, pour former la génération suivante. L algorithme devrait tendre, de plus en plus, vers la meilleure solution. L algorithme s arrête après avoir atteint un critère d arrêt. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 33

52 Chapitre 2 Les algorithmes évolutionnistes Figure 14 : Organigramme d'un algorithme évolutionnaire Depuis leurs débuts dans les années 60 ils sont un sujet de recherche important dans le cadre de l optimisation combinatoire. Plusieurs branches existent, distinguées notamment par le codage qu ils utilisent [BAC96]. Généralement, on trouve quatre types d algorithmes évolutionnaires : les Algorithmes Génétiques (AG), les Stratégies d Évolution (SE), la Programmation Évolutionnaire (PE), et la Programmation Génétique (PG). Figure 15 : Les différents types d algorithmes évolutionnaires (EA). Le caractère général de leur formulation a permis de résoudre des problèmes dans plusieurs domaines d application, là où les méthodes mathématiques classiques sont inefficaces. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 34

53 Chapitre 2 Les algorithmes évolutionnistes V Les algorithmes génétiques Les algorithmes génétiques sont les plus populaires des algorithmes évolutionnaires. Leur but est d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il n'existe pas de méthode exacte pour le résoudre en un temps raisonnable. Le procédé de recherche s'effectue en appliquant de manière itérative à une population de solutions potentielles des opérations génétiques, et des opérations de sélection naturelle orientées vers les individus les plus forts. Grâce à ce processus, la population de solutions potentielles s améliore jusqu'à ce qu'un critère d'arrêt soit atteint [GOL89]. Les domaines d applications des algorithmes génétiques sont multiples : on trouve parmi eux l optimisation combinatoire [HER03], traitement d image [SEN03], cryptographie [OMA06], les réseaux de neurones [HAN92], etc. V.1 Les éléments des algorithmes génétiques Les algorithmes génétiques sont inspirés de la génétique classique et utilisent le même vocabulaire. De manière générale, un algorithme génétique fait évoluer un ensemble de solutions candidates, appelé une «population d individus». Un «individu» n est autre qu une solution possible du problème à résoudre. Chaque individu de cette population se voit attribuer une fonction qui retourne une valeur réelle appelée fonction d adaptation (fitness) qui permet de mesurer sa qualité ; cette fonction représente la fonction objectif à optimiser. Puis, les meilleurs individus de cette population sont sélectionnés, subissent les opérateurs génétiques (des croisements et des mutations) et une nouvelle population de solutions est produite représentant la génération suivante [BÄC96]. Ce processus se répète, population après population, jusqu à ce qu un critère d arrêt soit atteint. Avant de passer au détail du fonctionnement d un algorithme génétique, nous présentons d abord quelques vocabulaires relatifs à la génétique. - Gène Un gène est une suite de symboles qui représente la valeur d une variable. Dans le cas de l algorithme canonique, il correspond à un seul symbole (0 ou 1 dans le cas binaire). - Chromosome Un chromosome est constitué d une suite de gènes qui peuvent prendre des valeurs qui sont prises à partir d un alphabet. - Individu Un individu est l une des solutions potentielles du problème. Dans la majorité des cas, un individu sera représenté par un seul chromosome. - Population Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 35

54 Chapitre 2 Les algorithmes évolutionnistes Une population est l ensemble des solutions potentielles qu utilise l algorithme génétique. - La fitness ou fonction d évaluation Une fonction d'évaluation permet de calculer le coût d'une solution de l'espace de recherche. Pour chaque chromosome, elle donne une valeur numérique, qui est supposée relative à la performance de l'individu en tant que solution. V.2 Principes généraux des algorithmes génétiques L Algorithme génétique débute par la génération d une population initiale de manière aléatoire. Ensuite, à chaque génération, un certain nombre d'individus sont sélectionnés, afin de produire une population intermédiaire selon le principe de la survie du plus performant [GOL89]. Cette sélection est faite à partir d'une fonction d'évaluation appliquée à tous les individus qui composent cette première population. Puis, les opérateurs génétiques (croisement et mutation) sont appliqués aux individus sélectionnés et une population nouvelle est créée [BEA 93]. De cette manière de nouvelles populations d individus pourraient être créées, chaque génération représentant une itération jusqu'à ce qu'un critère d'arrêt soit atteint. On trouve par exemple le nombre maximal de générations que l on désire effectuer comme critère d arrêt. V.3 Codage Le codage des données est l un des éléments les plus importants pour les algorithmes génétiques, si ce n'est le plus important. C est une modélisation d une solution d un problème quelconque en un chromosome (la façon dont sont codées les solutions). Le choix du codage est important, et il est souvent difficile, le meilleur choix est celui qui semble le plus naturel selon le problème à traiter [HOL75]. Il y a en général trois principaux types de codage utilisables : V.3.1 Codage binaire Le Codage binaire est sûrement le plus utilisé vu les avantages qu il présente. Son principe consiste à encoder la solution selon une chaîne de bits (les valeurs 0 ou 1). Bien que ce type de codage a résolu de nombreux problèmes, mais il s est avéré moins bon pour certains problèmes d optimisation numérique V.3.2 Codage réel Tableau 17 : Codage binaire d un chromosome. Une autre façon de coder les chromosomes d'un algorithme génétique est donc le codage à l'aide de plusieurs caractères par opposition au premier type de codage (les bits). Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 36

55 Chapitre 2 Les algorithmes évolutionnistes Le codage réel permet une grande marge de valeurs possibles des paramètres, c est pour cette raison qu il est préférable de coder l AG en nombres réels. Ce type de codage est plus proche à l environnement des problèmes à résoudre V.3.3 Codage sous forme d'arbre Tableau 18 : Codage réel d un chromosome Le codage sous forme d'arbre consiste à représenter les individus sous forme d'arbre, ce codage utilise une structure arborescente avec une racine qui peut donner un ou plusieurs fils. Généralement ce type de codage est utilisé dans de nombreux cas avancés, par exemple il peut être utilisé dans les problèmes où les solutions n'ont pas une taille finie [HOL75]. Figure 16 : Codage sous forme d'arbre de deux individus V.4 La sélection La sélection consiste à identifier les meilleurs individus de la population courante P qui seront acceptés à se reproduire dans la nouvelle population P' et vont servir de parents. Comme dans la sélection naturelle, un caractère stochastique est introduit dans la probabilité de sélection qui est souvent estimée à l aide de la fonction d évaluation [HOL 75]. On trouve essentiellement quatre types de méthodes de sélection différentes : - La Sélection par roulette (Wheel) - La méthode "élitiste" - La Sélection par rang - La sélection par tournois - Sélection par roulette (Wheel) Elle permet d associer à chaque individu Xi une probabilité d apparition p(xi) représentée par un secteur d'une roue dont l'angle est relatif à sa fonction d évaluation. On tire alors un nombre aléatoire de distribution uniforme entre 0 et 1, puis on regarde quel est le secteur sélectionné, et on choisit l individu correspondant. Avec cette technique, les meilleurs individus Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 37

56 Chapitre 2 Les algorithmes évolutionnistes ont plus de chance d'être sélectionnés, donc plus les individus sont adaptés au problème, plus ils ont des chances d'être choisis [JAD05]. Figure 17 : Sélection par roulette On affecte à chaque individu Xi une probabilité d apparition p(xi) : F(Xi) p(xi) = q k=1 F(Xk) La sélection d un individu se fait de la manière suivante. i Soit qi = la k=1 p(xk) probabilité d apparition cumulée d un individu Xi et soit r un nombre aléatoire compris entre 0 et 1, l individu retenu est : { X1 si q1 r Ou Xi si qi 1 r qi pour 2 i q q étant le nombre d individus dans la population. Cette opération est répétée q fois. Avec ce principe, un individu fort peut être sélectionné plusieurs fois, donc plus les individus sont adaptés au problème, plus ils ont de chances d'être choisis. - Sélection par élitisme Cette méthode de sélection permet de mettre en avant les meilleurs individus de la population. Les individus de la population sont triés de manière décroissante selon leur évaluation et les meilleurs parmi eux qui sont sélectionnés [ZHO05]. Cette méthode à l'avantage de permettre une convergence plus rapide des solutions, elle améliore considérablement les algorithmes génétiques car seuls les meilleurs individus qui vont participer à l'amélioration de notre population. - Sélection par rang Ce type de sélection choisit toujours les individus ayant les meilleurs scores d'adaptation, le hasard n'entre donc pas dans le processus de sélection. En fait, les individus d une population Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 38

57 Chapitre 2 Les algorithmes évolutionnistes sont ordonnés dans une liste selon l ordre croissant de leur fitness, ensuite la sélection est proportionnelle à leur rang dans la liste de la population. Généralement cette méthode est utilisée pour une fonction d évaluation dont les valeurs sont très proches. La sélection par rang est similaire à la sélection par roulette, mais les proportions sont en relation avec le rang plutôt qu'avec la valeur de l'évaluation [ZHO05]. - Sélection par tournoi La méthode de sélection par tournoi utilise la sélection proportionnelle sur des paires d'individus, puis choisit parmi ces paires le meilleur individu selon le score d'adaptation. On fixe un entier T qui va représenter la taille du tournoi, puis on sélectionne aléatoirement T individus dans la population et on les fait entrer dans le processus de sélection : l individu le plus performant est retenu. Cette opération est répétée N fois, où N est la taille de la population [JAD05]. Les méthodes de sélection ont pour objectifs de déterminer quels individus vont passer par le processus de croisement. Reste maintenant à définir comment ce processus est appliqué. V.5 Les opérateurs d un algorithme génétique Deux opérateurs caractérisent les algorithmes génétiques, ils permettent à la population d évoluer, par la création de nouveaux individus construits à l aide des anciens individus. Ces opérateurs sont : le croisement et la mutation. V.5.1 Le croisement Le croisement utilisé par les algorithmes génétiques est la transposition du mécanisme qui permet la production de nouveaux individus qui héritent partiellement des caractéristiques des parents : on choisit deux individus et on les combine pour en générer deux autres. C est l'opérateur de l'algorithme génétique qui permet généralement de converger vers l'optimum d'une fonction en combinant les gènes [DEB00]. Premièrement, les individus sélectionnés sont répartis de manière aléatoire en couples de parents. Ensuite, chaque couple de parents subit une opération de recombinaison pour reproduire un ou deux enfants. La figure 18 représente un croisement à deux points, dans le cas où les points de croisement tomberaient après les troisièmes et cinquième bits : les parents P1 et P2 produisent alors les enfants F1 et F2. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 39

58 Chapitre 2 Les algorithmes évolutionnistes V.5.2 La mutation Figure 18 : Opérateur de croisement à deux points Nous définissons une mutation comme étant l inversion d un bit dans un chromosome. C est une modification aléatoire de la valeur d un gène qui se produit avec une probabilité fixée [DEB00]. La mutation se fait comme suit : - Soit Pm la probabilité de mutation, r [0,1] un nombre tiré au hasard - Si r < Pm alors le bit correspondant sera inversé. La figure 19 montre que le processus de mutation s est produit dans le quatrième bit. Figure 19 : Opérateur de mutation Les mutations agissent comme un bruit et permettent éventuellement l évolution de la population. V.6 Critères d arrêt Plusieurs critères d arrêt de l algorithme génétique sont possibles. L algorithme peut être arrêté lorsque la population n évolue plus suffisamment rapidement. On peut aussi arrêter l algorithme après un nombre d itérations fixé au début, ce critère peut être coûteux en termes de temps d exécution si le nombre d individus à traiter dans chaque population est important. On peut aussi envisager d arrêter l algorithme lorsque la fonction d adaptation d un individu dépasse un seuil fixé au départ. Les critères d arrêt décrits précédemment peuvent également être combinés Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 40

59 Chapitre 3 CHIFFREMENT EVOLUTIONNISTE Sommaire I Système de chiffrement SEC I.1 Introduction I.2 Description du système de chiffrement SEC I.2.1 Formalisation du problème I.2.2 Système de chiffrement I.2.3 Système de déchiffrement I.3 Extension de SEC a des blocs binaires I.3.1 Formalisation du problème I.3.2 Système de chiffrement I.3.3 Système de déchiffrement I.4 Conclusion Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 41

60 Chapitre 3 Chiffrement évolutionniste I Système de chiffrement SEC I.1 Introduction Une approche nouvelle est apparue dans la conception des algorithmes de chiffrement, il s agit de l application des algorithmes évolutionnaires AE dans la phase principale de chiffrement. Ces algorithmes évolutionnaires, par leur aspect aléatoire et leurs efficacités dans la résolution de plusieurs types de problème (notamment ceux liés à l optimisation combinatoire) ont aussi prouvé leurs performances dans le domaine de la cryptographie [OMA05]. Cette conception est basée sur l enrichissement de l espace de recherche et l application d un modèle bien défini durant le processus évolutionnaire. Dans ce chapitre nous présentons une description détaillée de l algorithme de chiffrement SEC et l extension de ce dernier à des blocs binaires. I.2 Description du système de chiffrement SEC Le SEC est un algorithme de chiffrement évolutionnaire. Il commence par un préchiffrement utilisant un ensemble d opérations (substitution, permutation et chiffrement affiné), Il encode un texte constitué à partir des caractères du code ASCII. Ensuite il applique le processus évolutionnaire (évaluation, sélection, opérateur de croisement et de mutation) dans la phase principale de chiffrement ; pour cela il construit les listes contenant les différentes positions des caractères du texte en clair, puis il applique des transformations sur l ordre de ces listes pour obtenir un désordre maximal tout en gardant le contenu des listes. À la fin de cet algorithme une clé dite «clé génétique» est générée, va servir pour le chiffrement et le déchiffrement [OMA05]. Le déchiffrement se déroule en deux étapes : Dans la première étape, les caractères vont retrouver leurs listes de positions correspondantes dans le message en clair grâce à la clé génétique. Dans la seconde étape, le message initial est obtenu en utilisant les fonctions inverses de celles utilisées dans le préchiffrement. I.2.1 Formalisation du problème Soient c1, c2,, cm les différents caractères du message à chiffrer M. Désignons par Li (1 i m) la liste des différentes positions du caractère ci dans M avant le chiffrement et par card(li) le nombre des occurrences de ci dans M. Remarque : Li Lj = ø si i j, i,j ϵ {1, 2,, m}. L1, L2,, Lm est une partition de l ensemble {1, 2,, m}. Le message M peut être représenté par le vecteur ci-dessous : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 42

61 Chapitre 3 Chiffrement évolutionniste Le système de chiffrement SEC consiste à modifier les fréquences d apparition au maximum des caractères dans le message M et d effectuer le plus de désordre dans leurs positions. Pour ce faire, il change de manière itérative la répartition des listes sur les différents caractères de M. c'est-à-dire le SEC cherche à 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 de valeur maximale. Il s agit d un problème d optimisation combinatoire, dans ce genre de problème les algorithmes évolutionnistes sont très efficaces, donc ces algorithmes (notamment ceux appliqués aux problèmes de permutations) vont être utilisés dans la phase principale de chiffrement [OMA05]. I.2.2 Système de chiffrement Le système de chiffrement se déroule précisément en 4 étapes : Codage Un individu (ou chromosome) est un vecteur de taille m. Les gènes sont les listes Lpi (1 i m). Le i eme gène Lpi contient les nouvelles positions que prendra le caractère ci. Etape 1 : Création de la population initiale Soit P0 la population initiale composée de q individus : X1, X2,, Xq. On désigne par Original-Ch le chromosome dont les gènes sont les listes L1, L2,, Lm qui représentent le message clair. On applique à Original-Ch, des transformations pour modifier les fréquences d apparition des caractères. Pour cela on choisit aléatoirement q permutations de {1,2,,m} et on les applique 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. La fonction d évaluation F est définie par : m F(Xj) = i=1 card(lji) card(li) Etape 3 : Sélection des meilleurs individus Dans l étape de sélection la méthode de la roulette est utilisée pour retenir les individus les plus forts, cette méthode est décrite dans la séction II.2.1 du chapitre 2. Une fonction de contrôle est introduite afin d éliminer les individus faibles (pour lesquels seulement une minorité de gènes ont changé de valeurs par rapport au chromosome initial) ce qui va permettre aux individus forts d être sélectionnés avec une probabilité très élevée. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 43

62 Chapitre 3 Chiffrement évolutionniste Etape 4 : Applications des opérateurs génétiques On applique les opérateurs génétiques adaptés au problème de permutations avec contraintes : - Croisement MPX (Maximal Preservative X) Cet opérateur est appliqué aux individus issus de l étape de sélection avec un taux adapté, de préférence de 60% à 100% selon [CAU 95]. - Mutation de transposition Nous choisissons la mutation qui consiste à permuter aléatoirement deux gènes d un chromosome. Cet opérateur est appliqué aux individus issus du croisement avec un taux bien précis. D après [CAU 95] le meilleur taux est de l ordre de 0.1% à 5%. Placer les nouveaux individus dans une nouvelle population Pi+1. Répéter les étapes 2, 3 et 4 jusqu à un critère d arrêt. - la condition d arrêt : L algorithme s arrête lorsque la population n évolue plus suffisamment rapidement. La fonction F est bornée car 0 F(X) 2*m pour tout individu X. D après des recherches [KHA 88] la valeur de convergence de la fonction d évaluation est garantie, cette valeur est déterminée expérimentalement et proche de Max. Dernière phase de notre algorithme : Soit Final-Ch la solution finale qui est donnée par SEC. À partir d Original-Ch et Final- Ch une clé symétrique (clé- génétique) est construite. Cette clé servira pour le chiffrement en changeant la répartition des listes sur les différents caractères du message M. Figure 20 : Une itération de l algorithme SEC. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 44

63 Chapitre 3 Chiffrement évolutionniste I.2.3 Système de déchiffrement Le déchiffrement du message chiffré M est composé de deux étapes : Etape 1 On désigne 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. En utilisant la clé génétique, les caractères vont retrouver leurs listes de positions correspondantes dans le message en clair. En fait, la clé est une permutation de {1,2,,n} qui peut être représentée par un vecteur noté Clef, de taille m telle que : Clef(1) = p1, Clef(2) = p2,, Clef(i) = pi,, Clef(m) = pm où Le caractère c p1 va être associé à la liste L 1 Le caractère c p2 va être associé à la liste L 2. Le caractère c pm va être associé à la liste L m. Ainsi, on obtient le message M. Etape 2 Le déchiffrement de M se fait en utilisant l inverse des fonctions simples cryptographiques (substitution simple, décalage, chiffrement affine ) dont la clé est secrète et symétrique, après le second déchiffrement on obtient le message M0. I.3 Extension de SEC à des blocs binaires Le chiffrement évolutionniste SEC décrit auparavant peut être appliqué sur n importe quel ensemble d entités (caractères, bloc de caractère, bloc de bits etc...). Le codage adopté par SEC-EX consiste à : convertir le texte T en binaire, choisir aléatoirement un entier k, subdiviser le texte T en bloc B1, B2,..., Bm de même taille k. On construit les listes respectives des positions des différents k-blocs dans le texte. Ensuite, On applique les mêmes étapes utilisées dans SEC, cela permet de changer la distribution des listes des différents blocs Bi de T. Le texte chiffré est obtenu par l association de chaque bloc Bi à une liste L i de Ch-final. Le couple k et les permutations qui transforment Ch-initial vers Ch-final constitue la clé secrète [OMA06]. Le but principal de l application de l extension SEC à des blocs binaires est de modifier au maximum les fréquences d apparition des blocs binaires dans le texte T et d établir le plus de désordre dans leurs positions. I.3.1 Formalisation du problème Soit T le codage binaire du message M : Le message à chiffrer est représenté par les listes qui sont les éléments d'une partition de l'ensemble {1, 2,..., m}. Chaque liste est composée par les différentes positions de chaque bloc binaire. Soient B1, B2,..., Bm les différents blocs de T. Désignons par Li (1 i m) la liste des différentes positions du bloc Bi. On remarque que : Li Lj = ø si i j, i, j {1, 2,..., m}. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 45

64 Chapitre 3 Chiffrement évolutionniste Le message T peut être représenté par le vecteur-dessous : I.3.2 Système de chiffrement (voir chapitre 3 I.2.2). Ce système est la généralisation de SEC : pour k=8, c est exactement le système SEC décrit précédemment. I.3.3 Système de déchiffrement Figure 21 : L opération de chiffrement ESEC Soit T le texte chiffré codé en binaire, et k la première composante de la clé secrète, T sera coupé en blocs B1, B2,.., Bm de même taille k. Grâce à la seconde composante (clé génétique) de la clé secrète, les blocs sont affectés vers leurs listes de positions correspondantes dans le texte en clair [OMA06]. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 46

65 Chapitre 3 Chiffrement évolutionniste Figure 22 : L opération de déchiffrement ESEC. I.4 Conclusion L algorithme de chiffrement évolutionniste fait partie de la classe de chiffrement symétrique. La plupart des opérations utilisées dans le processus évolutionniste sont aléatoires et le codage utilisé permet au système SEC de bénéficier de tous les avantages d'un algorithme évolutionniste ; toutes ces caractéristiques renforce sa sécurisation et rend toute tentative d attaque très difficile ou voir même irréalisable. Le codage proposé par ESEC renforce davantage la résistance du système SEC. En effet, le codage binaire offre un grand nombre possible de suites de caractères différents. Même si l on est confronté à une attaque de type fréquentielle, l approche proposée est fortement sécurisée parce que le texte chiffré contient des caractères qui ne figurent pas dans le texte en clair et par la suite la cryptanalyse par étude de fréquence ne peut pas se baser sur des fréquences erronées. Ces algorithmes génèrent des clés de session pendant le processus de chiffrement, ces clés sont fortement dépendantes du message clair. Dans le SEC par exemple, le message à chiffrer contient au moins 30 caractères différents ce qui nous ramène à une clé de 240 bits. Dans ESEC, la taille de la clé peut augmenter significativement puisque le nombre de caractères traité est largement plus grand par rapport à SEC. Ceci le rend plus résistant contre les attaques exhaustives, mais cela rend le processus de chiffrement plus coûteux en temps de calcul. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 47

66 Chapitre 3 Chiffrement évolutionniste Sommaire II Chiffrement avec équilibrage II.1 Nouveau système de chiffrement II.1.1 Description II.1.2 Chiffrement II.1.3 Déchiffrement II.2 Expérimentations III.3 Conclusion II.2.1 Convergence II.2.2 Configuration II.2.3 Comparaison des fréquences d apparition II.2.4 Temps d'exécution Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 48

67 Chapitre 3 Chiffrement évolutionniste II Chiffrement avec équilibrage II.1 Introduction Le but principal de ce travail est de renforcer la résistance du système de chiffrement «SEC». Pour cela nous avons développé une nouvelle méthode de chiffrement nommée «Équilibrage» pour changer la fréquence d'apparition des caractères du texte en clair. Cette méthode constitue une étape préparatoire pour le chiffrement évolutionniste. Elle consiste à créer un équilibre entre les listes de positions des caractères, de cette façon les fréquences réelles des caractères sont masquées. Une clé supplémentaire secrète est générée à la fin de ce processus que nous nommons «clé d équilibrage» qui va servir au déchiffrement. En combinant cette méthode avec «SEC» le système de chiffrement résultant devient très résistant. Cette section commence par une description du nouveau système de chiffrement en utilisant le processus d équilibrage (BP), suivi par les différentes expériences réalisées sur notre système et achevée par une conclusion. II.2 Nouveau système de chiffrement en utilisant le processus d équilibrage (BP) II.2.1 Description Soit M le message à chiffrer. M est une suite de n caractères. Nous déterminons les positions des différents caractères constituant ce texte et au lieu d'appliquer l'algorithme de chiffrement évolutionnaire sur les listes des positions des caractères du texte clair comme dans [OMA05], nous appliquons d abord le processus d équilibrage aux différents caractères du texte clair. L équilibrage des listes L'objectif de la première partie de notre système est d équilibrer les listes du message à chiffrer. En fait, nous allons équilibrer les listes de petites tailles avec celles de grandes tailles pour obtenir des listes de moyennes tailles. Cela va modifier au maximum les fréquences d apparition des caractères dans le texte et va établir plus de désordre dans leurs positions. Chiffrement évolutionniste La deuxième partie du système de chiffrement consiste à appliquer le système «SEC» que nous avons vu précédemment sur les listes après le processus d équilibrage. De cette façon, on obtient un message surchiffré avec deux clés différentes. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 49

68 Chapitre 3 Chiffrement évolutionniste II.2.2 Chiffrement Figure 23 : Schéma de notre système de chiffrement. - Première partie : l équilibrage Le message M avant l équilibrage peut être représenté par le vecteur ci-dessous : ( t1, L1 ) ( t2, L2 ) ( tn, Ln ) Où les listes L1, L2,, Ln constituent une partition de l ensemble {1, 2,, n} et sont triées en fonction de leurs tailles dans l ordre décroissant. Nous les partageons en trois sousensembles 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. Le processus d équilibrage est récursif et décrit par l algorithme suivant : 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 en bit. - Tant que l équilibrage des listes n amène pas à une clé de taille souhaitable : L équilibrage sera appliqué récursivement sur EL U Ep comme suit : Désignons d abord les listes qui vont être équilibrées. Ces listes se composent de Lp1, LL1,, Lpf, LLf tel 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 LL1, LL2,, Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 50

69 Chapitre 3 Chiffrement évolutionniste LLf prises dans EL 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 Lpr U LLr Jusqu à atteindre la taille de la clé désirée Sk. Si taille de E Sk alors r r+1 f r Par la suite on va équilibrer la petite liste Ep avec la plus grande liste de EL. Après le processus d'équilibrage, ces deux listes seront supprimées de l ensemble EP et EL. Le processus d'équilibrage est à nouveau appliqué à la petite liste de Ep avec la plus grande liste de EL, qui sera aussi supprimée, et ainsi de suite... L équilibrage des listes ci-dessus est comme suit : - Prenons au hasard une liste lm dans Em et calculons son cardinal Nm = card (Lm) - Soit Lp la liste à équilibrer avec LL Supposons que LL = {p1, p2,, pm}, Prenons au hasard un indice r dans {1,2,..., m} Soit Np = card (Lp); Tant que card(lp) < Nm. - Mettez pk dans la liste Lp: - Lp pr, r+1 ; - Ajouter le quadruplet : ( [LL] ; [Lp] ;Np ; r ) à la clé d'équilibrage. Répétez le processus d'équilibrage sur : - Ep Ep -{ Lp}. - EL EL-{LL}. Jusqu'à atteindre la taille de la clé désirée Sk. - Si nous désignons par Fo le nombre d équilibrages appliquées alors la clé générée représentative de ces opérations est un ensemble de quadruplet FO fois de la forme : - ([L i l], [L i p], N i p, r i ) Le nouveau texte chiffré Tf sera désigné par le texte suivant : (c f1, L f1 ) (c f2, L f2 ) (c fm, L fm ) Nous présentons les mécanismes intervenant dans le processus d équilibrage par l'organigramme suivant : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 51

70 Chapitre 3 Chiffrement évolutionniste Figure 24 : Organigramme du processus d'équilibrage. - Deuxième partie : application du chiffrement évolutionnaire «SEC» Nous définissons les listes : L1, L2,, Ln des différentes positions des caractères ci, 1 i n du message M après le processus d équilibrage. La deuxième 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 maximal. Nous obtenons ainsi un message chiffre M. Pour plus de détails, nous renvoyons le lecteur au chapitre 3 Section I.2. II.2.3 Déchiffrement Le décryptage se fait en deux étapes : Première étape Evidemment, nous commençons par le déchiffrement de la deuxième partie du système. Représentons le texte chiffre 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 blocs de T et par L 1, L 2,, L m leurs listes respectives de positions dans T. Grace à la clé génétique [OMA06], 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 note Clef, de taille m telle que : Clef(1)=p1, Clef(2)=p2,, Clef(i)=pi,, Clef(m)=pm où Le caractère C p1 sera associé à la liste L 1. Le caractère C p2 sera associé à la liste L 2. Le caractère C pm sera associé à la liste L m. Ainsi, nous obtenons le message M. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 52

71 Chapitre 3 Chiffrement évolutionniste Deuxième étape Grâce à la clé d équilibrage qui est claire et directe, pour chaque élément ([L i l], [L i p], N i p, r i ) de la clé d équilibrage, nous pouvons immédiatement reconstituer les vraies positions des listes Lfi de chaque caractère. Ainsi nous obtenons le message initial M. II.3 Expérimentations Nous avons utilisé notre algorithme pour chiffrer et déchiffrer des fichiers tels que document, image, audio, L'environnement expérimental est le suivant : Processeur : Intel Core i5-2450m (2,50 GHz), 4 Go de RAM ; Système d exploitation : Windows 7 ; Langage de programmation : Java. II.3.1 Convergence Pour illustrer les performances du nouveau système SEC avec le processus d'équilibrage par rapport à l ancien, nous avons testé notre programme sur plusieurs messages avec des tailles différentes. Pour chaque message, nous avons comparé les différences entre les évaluations, qui déterminent la convergence du système. Le tableau suivant indique les résultats : Itération N Convergence de Sec Convergence de Sec avec BP Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 53

72 Chapitre 3 Chiffrement évolutionniste Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 54

73 Chapitre 3 Chiffrement évolutionniste Tableau 19 : Valeurs d évaluations des individus de chaque population dans les deux systèmes. La figure suivante représente un diagramme de différentes valeurs de la fonction d évaluation. Nous pouvons remarquer que le système SEC avec le processus d équilibrage atteint la convergence totale après seulement 49 itérations. Cependant, sans le processus d'équilibrage, le système SEC s'arrête à l itération 91 ème avec une valeur optimale de 36. Figure 25 : Comparaison de la convergence du système SEC avec et sans processus d équilibrage. La convergence rapide de la fonction d évaluation du SEC avec BP par rapport à SEC sans BP se traduit par le fait que le processus évolutionnaire est appliqué sur des listes de tailles voisines issues du processus d équilibrage, ce qui permettra au système SEC de trouver la solution optimale en moins d opérations. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 55

74 Chapitre 3 Chiffrement évolutionniste II.3.2 Configuration Nous allons tester notre algorithme sur plusieurs textes et nous allons enregistrer les résultats sur le nombre d'itérations nécessaires pour la convergence du système. Le tableau suivant montre les résultats obtenus : Tableau 20 : Tableau récapitulatif des résultats. Nous constatons que les meilleures valeurs de convergence sont atteintes pour une population de taille égale à 20 et dont la taille des blocs binaires k = 5, k = 6. On trouve aussi dans le cas où les tailles de population égalent à 30 ou 40 ont donné de bons résultats, cependant on constate dans ces cas une légère augmentation dans le nombre d itération nécessaire pour la convergence du système, ce qui peut se traduire par un coût supplémentaire en termes de temps d exécution. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 56

75 Chapitre 3 Chiffrement évolutionniste II.3.3 Comparaison des fréquences d apparition La comparaison des fréquences d apparition est le principal indicateur de la performance du nouveau système. Le tableau et la figure ci-dessous compare les fréquences d apparitions des différents caractères dans le texte clair, le texte chiffré en utilisant le processus de BP et le texte chiffré sans BP. Rang Nombre d'occurrences des blocs binaires dans le texte clair Nombre d'occurrences des blocs binaires dans le texte chiffré sans BP Nombre d'occurrences des blocs binaires dans le texte chiffré avec BP Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 57

76 Chapitre 3 Chiffrement évolutionniste Tableau 21 : L'analyse de la fréquence dans le nouveau et l'ancien système SEC. On remarque que le caractère le plus fréquent dans le texte clair est aussi le plus fréquent dans le texte chiffré sans BP. On constate selon cette comparaison que les changements de fréquences qui apparaissent dans le système en utilisant BP sont maintenant évidents. Figure 26 : Représentation graphique des fréquences d'apparition des différents caractères dans le texte clair, le texte chiffré en utilisant le procédé BP et le texte chiffré sans BP. II.3.4 Temps d'exécution Nous allons comparer dans cette expérimentation le temps d'exécution de notre système de chiffrement SEC-BP avec celui du système de chiffrement SEC. Le tableau et la figure cidessous représentent la variation du temps d'exécution en fonction du nombre de tests effectués et en fonction de la taille des textes en clair utilisés. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 58

77 Chapitre 3 Chiffrement évolutionniste Tableau 22 : Comparaison entre le temps d'exécution de SEC et le temps d'exécution de SEC-BP en (ms) Figure 27 : Représentation graphique de comparaison entre le temps d'exécution de SEC et le temps d'exécution de SEC-BP Nous pouvons noter une légère augmentation au niveau du temps d'exécution du système SEC-BP par rapport à SEC, ceci se traduit par les modifications apportées au système SEC en appliquant les différentes opérations qui se déroulent dans le processus d équilibrage. II.4 Conclusion Nous avons pu réaliser dans ce travail un système de cryptage basé sur l'équilibrage des listes initiales du système SEC. Grâce à la «clé d équilibrage» générée durant notre algorithme, ce dernier devient plus résistant face aux attaques par recherche exhaustive. D'après les résultats des fréquences d apparition des caractères obtenus, nous avons prouvé la robustesse du nouveau système contre l attaque par l'analyse des fréquences. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 59

78 Chapitre 3 Chiffrement évolutionniste Sommaire III chiffrement avec fusion binaire III.1 Description du système de chiffrement III.1.1 Description III.1.2 Chiffrement III.1.3 Déchiffrement III.2 Expérimentations III.2.1 Configuration III.2.2 La longueur de clé III.2.3 Temps d'exécution III.2.4 Comparaison des fréquences d apparition III.3 Conclusion Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 60

79 Chapitre 3 Chiffrement évolutionniste III chiffrement avec fusion binaire III.1 Introduction Etant donné que la sécurité des systèmes de chiffrement ESEC [MOU06] et [OMA06] a été prouvée, une combinaison des deux ne peut qu augmenter davantage leur sécurité : c est l objectif du travail présenté dans cette section. En combinant les deux systèmes en question nous aboutissons à un nouveau système que nous avons nommé «Processus de Fusion Binaire», ce système consiste à modifier au maximum les fréquences d apparitions des caractères en utilisant des opérations bien définies à caractère aléatoire. Nous commençons d abord par appliquer la fusion sur les blocs binaires ensuite nous appliquons E-SEC [OMA06]. Ce processus génère une clé supplémentaire secrète que nous appelons «la clé de fusion binaire», et qui va servir pour l opération de déchiffrement. III.2 Système de chiffrement III.2.1 Description Nous codons le texte à chiffrer en binaire et nous le découpons en blocs de même taille. Puis, nous déterminons les listes des positions des différents blocs constituant ce texte en clair et au lieu d'appliquer l'algorithme de chiffrement évolutionnaire sur ces listes comme dans [OMA06], nous appliquons d abord le processus de fusion binaire. La fusion des listes La première étape consiste à fusionner (selon les contraintes) les listes de positions des blocs de petites et moyennes tailles et désigne de nouveaux blocs tirés au hasard pour les associer. Cela permet d avoir des listes de tailles très voisines dont il est encore plus difficile de faire la cryptanalyse par l étude des fréquences de caractères. Cette fusion est en fait un surchiffrement de SEC. Chiffrement La deuxième partie du système de chiffrement consiste à appliquer l '«extension SEC à des blocs binaires» que nous avons vu précédemment. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 61

80 Chapitre 3 Chiffrement évolutionniste Figure 28 Schéma de chiffrement SEC avec le processus de fusion binaire. III.2.2 Chiffrement - Première partie : la fusion binaire Soit T le texte en binaire à chiffrer, T est une suite de n blocs désignes par B1, B2,, Bn. Désignons par Li (1 i m) la liste des différentes positions du bloc Bi dans T avant le chiffrement et par card(li) le nombre des occurrences de Bi dans T. Remarque : Li Lj est vide, i,j ϵ [1,k]. L1, L2,, Ln est une partition de l ensemble {1, 2,, n}. 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. Le processus de fusion est récursif et décrit par l algorithme suivant : 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. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 62

81 Chapitre 3 Chiffrement évolutionniste - 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. Fusionner les listes ci-dessus revient à : Remplacer les blocs Bp1, Bp2,, Bpf correspondants à ces listes par un bloc Bf tiré au hasard et ne représentant aucune autre liste. Ajouter à la clé de fusion le triplet : ([Bp1, Bp2,, Bpf ] ; [Lp1, Lp2,, Lpf] ; Bf) Ep Ep-{ Lp1, Lp2,..., Lpf }. Répéter le processus de la fusion sur Ep jusqu à atteindre la taille de la clé désirée. - Sinon la fusion sera appliquée récursivement sur Em U Ep comme suit : 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 Lpr U Lmr Si taille de E Sk alors r r+1 f r Fusionner les listes ci-dessus revient à : remplacer les blocs Bp1, Bm1, Bp2, Bm2,, Bpf, Bmf correspondants à ces listes par un seul bloc Bf tire au hasard et qui n est pas déjà pris. Ajouter à la clé de fusion le triplet : ([Bp1, Bm1, Bp2, Bm2,, Bpf, Bmf] ; [Lp1, Lm1,, Lpf, Lmf] ; Bf) Em Em - { Lm1..., Lmf } ; Ep Ep - { Lp1..., Lpf } Répéter le processus de la fusion sur : Ep et Em Jusqu à atteindre la taille de la clé désirée Sk. - Si nous désignons par Fo le nombre de fusions appliquées, alors La clé générée représentative de ces opérations est un ensemble de FO triplets de la forme : ([B i 1, B i 2,, B i pi], [L i 1, L i 2, L i pi], Bi) où : Bi est le remplaçant des blocs B i 1, B i 2, B i pi dont les listes de positions respectives dans le texte binaire en clair sont : Li1, Li2,, Lipi. Ainsi, le nombre de blocs (donc aussi de listes) se réduit après la «fusion binaire». Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 63

82 Chapitre 3 Chiffrement évolutionniste Nous désignons le texte chiffré comme suit : - Deuxième partie : usage de l algorithme évolutionniste (voir Chapitre 3 Section I.2) III.2.3 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 B 1, B 2,, B m les différents blocs 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 blocs 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)=pi,, Clef(m)=pm où Le bloc B p1 sera associé à la liste L 1. Le bloc B p2 sera associé à la liste L 2. Le bloc B pm sera associé à la liste L m. Ainsi, nous obtenons le texte T. Quant au déchiffrement de la première partie, grâce à la clé de la fusion binaire qui est claire et directe, nous pouvons immédiatement re-décomposer les listes fusionnées Lfi en les sous listes d origine et associer à chacune de ces dernières son bloc correspondant. Ainsi nous obtenons le texte T [OMA07]. III. 3 Expérimentations III.3.1 Configuration Nous appliquons notre système sur des textes de différentes tailles et pour chacun d eux ; nous essayons de trouver les meilleurs paramètres qui peuvent donner une solution optimale. Puis, nous enregistrons des résultats importants à connaître : la moyenne de la convergence de la fonction de remise en forme et le nombre de générations atteint au moment de cette convergence. Ces résultats sont mentionnés dans le tableau suivant. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 64

83 Chapitre 3 Chiffrement évolutionniste Tableau 23 : Tableau récapitulatif des résultats. Nous pouvons constater que dans la plupart des exemples traités dans nos expériences, les meilleures valeurs de l optimum sont atteintes pour une population de taille égale 20 et dont la taille des blocs binaire k = 6. Dans certains cas, les tailles de population égalent 30 ou 40 ont donné de bons résultats, mais le nombre d itération dans ce cas a grandi nettement, ce qui se traduit par un coût supplémentaire en termes de temps d exécution. III.3.2 La longueur de clé Pour les clés symétriques, le niveau de cryptage est souvent décrit en fonction de la taille ou la longueur des clés utilisées : qui est mesurée en bits. En générale plus la longueur de la clé est longue plus le chiffrement devient plus robuste. La clé de notre système est composée de trois éléments : la clé de fusion binaire, la taille des blocs "k" et la clé génétique. - La taille de la clé de fusion binaire est le produit du nombre de blocs utilisés dans la fusion binaire et la taille du bloc. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 65

84 Chapitre 3 Chiffrement évolutionniste - la taille de clé génétique est le nombre de différents blocs multipliée par 8 bits. Le tableau ci-dessous montre une étude sur plusieurs textes de différentes tailles qui permettent d'extraire le nombre de blocs différents avant et après BFP. Tableau 24 : Tableau récapitulatif des résultats. D'après les résultats de k = 6, nous avons conclu que : La longueur de la clé génétique est : 42 * 8 = 336 bits, 42 bits est la moyenne des blocs différents. La longueur de la clé de fusion est d'au plus de : Tr = ((16 * 6) + (16 * 8 * 5) + 6)) = 640 bits - Si on fixe la taille maximale Sk = 1500 alors le nombre de fusion Fo = 2 La longueur de la clé de fusion binaire est : Kf = 640 * 2 = 1280 bits. Ensuite, la longueur de la clé de notre système est l'addition de deux des clés ci-dessous plus la taille du bloc binaire, il est donc de 1622 bits. Si on compare ces résultats à la longueur de clé de TripleDES qui est considérée comme l'un des meilleurs systèmes de chiffrement symétrique, nous pouvons déduire que notre système est capable de résister contre l attaque par force brute plus que le Triple DES pendant une longue période. Un autre avantage de notre système par rapport à Triple DES, c'est que sa clé est considérée comme une clé de session et générée aléatoirement par notre système. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 66

85 Chapitre 3 Chiffrement évolutionniste III.3.3 Temps d'exécution La deuxième comparaison est le temps d'exécution entre l ancien système de chiffrement sans BFP, notre nouveau système de chiffrement avec BFP et le TripleDES. On a choisi comme entrée un fichier de taille égale à 20 Ko. Le tableau ci-dessous donne un exemple de cette comparaison. Tableau 25 : Comparaison entre le temps d'exécution de SEC et le temps d'exécution de TripleDES en (ms). Ajout de la BFP à notre système de chiffrement n'a pas vraiment influencé sur le temps d'exécution et il est encore plus rapide que TripleDES. III.3.4 Comparaison des fréquences d apparition La comparaison des fréquences d apparition est le principal indicateur de la performance du nouveau système. Le tableau et la figure ci-dessous compare les fréquences d apparition des différents blocs binaires dans le texte clair, le texte chiffré en utilisant le processus de BFP et le texte chiffré sans BFP. Rang Nombres d'occurrences des blocs binaires dans le texte clair Nombres d'occurrences des blocs binaires dans le texte chiffré sans BFP Nombres d'occurrences des blocs binaires dans le texte chiffré avec BFP Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 67

86 Chapitre 3 Chiffrement évolutionniste Tableau 26 : L'analyse de fréquence dans le texte chiffré en utilisant le processus de BFP et le texte chiffré sans BFP. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 68

87 Chapitre 3 Chiffrement évolutionniste En fait, en raison du processus de fusion binaire, les fréquences des caractères ne sont plus reconnues, par conséquent, la cryptanalyse basée sur l'étude des fréquences d'apparitions ne peut pas compter sur des statistiques erronées. Figure 29 : Représentation graphique des fréquences d apparition dans le texte chiffré en utilisant le processus de BFP et le texte chiffré sans BFP Comme on le voit sur le graphique ci-dessus, la majorité des blocs binaire du texte chiffré à l'aide de notre nouveau système ("extension SEC à des blocs binaires" avec BFP) ont presque les mêmes fréquences d'apparition. III.4 Conclusion Dans ce travail, nous avons combiné la technique de la fusion binaire et le système E- SEC. L apport de cette combinaison est le renforcement du système SEC contre les attaques les plus redoutables (l'attaque par l'analyse de fréquence et l'attaque par force brute). D après les résultats obtenus pour l étude de fréquence d apparition notre système assure une confusion très forte dans le texte chiffré La comparaison des temps de chiffrement et de déchiffrement de (TripleDES) avec ceux de notre système montre que celui-ci donne des résultats meilleurs notamment pour le déchiffrement qui se réalise dans un temps très rapide. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 69

88 Chapitre 4 APPLICATION DE L ALGORITHME DE RECHERCHE TABOU A LA CRYPTOGRAPHIE I Introduction II La recherche Tabou II.1 Définition II.2 Principe de la recherche tabou II.3 Algorithme générale de la recherche Tabou III Description de notre algorithme de chiffrement III.1 Formalisation du problème III.2 Squelette de l algorithme III.3 Déchiffrement IV Expérimentations IV.1 Comparaison des fréquences d apparition IV.4 Configuration IV.2 La longueur de clé IV.3 Temps d'exécution V Conclusion Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 70

89 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie I Introduction Les métaheuristiques constituent une famille d algorithmes qui ont pour objectif de résoudre des problèmes d optimisation en combinant des procédures de recherche pour trouver rapidement la meilleure solution. La recherche Tabou [JI04] consiste, à partir d'une position donnée, à en explorer le voisinage et à choisir la position dans ce voisinage qui minimise la fonction objective pour un problème de minimisation. Pour éviter de tourner en rond, une liste tabou est définie afin d interdire de revisiter les solutions déjà examinées [GLO97]. Dans ce chapitre, nous présentons un nouveau système de chiffrement dont la structure interne est basée totalement sur la recherche tabou. Pour commencer nous avons ramené le problème de chiffrement d un message M à un problème d optimisation comme dans le système de chiffrement évolutionniste SEC [OMA05]. Après, nous avons codé ce problème d une manière particulière afin de nous ramener aux problèmes d ordonnancement. Cette conception est basée sur l enrichissement de l espace de recherche et l application d un modèle bien défini durant le processus de la recherche tabou [WIL93]. Nous verrons que la solution initiale revêt une importance capitale pour le succès de la méthode, surtout si le nombre d itérations est relativement petit. Dans la suite de ce chapitre nous présentons une description détaillée de notre algorithme de chiffrement STSC, nous allons comparer notre algorithme avec le système de chiffrement évolutionniste SEC. Pour cela nous testons notre algorithme sur plusieurs messages avec des tailles différentes. II. La recherche Tabou II.1 Définition La recherche Tabou est une métaheuristique d'optimisation présentée par Fred Glover en 1986 [GLO89]. L'algorithme a été intitulé recherche tabou du faite que le choix des solutions récemment visitées est pratiquement interdit. Depuis cette date, la méthode est devenue très populaire, grâce aux succès qu'elle a remportés pour résoudre de nombreux problèmes complexes de très grande taille (souvent NPdurs). Cet algorithme introduit une notion de mémoire dans la stratégie d'exploration de l'espace de recherche (poursuivre la recherche de solutions même lorsqu un optimum local est rencontré). La recherche Tabou utilise des opérations itératives locales ou par voisinage pour passer d une solution à une autre, jusqu à ce qu une condition d arrêt soit satisfaite [HAN01]. II.2 Principe de la recherche tabou On se déplace de solution en solution sur l espace des solutions en s interdisant de revenir dans une solution déjà visitée [GLO95], tout en cherchant constamment à améliorer la meilleure solution courante et en conservant en mémoire la liste des précédents déplacements et se servir de cette information afin d en orienter le déroulement futur. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 71

90 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Le voisinage d une solution est défini par une transformation élémentaire (mouvement) permettant de passer d une solution à une autre solution proche avec une petite modification de la structure de la solution [HER05]. Le processus de la recherche tabou est basé sur : - L utilisation de mémoires flexibles (court, moyen, long terme) permettant de bien explorer l historique de la recherche et le critère d évaluation. - La stratégie d intensification utilisant la mémoire à moyen terme pour encourager la recherche de la solution dans les régions de solutions précédemment parcourues. - La stratégie de diversification utilisant la mémoire à long terme pour encourager la recherche de la solution dans les régions qui ne sont pas explorées. - Un mécanisme d aspiration permet à une solution bien de son statut tabou de redevenir candidate. II.3 Algorithme générale de la recherche Tabou On peut représenter l algorithme général de la recherche Tabou par l organigramme suivant : Figure 30 : Organigramme de la méthode de recherche tabou - Pseudo-code de la recherche Tabou : On nomme NT (s) l ensemble des solutions candidates, T la liste tabou et N(s) le voisinage des solutions. NT(s) = { s N(s) tel que s T ou f(s ) < f(s*) } Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 72

91 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Algorithme Algo_Tabou (solution initiale s) Poser T et s* s ; Répéter Choisir s qui minimise f (s ) dans NT(s) Si f (s ) < f(s*) alors poser s* s Poser s s et mettre à jour T (Ajouter s* à la liste T) Jusqu à ce que le critère d arrêt soit vérifié. Fin III. Description de notre algorithme de chiffrement III.1 Formalisation du problème Soit M le codage binaire du message M0 : Le message à chiffrer est représenté par les listes, qui sont des éléments de la partition de l'ensemble {1, 2,..., m}. Chaque liste est constituée par les différentes positions de chaque bloc binaire. Soit B1, B2,..., Bm les différents blocs de M. Notons par Li (1 i m) la liste des différentes positions du bloc Bi et card (Li) le nombre d'occurrences de Bi. Remarque : Cette décomposition ne peut être appliquée que pour les messages de grande taille. Nous notons que Li Lj = ø si i j, i, j {1, 2,..., m}. Le message M peut être représenté par le vecteur suivant : L objectif principal de notre algorithme est de créer le maximum de désordre dans les positions des caractères de B. Pour cet effet, nous changeons itérativement la répartition des listes Li (1 i m) sur les différents blocs de B de telle sorte que la différence entre le cardinal de la nouvelle liste affectée à chaque bloc Bi et le cardinal de la liste Li d origine soit maximale. Il s agit d un problème d optimisation et nous pouvons faire appel à la méthode Tabou pour le résoudre. Définition des variables : i : la solution actuelle i : la prochaine solution atteinte (solution voisine) N(i) : l'espace de solutions voisines à i (l'ensemble des i') m : mouvement de i à i' Best_Sol : la solution optimale globale qui minimise la fonction objective f (i). i* : la solution optimale actuelle f (i*) T : liste des mouvements Tabou. Il peut exister plusieurs listes simultanément. Les éléments de la liste sont t (i,m). a (i,m) : critères d'aspiration. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 73

92 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie III.2 Squelette de l algorithme Pour représenter cela, nous avons : - Liste Tabou : contient les mouvements interdits. - Mouvement (permet le passage d une solution à une autre) : correspond à permuter les positions des deux listes qui éloignent la solution. - La fonction f à minimiser : éliminer les solutions pour lesquels seulement une minorité de liste ont changé de valeurs par rapport solution initial. Étape 1 : choisir une solution initiale i dans S (l'ensemble des solutions) Une solution est un vecteur v de taille m. Le contenu de v est les listes Li (1 i m) de position des caractères. La j ème liste Lj contient les nouvelles positions que prendra le bloc Bj. i* = i k = 0 T = 0 Étape 2 : k = k+1, générer un sous-ensemble de solutions en N (i,k) pour que : Le voisinage de solutions sera basé sur les permutations de l'ordre des positions des listes. Précisément, il génère les solutions candidates par l'application de permutation aléatoire sur les positions de deux listes de la solution actuelle. - les mouvements Tabou ne soient pas choisis - un des critères d'aspiration a (i, m) soit applicable Étape 3 : choisir la meilleure solution i' parmi l'ensemble de solutions voisines N (i, k) i = i' Soit i' une solution de N (i,k) dont les listes sont: L'j1, L'j2,,L'jm. Nous définissons la fonction d évaluation f sur l ensemble des solutions i' Par : m f (i') = - card(l ji) card(li) i=1 Étape 4 : si f(i) f (i*), alors nous avons trouvé une meilleure solution i* = i Étape 5 : mettre à jour la liste T et les critères d'aspiration Étape 6 : si une condition d'arrêt est atteinte, stop. Sinon, retour à Étape 2. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 74

93 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Figure 31 : Organigramme de l algorithme de chiffrement STSC A partir de la meilleure solution Best_Sol obtenue par notre algorithme nous constituons le bloc chiffré correspondant. Ensuite nous concaténons ces blocs chiffrés. Ceci nous donne le message chiffré M' du message initial M. III.3 Déchiffrement Le déchiffrement commence par l inverse de la dernière opération du chiffrement. Le message M sera décomposé à nouveau en m blocs Bi (de la même taille). A l aide de la clé- Tabou générée par notre algorithme les blocs binaires vont récupérer leurs listes de positions correspondantes dans le message en clair. Nous représentons le texte chiffré M' par un vecteur de liste. Notons par B'1, B'2,..., B'M les différents blocs de M' et par L'1, L'2,..., L' m leurs listes respectives de positions. En fait, la clé peut être représentée par un vecteur de taille m que l'on désigne par Clé, de telle sorte que : Clé (1) = p1, Clé (2) = p2,..., Clé (i) = pi,..., Clé (m) = pm où : Le bloc B'p1 va correspondre à la liste L'1. Le bloc B'p2 va correspondre à la liste L'2.... Le bloc B'm1 va correspondre à la liste L'm. Par conséquent, nous obtenons le texte initial M. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 75

94 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie IV Expérimentations Figure 32 : Schéma de notre système de chiffrement STSC IV.1 Comparaison des fréquences d apparition La comparaison de l'analyse de fréquence est un indicateur très important en cryptographie. Pour illustrer les performances du nouveau système STSC, nous avons testé notre programme sur plusieurs messages de différentes tailles. Le tableau suivant montre les résultats obtenus : Caractères Nombres d'occurrences des caractères dans le texte en clair Nombres d'occurrences des caractères dans le texte chiffré avec STSC Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 76

95 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Tableau 27 : L'analyse de fréquence dans le texte clair et le texte chiffré avec STSC. En effet, en raison du codage binaire et la mise en œuvre du système de chiffrement STSC, les fréquences des caractères ne sont plus reconnues, par conséquent, la cryptanalyse basé sur l'étude de fréquence ne peut être fondée sur des statistiques erronées. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 77

96 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Figure 33 : Représentation graphique des fréquences d apparition dans le texte clair et le texte chiffré avec STSC. IV.2 Configuration Nous testons notre système sur plusieurs textes de différentes tailles, et pour chacun d'eux, nous essayons de trouver les meilleurs paramètres pour atteindre la solution optimale dans un temps idéal. Pour cela, nous enregistrons les résultats sur le nombre d'itérations nécessaires pour la convergence du système. Ces résultats sont présentés dans le tableau suivant : Tableau 28 : Tableau récapitulatif des résultats Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 78

97 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Nous pouvons constater que dans le cas où la taille des blocs binaires k = 5, k = 6 ou k=7, notre système converge et génère la clé de cryptage en moins d opérations par rapport aux autres cas. IV.3 La longueur de clé La taille de la clé est un paramètre très important. En général, le niveau de sécurité du système de chiffrement est basé sur la taille des clés utilisées (plus la taille de la clé est longue plus le système de cryptage est robuste). La clé de notre système est composée de deux éléments : la clé Tabou et la taille du bloc 'k'. Nous calculons le nombre de différents blocs existants dans les textes afin de déterminer la taille de la clé de cryptage, le tableau ci-dessous résume l'étude sur certains textes de différentes tailles. Tableau 29 : Récapitulatif présentant les résultats du nombre des différents blocs binaires générés par STSC - La taille de la clé Tabou est le produit du nombre de différents blocs et 8 bits. Si on compare la longueur de la clé minimale de notre système avec la taille recommandée pour les systèmes symétriques qui peuvent assurer une sécurité minimum, nous pouvons déduire que notre système est capable de résister contre les attaques par force brute plus que d autres systèmes existant. Pour les clés de petites tailles nous appliquons un rembourrage approprié à nos textes en vue d'accroître la taille de la clé. Pour les clés de très grandes tailles, nous appliquons un algorithme de compression adapté pour obtenir la taille recommandée. IV.4 Temps d'exécution Dans cette section, nous comparons le temps d'exécution de notre système de chiffrement STSC avec celui du système de chiffrement SEC. Le tableau ci-dessous présente une comparaison de cette expérimentation. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 79

98 Chapitre 4 Application de l algorithme de recherche tabou à la cryptographie Tableau 30 : Comparaison entre le temps d'exécution de STSC et le temps d'exécution de SEC en (ms). Les tests réalisés par notre programme du temps d exécution montrent que notre nouveau système STSC est généralement plus rapide que le système SEC. V. Conclusion La recherche Tabou est une nouvelle méta-heuristique très efficace, elle peut résoudre un grand nombre de problèmes. Dans ce travail, la première adaptation de la métaheuristique "Recherche Tabou" à la cryptographie a été présentée. Notre système génère une clé secrète que nous appelons «clé-tabou» qui a les qualités essentielles pour être efficace et capable de résister contre les attaques par force brute. Selon les résultats des fréquences d'apparition des caractères obtenus, nous avons montré que cette méthode bloque les voies en face de toutes les attaques qui sont basées sur l analyse de fréquence des caractères dans un texte chiffré. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 80

99 Chapitre 5 APPLICATION DES ALGORITHMES MEMETIQUES A LA CRYPTOGRAPHIE I Introduction II. Algorithmes mémetiques II.1 Définition II.2 Principe des algorithmes mémetiques III Description de notre algorithme de chiffrement III.1 Formalisation du problème III.2 Squelette de l algorithme III.3 Système de chiffrement III.4 Déchiffrement IV Expérimentations IV.1 Comparaison des fréquences d apparition IV.2 Configuration IV.3 La longueur de clé IV.4 Temps d'exécution V Conclusion Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 81

100 Chapitre 5 Application des algorithmes mémetiques à la cryptographie I. Introduction Les algorithmes mémetiques ont montré leur efficacité pour apporter des solutions satisfaisantes à des problèmes d optimisation combinatoire réputés difficiles. Dans ce mémoire, nous présentons un nouveau système de chiffrement dont la structure interne est basée essentiellement sur les algorithmes mémétiques [MOS99]. Notre approche repose sur l hybridation entre un algorithme évolutionniste à base de population de solutions et une recherche locale adaptée au problème. Les deux méthodes sont complémentaires, car l algorithme évolutionniste permet de bien balayer l espace de recherche, tandis que la recherche locale permet de bien intensifier la recherche dans ces zones pour trouver les meilleures solutions [ISH03]. Nous ramènerons d abord le problème de chiffrement à un problème d optimisation combinatoire comme dans le système de chiffrement Symétrique évolutionniste SEC. Puis, nous coderons ce problème d une manière spécifique permettant de nous ramener aux problèmes d ordonnancement. Enfin, Apres avoir construit les listes contenant les différentes positions des caractères du texte en clair, nous appliquerons le processus mémetique sur l ordre de ces listes pour obtenir un désordre maximal. Les critères de performances considérés sont le temps d exécution et la convergence du système. Pour valider les résultats trouvés, nous avons effectué une comparaison avec ceux trouvés par l algorithme évolutionniste. II. Algorithmes mémetiques II.1 Définition Les algorithmes mémétiques ont été introduits par Dawkins et formalisés par Moscato (Dawkins 89, Moscato 89, Moscato 99) [MOS89, MOS99]. Leur principe général consiste à hybrider un algorithme génétique avec un algorithme de recherche locale. Ils sont appelés aussi algorithmes génétiques hybrides. II.2 Principe des algorithmes mémetiques La force des algorithmes génétiques provient du fait qu ils sont capables de parcourir globalement l espace des solutions à l'inverse des autres métaheuristiques qui balayent une petite zone de cet espace [DAN11]. Un inconvénient d un algorithme génétique est que les opérateurs génétiques ne permettent pas d intensifier de manière suffisante le processus de recherche [LOZ04]. Le principe général des algorithmes mémetiques consiste à hybrider un algorithme génétique avec un algorithme de recherche locale. Ces deux méthodes sont complémentaires puisque l une permet de découvrir de bonnes régions dans l espace de recherche alors que l autre se concentre de manière intensive à explorer ces zones de l espace de recherche [KUM13, HON09]. C est pour cette raison que les algorithmes génétiques sont habituellement hybridés avec des méthodes de recherche locale. Avec ce principe on peut explorer d une façon rapide les zones les plus intéressantes de l espace de recherche pour les exploiter en détail. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 82

101 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Figure 34 : Schéma des algorithmes Mémétiques (MA) III. Description de notre algorithme de chiffrement III.1 Formalisation du problème Soit M le codage binaire du message M0 : Le message à chiffrer est représenté par les listes, qui sont des éléments de la partition de l'ensemble {1, 2,..., m}. Chaque liste est constituée par les différentes positions de chaque bloc binaire. Soit B1, B2,..., Bm les différents blocs de M. Notons par Li (1 i m) la liste des différentes positions du bloc Bi et card (Li) le nombre d'occurrences de Bi. Remarque : Cette décomposition ne peut être appliquée que pour les messages de grande taille. On a Li Lj = ø si i j, i, j {1, 2,..., m}. Notre but est de créer le maximum de désordre dans les positions des caractères de B. Pour cet effet, nous permutons de manière itérative la répartition des listes Li (1 i m) sur les différents blocs de B de telle sorte que la différence entre le cardinal de la nouvelle liste affectée à chaque bloc Bi et le cardinal de la liste Li d origine soit maximale. C est un problème d optimisation et dans notre cas on va faire appel à l algorithme mémétique pour le résoudre. III.2 Squelette de l algorithme Par la suite nous présentons notre adaptation de l algorithme mémétique pour la résolution de notre problème. On définit d abord un codage convenable pour le problème puis on applique les étapes suivantes : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 83

102 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Etape 1 : Générer une population initiale P0 de q individus{x1, X2,,Xq} i := 0 ; Appliquer la procédure de recherche locale sur chaque individu de la population Etape 2 : Evaluation des individus. Soit F la fonction d évaluation. Calculer F(Xi) pour tous les individus Xi de Pi Etape 3 : Sélection des meilleurs individus Sélectionner les meilleurs individus et les grouper par paire. Etape 4 : Application des opérateurs génétiques et de la méthode de descente. 1-Croisement : Appliquer l opération de croisement aux paires sélectionnées dans l étape 3 2-Mutation : Appliquer la mutation aux individus issus du croisement. 3-Recherche locale : appliquer une procédure de recherche locale aux individus issus de l étape 1 et 2. Ranger les nouveaux individus obtenus (de 1,2 et 3) dans une nouvelle génération Pi+1 Aller à l étape 2 jusqu à ce qu un critère d arrêt soit satisfait. La procédure de recherche locale dans l algorithme mémétique s effectue sur tous les individus de la population initiale, après elle s applique sur chaque nouvel individu issu des opérations de croisement et mutation, c'est-à-dire qu on tente toujours de choisir les meilleurs individus de la population initiale ou de la génération construite. Dans le processus mémétique on peut faire appel à une méthode de recherche locale simple telle que les méthodes de descente, ou des méthodes plus compliquées (telles que le recuit simulé ou la recherche tabou). Dans notre travail, nous avons appliqué la méthode de descente. Il s'agit d'un algorithme itératif qui commence avec une solution arbitraire à un problème et tente de trouver la meilleure solution en changeant itérativement la solution actuelle. On peut soit examiner toutes les solutions du voisinage et prendre la meilleure de toutes, soit examiner un sous-ensemble du voisinage. On peut schématiser la méthode de descente comme suit : Etape 1 : Générer une solution initiale (initialisation). Etape 2 : Générer une liste des mouvements candidats. Etape 3 : Choisir le voisin le plus performant Etape 4 : Appliquer le critère d arrêt. - Continue : Aller à l étape 2 si une amélioration est possible - Stop : retenir la meilleure solution trouvée Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 84

103 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Figure 35 : Organigramme de la méthode de descente III.3 système de chiffrement Le système de chiffrement se déroule précisément en 4 étapes : Etape 0 : Codage Un individu (ou chromosome) est un vecteur de taille m. Les gènes sont les listes Lpi (1 i m). Le i eme gène Lpi contient les nouvelles positions que prendra le bloc bi. Etape 1 : Création de la population initiale On désigne par P0 la population initiale constituée de q individus : X1, X2,, Xq. Soit Original-Ch le chromosome dont les gènes sont les listes L1, L2,, Lm qui indiquent le message clair. On tire aléatoirement q permutations de {1,2,,m} et on les applique à Original-Ch afin d obtenir une population initiale constituée de q solutions potentielles. i :=0. Appliquer la procédure de recherche locale sur chaque individu de la population P0 Etape 2 : Evaluation des individus Soit Xj un individu de Pi dont les gènes sont : Lj1,Lj2,,Ljm. La fonction d évaluation F est définie par : F(Xj) = m i=1 card(lji) card(li) Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 85

104 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Etape 3 : Sélection des meilleurs individus Dans l étape de sélection la méthode de la roulette est utilisée pour retenir les individus les plus forts, cette méthode est décrite dans [OMA06]. Etape 4 : Applications des opérateurs génétiques et de la méthode de descente On applique les opérateurs génétiques adaptés au problème de permutations avec contraintes : 1-Croisement MPX (Maximal Préservative X) Cet opérateur est appliqué aux individus issus de l étape de sélection avec un taux d après [CAU 95] le meilleur taux est de l ordre de 60% à 100%. adapté, 2- Mutation de transposition Nous appliquons la mutation qui permute aléatoirement deux gènes d un chromosome. Cet opérateur est appliqué aux individus issus du croisement avec un taux bien précis. De préférence de 0.1% à 5% selon [CAU 95]. 3- Recherche locale Appliquer la méthode de descente aux individus issus de 1 et 2. Placer les nouveaux individus dans une nouvelle population Pi+1. Répéter les étapes 2, 3 et 4 jusqu à un critère d arrêt soit satisfait. - la condition d arrêt : L algorithme s arrêt lorsque la population n évolue plus suffisamment rapidement. Le pseudo code de la méthode de descente appliquée sur les individus de la population initiale, ou résultants par croisement est donné comme suit : Étape 1 : choisir une solution initiale i dans S (l'ensemble des solutions) Une solution est un vecteur v de taille m. Le contenu de v est les listes Li (1 i m) de position des caractères. La j ème liste Lj contient les nouvelles positions que prendra le bloc Bj. i* = i k = 0 Étape 2 : k = k+1 et générer un sous-ensemble de solutions en N (i, k) pour que : Le voisinage de solutions sera basé sur les permutations de l'ordre des positions des listes. Précisément, il génère les solutions candidates par l'application de permutation aléatoire sur la position de deux listes de la solution en cours. Étape 3 : choisir la meilleure solution i' parmi l'ensemble de solutions voisines N (i, k) Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 86

105 Chapitre 5 Application des algorithmes mémetiques à la cryptographie i = i' Soit i' une solution de N(i, k) dont les listes sont: L'k1, L'k2,,L'kl. Nous définissons la fonction d évaluation f sur l ensemble des solutions i' Par : l f (i') = - j=1 card(l kj ) card(l j ) Si f(i) f (i*), alors nous avons trouvé une meilleure solution i* = i Étape 4 : si une condition d'arrêt est atteinte, stop. Sinon, retour à Étape 2. Dernière phase de notre algorithme : Soit Best_Sol la solution finale qu est donnée par SMC. Nous construisons notre clé de chiffrement (Clé-Memetic) à partir d Original_Sol et Best_Sol. Cette clé va permettre de chiffrer le message en claire en changeant la répartition des listes sur les différents caractères du message M. Figure 36 : Une itération de l algorithme SMC. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 87

106 Chapitre 5 Application des algorithmes mémetiques à la cryptographie III.3 Déchiffrement Nous représentons le texte chiffré M' par un vecteur de liste. Notons par B'1, B'2,..., B'M les différents blocs de M' et par L'1, L'2,..., L' m leurs listes respectives de positions. Le déchiffrement débute par l inverse de la dernière opération du chiffrement. A l aide de la Clé-Memetic générer par notre algorithme les blocs binaires vont récupérer leurs listes de positions originales. La clé peut être représentée par un vecteur de taille m que l'on nomme par Clé, de telle sorte que : Clé (1) = p1, Clé (2) = p2,..., Clé (i) = 1,..., Clé (m) = pm où : Le bloc B'p1 va correspondre à la liste L'1. Le bloc B'p2 va correspondre à la liste L'2.... Le bloc B'm1 va correspondre à la liste L'm. Enfin, nous obtenons le texte en clair M. Figure 37 : Schéma de notre système de chiffrement SMC IV Expérimentations Pour illustrer les performances du nouveau système SMC, Nous avons appliqué notre algorithme sur des messages de différentes tailles. Pour chacun, nous avons exécuté l application pour différentes tailles de population et nous en avons retenu les meilleures. Les expérimentations que nous avons effectuées concernent : la comparaison des fréquences d apparition, valeur de la convergence de la fonction d évaluation, nombre de générations atteint lors de cette convergence, la longueur de la clé de chiffrement et le temps d'exécution. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 88

107 Chapitre 5 Application des algorithmes mémetiques à la cryptographie IV.1 Comparaison des fréquences d apparition Le tableau et la figure ci-dessous compare les fréquences d apparition des caractères dans le texte clair et dans le texte chiffré avec SMC. Caractères Nombres d'occurrences des caractères dans le texte clair Nombres d'occurrences des caractères dans le texte chiffré avec SMC Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 89

108 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Tableau 31 : L'analyse de fréquence dans le texte clair et le texte chiffré avec SMC. L'analyse fréquentielle est basée sur le fait que, dans chaque langue, certaines lettres ou combinaisons de lettres apparaissent avec une certaine fréquence. Ces informations permettent aux cryptanalystes de faire des hypothèses sur le texte clair à condition que l'algorithme de chiffrement conserve la répartition des fréquences. Une attaque de ce genre est à rejeter. En effet, en raison du codage binaire et la mise en œuvre du système de chiffrement SMC, les fréquences des caractères ne sont plus reconnues, par conséquent, la cryptanalyse par analyse de fréquence ne peut pas se baser sur des statistiques erronées. 250 Appearance frequencies of different characters in the plaintext and in the ciphertext 200 Frequency analysis in the plaintext 150 Frequency analysis in the ciphertext with SMC Figure 38 : Représentation graphique des fréquences d apparition dans le texte clair et le texte chiffré avec SMC IV.2 Configuration Nous enregistrons les résultats sur le nombre d'itérations suffisantes pour la convergence du système afin de trouver les meilleurs paramètres pour atteindre la meilleure solution dans un temps idéal Le tableau suivant montre les résultats obtenus : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 90

109 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Tableau 32 : Tableau récapitulatif des résultats. Nous pouvons constater que dans la plupart des exemples traités dans nos expériences, les meilleures valeurs de l optimum (valeur de convergence) sont atteintes pour une population de taille égale 20 et dont la taille des blocs binaires k = 5, k = 6 ou k=7. Dans certains cas, les tailles de population égalent 30 ou 40 ont donné de bons résultats, mais le nombre d itérations dans ce cas a grandi nettement, ce qui se traduit par un coût supplémentaire en termes de temps d exécution. IV.3 La longueur de clé La longueur des clefs est un paramètre sécuritaire important. La clé de notre système est composée de deux éléments : la Clé-Memetic et la taille du bloc 'k'. Nous calculons le nombre de différents blocs existants dans les textes afin de déterminer la taille de la clé de chiffrement, le tableau ci-dessous résume l'étude sur certains textes de différentes tailles. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 91

110 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Tableau 33 : Récapitulatif présentant les résultats du nombre des différents blocs binaires générés par SMC - La taille de la clé Memetic est le produit du nombre de différents blocs et 8 bits. Une taille de clé cryptographique petite est aujourd hui considérée comme non sûre (Plus la taille de la clé est petite, plus les attaques contre l algorithme seront moins complexes). En effet, les capacités de calcul modernes permettent de retrouver cette clé en énumérant toutes les clés possibles. La longueur de clé de chiffrement générée par notre système est de taille variable et dépond du nombre de différents blocs existants dans les textes, si on compare la longueur de la clé minimale générée par notre système avec la taille recommandée pour les systèmes symétriques, nous pouvons déduire que notre système offre une protection d un niveau bien supérieur que d autres systèmes existant. IV.4 Temps d'exécution Nous comparons dans cette section le temps d'exécution de notre système de chiffrement SMC avec celui du système de chiffrement SEC. Le tableau ci-dessous résume cette comparaison. Tableau 34 : Comparaison entre le temps d'exécution de SMC et le temps d'exécution de SEC en (ms) Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 92

111 Chapitre 5 Application des algorithmes mémetiques à la cryptographie Figure 39 : Représentation graphique de comparaison entre le temps d'exécution de SMC et le temps d'exécution de SEC Etant donné que la plupart des processus utilisés dans notre système de chiffrement sont aléatoires, ceci rend la mesure du temps plus complexe. Par ailleurs, Les tests obtenus par notre programme du temps d exécution montrent que notre nouveau système SMC est généralement plus rapide que le système SEC. V Conclusion Dans cet article, nous nous sommes intéressés à l application de l algorithme mémétique, qui représente une métaheuristique hybride combinant un algorithme évolutionniste et une méthode de recherche locale, pour la résolution d un problème d optimisation combinatoire dans le domaine de la cryptographie symétrique. L objectif étant l amélioration de certains critères de performance du système. Les résultats de l expérimentation sont comparés à ceux de l algorithme de chiffrement évolutionniste pour montrer l amélioration apportée à celui-ci en lui introduisant une procédure de recherche locale. Les résultats obtenus montrent la performance de notre algorithme de chiffrement mémétique. La méthode de recherche locale introduite dans le processus d hybridation que nous avons utilisé est la méthode de descente simple, il sera donc avantageux et intéressant d utiliser une autre méthode de recherche locale plus évoluée telle que la recherche tabou ou le recuit simulé. On peut également renforcer la sécurité de notre système en le combinant avec un autre procédé de chiffrement par exemple [KAD13a, KAD13b]. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 93

112 Chapitre 6 LES FONCTIONS DE HACHAGE CRYPTOGRAPHIQUES Sommaire I Les fonctions de hachage cryptographiques I.1 Principes des fonctions de hachage I.2 Domaine d utilisation des fonctions de hachage cryptographiques I.3 Propriétés des fonctions de hachage cryptographiques I.3.1 Définition I.3.2 Critères de sécurité I.4 Bref historique des principales fonctions de hachage cryptographiques Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 94

113 Chapitre 6 Les fonctions de hachage cryptographiques I Introduction générale aux fonctions de hachage I.1 Principes des fonctions de hachage Une fonction de hachage est une fonction qui prend en entrée un élément de taille arbitraire finie et renvoyant un élément de longueur fixée. Figure 40 : Principe du hachage Les fonctions de hachage sont des outils indispensables dans de nombreuses applications informatiques. Les tables de hachage sont l une de leur première application, cette structure se présente fréquemment sous la forme d'un tableau et permet de faire des recherches des données en temps pratiquement constant. Elle associe à chaque élément du tableau un identifiant (clé), et l'accès à un élément se passe par le haché de cet identifiant, calculé en utilisant une fonction de hachage. Dans ce type d application, une fonction de hachage ne doit pas avoir nécessairement des propriétés spécifiques. Cependant, il existe des situations où des critères de sécurité supplémentaires sont demandés. Dans ce cas, les fonctions de hachage cryptographiques sont utilisées [PRE 90]. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 95

114 Chapitre 6 Les fonctions de hachage cryptographiques Les fonctions de hachage cryptographiques se distinguent des autres types de fonctions de hachage par les critères de sécurité qui leur sont exigées. Une des caractéristiques des fonctions de hachage cryptographique concerne la valeur de l'empreinte par rapport aux données en entrée. Le moindre changement dans ces données doit générer une empreinte totalement différente. En outre, le hachage doit rendre impossible de retrouver ou générer un texte à partir du haché (il s agit d une fonction à sens unique). I.2 Domaines d'utilisation des fonctions de hachage cryptographiques Les applications des fonctions de hachage cryptographiques apparaissent dans de nombreux domaines d'applications. Chacun de ces domaines nécessite des propriétés spécifiques de sécurité, nous citons dans cette partie des exemples de ces domaines. Intégrité des données La vérification de l intégrité d une donnée est parmi les principales utilisations d une fonction de hachage. C est le fait de s assurer que les données qui ont été envoyées dans un canal non sûr sont complètes et n'ont pas été changées. La moindre modification dans les données doit aboutir à l'obtention d'empreintes totalement différentes avec une probabilité très grande. Protection de mots de passe Une autre des applications courantes des fonctions de hachage cryptographiques est la protection de mots de passe. Une grande partie des utilisateurs choisissent comme mots de passe des mots courants ou triviaux, n assurant donc pas une entropie suffisante. Pour cela un mot de passe ne doit pas être stocké en clair sur une machine, seul le résultat du hachage (le haché) du mot de passe est donc stocké. L'ordinateur compare l'empreinte du mot de passe d'origine avec l'empreinte du mot de passe demandé pour identifier un utilisateur. Signature électronique Les schémas de signature électronique sont sans aucun doute l'application la plus importante des fonctions de hachage cryptographiques. La signature électronique est un mécanisme analogue de la signature manuscrite permettant de garantir l intégrité d un document électronique et prouvant au lecteur du document l identité de son auteur (authentification) [NIS09]. Lorsqu un utilisateur veut envoyer un message signé elle suit la procédure suivante : Il calcule le haché du message, le chiffre avec sa clé privée, et le transmet avec le message. Le destinataire décrypte le condensat avec sa clé publique, calcule le haché du message reçu, et les compare. Si les deux hachés sont identiques, il est assuré de l identité de l émetteur et l intégrité du message. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 96

115 Chapitre 6 Les fonctions de hachage cryptographiques Figure 41 : Principe de signatures électroniques. Dérivation de clé Dans le cadre de la cryptographie symétrique, pour assurer une communication entre deux entités, plusieurs clés secrètes sont souvent utilisées. Une fonction de hachage peut générer plusieurs clefs différentes à partir d une seule information secrète, appelée clef maître. L utilisation des fonctions de hachage pour cette fonctionnalité a pour objectif d'empêcher un adversaire ayant obtenu une des clés dérivées, de déduire des informations sur la clé maître ou les autres clés dérivées. Génération de nombres pseudo-aléatoires Un générateur pseudo-aléatoire de nombres est un algorithme qui produit des suites de bits présentant certaines propriétés de l aléatoire. On peut construire un générateur pseudoaléatoire à partir d une fonction de hachage. Par exemple, si H est une fonction de hachage, initialisée avec une graine c, on peut construire une suite pseudo-aléatoire à partir de la suite récurrente xi = H (xi-1 0), où x0=c. Les générateurs pseudo-aléatoires sont nécessaires pour diverses applications cryptographiques, on les retrouve surtout pour la génération des clés pour le chiffrement Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 97

116 Chapitre 6 Les fonctions de hachage cryptographiques asymétrique, la confidentialité des échanges sur les réseaux sans fil ou encore dans les signatures électroniques [HEL98]. I.3 Propriétés des fonctions de hachage cryptographiques Nous introduisons dans cette section une définition formelle des fonctions de hachage et nous présentons ensuite les trois critères de sécurité exigés des fonctions de hachage cryptographiques qui sont la résistance aux collisions, la résistance aux préimages et aux secondes préimages [PRE 90]. I.3.1 Définition Formellement, une fonction de hachage H calcule un haché de n bits à partir d un message arbitraire M H : {0,1} * {0,1} n Figure 42 : Principe de fonction de hachage Une fonction de hachage cryptographique doit se comporter comme une fonction aléatoire. Il ne devrait pas être possible de trouver des rapports entre l entrée et la sortie, ou de trouver des sorties avec des relations spécifiques. I.3.2 Critères de sécurité Les critères de sécurité d'une fonction de hachage, s'articulent autour de la résistance aux attaques suivantes : - Résistance aux attaques en pré-image Il doit être impossible pour un adversaire de trouver une entrée M tel que H(M) = h pour un h fixé à l avance. - Résistance aux attaques en seconde pré-image Étant donné une entrée M fixée à l'avance et son haché h = H(M), il doit être impossible pour un adversaire de trouver une seconde entrée M' tel que H(M') = h avec M M'. - Résistance aux attaques par collision Il doit être impossible pour un adversaire de trouver deux messages arbitraires M M' tel que H(M) = H(M'). On peut définir la résistance d une fonction de hachage aux collisions, aux préimages et aux deuxièmes préimages par rapport au nombre d opérations nécessaires (complexité) pour que ces attaques réussissent. Pour cela, un attaquant ne doit pas être en mesure de trouver une préimage en moins de O(2 n ) opérations, vu que la meilleure attaque générique consiste à tenter 2 n messages distincts Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 98

117 Chapitre 6 Les fonctions de hachage cryptographiques pour avoir une probabilité de réussite élevée. En suivant le même raisonnement, l attaquant ne doit pas être en mesure de trouver une deuxième préimage en moins de O(2 n ) opérations. Pour la recherche de collisions, la probabilité de réussite de la meilleure attaque générique est basée sur le paradoxe des anniversaires [PRE93]. Paradoxe des anniversaires Le paradoxe des anniversaires est une étude probabiliste qui calcule les chances que deux objets d'un groupe partagent une même propriété issue d'un ensemble fini. Par exemple, il permet d'affirmer qu'il suffit de rassembler 23 personnes choisies aléatoirement pour avoir une chance sur deux que deux de ces 23 personnes fêtent leur anniversaire le même jour [WAG02]. La démonstration de ce paradoxe peut être expliquée en suivant le raisonnement suivant. Prenons k éléments x1, x2,, xk tirés uniformément et indépendamment dans un ensemble E de taille n. La probabilité que tous les xi soient distincts est (1 1 ) n (1 2 k 1 ) (1 ) = n! n n (n k)! Et la probabilité qu au moins deux éléments soient identiques est : p = 1- n! (n k)! e k(k 1) 2n nk La recherche de collisions voit donc sa complexité fortement diminuée par ce paradoxe. Pratiquement, si une fonction de hachage a une sortie de N bits alors l'ensemble d'arrivée contient 2 N éléments et ceci demande environ 2 N 2 hachés d'éléments distincts pour produire une collision avec une probabilité égale à 1/2 (50 % de chance) [WAG02]. Les complexités des attaques génériques pour le cas des collisions, des préimages et des deuxièmes préimages sont présentées dans le tableau suivant :. 1 n k Tableau 35 : Critères de sécurité des fonctions de hachage La taille des empreintes construites par une fonction de hachage est choisie de façon que le nombre d opérations nécessaires pour une attaque générique réussi soient inaccessibles en pratique. Actuellement, on peut considérer qu un nombre d opération supérieur ou égal à 2 80 est trop grand pour être réalisé avec la puissance calculatoire des machines d aujourd hui. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 99

118 Chapitre 6 Les fonctions de hachage cryptographiques Néanmoins, pour garantir une certaine marge de sécurité, il est demandé que la taille de sortie des fonctions de hachage modernes varie entre 256 et 512 bits. Ceci permet d utiliser une fonction de hachage comme si elle était injective, il sera donc impossible en pratique de trouver des collisions ou des préimages [RSM10]. La résistance aux collisions d'une fonction de hachage est donc bornée par le paradoxe des anniversaires mais rien ne dit qu'il n'existe pas un meilleur moyen pour trouver ces collisions en profitant des faiblesses de l'algorithme. I.4 Bref historique des principales fonctions de hachage cryptographiques MD4 (Message Digest 4) est un algorithme de hachage conçu par Ronald Rivest du (Massachusetts Institute of Technology) en 1990 [RIV92]. La taille de l empreinte est de 128 bits en travaillant les données originales par blocs de 512 bits. En 1991 l'algorithme a été abandonné au profit du MD5 après la découverte de faiblesses dans sa conception [RIV92b]. Le SHA-0 (Secure Hash Algorithm ), comme MD5, est basé sur la structure de MD4 et publié en 1993 par le NIST. Il fonctionne par blocs de 512 bits de données et produit des hachés de 160 bits en sortie. Pour des raisons de sécurité insuffisante, il s'est vu modifié peu après sa sortie en 1993 et complexifiée pour devenir le SHA-1 en 1995 [NIS02]. RIPEMD-160 (Ripe Message Digest) est la dernière version de l'algorithme RIPEMD, il a été Publié en 1996 par Hans Dobbertin, Antoon Bosselaers et Bart Preneel. Il produit comme son nom l'indique des condensés de 160 bits. D'autres versions de l'algorithme existent (128, 256 et 320 bits). Une collision sur la version de 128 bits a été découverte en août 2004 [WAN04], en même temps que la collision sur le MD5. SHA-2 (Secure Hash Algorithm 2) est une famille de fonctions de hachage qui ont été conçues par la National Security Agency des États-Unis (NSA), sur le modèle des fonctions SHA-1 et SHA-0, Les différences principales résident dans les tailles de hachés possibles : 256, 384 ou 512 bits. Elle a été conçue afin de remplacer le SHA-1, et devient par la suite le nouveau standard recommandé en matière de hachage cryptographique [NIS12] Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 100

119 Chapitre 6 Les fonctions de hachage cryptographiques Sommaire II Constructions classiques des fonctions de hachage et leur sécurité II.1 Introduction II.2 Fonctions de compression II.2.1 Fonctions de compression fondées sur le chiffrement par bloc II.2.2 Fonctions de compression fondées sur un problème réputé difficile II.3 Extenseur de domaine II.3.1 La construction de Merkle-Damgård II.3.2 Autres extenseurs de domaine II.3.3 La construction wide pipe II.2.4 Fonctions éponges Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 101

120 Chapitre 6 Les fonctions de hachage cryptographiques II Constructions classiques des fonctions de hachage et leur sécurité II.1 Introduction Nous nous intéressons dans cette section à la structure des fonctions de hachage cryptographiques. Généralement les fonctions de hachage utilisent deux mécanismes internes : une fonction de compression, qui permet de produire des données qui ne peuvent être inversées, et un algorithme d extension de domaine, qui permet de calculer les hachés en utilisant la fonction de compression. II.2 Fonction de compression Les performances et la sécurité d'une fonction de hachage résident sur sa fonction de compression. On peut classifier les différents types de conception de fonctions de compression en deux catégories. La première de ces catégories regroupe les constructions fondées sur des algorithmes de chiffrement par blocs. La seconde catégorie rassemble les fonctions mettant en œuvre des algorithmes dont la sécurité est liée à la complexité de résolution des problèmes réputés difficiles. II.2.1 Fonctions de compression fondées sur le chiffrement par bloc Un algorithme de chiffrement par blocs est un ensemble E de permutations de {0,1} n paramétrées par une clé k de {0,1} m. Pour toute permutation Ek, il existe une permutation inverse Dk telle que pour tout bloc de message M, Dk(Ek(M)) = Ek(Dk(M)) = M. La fonction de compression pour les algorithmes d extension de domaine prend en entrées, un bloc de message Mi et une variable de chaînage Hi-1. Pour que la fonction de hachage soit à sens unique. Sachant (Hi-1 et Hi), on ne doit pas être en mesure de retrouver un bloc de message Mi tel que F(Hi-1,Mi) = Hi. Diverses solutions ont été proposées pour satisfaire cette contrainte [PGV94]. Elles consistent à utiliser la fonction E avec une opération de rebouclage. L algorithme de Davies et Meyer est la solution la plus utilisée [MMO85]. Il consiste à effectuer un rebouclage en utilisant un ou exclusif entre la variable de chaînage entrante et le bloc de message. Ce qui nous donne F (Hi-1, Mi) = E Mi (Hi-1) Hi-1. Cette construction est utilisée dans les principales normes de hachage, comme les fonctions de la famille MD-SHA. Elle est représentée dans la Figure 43 : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 102

121 Chapitre 6 Les fonctions de hachage cryptographiques Figure 43 : Modes opératoires de Davies-Meyer. Dans la même catégorie, on trouve la construction de Matyas, Meyer et Oseas [MMO85]. Elle consiste à inverser les rôles de la variable de chaînage d entrée et du bloc de message. Ce qui nous donne F (Hi-1, Mi) = E Hi 1 (Mi) Mi. Figure 44 : Modes opératoires de Matyas-Meyer-Oseas Cette construction a été ensuite développée par Miyaguchi[MOI89] et Preneel [PRE93], elle consiste à imposer le rebouclage avec Mi Hi-1, Nous avons donc F (Hi-1, Mi) = E Hi 1 (Mi) Mi Hi-1. Figure 45 : Modes opératoires de Miyaguchi-Preneel Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 103

122 Chapitre 6 Les fonctions de hachage cryptographiques Ce dernier mode opératoire est notamment utilisé par la fonction de hachage Whirlpool [BR03], définie par Barreto et Rijmen. On peut évaluer l'efficacité des fonctions de hachage fondées sur un schéma de chiffrement par bloc selon leur taux de hachage. Le taux de hachage est le ratio du nombre de blocs de message traités par le nombre d'appels à l'algorithme de chiffrement employé. II.2.2 Fonctions de compression fondées sur un problème réputé difficile Cette catégorie rassemble les fonctions mettant en œuvre des algorithmes dont la sécurité est liée à la complexité de résolution des problèmes réputés difficiles. Il existe un certain nombre de problèmes pour lesquels un algorithme de résolution efficace n'est connu. Parmi ces problèmes on peut citer, entre autres, le problème du sac à dos, le problème SAT ou le problème du voyageur de commerce [HRO04]. L'avantage d'utiliser ces problèmes comme base pour des fonctions de compression repose sur le fait qu'il est peu probable que des algorithmes efficaces qui permettent de résoudre ces problèmes puissent voir le jour dans un avenir proche. Des fonctions de hachage cryptographiques dont la sécurité repose sur de tels problèmes ont été proposées [ARB08, BEL97, BRO08]. Peu après leur publication, certaines d'entre elles ont présenté des vulnérabilités et par la suite ont subi des attaques. Généralement, les fonctions fondées sur ces problèmes sont moins performantes par rapport aux fonctions fondées sur des algorithmes de chiffrement par blocs, ce qui a pu conduire certains concepteurs à proposer des paramètres plus adaptatifs. Ce type de construction peut avoir des conséquences sur la qualité de la réduction de sécurité. Néanmoins, les quelques failles au niveau de sécurité ne remettent pas en cause la validité du principe. II.3 Extenseur de domaine II.3.1 Algorithme de Merkle-Damgård Cet algorithme a été découvert par Merkle [MER89] et Damgård [DAM89], il est notamment utilisé par les fonctions MD5, SHA-1 et les fonctions de la famille SHA-2, qui sont les fonctions de hachage les plus utilisées à ce jour. Il permet de calculer des empreintes à partir d une fonction de compression F F : {0,1} n {0,1} m {0,1} n (C, M) F(C, M) Il commence par diviser la donnée à hacher M en blocs de même taille M1,, Km et à traiter les blocs M i itération par itération. Le calcul de l empreinte de M se déroule comme suit. - Padding Pour obtenir une donnée dont la taille est un nombre entier de blocs, on applique au message une transformation injective pad appelée padding. Celle-ci consiste à concaténer à M Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 104

123 Chapitre 6 Les fonctions de hachage cryptographiques un bit valant 1, puis le plus petit nombre de bits valant 0 tel que la longueur λ totale de la donnée obtenue vérifie λ = (m- c) mod m, où c est une constante. Ensuite on concatène à cette donnée la longueur l du message M représentée sur c bits. Ce qui nous donne : pad (M) = M l. Avec ce padding la longueur maximale des messages est limitée à 2 c bits. On peut maintenant diviser pad(m) en k blocs de m bits M1,, Mk. - Itération de la fonction de compression Une fonction de hachage nécessite également une valeur d initialisation IV {0,1} n. Le calcul de l empreinte se fait de la manière suivante. On définit h 0 = IV, et i de {1,, k}, on calcule h i = F (h i-1, M i ). L empreinte est obtenue en calculant de manière itérative F sur le résultat de l itération précédente et un nouveau bloc de message M. Les valeurs h i sont généralement appelées hachés intermédiaires ou variables de chaînage. L algorithme de Merkle-Damgård [DAM90] est résumé sur la Figure 46. Figure 46 : Algorithme d extension de domaine de Merkle-Damgård. Théorème. Soit H une fonction de hachage utilisant la construction de Merkle-Damgård et le renforcement MD, avec une fonction de compression F. Les propriétés suivantes sont vérifiées : 1. La résistance à la recherche de collisions de F contre tout attaquant effectuant moins de Ncoll calculs de F implique la résistance à la recherche de collisions de H contre tout attaquant effectuant moins de Ncoll calculs de F. 2. La résistance à la recherche de préimages de F contre tout attaquant effectuant moins de Npre calculs de F implique la résistance à la recherche de préimages de H contre tout attaquant effectuant moins de Npre calculs de F. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 105

124 Chapitre 6 Les fonctions de hachage cryptographiques Le premier résultat a été montré par Merkle dans [MER89], le second par Damgård dans [DAM89]. II.3.2 Autres extenseurs de domaine Les faiblesses identifiées de la construction de Merkle-Damgård ont conduit les cryptographes à proposer de nouvelles constructions. Parmi celles qui ont abouti à des propositions concrètes, on peut citer la construction wide-pipe et les fonctions éponges. II La construction wide pipe La construction wide pipe, introduite par Lucks [LUC05], est une construction itérée qui généralise celle de Merkle-Damgård. Elle permet de calculer des empreintes pour des données de taille variable en utilisant deux fonctions de compression F et G telle que F : {0,1} n {0,1} m {0,1} n G : (C, M) F(C, M) Cette construction consiste à appliquer l algorithme de Merkle-Damgård [DAM89] avec la fonction de compression F, puis une deuxième fonction de compression G est appliquée au résultat pour produire un haché h. Cette construction est représentée sur la Figure 47. Figure 47 : La construction wide-pipe. La construction wide-pipe englobe plusieurs variantes. Parmi les plus connues, il y a le mode double pipe, défini par n= 2h, et le mode Chop-MD proposé par Coron et al. [COR05], où la fonction G est une simple troncation. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 106

125 Chapitre 6 Les fonctions de hachage cryptographiques II Fonctions éponges Une autre construction, introduite récemment, appelée construction éponge est due à Bertoni et al. [BER07]. Il s'agit d'une construction itérée capable de produire des sorties de taille arbitraire. Contrairement à la construction Merkle-Damgård qui fait appel à une fonction non inversible de la variable de chaînage et d un bloc de message, la fonction de compression repose sur une transformation fixe de la variable de chaînage. Cette transformation est généralement instanciée par une permutation ou par une fonction non inversible. Les fonctions ainsi obtenues sont appelées fonctions éponges. Nous décrivons maintenant la construction de ces fonctions. Soient r et c deux entiers, nous considérons une fonction F :{0,1} r+c {0,1} r+c En notant h la longueur en bits des empreintes, nous définissons le paramètre u suivant : u= [ h r ] Les empreintes par une fonction éponge H sont obtenues en générant des vecteurs de r bits, et en tronquant le dernier pour garder h bits. u est donc le nombre de vecteurs à générer. Le hachage d un message M se déroule de la manière suivante. On commence par rembourrer le message avec un padding injectif tel que la longueur de pad(m) soit un multiple de r bits. Ensuite, les bits de la variable de chaînage (R, C) de r+c bits sont initialisés avec la valeur 0. La procédure de hachage se déroule en deux étapes successives. L étape d absorption : les l blocs de message rembourré sont traités de façon itérative par les opérations suivantes. Le premier bloc m1 de message est combiné à l'aide d'un OU exclusif (XOR) avec la variable R. Ensuite la fonction de compression F est appliquée au résultat de cette opération. Puis, la même procédure est appliquée sur le deuxième bloc m2 et ainsi de suite jusqu' à ce que tous les blocs de message soient consommés. Pour i de 1 à l, (R, C) (R M i, C) (R, C) F(R, C) L étape de pressage : Après plusieurs itérations successives de F, l empreinte H(M) est générée par concaténation des variables R. Pour i de 1 à u, z i R (R, C) F(R, C) Nous avons donc H(M) = (z1 zu) h. Cette construction est représentée sur la Figure 48 : Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 107

126 Chapitre 6 Les fonctions de hachage cryptographiques Figure 48 : Construction éponge. - Sécurité La résistance de la fonction de hachage peut se réduire à la résistance de la fonction de compression, mais cela ne signifie pas qu une attaque sur la fonction de compression implique une attaque sur la fonction de hachage. La construction éponge [BER08] vérifie cette propriété. En effet, si l état interne est grand par rapport à la taille de sortie, dans ce cas on peut avoir une fonction de hachage résistante aux attaques en collision ou en préimage même si on est capable de contrôler la variable de chaînage. La sécurité d une fonction de hachage n est pas définie comme l impossibilité de l existence d une attaque, mais comme l ignorance d une telle attaque dans la pratique. Z. Kaddouri / Thèse en Informatique / 2014 / Faculté des Sciences Rabat 108

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux Chapitre 7 Sécurité des réseaux Services, attaques et mécanismes cryptographiques Hdhili M.H Cours Administration et sécurité des réseaux 1 Partie 1: Introduction à la sécurité des réseaux Hdhili M.H Cours

Plus en détail

Travail d intérêt personnel encadré : La cryptographie

Travail d intérêt personnel encadré : La cryptographie DÉCAMPS Régis & JUÈS Thomas 110101 111011 111001 111100 100011 001111 001110 110111 111011 111111 011111.......... 011111 110101 110100 011110 001111 000110 101111 010100 011011 100110 101111 010110 101010

Plus en détail

INF 4420: Sécurité Informatique Cryptographie II

INF 4420: Sécurité Informatique Cryptographie II : Cryptographie II José M. Fernandez M-3106 340-4711 poste 5433 Aperçu Crypto II Types de chiffrement Par bloc vs. par flux Symétrique vs. asymétrique Algorithmes symétriques modernes DES AES Masque jetable

Plus en détail

Fonction de hachage et signatures électroniques

Fonction de hachage et signatures électroniques Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 pierre-louis.cayrel@xlim.fr Licence professionnelle Administrateur de Réseaux et de Bases de Données IUT

Plus en détail

Cours 14. Crypto. 2004, Marc-André Léger

Cours 14. Crypto. 2004, Marc-André Léger Cours 14 Crypto Cryptographie Définition Science du chiffrement Meilleur moyen de protéger une information = la rendre illisible ou incompréhensible Bases Une clé = chaîne de nombres binaires (0 et 1)

Plus en détail

TECHNIQUES DE CRYPTOGRAPHIE

TECHNIQUES DE CRYPTOGRAPHIE Jonathan BLANC Enseignant : Sandrine JULIA Adrien DE GEORGES Année universitaire 23/24 Licence Informatique TECHNIQUES DE CRYPTOGRAPHIE - - TABLE DES MATIERES INTRODUCTION 3. TECHNIQUES DE CRYPTOGRAPHIE

Plus en détail

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI Cryptologie Algorithmes à clé publique Jean-Marc Robert Génie logiciel et des TI Plan de la présentation Introduction Cryptographie à clé publique Les principes essentiels La signature électronique Infrastructures

Plus en détail

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE Michel Rigo http://www.discmath.ulg.ac.be/ Année 2007 2008 CRYPTOGRAPHIE. N. F. Art d écrire en chiffres ou d une façon secrète quelconque. Ensemble

Plus en détail

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009 Aristote Groupe PIN Utilisations pratiques de la cryptographie Frédéric Pailler (CNES) 13 janvier 2009 Objectifs Décrire les techniques de cryptographie les plus courantes Et les applications qui les utilisent

Plus en détail

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2. DTIC@Alg 2012 16 et 17 mai 2012, CERIST, Alger, Algérie Aspects techniques et juridiques de la signature électronique et de la certification électronique Mohammed Ouamrane, Idir Rassoul Laboratoire de

Plus en détail

0x700. Cryptologie. 2012 Pearson France Techniques de hacking, 2e éd. Jon Erickson

0x700. Cryptologie. 2012 Pearson France Techniques de hacking, 2e éd. Jon Erickson 0x700 Cryptologie La cryptologie est une science qui englobe la cryptographie et la cryptanalyse. La cryptographie sous-tend le processus de communication secrète à l aide de codes. La cryptanalyse correspond

Plus en détail

Signatures électroniques dans les applications INTERNET

Signatures électroniques dans les applications INTERNET ECOLE ROYALE MILITAIRE 156 e Promotion Polytechnique Lieutenant-Général Baron de GREEF Année académique 2005 2006 3 ème épreuve Signatures électroniques dans les applications INTERNET Par le Sous-lieutenant

Plus en détail

Calculateur quantique: factorisation des entiers

Calculateur quantique: factorisation des entiers Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Sécurité de l'information

Sécurité de l'information Sécurité de l'information Sylvain Duquesne Université Rennes 1, laboratoire de Mathématiques 24 novembre 2010 Les Rendez-Vous Mathématiques de l'irem S. Duquesne (Université Rennes 1) Sécurité de l'information

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Journées MATHRICE "Dijon-Besançon" DIJON 15-17 mars 2011. Projet MySafeKey Authentification par clé USB

Journées MATHRICE Dijon-Besançon DIJON 15-17 mars 2011. Projet MySafeKey Authentification par clé USB Journées MATHRICE "Dijon-Besançon" DIJON 15-17 mars 2011 1/23 Projet MySafeKey Authentification par clé USB Sommaire 2/23 Introduction Authentification au Système d'information Problématiques des mots

Plus en détail

Cryptologie à clé publique

Cryptologie à clé publique Cryptologie à clé publique La cryptologie est partout Chacun utilise de la crypto tous les jours sans forcément sans rendre compte en : - téléphonant avec un portable - payant avec sa carte bancaire -

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

CRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie

CRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie CRYPTOGRAPHIE Signature électronique E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr I. SIGNATURE ÉLECTRONIQUE I.1. GÉNÉRALITÉS Organisation de la section «GÉNÉRALITÉS»

Plus en détail

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références 2 http://securit.free.fr Introduction aux concepts de PKI Page 1/20

Plus en détail

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative Y. Houbad, M. Souier, A. Hassam, Z.Sari Laboratoire d automatique Tlemcen Faculté de technologie, Université Abou

Plus en détail

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE ET SECURITE DES TRANSACTIONS ELECTRONIQUES : STANDARDS, ALGORITHMES DE HACHAGE ET PKI» DU 22 AU 26 JUIN 2015 TUNIS (TUNISIE) CRYPTOGRAPHIE APPLIQUEE ET SECURITE DES

Plus en détail

Les fonctions de hachage, un domaine à la mode

Les fonctions de hachage, un domaine à la mode Les fonctions de hachage, un domaine à la mode JSSI 2009 Thomas Peyrin (Ingenico) 17 mars 2009 - Paris Outline Qu est-ce qu une fonction de hachage Comment construire une fonction de hachage? Les attaques

Plus en détail

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Cryptographie. Cours 3/8 - Chiffrement asymétrique Cryptographie Cours 3/8 - Chiffrement asymétrique Plan du cours Différents types de cryptographie Cryptographie à clé publique Motivation Applications, caractéristiques Exemples: ElGamal, RSA Faiblesses,

Plus en détail

Du 03 au 07 Février 2014 Tunis (Tunisie)

Du 03 au 07 Février 2014 Tunis (Tunisie) FORMATION SUR LA «CRYPTOGRAPHIE APPLIQUEE ET SECURITE DES TRANSACTIONS ELECTRONIQUES» POUR LES OPERATEURS ET REGULATEURS DE TELECOMMUNICATION Du 03 au 07 Février 2014 Tunis (Tunisie) CRYPTOGRAPHIE ET SECURITE

Plus en détail

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05 Les Protocoles de sécurité dans les réseaux WiFi Ihsane MOUTAIB & Lamia ELOFIR FM05 PLAN Introduction Notions de sécurité Types d attaques Les solutions standards Les solutions temporaires La solution

Plus en détail

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises La banque en ligne et le protocole TLS : exemple 1 Introduction Définition du protocole TLS Transport Layer Security

Plus en détail

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie CRYPTOGRAPHIE Chiffrement par flot E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr CHIFFREMENT PAR FLOT Chiffrement par flot Chiffrement RC4 Sécurité du Wi-fi Chiffrement

Plus en détail

TEXT MINING. 10.6.2003 1 von 7

TEXT MINING. 10.6.2003 1 von 7 TEXT MINING 10.6.2003 1 von 7 A LA RECHERCHE D'UNE AIGUILLE DANS UNE BOTTE DE FOIN Alors que le Data Mining recherche des modèles cachés dans de grandes quantités de données, le Text Mining se concentre

Plus en détail

Audit des risques informatiques. Introduction à la Cryptographie Pierre-François Bonnefoi

Audit des risques informatiques. Introduction à la Cryptographie Pierre-François Bonnefoi La cryptographie : Introduction et définitions Introduction Depuis l'egypte ancienne, l'homme a voulu pouvoir échanger des informations de façon confidentielle. En grec : Cryptographie : ( κρυπτο γραφ

Plus en détail

Livre blanc. Sécuriser les échanges

Livre blanc. Sécuriser les échanges Livre blanc d information Sécuriser les échanges par emails Octobre 2013 www.bssi.fr @BSSI_Conseil «Sécuriser les échanges d information par emails» Par David Isal Consultant en Sécurité des Systèmes d

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes. Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis

Plus en détail

Analyse de PRESENT avec peu de données

Analyse de PRESENT avec peu de données Analyse de PREENT avec peu de données (Un tour de plus dans les attaques meet-in-the-middle) María Naya-Plasencia 1, Bastien Vayssière 2 1:INRIA Rocquencourt 2:PRIM, Université de Versailles 12 octobre

Plus en détail

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Damien Stehlé LIP CNRS/ENSL/INRIA/UCBL/U. Lyon Perpignan, Février 2011 Damien Stehlé Problèmes arithmétiques issus de la cryptographie

Plus en détail

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader Gestion des Clés Pr Belkhir Abdelkader Gestion des clés cryptographiques 1. La génération des clés: attention aux clés faibles,... et veiller à utiliser des générateurs fiables 2. Le transfert de la clé:

Plus en détail

MEMOIRE DE MAGISTER EN ELECTRONIQUE. OPTION : Télédétection. Application des techniques de cryptage pour la transmission sécurisée d images MSG

MEMOIRE DE MAGISTER EN ELECTRONIQUE. OPTION : Télédétection. Application des techniques de cryptage pour la transmission sécurisée d images MSG REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE MOULOUD MAMMERI, TIZI-OUZOU FACULTE DE GENIE ELECTRIQUE ET DE L INFORMATIQUE

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Les opérations binaires

Les opérations binaires Les opérations binaires Compétences associées A2 : Analyser et interpréter une information numérique Objectifs Etre capable: - De coder les nombres entiers en code complément à 2. - De résoudre les opérations

Plus en détail

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur www.matthieuamiguet.

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur www.matthieuamiguet. : Espoirs et menaces Matthieu Amiguet 2005 2006 Objectifs 2 Obtenir une compréhension de base des principes régissant le calcul quantique et la cryptographie quantique Comprendre les implications sur la

Plus en détail

Le protocole sécurisé SSL

Le protocole sécurisé SSL Chapitre 4 Le protocole sécurisé SSL Les trois systèmes de sécurisation SSL, SSH et IPSec présentés dans un chapitre précédent reposent toutes sur le même principe théorique : cryptage des données et transmission

Plus en détail

LES SECURITES DE LA CARTE BANCAIRE

LES SECURITES DE LA CARTE BANCAIRE Projet tutoré 2007 TENEUR Jérôme Groupe: III MAHIEU Maxime Année 2006 / 2007 BINARD Romain RTFI1A LES SECURITES DE LA CARTE BANCAIRE 1 SOMMAIRE I - Introduction II - Le chiffrement symétrique 1 - Les principes

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Sécurité des réseaux IPSec

Sécurité des réseaux IPSec Sécurité des réseaux IPSec A. Guermouche A. Guermouche Cours 4 : IPSec 1 Plan 1. A. Guermouche Cours 4 : IPSec 2 Plan 1. A. Guermouche Cours 4 : IPSec 3 Pourquoi? Premier constat sur l aspect critique

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Modes opératoires pour le chiffrement symétrique

Modes opératoires pour le chiffrement symétrique Modes opératoires pour le chiffrement symétrique Charles Bouillaguet 5 février 2015 1 Notion(s) de sécurité On a vu qu un mécanisme de chiffrement symétrique E est contistué de deux algorithmes : E : {0,

Plus en détail

Les Réseaux sans fils : IEEE 802.11. F. Nolot

Les Réseaux sans fils : IEEE 802.11. F. Nolot Les Réseaux sans fils : IEEE 802.11 F. Nolot 1 Les Réseaux sans fils : IEEE 802.11 Historique F. Nolot 2 Historique 1er norme publiée en 1997 Débit jusque 2 Mb/s En 1998, norme 802.11b, commercialement

Plus en détail

Cryptographie et Sécurité informatique

Cryptographie et Sécurité informatique Université de Liège Faculté des Sciences Appliquées Cryptographie et Sécurité informatique INFO0045-2 Notes de cours provisoires 2009-2010 Renaud Dumont Table des matières 1 Introduction 2 1.1 Motivation............................................

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

TP 2 : Chiffrement par blocs

TP 2 : Chiffrement par blocs USTL - Licence et Master Informatique 2006-2007 Principes et Algorithmes de Cryptographie TP 2 : Chiffrement par blocs Objectifs du TP utiliser openssl pour chiffrer/déchiffrer, étudier le remplissage

Plus en détail

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples, Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très

Plus en détail

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS Nicole Dausque CNRS/UREC CNRS/UREC IN2P3 Cargèse 23-27/07/2001 http://www.urec.cnrs.fr/securite/articles/certificats.kezako.pdf http://www.urec.cnrs.fr/securite/articles/pc.cnrs.pdf

Plus en détail

SSL ET IPSEC. Licence Pro ATC Amel Guetat

SSL ET IPSEC. Licence Pro ATC Amel Guetat SSL ET IPSEC Licence Pro ATC Amel Guetat LES APPLICATIONS DU CHIFFREMENT Le protocole SSL (Secure Socket Layer) La sécurité réseau avec IPSec (IP Security Protocol) SSL - SECURE SOCKET LAYER Historique

Plus en détail

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) 87 FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) Dans le cadre de la réforme pédagogique et de l intérêt que porte le Ministère de l Éducation

Plus en détail

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178 Thèse no. 7178 PROBLEMES D'OPTIMISATION DANS LES SYSTEMES DE CHAUFFAGE A DISTANCE présentée à l'ecole POLYTECHNIQUE FEDERALE DE ZURICH pour l'obtention du titre de Docteur es sciences naturelles par Alain

Plus en détail

Audit des risques informatiques

Audit des risques informatiques Audit des risques informatiques Introduction à la Cryptographie Pierre-François Bonnefoi Université de Limoges Laboratoire XLIM # 1 # La cryptographie : Introduction et définitions Introduction Depuis

Plus en détail

THEME : CLES DE CONTROLE. Division euclidienne

THEME : CLES DE CONTROLE. Division euclidienne THEME : CLES DE CONTROLE Division euclidienne Soit à diviser 12 par 3. Nous pouvons écrire : 12 12 : 3 = 4 ou 12 3 = 4 ou = 4 3 Si par contre, il est demandé de calculer le quotient de 12 par 7, la division

Plus en détail

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Exploitations pédagogiques du tableur en STG Académie de Créteil 2006 1 EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Commission inter-irem lycées techniques contact : dutarte@club-internet.fr La maquette

Plus en détail

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd UE 503 L3 MIAGE Initiation Réseau et Programmation Web La couche physique A. Belaïd abelaid@loria.fr http://www.loria.fr/~abelaid/ Année Universitaire 2011/2012 2 Le Modèle OSI La couche physique ou le

Plus en détail

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

Sécuristation du Cloud

Sécuristation du Cloud Schémas de recherche sur données chiffrées avancés Laboratoire de Cryptologie Thales Communications & Security 9 Avril 215 9/4/215 1 / 75 Contexte Introduction Contexte Objectif Applications Aujourd hui

Plus en détail

LES TECHNIQUES DE CRYPTOGRAPHIE

LES TECHNIQUES DE CRYPTOGRAPHIE LES TECHNIQUES DE CRYPTOGRAPHIE G Florin, S Natkin Unité de valeur Systèmes et applications répartis Cryptographie 1 Introduction La cryptographie: l'outil de base indispensable de la sécurité Texte en

Plus en détail

ETUDE DES MODELES DE CONFIANCE

ETUDE DES MODELES DE CONFIANCE ETUDE DES MODELES DE CONFIANCE I-INTRODUCTION... 3 II- RAPPEL DES BASES DE LA CRYPTOGRAPHIE... 4 II-1 LA CRYPTOGRAPHIE SYMETRIQUE... 4 II-2 LA CRYPTOGRAPHIE ASYMETRIQUE... 4 II-3 LA CRYPTOGRAPHIE HYBRIDE...

Plus en détail

MPI Activité.10 : Logique binaire Portes logiques

MPI Activité.10 : Logique binaire Portes logiques MPI Activité.10 : Logique binaire Portes logiques I. Introduction De nombreux domaines font appel aux circuits logiques de commutation : non seulement l'informatique, mais aussi les technologies de l'asservissement

Plus en détail

La sécurité dans les grilles

La sécurité dans les grilles La sécurité dans les grilles Yves Denneulin Laboratoire ID/IMAG Plan Introduction les dangers dont il faut se protéger Les propriétés à assurer Les bases de la sécurité Protocoles cryptographiques Utilisation

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Signature électronique. Romain Kolb 31/10/2008

Signature électronique. Romain Kolb 31/10/2008 Romain Kolb 31/10/2008 Signature électronique Sommaire I. Introduction... 3 1. Motivations... 3 2. Définition... 3 3. La signature électronique en bref... 3 II. Fonctionnement... 4 1. Notions requises...

Plus en détail

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi Thèse High Performance by Exploiting Information Locality through Reverse Computing Présentée et soutenue publiquement le 21 décembre 2011 par Mouad Bahi pour l obtention du Doctorat de l université Paris-Sud

Plus en détail

Traitement numérique de l'image. Raphaël Isdant - 2009

Traitement numérique de l'image. Raphaël Isdant - 2009 Traitement numérique de l'image 1/ L'IMAGE NUMÉRIQUE : COMPOSITION ET CARACTÉRISTIQUES 1.1 - Le pixel: Une image numérique est constituée d'un ensemble de points appelés pixels (abréviation de PICture

Plus en détail

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1 Cryptographie RSA Introduction Opérations Attaques Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1 Introduction Historique: Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

TP 10.3.5a Notions de base sur le découpage en sous-réseaux

TP 10.3.5a Notions de base sur le découpage en sous-réseaux TP 10.3.5a Notions de base sur le découpage en sous-réseaux Objectif Identifier les raisons pour lesquelles utiliser un masque de sous-réseau. Faire la distinction entre un masque de sous-réseau par défaut

Plus en détail

Gestion des clés cryptographiques

Gestion des clés cryptographiques PREMIER MINISTRE Secrétariat général de la défense nationale Direction centrale de la sécurité des systèmes d information Paris, le 28 mars 2006 N 724/SGDN/DCSSI/SDS/AsTeC Gestion des clés cryptographiques

Plus en détail

EMV, S.E.T et 3D Secure

EMV, S.E.T et 3D Secure Sécurité des transactionsti A Carte Bancaire EMV, S.E.T et 3D Secure Dr. Nabil EL KADHI nelkadhi@club-internet.fr; Directeur du Laboratoire L.E.R.I.A. www.leria.eu Professeur permanant A EPITECH www.epitech.net

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

Rapport de certification

Rapport de certification Rapport de certification EMC NetWorker v8.0.1.4 Préparé par Centre de la sécurité des télécommunications Canada à titre d organisme de certification dans le cadre du Schéma canadien d évaluation et de

Plus en détail

Crypter le courrier. Pourquoi crypter? Les clés de cryptage. Supplément au manuel Internet sécurité d'abord!

Crypter le courrier. Pourquoi crypter? Les clés de cryptage. Supplément au manuel Internet sécurité d'abord! Supplément au manuel Internet sécurité d'abord! 1 Votre courrier est facile à lire... même par ceux qui n ont pas le droit de le faire. De l expéditeur à la réception sur votre ordinateur, il passe par

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Cryptographie appliquée

Cryptographie appliquée Cryptographie appliquée Les bases de la cryptographie et ses applications 5INFO INSA m2ri réseau et sécurité Stage sécurité ENSTB 15 mai 2007 1 Grandes idées Cryptographie ancienne : les bases César, Vigenère,

Plus en détail

Date : 18.11.2013 Tangram en carré page

Date : 18.11.2013 Tangram en carré page Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches

Plus en détail

Cryptographie. Master de cryptographie Architectures PKI. 23 mars 2015. Université Rennes 1

Cryptographie. Master de cryptographie Architectures PKI. 23 mars 2015. Université Rennes 1 Cryptographie Master de cryptographie Architectures PKI 23 mars 2015 Université Rennes 1 Master Crypto (2014-2015) Cryptographie 23 mars 2015 1 / 17 Cadre Principe de Kercho : "La sécurité d'un système

Plus en détail

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Petite introduction aux protocoles cryptographiques. Master d informatique M2 Petite introduction aux protocoles cryptographiques Master d informatique M2 Les protocoles cryptographiques p.1/48-1 Internet - confidentialité - anonymat - authentification (s agit-il bien de ma banque?)

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall L utilisation d un réseau de neurones pour optimiser la gestion d un firewall Réza Assadi et Karim Khattar École Polytechnique de Montréal Le 1 mai 2002 Résumé Les réseaux de neurones sont utilisés dans

Plus en détail

Le chirement a la volee Anne Canteaut INRIA Projet CODES BP 5 7853 Le Chesnay Cedex http://wwwrocq.inria.fr/~canteaut/ Les procedes de chirement a la volee sont des techniques qui permettent d'assurer

Plus en détail

Authentification de messages et mots de passe

Authentification de messages et mots de passe Sébastien Gambs Autour de l authentification : cours 1 1 et mots de passe Sébastien Gambs sgambs@irisa.fr 1 décembre 2014 Sébastien Gambs Autour de l authentification : cours 1 2 Introduction à l authentification

Plus en détail

Le protocole SSH (Secure Shell)

Le protocole SSH (Secure Shell) Solution transparente pour la constitution de réseaux privés virtuels (RPV) INEO.VPN Le protocole SSH (Secure Shell) Tous droits réservés à INEOVATION. INEOVATION est une marque protégée PLAN Introduction

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

L identité numérique. Risques, protection

L identité numérique. Risques, protection L identité numérique Risques, protection Plan Communication sur l Internet Identités Traces Protection des informations Communication numérique Messages Chaque caractère d un message «texte» est codé sur

Plus en détail

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE. COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE. RESUME le fichier exécutable «morsebinaire_win_orphygts II_v2.exe», est un logiciel de démonstration permettant de faire

Plus en détail

Étudiant : Nicolas Favre-Félix IFIPS Info 3. Les One Time Passwords, Mots de passe à usage unique

Étudiant : Nicolas Favre-Félix IFIPS Info 3. Les One Time Passwords, Mots de passe à usage unique Étudiant : Nicolas Favre-Félix IFIPS Info 3 Les One Time Passwords, Mots de passe à usage unique Sommaire Définition d'un système d'authentification par OTP...3 Historique...3 Utilisation actuelle...3

Plus en détail

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production Revue des Sciences et de la Technologie RST- Volume 4 N 1 /janvier 2013 Etude d un cas industriel : Optimisation de la modélisation de paramètre de production A.F. Bernate Lara 1, F. Entzmann 2, F. Yalaoui

Plus en détail