Vous êtes sur la page 1sur 39

Cryptographie

(INF422)
Cours et Travaux dirigés

HANWA Anne (Université de Ngaoundéré)

Ngaoundéré, le 23 mars 2023


♣ Préface ♣

La cryptographie ou science du secret est un art très ancien, c’est


l’art de remplacer un secret encombrant par un secret miniature.
La cryptographie est l’art de rendre inintelligible, crypter, de coder, un message à ceux
qui ne sont pas habilités à en prendre connaissance.
La cryptographie est née environ 1900 avant J-C où un scribe égyptien a employé des
hiérogliphes non conformes à la langue correcte.
Entre 2000 avant et 1000 ans après J-C, la cryptographie est née spontanément dès
que une partie importante de la population d’un pays a su lire. C’est le cas de la tablette
mésopotamienne contenant une formule chiffrée de vernis pour les poteries inscrit par un
potier babylonien en 1500 avant J-C. En 600-500 avant J-C, des scribes hébreux mettent
le livre de Jérémie en un simple chiffre de substitution connusous le nom d’Atbash. En 437
avant J-C, les grecs emploient un dispositif appelé la scytale : un bâton autour duquel une
bande longue et mince de cuir était enveloppée et sur laquelle on écrivait le message. Le
cuir était ensuite porté comme une ceinturepar le messager. Le destinataire avait un bâton
identique permettant d’enrouler le cuir afin de déchiffrer le message. L’historien Polybe
invente le carré de Polybe en 200-125 avant J-C. Jules César employait une substitution
simple avec l’alphabet normal dans les communications du gouvernement en 100-44 avant
J-C. Au 9e siècle, Abu Yusuf Ya’qub Ibn Is-haq Ibn as-Sabbah oòmran Ibn Ismaïl al-kindi
rédige le plus ancien texte connu décrivant la technique de décryptement appelée analyse
des fréquences.
Entre 1000 et 1800, l’occident développe la cryptographie et la cryptanalyse jusque là
devancé par la science égyptienne et arabe. En 1226, une timide cryptographie politique
apparaît dans les archives de Venise, où des points ou des croix remplacent les voyelles
dans quelques mots épars. En 1250 environ, Roger Bacon décrit plusieurs chiffres et pense
que il est fou celui qui écrit un secret de toute autre manière que celle qui le soustrait à la
connaissance du vulgaire. Gabriel de Lavinde compose un recueil de clés, dont plusieurs

Niveau 4 i Cours de Cryptographie


combinent code et substitution simple en 1379.

Niveau 4 ii Introduction à la Cryptologie


♣ Table des matières ♣

Préface i

1 Introduction à la cryptographie 1
1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3 Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Services de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Sécurité prouvée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 Modèle de l’oracle aléatoire . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Modèle standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Mécanismes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Complexité de problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.1 Notions de complexité . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.2 Classes de complexité . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Cryptologie traditionnelle 8
1.7 Cryptographie conventionnelle . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7.1 Chiffrement et déchiffrement . . . . . . . . . . . . . . . . . . . . . . 8
1.7.2 Objectifs des chiffrements actuels . . . . . . . . . . . . . . . . . . . 9
1.7.3 Sécurité d’un cryptosystème . . . . . . . . . . . . . . . . . . . . . . 9
1.7.4 Décryptement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 Procédés traditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.8.1 Transpositions ou Permutions . . . . . . . . . . . . . . . . . . . . . 12
1.8.2 Substitutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Niveau 4 iii Cours de Cryptographie


Table des matières

1.8.3 Substitutions polygrammiques . . . . . . . . . . . . . . . . . . . . . 16


1.8.4 Chiffre en Chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8.5 Confusion, Diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.9 Cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9.1 Types d’attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9.2 Analyse de fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9.3 Attaques à texte clair . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.9.4 Test d’hypothèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.9.5 Indices de coïncidences mutuelles . . . . . . . . . . . . . . . . . . . 23
1.9.6 Cryptanalyse du chiffre de Vigenère . . . . . . . . . . . . . . . . . . 24

Machines en Cryptographie 26
1.10 Le cylindre chiffrant de Jefferson . . . . . . . . . . . . . . . . . . . . . . . 26
1.11 la machine Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.11.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.11.2 Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.11.3 Déchiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.11.4 Cryptanalyse : décryptement . . . . . . . . . . . . . . . . . . . . . . 30
1.12 Colossus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Niveau 4 iv Introduction à la Cryptologie


? ? Chapitre Un ? ?

Introduction à la cryptographie

Sommaire
1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3 Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Services de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Sécurité prouvée . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 Modèle de l’oracle aléatoire . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Modèle standard . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Mécanismes de sécurité . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Complexité de problèmes . . . . . . . . . . . . . . . . . . . . . . 6
1.6.1 Notions de complexité . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.2 Classes de complexité . . . . . . . . . . . . . . . . . . . . . . . 6

1.1 Définition
La cryptologie est la science des messages secrets. Cette branche est née du besoin de
transmettre des messages au seul destinataire autorisé, et dont le message reste caché au
messager et à quiconque pourrait l’intercepter. De nos jours, la cryptologie tend vers un
ensemble de méthodes destinées à protéger toute information contre un observateur quel-
conque ou une intrusion malveillante. En raison de la sensibilité des informations échan-
gées, les milieux diplomatiques, gouvernementaux et militaires sont longtemps intéressés

Niveau 4 1 Cours de Cryptographie


1.2. Terminologie

à l’utilisation de la cryptologie. L’essor des réseaux de télécommunication, le développe-


ment de l’internet, et la banalisation des données enregistrées sont rendu possible grâce
à la confiance apportées par les moyens de protection des informations véhiculées. Une
connaissance des procédés mis en oeuvre est dont nécessaire pouur la compréhension et
la maitrise de l’objet. L’un des objectif serai de contribuer à la diffusion de ce savoir.

1.2 Terminologie
La cryptologie, étymologiquement science du secret c’est -à-dire de la science qui étu-
die les communications secrètes. Elle est composée de deux domaines d’étude complémen-
taires :
– la cryptographie,
– la cryptanalyse.
Pendant que les cryptographes élabore des systèmes permettant d’assurer certains fon-
dements sécuritaires, les cryptanalystes étudient leur robusteses en essayant de casser les
algorithme proposés par ces derniers.

1.2.1 Cryptographie
– La cryptographie traditionnelle est l’étude des méthodes permettant de transmette
des données de manière confidentielle.
– La cryptographie est en somme l’ensemble des méthodes qui permettent de chiffrer
et de déchiffrer un texte en clair afin de le rendre incompréhensible pour quiconque
n’est pas en possession de la clé à utiliser pour le déchiffrer.
Afin de protéger un message, on lui applique une transformation qui le rends incom-
préhensible appellée :
– le chiffrement qui, à partir d’un texte en clair, donne un texte chiffré appelé cryp-
togramme,
– le déchiffrement est l’action qui permet de reconstruire le texte clair à partir du
texte chiffré.
Dans la cryptographie moderne, les transformations en question sont des fonctions ma-
thématiques, appelées algorithmes cryptographiques, qui dépendent d’un paramètre appelé
clé.
– Clé est le secret partagé utilisé pour chiffrer le texte en clair en texte chiffré et
pour déchiffrer le texte chiffré en texte en clair. On peut parfaitement concevoir

Niveau 4 2 Introduction à la Cryptologie


1.3. Services de sécurité

un algorithme qui n’utilise pas de clé, dans ce cas c’est l’algorithme lui-même qui
constitue la clé, et son principe ne doit donc en aucun cas être dévoilé.
De plus,
– le texte en clair est le message à protéger.
– le texte chiffré est le résultat du chiffrement du texte en clair.
– Coder, décoder sont des méthodes ou des algorithmes permettant de modifier la
mise en forme d’un message sans introduire d’élément secret.

1.2.2 Cryptanalyse
La cryptanalyse à l’inverse est l’étude des procédés cryptographiques dans le but d’at-
taquer, de briser et de trouver des faiblesses et, en particulier, de pouvoir décrypter des
textes des messages chffrées, ou pour faire passer un faux message pour un vrai. C’est en
somme l’art de révéler les textes en clair qui ont fait l’objet d’un chiffrement sans connaître
la clé utilisée pour chiffrer le texte en clair. Le décryptement est l’action consistant à re-
trouver le texte en clair sans connaitre la clé du déchiffrement. Ce sont ces attaques qui
fournissent au cryptographe les critères de conception qui rendront ses procédés plus sûr.

1.2.3 Challenge
Les utilisateurs d’un système cryptographique disposent de :
– un paramètre secret,
– une clé détenue d’eux seuls,
et sur lequel repose toute la sécurité. Si cette clé venait à être connue, tout le système
s’effondrerait.

Remarque 1.2.1. Le cryptanalyse, lui, ne dispose pas de cette clé, et cherche à pénétrer
les messages.

L’activité cryptologique est encore présentée comme une course sans fin entre le cryp-
tographe (codeur) et le cryptanaliste (briseur de code).

1.3 Services de sécurité


La cryptologie est une discipline scientifique à part entière, dont l’objet est l’étude des
méthodes permettant d’assurer
– la confidentialité,

Niveau 4 3 Introduction à la Cryptologie


1.3. Services de sécurité

– l’authenticification,
– l’intégrité,
– non répudiation
dans un système d’information et de communication.
Un service d’intégrité guarantit que le contenu d’une communication ou d’un fichier
n’a pas été modifié. Par exemple, on peut souhaiter vérifier qu’aucun changement du
contenu de l’ordre des généraux aux aide de camps n’ été modifié.
Un service d’authenticité garantit l’identité d’une entité donnée ou l’origine d’une
communication d’un d’un fichier. Ainsi, l’information ne doit être accessible qu’à celui ou
celle à qui l’information est destiné.
Un service de confidentialité garantit que le contenu d’une communication ou d’un
fichier n’est pas accessible aux tiers. Des services de confidentialité sont offert dans de
nombreux contextes :
– en téléphonie mobile, pour protéger les communications
– les réseaux sociaux,
– en télévision à péage pour réserver la réception des données aux abonnés...
La non-répudiation/ signature permet à un individu de prendre part à un contrat avec
impossibilité de renier ensuite ses engagements.
L’authentification n’est pas seulement pris en charge par des techniques cryptogra-
phiques. Il existe plusieurs variantes et niveaux d’authentification. En général, plusieurs
types d’authentifications sont couplés pour la sécurité avec plusieurs niveaux : on parle
d’authentification forte ou multifacteurs dont 3 sont fondamentaux à savoir :
– ce que l’on sait (mot de passe, phrase secrète,...)
– ce que l’on a (clé, usb, carte magnétique, carte à puce)
– ce que l’on est (biométrie).
De plus, on peut aussi citer :
– certification : c’est une entité digne de confiance qui valide une information donnée
(généralement l’authenticité d’une clé publique) ;
– contrôle d’accès : l’accès à certaines ressources est limitée aux personnes autorisées ;
– gestion des clés : en général, les systèms de cryptographie utilisent des clés secrètes,
privées et / ou publiques. La gestion de ces clés (intégrité, stockage, distribution,...)
est un problème difficile appelé gestion de Clés ;
– preuve de reconnaissance : une entité appelée prouveur souhaitedémontrer à une
autre entité appelée vérificateur qu’elle détient un secret (mot de passe, clé secrète,
clé privé,...)

Niveau 4 4 Introduction à la Cryptologie


1.4. Sécurité prouvée

comme outils d’authentification secondaires, mais qui serait d’une importance capitale.

1.4 Sécurité prouvée


Il est généralement acquis que la sécurité prouvée a été introduite en 1984 par Gold-
wasser et Miccali. Ce domaine permet d’analyser de manière formelle la sécurité d’une
primitive cryptographique. Ainsi, il est nécessaire de définir précisément ce que le terme
sécurité signifie pour un schéma donné. En fait, il faut donc précisément établir les ob-
jectifs que doit remplir le schéma étudié et quelles sont les attaques auxquelles il doit
pouvoir résister.
Par exemple, un schéma de chiffrement a pour objectif de protéger la confidentialité
d’un message. En fonction du contexte, certains scénarios d’attaques sont envisageables :
on parle de modèle de sécurité. En général, un modèle de sécurité se définit à travers un jeu
interactif entre un attaquant et un challengeur qui contrôle l’environnement de ce dernier.
Pour gagner un jeu, un attaquant doit réaliser des tâches dont on veut généralement
prouver qu’elles sont difficiles. Par exemple, dans le cas du chiffrement, l’attaquant peut
avoir pour objectif de retrouver un clair à partir d’un chiffré donné.
En général, pour prouver la sécurité d’une primitive, l’idée est d’établir une réduction
entre le modèle de sécurité et un problème jugé difficile. Plus précisément, gagner un jeu
associé à un modèle de sécurité permettra alors de résoudre un problème difficile.

1.4.1 Modèle de l’oracle aléatoire


Introduit par Bellare et Rogaway, le modèle de l’oracle aléatoire ou ROM (pour Ran-
dom Oracle Model) suppose que toute fonction de hachage se comporte comme une fonc-
tion aléatoire. Autrement dit, leurs sorties sont indistinguables de valeurs aléatoires. Ainsi,
prouver la sécurité d’un schéma dans le ROM revient à remplacer toute fonction de ha-
chage par un oracle aléatoire. À chaque appel, l’oracle retourne une sortie uniformément
distribuée dans l’espace d’arrivée ; évidemment sur une entrée déjà rencontrée, l’oracle
retourne la même sortie.

1.4.2 Modèle standard


Contrairement au ROM, le modèle standard ne pose aucune hypothèse sur les fonctions
de hachage utilisées. Les preuves de sécurité dans ce modèle sont donc généralement

Niveau 4 5 Introduction à la Cryptologie


1.5. Mécanismes de sécurité

considérées comme plus fortes. En effet, certains travaux ont souligné que la sécurité dans
le ROM pouvait conduire ‘a des instanciations non sécurisées dans le modèle standard.
La factorisation et le calcul du logarithme discret sont des problèmes considérés comme
standards puisque largement éprouvés par la communauté, notamment depuis leur usages
respectifs dans la conception des célèbres cryptosystèmes RSA et ElGamal. Ces problèmes
sont donc considérés comme résistants aux technologies actuelles (Shorr a montré que ces
deux problèmes pouvaient résolus en temps polynomial par l’ordinateur quantique). Ainsi,
proposer un cryptosystème dont la sécurité se réduirait à un tel problème reviendrait à
prouver sa sécurité dans le modèle standard.

1.5 Mécanismes de sécurité


Si le but de la cryptographie est d’élaborer des méthodes permettant de transmettre
des données de manière confidentielle, la cryptographie moderne s’attaque en fait plus gé-
néralement aux problèmes de sécurité comme : Le cryptographe utilisent plusieurs outils
de bases encore appelés primitives cryptographiques et protocoles cryptographiques afin
d’atteindre les objectifs de sécurité fixés. Pour cela, un certain nombre de mécanismes au
moyens d’outils cryptographiques (fonctions, algorithmes, générateurs aléatoires, proto-
coles...) sont mis en œuvre :
– le chiffrement
– le scellement et la signature,
– les protocoles d’authentifications mutuelle avec échange de clés
– ....

1.6 Complexité de problèmes

1.6.1 Notions de complexité


Certains problèmes, comme la factorisation ou le logarithme discret, sont considé-
rés difficiles car largement étudiés par la communauté sans qu’aucun algorithme efficace
c’est-à-dire en temps polynomial de résolution n’ait été produit. D’autre part, certains
problèmes jouissent d’assomptions de sécurité plus formelles. En cryptographie, on relie
souvent la difficulté d’un problème à sa classe de complexité. Les définitions rappelées ici
sont informelles pour la plupart.

Niveau 4 6 Introduction à la Cryptologie


1.6. Complexité de problèmes

1.6.2 Classes de complexité


Définissons informellement les classes de complexité qui nous intéressent dans ce ma-
nuscrit en les reliant aux notions de machines de Turing évoquées ci-dessus. Rappelons
d’autre part qu’un problème de décision est un problème pour lequel la réponse au pro-
blème est “oui” ou “non”.
– Classe P. Contient les problèmes de décision qui peuvent être d´ecidés par une ma-
chine de Turing déterministe en temps polynomial par rapport à sa taille d ?entrée.
C’est l’ensemble des problèmes faisables ou faciles.
– Classe NP. Ensemble des problèmes de la classe P Contient l’ensemble des pro-
blèmes qui peuvent être d´ecidés par une machine de Turing non déterministe en
temps polynomial par rapport à la taille de l’entrée. Intuitivement, cela revient à
dire que l’on peut vérifier rapidement (i.e. par une machine de Turing déterministe
en temps polynomial) si un candidat est bien solution d’une instance donnée. C’est
le cas par exemple du problème du voyageur de commerce.
– Classe NP-difficile (NP-hard). Ensemble des problèmes au moins aussi difficiles
que ceux de la classe NP. Plus précisément, un problème Q est dit NP-difficile si
0 0
pour tout problème Q ∈ NP, il existe une réduction polynomiale de Q vers Q .
– Classe NP-complet. Intersection des classes NP-difficile et NP.
Une des questions fondamentales de la théorie de la complexité est de savoir si P =NP, i.e.
s’il existe des problèmes qui sont dans NP sans être dans P. Baser la sécurité d’un cryp-
tosystème sur un problème NP-complet apporte un argument supplémentaire pour croire
en sa robustesse puisque casser (en temps polynomial) ledit cryptosystème reviendrait ‘a
montrer que P = NP alors que ce problème reste ouvert après des décennies d’intenses
recherches et que, pour beaucoup dans la communauté, il semblerait que P 6= N P . La
situation est résumée par la Figure suivante

Figure 1.1 – Représentation ensembliste des classes de complexité.

Niveau 4 7 Introduction à la Cryptologie


♣ Cryptologie Classique ♣

Ce chapitre introduit les définitions des concepts liées au domaine de la cryptographie


à. Ensuite, il traite d’une période qui s’étend de l’antiquité grecque jusqu’au début du
20e siècle, quand les dévéloppement des calculateurs mécaniques, électromécaniques, puis
électroniques a marqué le début d’une nouvelle ère. Cette cryptologie traditionnelle est
un traitement de la langue écrite, avant d’être un calcul. Ce parcours historique montre
comment les principaux concepts, toujours en vigueur aujourd’hui, ont été introduites.

1.7 Cryptographie conventionnelle


Un cryptosytème est un dictionnaire entre les messages en clair et les messages chiffrés.
La cryptographie conventionnelle est principalement liée aux services de confidentia-
lité. Ainsi, pour pouvoir travailler efficacement sur les codes et définir de manière quantita-
tive leur sécurité, on est amené à les modeliser et donc à définir de manière axiommatique
un cryptosystème.

Un système cryptographique (cryptosystème) est la donnée P, E, Ek , Dk , K de
– un ensemble fini de blocs P appelé l’espace des textes clairs (plaintexts) ;
– un ensemble fini de blocs E appelé l’espace des textes chiffrés (ciphertexts) ;
– un ensemble fini Kappelé espace des clés (keys) ;
– Ek : P → E est une fonction inversible à gauche appelée fonction de chiffrement ;
– Dk : E → P est la fonction de déchiffrement.
Pour chaque k ∈ K (clé de code) la transformation Ek est bijective. La fonction inverse
Dk est la fonction de déchifrement.

1.7.1 Chiffrement et déchiffrement


Le chiffrement réalise une transformation Ek (m) = c sur les données m ∈ P via l’algo-
rithme de chiffrement E. Cet algorithme prend en entrée le message clair m et un paramètre

Niveau 4 8 Cours de Cryptographie


1.7. Cryptographie conventionnelle

secret k, qu’on appelle la clé. La restauration du texte clair à partir du cryptogramme ou


chiffré C se fait via un algorithme de déchiffrement Dk , prenant le cryptogramme et la clé
k. On aura ainsi Dk (Ek (m)) = Dk (Ek (m)) = IdP . De même, Ek (Dk (c)) = Ek (Dk (c)) = IdE .
Ainsi, les applications Ek et Dk réalisent une permutation de M lorsque k.
La cryptologie moderne recommande ds méthodes de chiffrement totalement explicites,
de manière à ce qu’elle soient évaluées et validées par un débat ouvert entre experts. Ainsi,
une convention secrète entre entités qui souhaitent communiquer de façon chiffrée, se limite
à l’échange de certaines clés spécifiques k ∈ K.

1.7.2 Objectifs des chiffrements actuels


Les messages ne peuvent être déchiffrés que par le destinataire : confidentialité des
données.
– Ils ne peuvent être modifiés par un tiers non autorisé : intégrité des données.
– L’identité des différents participants peut être vérifiée : authentification.
– L’expéditeur ne peut nier avoir émis le message et le destinaire ne peut nier l’avoir
reçu : non-répudiation des données).
– Il doit permettre de chiffrer et déchiffrer rapidement ; en temps réel pour certaines
applications.
– Il doit au moins résister aux attaques connues et si possible avoir une sécurité
prouvée.
Il n’existe pas de chiffrements qui réunissent toutes ces qualités simultanément. Il faut
donc un compromis adapté à chaque situation.

1.7.3 Sécurité d’un cryptosystème


La distinction entre l’algorithme et la clé s’est établie grâce aux travaux du cryptologue
Auguste Kerckhoffs. Ce dernier a su reconnaître que l’algorithme de chiffrement n’exigeait
pas le secret, dans la mesure où il risquait de toutes façons de passer aux mains de l’ennemi.

Principes de KercKhoffs

Un principe fondamental de la cryptographie a été énoncé par Kerckhoffs à la fin du


19e siècle. Ce principe stipule que
La sécurité d’un cryptosystème ne repose pas sur le secret du cryptosystème mais seule-
ment sur la clé du cryptosystème qui est un paramètre facile à changer, de taille réduite
et donc assez facile à transmettre secrètement.

Niveau 4 9 Introduction à la Cryptologie


1.7. Cryptographie conventionnelle

Autrement dit, il exprime que la méthode de chiffrement utilisée doit pouvoir tomber sans
inconvénient aux mains de l’ennemi : la sécurité d’un chiffrement doit reposer uniquement
sur la protection de la clé.
Ce principe possède plusieurs justifications. Principalement :
– La confidentialité d’un algorithme est difficile à garantir. Il est en général connu de
plusieurs personnes et il est souvent diffusé dans des logiciels ou dispositifs hardware
à des utilisateurs non habilités au secret. La confidentialité de l’algorithme peut
succomber à la corruption ou au reverse engineering.
– La sécurité d’un algorithme secret est difficile à évaluer : le nombre d’algorithmes
à l’origine du secret se sont révélés extrêmement faibles. Il est généralement admis
que la meilleure garantie de sécurité d’un algorithme est apportée par une longue
période d’évaluation par la communauté de cryptographie.
– Un algorithme secret peut dissimuler des propriétés indésirables pour l’utilisateur
final : existence de clés faibles. Il n’est donc pas adapté si la confiance envers le
concepteur n’est pas établie.
– Pour le théoricien, c’est une hypothèse de travail sans laquelle il est impossible
d’obtenir des résultat rigoureux de sécurité.
Par exemple dans un cryptosystème basé sur des régistres à décalage, on suppose que
l’attaquant connait la forme des récurrences linéaires ainsi que la fonction de combinaison
mais pas les conditions initiales de récurrences qui constituent la clé du code.

Différentes notions de sécurité d’un cryptosystème

– La sécurité inconditionnelle qui ne préjuge pas de la puissance de calcul du crypta-


nalyste qui peut être illimitée.
– La sécurité calculatoire qui repose sur l’impossibilité de faire en un temps raisonnable
les calculs nécessaies pour décrypter un message.
– La sécurité prouvée qui réduit la sécurité du cryptosystème à un problème bien
connu réputé difficile. Par exemple on pourrait prouver un théorème disant qu’un
système cryptographique donné est sûr si un entier donné n ne peut être factorisé.
– La Confidentialité parfaite qualité des codes pour lesquels un coupe (messages clair,
message chiffré) ne donne aucune information sur la clé.
Toutes ces notions de sûreté reposent sur :
– la théorie de l’information de Claude Shannon.
– la théorie de la complexité.

Niveau 4 10 Introduction à la Cryptologie


1.7. Cryptographie conventionnelle

1.7.4 Décryptement
Décrypter un message consiste à retrouver le texte en clair correspondant à un texte
chiffré sans posséder la clé qui a servit au chiffrement.
L’opération du décryptement consiste à calculer le texte clair m à partir du chiffré
c = Ek (m), mais sans la connaissance de la clé k.
La confidentialité es assurée si cette opération est impossible.
Un attaquant est une personne qui tente de décrypter des messages, c’est-à-dire de
retrouver des clairs à partir des chiffrés sans connaître la clé. On réserve généralement
le mot déchiffrer à l’action du destinataire légitime qui affecte l’opération inverse du
chiffrement.
La cryptanalyse d’un système cryptographique peut-être :
– une cryptanalyse partielle. Ici, l’attaquant découvre alors le texte clair correspondant
à un ou plusieurs messages chiffrés interceptés.
– une cryptanalyse totale. Dans ce cas, l’attaquant découvre un moyen de déchiffrer
tous les messages, aussi bien ceux qu’il a interceptés que ceux à venir, par exemple
en découvrant la clé utilisée.
Selon les moyens dont dispose l’attaquant, on distingues divers scénarios possibles
d’attaque :
– les attaques à messages chiffré seul, où l’adversaire a seulement la possibilité d’in-
tercepter un ou plusieurs messages de chiffrés Ek (mi ) ;
– les attaques à messages clairs , où l’adversaire dispose d’un certain nombre de
chiffrés Ek (mi ) et des clairs correspondants mi .
– les attaques à messages des clairs de son choisis mi . L’attaquant a la possibilité
d’obtenir la version chiffrée de messages clairs de son choix. On distingue alors deux
sous-types d’attaquue, suivant que l’attaquant est contraint de choisir les clairs en
une seule fois, ou au contraire peut faire évoluer ses choix au fûrû et à mesure des
résultats obtenus. Dans ce cas, on parle d’attaque adaptativeà message clairs choisis.
– Attaque à message chiffré choisis. L’attaquant a temporairement l’opportunité de
déchiffrer les messages de son choix (en ayant accè par exemple à une machine
déchiffrante). Il tente alors d’en profiter pour obtenir des informations lui permettant
de décrypter ensuite d’autre messages par ses propres moyens. Ici, on distingue aussi
deux sous-type : attaque adaptative ou non
Le but de l’attaque est la découverte de la clé ou le décryptement d’un cryptogramme c,
correspondant à un clair dont on ne dispose pas. Les attaques à chiffré seul sont les plus

Niveau 4 11 Introduction à la Cryptologie


1.8. Procédés traditionnels

difficiles. Toutefois, l’adversaire dispose en général d’informations statistiques sur le clair.


En d’autre termes, les messages sont créés en suivant une probabilité qui correspond à
une distribution sur M, appelée a priori. L’interception d’un (ou de plusieurs) chiffrés a
pour effet de conditionner cette distribution, produisant une distribution a posteriori :
par exemple

1.8 Procédés traditionnels

1.8.1 Transpositions ou Permutions


Une autre méthode de change l’ordre des lettres de façon à aboutir à un mélange sans
cohérence appelée procédé de transposition. Dans ce procédé, les lettres du texte ne sont
pas altérées. Seul l’ordre des lettres est changé de façon à aboutir à un mélange sans
cohérence. On partage ici le texte en blocs, on garde le même alphabet mais on change la
place des lettres à l’intérieur d’un bloc (on les permute). Un exemple historique dont le
principe est encore utilisé dans les codes à clef secrète (DES, AES) est la méthode de la
grille (principe de la scytale utilisé par les spartiates).
Ici, A = Z26 est l’alphabet romain et P = E = A. Soit σ une permutation (i.e. une
bijection) sur {1, ..., n} où n est la longueur du clair (on peut aussi découper le clair en
différents blocs et chiffrer par bloc). L’opération du chiffrement d’un message m = m1 ...mn
est :
c = Eσ (m) = mσ(1) ...mσ(n) .

La clé secrète est σ. Connaissant celle clé, on peut déchiffrer :

Dσ (c) = cσ−1 (1) ...cσ−1 (n) = m.

Il ya n! permutations possibles et la taille de l’espacedes clés est probablement suffisant


dès que n est assez grand. Pourtant, ce système est cassé car il est linéaire : il existe une
matrice (matrice de permutation) Aσ telle que

c = m × Aσ .

Le terme (Aσ )i,j de cette matrice vaut 1 si i = σ(j) et 0 sinon.


L’attaque valable sur lse crypto systèmes linéaires se décrivent comme suit : soit un
cryptosystème tel que c = m × A ( A est supposé être la matrice de la clé secrète). On
suppose que l’attaquant dispose de n paires de clairs-chiffrés. Grâce à une probabilité non
négligeable, il peut retrouver la clé A : on dit qui fait une attaque à clair connu. On met

Niveau 4 12 Introduction à la Cryptologie


1.8. Procédés traditionnels

les n clairs en matrice carré Mn×n et les n chiffrés correspondants en une matrice C. On
a
C = M × A.

De plus, si la matrice M est inversible il en déduit

A = M −1 × C

en n3 opérations élémentaires (par la méthode de pivot de Gauss). La proportion de


matrices inversibles parmi les matrices carrées étant non négligeable, la probabilité que
l’attaque réussissse est non négligeable.

Exemple 1.8.1. Le chiffrement de Rail fence a été ainsi utilisé pendant la guerre de
Sécession. Il consiste en la transposition obtenue en écrivant un texte dans un tableau par
colonnes, éventuellement en descendant et en montant successivement. Le cryptogramme
est donc constitué en écrivant le texte suivant les lignes.

Remarque 1.8.1. La grille tournante qui est un procédé selon lequel le cryptogramme
est disposé dans un carréé, et en plaçant sur celui ci une grille ajourée comprenant des
trous convenablement placés, les premières lettres du message en clair apparaissent. La
suite du cryptogramme est lue de manière similaire en tournant successivement la grille
d’un quart de tour.

Cette période s’étend de l’antiquitégrecque jusqu’au début du 20e siècle. La cryptologie


traditionelle se caractérise par un traitement de la langue écrite, avant d’être un calcul.

1.8.2 Substitutions
Le chiffrement par substitution consite à remplacer les lettres ou les mots par d’autres.
Il existe quatre types de substitutions :

Substitutions monoalphabétique

Le procédé consiste à brouiller un texte écrit dans une langue à alphabet, ceci en
remplaçant chaque lettre par une autre selon une règle convenue.
Ici, A est l’alphabet romain et P = E = A. Soit k une permutation (i.e.une bijection)
sur A. L’oprération de chiffrement d’un message m = m1 ...mn est :

c = Ek (m) = k(m1 )...k(mn ).

Niveau 4 13 Introduction à la Cryptologie


1.8. Procédés traditionnels

La clé secrète est k et l’espace des clés est l’ensemble des permutations de K = Z26 .
Connaissant cette clé, on peut déchiffreré :

Dk (c) = k −1 (c1 )...k −1 (cn ) = m.

Un cas particulier est lorsque k est le décalage circulaire des lettres.


Dans le cas général, il y a 26! permutations possibles et la taille de l’espace des clés
est amplement suffisant (par la formule de Stirling, on a 26! w √ 1
2×3,14×26
2626 e−26 et on
peut même calculer directement sur la machine 26! w 4 × 1026 ).
Pourtant, ce système est cassé par la cryptanalyse statistique car dans une langue
usuelle telle que le français, les lettres n’apparaissent pas toutes avec les mêmes fréquences.
Par exempl, on repère le e comme la lettre la plus fréquente. D’autres particularités
(par exemple, le q est très souvent suivi du u) peuvent être utilisées et entrées dans un
programme informatique qui retrouve la clé k immédiatement. A la simple lecture du
texte chiffré, on retrouve ainsi le clair : il s’agit d’une attaque à chiffré seul.

Chiffre de César Jules César utilisait ainsi le chiffrement par décalage comme méca-
nisme de confidentialité.
Le principe est le suivant : chacune des 26 lettres de l’alphabet française est représenté par
un nombre entier compris entre 0 et 25 et P = E = K = Z26 on a Ek (x) = x + k(mod26)
(k = 3 dans le cas du chiffrement de César). Pour retrouver le sens de message en clair, il
suffit d’opérer le même décalage dans l’autre sens c’est-à-dire Dk (y) = y − k(mod26). Le
texte clair cryptographie est chiffré en F U BSW RJU DSKLH lorsque k = 3. Ce procédé
subsiste encore aujourd’hui sous le nom de ROT13 qui opère un décalage de treize posi-
tions dans l’alphabet moderne. Il est utilisé pour brouiller un texte dans le réseau usenet
qui sert encore à l’échange d’informations au sein de la communauté.
Toutefois, les substitutions simples sont sensibles à l’analyse des fréquences, qui consiste
à compter les occurrences des caractères et à comparer le résultat avec la distribution du
texte en clair. Pour le rendre plus résistance, l’on a imaginé coder les lettres les plus
féquentes (comme a ou e) de façon différente en alternant le choix du codage.

Algorithme Les ordinateurs ont révolutionné la cryptographie et surtout le décryptage


d’un message intercepté. Nous montrons ici, à l’aide du langage Python comment pro-
grammer et attaquer le chiffrement de César. Tout d’abord la fonction de chiffrement se
programme en une seule ligne :
Code 1 (cesar.py (1)).

Niveau 4 14 Introduction à la Cryptologie


1.8. Procédés traditionnels

def cesar_chiffre_nb(x,k) :
return (x+k)mod26
Pour le décryptage, c’est aussi simple :
Code 2 (cesar.py (2)).
def cesar_dechiffre_nb(x,k) :
return (x-k)mod26
Pour chiffrer un mot ou un phrase, il n’y a pas de problèmes théoriques, mais seulement
des difficultés techniques :
– Un mot ou une phrase est une chaîne de caractères, qui en fait se comporte comme
une liste. Si mot est une chaîne alors mot[0] est la première lettre, mot[1] la deuxième
lettre... et la boucle for lettre in mot : permet de parcourir chacune des lettres.
– Pour transformer une lettre en un nombre, on utilise le code Ascii qui à chaque
caractère associe un nombre, ord(A) vaut 65, ord(B) vaut 66... Ainsi (ord(lettre)-
65) renvoie le rang de la lettre entre 0 et 25 comme nous l’avons fixé dès le départ.
– La transformation inverse se fait par la fonction chr : chr(65) renvoie le caractère
A, chr(66) renvoie B...
– Pour ajouter une lettre à une liste, faites maliste.append(lettre). Enfin pour trans-
former une liste de caractères en une chaîne, faites "".join(maliste). Ce qui donne :
Code 3 (cesar.py (3)). def cesar_chiffre_mot(mot,k) :
message_code=[] ]Liste vide
for lettre in mot : ] Pour chaque lettre
nb = ord(lettre)-65 ] Lettre devient nb de 0 à 25
nb_crypte = cesar_chiffre_nb(nb,k) ] Chiffrement de César
lettre_crypte = chr(nb_crypte+65) ] Retour aux lettres
message_code.append(lettre_crypte) ] Ajoute lettre au message
message_code = "".join(message_code) ] Revient à chaine ?caractères
return(message_code)
Pour l’attaque on parcourt l’intégralité de l’espace des clés. Noter que pour décrypter
les messages on utilise ici simplement la fonction de César avec la clé k.
Code 4 (cesar.py (4)).
def cesar_attaque(mot) :
for k in range(26) :
print(cesar_chiffre_mot(mot,-k))
return None

Niveau 4 15 Introduction à la Cryptologie


1.8. Procédés traditionnels

Remarque 1.8.2. En contrepartie, les lettres qui peuvent être remplacées par une autre
sans inconvénient pour la compréhension sont supprimées. En français, on peut par
exemple remplacer les i par des j, les v par des u. Ce type de substitution à représenta-
tion multiple s’appelle un un chiffre homophonique. Il a été très utilisé pour les échanges
diplomatiques à partir de la Renaissance.

1.8.3 Substitutions polygrammiques


Une substitution polygrammique est une substitution simple sur des groupements de
plusieurs lettres. Dans le cas d’une substitution bigrammique, deux lettres du texte clair
sont transformées en deux lettre du cryptogramme.

chiffre de Hill

Ici, chacune des 26 lettres de l’alphabet française est représenté par un nombre entier

compris entre 0 et 25 selon un codage désordonné tenu secret. P = E = Zm
26 (m ∈ N ). L’es-

pace des clé est l’ensemble GLm (Z26 ) des matrices inversibles d’ordre m à coefficients dans
Z26 . Soit k ∈ K, on alors Ek (x1 , ..., xm ) = (x1 , ..., xm )k et Dk (y1 , ..., ym ) = (y1 , ..., ym )k −1 .

4 3
 
Exemple 1.8.2. pour m = 2 et le texte clair cryptographe est codé numéri-
9 7
quement par ((2, 17), (24, 15), (19, 14), (6, 17), (0, 15), (7, 4)).
Le cryptogramme obtenu est ((5, 21), (23, 21), (20, 25), (21, 7), (5, 1), (12, 23)) ce qui cor-
respond à F V XV U ZV HF BM X.

Permutations

P = E = Zm
26 (m ∈ N ) et K est l’ensemble des permutations de Zm . Pour k ∈ K on a

alors Ek (x1 , ..., xm ) = (xk(1) , ..., xk(m) ) et Dk (y1 , ..., ym ) = (yk−1 (1) , ..., yk−1 (m) ).

Remarque 1.8.3. On peut voir ce système comme un cas particulier du chiffrement de


Hill.

Exemple 1.8.3. Si m = 6 et k est la permutation qui envoie (1, 2, 3, 4, 5, 6) sur (4, 2, 1, 5, 6, 3)


alors le cryptogramme de cryptographe est P RCT OY P RGHEA.

Niveau 4 16 Introduction à la Cryptologie


1.8. Procédés traditionnels

Substitutions polyalphabétiques

Inventé par Léon Battista Albertini, le chiffrement polyalphabétisme mets en œuvre


plusieurs alphabets. Une même lettre du message sera codée par des lettres différentes dans
le cryptogramme. Pour cela, deux correspondants doivent disposer de cadrans identiques
(exemple cadran d’Albertini). Puis ils se mettent d’accord sur un index repéré par une
lettre sur le disque mobile (par exemple la lettre k). Dans le cryptogramme, la première
lettre en majuscule (par exemple B) indiquera qu’il faut placer le k en face de cette lettre.
Ensuite, chaque lettre du cryptogramme représentera la lettre fixée au-dessus d’elle. Après
avoir écrit trois ou quatre lettres, la position de l’indice peut changée de façon à ce que
le k soit par exemple G. Pour signifier ce changement, on écrira un G majuscule dans le
cryptogramme, et à partir de là, k ne signifiera plus B, mais plutôt G.
Ceci signifie juste qu’au lieu d’une permutation, on dispose de t permutations k1 , ..., kt .
On applique k1 à m1 , k2 à m2 ,..., kt à mt puis on continue cycliquement en appliquant k1
à mt+1 , k2 à mt+2 ...En d’autres termes :

c = Ek1 ,...,kt (m) = k1 (m1 )...ki[t] (mi )...kn[t] (mn )

où désigne i mod(t).
Ce système peut s’attaquer par une méthode de type statistique.

Remarque 1.8.4. La machine Enigma, utilisée par les allemands pendant la deuxième
guerre mondiale, chiffrait par un système de Vigenère : la position initiale des rotors
déterminait la suite des permutations utlisées.

Chiffre de Vigenère Blocs


L’espace des clés du chiffrement mono-alphabétique est immense, mais le fait qu’une lettre
soit toujours cryptée de la même façon représente une trop grande faiblesse. Le chiffrement
de Vigenère remédie à ce problème. On regroupe les lettres de notre texte par blocs, par
exemple ici par blocs de longueur 4 :
CETTE PHRASE NE VEUT RIEN DIRE
devient
CETT EPHR ASEN EVEU TRIE NDIR E
(les espaces sont purement indicatifs, dans la première phrase ils séparent les mots,
dans la seconde ils séparent les blocs).
Si k est la longueur d’un bloc, alors on choisit une clé constituée de k nombres de 0
à 25 : (n1 , n2 , ..., nk ). Le chiffrement consiste à effectuer un chiffrement de César, dont le
décalage dépend du rang de la lettre dans le bloc :

Niveau 4 17 Introduction à la Cryptologie


1.8. Procédés traditionnels

– un décalage de n1 pour la première lettre de chaque bloc,


– un décalage de n2 pour la deuxième lettre de chaque bloc,
– ...
– un décalage de nk pour la k-ième et dernière lettre de chaque bloc.
Pour notre exemple, si on choisit comme clé (3, 1, 5, 2) alors pour le premier bloc "CETT" :
– un décalage de 3 pour C donne F,
– un décalage de 1 pour E donne F,
– un décalage de 5 pour le premier T donne Y,
– un décalage de 2 pour le deuxième T donne V.
Ainsi "CETT" de vient "FFYV". Vous remarquez que les deux lettres T ne sont pas
cryptées par la même lettre et que les deux F ne cryptent pas la même lettre. On continue
ensuite avec le deuxième bloc... Le carré de Vigenère est donc utilisé à cet effet.
Le carré de Vigenère est une table dont l’alphabet est répété sur 26 lignes, avec un
décalage à gauche de une lettre pour chaque nouvelle rangée.

Le chiffrement de Vigenère : P = E = K = Zm
26 (m ∈ N ). Soit k = (k1 , ..., km ) ∈ K

alors Ek (x1 , ..., xm ) = (x1 + k1 , ..., xm + km ) et Dk (y1 , ..., ym ) = (y1 − km , ..., ym − km ).

Exemple 1.8.4. Pour m = 3 et k = (2, 11, 4), le cryptogramme de cryptographie est


ECCRESICERSM G.

Masque jetable (one time pad) ou chiffre Vernam Presqu’identique au chiffre-


ment de Vigenère, le masque jetable (one time pad) encore appelé chiffrement de Vernam
(1917) utilise la clé une seule fois pour chiffrer les messages télégraphiques. Ceci contraint
à choisir une clé aussi longue que le message à chiffrer.

Pour chiffrer un texte de manière sûre avec le chiffre de Vigenère, vous devez :

1. choisir une clé aussi longue que le texte à chiffrer,

2. utiliser une clé formée d’une suite de caractères aléatoires,

3. protéger votre clé,

4. ne jamais réutiliser une clé,

5. écrire des textes clairs ne contenant que les lettres (sans ponctuation et sans espaces).

Le problème de ce système est de communiquer les clés de chiffrage ou de trouver un


algorithme de génération de clé commun aux deux partenaires. Un algorithme à base de
cartes à jouer a été proposé récemment par Bruce Schneier : le Solitaire

Niveau 4 18 Introduction à la Cryptologie


1.8. Procédés traditionnels

Le principe est le suivant : les messages clairs et chiffrés, sont une suite de caractère
de longueur n La clé k est une suite caractère de la même longueur que le clair.

c = m ⊕ k = m1 ⊕ k1 ....mn ⊕ kn .

Ce système est parfait dans le cadre d’une attaque à chiffré seul ce qui signifie que si
l’attaquant peut décrypter un (seul) message, i.e. trouver m, connaissant c, alors c’est
qu’il détient la clé k = (k1 , ...kn ). En effet, celle-ci se déduit de m et de c par :

k = m ⊕ c.

Pour la même raison, il est vulnérable aux attaques à clairs connus, ce qui implique que
la cé ne doit être utilisée qu’une seule fois.
De plus, il est impraticable, sauf pour des messages de petites longueurs : la clé doit
être envoyé sur un canal sécurisé (si le système est symétrique). Cette clé doit être aussi
longue que le message et ne doit être utiliser qu’une seule fois.
Le système du masque jetable, avec les précautions indiquées ci-dessus, est absolument
inviolable si l’on ne connaît pas la clé : il est dit à confidentialité parfaite. En effet, la
connaissance du texte crypté ne permette d’avoir aucune information sur le texte en clair.
Ils reposent sur la fabrication de clés au hasard aussi longues que le texte à chiffrer et qui
ne servent qu’une fois. La mise en œuvre de ce chiffre est lourde et délicate. La fabrication
de clés au hasard est un problème très difficile et mal résolu. Le stockage et la transmission
de ces clés posent un problème de sécurité.
Il est couramment utilisé de nos jours par les États. En effet, ceux-ci peuvent commu-
niquer les clés à leurs ambassades de manière sûre via la valise diplomatique.

Exemple 1.8.5. Considérons le texte clair cryptographie = (2, 17, 24, 15, 19, 14, 6, 17, 0, 15, 7, 8, 9)
et appliquons le chiffrement par masque jetable avec la clé algorithmique
k = (0, 11, 6, 14, 17, 8, 19, 7, 12, 8, 16, 20, 4). On obtient alors le message chiffré
(2, 2, 4, 3, 10, 22, 25, 24, 12, 23, 23, 2, 8) = (CCEDKW ZY M XXCI).

1.8.4 Chiffre en Chaîne


Dans les systèmes cryptographiques que nous avons décrits les éléments de texte clair
sont chiffrés de la même manière à partir de la clé K :

y = (y1 , y2 , ...) = eK (x1 ), eK (x2 ), ...

On peut procéder différemment. On se donne une clé K et pour chaque entier i, une
fonction fi (K, x1 , x2 , ..., xi−1 ) qui dépend de K et des blocs précédents xi .

Niveau 4 19 Introduction à la Cryptologie


1.8. Procédés traditionnels

La valeur Ki = fi (K, x1 , x2 , ..., xi−1 ) est la clé utilisée pour chiffre le i−ème bloc xi

y1 y2 ... = eK1 (x1 ), eK2 (x2 ), ....


Exemple 1.8.6. Soit P = E = Zm m
26 (m ∈ N ). Le clé k = (k1 , ..., km ) ∈ Z26 donné par

sa première composante k1 et par une règle qui permet de calculer chaque ki (i > 1)
en fonction de ki−1 et x1 , ..., xi−1 . La portion de la clé ki servira alors à chiffrer xi ; par
exemple, on pourra poser yi = xi +ki . La suite des ki est périodique, on parle de chiffrement
en chaîne périodique et c’est une généralisation du chiffrement de Vigenère.

Le chiffrement est dit synchrone si f ne dépend pas des xi , il est dit asynchrone si f
dépend effectivement des xi .

Exemple 1.8.7. Si m = 13, k1 = 4 et ki = xi−1 + ki−1 = yi−1 , alors le texte clair


cryptographie est codé numériquement en (2, 17, 24, 15, 19, 14, 6, 17, 0, 15, 7, 8, 4). Ces va-
leurs sont chiffrées en (6, 23, 21, 10, 3, 17, 23, 4, 4, 19, 0, 8, 12) , la clé est calculée au fur et
à mesure étant (4, 6, 23, 21, 10, 3, 17, 23, 4, 4, 19, 0, 8).

En caractères alphabétiques, le message chiffré est GXV KDRXEET AIM .


La cryptanalyse, quand à elle, utilisait des méthodes statistiques simples, fondées princi-
palement sur la fréquence des lettres ou des suites de deux lettres (diagrammes) dans un
texte.

1.8.5 Confusion, Diffusion


Les systèmes de chiffrement précédents sont des systèmes de chiffrements par blocs,
c’est-à-dire que l’on découpe d’abord le texte clair en blocs de même taille, et le chiffrement
est obtenu par l’application d’une fonction de chiffrement EK à chacun des blocs. Dans
le monde moderne, les messages sont des suites de bits (par exemple obtenus à partir de
l’alphabet courant par le code ASCII). Si la taille des blocs est l, supposons pour simplifier
que la fonction de chiffrement EK définisse une bijection

EK : Fl2 → Fl2 .

Le premier exemple montre que, si l est trop petit, la répartition des blocs de taille l
dans les messages clairs ne suivant pas une loi uniforme, le cryptosystème est sensible à
une analyse statistique. Si l devient grand, et si EK est vraiment quelconque, le problème
est de calculer EK (m). Si l’on doit passer par le stockage en mémoire des valeurs prises
par EK (m) cela limite la taille de l (justement, on peut prendre comme définition de la

Niveau 4 20 Introduction à la Cryptologie


1.9. Cryptanalyse

notion de permutation quelconque la propriété suivant laquelle il n’y a pas de méthode


plus simple par exemple en terme de longueur de programme pour la définir que de donner
toutes ses images). Si à l’opposé on choisit une fonction extrêmement facile à stocker et à
calculer, on tombe sur un système du type linéaire comme dans le deuxième exemple.
Très schématiquement on dit qu’un système avec l petit et EK quelconque apporte de
la confusion tandis qu ?un système linéaire où l est choisit grand apporte de la diffusion
(i.e. un bit donné du message clair influence un grand nombre de bits du message chiffré).
Les systèmes par blocs modernes, comme on le verra plus précisément, alternent les
séquences de confusion et de diffusion.

1.9 Cryptanalyse
La cryptanalyse est pratiquée depuis la plus haute antiquité. Le chiffre de César est
cryptanalysé par les lettrés arabes du 9-ième siècle tel que Al Kindi décrit la méthode de
l’analyse statistique. Tous les rois avaient leurs cryptographes-cryptanalystes (les Rossi-
gnol pour Louis XIV) et leur cabinet noir. Le chiffre de César a tenu 9 siècle, celui de
Vigenère a tenu 4 siècles, le standard DES a tenu 20 ans. le standard RSA est en passe
d’être supplanté par les codes elliptiques.

1.9.1 Types d’attaques


Les principaux types d’attaques sont :
– attaque à texte chiffré connu : l’opposant ne connait que le message chiffré y.
– attaque à texte clair connu : l’opposant dispose d’un texte clair x et du message
ciffré correspondant y.
– attaque à texte clair choisi : l’opposant a accès à une machine chiffrante. Il peut
choisir un texte clair et obtenir le texte chiffré correspondant y.
– attaque à texte chiffré choisi : l’opposant a accès à une machine déchiffrante. Il peut
choisir un texte chiffré, y et obtenir le texte clair correspondant x.

1.9.2 Analyse de fréquence


Il est adapté à la cryptanalse du chiffre César. Considèrons un message chiffré avec
une substitution monoalphabétique :
JTVMNKKTVLDEVVTLWTWITKTXUTLWJERUTVTWTHDXATLIUNEWV.

Niveau 4 21 Introduction à la Cryptologie


1.9. Cryptanalyse

JTVIEVWELOWENLVVNOEDJJTVLTPTXYTLWTWUT SNLITTVQXTVXUJXWE-
JEWTONKKXLT.
Décryptons par analyse de fréquence
Lettre Anglais Français Lettre Anglais Français
a 8,17 8,25 n 6,75 7,25
b 1,49 1,25 o 7,51 5,75
c 2,78 3,25 p 1,93 3,75
d 4,25 3,75 q 0,10 1,25
e 12,70 17,75 r 5,99 7,25
f 2,23 1,25 s 6,33 8,25
g 2,O2 1,25 t 9,06 7,25
h 6,09 1,25 u 2,76 6,25
i 6,97 7,25 v 0,98 1,75
j 0,15 0,75 w 2,36 0,00
k 0,77 0,00 x 0,15 0,00
l 4,03 5,75 y 1,97 0,75
m 2,41 3,25 z 0,07 0,00
Le chiffrement par substitution est attaquable en examinant les fréquences d’apparition
de chaque lettre. Les fréquences moyennes relevées dans un texte après suppression des
espaces et e la ponctuation. En comparant avec les fréquences observées dans le texte
chifré, on peut retrouver sufisamment d’indices pour le décrypter. On peut aussi s’aider
des fréquences d’apparition de chaque diagramme ou trigramme (deux ou trois lettres
consécutives).

1.9.3 Attaques à texte clair


Le cryptosyst‘eme de Hill succombe facilement aux attaques à texte clair choisi.

1.9.4 Test d’hypothèse


Ici, on fait un certain nombre d ?hypothèses successives et on les testent par un al-
gorithme évaluant la fréquence d ?un certain évènement. Si cette fréquence est proche de
3/4 ? disons supérieure à α > 1/2 ? on a validé l’hypothèse, sinon on l’a infirmée. Il peut
toutefois arriver

1. qu’on rejette une hypothèse correcte (erreur) ;

2. qu’on accepte une hypothèse incorrecte (fausse alerte).

Niveau 4 22 Introduction à la Cryptologie


1.9. Cryptanalyse

On peut estimer le niveau de confiance c ?est à dire la probabilité que l ?une ou l ?autre
situation se produise. On se restreint à la première et on considère que l ?évènement que
l ?on observe est la fréquence des succès dans n tirages de Bernoulli indépendants de

paramètre p = 3/4. On note σ la variance de cette distribution σ = pq, où q = 1?p.
Le théorème central limite affirme que, si Sn désigne le nombre de succès observés en n
tirages, on a :  
Sn − np
pr √ < β −→ N (β)
σ n
où N (x) est la loi normale Z x
1 y2
N (β) = √ e− 2 dy
2Π −∞
On pourra finalement estimer la probabilité√ d ?erreur en fonction du seuil choisi α et de
(α − p) n
l ?échantillon disponible n par N ( ). Pour que cette probabilité ne soit pas trop
√ σ
grande, il faut que n n’excède assez significativement l ?inverse de la différence |α?p|.

1.9.5 Indices de coïncidences mutuelles


L’indice de coïncidence d’un message x de longueur n est la portion, parmi les n(n −
1)/2 paires de lettres de x, de paires de lettres identiques. Si fi est le nombre d’occurrences
de la lettres i dans x, alors l’indice de coïncidence est donné par
z
1 X
Ic = fi (fi − 1).
n(n − 1) i=a
Si chaque lettre de l’alphabet apparaissait avec à peu près la même fréquence dans un
message alors son indice de coïncidence serait proche de 1/26 w 0, 0385. Mais les lettres
d’un texte réel ont des fréquences différentes et l’indice de coïncidence est en général plus
z
p2i , où pi est la fréquence moyenne de la lettre i. les valeurs
P
grand, plus proche de
i=a
standards de l’indice de coïncidence pour différentes langues sont données par la table
suivante :
Anglais Français Allemand Portuguais Espagnol Russe
0,066 0,076 0,076 0,078 0,078 0,053
Indices de coïncidence standards dans plusieurs langues
0
L’indices de coïncidence mutuelle de deux messages x et x de longueurs respectives n
0 0
et n est la proportion, parmi les nn couples formés d’une lettres de x et d’une lettre de
0 0
x , de couples de lettres identiques. Si fi et fi sont les nombres respectifs d’occurrences
0
de la lettre i dans x et x , alors l’indices de coïncidence mutuelle est donné par
z
0 1 X 0
Ic (x, x ) = 0 fi fi .
nn i=a

Niveau 4 23 Introduction à la Cryptologie


1.9. Cryptanalyse

0
Si x et x sont deux messages écrits dans la même langue, l’indices de coïncidence mutuelle
est proche des valeurs données par la table ci dessus. Cela est encore vrai si on applique à
0
x et x un chiffrement par décallage ou substitution utilisant la même clé. Par contre, si
on utilise deux clés de décalage distinctes, l’indices de coïncidence mutuelle prends alors
les valeurs plus basses, de 0, 031 à 0, 045 (pour les textes en anglais).

1.9.6 Cryptanalyse du chiffre de Vigenère


La figure la plus étonnante de la cryptanalyse au XIX ème siècle est celle de Charles
Babbage (1792-1871), fils d’un prospère banquier londonien. Il apporta une contribution
importante à la cryptanalyse : il réussit à casser le chiffre de Vigenère, probablement
en 1854 car sa découverte resta ignorée en l’absence d’écrit. Babbage comprit que des
répétitions de cette sorte lui offraient la prise dont il avait besoin pour attaquer Vigenère.
Il va proposer l’attaque par analyse de fréquences c’est-à-dire chercher des séquences
de lettres qui apparaissent plus d’une fois dans le texte :
– soit la même séquence de lettres du texte clair a été cryptée avec la même partie de
la clé ;
– soit deux suites de lettres différentes dans le texte clair auraient (possibilité faible)
par pure coïncidence engendré la même suite dans le texte chiffré.
Le premier cas étant le plus probable, il en déduit le nombre de facteurs de la clef puis
par une méthode de fréquence de distribution des lettres cryptées il en déduit les lettres
du texte clair.
Pour mesurer la distance entre deux distributions de probabilités D1 et D2 sur un
même espace de probabilité fini, on peut utiliser leur distance, définie par
X
|pr1 (x) − pr2 (x)|
x

où x décrit l’espace et pri désigne la probabilité relative ‘a Di . On peut aussi utiliser leur
distance euclidienne
1
X
( |pr1 (x) − pr2 (x)|2 ) 2
x
Le carré de la distance euclidienne de la distribution des lettres dans une langue don-
née à la distribution uniforme est un invariant k qui vaut 0.0393 en français et 0.0282
en anglais. Considérons un algorithme qui effectue sur un texte d’une des langues une
suite périodique de transformations, chacune réalisant une substitution fixe de lettres,
les substitutions étant choisies indépendemment les unes des autres. Un tel algorithme
est appelé chiffrement de Vigenère et sa période t est supposée inconnue. La probabilité

Niveau 4 24 Introduction à la Cryptologie


1.9. Cryptanalyse

n
pri2 , lorsque
P
que deux occurrences de deux lettres du cryptogramme coïncident est de
i=1
les occurrences sont à distance multiple de t et 1/n autrement. Dans ce qui précède, pri
désigne la probabilité d ?apparition (dans le clair) de la i-ème lettre et n le nombre de
lettres. La différence est exactement k et on peut ainsi retrouver la valeur secrète de t
en calculant pour t = 1, 2, ..., la probabilité que ci = ct+1 dans le texte chiffré. Un pic
apparaît pour la bonne valeur de t.

Niveau 4 25 Introduction à la Cryptologie


♣ Machines Electro-Mécanique à
Rotors ♣

L’inconvénient des chiffrements précédents est qu’une même lettre est régulièrement
chiffrée de la même façon, car la correspondance d’un alphabet à un ou plusieurs autres
est fixée une fois pour toutes, ce qui fait qu’une attaque statistique est toujours possible.
Nous allons voir qu’en changeant la correspondance à chaque lettre, il est possible de créer
un chiffrement parfait !
L’âge de la technique garde les substitutions et les permutations et les met en œuvre
à l’aide de machines mécaniques ou électro-mécaniques.

1.10 Le cylindre chiffrant de Jefferson


Le futur président des États Unis d’Amérique, Thomas Jefferson (1743-1826) a mit
sur pied un dispositif mécanique qu’il a appelé le Wheel Cipher alors qu’il était secrétaie
d’État de George Washington. Cet appareil est constitué de 26 disques sur la tranche
desquels étaient imprimé un alphabet désordonné.
Chiffrement : on fait tourner les roues de manière à faire apparaître le message. Le
cryptogramme est ainsi constitué de l’une des séquences des autres lettres.
Déchiffrement : il suffit de disposer du même cylindre constitué des mêmes 26 disques,
d’aligner le cryptogramme et de lire le seul texte qui semble avoir parmi les autres aligne-
ments.
La description que Jefferson en a faite est particulièrement claire et rigoureuse :
Confectionnez un cylindre de bois blanc d’environ deux pouces de diamètre et six à
huit pouces de long. Percez en son axe un trou suffisant pour recevoir une broche d’un
huitième ou un quart de pouce de diamètre. Divisez le pourtour en 26 parts égales (pour
les 26 lettres de l’alphabet) et, avec un poinçon, tracez des lignes parallèles, d’un bout à
l’autre, à partir des points de division. Tracez ces lignes avec de l’encre pour les rendre

Niveau 4 26 Cours de Cryptographie


1.11. la machine Enigma

plus apparentes. Puis, découpez le cylindre en disques d’environ un sixième de pouce


d’épaisseur. Ils ressemblent à des jetons de jacquet. Numérotez chacun d’entre eux sur
une des faces, de façon à pouvoir les assembler dans n’importe quel ordre que vous aurez
choisi. Sur le pourtour de chaque disque et entre les lignes noires, inscrivez les lettres
de l’alphabet, non dans l’ordre normal mais en désordre, de façon qu’il n’y ait pas deux
disques semblables. Assemblez-les maintenant dans l’ordre que vous avez choisi, sur l’axe
de fer dont l’une des extrémités a une “tête” et l’autre un filetage et un écrou permettant de
les maintenir fermement. L’appareil est maintenant prêt à l’emploi, votre correspondant
ayant un cylindre semblable, semblablement disposé.
Pour un ensemble donné de disques avec leurs alphabets désordonnés, on peut produire
une très grande variété de chiffrements différents, en changeant seulement l’ordre des
disques du cylindre, car si vous faites le produit de tous les nombres compris entre 1 et le
nombre de disques (quel qu’il soit), le résultat donnera le nombre de rangements possibles,
donc de clefs de chiffrement utilisables avec des correspondants différents, celle de chacun
d’eux étant inintelligible pour tous les autres.

Remarque 1.10.1. On peut changer la clé en changeant l’ordre des cylindres.

Ce dispositif a ét réinventé par Étienne Brazeries en 1891 et par le colonel italien


Durcos en 1900. Une variante améliorée en 1917 Joseph O. Mauborgne, chef du Signal
corps, le cylindre M-94, a été utilisé par l’armée américaine entre 1922 et 1942.

1.11 la machine Enigma


Le chiffrement polyalphabétique ne sera vraiment utilisé qu’au début du 20e siècle
avec l’apparition des machines électro-mécaniques à rotor. Presque simultanément, elles
ont été présentées par 4 inventeurs de pays différents :
– l’américain Edward Hugh Hebern (1989-1952) dépose un brevet en 1918 pour pro-
poser sa machine à l’armé américaine qui efuse pour des raison de vulnérabilité ;
– le hollandais Hugo Alexsander Koch (1870-1928) dépose un brevet en 1919 ;
– le suédois Arvid Damm ( ?-1927) dépose un brevet en 1919 ; fonde l’industriel sué-
dois Boris Hagelin (1925-1983) fonde alorsla société Aktiebologet Cryptograh pour
exploiter le brevet d’Arvid Damm à partir de 1925. Cette société suisse Crypto AG
encore en activité aujourd’hui, qui équipera de nombreuses armées occidentales,
dont l’armée française.

Niveau 4 27 Introduction à la Cryptologie


1.11. la machine Enigma

La machine de ce type la plus connue est la machine Enigma inventé en Allemagne


par Arthur Scherbius (1878-1929) et breveté en 1918 est l’un des systèmes de cryptage les
plus redoutables de l’histoire. Ce dernier fonde la société Chiffriermaschinen en 1923 pour
commercialiser son produit qu’il propose d’abord aux milieux financiers et aux banques
qui ne l’adopteront pas. C’est l’armé allemande, consciente de la faiblesse du chiffrement
ADFGVX, qui erra l’intérêt de cette nouvelle machine qui allie la force du chiffrement
polyalphabétique et une grande simplicité d’utilisation.
La machine Enigma est une machine à chiffrer électromécanique dont le chiffrement est
à la fois simple et ingénieux. Chaque lettre est remplacée par une autre mais le principe
de substitution change d’une lettre à l’autre.
La machine Enigma est une machine électro-mécanique qui ressemble à une machine
à écrire. Lorsque qu’une touche est enfoncée, des disques internes sont actionnés et le
caractère crypté s’allume. Cette machine, qui sert aussi au déchiffrement, était utilisée
pour les communications de l’armée allemande durant la seconde guerre mondiale.

1.11.1 Présentation
La machine Enigma est alimentée par une pile électrique et se composant de quatre
éléments tous reliés par un circuit électrique à savoir :
– un clavier permettant d’entrer le texte à chiffrer (texte clair),
– un brouilleur qui étant la pièce maîtresse d ?Enigma permet de chiffrer les lettres
du texte clair.
– un réflecteur qui renvoie le signal par un autre chemin que celui de l ?aller,
– tableau lumineux pour afficher les lettres du texte crypté.

1.11.2 Chiffrement
Le brouilleur est en réalité un tambour rotatif en matériau isolant portant sur chaque
face des contacts électriques. Chaque fois qu ?une lettre est tapée sur le clavier naît un
courant électrique qui traverse le rotor activé par la dépression de la touche et circule
à travers un réseau de fils jusqu ?au réflecteur puis au tableau lumineux où s ?éclaire la
lettre cryptée correspondante. Le parcours du courant électrique change à chaque touche
activée (donc la lettre A par exemple ne se convertit pas deux fois de la même façon)
grâce à l ?action de brouillage du rotor.
La rotation du brouilleur qui étant l’innovation majeure de Scherbius permet de com-
plexifier la rotation d’1/26ème de tour chaque fois qu’une touche est activée, ce qui induit

Niveau 4 28 Introduction à la Cryptologie


1.11. la machine Enigma

une régularité facile à déchiffrer pour un cryptanalyste, Scherbius ajoute un second, puis
un troisième rotor au brouilleur, chacun possédant 26 positions. Chaque fois qu’une lettre
est tapée, le premier rotor tourne d’un cran, les autres rotors restent immobiles. Une fois
que le premier rotor a effectué un tour complet, le deuxième rotor tourne d’un cran. Le
premier rotor recommence alors à tourner jusqu ?à ce que le deuxième ait effectué un tour
complet et soit revenu à sa position de départ. C’est ensuite au troisième rotor de s’amor-
cer. En multipliant le nombre de rotors, il devient possible de concevoir une machine à
crypter qui passe d’un alphabet à un autre, chaque fois différent, et d’obtenir une per-
mutation quelconque des lettres. Ainsi, avec notre alphabet de 26 lettres, ces trois rotors
procurent 26 × 26 × 26 = 17576 positions de brouillage.
C’est le positionnement des rotors qui constitue la clef du chiffrement. Afin de mieux
protéger Enigma et sa cryptographie, Scherbius s’assure que les trois rotors sont mobiles
et interchangeables, multipliant par 6 le nombre de clés possibles. Il introduit également
un tableau de connexions à 6 fiches entre le clavier et le premier brouilleur qui permet
d’intervertir 12 lettres deux à deux avant que la lettre ne pénètre dans le rotor 6 fois 2
lettres parmi les 26 lettres de l’alphabet peuvent être appareillées ainsi.
Chaque jour une nouvelle clé est définie, suivant un carnet de codes déterminés à
l’avance spécifiant l’ordre de disposition des rotors, leur orientation et le branchement des
connexions. La même clé sert à toutes les machines Enigma d’un même réseau, pour un
jour donné. Pour crypter et envoyer un message, l’expéditeur fait tourner les trois rotors
jusqu’à leur position de départ puis branche les connexions et rentre le texte clair dans la
machine, notant pour chaque lettre la correspondante chiffrée qui s’allume sur le tableau
lumineux. Il transmet ensuite le texte chiffré à son destinataire via un opérateur radio.
Le récepteur du message chiffré peut le décoder à l’aide d’une machine Enigma similaire
et du carnet de codes qui lui indique les positions du jour.
Le nombre total des clés possibles de la machine Enigma s’élève à plus de 10000000000000000,
décomposé comme suit :
– 26 × 26 × 26 (orientation des brouilleurs),
– multiplié par 6 (disposition des brouilleurs),
– multiplié par 100 391 791 500 (nombre de branchements possibles).
Sans le carnet de codes le cryptanalyste devra vérifier toutes les clés potentielles à la main.

Remarque 1.11.1. Si ce sont les connexions du tableau qui apportent le facteur multi-
plicatif le plus efficace, ce sont les rotors, leur rotation et leur disposition, qui, en tournant
continuellement, rendent le texte chiffré imperméable à l’analyse des fréquences.

Niveau 4 29 Introduction à la Cryptologie


1.11. la machine Enigma

Les cryptologues allemands, afin de mieux protéger leurs messages, décident de ne pas
appliquer la même clé de chiffrement à tous les messages du jour. Ils choisissent ainsi de
changer l’orientation du brouilleur à chaque message. Or, ce changement d’orientation ne
figurant pas dans le carnet de codes, ils doivent transmettre au récepteur du message la
nouvelle orientation des rotors chaque fois qu’ils envoient une information. Celle-ci est
chiffrée selon la clé du jour, tapée deux fois de suite afin que le destinataire s’assure qu’il
n’y a pas eu d’erreur. Le principe de la rotation des brouilleurs permet de dissimuler
cette répétition puisque les trois mêmes lettres tapées deux fois de suite ne donnent pas
le même résultat crypté. La clé de chiffrement du jour ne sert donc plus qu’à transmettre
la clé propre à chaque message.

1.11.3 Déchiffrement
La machine Enigma possède la propriété de déchirer facilement grâce à son réflecteur.
Ceci en appliquant la fonction inverse du chiffrement tout en respectant les configurations
de chiffrement de la machine.

1.11.4 Cryptanalyse : décryptement


La Bombe de Rejewski

Sentant l’invasion allemande imminente, la Pologne s’acharne à briser le code d’Enigma.


En 1931, grâce à un délateur allemand, elle s’empare des plans de la machine et des carnets
de codes de l’armée nazie. Marian Rejewski, âgé d’à peine 23 ans, est un des mathéma-
ticiens les plus doués du bureau du chiffre polonais. Il se lance tête baissée dans cette
course contre la montre.
Très tôt il s’intéresse aux répétitions des messages envoyés par les Allemands, cherchant
à en exploiter les failles. Il découvre que chaque message est précédé d’un message de 6
lettres et c’est sur ces 6 lettres qu’il concentre son attention pour déterminer la clé du
jour. A l’autre bout, les Allemands, confiants d’avoir renforcé la sécurité d’Enigma, ne se
rendent pas compte qu’ils l’ont en fait rendue vulnérable.
Pour chaque clé cryptée il existe une correspondance entre la 1ère et la 4ème lettre,
entre la 2nde et la 5ème, entre la 3ème et la 6ème puisque ce sont deux chiffrements de la
même lettre. Cette corrélation permet d’en déduire une indication sur le positionnement
initial des rotors. Si suffisamment de messages sont envoyés dans la journée, Rejewski
arrive à établir une correspondance complète entre l’alphabet de la première et celui de

Niveau 4 30 Introduction à la Cryptologie


1.11. la machine Enigma

la quatrième lettre.
Rejewski s’intéresse aux chaînes de lettres qui lient les lettres du premier alphabet à
celles du second. Il calcule ensuite le nombre de liens qui unissent chaque chaîne. Il fait de
même avec les liens entre les alphabets de la 2nde et la 5ème lettre, entre ceux de la 3ème
et la 6ème lettre. Ces chaînes changent tous les jours, parfois courtes, parfois longues,
fluctuant en fonction de la clé du jour. Comment alors en déduire cette fameuse clé du
jour ?
Rejewski réalise que si le tableau des connexions influe sur la composition des chaînes,
il y a un élément de la chaîne qui dépend exclusivement du brouilleur, de son réglage et de
son orientation : la longueur de la chaîne, c’est-à-dire le nombre de liens qui la composent.
En effet, malgré la permutation des lettres du tableau de connexions, le nombre de liens
reste inchangé.
Ainsi, plutôt que de chercher la clé du jour parmi les 10000000000000000 clé possibles,
Rejewski n’a plus qu’à chercher les réglages du brouilleur parmi l’ensemble des réglages (6)
et des orientations possibles (26×26×26) du brouilleur, soit 105546 dispositions possibles.
La tâche devient tout à coup moins ambitieuse. C’est donc ce qu’il fait, aidé d’une équipe
chargée de répertorier toutes les longueurs de chaînes engendrées par chaque disposition.
Au bout d’un an il obtient un répertoire exhaustif. Il peut dorénavant se référer à ce fichier
pour retrouver l’agencement et l’orientation des brouilleurs correspondant à chaque clé
du jour.
A partir de là il ne lui reste plus qu’à déterminer les branchements du tableau de
connexions. Pour cela, Rejewski règle sa machine Enigma selon l’orientation des brouilleurs
du jour et débranche les 6 câbles du tableau de connexions. Il entre ensuite le texte chiffré
dans la machine. Le texte, une fois décrypté, n’est pas totalement lisible puisqu’il manque
les branchements du tableau de connexions mais le message est tout de même déchiffrable
et les branchements se déduisent de là. En quelques années, Rejewski réussit à rendre les
communications allemandes totalement transparentes.
En parallèle il travaille à la conception de six machines électromécaniques, appelées
bombes, qui permettent d’essayer rapidement des ensembles de clé’ potentielles sur des
blocs de communication d’Enigma. Elles peuvent, pour chaque position de réglage du
brouilleur (soit 6), rechercher automatiquement son orientation. Ces bombes, conçues
pour une attaque de force brute, fonctionnent toutes en même temps, comme une mise en
série de plusieurs copies d’Enigma. Elles sont à l’origine de la mécanisation du cryptage.
Fin 1938, les Allemands renforcent la sécurité d’Enigma en ajoutant 2 rotors et 4
branchements supplémentaires au tableau de connexions. La Pologne, qui n’a plus les

Niveau 4 31 Introduction à la Cryptologie


1.11. la machine Enigma

moyens de construire les bombes capables de décrypter la nouvelle Enigma et qui sait
l’invasion allemande inéluctable, se tourne vers les Alliés, livrant à la France et à la
Grande-Bretagne l’ensemble de ses travaux au cours de l’été 1939. Une bien belle surprise
pour ceux qui pensaient Enigma indéchiffrable !

La machine de Turing

Les cryptanalystes anglais, réunis secrètement à Bletchley Park où est installée l’Ecole
Gouvernementale du Code et du Chiffre, perfectionnent les découvertes de Rejewski, par-
venant ainsi à décoder des informations décisives pendant la bataille d’Angleterre. Si le
Polonais s’était intéressé aux faiblesses induites par la clé répétée au début de chaque mes-
sage, Alan Turing, mathématicien de génie, se penche sur la structure type de certains
messages en fonction de l’heure d’envoi et de l’opérateur.
En étudiant les messages décryptés, il se rend compte que les messages sont réglementés
donc certains mots sont répétés. Ainsi, à 6h05, les messages envoyés contiennent presque
toujours le mot «wetter» («le temps»). À partir de ces «mots probables» (appelés «cribs»),
qui sont en réalité devinés, Turing établit une correspondance plausible entre le texte clair
supposé et le texte chiffré connu, liant les lettres en une boucle à la façon des chaînes de
Rejewski. Il saisit rapidement que grâce à ces mots il va pouvoir venir à bout d’Enigma.
Sa connaissance du fonctionnement d’Enigma et son exploitation des imprudences des
chiffreurs allemands lui permettent de déduire le réglage des machines Enigma d’un même
réseau pour un jour donné.
Turing met au point une machine à chiffrer électromécanique composée de machines
reliées électriquement entre elles qui répliquent le mouvement des rotors d’Enigma. Pour
chaque réglage possible des rotors, la bombe de Turing effectue une chaîne de déductions
logiques fondées sur les «cribs» et leurs boucles. Elle simule une correspondance entre
texte clair et texte crypté pour essayer une clé. A chaque occurrence d’une contradiction
la bombe écarte ce réglage et passe au suivant, modifiant les agencements de la machine.
Lorsque toutes les connexions correspondent et ne donnent qu’une seule réponse, la clé
est testée manuellement. La machine de Turing est capable de chercher le réglage correct
parmi les 159 milliards de milliards d’ajustements possibles (soit celles d’une machine
Enigma contenant 5 rotors et 20 connexions) en moins d’une heure, abattant par jour
le travail de 10000 cryptanalystes. Les erreurs des opérateurs allemands permettent de
réduire considérablement le nombre de clés possibles. Plus efficace que la bombe polonaise,
la bombe anglaise vient à bout du code de la machine allemande, jouant un rôle majeur

Niveau 4 32 Introduction à la Cryptologie


1.12. Colossus

dans l’affaiblissement du régime nazi.


Une machine de Turing est en effet une modélisation de tout dispositif automatique
effectuant automatiquement une tâche donnée. Sa description comporte les notions d’en-
trée, de sortie, de mémoire, de programme... C’était à l’origine une construction abstraite
qui n’était pas destinée à être effectivement construite.

Remarque 1.11.2. Une machine de Turing universelle est un système du même type
destiné à recevoir la description de toute machine de Turing et réaliser son travail – une
"machine pouvant exécuter tout programme”, comme les ordinateurs contemporains.

Après la guerre, les percées des briseurs de code anglais et le décryptage d’Enigma
restèrent classifiés secret défense jusque dans les années 1970. Les cryptanalystes de Blet-
chley Park furent pourtant à l’origine d’une des plus grandes révolutions technologiques
de leur siècle : l’avènement de l’ordinateur programmable.

1.12 Colossus
À cause des progrès du chiffrage allemand, les bombes de conception purement mé-
canique avouaient leurs limites. Des machines à crypter de nouvelle génération (machines
de Lorentz ) utilisaient une méthodologie de chiffrage radicalement différente. La stratégie
de décryptage était radicalement modifiée. Elle reposait à l’origine sur une brillante ex-
ploitation par un jeune mathématicien (W. Tutte) d’une grossière erreur de transmission
allemande le 30 août 1941.
Bien que plus complexe qu’Enigma et se servant de chiffres plutôt que de lettres, la
machine SZ40 de Lorenz fonctionne sur le même principe. Utilisant le code international
de téléscripteur à 5 bits, elle convertit chaque lettre du message clair en un code binaire,
une suite de 0 et de 1. Chaque bit traverse ensuite deux clés de chiffrement intermédiaires,
l’une, appelée P, changeant à chaque opération, l’autre, appelée S, changeant au hasard.
La somme de la lettre originale +P + S donne la lettre chiffrée. Le chiffre de Lorenz,
trop subtile pour les bombes, doit être brisé manuellement. Il est percé à jour à la suite
d’une erreur d’un opérateur allemand qui répète le même message deux fois de suite avec
quelques étourderies en utilisant la même clé de chiffrement.
Turing recommanda ainsi la mise en chantier du projet Colossus (1943-1945) auquel il
resta lié, sans y prendre une part prépondérante. Le but de cet appareil était d’automatiser
la partie calculatoire des opérations de décryptage, ce qui n’était que la première d’une
longue suite de procédures astucieuses et élaborées.

Niveau 4 33 Introduction à la Cryptologie


1.12. Colossus

À partir de ces deux textes chiffrés, John Tiltman trouve en janvier 1942 l ?algorithme
lui permettant de reconstituer le texte clair et son chiffrement. Afin de mécaniser cette
découverte, Max Newman met au point le premier calculateur électronique du monde,
précurseur de l’ordinateur moderne : la machine Colossus. Il s’appuie sur la machine
universelle de Turing conçue pour exécuter une suite d’opérations mathématiques données
à l’aide de bandes perforées, comme celles utiliées pour les pianos mécaniques. Contre
l ?avis de l’Etat Major de Bletchley qui cherche à enterrer le projet, car jugé irréalisable,
l’audacieux Tommy Flowers relève le défi et se lance dans la réalisation de Colossus qu’il
termine fin 1943 :
La machine Colossus, composée de 1500 valves électroniques, est bien plus rapide que
les bombes de Turing dont les communications de relais électromécaniques sont assez
lentes. Elle réalise 5000 opérations par seconde et le message crypté est en général cassé
en quelques heures. Elle permet de retrouver le texte clair à partir du texte chiffré via un
décryptage progressif sans qu’il soit nécessaire de récupérer la clé. Le Colossus est un
exemple concret de machine de Turing. Il utilise une combinaison des systèmes mécaniques
(bandes de papier perforées pour les entrées et les sorties) et électroniques (tubes à vide).
Ordinateur avant la lettre, il effectue une gamme de calculs très restreinte et spécialisée
(il est par exemple incapable de multiplier deux nombres), mais il le fait vite et bien. Ceci
est possible notamment grâce à l’absence de tout programme stocké : toute la logique est
câblée, et la programmation se fait au moyen d’interrupteurs. Lorsque Colossus travaille,
il lit les caractères à raison de 5000 par seconde. La bande de papier défile alors à 50 km/h.
Pendant les 200 ?s entre deux lectures, Colossus effectue 100 op érations logiques sur une
matrice de 5 caract ères. Aussi incroyable que cela paraisse, aucun ordinateur personnel
moderne n’égale Colossus dans les tâches bien spécifiques pour lesquelles il a été conçu.
Si Colossus, comme les découvertes de Turing, reste classifié, il ouvre cependant la
voie à une nouvelle orientation de la cryptographie qui peut dorénavant compter sur
l’efficacité et la flexibilité des ordinateurs programmables, accélérant la course au code
indéchiffrable et attisant la rivalité entre concepteurs et décrypteurs. La cryptologie rentre
ainsi dans l’ère industrielle.

Niveau 4 34 Introduction à la Cryptologie

Vous aimerez peut-être aussi