Objectif du projet :
Etape 1) :
- Réaliser plusieurs programmes permettant de crypter un message de différentes manières (comme le décalage de César).
- Réaliser les programmes de décryptage correspondants permettant de retrouver les messages originaux.
- Permettre l’utilisation réelle de ce système en incluant la possibilité de transmettre le message codé sous forme de fichier (envoi par mail par exemple).
Etape 2) :
- Créer un site internet (langages html et css) présentant la cryptographie et plus particulièrement notre projet.
- Inclure les programmes de cryptage et de décryptage dans le site pour les rendre accessibles en ligne.
Environnement de travail et ressources :
Nous avons choisi le langage python car nous l’avons étudié en début d’année et qu’il correspondait à nos besoins. De plus, étant donné le temps limité, nous n’aurions pu apprendre un autre langage. Nous nous sommes au début renseigné sur les bibliothèques dédiées au cryptage mais celles que nous avons trouvées étaient expliquées uniquement en anglais et semblaient dédiées à des usages plus poussés que notre projet. Nous nous sommes rapidement rendu compte que le langage Python « nu » (sans bibliothèques) suffisait amplement à nos besoins.
Réalisation
Pour ma part, j’ai principalement codé les encodeurs et les décodeurs à l’aide de Matthieu. J’ai créé celui encodant en ASCII à l’aide d’une fonction transformant une chaîne de caractères en code ASCII que nous avions vu en cours en début d’année lors de notre travail sur les 2Dcodes. Ce fut notre premier encodeur.
Dans ce celui-ci, seules 3 fonctions sont présentes :
- en premier lieu, une fonction permettant à l’utilisateur de rentrer un message. Celle-ci permet d’initialiser le programme et de le lancer. Elle permet de convertir le message en chaîne de caractère et de l’assignée comme valeur à la variable « chaine » et ainsi de l’utiliser dans la seconde fonction.
- la seconde fonction est une fonction de conversion, elle convertit la chaîne de caractères en code ASCII en remplaçant ceux-ci par leur numéro dans la table ASCII. C’est le « ord » qui définit cela.
- La dernière fonction permet de placer le code dans un fichier et de l’enregistrer dans le dossier où le programme est stocké. Celui-ci sera par la suite exploité par le décodeur. Cette idée fournie par Matthieu permet une quasi automatisation du décodeur.