Cryptographie : chiffrement affine


Remarque : nous aurons besoin de votre fonction algoeucli() du TP1. Pensez à la copier-coller dans ce notebook.

1. Correspondance numérique / alphabétique

Nous utiliserons lors de ce TP la correspondance Lettre-Nombre suivante (en modulo 26) :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Pour ce faire, nous allons avoir besoin de la chaîne de caractères suivante :

1.1 Exercice : passage à l'alphabétique

Exemple :

1.2 Exercice : passage au numérique

Exemple :

2. Chiffrement affine

Le chiffrement affine repose sur des calculs dans $(\mathbb{Z} /{26} \mathbb{Z})$. La clé $k$ est formée d'un couple ($\bar a$, $\bar b$) où $\bar a$ est inversible, d'inverse $(\bar a)^{-1}$.

Fonction de chiffrement : $e_{k}( \bar m) = \bar a \times \bar m + \bar b$

Fonction de déchiffrement : $d_{k}( \bar c) = (\bar a)^{-1} \times (\bar c-\bar b)$

2.1 Exercice : chiffrement

Exemple :

2.2 Exercice : inverse

Exemple :

2.3 Exercice : déchiffremment

Exemple :

3. Bonus : analyse fréquentielle

La cryptanalyse regroupe les techniques permettant de déchiffrer des messages codés sans disposer de la clé de chiffrement. L'analyse fréquentielle est une de ces techniques. Elle consiste à examiner la fréquence des lettres employées dans un message chiffré, et à la comparer avec la fréquence "théorique".

En français, la répartition "théorique" des lettres est la suivante (en %) :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
9.42 1.02 2.64 3.39 15.87 0.95 1.04 0.77 8.41 0.89 0.0 5.34 3.24 7.15 5.14 2.86 1.06 6.46 7.90 7.26 6.24 2.15 0.0 0.3 0.24 0.32

3.1 calcul de la fréquence d'apparition

Soit un message chiffré suivant : message

Exemple :

3.2 déchiffrement du message codé