Chiffrement et déchiffrement
| Site: | Plate-forme d'apprentissage |
| Cours: | 2DF Informatique JCB |
| Livre: | Chiffrement et déchiffrement |
| Imprimé par: | Visiteur anonyme |
| Date: | dimanche 18 octobre 2026, 22:28 |
1. Passer de la lettre au chiffre
Toutes les techniques de chiffrement et déchiffrement de messages nécessitent, comme leur nom l'indique, de traduire les lettres en chiffres. Une opération de chiffrement ou déchiffrement d'un message consiste à prendre chaque lettre, la transformer en nombre, opérer sur ce nombre, puis retransformer en lettre.
Pour les méthodes que nous allons étudier, on peut se limiter aux 26 lettres de l'alphabet (sans accents) et attribuer à chacune un nombre.
Lorsque l'on travaille "à la main" (papier et crayon), on peut numéroter les lettres de 1 à 26 (ou de 0 à 25). Il suffit de se constituer une grille de traduction sur un papier et on pourra facilement traduire dans les deux sens.
Transformer une lettre en nombre ou un nombre en lettre avec Python
Lorsque l'on travaille sur ordinateur, c'est plus simple de numéroter les lettres entre 0 et 25.
Avec Python, on peut obtenir le code ASCII d'une lettre avec la fonction ord(). Comme les lettres sont dans l'ordre alphabétique, c'est facile de se ramener à une valeur entre 0 et 25 en soustrayant ord("a"). Ainsi, par exemple, ord("c") - ord("a") va s'évaluer à 2, ce qui est bien le numéro correct. La méthode générale est donc:
def lettre_vers_nombre(lettre):
"""Transformer une lettre minuscule non accentuée en un nombre entre 0 et 25."""
return ord(lettre) - ord("a")
Pour retrouver une lettre, l'opération inverse de ord() est chr(). Il faut bien entendu d'abord ajouter à nouveau le code ASCII correspondant à la lettre "a".
def nombre_vers_lettre(nombre):
"""Transformer un nombre entre 0 et 25 en lettre minuscule."""
return chr(nombre + ord("a"))
2. Chiffre de César
Le chiffre de César, utilisé par Jules César lui-même, est très simple.
Il consiste à se mettre d'accord sur un décalage de l'alphabet et appliquer ce décalage à toutes les lettres d'un message afin de le chiffrer. Pour déchiffrer le message, il suffit d'appliquer le décalage opposé.
Le décalage pourra être un nombre entre 1 et 25 ou bien entre -12 et +13 (mais pas 0, sinon on garde le message de départ en clair). Ce nombre est la clé du chiffrement.
Cette méthode est facile à appliquer "à la main", ce qui explique son ancienneté.
Par contre, un message chiffré avec cette méthode est facile à décrypter. Au pire des cas, on devrait effectuer 25 essais (tous les décalages possibles). Mais en réalité, on peut y arriver beaucoup plus vite, en observant la fréquence des lettres: certaines lettres apparaissent beaucoup plus souvent en français que d'autres (et de même dans les autres langues). Observer quelle lettre est la plus présente dans le message chiffré nous donnera une bonne indication du décalage le plus probable qui a été utilisé pour chiffrer.