CRYPTOGRAPHIE CLASSIQUE
1 Codes à répertoire
2 Chiffrement par transposition
3 Chiffrement par substitution
4 Chiffrement polygraphique
1 / 22
Codes à répertoires
2 / 22
Codes à répertoires
Codes à répertoires
1 En cryptographie, les systèmes à répertoires sont des systèmes
de substitution qui reposent sur l’utilisation de tableaux de
correspondance ou dictionnaires chiffrés.
2 Les éléments de ces tableaux sont représentés sous forme de lettres,
de syllabes, de mots ou de phrases.
3 D’une taille importante, ces listes sont impossibles à retenir par
coeur et doivent donc être écrites pour former un ouvrage que l’on
peut nommer à choix:
code
répertoire
dictionnaire chiffré
système à dictionnaire
tableau de chiffrement.
3 / 22
Codes à répertoires
Codes à répertoires: Types
Qu’ils soient à chiffres ou à lettres, les répertoires se divisent en deux
catégories: les répertoires ordonnés et les répertoires incohérents.
1 Répertoires ordonnés:
Lorsque, dans le tableau de correspondance, les deux listes (mots et
représentations) sont ordonnées toutes deux alphabétiquement ou
numériquement, on dit que le répertoire est ordonné.
Dans les répertoires ordonnés, on utilise la même table pour
chiffrer et déchiffrer.
2 Voici un exemple d’une page d’un répertoire à chiffres ordonné:
Code Mot en clair
... ...
2007 cote
2008 côte
2009 côté
2010 à côté de
... ...
4 / 22
Codes à répertoires
Codes à répertoires: Types
1 Répertoires incohérents:
Pour compliquer la tâche des décrypteurs, on peut utiliser un ordre des
mots incohérent (ordre non alphabétique).
On aura alors besoin de deux tables: une pour chiffrer et une autre
pour déchiffrer.
De tels répertoires sont dits incohérents (on dit aussi désordonnés
ou à bâtons rompus).
2 Voici un exemple de pages d’un répertoire à chiffres incohérent:
Mot en clair Code Code Mot en clair
... ... ... ...
piège 1024 4366 la
pierre 4367 4367 pierre
pierrerie 9872 4368 avion
piété 1421 4369 nonobstant
... ... ... ...
5 / 22
Codes à répertoires
Codes à répertoire: Exemple
Ces codes manquent de souplesse ils ne permettent pas de coder
des mots nouveaux sans des échanges de codes entre l’expéditeur et
le destinataire ce qui accroît le risque de voir le code intercepté.
Ils ne sont plus utilisés pour les usages publics.
On peut par exemple créer le dictionnaire suivant:
rendez-vous ↔ 175; demain ↔ oiseaux;
midi ↔ à vendre; Dakar ↔ au marché
La phrase en clair:
RENDEZ VOUS DEMAIN MIDI DAKAR
devient avec ce code:
175 OISEAUX A VENDRE AU MARCHE
6 / 22
Codes à répertoires
Codes à répertoire: Exemple
Il faut donc disposer de distionnaires qui prévoient toutes les
possibilités.
Donc sauf si on se restreint à tranmettre des informations très
limitées, la taille du dictionnaire s’accroit démesurément.
Au 19e siècle on avait ainsi pour des usages commerciaux ou
militaires des dictionnaires de plusieurs milliers de mots de codes.
Tout changement du code nécessitait l’envoi de documents
volumineux avec un risque d’interception non négligeable.
7 / 22
Chiffrement par transposition
Chiffrement par transposition
8 / 22
Chiffrement par transposition
Chiffrement par transposition
Elles consistent, par définition, à changer l’ordre des lettres.
C’est un système simple, mais peu sûr pour de très brefs messages
car il y a peu de variantes.
Ainsi, un mot de trois lettres ne pourra être transposé que dans
6 (= 3!) positions différentes.
Par exemple, "col" ne peut se transformer qu’en "col", "clo", "ocl",
"olc", "lco" et "loc".
9 / 22
Chiffrement par transposition
Chiffrement par transposition
Lorsque le nombre de lettres croît, il devient de plus en plus difficile
de retrouver le texte original sans connaître le procédé de brouillage.
Ainsi, une phrase de 35 lettres peut être disposée de 35! manières
différentes.
Ce chiffrement nécessite un procédé rigoureux convenu auparavant
entre les parties.
Une transposition rectangulaire consiste à écrire le message dans
une grille rectangulaire, puis à arranger les colonnes de cette
grille selon un mot de passe donné (le rang des lettres dans
l’alphabet donne l’agencement des colonnes).
10 / 22
Chiffrement par transposition
Transposition par blocs
Le message est découpé en des blocs de taille égale;
Puis sont rangés dans des matrices de n lignes et m colonnes;
Pour chiffrer:
les blocs sont rangés suivant les lignes (resp. les colonnes) dans des
matrices;
puis la lecture se fait suivant les colonnes (resp. les lignes) pour le
chiffrement.
Pour déchiffrer, on effectue les mêmes opérations à l’inverse.
11 / 22
Chiffrement par transposition
Transposition avec clé simple
Le message est découpé en des blocs de taille égale à celle de la
clé;
Puis sont rangés dans des matrices de n lignes (longueur de la clé)
et m colonnes;
Pour chiffrer, on lit par colonne, dans l’ordre défini par la clé;
Pour déchiffrer, on effectue les mêmes opérations à l’inverse.
12 / 22
Chiffrement par transposition
Cryptanalyse
Si l’on ne dispose que d’un texte chiffré, on peut essayer d’attaquer
ces codes par force brute c’est à dire en essayant de manière
exhaustive toutes les permutations de colonnes possible.
Rappelons qu’un calcul comportant plus de 1080 opérations
élémentaires est impraticable actuellement en un temps raisonnable.
Si la grille comporte n colonnes on aura n! permutations de colonnes
possibles.
Dès que le nombre de colonne dépasse 50 on a plus de 1085
permutations et on est assuré qu’une attaque par force brute est
impraticable.
Il est également possible de faire des attaques à texte clair choisi.
On prend un message constitué d’un seul 1 et complété par des zéros
et de regarde le résultat en faisant varier la place du 1.
13 / 22
Chiffrement par substitution
Chiffrement par substitution
14 / 22
Chiffrement par substitution
Chiffrement par substitution
1 Substitution monoalphabétique
2 Substitution polyalphabétique
15 / 22
Chiffrement par substitution
Substitution monoalphabétique
Substitution monoalphabétique
16 / 22
Chiffrement par substitution
Substitution monoalphabétique
Chaque lettre est remplacée par une autre lettre ou symbole.
Parmi les plus connus, on citera le chiffrement de César, le
chiffrement affine, ou encore les chiffres désordonnés.
Tous ces chiffres sont sensibles à l’analyse de fréquence
d’apparition des lettres (nombre de fois qu’apparait une même lettre
dans un texte).
De nos jours, ces chiffres sont utilisés pour le grand public, pour les
énigmes de revues ou de journaux.
17 / 22
Chiffrement par substitution
Chiffrement de César (50 av. J-C)
Il s’agit d’un des plus simples et des chiffres classiques les plus
populaires.
Son principe est un décalage des lettres de l’alphabet.
Dans les formules ci-dessous, p est l’indice de la lettre de l’aphabet,
k est le décalage.
Pour le chiffrement, on aura la formule
C = E (p) = (p + k) mod 26
Pour le déchiffrement, il viendra
p = D(C ) = (C − k) mod 26
Si on connait l’algorithme utilisé (ici César), la cryptanalyse par
force brute ou par analyse fréquentielle est très facile.
En effet, dans le cas du chiffre de César, seules 25! clés sont
possibles.
18 / 22
Chiffrement par substitution
Chiffrement affine
On dit qu’une fonction est affine lorsqu’elle est de la forme
x 7→ ax + b, c’est-à-dire un polynôme de degré 1.
Une fonction linéaire est une fonction affine particulière.
L’idée est d’utiliser comme fonction de chiffrement une fonction affine
du type
y = (ax + b) mod 26,
où a et b sont des constantes, et où x et y sont des nombres
correspondant aux lettres de l’alphabet (A = 0, B = 1, ...).
On peut remarquer que si a = 1, alors on retrouve le chiffre de César
où b est le décalage (le k du chiffre de César).
19 / 22
Chiffrement par substitution
Chiffrement affine
Propriété de neutralité
Si b = 0, alors "a" est toujours chiffré "A" car il ne subit aucun
décalage.
En effet, si aucun décalage n’a lieu, l’alphabet de départ se
retrouve chiffré par lui même, et donc ne subit aucune modification.
20 / 22
Chiffrement par substitution
Pour le chiffrement affine, la clé est constituée de (k1 , k2 ) où
k1 , k2 ∈ [0, 25] et telle que gcd(k1 , 26) = 1.
Le chiffrement en lui-même est donné par
ci = f (mi ) = k1 ∗ mi + k2 mod 26.
Pour le déchiffrement, il vient
mi = f −1 (ci ) = k1−1 ∗ (ci − k2 ) mod 26.
Par le chiffrement affine, on obtient 312 clés possibles.
En effet, pour obéir à la propriété de k1 , il n’y a que 12 choix
possibles.
Et puisque k2 peut prendre n’importe quelle valeur dans [0, 25], il
vient 12 ∗ 26 = 312.
21 / 22
Chiffrement par substitution
Chiffrement affine
Exemple
Soient la clé = (k1 , k2 ) = (3, 11).
Transformation de chiffrement:
ci = f (mi ) = 3 ∗ mi + 11 mod 26
Transformation de déchiffrement:
k1−1 = 3−1 mod 26 = 9 [car 3 ∗ 9 mod 26 = 1]
mi = f −1 (ci ) = 9 ∗ (ci − 11) mod 26
Ainsi, pour une suite de lettres telle que
′ NSA′ → 13 18 0 → 24 13 11 →′ YNL′ .
22 / 22