Vous êtes sur la page 1sur 19

Chapitre : 5

Cryptographie classique
Introduction
• Dans ce chapitre, nous faisons un tour d’horizon des
systèmes cryptographiques classiques utilisés jusqu’à la
deuxième guerre mondiale. S’ils sont caduques à
l’heure actuelle, ils n’en restent pas moins des
exemples importants qui permettent de comprendre
les principes sous-jacents aux systèmes modernes.
• M = ensemble des messages clairs
• C = ensemble des messages codés (ou chiffrés)
• K = ensemble des cas possibles (les clés)
Mme K. MEKLICHE 97
Chiffrement par décalage (de César
pour k=3)
• Est un chiffre dans lequel chaque caractère du texte en
clair est remplacé par un autre caractère dans le texte
chiffré.
• Ici M = C= K= Z26, n = 26 si on prend l’alphabet latin
(pour chiffrer du texte) ; pour chiffrer des images, on
pourra prendre par exemple le nombre de niveaux de
gris.
• Fonction de chiffrement :
– 𝑓𝑘 𝑥 = 𝑥 + 𝑘 𝑚𝑜𝑑 26, 𝑥 ∈ 𝑍26
• Fonction de déchiffrement :
– 𝑓𝑘−1 𝑦 = 𝑦 − 𝑘 𝑚𝑜𝑑 26, 𝑥∈𝑍
Mme K. MEKLICHE26 98
Chiffrement par décalage (de César
pour k=3)
• C’est un algorithme peu sûr car il n’y a que 26 clés
possibles, voire seulement 25 si on exclut la valeur 0
qui ne modifie pas le texte clair, ce qui n’est pas très
utile en cryptologie. Il suffit, au pire, de faire 26
essais avant de retrouver le texte clair. C'est-à-dire
l’algorithme peut être «cassé » par une simple
recherche exhaustive.
• En moyenne, il faut 26/2=13 essais pour casser un
message.

Mme K. MEKLICHE 99
Chiffrement par décalage
• Exemple:

• Chiffrement :
• BZ : 1 25
• Ajouter 3 : 4 28
• Réduire modulo 26 : 4 2
• Convertir en code alphabétique texte chiffré : EC

• Déchiffrement : Processus inverse (retrancher 3).

Mme K. MEKLICHE 100


Chiffrement linéaire
• Afin d’accroître le nombre de clés possibles, le
chiffrement par décalage peut-être amélioré en
chiffrement affine.
• Le procédé reste identique à celui du chiffrement
par décalage, mis à part évidemment les fonctions
de chiffrement et de déchiffrement.
• Ici M = C= Z26, n=26 si on prend l’alphabet latin
(pour chiffrer du texte)

Mme K. MEKLICHE 101


Chiffrement linéaire
• Fonction de chiffrement : 𝑓𝑘 𝑥 = 𝑎𝑥 +
𝑏 𝑚𝑜𝑑 26, 𝑥 ∈ ℤ26
−1
• Fonction de déchiffrement : 𝑓𝑘 𝑦 = 𝑎−1 𝑦 −
𝑏 ′ 𝑚𝑜𝑑 26, 𝑦 ∈ ℤ26 , 𝑏 ′ = 𝑎−1 𝑏
• L’espace des clés : 𝐾 ⊆ 𝑎, 𝑏 ∈ ℤ26 × ℤ26

Mme K. MEKLICHE 102


Chiffrement linéaire
• Exemple : Pour k=(7,3), f(x)=7x+3 mod 26. On connait la table
de multiplication de Z26 (ou utiliser l’algorithme d’euclide) :
• 1-1=1, 3-1=9, 5-1=21, 7-1=15, 11-1=19, 17-1=23, 25-1=25
• 𝑓 −1 (7,3) 𝑦 = 15 𝑦 − 3 𝑚𝑜𝑑 26 = 15𝑦 − 19𝑚𝑜𝑑26
• Texte clair : HOT -> 7 14 19
• On calcule :
– 𝑓 7 = 7 ∗ 7 + 3 ≡ 0[26]
– 𝑓 14 = 7 ∗ 14 + 3 ≡ 23[26]
– 𝑓 19 = 7 ∗ 19 + 3 ≡ 6[26]

• Texte chiffré : AXG


Mme K. MEKLICHE 103
Chiffrement linéaire
• Pour que le chiffrement soit valide, il faut que f soit injective.
L’opposé existe toujours dans Z26 et lorsque y parcourt Z26, y -
b’ aussi. Il reste à voir si l’élément a est inversible dans Z26 par
rapport à la multiplication
• Proposition :
– L’équation ax≡ d mod n admet une solution unique 𝑥 ∈ ℤ26 , si et
seulement si PGCD (a,n)=1.
– Dans notre cas, on voit que si PGCD (a,26)=d et d ≠ 1, alors a n’est
pas inversible.

• Exemple :
– fk(x) ≡4x+7 mod26 non plus ; n’est pas un chiffrement valide car
PGCD(4,26)=2≠1 et on a deux solutions : x et x+13 qui sont
toujours chiffrés de la même façon, quelque soit x∈ Z26.
Mme K. MEKLICHE 104
Chiffrement linéaire
• Conclusion :
– L’espace des clés est maintenant
𝐾 = { 𝑎, 𝑏 ∈ ℤ26 × ℤ26 ∶ 𝑃𝐺𝐶𝐷 𝑎, 26 = 1}
– Dans notre cas, les valeurs de a valides sont a
=1,3,5,7,9,11,15,17,19,21,23 et 25.
– b peut être quelconque ;
– Le chiffrement linéaire possède card𝐾 = 12 × 26 =
312 clés possibles. La sécurité est meilleure que le
chiffrement par décalage, mais le nombre de clés reste
bien trop petit pour résister longtemps.
Mme K. MEKLICHE 105
Chiffrement linéaire
• Autre méthode de calcul de la taille de l’espace des clés du chiffrement
linéaire : 𝑐𝑎𝑟𝑑 𝐾 = 𝑛 × 𝜑(𝑛) où 𝜑 𝑛 est la fonction indicatrice d’Euler qui
donne le nombre d’entiers de Zm qui sont premiers avec m.
• S𝑖 𝑃 𝑖 𝑒𝑠𝑡 𝑙𝑎 𝑑é𝑐𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 𝑒𝑛 𝑓𝑎𝑐𝑡𝑒𝑢𝑟 𝑝𝑟𝑒𝑚𝑖𝑒𝑟
• 𝑎𝑙𝑜𝑟𝑠
– 𝜑 𝑛 = ς𝑛𝑖=1( 𝑝𝑒𝑖 𝑖 - 𝑝𝑒𝑖−1 𝑖 )

• Exemple :
– N=26=2*13 => 𝜑 26 = 2 − 20 13 − 130 = 12
– Pour n=60, vérifier que phy(60)=16, et le nombre de clés possibles serait de 960
(60=22´31´51)
• Retour au calcul d’inverse dans Zm, a est inversible si et seulement si PGCD
(a, n)=1, c'est-à-dire si a et n sont premiers ; il faut donc un procédé efficace
de calcul du PGCD. On peut factoriser en nombres premiers, mais la
méthode est peu efficace, car le problème de factorisation de grands
entiers est «difficile » algorithmiquement.
Mme K. MEKLICHE 106
Chiffrement linéaire
• Algorithme de calcul d’inverse :
– Utiliser l’algorithme d’Euclide étendu pour trouver x et y
tels que ax+my = d où d=PGCD (a,m).
– Si d>1, l’inverse a-1 mod m n’existe pas.
– Si d=1, le résultat est a-1.

Mme K. MEKLICHE 107


Chiffrement de vigenère
• Les chiffrements précédents étaient monoalphabétiques, au sens où chaque caractère était
transformé en un seul caractère ; Dans les systèmes poly alphabétiques, un caractère est
codé de différentes manières. Chaque clé est décrite par une chaîne de caractère de
longueur m appelée mot-clé. Le CV traite m caractères à la fois : chaque bloc de texte clair
est équivalent à m caractères alphabétiques
• Chiffrement : convertir les blocs de texte clairs en résidus modulo 26, en groupes de m et
ajouter le mot-clé modulo 26.
• Déchiffrement : utiliser le même mot-clé, mais faire soustraction modulo 26 au lieu de
l’addition.
• Nombre de mots-clés de longueur m dans le CV est 26m; même pour m petit, la recherche
exhaustive demande du temps.
• Ordre de grandeur : pour m= 5, la taille de l’espace des clés est de l’ordre de 11881376
• Exemple : m = 5 avec le mot-clé USTHB qui convertit en nombre donne k=(20,18,19,7,1 )
– Texte clair : il pleuvra demain
– La dernière ligne ajoute le mot-clé (modulo 26) au texte codé en alphabétique
– Texte chiffré : CDISFONKHEYETPO

Mme K. MEKLICHE 108


Chiffrement de Hill
• Est un chiffrement polyalphabétique.
• Idée : transformer m caractères d’un bloc de texte
clair en m caractères d’un texte de bloc chiffré, par
des combinaisons linéaires.
• M = ∁= (ℤ26 )𝑚 . Pour une matrice clé 𝐾 = 𝑘𝑖,𝑗
(à éléments dans ℤ26 )
• Chiffrement : y=xK
• Déchiffrement : x=yK-1
Mme K. MEKLICHE 109
Chiffrement de Hill
• Exemple : m=2. Pour un bloc de texte clair x=(x1,x2), on obtient un bloc de
texte chiffré y=(y1,y2), où y1 et y2 sont obtenus par combinaisons linéaires
de x1 et x2 : y1=11x1+3x2 ; y2 = 8x1 + 7x2, ou sous forme matricielle :

• Vérification : (toutes les opérations doivent être réduites modulo 26)


• Texte claire : OMAR, on a (O,M)= (14, 12), (A,R)=(0,17)

Mme K. MEKLICHE 110


Chiffrement de Hill

• Texte claire : OMAR, on a (O,M)= (14, 12), (A,R)=(0,17)

• Texte chiffré : (8, 14, 25, 5) ou IOZP


• Pour le déchiffrement, il faut calculer :
Mme K. MEKLICHE 111
Chiffrement de hill
• Le déchiffrement n’est possible avec cette méthode
que si K est inversible. L’inversion est possible pour
une matrice à coefficients réels si le déterminant est
nul. Ce n’est pas le cas dans Z26. Une matrice K est
inversible modulo m (=26) si et seulement si le
PGCD (m,detK)=1

Mme K. MEKLICHE 112


Chiffrement par permutation
• Dans la permutation, tout caractère du texte clair est
remplacé par un autre dans le texte chiffré. La
différence ici est de conserver les mêmes caractères en
les réordonnant.
• M=C={0,1,2,…,25}m ; K=ensemble des permutations de
{1,2,…,m} . Pour toute clé 𝜋 ∈ 𝐾 (une permutation de
K), on a :
• Chiffrement :
𝑓𝜋 𝑥 = (𝑥𝜋 1 , 𝑥𝜋 2 , … , 𝑥𝜋 𝑚 )
• Déchiffrement :
𝑓𝜋 −1 𝑥 = (𝑥𝜋−1 (1) , 𝑥𝜋−1 (2) , … , 𝑥𝜋−1 (𝑚) )
Mme K. MEKLICHE 113
Chiffrement par permutation
• Message chiffré : IAAALV CELLEO
• Exemple : m = 6

• Texte clair : Ali Va a l ecole (on ne tient compte ni des


blancs, ni de l’apostrophe)
• Découper le texte en bloc de six lettres : ALIVAA LECOLE
• Chaque bloc est réordonné selon la permutation π
Mme K. MEKLICHE 114

Vous aimerez peut-être aussi