Il manque quelques explications avant la question 1.
Si je comprends bien,on fait un cryptage par décalage.
On a un "ruban" de 26 lettres AB...YZ
Le message à crypter contient des majuscules , des espaces, des ponctuations, ... Seules les lettres sont cryptées dans cet exercice.
On utilise donc une fonction de décalage, f(x)
x, c'est le rang de la lettre, par ex: A : 1 , B: 2 , ... Z : 26
f(x) donne le rang de la lettre de substitution.
On reste sur le ruban
Exemple : f(x) = 4x +5
A : x = 1 f(x) = 9 ; A est remplacé par la 9e lettre, I
E : x = 4 f(x) = 25 ; E est remplacé par la 25e lettre, Y
F : x = 6 f(x) = 29 ; plus grand que 26
25 26 27 28 29
Y Z A B C
La 29eme lettre c'est C . On remarque que c'est 26+3
Donc : 29 modulo 26 : c'est 3
Finalement , la substitution de la lettre de rang x se fat par la lettre de rang y = mod (f(x), 26) mod étant la fonction modulo qui renvoie le RESTE de la division de f(x) par 26
en python, ce sera l'opérateur % qui sera utilisé.
J : x = 10 f(x) = 45 ; 45 modulo 26 = 19 donc S remplace J
a) TYPES DE VARIABLES
lettre : un caractère, une chaine de caractères
a : entier , comme b
par exemple, si notre fonction est :
f(x) = 4x + 5 , alors, a vaut 4 et b vaut 5
codage :
fichier joint
Pour tester le code : il y a un interpreteur en ligne : cherche "trinket python3"
Tu pourras y copier le code, et l'exécuter.
Le projet est là https://trinket.io/python3/717ca70a2f
TRACES
TEST DE crypte() AVEC f(x)=x+1 , décalage de 1
codage de ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
on remarque que chaque lettre dans le codage n apparait qu une fois
ce sera décodable
TEST DE crypte() AVEC f(x)=4x+5
codage de ABCDEFGHIJKLMNOPQRSTUVWXYZ
FJNRVZDHLPTXBFJNRVZDHLPTXB
on remarque que des lettres dans le codage apparaissent plusieurs fois
ce sera indécodable
TEST DE crypte_phrase() AVEC f(x)=4x+5
La phrase : VIVE LA LIBERTE
Le codage : LLLV XF XLJVVDV
on remarque que V et I sont codees par L
ce sera indécodable : L vaut I ou V ?
0 votes Thanks 0
fffarid
"...écrire dans la console.." Je ne comprends pas. Comment code-tu en python ? Avec un atelier en ligne ? Avec une application PC , comme eduPython ?
labananedu88
Le cryptage affine consiste à - choisir une fonction affine telle que f(x)=ax + b -Associer à chaque lettre son rang dans l’alphabet ( a = 0 b =1…z=25) - calculer l’image de ce rang par la fonction f - Calculer le reste de la division euclidienne de cette image par 26 - remplacer chaque lettre par la lettre de l’alphabet correspondant à ce reste
labananedu88
La photo n’a pas inclu ce que je viens d’envoyer qui se situe tout en haut de la feuille
labananedu88
J’utilise edupython mais quand je rentre le programme et que j’exécute ça ne me mets rien je suis obliger de devoir taper un truc dans la console pour que ça puisse marcher
labananedu88
J’y suis bien arrivée là question 1 2)a) et 2b) merci beaucoup je voulais juste vous demander si vous pourriez m’expliquer pour les derniers questions quand ça demande de justifier les phrases de 10 à 13 svpp
Lista de comentários
Réponse :
Explications :
Il manque quelques explications avant la question 1.
Si je comprends bien,on fait un cryptage par décalage.
On a un "ruban" de 26 lettres AB...YZ
Le message à crypter contient des majuscules , des espaces, des ponctuations, ... Seules les lettres sont cryptées dans cet exercice.
On utilise donc une fonction de décalage, f(x)
x, c'est le rang de la lettre, par ex: A : 1 , B: 2 , ... Z : 26
f(x) donne le rang de la lettre de substitution.
On reste sur le ruban
Exemple : f(x) = 4x +5
A : x = 1 f(x) = 9 ; A est remplacé par la 9e lettre, I
E : x = 4 f(x) = 25 ; E est remplacé par la 25e lettre, Y
F : x = 6 f(x) = 29 ; plus grand que 26
25 26 27 28 29
Y Z A B C
La 29eme lettre c'est C . On remarque que c'est 26+3
Donc : 29 modulo 26 : c'est 3
Finalement , la substitution de la lettre de rang x se fat par la lettre de rang y = mod (f(x), 26) mod étant la fonction modulo qui renvoie le RESTE de la division de f(x) par 26
en python, ce sera l'opérateur % qui sera utilisé.
J : x = 10 f(x) = 45 ; 45 modulo 26 = 19 donc S remplace J
a) TYPES DE VARIABLES
lettre : un caractère, une chaine de caractères
a : entier , comme b
par exemple, si notre fonction est :
f(x) = 4x + 5 , alors, a vaut 4 et b vaut 5
codage :
fichier joint
Pour tester le code : il y a un interpreteur en ligne : cherche "trinket python3"
Tu pourras y copier le code, et l'exécuter.
Le projet est là https://trinket.io/python3/717ca70a2f
TRACES
TEST DE crypte() AVEC f(x)=x+1 , décalage de 1
codage de ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
on remarque que chaque lettre dans le codage n apparait qu une fois
ce sera décodable
TEST DE crypte() AVEC f(x)=4x+5
codage de ABCDEFGHIJKLMNOPQRSTUVWXYZ
FJNRVZDHLPTXBFJNRVZDHLPTXB
on remarque que des lettres dans le codage apparaissent plusieurs fois
ce sera indécodable
TEST DE crypte_phrase() AVEC f(x)=4x+5
La phrase : VIVE LA LIBERTE
Le codage : LLLV XF XLJVVDV
on remarque que V et I sont codees par L
ce sera indécodable : L vaut I ou V ?
- choisir une fonction affine telle que f(x)=ax + b
-Associer à chaque lettre son rang dans l’alphabet ( a = 0 b =1…z=25)
- calculer l’image de ce rang par la fonction f
- Calculer le reste de la division euclidienne de cette image par 26
- remplacer chaque lettre par la lettre de l’alphabet correspondant à ce reste