Vous êtes sur la page 1sur 3

Mode d'opération

Introduction
Les algorithmes de chiffrement par blocs ne traitent pas les textes bit par bit, mais manipulent des
blocs de texte - par exemple de 64 bits pour le DES ou de 128 bits pour le AES. Il n’est pas suffisant de
mettre n’importe comment un algorithme de chiffrement par blocs dans un programme. On peut au
contraire utiliser ces algorithmes de diverses manières suivant ses besoins spécifiques et ces divers
modes de chiffrement ont également des propriétés de sécurité spécifiques.

Les principaux modes opératoires du DES sont définis dans les standards FIPS 81 du 2 décembre 1980
et aussi dans ANSI X3.106-1983. Ils peuvent être utilisés également pour les autres procédures de
chiffrement à clé secrète, quitte à adapter éventuellement la taille des blocs utilisés.

Tous les modes opératoires impliquent bien sûr qu’il faut, si nécessaire, commencer par rallonger le
texte en clair de façon à ce que sa longueur devienne divisible par la longueur des blocs de
chiffrement. Il n’y a pas de règle générale pour effectuer cette opération, la bonne démarche à suivre
dépend des applications. Le standard FIPS 81 préconise de remplir les blocs tout simplement par des
bits choisis de façon aléatoire ou pseudo-aléatoire si on utilise le mode ECB. Dans le cas où l’intégrité
des messages ne pose pas problème, le choix du rembourrage, en anglais "padding", ne semble pas
avoir beaucoup d’importance. Pour des systèmes qui contrôlent l’intégrité des messages (comme
c’est souvent le cas pour des systèmes en ligne), il faut par contre faire attention afin d’éviter des
attaques comme on va le voir plus loin.

Dans tous les cas, il faut toujours marquer les fichiers avec padding pour que le destinataire sache
que les derniers bits du dernier bloc ne font pas partie du texte en clair

Electronic codebook (ECB)


Il s'agit du mode le plus simple. Le message à chiffrer est subdivisé en plusieurs blocs qui sont chiffrés
séparément les uns après les autres. Le gros défaut de cette méthode est que deux blocs avec le
même contenu seront chiffrés de la même manière, on peut donc tirer des informations à partir du
texte chiffré en cherchant les séquences identiques. On obtient dès lors un « dictionnaire de codes »
avec les correspondances entre le clair et le chiffré d'où le terme codebook.
Ce mode est pour ces raisons fortement déconseillé dans toute application cryptographique. Le seul
avantage qu'il peut procurer est un accès rapide à une zone quelconque du texte chiffré et la
possibilité de déchiffrer une partie seulement des données. Mais un mode bien plus sûr basé sur un
compteur permet également ces accès aléatoires et les déchiffrements partiels.
Cipher Block Chaining (CBC)
Dans ce mode, on applique sur chaque bloc un ‘OU exclusif’ avec le chiffrement du bloc précédent
avant qu’il soit lui-même chiffré. De plus, afin de rendre chaque message unique, un vecteur
d'initialisation est utilisé.

Défauts de CBC
Un des points négatifs de CBC étant qu'il ne peut pas être parallélisé étant donné que le bloc courant nécessite que le
précédent soit chiffré. Il est donc séquentiel.

Cipher Feedback (CFB)


Ce mode et les suivants agissent comme un chiffrement par flux. Ils génèrent un flux de clés qui est ensuite appliqué au
document original.

Dans ce mode, le flux de clé est obtenu en chiffrant le précédent bloc chiffré. CFB est un chiffrement par flot. Son grand intérêt
est qu'il ne nécessite que la fonction de chiffrement, ce qui le rend moins cher à câbler ou programmer pour les algorithmes
ayant une fonction de chiffrement différente de la fonction de déchiffrement (exemple: AES).
Output Feedback  (OFB)
Dans ce mode, le flux de clé est obtenu en chiffrant le précédent flux de clé.

C'est un mode de chiffrement de flot qui possède les mêmes avantages que CFB. De plus, il est possible de le pré-calculer en
chiffrant successivement le vecteur d'initialisation. Il n'est donc sûr que si la fonction de chiffrement alliée à la clé forment une
bonne suite pseudo-aléatoire.
Ce mode est très fragile vis-à-vis d'une attaque au clair. En effet, à l'unique condition de connaître le vecteur d'initialisation d'un
message chiffré et de connaitre le clair d'un autre message chiffré, l'attaquant peut reconstituer aisément la chaîne ayant chiffré
le premier message et donc déchiffrer ce dernier. Cette fragilité se retrouve dans le mode CFB, à ceci près que seul le premier
bloc du message peut être reconstitué de cette manière, l'attaquant a besoin de déchiffrer le message bloc à bloc, en
fournissant à chaque fois l'ensemble des blocs précédents, de manière à récupérer la chaîne ayant chiffré le bloc suivant
(attaque au clair choisi).

Chiffrement basé sur un compteur : « CounTeR » (CTR)


Dans ce mode, le flux de clé est obtenu en chiffrant les valeurs successives d’un compteur.

Ce mode combine de nombreux avantages, car il permet le chiffrement par flot et est pré-calculable. De plus, il permet un accès
aléatoire aux données, est parallélisable et n'utilise que la fonction de chiffrement. Le compteur utilisé peut être une suite
pseudo-aléatoire qu'il sera facile de retrouver à partir de la graine (vecteur d'initialisation).

Vous aimerez peut-être aussi