# Chiffre (cryptologie)

En cryptologie, un chiffre est une manière secrète d'écrire un message à transmettre, au moyen de caractères et de signes disposés selon une convention convenue au préalable. Plus précisément, le chiffre est l’ensemble des conventions et des symboles (lettres, nombres, signes, etc.) employés pour remplacer chaque lettre du message à rendre secret. Avec un chiffre, on transforme un message en clair en message en chiffres, ou message chiffré, ou encore cryptogramme.
Dans l'armée ou la diplomatie, le service du chiffre est l'unité chargée de transmettre et de recevoir la correspondance secrète.

## Deux grands types de chiffres

Comme la nécessité d'échanger des messages confidentiels est aussi vieille que l'écriture, des chiffres ont existé depuis l'Antiquité. Exemples : le chiffre de César, le chiffre de Trithémius, le chiffre de Vigenère, le chiffre de Vernam, le chiffre des templiers.
Il existe deux grandes familles de chiffres : par transposition ou par substitution.
* Avec un chiffre à transposition, les lettres du message sont mélangées selon une convention secrète. Il faut les réordonner pour retrouver le message initial.
* Avec un chiffre à substitution, les lettres du message sont remplacées par des symboles déterminés (autres lettres, nombres, signes, etc.).
Les deux méthodes peuvent être combinées pour compliquer le travail du cryptanalyste.

## Du chiffre au chiffrement

Du mot chiffre est dérivé chiffrement, qui est l'opération de composition d'un message chiffré. Elle consiste à remplacer chaque caractère du message par un ou plusieurs autres symboles, à l'aide d'une clé de chiffrement, afin de le rendre illisible et incompréhensible. Pour le déchiffrer, il faut connaître la clé inverse qui permettra de retrouver le message en clair. La clé de déchiffrement peut être identique à la clé de chiffrement : on parle alors de cryptographie symétrique. Mais elle peut aussi être différente, comme dans les méthodes modernes de cryptographie asymétrique.
Toute correspondance secrète est susceptible d'être interceptée et décryptée par un cryptanalyste. Aussi, les méthodes de chiffrement n'ont cessé de se perfectionner, tout comme les méthodes inverses de cryptanalyse.
Au début du XXe siècle, outre ses utilisations traditionnelles, le chiffrement forme l'un des grands domaines de la sécurité informatique. Il peut reposer sur des algorithmes très complexes.

## Différence entre chiffre et code

Un chiffre opère sur les unités élémentaires qui composent le message : lettres, petits groupes de lettres, ou encore bits dans les transmissions électroniques, qui sont substitués ou transposés. Il n'y a pas besoin de connaître la signification des mots que composent les lettres pour les chiffrer, il suffit de savoir, par exemple, qu'on doit décaler chaque lettre de 3 positions dans l'alphabet, si on utilise un chiffre par substitution monoalphabétique dont la clé est 3.
Dans ce cas, JE SUIS CONTENT s'écrira : MH VXLV FRQWHQW et JE PENSE DONC JE SUIS s'écrira MH SHQVH GRQF MH VXLV.
ROT13 est un exemple d'un tel chiffrement. Le chiffre peut être plus complexe comme celui de Vigenère qui fait intervenir des substitutions polyalphabétiques. Dans ce cas, une lettre peut être remplacée par plusieurs possibilités selon sa position dans le texte et la clé.
En revanche, un code opère sur les mots ou les phrases du message, et sur leur signification. Dans le code des emoticons dérivés des smileys, par exemple, JE SUIS CONTENT s'écrira :-) mais il sera plus difficile d'écrire JE PENSE DONC JE SUIS, car cette phrase n'est pas définie dans les tables de références usuelles des smileys. Si deux personnes veulent échanger des messages où cette phrase apparaît secrètement sous forme de smiley, elles devront en définir la représentation ; de même pour tout autre mot ou phrase qu'elles souhaiteraient échanger de cette façon. L'ensemble de ces conventions peut être réuni dans un livre de code, équivalent d'un dictionnaire qui permet la conversion entre les deux représentations. Le Grand Chiffre utilisé à l'époque de Louis XIV est un exemple de code basé sur un système à répertoires.