Activité 1: chiffrement de César
Votre but est de faire passer un message à un camarade de façon à ce qu'il puisse le lire mais que vos autres camarades ne puissent pas le déchiffrer. Vous allez utiliser une méthode de chiffrement assez simple, que l'on appelle chiffre de César parce que Jules César lui-même l'aurait utilisée pour garder un minimum de confidentialité dans certaines de ses correspondances.
Voici les étapes de l'activité:
- Choisissez un camarade qui se trouve relativement loin de votre place habituelle, et mettez-vous d'accord sur un décalage de l'alphabet que vous utiliserez pour chiffrer vos messages. Par exemple,
- avec un décalage de +2, la lettre C se transformera en E et Z se transformera en B
- avec un décalage de -2, C se transformera en A et A se transformera en Y
- Revenez à vos places habituelles et écrivez un message chiffré sur un bout de papier. Indiquez en clair qui est le destinataire du message et faites passer le bout de papier.
- Quand vous faites passer des papiers, vous pouvez discrètement copier un message qui n'est pas pour vous, pour pouvoir ensuite tenter de le décrypter
- Quand vous recevez un message qui est pour vous, vous devriez pouvoir facilement le déchiffrer
Au début de l'activité, vous ne pouvez utiliser que le papier et stylo/crayon. À un moment, l'enseignant pourra peut-être autoriser l'utilisation de l'ordinateur pour vous aider... ou pas.
Vous pouvez également utiliser une roue de César pour faciliter le chiffrement.
Vous devez écrire un programme ou quelques fonctions en Python pour vous aider, grâce aux outils suivants:
-
- la fonction
ord()transforme une lettre en nombre (code ASCII); si on lui soustraitord('A')on obtient un nombre entre 0 et 25 (remarque: si on veut imiter Jules César, on ne travaille qu'avez des lettres majuscules et non accentuées) - la fonction
chr()transforme un nombre (code ASCII) en lettre; si on commence avec un nombre entre 0 et 25 il faut d'abord lui ajouterord('A') - en réfléchissant un peu, vous devriez voir que si on dépasse 25 lors d'une addition, on peut retrouver un nombre entre 0 et 25 avec le reste d'une division... Ca marche aussi pour les nombres plus petits que 0 si on utiliser une extension de la notion de reste qui s'appelle l'opération modulo, et c'est justement ce que fait l'opérateur
%dans Python!
- la fonction