Outils pour utilisateurs

Outils du site


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

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)

  • letter est un caractère,
    • si c'est une lettre majuscule de A à Z, sans accent, elle sera décalée
    • sinon elle sera inchangée
  • n est 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)

  • text est la chaîne de caractère à chiffrer. De préférence, des majuscules et des caractères de ponctuation,
  • n est 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)

  • crypted est la chaîne de caractère du texte chiffré,
  • n est 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