Compte-rendu de projet de Cryptographie

Documents pareils
Compte-rendu de projet de Système de gestion de base de données

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Gestion des utilisateurs : Active Directory

Manuel d'utilisation

SweetyPix, mode d'emploi

Débuter avec OOo Base

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Programmation Objet - Cours II

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Google Drive, le cloud de Google

Création d'un questionnaire (sondage)

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Raja Bases de données distribuées A Lire - Tutoriel

Recherche dans un tableau

UTILISER WORD. Présentation générale de Word. Voici quelques éléments à savoir en démarrant Word.

Télécom Nancy Année

Utilisation du BDE pour la maintenance des fichiers DBF de l'application TopoCad:

inviu routes Installation et création d'un ENAiKOON ID

Organiser vos documents Windows XP

Navigation dans Windows

Client Kiwi Backup : procédures d'installation et de mise à jour. Gilles Arnoult, Clément Varaldi

Manuel d Utilisateur - Logiciel ModAFi. Jonathan ANJOU - Maud EYZAT - Kévin NAVARRO

Vers l'ordinateur quantique

Algorithmique avec Algobox

Trier les ventes (sales order) avec Vtiger CRM

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Utiliser ma messagerie GMAIL

LES BIBLIOTHEQUES DE WINDOWS 7

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Jexcel. V1.1.4 Manuel d'utilisation. modifié le 16 nov. 2004

Comment congurer WinEdt pour L A TEX?

Les dossiers, sous-dossiers, fichiers

Configurer ma Livebox Pro pour utiliser un serveur VPN

Acer edatasecurity Management

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

Programmation C++ (débutant)/instructions for, while et do...while

SOMMAIRE. Travailler avec les requêtes... 3

L'assistance à distance

Comment bien démarrer avec. NetAirClub GUIDE ADMINISTRATEUR V1.5. Table des matières

1. Introduction Création d'une requête...2

Propagation sur réseau statique et dynamique

COURS EN LIGNE DU CCHST Manuel du facilitateur/de l administrateur

BONNE NOUVELLE, À PARTIR DE DEMAIN 15 AOÛT 2014, l inscription en ligne sera disponible à partir du site de l ARO.

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

TP 1 : 1 Calculs en binaire, octal et hexadécimal

VOS PREMIERS PAS AVEC TRACENPOCHE

1 Comment faire un document Open Office /writer de façon intelligente?

Guide pratique du référencement de web consultant eu. Commençons par l optimisation de vos pages, ou on page

Partager son lecteur optique

Guide Utilisateur - Guide général d'utilisation du service via Zdesktop ou Webmail v.8. Powered by. - media-2001.communication &.

ipra*cool v 1.08 guide de l utilisateur ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v

Identification sur le site de la Chambre de Métiers et de l'artisanat de l'ain

Projet Matlab : un logiciel de cryptage

Manuel d'utilisation d'apimail V3

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Protéger ses données dans le cloud

Atelier B. Atelier B. Manuel Utilisateur. Version 4.0

Exercices de dénombrement

Mémo d'utilisation de BD Dico1.6

Utiliser CHAMILO pour le travail collaboratif

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Paramétrages de base de la plateforme

Tutoriel Inscription et utilisation basique d'un blog hébergé chez Blogger.com

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Tutoriel : Comment installer une compte (une adresse ) sur un logiciel de messagerie (ou client messagerie)?

Crédit Agricole en ligne

Le meilleur de l'open source dans votre cyber cafe

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Premiers pas sur e-lyco

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Tutorial et Guide TeamViewer

Guide d'utilisation du Serveur USB

Qu est ce qu une bibliothèque?

1 sur 5 10/06/14 13:10

1.6- Génération de nombres aléatoires

Couples de variables aléatoires discrètes

Utilisation de XnView

Gestion des applications, TI. Tout droits réservés, Marcel Aubin

MESVISITEURSPRO.COM. TUTO : Comment intégrer Google Analytics à mon site?

Découverte et prise en main de SWEET HOME 3D

GUIDE D'UTILISATION DU SITE INTERNET DE LA MDA

Utilisation de la clé USB et autres supports de stockages amovibles


Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Uniformiser la mise en forme du document. Accélère les mises à jour. Permets de générer des tables de matières automatiquement.

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Installation locale de JOOMLA SEPIA

Initiation au cryptage et à la signature électronique

Tutoriel Drupal version 7 :

Lire-Écrire un courriel / Pièces jointes

Retrouver un mot de passe perdu de Windows

2- Relation entre Writer et Calc dans le mailing

Je communique par

Connexion d'un Ordi35 à une ClubInternet Box en WiFi

Onglet sécurité de Windows XP Pro et XP Home

Transcription:

Compte-rendu de projet de Cryptographie Chirement/Déchirement de texte, d'images de sons et de vidéos LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Pallo

Table des matières 1 Introduction 2 2 Présentation 3 2.A Présentation du projet réalisé......................... 3 2.B Interface graphique............................... 3 2.C Les fonctionnalités............................... 4 2.D Exemple d'utilisation.............................. 5 2.D.1 Chirement/déchirement d'un chier texte............. 5 2.E Les classes.................................... 7 3 La classe cle 8 3.A Les diérentes fonctions............................ 8 3.B fonction de décalage à droite.......................... 8 3.C fonction de décalage à gauche......................... 8 4 La classe texte 10 4.A Les diérentes fonctions............................ 10 4.B La fonction de chirement........................... 10 4.C La fonction de déchirement.......................... 11 5 La classe chier 12 5.A Les diérentes fonctions............................ 12 5.B Les fonctions de chirement/déchirement.................. 12 6 La classe lececrchier 13 6.A Les diérentes fonctions............................ 13 6.A.1 La fonction lecturechier........................ 13 6.A.2 La fonction lectureachagechier................... 14 6.A.3 La fonction demandeouverturen................... 14 6.A.4 La fonction ouverturechier...................... 14 6.A.5 La fonction ecriturechier....................... 14 6.A.6 La fonction recupereextension..................... 14 7 La classe principale 15 7.A Les diérentes fonctions............................ 15

7.A.1 La fonction ouverturelechooser.................... 15 7.A.2 La fonction cryptagedecryptagetexte................. 15 7.A.3 La fonction chiragechier....................... 16 7.B Le bouton parcourir.............................. 16 7.C Le bouton de chirement............................ 17 7.D Le bouton de déchirement.......................... 17 8 Conclusion 18

1 Introduction Lors de ce compte rendu, je vais vous présenter ce que j'ai eectué en ce qui concerne le projet de cryptographie. Dans un premier temps, je vais eectuer une présentation du projet et ensuite, je présenterai les diérentes classes créées pour ce projet et les diérentes fonctions de chaque classe. 2

2 Présentation 2.A Présentation du projet réalisé Le but du projet était de réaliser une application permettant de chirer et déchirer des chiers grâce à l'algorithme de Feistel. En plus de l'algorithme de Feistel, une clé générée aléatoirement a été introduite an d'améliorer le chirement. Pour compliquer encore la tâche, à chaque étape, un décalage d'un bit est eectué sur la clé. 2.B Interface graphique Voici ce que donne l'interface graphique : Un menu est présent en haut à gauche de la fenêtre. Grâce à ce menu, il est possible : de mettre le contenu d'un chier texte dans le TextArea de la fenêtre d'acher un chier de quitter l'application Dans la partie haute de la fenêtre, on choisit le type de chier que l'on souhaite chirer ou déchirer. Les diérentes possibilités sont : 3

CHAPITRE 2. PRÉSENTATION 4 texte simple chier texte autre chier (image,son vidéo) En dessous du choix du chier, on trouve un TextArea qui permet de taper un texte à chirer. On retrouve également deux boutons qui permettent de chirer et déchirer ce que l'on a sélectionné auparavant. Pour la partie chirement, on a un champ texte qui ache la clé qui a été générée pour le chirement. Pour la partie déchirement, on a la possibilité de déchirer avec la clé que l'on a utilisé avant ou d'entrer une autre clé. On retrouve ensuite un TextArea qui permet d'acher le résultat du chirement/déchiffrement. 2.C Les fonctionnalités Dans ce projet, on peut évidemment chirer/déchirer un chier texte mais il est possible également de chirer/déchirer des chiers sons, images, ou encore vidéos. Il est possible aussi, d'acher le contenu d'un chier texte dans le premier TextArea an de pouvoir le chirer/déchirer en voyant directement le résultat qui s'ache dans le second TextArea. Lorsque le chirement/déchirement d'un chier a été réalisé, une boite de dialogue s'ache an de demander à l'utilisateur s'il souhaite ouvrir le chier an de voir le résultat obtenu. Il est possible de chirer un chier, de quitter l'application et de revenir plus tard pour le déchirer grace à l'achage de la clé générée. Pour déchirer le chier chirer, il sut de taper la clé de déchirement à l'endroit prévu à cet eet et de cliquer sur le bouton decrypter.

CHAPITRE 2. PRÉSENTATION 5 2.D Exemple d'utilisation 2.D.1 Chirement/déchirement d'un chier texte Tout d'abord, on sélectionne le bouton radio chier texte, et on clique sur le bouton parcourir : Lorsque ceci est fait, on sélectionne le chier à chirer/déchirer :

CHAPITRE 2. PRÉSENTATION 6 On clique sur le bouton chirer ou déchirer et on entre le nom du nouveau chier : Le texte chiré ou déchiré s'ache dans le second TextArea et on peut ouvrir le chier créé également :

CHAPITRE 2. PRÉSENTATION 7 Voici ce que cela donne si l'on clique sur oui : Voici ce que l'on obtient dans les chiers à la n : Le principe est identique pour les autres chiers, il sut juste de sélectionner le bouton radio adéquate. Cependant, l'ouverture du chier crypté pourra parfois ne pas s'eectuer correctement. Il sera possible de ne pas pouvoir lire le chier. 2.E Les classes Pour ce projet, il existe cinq diérentes classes : La classe MonFiltre qui permet de créé des ltres sur le type de chiers que l'on souhaite chirer/déchirer La classe cle qui permet de créé une clé aléatoire et d'eectuer des traitements dessus. La classe texte qui permet d'initialiser et chirer/déchirer un texte La classe chier qui permet d'initialiser, acher et chirer/déchirer un chier autre que texte La classe principale qui est la classe mère de ce projet. C'est avec cette classe que l'on va pouvoir créer des objets et appeller les fonctions des autres classes. Les fonctions des diérentes classes hormis MonFiltre seront détaillés plus tard dans ce compte-rendu.

3 La classe cle Cette classe va servir pour eectuer des traitements sur une clé qui est de type entier. Le constructeur de cette classe va générer aléatoirement une clé comprise entre 0 et 255. Cette classe a un attribut qui se nomme unecle. 3.A Les diérentes fonctions Les diérentes fonctions de cette classe sont : 'acher' qui permet d'acher la valeur de la clé 'decalagedroite' permet de décaler la clé d'un bit à droite 'decalagegauche' permet de décaler la clé d'un bit à gauche 'setcle' permet de changer la valeur de la clé 'valeur' qui permet de renvoyer la valeur de la clé 3.B fonction de décalage à droite Cette fonction permet de décaler la valeur de la clé d'un bit vers la droite. Il faut réaliser plusieurs étapes an de ne pas perdre le premier bit en partant de la droite. Pour réaliser cela, voici les diérentes étapes : on eectue un ET entre la clé et la valeur 1 et on met le résultat dans une variable intermédiaire on décale de sept bits la valeur de la variable intermédiaire on décale d'un bit vers la droite la valeur de la clé on eectue un OU entre la clé et la variable intermédiaire 3.C fonction de décalage à gauche Cette fonction permet de décaler la valeur de la clé d'un bit vers la gauche. An de ne pas perdre la valeur du premier bit en partant de la gauche, il faut réaliser plusieurs étapes. Pour réaliser cela, voici les diérentes étapes : on réalise un ET entre la clé et la valeur 255, qui est la valeur maximum de la clé et on met le résultat dans une variable intermédiaire. on décale de sept bits vers la droite la variable intermédiaire on réalise un ET entre la valeur de la clé et la valeur 127 8

CHAPITRE 3. LA CLASSE CLE 9 on décale d'un bit vers la gauche la valeur de la clé on eectue un OU entre la clé et la variable intermédiaire

4 La classe texte Cette classe permet d'initialiser un objet texte et d'eectuer des traitements sur celui ci et plus particulièrement le chirement/déchirement. Cette classe a un attribut de type String nommé untexte. 4.A Les diérentes fonctions les diérentes fonctions de cette classe sont : 'valeur' qui permet de renvoyer la valeur de l'attribut untexte 'acher' qui permet d'acher la valeur de l'attribut untexte 'crypter' qui permet de chirer un texte 'decryptage' qui permet de déchirer un texte 'echange' qui permet d'échanger deux valeurs. 'replacecharat' qui permet de remplacer un caractère 4.B La fonction de chirement Cette fonction va chirer l'attribut untexte. Les diérentes étapes pour réaliser le chirement sont : On eectue une boucle à partir de l'indice i jusqu'à la longueur de l'attribut untexte an de lire tous les caractères contenus dans l'attribut et on incrémente de 2 à chaque fois Dans cette boucle on prend les caractères qui sont à l'indice i et i+1 et on les fait devenir des entiers Ensuite, on eectue une boucle imbriqué dans la première boucle an de chirer les deux caractères Lorsque le chirement est terminé, on remplace les caractères de départ par ceux obtenus Pour réaliser le chirement de deux caractères, on utilise l'algorithme de Feistel : on met la valeur du caractère 1 dans une variable intermédiaire on remplace la valeur du caractère 1 par la valeur du caractère 2 on eectue un OU EXCLUSIF entre la valeur du caractère 2, la valeur de la clé et la variable intermédiaire on échange la valeur des deux caractères on décale la valeur de la clé d'un bit vers la droite 10

CHAPITRE 4. LA CLASSE TEXTE 11 on recommence cela autant de fois qu'il y a de bits dans la valeur de la clé. on remplace la valeur des caractères de départ par ceux obtenus 4.C La fonction de déchirement Cette fonction va déchirer l'attribut untexte. C'est le même principe que pour le chirer mais on fait tout à l'inverse pour déchirer les caractères. Voici les étapes : on décale la valeur de la clé d'un bit vers la gauche on met la valeur du caractère 2 dans une variable intermédiaire on remplace la valeur du caractère 2 par la valeur du caractère 1 on réalise un OU EXCLUSIF entre la valeur du caractère 1, la valeur de la clé et la valeur de la variable intermédiaire on échange la valeur des deux caractères on recommence cela autant de fois qu'il y a de bits dans la valeur de la clé. on remplace la valeur des caractères de départ par ceux obtenus

5 La classe chier Cette classe permet d'initialiser un objet chier et d'eectuer des traitements sur celui ci et plus particulièrement le chirement/déchirement. Cette classe a deux attributs : un tableau d'entier nommé tab un entier pour la longueur du tableau d'entier 5.A Les diérentes fonctions Les diérentes fonctions de cette classe sont : 'achelongueur' qui permet de renvoyer la longueur du tableau d'entiers 'retournetableau' qui permet de renvoyer les valeurs du tableau d'entier 'acherchiertableau' qui permet d'acher les valeurs du tableau d'entiers 'crypter' qui permet de chirer un chier grâce au tableau d'entier 'decryptage' qui permet de déchirer un chier grâce au tableau d'entiers 'echange' qui permet d'échanger deux valeurs. 5.B Les fonctions de chirement/déchirement Les fonctions de chirement/déchirement ont le même principe que pour la classe texte. La diérence est que l'on utilise un tableau d'entier à la place des caractères 12

6 La classe lececrchier Cette classe permet de réaliser des opérations an de lire, écrire dans un chier ainsi que l'ouvrir. Elle a trois attributs : un tableau d'entier qui permet d'obtenir les entiers contenus dans un chier un entier qui permet de connaître la longueur du tableau d'entier un entier qui permet de connaître la longueur courante du tableau d'entier, c'est à dire à quel position on se situe 6.A Les diérentes fonctions les diérentes fonctions de cette classe sont : 'ouvre' permet d'ouvrir un chier dont le chemin est passé en paramètre 'initialisation' permet d'initialiser la tableau d'entier à 0. 'lecturechier' permet de lire un chier grâce à un objet de type DataInputStream passé en paramètre 'retournetaillecourante' permet de retourner la taille courante du tableau d'entier 'recupereextension' permet de récupérer l'extension d'un chier 'ecriturechier' qui permet d'écrire dans un chier 'lectureachagechier 'permet de lire un chier an de pouvoir acher son contenu dans un TextArea 'demandeouverturen' qui demande à l'utilisateur s'il veut ouvrir le chier obtenu 'ouverturechier' qui ouvre le chier obtenu 6.A.1 La fonction lecturechier Cette fonction va lire un ux de données grâce à l'objet de type DataInputStream passé en paramètre. Dans cette fonction, on va eectuer une boucle qui va permettre de remplir le tableau d'entier avec les entiers qui sont présents dans l'objet passé en paramètre grâce à la fonction existante ReadInt(). La boucle s'arrête s'il n'y a plus d'entier à lire ou si l'on arrive à la n du tableau. 13

CHAPITRE 6. LA CLASSE LECECRFICHIER 14 6.A.2 La fonction lectureachagechier Cette fonction va ouvrir un chier dont le chemin est passé en paramètre et ensuite, elle va acher le contenu de ce chier dans un TextArea. Cette fonction est utilisé lorsque l'on clique sur ouverture d'un chier texte dans le menu. 6.A.3 La fonction demandeouverturen Cette fonction permet de demander à l'utilisateur s'il veut ouvrir le chier qui vient d'être créé. Si l'utilisateur souhaite ouvrir le chier, la fonction ouverturechier sera appelé. 6.A.4 La fonction ouverturechier Cette fonction permet d'ouvrir le chier qui vient d'être créé. Cette fonction est appelé par la fonction demandeouverturen expliqué juste ci-dessus. 6.A.5 La fonction ecriturechier Cette fonction va ouvrir un nouveau chier qui a la même extension que le chier d'entrée et va écrire des données dedans. Les données qui vont être écrites correspondent aux valeurs du tableau d'entiers passé en paramètre de la fonction. 6.A.6 La fonction recupereextension Cette fonction permet de récupérer l'extension d'un chier an de pouvoir ajouter cette extension au chier qui sera ensuite créé.

7 La classe principale Cette classe est la classe mère du projet. C'est dans cette classe que la fenêtre, les boutons et champs texte sont crées. C'est également dans cette classe que l'on appellera les fonctions des autres classes créées précédemment. En fonction des choix de l'utilisateur, on achera ou non des champs texte et des boutons. 7.A Les diérentes fonctions Voici une liste des fonctions présentes ainsi que leur rôle 'cryptagedecryptagetexte qui permet d'eectuer le chirage/déchirage d'un chier texte 'chiragechier' qui permet d'eectuer le chirage/déchirage d'un chier autre que texte 'ouverturelechooser' qui permet d'ouvrir une boite de dialogue pour choisir un chier 7.A.1 La fonction ouverturelechooser Cette fonction permet d'ouvrir une boite de dialogue qui demande à l'utilisateur de choisir un chier dans l'explorateur de chiers. 7.A.2 La fonction cryptagedecryptagetexte Cette fonction va permettre de réaliser le chirage/déchirage d'un chier texte. Les principales étapes dans cette fonction sont : On ouvre le chier qui a été choisit précédemment par l'utilisateur grâce au bouton parcourir On récupère l'extension du chier On demande à l'utilisateur le nom de chier à créé an d'avoir un nouveau chier avec les données chirées ou déchirées On crée un chier de sortie On eectue une boucle qui va lire chaque ligne du chier d'entrée. On crée un objet de type texte avec en paramètre une variable de type String qui contient la ligne en cours du chier On chire ou déchire grâce à la fonction crypter ou décryptage 15

CHAPITRE 7. LA CLASSE PRINCIPALE 16 Lorsque la variable a été chirée ou déchirée on l'écrit dans le chier de sortie à la suite des données déjà écrites. Lorsque la boucle est terminée, on ferme le chier d'entrée ainsi que le chier de sortie. On demande à l'utilisateur s'il souhaite ouvrir le chier obtenu et on l'ouvre si nécessaire 7.A.3 La fonction chiragechier Cette fonction réalise le chirage/déchirage d'un chier autre qu'un chier texte c'est à dire un chier image, son ou vidéo. Pour cette fonction, on va utiliser un tableau d'entier de dimension 10000 qui va contenir les entiers qui sont contenus dans le chier d'entrée. Les principales étapes dans cette fonction sont : 1 : On déclare un objet de type lececrchier 2 : On appele la fonction ouvrir de la classe lececrchier an d'ouvrir le chier 3 : On demande à l'utilisateur le nom du chier de sortie 4 : On appelle la fonction d'initialisation de la classe lececrchier an d'initialiser toutes les valeurs du tableau d'entiers à 0 5 : On appele la fonction lecturechier qui permet de remplir le tableau d'entiers et on calcule la taille du tableau 6 : Lorsque ceci est fait, on crée un objet de type chier et on lui passe en paramètre le tableau d'entier ainsi que la longueur du tableau. 7 : Ensuite, on chire ou déchire grâce aux fonctions présentes dans la classe chier en fonction de ce que l'utilisateur souhaite. 8 : On écrit dans le chier de sortie les données chirées/déchirées grâce à la fonction ecriturechier 9 : On recommence les étapes 4 à 8 jusqu'à ce qu'il n'y ait plus de données dans le chier d'entrée 7.B Le bouton parcourir Ce bouton permet à l'utilisateur de choisir un chier à chirer/déchirer. En fonction du bouton radio sélectionné, ce ne sera pas le même bouton parcourir qui apparaîtra.

CHAPITRE 7. LA CLASSE PRINCIPALE 17 7.C Le bouton de chirement Le bouton de chirement permet de chirer un texte simple ou des chiers textes, sons, images ou encore vidéos. En cliquant sur ce bouton, une nouvelle clé va être générée aléatoirement et transformée en un entier. Ensuite, en fonction du bouton radio sélectionné, on ne va pas eectuer le même traitement. Si le bouton radio de texte simple est sélectionné, on initialise le TextArea résultat à null, on crée un objet de type texte avec en paramètre le texte qui est contenu dans le TextArea de départ et on va le chirer en appelant la fonction crypter de la classe texte. Lorsque le chirage est réalisé on ache le résultat dans le TextArea prévu à cet eet. Si le bouton radio de chier texte est sélectionné, on appelle la fonction cryptagedecryptagetexte que l'on a dénit précédemment. Si le bouton radio de chier autre est sélectionné, on appelle la fonction cryptagechier que l'on a également dénit précédemment. 7.D Le bouton de déchirement Le bouton de déchirement permet de déchirer les mêmes chiers que le bouton de chirement. Tout d'abord, comme pour le bouton de chirement, on va chercher à savoir quels sont les boutons radio qui ont été cochés. Pour cette partie, il y a deux boutons radio qui permettent de savoir si l'on veut utiliser la clé qui existe déjà ou une autre clé que l'on doit saisir dans le champ texte prévu à cet eet. Lorsque l'on sait quelle clé on veut utiliser, on teste pour savoir si une valeur de clé a bien été entrée. Si ce n'est pas le cas, on informe l'utilisateur qu'il vaut entrer une clé valide. Maintenant que la clé est dénit, on cherche à savoir quel type de chier on doit déchirer. Lorsque l'on sait quel est le type de chier, on eectue le traitement approprié.

8 Conclusion L'algorithme de chirement joue un rôle important aussi bien au niveau de la sécurité que des performances. L'algorithme de Feistel qui a été utilisé lors de ce projet ore de bonnes performances. Le fait de répéter l'algorithme de Feistel plusieurs fois et d'intégrer un décalage de bits à chaque étape permet de rendre le déchirement d'un message très dicile. Ce projet m'a donné l'occasion de travailler sur un algorithme de cryptographie très utilisé dans ce milieu et de bien comprendre son intérêt et ses performances. Cette algorithme est utilisé pour de nombreux autres algorithmes comme par exemple le DES, Blowsh, Twosh, SEED, RC5, ce qui montre son ecacité. 18