1.IntroductionDepuis l'Egypte
ancienne, l'homme a voulu pouvoir échanger des informations de façon
confidentielle.
Il existe de nombreux domaines où ce besoin est vital :
—
militaire (sur un champ de bataille ou bien pour protéger l'accès à l'arme atomique) ;
—
commercial (protection de secrets industriels) ;
—
bancaire (protection des informations liées à une transaction financière) ;
— de la
vie privée (protection des relations entre les personnes) ;
— diplomatique (le fameux « téléphone rouge » entre Etats-Unis et Union
soviétique) ;
2. Qu'est-ce que la cryptographie?le mot cryptographie est un terme générique désignant
l'ensemble des techniques permettant de chiffrer des messages, c'est-à-dire
permettant de les rendre inintelligibles sans une action spécifique. Le verbe
crypter est parfois utilisé mais on lui préfèrera le verbe chiffrer.
La cryptologie est essentiellement basée sur l'arithmétique :
Il s'agit dans le cas d'un texte de transformer les lettres qui composent le
message en une succession de chiffres (sous forme de bits dans le cas de
l'informatique car le fonctionnement des ordinateurs est basé sur le
binaire), puis
ensuite de faire des calculs sur ces chiffres pour :
·
d'une part les modifier de telle façon à les rendre incompréhensibles. Le résultat de cette modification
(le message chiffré) est appelé
cryptogramme (en anglais
ciphertext)
par opposition au message initial, appelé
message en clair (en
anglais
plaintext) ; faire en sorte que le destinataire saura les déchiffrer.
Le fait de coder un message de telle façon à le rendre
secret s'appelle chiffrement. La méthode inverse, consistant à retrouver le
message original, est appelée déchiffrement.
Le chiffrement se fait généralement à l'aide d'une
clef
de chiffrement, le déchiffrement nécessite quant à lui une
clef de
déchiffrement. On distingue généralement deux types de clefs :
·
Les clés symétriques:
il s'agit de clés utilisées pour le chiffrement ainsi que pour le
déchiffrement. On parle alors de
chiffrement symétrique ou de chiffrement à clé secrète.
·
Les clés asymétriques:
il s'agit de clés utilisées dans le cas du
chiffrement asymétrique (aussi appelé
chiffrement à clé publique).
Dans ce cas, une clé différente est utilisée pour le chiffrement et pour le déchiffrement
On appelle
décryptement (le terme de
décryptage peut éventuellement être utilisé également) le fait d'essayer de
déchiffrer illégitimement le message (que la clé de déchiffrement soit connue ou non
de l'
attaquant).
Lorsque la clef de déchiffrement n'est pas connue de l'attaquant on parle alors de
cryptanalyse ou
cryptoanalyse (on entend souvent aussi le terme plus familier de
cassage).
La
cryptologie est la science qui étudie les aspects scientifiques de ces techniques, c'est-à-dire qu'elle englobe la cryptographie et la cryptanalyse.
La cryptographie est traditionnellement utilisée pour dissimuler des messages aux yeux de certains utilisateurs. Cette utilisation a aujourd'hui un intérêt d'autant plus grand que les communications via internet
circulent dans des infrastructures dont on ne peut garantir la
fiabilitéet la
confidentialité.
Désormais, la cryptographie sert non seulement à préserver la confidentialité
des données mais aussi à garantir leur
intégritéet leur
authenticitéOn appelle
cryptanalyse la reconstruction d'un
message chiffré en clair à l'aide de méthodes mathématiques. Ainsi, tout
cryptosystème doit nécessairement être résistant aux méthodes de cryptanalyse.
Lorsqu'une méthode de cryptanalyse permet de déchiffrer un message chiffré à
l'aide d'un cryptosystème, on dit alors que l'algorithme de chiffrement a été
« cassé ».
On distingue habituellement quatre méthodes de
cryptanalyse :
·
Une
attaque sur texte chiffré seulement consiste à retrouver la clé de déchiffrement à partir
d'un ou plusieurs textes chiffrés ;
Une
attaque sur texte clair connu consiste à retrouver la clé de déchiffrement à partir d'un ou
plusieurs textes chiffrés, connaissant le texte en clair correspondant ;
Une
attaque sur texte clair choisi consiste à retrouver la clé de déchiffrement à partir d'un ou
plusieurs textes chiffrés, l'attaquant ayant la possibilité de les générer à
partir de textes en clair ;
·
Une
attaque sur texte chiffré choisi consiste à retrouver la clé de déchiffrement à partir d'un
ou plusieurs textes chiffrés, l'attaquant ayant la possibilité de les générer à
partir de textes en clair.
3. La notion de codage de l'information Historiquement,
l'utilisation d'alphabet a
permis de coder chaque mot du
langage à partir de mêmes symboles à la différence des idéogrammes chinois par
exemple.
L'ajout d'un ordre sur ces lettres à permis de définir les premières méthodes «
mathématiques » de chiffrement d'un message constitué de lettres (code César, ROT13…).
Ces chiffrements partent d'un message contenant des lettres vers un cryptogramme contenant également des lettres.
Ces méthodes se décomposent en deux grandes familles de chiffrement :
—
Par Substitution —
par transposition.
D'autres formes de chiffrement ?
Il existe également d'autres formes comme le code morse ou bien les sémaphores dans
la Marine. Ce sont des techniques de brouillage.
4. Chiffrement par substitutionCette méthode correspond à substituer un caractère ou un groupe de caractères par un autre dans le
texte à chiffrer.
Plusieurs types de
cryptosystèmes par substitution :—
monoalphabétique (code César) consiste à remplacer chaque lettre du message par une autre lettre de l'alphabet ;
—
homophonique permet de faire correspondre à chaque lettre du message en clair un ensemble possible
d'autres caractères
c'est un peu similaire aux méthodes employées par les mordus de SMS ;
—
polyalphabétique (code Vigenère) consiste à utiliser une suite de chiffrement, monoalphabétique réutilisée
périodiquement ;
—
polygrammes consiste à substituer un groupe de caractères (polygramme) dans le message par un autre groupe de caractères.
4.1. Exemples : Chiffrement par substitution mono alphabétiqueLe chiffrement de CésarCe code de chiffrement est un des plus anciens, dans la mesure où Jules César l'aurait utilisé. Le principe de codage repose sur l'ajout d'une valeur constante à l'ensemble des caractères du message, ou plus
exactement à leur
code ASCII (pour une version "informatique" de ce codage).
Il s'agit donc simplement de décaler l'ensemble des valeurs
des caractères du message d'un certain nombre de positions, c'est-à-dire en
quelque sorte de substituer chaque lettre par une autre. Par exemple, en
décalant le message "
WNT
" de 3 positions, on obtient "
VMS". Lorsque
l'ajout de la valeur donne une lettre dépassant la lettre Z, il suffit de
continuer en partant de A, ce qui revient à effectuer un
modulo 26.
A titre d'exemple, dans le film
L'odyssée de l'espace, l'ordinateur
porte le nom de
HAL. Ce surnom est en fait
IBM décalé de 1
position vers le bas...
On appelle clé le caractère correspondant à la valeur que
l'on ajoute au message pour effectuer le cryptage. Dans notre cas la clé est C,
car c'est la 3
ème lettre de l'alphabet.
Ce système de cryptage est certes simple à mettre en oeuvre,
mais il a pour inconvénient d'être totalement symétrique, cela signifie qu'il
suffit de faire une soustraction pour connaître le message initial. Une méthode
primaire peut consister à une bête soustraction des nombres 1 à 26 pour voir si
l'un de ces nombres donne un message compréhensible.
Une méthode plus évoluée consiste à calculer les fréquences d'apparition des
lettres dans le message codé (cela est d'autant plus facile à faire que le
message est long). Effectivement, selon la langue, certaines lettres reviennent
plus couramment que d'autres (en français, par exemple, la lettre la plus
utilisée est la lettre E), ainsi la lettre apparaissant le plus souvent dans un
texte crypté par le chiffrage de César correspondra vraisemblablement à la
lettre E, une simple soustraction donne alors la clé de cryptage...
Un autre exemple : le ROT13Dans le cas spécifique du chiffrement de Jules César où la
clé de cryptage est N (13
ème lettre de l'alphabet), on appelle ce
cryptage ROT13 (le nombre 13, la moitié de 26, a été choisi pour pouvoir
chiffrer et déchiffrer facilement les messages textuels).
Le ROT13 (rotation de 13) est un code César qui permet quand
on l'applique deux fois de retrouver le message original.
Il est souvent employé sur USENET (les news) pour masquer la
solution d'une devinette ou pour parler aux initiés.
Les lecteurs de news l'intègrent en général4.2. Cryptanalyse du chiffrement par substitution4.2.1. Cryptanalyse du chiffrement par substitutionDans le cas de l'utilisation d'un code par substitution, la
cryptanalyse ou déchiffrement se fait par l'utilisation de données
statistiques :
En anglais, les caractères les plus fréquemment utilisés
sont : e, t, o, a, n, i…
Les combinaisons de deux lettres (digrammes) les plus
fréquentes sont : th, in, er, re, et an. Les combinaisons de trois lettres
(trigrammes) : the, ing, and et ion.
4.2.2. Méthode empirique de cryptanalyseIl suffit pour retrouver le texte en clair de :
— Rechercher les
caractères,
digrammes et
trigrammes les plus fréquents du texte chiffré;
— Faire des
suppositions en les associants à ceux les plus fréquents d'un texte en clair (dans la langue
choisi).
Par exemple dans un texte crypté appartenant à une banque il est probable de trouver des mots tel que
financier, montant, solde…
4.2.3. Comment finir la cryptanalyse ?Si certains mots commencent à émerger du texte chiffré,alors il y a de
fortes probabilités que le code de chiffrement soit découvert.
Un code par substitution
ne modifie pas les
propriétés statistiques des caractères, digrammes et trigrammes
substitués.
Il conserve
l'ordre des caractères du texte en clair, mais masque ces caractères.
Table des fréquences d'apparition des lettres pour un texte français 5. Chiffrement par transpositionLes méthodes de chiffrement par transposition consistent à réarranger les données à chiffrer de façon à les rendre incompréhensibles. Il s'agit par exemple de réordonner géométriquement les données pour les rendre
visuellement inexploitables
Toutes les lettres du message sont présentes, mais dans un ordre différent. C'est un chiffrement de type
anagramme. Il utilise le principe mathématique des
permutations (par colonne par exemple)
Les méthodes de chiffrement par transposition consistent à réarranger les données à chiffrer de telle façon à
les rendre incompréhensibles.
En général : réarranger géométriquement les données pour les rendre visuellement inexploitables.
Par exemple :
"Ceci est un texte à chiffrer de la plus haute importance"
Ceci est un texte à chiffrer de la plus haute importance
Le texte est regroupé en tableau, suivant un nombre de colonnes donné.
Ceci est un texte à chiffrer d Cncehre hatctiluaiefatn… Chaque colonne est ensuite copiée l'une après l'autre.
e la plus
haute importance5.1. Cryptanalyse du chiffrement par tranposition5.1.1. Cryptanalyse— Déterminer si une substitution n'a pas été utilisée : une analyse statistique des caractères suffit à
déterminer si les caractères ont été substitués (statistiques fréquentielles du
texte identiques à celle d'un texte en clair).
— Si ce n'est pas le cas, il y a une forte probabilité pour qu'un chiffrement par transposition
ait été employé.
— Ensuite, il faut faire une hypothèse sur le nombre de colonnes
utilisées pour réaliser la transposition.
Les codes de transposition contrairement aux codes par
substitution ne cachent
pas les caractères, mais modifient l'ordre des caractères.
Histoire :L'arrivée des
ordinateurs a totalement démodé ces méthodes de chiffrement (on ne parle
plus d'ailleurs de chiffrement car ces méthodes ne résiste pas au traitement
informatique). La machine
Enigma utilisée par les nazis a été « cassée » par Alan Turing, pionnier de
l'informatique.
Il faut attendre
les annés 60 pour voir les méthodes de chiffrement moderne basées sur l'usage de clés.