BTS SIO
SI4 LES BASES DE LA PROGRAMMATION
LANGAGE PYTHON
Lycée des Métiers Jacques Prévert
Combs la Ville
Section BTS Services Informatiques aux Organisations
1
Test : LE CODAGE AFFINE
Contexte :
La cryptographie est une des disciplines de la cryptologie s’attachant à protéger des
messages (assurant confidentialité, authenticité, et intégrité) en s’aidant souvent de
secrets ou clés. (source wikipédia).
Le codage affine ou chiffre affine est une méthode de cryptographie basée sur un
chiffrement par substitution. Il s’agit d’un code simple mais aussi un des plus faciles à
casser.
Le chiffrement est la transformation à l’aide d’une clé, d’un message en clair (texte
clair) en un message incompréhensible (texte chiffré) pour celui qui ne dispose pas
de la clé de déchiffrement (encryption key).
Objectif :
On souhaite analyser le principe du codage affine et réaliser un programme rédigé
en python pour coder un message.
Principe du codage affine :
- Chaque lettre de l’alphabet est associée à son rang :
A est associé à 1, B à 2……..Z à 25.
Soit x, entier qui correspond à ce nombre.
A
B
C
D
E
F
G
H
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0
1
2
3
4
5
6
7
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- 2 entiers a et b sont choisis comme clé. Chaque lettre est d’abord remplacée
par x puis chiffrée par le calcul du reste de la division euclidienne par 26 de
l‘expression affine (ax+b), soit (ax+b)%26.
BTS SIO
SI4 LES BASES DE LA PROGRAMMATION
LANGAGE PYTHON
Lycée des Métiers Jacques Prévert
Combs la Ville
Section BTS Services Informatiques aux Organisations
2
Exemple :
Pour chiffrer le mot CODE grâce au code affine de clé (17,3), il faut procéder ainsi :
a) CODE 2 ; 14 ;3 ;4
b) y = 17x + 3 37 ; 241 ; 54 ; 71
c) 37%26 = 11 ; 241%26= 7 ; 54%26 = 2 ; 71%26 =19.
d) Retranscription en lettres L H C T
Le codage affine de clé (17,3) de CODE est LHCT.
Activité:
On souhaite écrire un programme qui code un message avec la clé (17,3). Ce
programme se composera de 3 fonctions :
- convertirChaine_enListe(message) qui transforme une chaîne de caractères
en une liste de nombres.
- convertirListe_enListeCode(listeNombres) qui transforme une liste de
nombres en une liste de nombres codée.
- convertirListe_enChaine(listeNombres) qui transforme une liste de
nombres en une chaîne de caractères.
et du programme principal qui devra :
- lire une chaîne de caractères dans un message
- convertir le message en une liste de nombres en appelant la fonction
convertirChaine_enListe(message).
- convertir la liste de nombres en une liste de nombres codés en appelant la
fonction convertirListe_enListeCode( liste_de_nombres)
- convertir la liste de nombres codée en une chaîne de caractères en appelant
la fonction convertirListe_enChaine(liste_de_nombres)
BTS SIO
SI4 LES BASES DE LA PROGRAMMATION
LANGAGE PYTHON
Lycée des Métiers Jacques Prévert
Combs la Ville
Section BTS Services Informatiques aux Organisations
3
Le programme principal est le suivant :
message=input("Entrer le message à coder:\n")
listeNombres=convertirChaine_enListe(message)
print(listeNombres)
Réaliser la fonction convertirChaine_enListe(mes) :
def convertirChaine_enListe(mes) :
………………………………………….
return liste
Réaliser la fonction convertirListe_enListeCode(listeNombres)
Ajouter l’appel de cette fonction dans le programme principal ; la fonction retourne
une liste appelée listeNombresCodes.
Traduire en Python l’algorithme suivant :
fonction convertirListe_enListeCode(listedeNombres) :
l longueur de liste-de-Nombres
liste [ ]
Pour i allant de 0 à l :
nombreCode (17*listeNombres[i] +3)%26
ajouter à liste (nombreCode)
retourne(liste)
BTS SIO
SI4 LES BASES DE LA PROGRAMMATION
LANGAGE PYTHON
Lycée des Métiers Jacques Prévert
Combs la Ville
Section BTS Services Informatiques aux Organisations
4
Réaliser la fonction convertirListe_enChaine(listeNombres)
Ajouter l’appel de cette fonction dans le programme principal ; la fonction retourne
une liste appelée ChaineCodes.
Traduire en Python l’algorithme suivant :
fonction convertirListe_enChaine(listeNombres):
tableau
[”A”,”B”,”C”,”D”,”E”,”F”,”G”,”H”,”I”,”J”,”K”,”L”,”M”,”N”,”O”,”P”,”Q”,”R”,”S”,”T”,”U”,”V”,”
W”,”X”,
l longueur de listeNombres
message ” ”
Pour i allant de 1 à l :
numero liste de nombres[i]
lettretableau[numero - 1]
message message + lettre
retourne(message)
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !