Skip to content
Snippets Groups Projects
Commit 50997e23 authored by Vincent Namy (EDU_GE)'s avatar Vincent Namy (EDU_GE)
Browse files

[Cesar] Fix typo

parent dce3d226
Branches
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
<div style="padding:20px;background-color:papayawhip;" >
<h3 style="color:chocolate"> <i class="fa fa-info" aria-hidden="true"> </i> &nbsp; Remarque introductive &nbsp; <i class="fa fa-info" aria-hidden="true"></h3>
<p> Ce fichier est fait pour être lu sur le site <a href="https://notebook.basthon.fr/"><img src='https://notebook.basthon.fr/assets/efede5218c9087496f16.png' style="border: 0; display:inline; margin: 0 5px; height:30px" alt="Basthon"/></a>. <br>
Si vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>
Veuillez cliquez sur <a href="https://notebook.basthon.fr/">ce lien</a> et y charger ce fichier à l'aide du bouton "Ouvrir" &nbsp; <i class="fa fa-folder" aria-hidden="true"> </i>
</p> </div>
%% Cell type:markdown id: tags:
# Chiffrement symétrique - Le chiffrement de César
Dans ce chapitre, nous allons voir comment déchiffrer en python un message chiffré grâce au chiffrement de César
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 1 </h3>
On fournit une fonction `decale_car(car, decal)`qui renvoie le caractère `car` décalé dans l'alphabet d'un décalage `decal`.
Testez-là pour décaler :
1) la lettre B de 3 caractères
2) la lettre X de 10 caractères
%% Cell type:code id: tags:
``` python
def decacle_car(car, decal):
def decale_car(car, decal):
pos_a = ord("a") # position du 'a' dans la table ASCII
pos_car = ord(car.lower())# position de car en minuscule dans la table ASCII
caractere_decale = chr((pos_car - decal - pos_a) % 26 + pos_a)
return caractere_decale
# Votre code ci-dessous
print( decale_car("...", ...) )
...
```
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 2</h3>
Toujours avec la fonction `decale_car(car, decal)` à disposition, on va maintenant essayer de déchiffrer un message entier.
Le code suivant permet de décaler chaque lettre pour déchiffrer un message entier, malheureusement vous ne connaissez pas la clé. Changez la valeur du décalage à la main pour tester toutes les clés possibles et trouver quelle est la clé et le message déchiffré.
%% Cell type:code id: tags:
``` python
decalage = 0
msgChiffre = "un bxunru karuun bda brbvxwmr"
print("Message chiffré : ", msgChiffre)
msgDechiffre = ''
for caractere in msgChiffre: # pour chaque caractère du message
if caractere != ' ': # sauf les espaces
caractere_decale = decacle_car(caractere, decalage)
caractere_decale = decale_car(caractere, decalage)
msgDechiffre = msgDechiffre + caractere_decale
else:
msgDechiffre = msgDechiffre + caractere
print("Valeur du décalage:", decalage)
print("Message déchiffré : ", msgDechiffre)
```
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 3</h3>
Avec le même code mais un nouveau message, on va maintenant tester toutes les clés possibles automatiquement pour trouver quelle est la clé et le message déchiffré.
Modifiez pour cela le code ci-dessous afin qu'il teste tous les décalages possibles automatiquement et affiche tous les résultats.
%% Cell type:code id: tags:
``` python
msgChiffre = "et engx xlm iexbgx vxmmx gnbm"
print("Message chiffré : ", msgChiffre)
decalage = 0
msgDechiffre = ''
for caractere in msgChiffre: # pour chaque caractère du message
if caractere.isalpha(): # sauf les espaces
caractere_decale = decacle_car(caractere, decalage)
caractere_decale = decale_car(caractere, decalage)
msgDechiffre = msgDechiffre + caractere_decale
else:
msgDechiffre = msgDechiffre + caractere
print("Valeur du décalage:", decalage, "Message déchiffré : ", msgDechiffre)
```
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> &nbsp; Exercice 4 </h3>
Réutilisez le même code pour déchiffrer le message suivant par force brute :
```
"""qrznva, qrf y'nhor, n y'urher bh oynapuvg yn pnzcntar,
wr cnegvenv. ibvf-gh, wr fnvf dhr gh z'nggraqf.
w'venv cne yn sberg, w'venv cne yn zbagntar.
wr ar chvf qrzrhere ybva qr gbv cyhf ybatgrzcf.
wr znepurenv yrf lrhk svkrf fhe zrf crafrrf,
fnaf evra ibve nh qrubef, fnaf ragraqer nhpha oehvg,
frhy, vapbaah, yr qbf pbheor, yrf znvaf pebvfrrf,
gevfgr, rg yr wbhe cbhe zbv fren pbzzr yn ahvg.
wr ar ertneqrenv av y'be qh fbve dhv gbzor,
av yrf ibvyrf nh ybva qrfpraqnag iref unesyrhe,
rg dhnaq w'neevirenv, wr zrggenv fhe gn gbzor
ha obhdhrg qr ubhk ireg rg qr oehlrer ra syrhe."""
```
%% Cell type:code id: tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment