Université de Bretagne Occidentale UFR Sciences Département d Informatique Licence STS, 2005-2006 L1, S1, Parcours A-IMP Introduction à l informatique TD/TP11 - Réseaux 1 Travaux Dirigés Exercice 1 Des protocoles de communication (TCP/IP, FTP, etc.) ont été mentionnés en cours. Ces protocoles permettent les échanges d informations sur les réseaux. Nous ne présentons pas les détails de fonctionnement de ces protocoles car cela nécessite des connaissances techniques trop spécifiques. Il existe cependant dans la vie courante des protocoles de communication ayant le même type de fonctionnement. Dans cet exercice, il s agit de caractériser le protocole téléphonique à travers son protocole d appel, son protocole de réception d appel et la manière dont ils interagissent. Question : Représenter le protocole téléphonique sous la forme d un diagramme temporel. Exercice 2 : cryptographie par substitution simple Dans cet exercice et les deux suivants, nous illustrons les méthodes historiques de cryptographie. Ces méthodes ne sont plus utilisées car elles n ont plus aucun secret pour personne aujourd hui. Cependant, les techniques actuelles sont souvent basées sur les mêmes principes que ces premiers algorithmes, et leur nouvelle complexité provient en général de la combinaison de plusieurs de ces principes et du recours à des clés (au sens général) de plus grande taille. Pour chaque méthode, on considère des messages clairs et chiffrés représentés avec les 26 lettres de l alphabet et l espace. 2.1. Substitution simple ou monoalphabétique Dans ce système, la clé est une permutation de l alphabet, et chaque lettre du clair est remplacée par son image par la permutation. Le déchiffrement se fait en utilisant la permutation inverse. En pratique, la clé peut être représentée par une séquence de 26 lettres UXEB... (A U, B X, C E, D B, etc.), et les espaces sont souvent supprimés lors du chiffrement. Cette méthode est très facilement décryptable par analyse de fréquence (par exemple, on sait qu en général la lettre la plus fréquente est un E, et ainsi de suite...). Question : Chiffrer le message MON MESSAGE EN CLAIR avec la clé LEPANIER- DECRABESPUISTOUTLEWAGONZOOKYQUEVAHJXFM. 2.2. Substitution de multigramme A lieu de substituer une lettre, on substitue une séquence de lettres (digramme, trigramme, multigramme). Une substitution de digrammes peut se faire à la main (grâce à une clé sous forme de tableau 26*26 ayant en abscisse la première lettre, en ordonnée la seconde, et le chiffré dans la case correspondante). Au-delà, la clé devient vite difficle à représenter car sa taille croît très rapidement. 1
Cette méthode est encore décryptable par analyse de fréquence de multigrammes. Question : Soit la substitution de digramme selon la clé qui chiffre un digramme par : la lettre suivant la première lettre du digramme suivie de la lettre précédent la seconde lettre du digramme (par exemple, TU UT ). Chiffrer le message UN MULTIGRAMME. Exercice 3 : cryptographie par transposition Etant donné un entier d, une transposition de longueur d consiste à diviser le clair en blocs de longueur d, puis à permuter les lettres à l intérieur de chaque bloc à l aide d une permutation fixée. Par exemple, avec d=4 et la permutation (4,2,1,3), le message ABCDEFGHIJKL devient DBACHFEGLJIK. L avantage de la transposition par rapport à la substitution est qu elle ne conserve que la fréquence des lettres, et pas celle des multigrammes. Question : Soit d=6 et la permutation (6,5,4,3,2,1). Chiffrer le message CRYPTOGRA- PHIE PAR TRANSPOSITION. Exercice 4 : les chiffres de Vigenère et de César 4.1. Chiffre de Vigenère La clé du chiffre de Vigenère est une séquence finie de d lettres. Le chiffrement de la première lettre du clair se fait en ajoutant modulo 26 la première lettre du clair et la première lettre de la clé (A=0,..., Z=25). La deuxième lettre du chiffré s obtient en ajoutant les deuxièmes lettres du clair et de la clé. Lorsque la clé est épuisée, on la reprend au début. Par exemple, si l on chiffre CRYPTOGRAPHIE avec BATO, on obtient DRRDUOZFB- PAWF. On appelle chiffre de César le cas particulier du chiffre de Vigenère avec une clé de taille 1. Le chiffre de César est très facile à décrypter par analyse de fréquence (une fois repérée la lettre E, le décalage est connu). Question 1 : En utilisant le chiffre de César avec la clé = D, chiffrer le message C EST TROP FACILE. Question 2 : En utilisant le chiffre de Vigenère avec la clé = VIGENERE, chiffrer le message VRAIMENT ETONNANT CECI. 4.2. Chiffre de Vigenère en auto-clé C est le même principe que le chiffre de Vigenère sauf que lorsque la clé est épuisée, on utilise le clair lui-même comme clé (au lieu de reprendre la clé à son début). Par exemple, si l on chiffre CRYPTOGRAPHIE avec BATO, on obtient DRRDV- FEGTDNZE (la clé complète étant BATOCRYPTOGRA au lieu de BATOBATOBA- TOB ). Question : Avec la clé = SECRET, chiffrer le message ENCORE PLUS ETONNANT CELA. 2
Exercice 5 : Html et Javascript Le langage Html permet de créer des pages web statiques. Pour écrire des pages dynamiques, il est nécessaire d utiliser un langage de script, en plus, à l intérieur de la page html. Dans cet exercice, nous donnons quelques rudiments du langage de script Javascript et les appliquons sur des exemples simples de type formulaire. Structure d une page web dynamique : <HTML> <HEAD> <TITLE> Le titre de ma page </TITLE> <Script language=javascript> morceau de code Javascript -> permet la définition de données, structures de données et algorithmes (fonctions, procédures) utilisables dans la page web (zone Body). </Script> </HEAD> <BODY> Le corps de mon document... <Form> -> Balise pour créer des zones dynamiques (type formulaire). -> Les définitions de la zone Script sont utilisables ici. </Form> </BODY> </HTML> Quelques balises utiles dans les formulaires : <form name= formulaire >...</form> : une zone de formulaire est toujours matérialisée par cette balise ; <input type= text name= nom size= 25 > pour créer une zone linéaire de texte (de taille 25 caractères ici), le champ name est utile pour accéder plus tard à l objet texte et à ses caractéristiques (par exemple sa valeur) ; <textarea name= comments rows=4 cols=30>...</textarea> pour créer une zone de texte plus importante (ici, 4 lignes et 30 colonnes, avec un ascenseur sur la droite si le nombre de lignes dépasse 4) ; <input type= checkbox name= caseacocher > pour créer un bouton de type case à cocher ; <input type= radio name= c1 onclick= q1=0 > pour créer un bouton rond radio (ici, l action d affectation de 0 à la variable q1 est effectuée si on clique sur le bouton) ; <input type= radio name= c2 onclick= q1=1 checked> idem ci-dessus avec présélection du bouton (attribut checked ) ; <input type= button name= boutonresultat value= Voir le résultat! onclick= calculer() > pour créer un bouton rectangulaire, dans lequel s affiche sa valeur (ici, Voir le résultat! ), 3
et qui déclenche la fonction calculer() lors de l évenement clic (la fonction calculer() doit être définie dans la partie Script) ; <input type= reset value= Effacer les données > pour créer un bouton avec l affichage Effacer les données, qui lors de l évenement clic, effacera le contenu de toutes les zones de saisie du formulaire ; liste déroulante (ici, avec codage sur 1 caractère et 6 possibilités de choix) : <select name= pays size=1 lenght=6> <option>suisse <option>allemagne <option>france <option>etats-unis <option>italie <option>autres </select> Pour accéder à la valeur d un bouton quelconque ou d une zone de texte de nom toto, dans un formulaire de nom form1, on écrit : document.form1.toto.value (accès à l attribut value). Pour accéder à la valeur choisie dans une liste déroulante de nom liste, dans un formulaire de nom form1, on écrit : document.form1.liste.selectedindex. Question 1 : Ecrire le code Html/Javascript correspondant à la page de la figure 1. Question 2 : Ecrire le code Html/Javascript correspondant au quizz de la figure 2. Question 3 : Ecrire le code Html/Javascript permettant d afficher une page web calculatrice très simple (on ne fera qu une seule opération à la fois). 2 Travaux Pratiques Exercice 1 : manipulations réseaux sous Linux Cet exercice a pour but de manipuler quelques commandes systèmes et réseaux en Linux. Pour cela, se connecter sous Linux, ouvrir une fenêtre terminal (console), taper les commandes suivantes et noter à chaque fois les résultats obtenus : 1. hostname (ou hostname -f) 2. hostname -i 3. hostname -s 4. hostname -d 5. finger votrenomutilisateur 6. ping nommachinevoisine 7. traceroute www.free.fr 8. ssh nommachinevoisine 9. talk nomvoisin@nommachinevoisine (arrêt du processus avec contrôle+c) 10. ll Outre le listing des fichiers, cette commande affiche les droits d accès sur les fichiers. Ainsi, on voit les droits d accès en lecture, écriture et exécution des groupes tout le monde, groupe et utilisateur sous la forme rwxrwxrwx pour chaque fichier ou répertoire. 4
La commande chmod [ugoa][+-][rwx] nomfichier permet de changer les droits d accès d un groupe d utilisateurs à un fichier. 11. Appliquer chmod sur au moins un exemple. Exercice 2 : manipulations réseaux sous Windows Cet exercice a pour but de manipuler quelques commandes systèmes et réseaux en Windows. Pour cela, se connecter sous Windows, ouvrir une fenêtre invite de commandes (Démarrer Programmes Accessoires invite), taper les commandes suivantes et noter à chaque fois les résultats obtenus : 1. hostname 2. finger votrenomutilisateur 3. ping nommachinevoisine 4. netstat 5. telnet nommachinevoisine (sortie avec quit ) 6. dans un navigateur, entrer l adresse ftp : ftp://ftp.inria.fr aller dans le répertoire pub/ puis TeX/ puis GUTenberg/ par exemple Vous êtes prêts à télécharger une version du célèbre traitement de texte Latex! Exercice 3 : cryptographie Les sites http://www.bibmath.net/crypto/ et http://lwh.free.fr/pages/algo/crypto/cryptologie.htm proposent des applets implantant de nombreux algorithmes de cryptographie (dont ceux vus en TD). Question : Tester quelques-uns de ces algorithmes sur différents exemples pour bien en comprendre le fonctionnement. Exercice 4 : création de pages web Question 1 : Ecrire une page Html sur le sujet de votre choix avec au moins une image, un lien vers un site web, des listes ou tableaux, et quelques traitements sur l affichage (couleurs, différentes tailles de texte, gras, italique, etc.). Question 2 : Ecrire une page Html/Javascript réalisant un questionnaire sur le sujet de votre choix. Question 3 : Créer un site web en liant entre elles les deux pages précédentes, et en y ajoutant de nouvelles pages s il reste du temps. Références Pour le langage Html : http://www.w3.org (site du World Wide Web Consortium, avec des tutoriels etc.) Pour le langage Javascript : http://www.javascriptkit.com/javatutors/index.shtml (tutoriels...) 5