next up previous contents
Next: 4.3.2 Fonction Up: 4.3 DES Previous: 4.3 DES   Contents

4.3.1 Fonctionnement général

Le DES chiffre et déchiffre des blocs de 64 bits d'information à l'aide d'une clé de 56 bits. Ces 64 bits d'information peuvent correspondre à 8 caractères ASCII. Pour une plus grande sûreté lors du transport électronique de cette clé, il faut lui rajouter un bit de parité après tous les 7 bits. Cela veut dire que les bits 8, 16, 24, 32, 40, 48, 56 et 64 sont des bits de parité. Un bit de parité sera égal à 1 si et seulement si les 7 bits précédents contiennent un nombre impair de 1. Par exemple, si les 7 premiers bits sont 1001010, le huitième bit, le bit de parité, sera 1 puisqu'il y a trois « 1 » dans ces 7 bits. Si un bit est altéré lors du transport de la clé, on pourra détecter le changement en consultant le bit de parité. Évidemment, si deux bits changent, le bit de parité sera inutile, mais son avantage n'est pas pour autant à négliger. Il est important de noter que « la même clé $ K$ sert pour l'algorithme DES et sa réciproque DES$ ^{-1}$, mais pour DES$ ^{-1}$, il faut considérer les étapes dans l'ordre inverse. »8

Figure 5: Schéma général de DES

\includegraphics[ width=9cm,
height=13cm]{general.eps}
Source: [13], p. 46.

Chacun des 64 bits d'information sont numérotés de 1 à 64 selon leur ordre d'apparition. La première étape du DES consiste à prendre ces bits et à les permuter pour obtenir l'ordre illustré au tableau 4.



Table 4: Permutation initiale de DES
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

Source: [17], p. 67.

Une fois cette opération terminée, on sépare le message en deux parties de 32 bits, la partie de gauche ($ L$) et la partie de droite ($ R$). Comme on peut l'observer sur la table 4, la partie de gauche (les quatre premières lignes) contient les 32 bits de poids fort9 tandis que la partie de droite contient les autres bits. Chacune de ces parties va subir des opérations avant de changer de côté. Ces opérations diffèrent selon que ce soit le côté gauche ou le côté droit.

Supposons que $ R_{n}$ représente la $ n$-ième partie de droite et $ L_{n}$ la $ n$-ième partie de gauche où $ n$ est compris entre 1 et 16 et représente les 16 étapes du chiffrement de DES. À chaque étape, le contenu de la partie de droite de l'étape précédente, $ R_{n-1}$, est copié dans la partie de gauche, $ L_{n}$. Le contenu de la partie de gauche, $ L_{n-1}$, devient la nouvelle partie de droite, $ R_{n}$, à laquelle on fait subir des modifications mathématiques. On peut alors écrire, de façon générale,

$\displaystyle n$ $\displaystyle =$ $\displaystyle \{1..16\}$  
$\displaystyle L_{n}$ $\displaystyle =$ $\displaystyle R_{n-1}$  
$\displaystyle R_{n}$ $\displaystyle =$ $\displaystyle L_{n-1}\bigoplus f(R_{n-1},K_{n})$  

$ K_{n}$ représente la $ n$-ième partie de la clé de chiffrement. Ces formules seront maintenant expliquées pas à pas.

Comme il est possible de le voir, la partie de gauche est toujours la partie précédente de droite, tandis que la partie de droite est la partie de gauche ayant subit quelques opérations, dont la fonction $ f$, laquelle est le coeur du chiffrement DES.


next up previous contents
Next: 4.3.2 Fonction Up: 4.3 DES Previous: 4.3 DES   Contents
Simon Perreault 2002-06-02