19
  Théophile GURLIAT - Benjamin ROULET - Pro jet R&T 2006 « Cryptage d’un texte » ( 1/19)

cryptage de textes

Embed Size (px)

Citation preview

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (1/19)

Introduction : le rle de la cryptographie

p2

1. Cryptologieo o

Chiffres de transposition Chiffres de substitution Chiffrement mono-alphabtique 1. le code de Csar Analyse frquentielle Chiffrement poly-alphabtique 2. le code de Vigenre Cryptanalyse

p3 p4

p5 p6

p7

2. Cryptographie moderneo o

Chiffrement asymtrique Chiffrement symtrique

p8 p9

3. Cryptographie appliqueHistorique du projet Dtail des applications Programmation & sourcesp10 p13 p17

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (2/19)

Introduction la CryptologieLa Cryptologie est la science des messages secrets. Elle se dcompose en deux disciplines : la cryptographie et la cryptanalyse.

Cryptographie : (du grec : cach et : crire) Art de transformer un message clair en un message inintelligible. Cependant, on utilise souvent le mot cryptographie comme synonyme de cryptologie. Cryptanalyse : Art d'analyser un message chiffr afin de le dcrypter. On parle aussi de dcryptement. Chiffre (ou chiffrement) : Ensemble de procds et ensemble de symboles (lettres, nombres, signes, etc.) employs pour remplacer les lettres du message chiffrer. Bien souvent appel cryptage, un anglicisme qui provient du mot encryption . Code : Ensemble de procds et ensemble de symboles (lettres, nombres, signes, etc.) employs pour remplacer les mots du message coder. Stnographie : (du grec : couvert et : crire) Branche particulire de la cryptographie qui consiste non pas rendre le message inintelligible, mais le camoufler dans un support (texte, image, etc.) de manire masquer sa prsence. Dchiffrement : Opration inverse du chiffrement : obtenir la version originale d'un message qui a t prcdemment chiffr en connaissant la mthode de chiffrement et les clefs Dcryptement : Restauration des donnes qui avaient t chiffres leur tat premier , sans disposer des clefs thoriquement ncessaires.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (3/19)

La place de la cryptologie aujourdhuiA notre poque, la plupart des changes de donnes ncessitent dtre rendus confidentiels. Pour cela et depuis bien longtemps, les hommes ont mis au point des procds qui permettent de rendre des informations inintelligibles. Lart de la cryptologie na cess dvolu depuis des sicles, mais plus particulirement depuis lapparition des ordinateurs, qui offrent une puissance de calcul phnomnale, permettant de chiffrer mais galement de dchiffrer des donnes cryptes par des algorithmes toujours plus complexes. Bien souvent invisible, la cryptographie est partout autour de nous ; authentification, contrle dintgrit, stockage des donnes, communications sans fil, mme les applications les plus banales possdent leurs systmes de cryptage. Bien loin de fournir une liste exhaustive et dexpliquer tous les dtails de fonctionnement, nous essaierons au travers de la prsente tude de comprendre les grands principes et catgories de chiffrement, den dmontrer les avantages et les inconvnients, et den justifier lutilisation. En guise dintroduction notre tude, voici six grands principes dAuguste Kerckhoffs (1835 - 1903) qui posa les principes de la cryptographie moderne dans larticle "La cryptographie militaire" paru dans le "Journal des Sciences Militaires". 1- Le systme doit tre matriellement, sinon mathmatiquement, indchiffrable :Le systme doit offrir un niveau de scurit suffisant au regard de celui voulu pour le traitement des informations.

2- Il faut quil nexige pas le secret, et quil puisse sans inconvnient tomber entre les mains de lennemi : La scurit du systme ne doit pas reposer sur le secret de sa conception.Ses spcifications et dtails de fonctionnement doivent pouvoir tre rendus publics.

3- La clef doit pouvoir en tre communique et retenue sans le secours de notes crites, et tre change ou modifie au gr des correspondants Lanalogie que lon peut voir ici est limportance de faire en sorte que les utilisateurs disposent de codes dauthentification efficaces et ergonomiques.

4- Il faut quil soit applicable la correspondance tlgraphique : il faut faire en sorte que lesystme prenne en entre et renvoie aprs traitement des donnes conformes aux formats et standards en vigueur.

5- Il faut quil soit portatif, et que son maniement ou son fonctionnement nexige pas le concours de plusieurs personnes : lide sous-jacente est que le systme doit pouvoir tre utilisquel que soit lendroit ou lon se trouve (mobilit des profils, lutilisation de cartes puce...)

6- Enfin, il est ncessaire, vu les circonstances qui en commandent lapplication, que le systme soit dun usage facile, ne demandant ni tension desprit, ni la connaissance dune longue srie de rgles observer : Un systme qui donnera aux utilisateurs lenvie de lutiliser,qui sera simple daccs, qui ne bouleversera pas outre mesure ses habitudes de travail, sera dautant mieux utilis, et la scurit effective en sera donc dautant meilleure.

Ces six points sont capitaux, et savrent encore aujourdhui trs adapts a la conception dun systme cryptographique.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (4/19)

Chiffres de transpositionUn chiffrement par transposition consiste changer l'ordre des lettres, donc construire des anagrammes. Cette mthode est connue depuis l'Antiquit, puisque les Spartes utilisaient dj une scytale, une bande de papier, qui enroule autour dun bton dun certain diamtre, laissait apparatre un message. Une analyse statistique sur les chiffrements par transposition n'est pas utile, puisque seul l'ordre des symboles est diffrent; les symboles restent les mmes. Donc, les symboles les plus frquents dans le message clair resteront videmment les plus frquents dans le message chiffr. Pour de trs brefs messages, comme un simple mot, cette mthode est peu sre car il n'y a gure de variantes pour redistribuer une poigne de lettres. Bien entendu, lorsque le nombre de lettres crot, le nombre d'arrangements augmente rapidement et il devient quasiment impossible de retrouver le texte original sans connatre le procd de brouillage. Par exemple, les 27 lettres de Rseaux & Tlcommunications peuvent tre disposes de 27! = 10'888'869'450'418'352'160'768'000'000 manires. Une transposition au hasard des lettres semble donc offrir un trs haut niveau de scurit, mais il y a un inconvnient: pour que la transposition soit efficace, l'ordonnancement des lettres doit suivre un systme rigoureux sur lequel l' xpditeur et l'envoyeur se sont pralablement entendus. En effet, un problme semblable dans quasiment tous les types de chiffrement demeure celui de la cl, qui doit tre connue pour chiffrer et dchiffrer, et qui doit donc bien souvent tre transmise au pralable.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (5/19)

Chiffres de substitutionUn chiffrement par substitution consiste remplacer les lettres ou les mots par d'autres symboles. Les chiffres de substitution peuvent tre classs en quatre grands groupes, chacun ayant des sous-groupes, des variations et des combinaisons avec d'autres types de chiffrement. les substitutions mono-alphabtiques (simples) : chaque lettre est remplace par une autre lettre ou un autre symbole. Toutes les substitutions simples sont vulnrables une analyse des frquences d'apparition des lettres. De nos jours, les substitutions simples ne sont plus utilises que pour les rubriques "nigmes" des journaux. Les substitutions poly-alphabtiques ( double clef ou alphabets multiples) : Elles utilisent plusieurs "alphabets", ce qui signifie qu'une mme lettre peut tre remplace par plusieurs symboles les substitutions polygrammiques (aussi appeles polygraphiques) : les lettres ne sont pas chiffres sparment, mais par groupes de plusieurs lettres (deux ou trois gnralement). les substitutions tomogrammiques (aussi appeles par fractions de lettres) : chaque lettre est tout d'abord reprsente par des groupes de deux ou plusieurs symboles, qui sont ensuite chiffrs sparment par substitution ou transposition.

1] Un exemple de substitution simple : Le code de Csar ( -100 -44 av JC ) :

Le code de Csar est la technique cryptographique la plus ancienne communment admise par lhistoire. Sutone nous rapporte, dans La vie des 12 Csars, quil tait utilis par lEmpereur pour communiquer avec ses amis. Ce code repose sur une simple substitution mono-alphabtique, ou la substitution est en fait un dcalage de lettres. Ainsi si on choisit un dcalage de trois lettres, on obtient : Texte A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Clair Texte D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Cod Il ny existe alors que vingt-six combinaisons possibles pour chiffrer un texte avec le code de csar. Ce code possde donc un niveau de scurit trs faible, puisquil est facile de tester toutes les possibilits rapidement et de casser le chiffrement. Mais son principal atout tant sa simplicit, il fut utilis jusquen 1915 par larme Russe. De faon insolite, le code de Csar a t remploy avec lavnement dInternet et des forums, travers le ROT-13, qui dsigne simplement le code de Csar, o on a choisi une ROTation de 13 lettres (A N). Lide nest pas de diffuser des messages crypts, mais de faire en sorte que le message ne soit pas lu involontairement, par exemple sil dvoile lintrigue dun film ou donne la rponse une devinette.Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (6/19)

Lanalyse frquentielle :Un des moyens les plus simples de chiffrer un message est de remplacer chaque lettre par une autre (ou un autre symbole). Par sa simplicit et par sa force, ce systme a domin la technique des critures secrtes pendant tout le premier millnaire. Il a rsist aux cryptanalystes jusqu' ce que le savant arabe al-Kindi (801-873) mette au point, au IXme sicle, une technique appele analyse des frquences. La faon d'lucider un message crypt, si nous savons dans quelle langue il est crit, est de nous procurer un autre texte en clair dans la mme langue, de la longueur d'un feuillet environ, et de compter alors les apparitions de chaque lettre. Ensuite, nous nous reportons au texte chiffr que nous voulons claircir et relevons de mme ses symboles. Nous remplaons le symbole le plus frquent par la lettre premire (la plus frquente du texte clair), le suivant par la deuxime, le suivant par la troisime, et ainsi de suite jusqu' ce que nous soyons venus bout de tous les symboles du cryptogramme rsoudre . En effet chaque langue possde ses propres frquences dapparition de chaque lettre. On peut galement calculer les frquences des bigrammes (deux lettres) et des trigrammes. Cette technique ne fonctionne bien que si le cryptogramme est suffisamment long pour avoir des moyennes significatives.

2] Un exemple de substitution poly-alphabtique : Le code de Vigenre (1523-1596 ):

Mme si les faiblesses de la cryptographie par substitution avaient t mises jour depuis bien longtemps, il ny eu pas, entre lpoque de Csar et le 16me sicle, de nouveaux procds cryptographiques majeurs, car lpoque labsence de machine obligeaient lutilisation de codes simples. En 1586, Blaise de Vigenre, qui tait un alchimiste crivain, mais galement historien et diplomate au service des rois de France, mis au point une technique de chiffrement qui allait dominer durant plus de trois sicles. Son procd utilise le chiffre de Csar, mais au lieu de dcaler toutes les lettres, il utilise une technique permettant de donner un dcalage propre chaque lettre.Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (7/19)

Pour cela, il utilise une table compose de 26 alphabets, crits dans l'ordre, mais dcals de ligne en ligne d'un caractre. On crit encore en haut un alphabet complet, pour la cl, et gauche, verticalement, un dernier alphabet, pour le texte coder

: Pour coder un message, on choisit une cl qui sera un mot de longueur arbitraire. On crit ensuite cette cl sous le message coder, en la rptant aussi souvent que ncessaire pour que sous chaque lettre du message coder, on trouve une lettre de la cl. Pour coder, on regarde dans le tableau l'intersection de la ligne de la lettre coder avec la colonne de la lettre de la cl. R E S E A U X E T T E L E C O M M U N I C A T I O N S C H A L O N S C H A L O N S C H A L O N S C H A L O N T L S P O H P G A T P Z R U Q T M F B V U C A I Z B F Cet algorithme de cryptographie comporte beaucoup de points forts. Il est trs facile d'utilisation, et le dcryptage est tout aussi facile si on connat la cl. Il suffit, sur la colonne de la lettre de la cl, de rechercher la lettre du message cod. En outre, l'exemple prcdent fait bien apparatre la grande caractristique du code de Vigenre : la lettre E a t code en L, en P, en X, et en R. Impossible par une analyse statistique simple de retrouver o sont les E. Dernire chose, on peut produire une infinit de cls, il est trs facile de convenir avec quelqu'un d'une cl donne.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (8/19)

Cryptanalyse:La cryptanalyse est lensemble des techniques consistant dcoder un message crypt sans se servir de la cl. Voici une liste non exhaustive de quelques techniques dattaques, qui seront utilises pour la partie pratique de notre projet : L'analyse frquentielle examine les rptitions des lettres du texte crypt afin de trouver la cl. Elle est inefficace contre les algorithmes poly-alphabtiques Elle permet de distinguer un texte chiffr avec un algorithme mono-aphabtique, et peut tre utilise pour dterminer le dcalage. L'indice de concidence permet de calculer la probabilit de rptitions des lettres du message chiffr. Cela permet de connatre le type de chiffrement d'un message et la longueur de la cl. L'attaque par mot probable consiste supposer l'existence d'un mot dans le message crypt. Si ce mot existe, il est possible d'en dduire la cl du message. Elle savre particulirement efficace contre les chiffrements poly-alphabtiques de base. L'attaque par dictionnaire consiste tester tous les mots d'une liste. Elle permet dautomatiser la cryptanalyse, mais ncessite de tester une une les combinaisons de cl et de les comparer aux mots contenus dans le dictionnaire. L'attaque par force brute consiste tester toutes les cls possibles. C'est le seul moyen de rcuprer la cl dans les algorithmes les plus modernes.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (9/19)

Cryptographie moderne :Il existe deux types de chiffrement : le chiffrement symtrique et asymtrique. Une approche mathmatique simple permet de les diffrencier : La cryptographie asymtrique, ou cryptographie cl publique est fonde sur l'existence de fonction sens unique, c'est--dire qu'il est simple d'appliquer cette fonction un message, mais extrmement difficile de retrouver ce message partir du moment o on l'a transform. En ralit, on utilise en cryptographie asymtrique des fonctions sens unique et brche secrte. Une telle fonction est difficile inverser, moins de possder une information particulire, tenue secrte, nomme cl prive. Cette technique offre une relle solution au problme de transmission des cls, puisque la cl publique peut tre diffuse. Il suffit alors de mettre deux systmes asymtriques en parallles pour raliser un dialogue, et ce sans aucun transfert dinformations confidentielles ! RSA et DSA sont des exemples dalgorithmes de chiffrements asymtriques. La cryptographie symtrique, base sur lexistence de fonctions mathmatiques double sens, utilise une cl similaire pour le chiffrement et le dchiffrement. Ne pas confondre Certaines fonctions sont irrversibles, ce qui a permis de crer les fonctions dites de hachage, qui convertissent un grand ensemble en un plus petit ensemble, l'empreinte. Il est impossible de la dchiffrer pour revenir l'ensemble d'origine, ce n'est donc pas une technique de chiffrement ! MD5 et SHA-1 sont des fonctions de hachage trs utilises, notamment pour lauthentification : il suffit de comparer lempreinte du mot de passe propos par lutilisateur celle stocke par la machine pour tablir ou non lauthentification. Le chiffrement par bloc (en anglais block cipher) est une des deux grandes catgories de chiffrements modernes en cryptographie symtrique, l'autre tant le chiffrement par flot. Les chiffrements par bloc sont plus rpandus que ceux qui traitent des flots de donnes. La principale diffrence vient du dcoupage des donnes en blocs de taille gnralement fixe (souvent une puissance de deux comprise entre 32 et 512 bits). Les blocs sont ensuite chiffrs les uns aprs les autres. Une liste non exhaustive de chiffrements par bloc :

DES, l'anctre conu dans les annes 70. AES, le remplaant de DES Blowfish et Twofish, des alternatives AES

Le chiffrement de flux ou chiffrement par flot (en anglais stream cipher) arrive traiter les donnes de longueur quelconque et n'a pas besoin de les dcouper. Une liste non exhaustive de chiffrements par flot :

RC4, le plus rpandu, conu par Ronald Rivest Py, un algorithme rcent de Eli Biham E0 utilis par le protocole Bluetooth

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (10/19)

Un chiffrement par flot se prsente souvent sous la forme d'un gnrateur de nombres pseudo alatoires avec lequel on opre un XOR entre un bit la sortie du gnrateur et un bit provenant des donnes. Toutefois, le XOR n'est pas la seule opration possible. L'opration d'addition dans un groupe est galement envisageable (par exemple, addition entre deux octets modulo 256). Un chiffrement par bloc peut tre converti en un chiffrement par flot. En considrant A comme tant le bit en clair (non chiffr) et B le bit de la cl de chiffrement. Aprs l'opration on obtient un bit C qui sera le bit une fois chiffr. Enfin, si on effectue une nouvelle opration avec C (le bit chiffr) et B (la cl), on retrouve le bit A non chiffr d'origine. C'est le principe de chiffrement symtrique, la mme cl permet de chiffrer et dchiffrer un message. Ce systme, bien que trs simple , peut s'avrer inviolable si la cl, gnre alatoirement, est au moins aussi longue que le message chiffrer et qu'elle ne soit utilise qu'une seule fois (on parle de masque jetable). Dans cette phrase, c'est surtout le mot alatoirement qui s'avre tre le plus difficile mettre en uvre. En revanche, lorsque la cl est vraiment alatoire (techniquement, qu'elle est tire selon la distribution uniforme parmi les cls possibles), ce systme est parfaitement sr, en un sens rigoureusement dfini par Claude Shannon, en 1949, dans un article fondateur Communications theory of secrecy systems. Il convient d'ajouter que c'est le seul chiffrement qui satisfait cette scurit absolue en thorie. Maintenant, voici la mise en application de tout cela grce un exemple : A = 0110101011010100 (message en clair) B = 0101011011100110 (la cl garder secrte bien videmment) Chiffrement : S = A B = 0011110000110010 (message chiffr) Dchiffrement : A = S B = 0110101011010100 (message dchiffr) Sans la cl, il est impossible de dchiffrer le message puisque n'importe quel message M de longueur gale au message original est un dchiffrage possible. Il suffit pour cela de prendre la cl C = S M. Ce systme de chiffrement a t utilis pour le tlphone rouge, reliant directement le Kremlin la Maison Blanche, les cls transitant alors par valises diplomatiques. Le systme de masque jetable tait galement employ par les espions sovitiques. Certains masques furent utiliss plus d'une fois (parfois avec des annes d'intervalle) ce qui permit aux services du chiffre anglais de dchiffrer certains messages. L'algorithme du OU exclusif simple n'est en fait rien d'autre qu'un chiffre de Vigenre, c'est dire une substitution poly-alphabtique utilisant une cl. Il est donc facile "casser" quand on dispose de moyens modernes. Cependant, cet algorithme reste trs souvent utilis dans des logiciels commerciaux, du moins dans le monde de la micro.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (11/19)

Cryptographie applique : le cryptage de texte :Historique du projetSuite aux recherches sur la cryptographie, nous slectionnons des algorithmes qui serviront la conception des programmes : Une interface java permet de choisir et de lancer les diffrentes applications simultanment.

Application 1 : Le code de CsarChiffrement/dchiffrement : Cration dun programme utilisant le chiffrement de Csar, et qui dcale le texte de n lettres dans lalphabet. Cryptanalyse : Cration de deux fonctions permettant de casser le code de csar, une laide dun dictionnaire, lautre a laide de lanalyse de frquences.

Application 2 : Le code de VigenreChiffrement/dchiffrement : Reconstitution du carr de Vigenere et chiffrement dun texte selon son procd. Cryptanalyse : Utilisation dun applet permettant de casser le code de Vigenere et de trouver la cl.

Application 3 : Lanalyseur de frquencesConception dun programme permettant de dterminer si un texte a t chiffr avec une technique de substitution mono alphabtique.

Application 4 : Le module de dialogue par socketMise en place dun module client serveur permettant la transmission de message en clair ou cod via le rseau.

Application 5 : conception dun chiffreur de flux a cl symtrique (xor)Ce programme est le cur de notre projet, il a subit de multiples volutions depuis le dbut de ltude, et vous pouvez retrouver les plus grandes dentre elles ci-dessous. Crypteur de texte Version 1 ( 24 avril 2006 ) > Dtermination de lalgorithme de cryptage et dtermination des types utiliss. > Cration dune fonction principale. > Gnration de linterface graphique. > Cration des fonctions de cryptage / dcryptage. > Ajout de loutil presse-papier. > Cryptage de la cl de chiffrement pour la scuriser.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (12/19)

> Prise en charge et dtection de labsence de saisies et des boutons : notification daides a la saisie. > Dtection de la cl de cryptage invalide et signalement des caractres invalides > Problme des caractres spciaux (les caractres qui possdent une valeur de codage ngative une fois converti en byte gnrent des erreurs a cause de la fonction XOR) : Je choisis la mise en place dun outil de dtection des caractres problmes et dune cl de cryptage spciale pour ceux-ci. > Mise en place dun double mode de fonctionnement, avec ou sans cryptage des caractres problmes, le mode ne prenant pas en charge le chiffrement des caractres comme , permet dviter une srie de tests trs lourds pour la machine. Mais ce mode fait perdre en scurit, il sera donc cart pour le moment. > Possibilit de choix du mode de chiffrement : avec cl numrique ou alphanumrique. On peut donc choisir entre les 3 options nonces ci-dessus. > Je dcouvre que seules les donnes chiffres a laide dune cl numrique savrent transmissibles et enregistrables a laide dun traitement de texte, email, messagerie (le byte offre 256 valeurs codes de -128 a + 127, mais toutes ne gnrent pas un caractre pris en charge par les traitements de texte. Si on souhaite crire les donnes sous forme de texte, la plage en sortie de chiffrement doit tre limite aux caractres supports. > Cration dun comparateur de chanes pour vrifier le bon fonctionnement du chiffrement ; > Systme denregistrement de la cl crypte par dfaut dans un fichier. > Multi-cls. > Fonctions import & export des textes. > Sauvegarde du type de cl par cl de chiffrement. > Ajout de notifications daides dans une barre dassistance.

On peut utiliser une cl aussi longue que voulue ce qui renforce grandement la scurit.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (13/19)

Crypteur de texte Version 2 ( 5 mai 2006 ) Aprs la conception dun module rseau de dialogue, jai dcid de faire une nouvelle version de ce programme qui inclurait un module dchange de donne par socket. Puis jai eu lide dutiliser les caractres hexadcimaux pour crire le texte, ce qui rsout tous les problmes que javais eus avec les caractres et leurs affichages. Ainsi, lapplication est considrablement allge. Tous les caractres peuvent tre utiliss pour la cl et le mode de chiffrement cl alphanumrique ou numrique na plus lieu dtre. Le niveau de scurit est donc considrablement augment et lapplication ne gnre plus aucune erreur lors du chiffrement. Le module rseau voit le jour. Je conois un systme de sauvegarde dans un fichier et dassociation nom/IP, ce qui facilite lutilisation dj fastidieuse de ladressage IP. Lapplication prend galement en charge la rsolution des noms de domaines.

Crypteur de texte Version 3 ( 17 mai 2006 ) Seul un masque jetable peut garantir une scurit inviolable. Je mets en place un module chargeant le masque partir dun fichier. Une synchronisation est ncessaire avec lhte distant, len tte est donc modifie et contient alors la position dans le fichier contenant le masque jetable. Le code est rorganis pour permettre une gestion efficace des processus. Une page dactylographie contient environ 2000 caractres soit 2KB, alors avec un CD de masque jetable, on pourrait chiffrer 350 000 pages de texte Enfin, je cre un moniteur qui affiche diverses statistiques et vers lequel les sorties standards et derreurs sont rediriges, afin de fournir un diagnostic en cas dexception non traite. Lapplication est dote dun panneau coulissant qui permet de masquer linterface rseau.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (14/19)

Quelques dtails de cette application :

FONCTION DE CRYPTAGE :Le texte a crypter et la cl sont convertis en tableaux doctets (un caractre = un octet). La fonction XOR est applique entre la cl et le texte, bit par bit, do le concept de chiffrement par flux. Un nouveau tableau doctet est gnr, mais comme toutes les valeurs dun octet ne sont pas affichables en tant que caractres, ce tableau est affich sous forme dune chane de caractres hexadcimaux. Le procd inverse est utilis pour dchiffrer le texte.

MODULE RESEAU :

1. Lencapsulation :Pour des raisons de simplicit, de scurit et de pdagogie, une en-tte est ncessaire. Celle-ci est compose comme cela : [ IP DESTINATAIRE ] !! [IP EMETTEUR] !! [TYPE DE MESSAGE] [DONNEES] Le socket transmet les donnes sous forme dune chane de caractres, do lintrt des marqueurs !! qui servent a dlimiter les champs (variables dun message a lautre) en vue de la dsencapsulation.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (15/19)

Le logiciel compare lIP de len-tte et lIP qui ouvre le socket pour dterminer lmetteur du message, ce qui permet une double authentification. Dans le cas ou les paquets sont relays par un routeur disposant dune IP publique, ceci permet dafficher lIP publique ainsi que lIP du LAN de la machine qui ouvre le socket.

Labsence de checksum : jai jug quil tait inutile pour le moment dinclure un processus de contrle des caractres tant donn que la suite TCP/IP intgre ses propres systmes de contrle derreur et de rmission ventuelle. Cependant on pourrait, dans un souci dintgrit des donnes chiffres, calculer une checksum avant cryptage qui serait jointe au message et compare celle calcule aprs le dcryptage pour sassurer que les donnes nont pas t modifies.

2. Les types de messages :

Les messages textes clair: ils contiennent du texte non crypt. Les messages textes crypts : ils contiennent des caractres chiffrs. Les requtes de position : elle prcdent lenvoi dun message chiffr laide dun masque jetable et reprsentent une demande de synchronisation. Elles intgrent la position actuelle du masque jetable de lhte initiant la requte. Les rponses de position : elles contiennent la position qui sera utilise par le masque jetable lors de lenvoi du prochain message. Les messages masqus : ils contiennent la position utiliser pour le dcryptage ainsi que les donnes chiffres a laide du masque jetable. Les tests de connectivits : ils signalent leur metteur que votre machine est en coute.

3. Le dialogue rseau :Nous allons nous intresser la faon dont les donnes sont envoyes un hte distant. Pour pouvoir envoyer un texte, crypt ou non, lutilisateur doit connatre ladresse du destinataire, qui peut galement tre un nom dhte associ un nom de domaine. Pour tester la connectivit entre lui et son interlocuteur, lutilisateur peut effectuer un test de connectivit, ce test comprend trois tapes : o La vrification du bon format de ladresse IP o Une triple requte dcho ICMP vers lhte, avec des dures dexpiration de requte croissantes. o Un test douverture de socket sur le port servant communiquer avec lapplication, pour dterminer si la machine est en coute ou non. Une fois le test effectu avec succs, lutilisateur peut envoyer un message, quil soit clair (dialogue en temps rel chat ) ou chiffr laide de la fonction de cryptage. Le dialogue en temps rel ouvre un socket et transmet le message non crypt, il permet aux utilisateurs de converser et de se mettre en accord sur les donnes cryptes qui transiteront par la suite entre leurs machines. Pour ne pas mettre en pril la scurit des donnes, il est ncessaire de ne pas chiffrer des phrases qui savrent bien souvent identiques au cours de sessions multiples. Les messages envoys saffichent dans lhistorique de la conversation une fois que lhte distant les a reus.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (16/19)

Pour garantir une scurit inviolable, il existe un systme de chiffrement par masque jetable. Celui-ci implique que chaque texte est chiffr avec une cl aussi longue que le texte lui mme, appel masque jetable car usage unique ! Ce masque est stock dans un fichier que possde les htes qui souhaitent communiquer entre eux. Lapplication inclut un gnrateur de caractres pseudo alatoire qui peut crer des fichiers allant de 1 3000 KiloOctets. Ce systme une fois activ chiffre toutes les donnes envoyes par linterface rseau, quelles soient claires ou dj chiffres, ce qui peut produire un double chiffrement. Ainsi mme en possdant la cl ou le fichier masque, le message ne peut tre dcrypt. Cette technique ncessite de conserver une position unique dans le fichier masque commune tous les utilisateurs. Une synchronisation est donc ncessaire, celle-ci est dtaille ci-dessous.

Comme vous pouvez le noter, la position du masque transite en clair sur le rseau, ce qui naffecte en rien la scurit, car la cl est usage unique, et totalement imprvisible puisque gnre de faon pseudo-altaoire.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (17/19)

LE THREADING :Avec un programme suivant une excution linaire unique, il savre impossible denvoyer et de recevoir des messages grce a un systme client/serveur, puisque soit lapplication coute, soit elle met. Le Multi-threading permet un fonctionnement laide de processus multiples, indpendant les uns des autres. Voici un exemple permettant dexpliquer le fonctionnement de notre application :

Linterface permettant de lancer les diverses applications est la base de larborescence des processus, chaque processus pouvant recrer lui-mme dautres processus. Les processus schangent des instructions et des informations. Quand le processus a accompli sa tache, il meurt.

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (18/19)

PROGRAMMATION :Ces applications nous on permis daborder de nombreux points inconnus pour nous en java, tel que le threading, la transmission par socket, la gestion des flux dcriture, de lecture, la gestion des exceptions, les conversions, Les codes sources de diverses mthodes comme la gestion du presse-papier et lcriture dun fichier texte proviennent de cours en ligne et de la documentation java. Mr BOTELLA nous a offert son assistance pour dbloquer certaines situations et optimiser les programmes. Ce projet nous a permis dacqurir plus daisance, aussi bien en terme de programmation que de conception dalgorithme. Il ne porte pas sur la recherche du meilleur algorithme de cryptage (et dont la scurit leve naurait eu probablement aucune utilit), mais plutt sur la partie rseau et dveloppement dune application, qui nous a permis de travailler sur un grand nombres de points tels que la portabilit du programme, laccessibilit, laide fournie lutilisateur, la gestion des erreurs, la flexibilit, la confidentialit, Lors de ce dveloppement, un cahier des charges simul a t labor et nous avons tent de le satisfaire au mieux afin de crer un programme adapt, simple dutilisation, et fiable. Ce projet naborde quune infime partie des possibilits offertes par le cryptage mais offre une premire approche ludique tout en mlangeant informatique, rseau et cryptologie. Les codes sources nont pas t joints au dossier (environ 100 pages).

SOURCES:http://java.sun.com/ http://www.lexique.org/ http://cui.unige.ch/ http://fr.wikipedia.org/ http://www.idevelopment.info/ http://www.larcher.com/eric/guides/ http://www-gtr.iutv.univ-paris13.fr/ http://www.bibmath.net/crypto/ http://www.apprendre-en-ligne.net/ http://www.javafr.com/ http://www.infres.enst.fr/ http://linuxfr.org/ http://java.developpez.com/ documentation java dictionnaire pour la cryptanalyse redirection des sorties standards historique de la cryptologie conversions hexadcimale cours sur les threads gestion dun socket cryptologie cryptologie criture fichier criture fichier lecture fichier dveloppement

Thophile GURLIAT - Benjamin ROULET - Projet R&T 2006 Cryptage dun texte (19/19)