Nov 21, 2024

Wiki

Python

Aide

edit SideBar

Search

Age Classique De La Cryptographie


On présente ici les méthodes de cryptographie et de cryptanalyse qui ont été utilisées pendant des siècles, jusqu'aux années 1950.

Notez dès à présent que les techniques actuelles n'ont plus rien à voir avec ce folklore...

Chiffrement par substitution

Présentation

Histoire du chiffrement par substitution

On peut considérer que le chiffrement par substitution est le plus élémentaire des chiffrements.

C'est le code de César :

  • Dans La guerre des Gaules, César raconte comment il aurait averti Cicéron de l'arrivée de secours dans le camp assiégé en faisant parvenir un message... où les lettres romaines étaient remplacées par des grecques.
  • Selon La vie des douze Césars de Suétone, César aurait envoyé des messages dans lesquels chaque lettre était remplacée par celle venant 3 rangs après dans l'alphabet.

Principe du chiffrement par substitution

Le chiffrement de César est donc un décalage de $k$ unités dans l'alphabet. Pour déchiffrer, on effectue un décalage de $k$ unités dans l'autre sens.

Si l'on devine que le chiffrement est obtenu par décalage, et si l'on ne connaît pas la clé : il suffit d'essayer toutes les possibilités.

Amélioration du chiffrement de César

Le chiffrement de César opère une translation (modulo 26) de $k$ cases.

On peut améliorer le chiffrement par substitution en utilisant une permutation quelconque de l'alphabet. C'est-à-dire : une bijection de {A, ..., Z } dans lui-même.

Nombre de chiffrements possibles

Cette fois-ci, en l'absence de la clé de chiffrement, tester toutes les possibilités est illusoire.

En effet, pour l'image du A, on a 26 possibilités ; pour le B, 25, etc. Soit $26 ! = 403291461126605635584000000$ possibilités...

On retrouve le principe de Kerckhoffs (1883) : la sécurité du système ne repose pas sur le secret de l'algorithme, mais sur celui de la clé.

Analyse des fréquences

Al-Kindi

On pourrait considérer Al-Kindi comme le père de la cryptanalyse. Au $IX^e$ siècle, il décrivit la technique d'analyse des fréquences, dans un manuscrit consacré au déchiffrement des messages.

Signature et fonction à sens unique

On suppose connaître la langue dans laquelle le message est écrit.

  • On commence par étudier, sur un texte suffisamment long et de la même langue, la fréquence d'apparition des différentes lettres.
  • On peut aussi utiliser un scrabble, acheté dans un pays de cette langue.
  • On remplace alors les symboles du cryptogramme par les lettres en fonction de leur fréquence.

Cas du français

En français, le $e$ apparaît en moyenne dans 16% des cas. Viennent ensuite le $a$ et le $i$, avec des fréquences respectives de 9,5% et 8,5%. On remplace alors les symboles du cryptogramme par les lettres en fonction de leur fréquence.

Critique de la méthode

Pour que ça marche, le texte chiffré doit être assez long.

De plus, si cette analyse permet de repérer les $e$, $a$ et $i$, sans forcément bien les différentier, il n'en va pas de même avec les lettres à faible fréquence. Il reste donc un travail d'interprétation à faire, derrière, d'autant plus dûr que le chiffré est court.

Enfin, La disparition, de Georges Perec, est un livre sans $e$...

Contre-attaques

On peut mal orthographier le message en clair, avant de le chiffrer (écrire phonétiquement, etc.)

On peut aussi remplacer chaque lettre par plusieurs substituts, en nombre inversement proportionnel à la fréquence de la lettre.

Par exemple, la lettre $a$ apparaissant en français neuf fois plus souvent que la lettre $z$ (je crois), on remplacera donc chaque $z$ par 9 $z$, pour que ces lettres aient la même fréquence dans le texte crypté.

Travaux pratiques

  • Réalisez le chiffrement par substitution de base (code de César).
  • L'améliorer, en demandant à l'utilisateur quelle permutation il souhaite (on vérifiera que c'est une bijection).
  • Réalisez l'analyse des fréquences de Al-Kindi.
    • On pourra récupérer un long texte sur le net, et en calculer ses fréquences.
    • Ensuite, on demandera à l'utilisateur son texte à décrypter, on lui fera une proposition de décryptage (basée sur l'analyse des fréquences), et on lui demandera quelle(s) lettre(s) changer dans cette proposition.
  • Enfin, améliorez votre chiffrement, en utilisant les moyens de contre-attaquer évoqués plus haut.
    • On pourra, par exemple, générer automatiquement des erreurs.
    • Mieux, on pourra, en se basant sur le tableau des fréquences obtenu plus haut, remplacer une lettre par n motifs, saisis par l'utilisateur.

Eléments de réponse

Chiffrement par transposition

Présentation

Dans le chiffrement par substitution :

  • Chaque lettre est remplacée par un autre symbole.
  • Sa position dans le texte est conservée.

Dans le chiffrement par transposition (ou par permutation) :

  • Chaque lettre, ou symbole, est conservé.
  • Sa place change : les lettres sont permutées entre elles, le texte est remplacé par un anagramme.

Histoire du chiffrement par transposition

Historique

Ce mode de chiffrement est tout aussi ancien que le chiffrement par substitution. Cette méthode était employée à Sparte, au $V^e$ siècle av. J.-C...

La scytale spartiate

La scytale spartiate est un bâton autour duquel on enroule une bande de cuir.

L'expéditeur écrit le message dans le sens de la longueur de la scytale : lorsqu'il déroule la lanière, le texte perd son sens.

Pour déchiffrer, le destinataire doit enrouler à nouveau la lanière sur sa scytale.

Formalisation du chiffrement par transposition

  1. On découpe le message en blocs de $n$ symboles.
  2. On applique à chaque bloc une permutation $\sigma$ fixée de {1, ..., $n$}. Ainsi, si $\sigma (1) = 5$, alors la lettre en première position (de notre bloc) ira en position 5.
  3. Le déchiffrement s'effectue en appliquant $\sigma^{-1}$ aux blocs de longueur $n$.

Cryptanalyse et contre-attaque

Cryptanalyse du chiffrement par transposition

L'analyse des fréquences ne donne rien contre ce chiffrement : les lettres ne sont que déplacées.

On peut cependant l'adapter, en faisant l'analyse des fréquences des couples de lettres.

  • On sait, par exemple, que $q$ est généralement suivi de $u$.
  • Ou que le $l$ peut être doublé, mais pas le $v$.

On ne cherchera donc que parmi les $\sigma^{-1}$ tels que chaque $q$ est suivi de $u$, etc.

Contre-attaque

Pour contre-attaquer, on peut s'arranger pour qu'il n'y ait pas de couple de lettres remarquables.

  • Par exemple, toutes les lettres doublées peuvent être remplacées par une lettre simple (bele au lieu de belle).
  • De même, les $qu$ seront remplacés par $q$. Plus on passera de temps à atténuer les particularités, plus dure sera la cryptanalyse.

Travaux pratiques

  1. Réalisez le chiffrement par transposition.
  2. Chercher à en programmer sa cryptanalyse, puis une contre-attaque.

Eléments de réponse

Chiffre de Vigenère

Présentation

Histoire du chiffre de Vigenère

Le peintre italien Alberti a le premier proposé, au XVième siècle, d'utiliser 2 ou plusieurs alphabets chiffrés, et de passer de l'un à l'autre au cours du chiffrement.

Vigenère, au XVIième siècle, a développé l'idée d'Alberti, en utilisant 26 alphabets distincts pour chiffrer un message.

Les chiffrements antérieurs par substitution peuvent être qualifiés de chiffrement par substitution monoalphabétique, celui de Vigenère de chiffrement polyalphabétique.

Exemple de chiffre d'Alberti

On considère, à titre d'exemple :

Alphabet ordinaire abcdef
Alphabet chiffré1BCDEXA
Alphabet chiffré2MAVBRU

La traduction de FADE sera donc AMER (on alterne entre les deux alphabets chiffrés).

La méthode

Le carré de Vigenère

On commence par constituer un carré de Vigenère :

 abcde...xyz
1BCDEF...YZA
2CDEFG...ZAB
3DEFGH...ABC
4EFGHI...BCD
..........
..........
..........
25ZABCD...WXY
26ABCDE...XYZ

Le chiffrement par Vigenère

On a un message à chiffrer : lemessageachiffrer.

On s'est mis d'accord sur une clé de chiffrement, par exemple : cledechiffrement.

On peut donc obtenir le cryptogramme :

clécledechiffreme
messagelemessageachif
cryptogrammenpqhwuhojf............

En effet, à l'intersection de la ligne commençant par C (ligne 2) et de la colonne commençant par L, se trouve N, etc.

Cryptanalyse

Le chiffre de Vigenère ne peut être attaqué par l'analyse des fréquences. De plus, il possède un nombre énorme de clés. Il a donc longtemps été considéré comme inviolable...

Travaux pratiques

Réalisez le chiffre de Vigenère.

Attaque de Babbage

Présentation

L'attaque de Babbage

Le chiffre de Vigenère était considéré inviolable jusqu'au milieu XIXième. Babbage, vers 1850, réussit le premier à le casser.

Les défauts du chiffre de Vigenère

Dans le chiffre de Vigenère, une lettre, donc un mot, est chiffré de différentes manières, selon sa position dans le texte.

Toutefois, si un même mot intervient un nombre de fois supérieur à la longueur du mot-clé, il sera chiffré au moins 2 fois de la même façon.

L'attaque

L'idée de Babbage

Babbage cherche donc les séquences de lettres qui apparaissent plus d'une fois dans le texte chiffré.

Cela peut provenir :

  • Soit d'une même séquence du texte clair, qui a été chiffrée avec la même partie de la clé (ce que souhaite le cryptanalyste).
  • Soit d'une coïncidence.

Si la séquence répétée est assez longue (au moins 4 lettres), alors on est sûrement dans le premier cas.

Détermination de la longueur de la clé

Ayant relevé les séquences qui se répètent, on note le nombre de symboles entre ces deux répétitions. La longueur du mot-clé doit être un diviseur de ces écarts, donc de leur PGCD. On est donc à peu près assuré de la longueur $l$ du mot-clé, mais on n'en connaît pas encore les lettres $k_1 k_2 ... k_l$.

La ligne $k_1$ du carré de Vigenère a été utilisée pour chiffrer les lettres aux places $1, l + 1, 2l + 1, ...$

Les lettres du chiffré ayant la même position ont donc été obtenues par un chiffrement monoalphabétique (décalage), utilisant l'alphabet de la ligne $k_1$. On peut donc pratiquer, sur cet ensemble de lettres, une analyse des fréquences.

Détermination de la clé

Comme il s'agit d'un chiffrement par permutation circulaire (une translation, un code de César), l'analyse des fréquences est aisée.

Trouver la translation revient aussi à trouver $k_1$. On recommence alors le travail avec les lettres numérotées $2, 2 + l, 2 + 2l$, ...

Généralisation de l'attaque

Même si l'on n'a aucune idée de la longueur du mot-clé, on peut procéder à une analyse des fréquences des lettres dans chacune des progressions arithmétiques de raison $l$, pour tout $l$.

La mise en évidence de translations sur les tableaux de répartition des fréquences conduirait à la détermination des $k_i$ et de $l$.

La contre-attaque

La faiblesse du chiffre de Vigenère

Le point faible du chiffre de Vigenère réside dans sa nature cyclique : si on réussit à déterminer la longueur du mot-clé, le texte chiffré sera traité comme une série de $l$ chiffres monoalphabétiques.

On pourra alors résoudre chaque chiffre par une analyse des fréquences.

La contre-attaque

Si le mot-clé est long :

  • On augmente le nombre le nombre de traitements monoalphabétiques.
  • On diminue la fiabilité de l'analyse des fréquences (puisqu'on diminue le nombre de lettres sur lesquelles porte cette analyse).

Si le mot-clé est aussi long que le message, la technique de cryptanalyse mise au point par Babbage ne peut fonctionner.

La contre-attaque de la contre-attaque

Cependant, même dans ce cas, il existe d'autres moyens d'attaque :

  • On utilise le fait que le message est un texte usuel, donc il commence sûrement par un article.
  • De même, le mot-clé a en général du sens, n'est pas une suite de lettres au hasard.

On peut ainsi, par essais et erreurs, essayer de placer des mots usuels dans le texte clair, en déduire des lettres du mot-clé, lettres que l'on gardera ou rejettera selon que la succession des lettres obtenues ne semble pas possible.

Conclusion

Ainsi donc, une clé dont la longueur est égale à celle du message n'assure pas à elle seule la sécurité.

Travaux pratiques

Améliorez votre chiffre de Vigenère pour qu'il soit plus résistant aux attaques type Babbage.

Le système de Vernam

Son histoire

Vers 1918, les cryptographes testèrent des clés aléatoires :

  1. On utilisait un bloc de plusieurs centaines de feuilles (expéditeur et destinataire ont le même bloc).
  2. Sur chaque feuille est inscrite une clé, suite de lettres prises au hasard.
  3. Chaque lettre de la clé donne le décalage à faire sur le message.
  4. Le premier message est chiffré (et déchiffré) avec la première feuille, le deuxième etc.

Un secret parfait

Ce système de Vernam, ou One-time pad, est impossible à briser : selon la théorie de l'information développée par Shannon à la fin des années 1940, c'est un système cryptographique parfait.

Cela vient du fait que l'information apportée par le message chiffré sur le message clair, ou sur la clé, est nulle. Et ce, même si l'on connaît un ou plusieurs messages chiffrés et leur cryptogramme.

À la Maison blanche

Un tel système était utilisé encore récemment pour le téléphone rouge, entre la Maison Blanche et le Kremlin.

Mais ce système, parfait en théorie, est défectueux en pratique. Il faudrait arriver à engendrer des clés aléatoires très longues. Ces clés devraient être disponibles simultanément pour les émetteurs et les récepteurs.

Travaux pratiques

Mettre en place le chiffrement de Vernam, pour des textes binaires :

  • Saisie d'un message à chiffrer
  • Génération d'une clé aléatoire ayant la taille d'un message saisi par l'utilisateur
  • XOR bit à bit, par exemple en utilisant la fonction xor du module operator

Eléments de réponse

Page Actions

Recent Changes

Group & Page

Back Links