ajout TD sécu edit chiffrement

This commit is contained in:
2025-04-02 10:31:53 +02:00
parent a537b9ee58
commit 3067f58156

View File

@@ -5,9 +5,9 @@
"id": "ca34006a", "id": "ca34006a",
"metadata": {}, "metadata": {},
"source": [ "source": [
" ## Méthodes de Cryptographie\n", " ## Méthodes de Chiffrement\n",
"\n", "\n",
"> But du projet : Montrer différentes façons de crypter un message\n", "> But du projet : Montrer différentes façons de chiffrer un message\n",
"\n", "\n",
"La cryptographie est une discipline très ancienne. Elle est utilisée depuis l'antiquité et utilise différentes techniques. \n", "La cryptographie est une discipline très ancienne. Elle est utilisée depuis l'antiquité et utilise différentes techniques. \n",
"Je vous engage à lire la page wikipédia : https://fr.wikipedia.org/wiki/Histoire_de_la_cryptologie qui récapitule des exemples historiques dont certains sont plutôt surprenants. " "Je vous engage à lire la page wikipédia : https://fr.wikipedia.org/wiki/Histoire_de_la_cryptologie qui récapitule des exemples historiques dont certains sont plutôt surprenants. "
@@ -20,7 +20,7 @@
"source": [ "source": [
"# Cahier des charges\n", "# Cahier des charges\n",
"\n", "\n",
"Vous devez réaliser des fonctions permettant de mettre en oeuvre les différentes méthodes de cryptographie. Essayer de respecter ce qu'il est proposé de faire. \n", "Vous devez réaliser des fonctions permettant de mettre en oeuvre les différentes méthodes de chiffrement. Essayer de respecter ce qu'il est proposé de faire. \n",
"\n", "\n",
"### Dans vos programmes vous devez : \n", "### Dans vos programmes vous devez : \n",
"* **Expliquer chacune des fonctions créées** , c'est-à-dire écrire une documentation de la fonction (docstring). Cette documentation devra expliquer le principe de la transformation réalisée par votre code python. \n", "* **Expliquer chacune des fonctions créées** , c'est-à-dire écrire une documentation de la fonction (docstring). Cette documentation devra expliquer le principe de la transformation réalisée par votre code python. \n",
@@ -41,7 +41,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"# Présentation du projet\n", "# Présentation du projet\n",
"Ci-dessous, je vous présente les techniques de cryptographie qu'il faudra mettre en oeuvre:" "Ci-dessous, je vous présente les techniques de chiffrement qu'il faudra mettre en oeuvre:"
] ]
}, },
{ {
@@ -70,8 +70,8 @@
"* la possibilité de **choisir une valeur de décalage**\n", "* la possibilité de **choisir une valeur de décalage**\n",
"* le **chiffrement d'un caractère** en tenant compte de ce décalage. \n", "* le **chiffrement d'un caractère** en tenant compte de ce décalage. \n",
"* le **chiffrement d'une phrase complète** (tenir des caractères spéciaux : les espaces, les chiffres..) \n", "* le **chiffrement d'une phrase complète** (tenir des caractères spéciaux : les espaces, les chiffres..) \n",
"* le **déchiffement d'une phrase cryptée en connaissant le décalage**. \n", "* le **déchiffement d'une phrase chiffrée en connaissant le décalage**. \n",
"* la possibilité de **déchiffrer une phrase cryptée sans connaitre le décalage initiale**." "* la possibilité de **déchiffrer une phrase chiffrée sans connaitre le décalage initiale**."
] ]
}, },
{ {
@@ -104,7 +104,7 @@
"**Il faudra proposer** : \n", "**Il faudra proposer** : \n",
"* un **alphabet aléatoire** qui correspond à un **mélange de lettre** comme par exemple : `ykcodmfjgzaxrnbutqiphwesvl` \n", "* un **alphabet aléatoire** qui correspond à un **mélange de lettre** comme par exemple : `ykcodmfjgzaxrnbutqiphwesvl` \n",
"* le **chiffrement d'un caractère puis d'une phrase en tenant compte du mélange obtenue**. \n", "* le **chiffrement d'un caractère puis d'une phrase en tenant compte du mélange obtenue**. \n",
"* le **déchiffrement d'une phrase cryptée en connaissant le mélange de lettre**." "* le **déchiffrement d'une phrase chiffrée en connaissant le mélange de lettre**."
] ]
}, },
{ {
@@ -136,7 +136,7 @@
"![img2.jpg](attachment:img2.jpg)\n", "![img2.jpg](attachment:img2.jpg)\n",
"\n", "\n",
"On a intercepté un message, mais on ne connaît pas la substitution. \n", "On a intercepté un message, mais on ne connaît pas la substitution. \n",
"**Comment utiliser les statistiques pour décrypter le message ?** \n", "**Comment utiliser les statistiques pour déchiffrer le message ?** \n",
"\n", "\n",
"Voici une méthode dattaque : dans le texte chiffré, on cherche la lettre qui apparaît le plus, et si le texte est assez long, cela devrait être le chiffrement du `E`, la lettre qui apparaît ensuite dans létude des fréquences devrait être le chiffrement du `S`, puis le chiffrement du `A, I, N, T`... \n", "Voici une méthode dattaque : dans le texte chiffré, on cherche la lettre qui apparaît le plus, et si le texte est assez long, cela devrait être le chiffrement du `E`, la lettre qui apparaît ensuite dans létude des fréquences devrait être le chiffrement du `S`, puis le chiffrement du `A, I, N, T`... \n",
"\n", "\n",
@@ -151,7 +151,7 @@
"\n", "\n",
" j : 7 \td : 5 \tm : 3 \tb, l, t, w : 2\n", " j : 7 \td : 5 \tm : 3 \tb, l, t, w : 2\n",
"\n", "\n",
"On suppose donc que le j crypte la lettre E, le d la lettre S, ce qui donne :\n", "On suppose donc que le j chiffre la lettre E, le d la lettre S, ce qui donne :\n",
"\n", "\n",
" E* S* ** ESS***** * E**E *E**E*SES\n", " E* S* ** ESS***** * E**E *E**E*SES\n",
"\n", "\n",
@@ -167,11 +167,11 @@
"\n", "\n",
" ET S* ** ESS****T * ET*E *E**E*SES\n", " ET S* ** ESS****T * ET*E *E**E*SES\n",
" \n", " \n",
"En cherchant où placer les lettres les plus fréquentes suivantes (`A, I, N`) puis les autres, avec un peu de patience et de bon sens, on décrypte le message :\n", "En cherchant où placer les lettres les plus fréquentes suivantes (`A, I, N`) puis les autres, avec un peu de patience et de bon sens, on déchiffre le message :\n",
"\n", "\n",
" ET SI ON ESSAYAIT D ETRE HEUREUSES\n", " ET SI ON ESSAYAIT D ETRE HEUREUSES\n",
"\n", "\n",
"**Il faudra proposer cette méthode d'attaque statistique pour déchiffrer un message crypté par la méthode de chiffrement par substitution dont on ne connait pas le méménage des lettres ayant servi à crypter.**" "**Il faudra proposer cette méthode d'attaque statistique pour déchiffrer un message chiffré par la méthode de chiffrement par substitution dont on ne connait pas le méménage des lettres ayant servi à chiffrer.**"
] ]
}, },
{ {
@@ -180,7 +180,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Énigmes. \n", "### Énigmes. \n",
"Essayer de décrypter les trois citations suivantes. Chacune a été chiffrée par une substitution différente.\n", "Essayer de déchiffrer les trois citations suivantes. Chacune a été chiffrée par une substitution différente.\n",
"Les frères Goncourt : \n", "Les frères Goncourt : \n",
"\n", "\n",
" ay dmymndmnxlv vdm ay shvjnvhv fvd dznvgzvd ngvcyzmvd\n", " ay dmymndmnxlv vdm ay shvjnvhv fvd dznvgzvd ngvcyzmvd\n",
@@ -240,13 +240,19 @@
"**Il faudra proposer** :\n", "**Il faudra proposer** :\n",
"* le **découpage d'une phrase en bloc** de n lettres\n", "* le **découpage d'une phrase en bloc** de n lettres\n",
"* la **création d'une clé** de n nombres de 0 à 25\n", "* la **création d'une clé** de n nombres de 0 à 25\n",
"* le **chiffrement de chaque lettre** d'un bloc par la clé pour aboutir à un message crypté.\n", "* le **chiffrement de chaque lettre** d'un bloc par la clé pour aboutir à un message chiffré.\n",
"\n", "\n",
"Peut-être pouvez-vous proposer de décrypter un message ? Dans ce cas essayer de décrypter le message suivant (et trouvez son auteur) qui a été codé par un chiffrement de Vigenère avec une clé (inconnue !) de longueur 4.\n", "Peut-être pouvez-vous proposer de dechiffrer un message ? Dans ce cas essayer de déchiffrer le message suivant (et trouvez son auteur) qui a été codé par un chiffrement de Vigenère avec une clé (inconnue !) de longueur 4.\n",
"\n", "\n",
" DL ZHGIVUEL OD UL LQK TYDVL OIL XEU DLC YEIOSASOI KVXJ KBBI WA PYWYC T WBH\n", " DL ZHGIVUEL OD UL LQK TYDVL OIL XEU DLC YEIOSASOI KVXJ KBBI WA PYWYC T WBH\n",
" QDVBI IBO BWZ QUFZ SDLLVBANODLZ CEFA OCHSSI VL NEMAOI\n" " QDVBI IBO BWZ QUFZ SDLLVBANODLZ CEFA OCHSSI VL NEMAOI\n"
] ]
},
{
"cell_type": "markdown",
"id": "35d5473d",
"metadata": {},
"source": []
} }
], ],
"metadata": { "metadata": {