Les modes de chiffrements
Avant de s'intéresser à la construction de l'algorithme de
chiffrement par blocs lui-même, il est utile de préciser qu'il existe plusieurs modes qui permettent d'enchaîner le chiffrement des différents blocs de taille n, m
i pour i variant de 0 à t−1, la fonction de
chiffrement E
K s'appliquant alors à chacun des blocs. Il s'agit donc de chaîner les c
i=E
K(m
i) avec en général m
i+1 pour i variant de 0 à t−1.
1 Le mode ECB
Le mode le plus simple est le mode ECB de l'anglais
Electronic Code Book illustré à la figure
1 : 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 fondé sur un compteur permet également ces accès aléatoires et des déchiffrements partiels.

Figure 1: Le mode ECB.
2 Le mode CBC
Un autre mode de
chiffrement très employé est le mode CBC (présenté à la figure
2) de l'anglais Cipher Block Chaining. Il consiste à chiffrer le bloc i préalablement combiné par ou exclusif avec le chiffré du bloc précédent ainsi, c
i = E
K(m
i ⊕c
i−1) pour tout i de 1 à t, avec c
0 = E
K(m
0 ⊕IV) où IV désigne un vecteur d'initialisation. C'est un bloc de données aléatoires qui permet de commencer le
chiffrement du premier bloc et qui fournit ainsi une forme de hasard indépendant du document à chiffrer. Il n?a pas besoin d?être lui-même chiffré lors de la transmission, mais il ne doit jamais être réemployé avec la même clé ce qui n'est pas le cas dans le
WEP par exemple [
2].

Figure 2: Le mode CBC.
Il existe plusieurs autres modes que nous ne présenterons pas ici qui sont essentiellement des variantes du mode CBC. On peut citer : le mode CFB de l'anglais Cipher Feedback Block qui utilise un
chiffrement à rétroaction, le mode OFB de l'anglais Output Feedback Block qui utilise un chiffrement à rétroaction de sortie,...
Le dernier mode auquel nous allons nous intéresser est le mode CTR (pour CounTeR) ou mode compteur qui a fait parler de lui récemment car on l'envisageait pour remplacer les chiffrements à flot [
1].
3 Le mode CTR
Dans ce cas, c'est la valeur d'un compteur qui est chiffrée et qui produit un bloc pseudo-aléatoire qui sera ensuite x-orer avec les blocs de message clair pour produire le chiffré correspondant : cette méthode correspond au célèbre "one-time-pad" et est illustrée à la figure
3.

Figure 3: Le mode CTR.
Ce mode peut également être utilisé avec un vecteur d'initialisation qui, dans ce cas, est concaténé à la valeur du compteur.
Références
- [1]
- Adi Shamir. "stream ciphers: Dead or alive ?". invited talk of SASC - The State of the Art of Stream Ciphers, 2004.
- [2]
- Wikipédia. "article wired equivalent privacy (WEP)". http://fr.wikipedia.org/wiki/WEP, 2005.