"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre l 0 • Travaux pratiques
l 0.8 CRYPTOGRAPHIE
Énoncé
a) Le problème
On considère un texte composé uniquement de caractères minuscules et d ' espaces
comme 'bonjour tout le monde' par exemple. On peut crypter ce texte en remplaçant
chaque lettre par la lettre obtenue par un décalage circulaire de +3 dans l' alphabet.
Par exemple 'a' devient 'd', 'b' devient 'e', ... ,'y' devient 'b' et 'z' devient 'c'. Donc le
message 'bonjour tout le monde' devient 'erqmrxu wrxw oh prqgh'. On parle de
codage par la méthode de César avec le décalage 3.
~ On définit de même le codage par la méthode de César avec le décalage d (où d est
~ un entier compris entre 0 et 25).
246
Le but de ce TP est de décrypter le message 'tew wm jegmpi uyi gipe pi gsheki
hi giwev', codé par la méthode de César, sans connaître le décalage appliqué.
Nous appelerons message toute chaîne de caractères ne contenant que des
lettres minuscules et des espaces comme 'bonjour tout le monde' par exemple.
Toutes les fonctions ci-dessous devront être implémentées en Python.
a) Les questions
1) Écrire une fonction codage(message,d) qui à un message message et à un entier d
compris entre 0 et 25, renvoie le message codé par la méthode de César, avec le décalage d.
2) Écrire une fonction freq_lettres(messagecode) qui à un message messagecode
(un message codé) retourne la liste des fréquences des lettres de l'alphabet. Par
exemple, freq_lettres(texte)[O] devra être la fréquence du caractère 'a' dans le
message texte, etfreq_lettres(texte)[3], celle de 'd'.
3) Écrire une fonction calcul_auto_decal(messagecode) qui à un message
messagecode (un message codé), retourne le décalage probable, basé sur le fait que,
statistiquement, le caractère le plus présent dans un texte est 'e'.
4) Écrire un algorithme permettant de décrypter le message codé 'tew wm jegmpi
uyi gipe pi gsheki hi giwev'. On pourra remarquer que l'on obtient le décryptage
par utilisation de codage(textecode,-d), où d est le décalage utilisé pour coder.
Corrigé
a) Algorithme
Nom de l'algorithme crypage_César
Rôle : décrypter un message codé par la méthode de César
Entrée : ----------------Sortie : affichage du message décrypté
Précédent

- 254/302

Suivant