Le chiffre de César
Published: 2021-11-09 22:23:25

---
title: Le chiffre de César
published: true
date: 2019-01-08 13:00:27 UTC
tags: 
canonical_url: https://blog.limawi.io/fr-fr/posts/le-chiffre-de-cesar/
---

## Un peu d’histoire

Le chiffre de César, comme son nom ne l’indique pas, était déjà, semble-t-il, utilisé par les Spartiates, donc bien avant Jules César.

C’est une variation du chiffrement par décalage qui est un chiffrement par substitution. Des mots compliqués pour des concepts simples, vous verrez.

Auguste utilisait une autre variante du chiffre de César.

Il est très possible qu’il ait inspiré le chiffre de Vigenère.

<video controls preload="auto" width="100%" poster="https://blog.limawi.io/fr-fr/videos/cryptotrucs-episode-2-l-histoire-ou-le-chiffre-de-cesar/videos/cryptotrucs-episode-2-l-histoire-ou-le-chiffre-de-cesar.png" playsinline><source src="https://blog.limawi.io/fr-fr/videos/cryptotrucs-episode-2-l-histoire-ou-le-chiffre-de-cesar/videos/cryptotrucs-episode-2-l-histoire-ou-le-chiffre-de-cesar.webm" type="video/webm">
    <track label="Français" kind="captions" srclang="fr-fr" src="https://blog.limawi.io/fr-fr/videos/cryptotrucs-episode-2-l-histoire-ou-le-chiffre-de-cesar/videos/cryptotrucs-episode-2-l-histoire-ou-le-chiffre-de-cesar.vtt" default>
</track></source></video>

## La grosse image : la substitution

On va commencer par la notion la plus large. Le chiffrement par substitution consiste à remplacer une lettre par une autre. Tout simplement.

Cette technique est la plus répandue dans l’histoire et elle est différente de la permutation qui consiste à changer l’ordre des lettres dans un texte.

Les algorithmes modernes utilisent les deux méthodes à la fois car, seule, la substitution n’est pas cryptographiquement très sûre (sauf le cas très particulier du masque jetable).

## La moyenne image : le décalage

Dans les méthodes de chiffrement par substitution, la plus simple est la méthode par décalage.

C’est une méthode de chiffrement monoalphabétique (encore un mot compliqué pour une notion simple). C’est à dire qu’une lettre est associée (lors du chiffrement/déchiffrement) à une autre et uniquement à cette autre. Deux lettres différentes ne peuvent pas aboutir à une même lettre après chiffrement/déchiffrement et, de même, une lettre ne peut pas donner deux lettres différentes après chiffrement/déchiffrement.

Pour les mathématiciens, c’est une relation bijective.

La méthode par décalage consiste donc à décaler une lettre dans l’alphabet.

## La petite image : le chiffre de César

Le chiffre de César désigne, à l’heure actuelle, toutes ces méthodes de chiffrement par décalage mais, plus précisément, le décalage par 3.

Prenons l’alphabet latin, celui utilisé par César (même s’il semble qu’il préférait l’alphabet grec pour ses messages secrets) et affectons des valeurs aux lettres.

```
A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7, I=8, J=9, K=10, L=11, M=12, N=13, O=14, P=15, Q=16, R=17, S=18, T=19, U=20, V=21, W=22, X=23, Y=24, Z=25

```

On leur applique un décalage de 3.

```
A=0+3=3=D

B=1+3=4=E

…

```

Par contre, vous voyez que si on fait :

```
X=23+3=26

```

et on ne sait pas ce que c’est la lettre 26, sauf si on utilise la congruence. Si ce mot vous est inconnu, lisez [cet article](https://blog.limawi.io/fr-fr/posts/la-congruence-le-modulo/).

On va considérer que l’alphabet latin est en _modulo_ 26. Donc, si on reprend le calcul :

```
X=23+3=26 ≡ 26-26 *mod*(26) ≡ 0 *mod*(26) ≡ A

```

Donc, dans le chiffre de César, A devient D, B devient E, X devient A, Y devient B, Z devient C…

On a décalé les lettres de 3 crans.

Un exemple :

Considérons le message : « CAVE CANEM » (« Attention au chien », en latin)

On applique le chiffre de César :

```
« C A V E C A N E M »

=

2 0 21 4 2 0 13 4 12

+3

=

5 3 24 7 5 3 16 7 15

=

« F D Y H F D Q H P »

```

Voilà votre message chiffré. Et pour le déchiffrer on fait le contraire, on soustrait 3 aux lettres du message chiffré.

C’est simple, n’est ce pas. Et vous comprenez qu’on en est au degré 0 de la cryptographie.

Mais pour l’époque, ça paraissait suffisant.

## Les variantes

Bien sûr, on a développé des variantes de ce chiffrement durant l’histoire.

### ROT13

Cette variante consiste à faire un décalage de 13 lettres et non de 3. « ROT » est le raccourci de rotation, car un décalage avec un _modulo_ peut être analysé comme une rotation.

Ce décalage est particulier car il est symétrique pour un alphabet de 26 lettres (13 étant la moitié de 26). C’est à dire que si on chiffre deux fois un message avec ce décalage on retrouve le message en clair.

Exemple :

Premier chiffrement :

```
« C A V E C A N E M »

=

2 0 21 4 2 0 13 4 12

+13

=

15 13 34-26 17 15 13 26-26 17 25

=

15 13 8 17 15 13 0 17 25

=

« P N I R P N A R Z »

```

Deuxième chiffrement :

```
« P N I R P N A R Z »

=

15 13 8 17 15 13 0 17 25

+13

=

28-26 26-26 21 30-26 28-26 26-26 13 30-26 38-26

=

2 0 21 4 2 0 13 4 12

=

« C A V E C A N E M »

```

Tadaa, on retrouve « Cave Canem ».

<video controls preload="auto" width="100%" poster="https://blog.limawi.io/fr-fr/posts/le-chiffre-de-cesar/videos/story-rot13.png" playsinline><source src="https://blog.limawi.io/fr-fr/posts/le-chiffre-de-cesar/videos/story-rot13.webm" type="video/webm">
</source></video>

### Auguste

J’ai dit plus haut que le chiffre de César était nul. Attendez de voir celui-là. Oubliez les _modulo_, c’est trop compliqué, et compter jusqu’à 3 c’est aussi trop compliqué, comptez jusqu’à 1, c’est très bien.

Auguste (le neveu de César, donc) utilisait un chiffrement par décalage de 1. Oui, vous avez bien lu, de 1. Ah et puis « z » on en fait quoi ? Rappelez-vous, pas de congruence. Donc « z » devient « aa », oui, deux « a ».

Dois-je vraiment vous faire un exemple ?

<video controls preload="auto" width="100%" poster="https://blog.limawi.io/fr-fr/posts/le-chiffre-de-cesar/videos/story-le-chiffre-d-auguste.png" playsinline><source src="https://blog.limawi.io/fr-fr/posts/le-chiffre-de-cesar/videos/story-le-chiffre-d-auguste.webm" type="video/webm">
</source></video>

### Avocat, Cassis, Cassette, K9

Il y a, bien sûr, des chiffrements provenant de jeux de mots, inventés pour les jeux pour enfants.

Avocat est « _A vaut K_ » donc un décalage de 10.

Cassis est « _K 6_ », un décalage de 4 en arrière (ou 22 en avant).

Cassette est « _K 7_ », un décalage de 3 en arrière (23 en avant).

K9 est prononcé en anglais et est une référence au chien robot de Dr Who (et c’est aussi une très bonne app mail pour Android…). C’est un jeu de mots avec le mot « _canine_ » bien sûr. C’est un décalage de 1 en arrière (25 en avant).

### Extension de l’alphabet

On peut, bien sûr, utiliser un autre alphabet que l’alphabet latin, voire prendre un ordre arbitraire de signes. Tout ce qu’il faut c’est que les signes soient ordonnés.

Exemple :

Prenons cet alphabet fictif :

```
« : ; ! , t 2 5 »

```

Si on applique un incrément de 3, on a :

```
« , t 2 5 : ; ! »

```

## La nullité du truc

Vous avez compris, maintenant, comme ce système était nul. Voyons deux méthodes pour casser un chiffrement fait avec cette technique.

### Cassage par fréquences

Chaque langue a des lettres plus fréquentes que les autres. Par exemple, en français « e » est (de loin) la lettre la plus fréquente. Il suffit donc à un attaquant d’analyser la fréquence des signes dans le message. Si le message chiffré contient beaucoup de « g » et que les interlocuteurs sont français alors l’attaquant peut faire l’hypothèse d’un décalage de 2 et retrouver facilement le texte original.

### Cassage par force brute

Pour un alphabet de 26 lettres, il y a 26 combinaisons possibles. Ce n’est franchement pas compliqué de tester toutes les combinaisons.

Tester toutes les combinaisons, cela s’appelle une attaque par force brute. C’est le plus bête (le plus brut), on teste toutes les combinaisons. Mais c’est aussi l’attaque qui demande le plus de ressources, vu qu’on teste tout.