Skip to content
Extraits de code Groupes Projets
02_Chiffrements_symetriques_1.md 7,13 ko
Newer Older
---
author: Sylvain Melot
Sylvain Melot's avatar
Sylvain Melot a validé
title: 2. Les chiffrements symétriques mono-alphabétiques
# <center><p style="color: Dodgerblue;"> Les chiffrements symétriques mono-alphabétiques  </p></center>
Sylvain Melot's avatar
Sylvain Melot a validé

!!! 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.
## <u>I. Le chiffrement de César </u>
Sylvain Melot's avatar
Sylvain Melot a validé

![cal](images/c_5.jpg){ width=40%; : .center }

*« 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").
Sylvain Melot's avatar
Sylvain Melot a validé

Sylvain Melot's avatar
Sylvain Melot a validé


!!! question "Question:"

Sylvain Melot's avatar
Sylvain Melot a validé
    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.

### <u>1.1. Les fonctions ord() et chr().</u>
Sylvain Melot's avatar
Sylvain Melot a validé

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')}}

### <u>1.2. Le dictionnaire de chiffrement</u>
Sylvain Melot's avatar
Sylvain Melot a validé

Sylvain Melot's avatar
Sylvain Melot a validé
!!! question "Exécuter le script ci-dessous:"

    {{IDE('scripts/c_2')}}

### <u>1.3. La fonction de chiffrement</u>

!!! question "Compléter le script ci-dessous:"
Sylvain Melot's avatar
Sylvain Melot a validé

    {{IDE('scripts/c_3')}}

### <u>1.4. La fonction de déchiffrement</u>
Sylvain Melot's avatar
Sylvain Melot a validé

!!! 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). 
## <u>II. Le chiffrement par substitution </u>
!!! 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" }
## <u>III. Le chiffrement affine </u>
### <u>3.1. Le chiffrement linéaire.</u>
!!! 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.

Sylvain Melot's avatar
Sylvain Melot a validé
    **Méthode:**

Sylvain Melot's avatar
Sylvain Melot a validé
    Chacune des 26 lettres est associée à l’un des entiers de 0 à 25, selon le tableau de correspondance suivant.
    ![cal](images/affine_1.png){ width=100%; : .center }
    Le cryptage affine se fait à l’aide d’une clé, qui est un nombre entier k fixé, compris entre 1 et 25. Pour crypter une lettre donnée on suit le processus ℘ suivant:  
    - on repère le nombre x associé à la lettre dans le tableau de correspondance précédent  
    - on multiplie ce nombre x par la clé k  
    - on calcule le reste r de la division euclidienne du nombre obtenu par 26  
    - on repère la lettre associée au nombre r dans le tableau de correspondance, qui devient la lettre cryptée  

    Par exemple, pour crypter la lettre P avec la clé 𝑘=11 :  
    - le nombre x associé à la lettre P est le nombre 15  
    - on multiplie 15 par la clé k, ce qui donne 11×15=165  
    - on calcule le reste de la division euclidienne par 26 : on obtient 165 % 26 = 9  
    - on repère finalement la lettre associée à 9 dans le tableau, c’est-à-dire J  
    Ainsi avec la clé k = 11, la lettre P est cryptée en la lettre J. 

!!! question "Questions: "
    <ol>
    <li>Quel est le cryptage de la lettre S avec  la clé 3? </li>
Sylvain Melot's avatar
Sylvain Melot a validé
       
    ??? tip "Solution"  
        
        - Le nombre associée à la lettre S est 18
        - On multiplie 18 par la clé 3 : 18×3 = 54
        - On calcule le reste de de la division euclidienne du nombre obtenu par 26: 54%26 = 2
        - la lettre associée est au nombre 2 est le C

    <li>En quoi la lettre A constitue-t-elle un cas particulier dans le processus de cryptage ?</li>
        Lorsque la lettre est A, d’indice x = 0, pour tout 𝑘∈[1,25],𝑘×𝑥=0 et le reste de la division euclidienne de 𝑘×𝑥 par 26 est 0. La lettre A est cryptée par elle-même, quelle que soit la clé de cryptage utilisée. Elle est invariante.
    <li>Dans le cas où la clé est égale à 11, crypter le mot MIRO.</li>
        Pour la lettre M d’indice 12, on a 12×11=132 et 132 % 26=2, indice correspondant à la lettre C.  
        Pour la lettre I d’indice 8, on a 8×11=88 et 88 % 26=10, indice correspondant à la lettre K.  
        Pour la lettre R d’indice 17, on a 17×11=187 et 187 % 26=5, indice correspondant à la lettre F.  
        Pour la lettre O d’indice 14, on a 14×11=154 et 154 % 26=24, indice correspondant à la lettre Y.  
        Le mot MIRO est donc crypté par le mot CKFY.  
Sylvain Melot's avatar
Sylvain Melot a validé
!!! question "Compléter le script ci-dessous:"

    {{IDE('scripts/affine_1')}}

!!! 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.