[ Part One ]
Voici
le sommaire d'un long article consacré à la cryptographie :
Introduction
[ Part One ]*
I ] Introduction à la
cryptographie*
II]
Les chiffrements par transposition*
1°) Principes de
fonctionnement
2°) Techniques
a) La scytale
b) "Dent de scie"
c) Transpositions à clé
d)
Cryptanalyse de chiffrements par transposition
3°) Identifier un texte
transposé
Conclusion [ Part One ]*
Exercices [ Part One ]*
III ] Les chiffrements par
substitution
1°) Principes de fonctionnement
2°) Deux types de
substitution
a) La substitution mono-alphabétique
- De quoi s'agit-il ?
- César
- etc...
b) La substitution poly-alphabétique
- De quoi s'agit-il
- etc...
- Vigenère
IV
] Les techniques "modernes"
1°) Enigma
2°) DES
3°) RSA
V
] PGP
VI
] Lois et cryptographie en France
Les
titres suivis de * sont ceux qui seront traités au cours de ce
numéro. Les endroits où il y a un "etc" signifient
qu'il y aura sans doute d'autres parties, mais qu'elles ne sont
pas encore exactement définies. Ce sommaire évoluera peut-être
légèrement au cours des numéros. Chaque numéro comptera une
petite introduction et une conclusion, ainsi qu'une petite
partie "Exercice" (enfin d'article) qui ne rentreront
pas dans le sommaire ci-dessus. Nous vous souhaitons une bonne
lecture :-D.
-----------------------------------------------------------------------
Introduction
[ Part One ]
Dans ce premier opus, vous allez découvrir ce qu'est
la cryptographie, ses origines, son utilité. Nous commencerons
bien sûr par les bases, que vous pourrez passer si vous n'êtes
pas complètement débutant dans le domaine. Vous apprendrez
aussi les principales techniques de cryptages par transposition,
comment les utiliser, et comment les contrer. Nous essaierons d'être
le plus clair et le plus complet possible, ce qui n'est pas une
mince affaire dans un domaine aussi vaste.
Si certains points vous
paraissent encore obscurs à la fin de cet article, vous pourrez
nous contacter, nous tenterons de vous aider dans la mesure de
notre disponibilité.
I ] Introduction à la cryptographie
Depuis
toujours, l'homme a éprouvé (et éprouve encore) le besoin de
dissimuler des informations : par honte, par nécessité, par
jeu, presque toujours par intérêt; mais peu importe. De ce
besoin est née, chez les Grecs (400 ans av. JC), une science
appelée "Cryptographie".
Longtemps presque
exclusivement réservée au domaine militaire, afin de
dissimuler des informations cruciales à l'ennemi, elle prend
aujourd'hui toute son ampleur avec l'arrivée de nouvelles
technologies telles qu'Internet. Celles-ci nécessitent un
niveau de sécurité élevé : les informations circulant sur la
toile ne sont pas toujours destinées au premier internaute
venu, par conséquent leur contenu doit rester confidentiel. Je
pense par exemple aux mots de passe, aux numéros de cartes
bancaires donnés lors d'achats en ligne, ainsi qu'à vos mails,
etc... La liste est loin d'être exhaustive.
Qu'est donc cet
"art" auquel nous allons tenter de vous initier ?
Commençons par quelques points de vocabulaire : le message que
vous désirez communiquer est "en clair". Ce que vous
êtes en train de lire est du texte clair, c'est-à-dire qu'il
est aisément lisible par le premier idiot venu (ça ne vous était
pas destiné :) ...), à la seule condition que celui-ci ait
appris à lire. En transformant le texte afin de le rendre
illisible à des yeux non avertis, vous le "cryptez"
(ou "chiffrez"). Le texte illisible ainsi créé est
appelé "cryptogramme", et le destinataire du message
devra le "décrypter" s'il veut en comprendre le
contenu. L'art de casser le codage d'un message qui ne vous est
pas destiné (donc sans avoir en main tous les éléments vous
permettant de le déchiffrer normalement) a pour nom "cryptanalyse".
Enfin, tous ces éléments réunis forment ce que l'on appelle
la cryptographie (ou bien aussi cryptologie).
En résumé, la
cryptographie, c'est remplacer un message compréhensible par
d'autres signes (chiffres, lettres ou autres...) qui semblent
n'avoir aucun sens quand on ne connaît pas le moyen de revenir
au texte original.
Voilà pour cette
introduction qui aura été, j'espère, assez claire. Si vous
n'avez pas encore tout compris, ne vous en faites pas, il
s'agissait seulement d'un peu de vocabulaire auquel vous vous
ferez très vite. Rentrons maintenant dans le vif du sujet.
II ] Les
chiffrements par transposition
1°) Principes de
fonctionnement
Le principe d’un cryptage
par transposition est très simple. Il s’agit en fait de réordonner
les lettres du message : les lettres du cryptogramme sont donc
les mêmes que celle du texte en clair, mais dans un ordre différent.
Cette répartition des lettres peut se faire de plusieurs façons,
par l’intermédiaire d’objets (comme la scytale que nous
allons voir tout de suite), ou bien d’instructions données
pour lire les lettres. En plus succinct, les lettres du texte
clair sont redistribuées, pour donner une anagramme.
Dans
ce simple petit passage en italique, pour vous donner une idée,
il peut y avoir exactement 87 178 291 200 combinaisons différentes
de codage (les espaces et la ponctuation ne sont pas pris en
compte, et le "é" est considéré comme un
"e" normal). Comme quoi, une technique très simple à
la base se retrouve vite très efficace voire même redoutable
si l’on ne sait pas vraiment comment la déjouer (ce que nous
verrons dans la sous partie d).
2°) Techniques
a)
La scytale
Pour le cours d'histoire, la transposition la plus célèbre
reste due à l'invention de la scytale. Il s’agissait d’une
sorte de bâton de bois, souvent octogonal, possédant plusieurs
facettes et autour duquel était enroulée une fine bandelette
de cuir ou de parchemin qui faisait plusieurs fois le tour de la
scytale, de façon à la recouvrir le mieux possible. Une fois
le message inscrit, on le déroulait et ses lettres étaient
naturellement mélangées. Le destinataire n’avait plus qu’à
l’enrouler autour de sa propre scytale, de mêmes dimensions,
pour lire le texte en clair. Cette technique a vu le jour en Grèce
et date du Vème siècle avant notre ère, comme quoi la
cryptographie n’est pas toute neuve ;-) . Il s'agit là de la
première utilisation connue de la cryptographie, car avant on
se contentait de cacher le message (il s'agissait alors de sténographie),
et non de le coder ! Un petit pas pour l’homme, un grand
pas pour la cryptanalyse….
Expliquons rapidement à
quoi revient cette technique concrètement : en réalité, on écrit
la première lettre, puis la seconde un peu plus loin, la troisième
encore un peu plus loin (en conservant le même écart entre
deux lettres), et etc...
Bien sûr, un exemple : le
texte "salut je suis un texte" deviendrait <senastlueuixtstjue>.
Pour
le décrypter, on prend une lettre sur trois en partant de la
première lettre, puis quand on arrive au bout du cryptogramme,
on recommence en partant de la seconde et ainsi de suite. Ce qui
diffère d'une scytale à l'autre, en fonction de son épaisseur,
c'est le "bond" que l'on fait pour aller d'une lettre
à la suivante. Ici, il est de 3 : il aurait très bien pu être
de 2, de 9 ou même de 52 (mais après, ça fait une scytale un
peu lourde à trimballer :-D...).
b)
"Dent de scie"
Ce principe de redistribution en dent de scie est, lui
aussi,tout simple. Il obéit à ce que l'on l’on appelle dans
le jargon un protocole (des instructions si vous préférez)
connu par le crypteur et le décrypteur, qui leur permet de
coder et décoder le message. Pour faire simple, les protocoles
les plus courants, mais aussi les plus faciles à casser, sont
du style :
- « prendre une lettre sur
deux »
- « partir de la fin, puis du début…. »
- « la première lettre, puis celle du milieu, puis la
deuxième... ».
Si
vous ne comprenez pas, voici une petite démonstration :
Par
exemple, la phrase <vive espionet> avec l'instruction «
la première lettre, puis celle du milieu, puis la deuxième,
puis celle qui suit celle du milieu, etc... », nous obtenons :
<vpiivoeneest>.
Ici, vous remarquez que nous
ne conservons pas l'espace présent dans la phrase originale :
c'est souvent le cas en cryptographie. Il en va de même pour la
ponctuation, les lettres accentuées, etc... Du moins, dans les
techniques de cryptage manuelles, c'est-à-dire non informatisées
à la base. Je suppose que vous avez compris cette première
technique, il n’y à là aucune difficulté. Cependant, il y a
une petite subtilité (vraiment petite :-D) : pour le
destinataire du message, l'instruction de décryptage ne sera
pas là même que celle qui a servie à crypter le message ! Et
oui, ici, en réfléchissant deux petites secondes, on voit que
l'on peut reconstituer le message original en prenant une lettre
du cryptogramme sur deux. Essayez pour vérifier.
La technique "dent de
scie" n'est en fait qu'une instruction spéciale : on prend
une lettre sur deux du message à crypter : <salut>
devient <sltau>. Elle est appelée comme ceci, car on la
représente ainsi : imaginez les dents d'un scie (ben, ça peut
aussi marcher avec un peigne mais bon...), et maintenant posez
votre phrase dessus. Vous vous retrouvez avec une lettre sur
deux qui est sur le "pic" de la dent (les lettres en
position impaire dans le texte), et les autres, qui sont dans le
creux, entre deux dents (les lettres en position paire). Vous
commencez par recopier les lettres supérieures, puis les
autres, et votre message est crypté ! J'espère que vous avez
compris l'image :).
Voilà, toutes les
techniques de transposition tournent autour de cela. Il s’agit
juste d’une variation de protocole, celui-ci devenant de plus
en plus ingénieux pour passer outre les regards indiscrets. A
vous d'en inventer d'autres.
c)
Transpositions à clé
Une notion fondamentale en
cryptographie, est la notion de clé. Les techniques de
cryptographie se composent la plupart du temps d'un
"algorithme" et d'une "clé". L'algorithme
est le principe du cryptage, le "protocole", qui
permet de transformer votre texte clair (vous avez vu cela dans
le paragraphe précédent : par exemple « prendre une lettre
sur deux » est un algorithme). La clé est un élément qui
permet faire varier le cryptage : l'expéditeur et le
destinataire doivent être les seuls à la connaître. A quoi
sert cette clé ? Et bien tout simplement, quand un algorithme
est connu, il devient facile de décrypter tout ce qui a été
codé grâce à celui-ci, pas vrai ? Cependant, si on y ajoute
une clé, pour décrypter, il faut non seulement connaître
l'algorithme, mais aussi cette clé ! Il s'agit donc d'une
protection supplémentaire.
Voyons, une technique "à
clé" : prenons un texte, disons : <Il faut manger pour
vivre.>. L'algorithme va être difficile à résumer en une
phrase, et comme un bon exemple vaut mieux qu'un long discours
:)...
Choisissons une clé, disons
PIED. Ecrivons notre texte, sur quatre colonnes (quatre est la
longueur de la clé, le mot PIED), comme ceci :
I
L F A
U T
M A
N G
E R
P
O U R
V
I V
R
E
Nous associons la première
colonne à la première lettre de la clé (P), la seconde à la
seconde lettre, et ainsi de suite. Réorganisons les lettres de
la clé par ordre alphabétique : PIED devient DEIP. On fait de
même avec les colonnes associées : la colonne associée au D
(la quatrième) devient la première colonne, etc... On obtient
alors :
A
F L
I
A
M T
U
R E
G N
R U
O P
R V
I V
E
Le
texte ainsi réorganisé, on réécrit le texte verticalement en
a partant du haut de la colonne de gauche, puis en remontant par
le bas de la colonne suivante, etc... On obtient ainsi, un texte
assez difficile à décrypter : <AARRRVUEMFLTGOIEVPNUI>.
Voici une méthode déjà un
peu plus ardue.
d)
Cryptanalyse de chiffrements par transposition
A part la technique du "mot probable", il
n'existe pas de réelle technique de cryptanalyse pour ces types
de codage. La technique du "mot probable" consiste en
fait, à supposer qu'un mot est dans le cryptogramme : pour ce
faire, il faut avoir quelques informations sur le message (par
exemple : le destinataire, l'expéditeur, le contexte de cet
envoi, parfois même une idée du message lui-même). Après, on
recherche les lettres composant ce mot dans le cryptogramme, et
si on les trouve toutes, on essaie de reconstituer le protocole
à partir de la position des
lettres dans le message chiffré. Il est naturellement possible
de trouver toutes les lettres d'un mot, sans que le mot soit
dans le texte original, il faut donc tester, tester... C'est
assez fastidieux.
Allez, un petit exemple.
Regardez ce petite texte crypté : <sltanblihmrauhniangtae>.
Supposons que vous venez d'intercepter ce message : vous ne
savez pas à qui il est destiné, mais vous savez que je viens
de l'envoyer ! Je l'ai donc probablement signé. On suppose donc
que le mot Nightmare se trouve dans ce cryptogramme. Si l'on
prend les cinq dernière lettres du message, on trouve les
lettres "ngtae". Tiens, si l'on prend un lettre sur
deux du mot Nightmare, on obtient n g t a e ! Ceci doit vous
rappeler quelque chose... La technique en "dent de
scie" ! On divise alors le texte crypté en deux parties de
11 lettres (le cryptogramme en fait 22) : "sltanblihmr"
et "auhniangtae", puis on prend la première lettre du
premier, la première du second, la seconde du premier, etc...
On reconstitue alors le
texte <saluthannibalnightmare>, soit "Salut Hannibal.
Nightmare".
Sachez que l'on peut aussi
bidouiller avec des bigrammes (suite de 2 lettres) et des
trigrammes (suite de 3 lettres), mais nous verrons leur
utilisation ailleurs et un
peu plus tard, car c'est ici moyennement utile et souvent très
hasardeux.
3°) Identifier un texte
transposé
Ici, vous avez peut-être envie de me dire : "C'est
bien beau tout ça, mais comment sait-on qu'un texte a été
transposé ?". Et bien, c'est assez simple (en supposant
que votre texte n'a été QUE transposé et n'a pas subi
d'autres transformations...). Dans la langue française, vous
savez sûrement que certaines lettres reviennent plus souvent
que d'autres. Le E par exemple, est la lettre la plus souvent
utilisée en français, suive du S, puis du A, etc... On appelle
le pourcentage d'apparition d'une lettre dans un texte, sa fréquence
: celle du E, en français, est d'environ 17,7%.
Voici la liste des fréquences
des monogrammes (1 lettre) :
E
: 17.7 %
P : 3.1 %
W : 0.02 %
S : 8.3 % M : 3 %
K : 0.00 %
A : 7.5 % Q : 1.35 %
N : 7.4 % V : 1.27 %
T
: 7.3 % F : 1.06 %
I : 7.25 %
B : 0.87 %
R : 6.6 %
G : 0.85 %
U : 6.2 %
H : 0.81 %
L : 5.7 %
J : 0.6 %
O : 5.4 %
X : 0.3 %
D : 3.6 %
Y : 0.21 %
C : 3.2 %
Z : 0.07 %
(les pourcentages de
bigrammes et trigrammes viendront dans un prochain numéro)
Ces chiffres sont vraiment "à peu près" (ça
ne fait même pas 100 % au total), car de toutes manières ces
fréquences évoluent au cours du temps. Cependant, on voit
nettement la différence entre les lettres, et il n'est pas très
important de connaître les fréquences exactes, surtout que,
sur des cryptogrammes courts, elles sont rarement respectées.
Il faut donc faire "en gros". Si vous trouvez 40 % de
K, 0 % de E, 22 % de X, il y a sans doute quelque chose qui
cloche. En cryptographie, on n'est jamais sûr de rien, on réfléchit
en termes de "probabilités d'une suppostion", si vous
voyez ce que je veut dire.
Revenons à nos moutons : si
dans votre cryptogramme, vous trouvez des fréquences équivalentes
à celles présentées ci-dessus, il y a beaucoup de chances
pour que le texte ait été uniquement transposé. Cependant,
plus votre texte est court, moins vous devrez être exigeant
niveau fréquences. Pour information, dans ce long article, on
compte : environ 16.67 % de E, 8 % de S, et 0.024 % de K (ceci
sans compter la partie "Exercice" et ses
cryptogrammes, et en ne prenant que les lettres de cet article).
Conclusion [ Part One ]
Nous avons fait ici un large
tour d'horizon des techniques de cryptage par transposition, et
vous connaissez déjà une importante partie de tout ce qu'il y
a à savoir sur cette branche de la cryptographie. Vous pouvez
donc aller exercez vos nouveaux talents, dans la partie
"Exercice", où vous devrez parfois faire appel à
votre imagination pour trouver le protocole utilisé.
N'oubliez pas tout de même
que ce type de protection, ne consistant qu’à déplacer les
lettres, est certes efficace dans un premier temps, tant que
l’on ne connaît pas bien cette méthode, mais devient vite dérisoire
et dépassé. En effet, que ce soit d’objets comme la scytale
ou bien de protocoles, les instructions pour lire les messages
ne sont pas infinies, bien que nombreuses, et un cryptanalyste
patient, ou même équipé d’un ordinateur quelconque (dans ce
cas, d’après moi il serait plutôt cryptologue que
cryptanalyste, c’est ma différenciation entre les deux
termes) peut déchiffrer aisément le texte et donc casser le
code sans peine.
C’est pour cela que l’homme à inventé un nouveau
système de cryptage révolutionnaire pour l’époque : la
substitution...
Exercices
[ Part One ]
Voici
7 petits cryptogrammes qui vont vous permettre de vous exercer :
- 1) TMHSUPNCARIYSIQTBSUAILELEADENTECELOCA
- 2) VUEEVUDMNEORUIACOSPECMELOSTSOSEADPUQOJIHIIIDOMCE
- 3) CSESINQEENRDVNYETNCATULOADEIC
- 4)
STTCALCQGTTLALDQSMIUEOVEUURUEEVEOUEAUELIAVEIINUCCTECGTVHTRTAEEAISSS
- 5) LRUESTAANQIUCPEUTIRHSIETYICNDIPEIEEOTEECLNOSNEIGTCSN
- 6) QEULABNIDSOSNONPEESTAIIVTSPUALSPOEULARLELLELRAIYLTFUA
- 7) LMUSLTSTNEVEREEUEIUESIEQALNSTREUREDCEMRTLEMBEBARIEIPE
Maintenant, quelques petits coups de pouces pour vous aider
dans vos recherches :
Pour la 1) et la 2), il s'agit juste de voir si vous avez
compris deux techniques expliquées dans cet article : la première
fonctionne selon le système de la scytale, et la seconde grâce
à la technique en "dent de scie".
Je ne vous dis presque rien sur les quatre suivants, si ce
n'est qu'il ne s'agit pas forcément de techniques vues ici,
certaines pourraient bien sortir tout droit de mon cerveau tordu.
Je vous aide simplement pour la 4) en vous disant que le texte en
clair comporte 18 mots... Cherchez en quoi cela peut vous être
utile.
La dernière, la 7) est un peu plus difficile d'après moi
: il s'agit en fait de la technique décrite dans le petit c du II.
Je ne vous donne pas la clé, je peux simplement vous dire que la
longueur de celle-ci n'excède pas 7 caractères. Je veux pas
faire trop dur non plus !!!
Les chaînes de caractères qui suivent sont en fait les
cryptages (à ma manière) des 7 textes textes clairs à l'origine
des 7 cryptogrammes que vous devez déchiffrer au-dessus. Si
quelqu'un arrive à trouver mon algorithme de cryptage qu'il
m'envoie un mail pour que je le félicite... Pour lire les textes
originaux des épreuves précédentes, soumettez les textes
ci-dessous (le premier cryptogramme donné correspond à l'épreuve
1 et ainsi de suite...) au script qui est à l'adresse suivante : http://www.espionet.com/zine/script/crypto_sol.php.
J'ai préféré ce moyen que celui de vous mettre
directement les réponses en clair dans le fichier : on peut trop
facilement les lire "par mégarde" :-D... Et en plus,
cet algorithme de cryptage fera sans doute l'objet d'un nouvel
article.
Voici les précieux sésames qui vous permettront de vérifier,
ou d'obtenir les solutions sur le site :
- 1) GFATRRHVVCMTRLJJICHABRZZGHMUFDCVXGRU
- 2) IKXCUHVRXWGJDMIBQAWAEONLHHKYTTEZPPVQMDUFCULIUVCO
- 3) PLBVWHPAWMEEANVWGVYBEGPFRHAZO
- 4)
FPISZGLENQFRGNVEXVACTMHTHMICJECFWYRSDUJBBRVIQWIECNLPSAEXPLRLDQBSVRL
- 5) YPANIVAREIOFNUVYMHKZYKGAPXQEUPTZPSDBVEYBNFBQZIERRNTR
- 6) DADEGVWABCMWOOCQWYZVDAHZNNQAMONGDFGFTAKALYIMMMTRJLIVS
- 7) VLTRGZLYBTYOIEVYTEYMSKOYGKMEEEMVLYRBDUZOSGMMETEEVBGHP
Nous espérons que cette première partie vous a plu et
satisfait. Sur ce, à vos crayons, et amusez vous bien !
-----------------------------------------------------------------------
Hannibal
& Nightm4re
Pour nous contacter :
Hannibal : vinakin@hotmail.com (MSN et mail)
Nightm4re :
nightm4re@espionet.com (mail)
nightm4re0024@hotmail.com (MSN)
|