-
Sylvain Melot a rédigéSylvain Melot a rédigé
author: Sylvain Melot
title: 2. Les chiffrements symétriques mono-alphabétiques
Les chiffrements symétriques mono-alphabétiques
!!! info "Chiffrements mono-alphabétiques"
- Dans méthode de cryptographie basée sur un chiffrement par **substitution mono-alphabétique**, la lettre d'origine n'est remplacée que par une unique autre lettre.
- Ce sont des chiffrements faciles à casser.
I. Le chiffrement de César
« Il y employait, pour les choses tout à fait secrètes, une espèce de chiffre qui en rendait le sens inintelligible (les lettres étant disposées de manière à ne pouvoir jamais former un mot), et qui consistait, je le dis pour ceux qui voudront les déchiffrer, à changer le rang des lettres dans l'alphabet, en écrivant la quatrième pour la première, c'est-à-dire le d pour le a, et ainsi de suite. »
— Suétone, Vie des douze Césars, (environ an 110)
!!! info "Principe du chiffrement de César:"
**La méthode de Jules César** pour ses correpondances secrétes consistait à choisir un entier `n` constituant la clé et à décaler chaque lettre du message initial de `n` lettres dans l'alphabet (en recommençant à "A" si le décalage fait dépasser "Z").
!!! question "Question:"
Nous pouvons appeler "clé" le décalage `decalage` de cet exercice.
La connaissance de cette clé permet-elle de déchiffrer un message chiffré ?
??? success "Solution:"
Pour déchiffrer, il suffit d'utiliser le même procédé avec la clé opposée, par exemple -4 si on a chiffré avec 4.
1.1. Les fonctions ord() et chr().
La fonction ord(n)
prend un caractère en argument et renvoie le code Unicode caractère lui correspondand sous forme d'un entier.
La fonction chr(n)
prend un code Unicode caractère sous forme d'un entier en argument et renvoie le caractère correspondant.
!!! question "Executer le script ci-dessous:"
{{IDE('scripts/c_1')}}
1.2. Le dictionnaire de chiffrement
!!! question "Exécuter le script ci-dessous:"
{{IDE('scripts/c_2')}}
1.3. La fonction de chiffrement
!!! question "Compléter le script ci-dessous:"
{{IDE('scripts/c_3')}}
1.4. La fonction de déchiffrement
!!! question "Compléter le script ci-dessous:"
{{IDE('scripts/c_4')}}
!!! warning "Validité du chiffrement de César"
- Si on utilise 26 lettres majuscules, il n’existe que 25 clés possibles! On peut le casser très facilement par la [force brute](https://www.cnil.fr/fr/definition/force-brute-attaque-informatique){:target="_blank" }
- Seul, il n'offre aucune sécurité de communication, à cause du très faible nombre de clés, ce qui permet d'essayer systématiquement celles-ci quand la méthode de chiffrement est connue, mais aussi parce que, comme tout encodage par substitution monoalphabétique, il peut être très rapidement « cassé » par **analyse de fréquences** (certaines lettres apparaissent beaucoup plus souvent que les autres dans une langue naturelle).
II. Le chiffrement par substitution
!!! info "Principe du chiffrement par substitution"
On remplace une lettre par une autre de l’alphabet, on a donc 26! ≈ 4×10<sup>26</sup> clés possibles.
Avec la clé suivante:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AZERTYUIOPQSDFGHJKLMWXCVBN
le message `SUBSTITUTION`devient `LWZLMOMWMOGF`.
!!! warning "Validité du chiffrement par substitution"
- Le chiffrement par substitution peut être cassé facilement par [analyse fréquentielle](https://fr.wikipedia.org/wiki/Analyse_fr%C3%A9quentielle){:target="_blank" }
III. Le chiffrement affine
3.1. Le chiffrement linéaire.
!!! info "Le chiffrement linéaire"
**Le chiffrement linéaire consiste à multiplier** le nombre correspondant à la lettre par un même nombre, que l’on appellera
également clé de codage.
!!! question "Questions: "
- Compléter le tableau de chiffrage pour la clé 3.
Exemple: Lorsque l’on multiplie 19 par 3 on obtient 57. Comme 57 = 2 * 26 + 5 le nombre associé à 19 est 5 donc la lettre S est chiffrée par la lettre E.
{ width=80%; : .center }
??? tip "Solution"
C'est le nœud A.
<li>Quelles sont les feuilles de l'arbre ?</li>
??? tip "Solution"
Ce sont les nœuds C, D, H, I et G.
<li>Quels sont les nœuds contenus dans le sous-arbre gauche du nœud E ?</li>
??? tip "Solution"
Ce sont les nœuds F, H, et I.
</ol>
!!! danger "BILAN"
Il faut enfin réaliser ***une fiche de cours*** (sur une feuille simple) en faisant apparaitre les notions importantes de ce cours :
- Connaitre le principe du chiffrement de César.
- Connaitre le principe du chiffrement par substitution.
- Connaitre le principe du chiffrement affine.
- Connaitre le principe du chiffrement de Vigenere.