nsi:tds:cryptographie:chiffre_cesar
Ceci est une ancienne révision du document !
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Chiffre de César
Il s'agit d'une méthode de chiffrement très ancienne dont Jules César aurait fait usage. C'est un chiffre symétrique.
Méthode
Pour le chiffrement, il s'agit de décaler les lettres de l'alphabet. Par exemple, on peut décaler de +3, ainsi
- le A devient D,
- le B devient E,
- …
- le W devient Z,
- le X devient A,
- le Y devient B,
- le Z devient C.
Pour le déchiffrement, il suffit de décaler dans l'autre sens.
À faire
Fonction shift_letter
Vous devez écrire en Python une fonction shift_letter(letter, n)
letterest un caractère,- si c'est une lettre majuscule de A à Z, sans accent, elle sera décalée
- sinon elle sera inchangée
nest l'amplitude du décalage, positif ou négatif, n'est pas limité,- la fonction renvoie le résultat du décalage (ou pas de décalage si pas une majuscule sans accent)
Vous pourrez utiliser les fonctions
ord(letter)qui pour un caractère donné renvoie son code entier,chr(code)qui pour un code entier donné renvoie le caractère correspondant,- le modulo
%car n'oubliez pas qu'après Z on revient à A, il y a une idée de cercle et dans ces cas là le modulo est souvent très utile.
Fonction cypher
Vous devez écrire en Python une fonction cypher(text, n)
textest la chaîne de caractère à chiffrer. De préférence, des majuscules et des caractères de ponctuation,nest l'amplitude du décalage, dans notre cas, c'est la clé du chiffrement,- renvoie le texte chiffré.
Fonction decypher
Vous devez écrire en Python une fonction decypher(crypted, n)
cryptedest la chaîne de caractère du texte chiffré,nest l'amplitude du décalage, dans notre cas, c'est la clé du chiffrement,- renvoie le texte déchiffré.
Test
Pour vérifier le bon fonctionnement :
# message de Alice à Bob
crypted = cypher("BOB, PENSE A ACHETER DES TOMATES.", 13)
print(crypted)
# réponse chiffrée de Bob
message_reponse = decypher("VY A L RA NINVG CYHF, W'NV CEVF QR YN FNYNQR.", 13)
print(message_reponse)
nsi/tds/cryptographie/chiffre_cesar.1648319099.txt.gz · Dernière modification : de goupillwiki
