01/03/2026
CRYPTOGRAPHIE
GSR2
IHSSANE OTHMANI, NADA ENOURI, OUMNIA EL
ALLAOUI, CHAIMAE NASSIRI, HASNAA
NOUREDDINE ET OUMAIMA GHAILAN
Exercice 1 : Chiffre par Décalage
Énoncé
Use exhaustive key search to decrypt the following ciphertext, which was encrypted using a Shift
Cipher :
BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD.
Solution et Explication
Pour trouver le texte en clair, nous devons trouver la clé k, c’est-à-dire le nombre de positions
dont chaque lettre a été décalée dans l’alphabet.
1. Méthode : Recherche exhaustive (Brute-force)
Comme l’alphabet anglais compte 26 lettres, il n’y a que 26 clés possibles. La méthode la plus
simple consiste à tester tous les décalages possibles de 0 à 25 jusqu’à ce que le texte ait un sens.
Si l’on teste la clé k = 16 (décalage de 16 vers la droite) :
— La lettre B devient L (B + 16 = L)
— La lettre E devient U (E + 16 = U )
— La lettre E devient U (E + 16 = U )
— La lettre A devient Q (A + 16 = Q)
En continuant ce processus pour toutes les lettres, nous obtenons le texte clair.
2. Résultats
Clé trouvée (k) : 16
Texte en clair : LEMONADEISAVERYPOPULARDRIKINKINDURINGTHESUMMERTIME
Texte clair lisible : LEMONADE IS A VERY POPULAR DRINK DURING THE SUMMERTIME.
Exercice 2 — Permutation Cipher (m = 8)
On considère la permutation de {1, … ,8} ∶
𝜋 = (1,2,4)(3,6)(5,8,7)
Le texte chiffré est :
𝐶 = 𝑇𝐺𝐸𝐸𝑀𝑁𝐸𝐿𝑁𝑁𝑇𝐷𝑅𝑂𝐸𝑂𝐴𝐴𝐻𝐷𝑂𝐸𝑇𝐶𝑆𝐻𝐴𝐸𝐼𝑅𝐿𝑀
1) Mise sous forme de fonction 𝜋(𝑖)
À partir de la décomposition en cycles :
● (1,2,4): 1 → 2, 2 → 4, 4 → 1
● (3,6): 3 → 6, 6 → 3
● (5,8,7) ∶ 5 → 8, 8 → 7, 7 → 5
1
On obtient la table :
𝑖 1 2 3 4 5 6 7 8
𝜋(𝑖) 2 4 6 1 8 3 5 7
2) Découpage du texte chiffré en blocs de taille 𝑚 = 8
𝐶1 = 𝑇𝐺𝐸𝐸𝑀𝑁𝐸𝐿 𝐶2 = 𝑁𝑁𝑇𝐷𝑅𝑂𝐸𝑂 𝐶3 = 𝐴𝐴𝐻𝐷𝑂𝐸𝑇𝐶 𝐶4 = 𝑆𝐻𝐴𝐸𝐼𝑅𝐿𝑀
3) Règle de déchiffrement
Le chiffrement par permutation place la lettre en position
𝑖 𝑑𝑢 𝑐𝑙𝑎𝑖𝑟 à 𝑙𝑎 𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝜋(𝑖)𝑑𝑢 𝑐ℎ𝑖𝑓𝑓𝑟é ∶
𝑐𝜋(𝑖) = 𝑝𝑖
Donc, pour déchiffrer :
𝑝𝑖 = 𝑐𝜋(𝑖) (𝑖 = 1, … ,8)
4) Déchiffrement bloc par bloc
Bloc 𝐶1 = 𝑇𝐺𝐸𝐸𝑀𝑁𝐸𝐿
Positions : 𝑐1 = 𝑇, 𝑐2 = 𝐺, 𝑐3 = 𝐸, 𝑐4 = 𝐸, 𝑐5 = 𝑀, 𝑐6 = 𝑁, 𝑐7 = 𝐸, 𝑐8 = 𝐿
𝑝1 = 𝑐𝜋(1) = 𝑐2 = 𝐺 𝑝2 = 𝑐𝜋(2) = 𝑐4 = 𝐸 𝑝3 = 𝑐𝜋(3) = 𝑐6 = 𝑁 𝑝4 = 𝑐𝜋(4) = 𝑐1 = 𝑇 𝑝5 = 𝑐𝜋(5)
= 𝑐8 = 𝐿 𝑝6 = 𝑐𝜋(6) = 𝑐3 = 𝐸 𝑝7 = 𝑐𝜋(7) = 𝑐5 = 𝑀 𝑝8 = 𝑐𝜋(8) = 𝑐7 = 𝐸
ALORS :
𝑃1 = 𝐺𝐸𝑁𝑇𝐿𝐸𝑀𝐸
Même pour les autres blocs on trouve :
● Bloc : 𝐶2 = 𝑁𝑁𝑇𝐷𝑅𝑂𝐸𝑂 🡪 𝑃2 = 𝑁𝐷𝑂𝑁𝑂𝑇𝑅𝐸
● Bloc : 𝐶3 = 𝐴𝐴𝐻𝐷𝑂𝐸𝑇𝐶 🡪 𝑃3 = 𝐴𝐷𝐸𝐴𝐶𝐻𝑂𝑇
● Bloc : 𝐶4 = 𝑆𝐻𝐴𝐸𝐼𝑅𝐿𝑀 🡪 𝑃4 = 𝐻𝐸𝑅𝑆𝑀𝐴𝐼𝐿
5) Texte clair final
En concaténant :
𝑃 = 𝑃1 𝑃2 𝑃3 𝑃4 = 𝐺𝐸𝑁𝑇𝐿𝐸𝑀𝐸𝑁𝐷𝑂𝑁𝑂𝑇𝑅𝐸𝐴𝐷𝐸𝐴𝐶𝐻𝑂𝑇𝐻𝐸𝑅𝑆𝑀𝐴𝐼𝐿
Avec espaces :
GENTLEMEN DO NOT READ EACH OTHERS MAIL
Exercice 3 :
Un chiffrement affine est défini par :
E(x) = ax + b (mod m)
Où :
- a ∈ Zm* (doit être inversible modulo m)
- b ∈ Zm
Donc :
- a doit vérifier gcd(a, m) = 1
- b peut être n’importe quel entier entre 0 et m − 1
2
Nombre de clés possibles :
Nombre de clés = φ(m) × m
Où :
- φ(m) est la fonction indicatrice d’Euler
- Elle compte le nombre d’entiers inférieurs à m et premiers avec m
Cas 1 : m = 30
Factorisation en nombres premiers :
30 = 2 × 3 × 5
φ(30) = 30(1 − 1/2)(1 − 1/3)(1 − 1/5)
φ(30) = 30 × 1/2 × 2/3 × 4/5
φ(30) = 30 × 8/30
φ(30) = 8
Nombre de clés :
8 × 30 = 240
Cas 2 : m = 100
Factorisation en nombres premiers :
100 = 2² × 5²
φ(100) = 100(1 − 1/2)(1 − 1/5)
φ(100) = 100 × 1/2 × 4/5
φ(100) = 100 × 4/10
φ(100) = 40
Nombre de clés :
40 × 100 = 4000
Cas 3 : m = 1225
Factorisation en nombres premiers :
1225 = 35² = (5 × 7)² = 5² × 7²
Formule pour une puissance :
φ(p^k) = p^k − p^(k−1)
φ(5²) = 25 − 5 = 20
φ(7²) = 49 − 7 = 42
3
Comme 5 et 7 sont premiers entre eux :
φ(1225) = 20 × 42
φ(1225) = 840
Nombre de clés :
840 × 1225 = 1 029 000
Exercice 4 : Chiffrement Affine sur 𝑍29
Données:
Modulo: 𝑚 = 29
Clé : 𝐾 = (𝑎, 𝑏) = (5,21)
Fonction de chiffrement : 𝑒𝐾 (𝑥) = (5𝑥 + 21) (𝑚𝑜𝑑29)
1. Détermination de la fonction de déchiffrement 𝑑𝐾 (𝑦)
Pour trouver la fonction de déchiffrement, nous devons isoler x dans l'équation :
𝑦 ≡ 5𝑥 + 21 (𝑚𝑜𝑑29)
Étape 1 : Isoler le terme contenant x
On soustrait 21 des deux côtés :
𝑦 − 21 ≡ 5𝑥 (𝑚𝑜𝑑29)
Étape 2 : Trouver l'inverse multiplicatif de of 5 modulo 29
Nous cherchons 𝑎 −1 tq 5 ⋅ 𝑎−1 ≡ 1 (𝑚𝑜𝑑29)
Puisque 5 × 6 = 30 et 30 = 1 × 29 + 1 :
30 ≡ 1 (𝑚𝑜𝑑29)
Donc, 5−1 ≡ 6 (𝑚𝑜𝑑29).
Étape 3 : Multiplier les deux côtés par l'inverse (6):
4
6(𝑦 − 21) ≡ 6(5𝑥) (𝑚𝑜𝑑29)
6𝑦 − 126 ≡ 𝑥 (𝑚𝑜𝑑29)
Étape 4 : Simplifier les constantes modulo 29 :
Calculons −126 (𝑚𝑜𝑑29):
126 = 4 × 29 + 10 ⇒ 126 ≡ 10 (𝑚𝑜𝑑29)
−126 ≡ −10 (𝑚𝑜𝑑29)
Pour obtenir un résidu positif : −10 + 29 = 19.
Fonction de déchiffrement finale :
𝑑𝐾 (𝑦) = (6𝑦 + 19) (𝑚𝑜𝑑29)
Telque a = 6 et b = 19.
2. Preuve que 𝑑𝐾 (𝑒𝐾 (𝑥)) = 𝑥
Pour prouver la validité, nous substituons la formule de chiffrement dans la formule de
déchiffrement :
Substitution 𝑒𝐾 (𝑥) = 5𝑥 + 21 dans 𝑑𝐾 (𝑦):
𝑑𝐾 (𝑒𝐾 (𝑥)) = 6(5𝑥 + 21) + 19 (𝑚𝑜𝑑29)
Dévlopement de l’expression:
𝑑𝐾 (𝑒𝐾 (𝑥)) = (30𝑥 + 126 + 19) (𝑚𝑜𝑑29)
Simplification modulo 29:
Pour le coefficient de x : 30 ≡ 1 (𝑚𝑜𝑑29) (car 30 = 29 + 1).
Pour le terme constant : 145 = 5 × 29 + 0, donc 145 ≡ 0 (𝑚𝑜𝑑29)
Resultat :
5
𝑑𝐾 (𝑒𝐾 (𝑥)) = (1 ⋅ 𝑥 + 0) (𝑚𝑜𝑑29) = 𝑥 (𝑚𝑜𝑑29)
Exercice 5 : Cryptanalyse du système Affine-Hill
Objectif : Déterminer la clé du chiffrement 𝑘 = (𝐿, 𝑏) pour un système Affine-Hill avec une taille de
bloc 𝑚 = 3.
L'équation de chiffrement est définie par :
𝑦 = 𝑥𝐿 + 𝑏(𝑚𝑜𝑑26)
Nous disposons d'un couple clair/chiffré connu :
• Texte clair (𝑥) : adisplayedequation
• Texte chiffré (𝑦) : DSRMSIOPLXLJBZULLM
1. Numérisation et découpage des blocs :
La première étape consiste à convertir les lettres en entiers (𝐴 = 0, 𝐵 = 1, …) et à grouper le texte
par blocs de 3 vecteurs pour former nos équations.
Nous sélectionnons les 4 premiers blocs pour constituer un système résoluble :
1. Bloc 1 : adi → 𝑥1 = (0,3,8) correspond à DSR → 𝑦1 = (3,18,17)
2. Bloc 2 : spl → 𝑥2 = (18,15,11) correspond à MSI → 𝑦2 = (12,18,8)
3. Bloc 3 : aye → 𝑥3 = (0,24,4) correspond à OPL → 𝑦3 = (14,15,11)
4. Bloc 4 : deq → 𝑥4 = (3,4,16) correspond à XLJ → 𝑦4 = (23,11,9)
2. Élimination du vecteur 𝑏 et système linéaire :
Pour isoler la matrice 𝐿, nous utilisons la propriété de linéarité en soustrayant les équations deux à
deux (𝑦𝑖 − 𝑦𝑗 = (𝑥𝑖 − 𝑥𝑗 )𝐿)
Posons 𝐴 la matrice des différences des textes clairs et 𝐵 celle des textes chiffrés.
Calcul des différences (Modulo 26) :
• 𝑥1 − 𝑥2 = (−18, −12, −3) ≡ (8,14,23)
• 𝑥2 − 𝑥3 = (18, −9,7) ≡ (18,17,7)
• 𝑥3 − 𝑥4 = (−3,20, −12) ≡ (23,20,14)
On obtient ainsi la matrice 𝐴 :
8 14 23
𝐴 = (18 17 7)
23 20 14
On fait de même pour les chiffrés (𝑦) pour obtenir 𝐵:
• 𝑦1 − 𝑦2 = (−9,0,9) ≡ (17,0,9)
• 𝑦2 − 𝑦3 = (−2,3, −3) ≡ (24,3,23)
• 𝑦3 − 𝑦4 = (−9,4,2) ≡ (17,4,2)
Le système à résoudre est donc : 𝐴 ⋅ 𝐿 = 𝐵(𝑚𝑜𝑑26)
6
3. Inversion de la matrice 𝑨
C'est l'étape critique. Pour trouver 𝐿, nous devons calculer 𝐴−1 telle que 𝐿 = 𝐴−1 𝐵
a) Calcul du déterminant :
det(𝐴) = 8(17 × 14 − 7 × 20) − 14(18 × 14 − 7 × 23) + 23(18 × 20 − 17 × 23)
det(𝐴) = 784 − 1274 − 713 = −1203
En réduisant modulo 26 : −1203 ≡ 19(𝑚𝑜𝑑26)
Le déterminant est inversible car 𝑃𝐺𝐶𝐷(19,26) = 1. L'inverse modulaire de 19 est 11 (car
19 × 11 = 209 = 8 × 26 + 1)
b) Calcul de la Comatrice et de l'Adjointe :
Nous calculons la matrice des cofacteurs, puis nous la transposons pour obtenir l'Adjointe. Après
calculs des mineurs et application des signes :
20 13 21
Com(A) = ( 4 25 6 )
19 20 14
On transpose cette matrice pour obtenir l'Adjointe :
20 4 19
T
Adj(A) = Com(A) = (13 25 20)
21 6 14
c) Matrice Inverse finale :
On multiplie l'Adjointe par l'inverse du déterminant (11) :
20 4 19
𝐴−1 = 11 × (13 25 20) (𝑚𝑜𝑑26)
21 6 14
Ce qui nous donne :
12 18 1
𝐴−1 = (13 15 12)
23 14 24
4. Calcul de la clé 𝒌 = (𝑳, 𝒃)
a) Calcul de la matrice 𝑳 :
Nous effectuons le produit matriciel 𝐿 = 𝐴−1 × 𝐵 :
12 18 1 17 0 9
𝐿 = (13 15 12) × (24 3 23)
23 14 24 17 4 2
Après calculs ligne par colonne modulo 26, nous obtenons :
3 6 4
𝐿 = ( 5 15 18)
17 8 5
7
b) Calcul du vecteur 𝒃 :
Nous reprenons la première équation 𝑏 = 𝑦1 − 𝑥1 𝐿. Avec 𝑥1 = (0,3,8) et 𝑦1 = (3,18,17)
Calculons d'abord 𝑥1 𝐿 :
(0,3,8) × 𝐿 = (151,109,94) ≡ (21,5,16)
Enfin, on soustrait ce résultat à 𝑦1 :
𝑏 = (3,18,17) − (21,5,16) = (−18,13,1)
𝑏 ≡ (8,13,1)(𝑚𝑜𝑑26)
Conclusion :
La clé de chiffrement permettant de passer du clair "adisplayedequation" au chiffré "
DSRMSIOPLXLJBZULLM" est :
3 6 4
Matrice L : ( 5 15 18)
17 8 5
Vecteur b : (8,13,1) correspondant aux lettres (𝐈, 𝐍, 𝐁)