Chapitre II DES
Chapitre II DES
Chapitre II DES
Encryption Standard
(DES)
Table des
matières
I - Introduction à DES 3
1. La fonction F ................................................................................................................................................. 7
Introduction à DES
I
DES est un algorithme de chiffrement par bloque. Taille du bloque chiffré = 64bits, taille de la
clé primaire K = 56 bits(256 valeurs possibles de la clé) ;
Inventé par IBM avec NSA (National Security Agency) et standardisé en 1977.
Cassé par attaque brute force en 2000 avec l’implémentation hardware Copacobana.
Figure 1. DES
3
Fonction de chiffrement DES
Fonction de
chiffrement DES II
Permutation initiale
16 rounds de chiffrement
Permutation finale (inverse de la permutation initiale)
4
Fonction de chiffrement DES
5
Fonction de chiffrement DES
Avant de commencer la procédure de chiffrement, la première phase qui doit être exécutée
consiste à générer 16 sous-clés (sub-keys) depuis la clé primaire. La taille de chaque clé est de
48bits (voir la section génération de clés). Dans plusieurs références, la clé primaire est d'une
taille de 64 bits, mais dans chaque octet de la clé, le 8em bit n'est pas utilisé car celui-ci
comporte la valeur de vérification de parité.
Pour commencer le traitement d'un bloque de texte de 64 bits, celui ci est introduit à une
fonction de permutation P(X) [où X est le bloque de bits]. Cette phase consiste simplement à
changer les positions des bits du texte claire.
Par exemple : Comme montré dans la figure 4, le bit numéro 1 sera déplacé vers la position 40
et le bit numéro 2 à la position 8.
Par exemple : Comme montré dans la figure 5, le bit numéro 40 sera déplacé vers la position 1 et le bit
numéro 8 à la position 2.
6
Figure 5. Permutation finale
Après la permutation initiale, le bloque de 64 bit est divisé en deux bloques de 32 bits (L 0, R0).
A chaque round i , Ri= Li-1 XOR F(Ri-1,Ki) et Li= Ri-1(La partie droite du round précédant est
copiée dans la partie gauche, et la partie gauche est chiffrée avec le résultat de la fonction F).
A la fin des 16 rounds, L16 et R16 sont inversées : L16= L15 XOR F(R15,K16) et R16= R15
1. La fonction F
7
Figure 6. Fonction F
La fonction F de DES est la partie la plus complexe de ce système. Cette fonction prend en
paramètre , Ki et Ri-1.
La première étape de cette fonction consiste à étendre le bloque R i-1 de 32 bits à 48 bits (pour
que le XOR avec la clé dérivé Ki soit possible). Pour faire ce-ci, le bloque de 32 bits est divisé
en 8 bloques de 4 bits. Par la suite, de chaque bloque de 4bits, le bit le plus à droit et le bit le
plus à gauche sont dupliqués. Ainsi, 2 de chaque 4 bits sont dupliqués et la taille devient de 32
+ 32 /2 = 48 bits (voir le tableau à gauche pour les positions des bits dupliquées).
Après l'extension de la clé, la valeur en résultat est combinée avec la valeur de la clé du round
par un XOR.
8
Figure 7. Fonction d'extension
Le bloque devient de taille 48 bits ( 8 bloques de 6 bits). Par la suite, chaque bloque de 6bits est
passé en paramètre à l'entré du Sbox correspondant ( le premier bloque de 6bits sera traité par
Sbox1, le deuxième bloque sera passé au Sbox 2, etc). Il existe 8 différents Sbox , chacune
prend 6 bits en entré et renvoie 4 bits en sortie.
Figure 8. SBox
Chaque Sbox est une simple table de correspondance de 4 lignes et 16 colonnes. Pour obtenir
la sortie correspondante à une entré de 6bits :
Par exemple pour B=101111 (indice ligne= 11 = 3, indice colonne=0111= 7). La sortie correspondante
9
pour un tel bloque de 6bits = 7
Figure 8. Sbox 1
Par la suite les sorties de chaque Sbox sont regroupées (8 x 4 bits = 32 bits !) dans un seul
bloque.
La dernière étape de l'exécution d'un round consiste à une permutation fixe sur le bloque de 32
bits.
Fondamental
La fonction d'extension, Sbox et la permutation du round assurent la propriété Diffusion (voir chapitre
1). Ces trois fonctionnalités assurent qu'après 5 rounds, le changement d'un seul bit dans le texte clair
affectera tout le bloque)
10
Génération de clés
Génération de clés
III
Pour le chiffrement et déchiffrement, les 16 clés dérivées doivent être générés en premier (une clé pour
chaque round).
1. La première étape (PC -1 = Permuted Choice) consiste à enlever les 8 bits de parité de la clé
primaire de 64 bits et de permuter les positions des 56 bits restants. Cette table de sélection est
définie d'une manière fixe.
2. Le bloque de 56 bits en résultat est divisé en deux parties de 28 bits C 0 et D0.
3. A chaque itération les deux parties de la clé sont décalés par un ou deux bits à gauche (décalés
par un bit dans round 1,2,9, et 16, décalés par 2 bits dans tous les autres itérations)
4. Après la fin de décalage, la clé est passée en entré de ( PC -2 = Permuted Choice) qui prend 48
bits des 56 bit (Ci + Di). Cette table de sélection est fixe comme PC1
11
Génération de clés
12
Génération de clés
13