Exercices
Chapitre 4: Sécurisation des communications*
Pour réaliser ces exercices on peut utiliser le module string de python.
# crée une chaîne de caractères avec l'alphabet
from string import ascii_uppercase as alphabet
print(alphabet) # affiche ABCDEFGHIJKLMNOPQRSTUVWXYZ
# accès aux caractères par l'index
alphabet[0], alphabet[25] # renvoie "A", "Z"
# recherche d'un caractère
alphabet.index("A"), alphabet.index("Z") # renvoie 0, 25
# Méthode str.upper pour mettre une chaîne de caractère en majuscules
"Message".upper() # renvoie "MESSAGE"1 Implémenter des chiffrements symétriques en Python
Implémenter le chiffrement de César en créant une fonction
cesarqui prend deux paramètres:messageune chaîne de caractères à (dé)coder.nun entier qui donne le décalage.
Cette fonction doit convertir le message en majuscule, et décaler toutes les lettres de grâce au codage César, et laisser tous les autres caractères inchangés(ponctuation).
Voici une série de tests à passer.
assert cesar('message', 0) == "MESSAGE" assert cesar('message', 1) == 'NFTTBHF' assert cesar('message', -1) == 'LDRRZFD' assert cesar('message', 26) == 'MESSAGE' assert cesar('message', 53) == 'NFTTBHF' assert cesar('message', -27) == 'LDRRZFD' eluard = """Sur mes cahiers d’écolier Sur mon pupitre et les arbres Sur le sable sur la neige J’écris ton nom""" assert cesar(eluard, 13) == 'FHE ZRF PNUVREF Q’ÉPBYVRE\nFHE ZBA CHCVGER RG YRF NEOERF\nFHE YR FNOYR FHE YN ARVTR\nW’ÉPEVF GBA ABZ' # vérification du décodage assert cesar(cesar(eluard, 13), -13) == eluard.upper()Implémenter le chiffrement par substitution avec une fonction
substitutionqui prend deux paramètres:messageune chaîne de caractères à (dé)coder.cléune chaîne de caractères qui donne les correspondances des caractères. Par exemple:AZERTYUIOPQSDFGHJKLMWXCVBNdans le cours.
On pourra vérifier son fonctionnement sur l’exemple du cours:
Comment devra être effectué le décodage à partir du message codé et de la clé?
Implémenter le chiffrement de Vigenère avec une fonction
vigenèrequi prend deux paramètres:messageune chaîne de caractères à (dé)coder.cléune chaîne de caractères qui donne les décalages des caractères. Par exemple:ABCdans le cours.
On pourra vérifier son fonctionnement sur l’exemple du cours:
Comment devra être effectué le décodage à partir du message codé et de la clé?