VARI NFP135 Projet Le code de César Le code de César est la méthode de cryptographie la plus ancienne communément admise par l'histoire. Il consiste en une substitution mono-alphabétique, où la substitution est définie par un décalage de lettres. Par exemple, si on remplace A par D, on remplace B par E, C par F, D par G, etc... Donnons un exemple à partir de ce décalage de 3 lettres : Texte clair 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 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é Source : http://www.bibmath.net/crypto/substi/cesar.php3 Un exemple de texte à coder est le suivant : L'algorithme opère sur une forêt. ensemble d'arbres étiquetés complets Une forêt est ici un Le texte codé est alors : O*dojrulwkph#rsëuh#vxu#xqh#iruíw1#Xqh#iruíw#hvw#lfl#xq#hqvhpeo h#g*dueuhv#ìwltxhwìv#frpsohwv Travail demandé : Etape 1 Ecrire un programme Java, qui, étant donnée une chaîne de caractères uniquement composé de lettres minuscules : • saisit un entier (<256) qui représentera le décalage de lettres que l'on veut utiliser • crée la nouvelle chaîne de caractères obtenue après cryptage par la méthode de César. • affiche le texte codé • décode le fichier texte crypté afin de retrouver l'original • affiche le texte décodé Etape 2 Ecrire un programme Java qui, à partir d'un fichier contenant le texte source à crypter : • lit le fichier en mémoire • saisit un entier qui représentera le décalage de lettres que l'on veut utiliser • crée un nouveau fichier texte contenant le nouveau texte obtenu après cryptage par la méthode de César. • affiche le texte codé Etape 3 Il s'agit de réorganiser votre programme en le découpant en classes. Chaque tâche principale devient ainsi une classe. 1/3 Etape 4 Munir l'application d'une interface graphique simple (cf la classe JoptionPane) permettant les saisies du nom du fichier à coder, de la valeur de décalage et des fonctionnalités à réaliser (cryptage, décryptage) ainsi que les résultats à afficher. Note : On attachera une attention particulière à la décomposition par raffinements successifs de la solution ainsi qu'à la documentation (javadoc). Rappels : • déclarer la variable int i de valeur initiale '1' (int i = '1';)correspond à lui affecter la valeur de son code ASCII ( ici 49 ) . • déclarer la variable char a de valeur initiale 49 (char a = 49;)correspond à lui affecter la valeur du caractère de code ASCII 49 (ici '1'). Ce que vous devez rendre Votre projet doit être développé sous bluej. Il vous faut ensuite créer un fichier d'archive (.jar) de votre projet. Ce fichier contiendra le code source ainsi que les informations suivantes décrivant tout projet bluej: PROJECT TITLE: son titre PURPOSE OF PROJECT: en quelques mots clés VERSION or DATE: précisez les étapes réalisées HOW TO START THIS PROJECT: dans quelle classe se trouve la méthode main AUTHORS: vos nom et prénom USER INSTRUCTIONS: autre remarque utile Comment créer un fichier d'archive du projet Cliquez sur cette feuille pour ajouter les informations demandées ci-dessus 2/3 Ensuite, dans le menu Project, choisir l'option Create jar file. Cliquez sur continue. Un fichier suffixé par .jar est créé. C'est ce fichier qu'il vous faudra remettre selon les modalités ci-dessous. Comment rendre votre projet Pour remettre votre travail, vous utiliserez l'application SystemeTest que vous lancerez à partir de ce lien : http://java.cnam.fr/SystemeTest/. Pour vous loger sur cette application, il faut utiliser les mêmes identifiants qu'en TP., puis s'inscrire à l'UE NFP135. Pour plus d'informations sur cette application, reportez vous au tutoriel : http://deptinfo.cnam.fr/~graffion/SystemeTest/captureInscriptionAudit eurBG.htm La date ultime de remise est le 29 avril 2011 avant minuit. Attention, au delà de cette date, il vous sera impossible de rendre votre travail. Aucune dérogation ne sera faite. Pour plus de sécurité, ne pas attendre la dernière limite. 3/3