# Cryptographie/Cryptographie à clef secrète
## Les principes

Historiquement c’est le premier type de cryptographie que l’on connaisse. Deux personnes qui veulent communiquer ensemble conviennent d'une clef permettant de chiffrer et déchiffrer leurs messages. Ainsi toute personne connaissant cette clef pour crypter ou décrypter tout message, d'où l’intérêt de la tenir secrète, ou du moins connue uniquement des personnes que l’on souhaite mettre au secret.
On parle aussi de cryptographie à clef symétrique étant donné que la même clef sert au cryptage et au décryptage d'un message.

## Le chiffre de César

Le chiffre de César est sans doute le plus connu de tous et le plus ancien. Il s'agit d'un chiffre à décalage, c'est-à-dire que c’est une simple rotation de l'alphabet. À chaque caractère on associe le caractère décalé de n positions dans l'alphabet, où n est la clef. Nous travaillons bien sûr modulo 26 lors des décalages.
Pour décrypter le même décalage est appliqué mais dans le sens inverse.
Bob veut envoyer à Alice le message suivant : RENDEZVOUSCESOIR
Ils ont auparavant convenu d'une clef qui est par exemple 3. Ainsi le décalage à appliquer au texte clair est de 3 modulo 26, ce qui donne comme texte crypté : UHQGHCYRXVFHVRLU

## Le chiffre de Vigenère

Un peu d'histoire :
Blaise Vigenère vécut au XVIe siècle, il permit une "Révolution" dans le domaine de la cryptographie. Afin de remplacer la cryptographie par substitution monoalphabétique trop peu sûre, il mit au point une nouvelle méthode de chiffrement. En 1586 il publia son "Traité des chiffres ou Secrètes manières d'écrire", dans lequel il explique cette méthode qui domina les autres pendant trois siècles.
Principe :
Le chiffre de Vigenère est assez proche de celui de César dans la mesure où chaque lettre sera substituée par une nouvelle lettre. On utilise ici un tableau de 26 × 26 ou chaque ligne contient l'alphabet décalé d'une lettre.
| Clé | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
| 1 | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a |
| 2 | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b |
| 3 | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c |
| 4 | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d |
| 5 | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e |
| 6 | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f |
| 7 | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g |
| 8 | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h |
| 9 | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i |
| 10 | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j |
| 11 | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k |
| 12 | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l |
| 13 | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m |
| 14 | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n |
| 15 | p | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 16 | q | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p |
| 17 | r | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q |
| 18 | s | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r |
| 19 | t | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s |
| 20 | u | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t |
| 21 | v | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u |
| 22 | w | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v |
| 23 | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w |
| 24 | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x |
| 25 | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y |
La méthode de cryptage est donc simple, on choisit une clé de longueur arbitraire et on substitue chaque lettre du texte clair en fonction de la lettre lui correspondant dans la clé choisie grâce à ce tableau. Dans le cas d'une clé plus courte que le texte à crypter, on répète autant de fois la clé que nécessaire pour crypter l’ensemble du texte. Il est donc tout aussi simple de décrypter un message lorsque l’on possède la clé.
Enfin :
Cette méthode pour crypter un texte est simple, et assez difficile a casser étant donné que chaque personne voulant crypter un texte peut définir sa propre clé. De plus, une même lettre pourra être cryptée de plusieurs façons différentes ce qui renforce la sécurité de cette méthode. Cependant, le chiffre de Vigenère a été cassé par Charles Babbage, un mathématicien anglais du XIXe siècle.
Nous reviendrons dans la partie cryptanalyse sur les différentes méthodes assez simples permettant de casser ce chiffre.

## Chiffrement par la fonction XOR (Ou Exclusif)

C'est un codage par masque jetable.
La fonction XOR se présente le plus souvent sous forme de caractère binaire (0,1). Voici un petit rappel de cette fonction :
1 XOR 1 = 0 0 XOR 0 = 0 1 XOR 0 = 1 0 XOR 1 = 1
Voici un exemple de chiffrement :
Clé privée : 1110111011111011 Message : 1101101110011010
Message chiffré : 0011010101100001
Maintenant, déchiffrons notre message chiffré par notre clé privée...
Message chiffré : 0011010101100001 Clé privée : 1110111011111011
Message : 1101101110011010
| Terminologie et notations | Cryptographie à clef publique |