Vous êtes sur la page 1sur 29

Data Encryption Standard:

DES
19:51:05 1
Description de DES
• Approuvé en tant que standard de chiffrement
aux États-Unis en 1976, après deux appels à
candidature (en 1973 et 1974).

• «Amélioré» par la NSA en cours de processus


(au niveau de la conception des S-boxes).
• Utilise des blocs de taille n = 64 bits.

• Utilise une clef de taille 56 bits.

• Basé sur le principe d’un réseau de Feistel.


19:51:05 2
Description des réseaux de Feistel

19:51:05 3
Description des réseaux de Feistel
• La taille de bloc doit être paire, on divise le
bloc en deux: m=(L0, R0).
• r tours.
• Chaque tour transforme (Li-1, Ri-1) en (Li, Ri) où:
• Li=Ri-1
• Ri=Li-1 ⊕ f(Ri-1,ki)
• La sortie est (Lr, Rr)

19:51:05 4
Description de DES:
schéma général

19:51:05 6
Description de DES: schéma général

19:51:05 7
Description de DES: permutation
• la transformation IP et la transformation
inverse IP-1 sont des permutations définies par
les tableaux ci-dessous :

• La signification de IP est que le 58ème bit devient le 1er bit, le


50ème devient le 2ème, et ainsi de suite.

• De même pour IP-1, le premier bit du résultat est le bit 40, le


deuxième bit du résultat est le bit 8, etc.
19:51:05 8
Description de DES: détails
• Une permutation initiale, IP est appliquée sur
les 64 bits du bloc.
• La permutation inverse est appliquée à la fin
du chiffrement.
• 16 clefs de rondes K1,…,K16 de 48 bits chacune
sont déduites des 56 bits de la clef principale.

• Pour chaque ronde du réseau de Feistel, on


utilise la fonction f(Ri-1,ki)=P(S(E(Ri-1)+ki)) où:
– E est une expansion fixée de 32 bits vers 48 bits,
– S est composé de 8 applications fixées de 6 bits
19:51:05 vers 4 bits, appelées S-boxes. 9
Description de DES: fonction f

19:51:05 10
Description de DES: fonction f
• Cette fonction f fait intervenir:
– l'opération E qui transforme un bloc de 32 bits en
un bloc de 48 bits,

– les opérations S1 à S8 qui transforment des


groupes de 6 bits en groupes de 4 bits,

– la permutation P qui agit sur un bloc de 32 bits.

19:51:05 11
Description de DES: fonction f

• Le 1er bit de E(R) est le bit 32, le 2ème est le bit 1,


etc.

• la permutation P, le 1er bit est le bit 16, le 2ème le


19:51:05 12
Description de DES: S-Boxes

19:51:05 13
Description de DES: S-Boxes

19:51:05 14
Description de DES: S-Boxes

19:51:05 15
DES: fonctionnement des S-Boxes
Exemple : Supposons que le texte à transformer soit
101100 à l'entrée de S1.

• On sépare le premier bit (1) et le dernier bit (0) que


l'on concatène (10 soit 2 en décimal) ;
• Les quatres bits restant constituent le nombre 0110,
soit 6 en décimal.
• A l'intersection de la ligne 2 et de la colonne 6 de la
matrice S1, on obtient 2, soit sur 4 bits, 0010.
• Ainsi 101100 se transforme en 0010

19:51:05 16
DES: procédé de diversification de
clés
• Étant donné les 64 bits de K, on enlève les bits
de parité et l'on ordonne les autres suivant
une permutation PC-1.
1. On note C0D0 =PC-1(K) où C0 est composée
des 28 premiers bits de PC-1(K) et D0 des 28
restants.
2. Pour i compris entre 1 et 16, on calcule
– Ci = LSi(Ci-1)
– Di = LSi(Di-1) où LSi est une rotation circulaire.
– Ki = PC-2(CiDi).
19:51:05 17
DES: procédé de diversification de clés
• A

19:51:05 18
DES: procédé de diversification de
clés
• Les clés sont produites sur 48 bits, à partir de
la clé de départ K, suivant un processus faisant
intervenir les permutations PC-1 et PC-2 :

19:51:05 19
DES: procédé de diversification de
clés
• les décalages à gauche sont circulaires : le bit
sortant à gauche est réintroduit à droite.

• Toutefois, le décalage est effectué une fois ou


deux fois suivant les clés suivant le tableau ci-
dessous :
Numéro 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
de clé
Nombre de 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
décalages

19:51:05 20
DÉCHIFFREMENT (DES)

19:51:05 21
DES: génération des sous-clés
pour le déchiffrement
• Il faut noter que C0 =C16 et D0 = D16. Donc, k16 peut être
obtenu après la permutation PC−1.
k16 = PC−2(C16,D16)
= PC−2(C0,D0)
= PC−2(PC−1(k))

• Pour calculer k15, on aura besoin des variables intermédiaires


C15 et D15, qui peuvent être obtenues à partir de C16, D16 en
utilisant un décalage circulaire à droite (RS):
k15 = PC−2(C15,D15)
= PC−2(RS2(C16),RS2(D16)) où RS2 est un décalage à droite
= PC−2(RS2(C0),RS2(D0))

19:51:05 22
DES: génération des sous-clés
pour le déchiffrement
• Les sous-clés k14, k13,…,k1 sont obtenues par
un décalage à droite circulaire de façon
similaire à celui utilisé pour la k15.

• Dans le 1er tour de déchiffrement, la clé k1 ne


soumit à aucun décalage.

• Dans le 2ème, 9ème et 16ème tours de


déchiffrement, les deux parties des sous-clés
soumettent à un seul décalage à droite
circulaire.
19:51:05 23
DES: génération des sous-clés
pour le déchiffrement

19:51:05 24
Déchiffrement :DES (1/2)
• La procédure de déchiffrement se fait tour par
tour:
– Le 1er tour de déchiffrement déchiffre le 16ème
tour de la procédure de chiffrement,

– Le 2ème tour déchiffre le 15ème tour de chiffrement


et ainsi de suite.

19:51:05 25
Déchiffrement :DES (1/2)

19:51:05 26
Déchiffrement :DES(2/2)

19:51:05 27
Déchiffrement :DES(2/2)
• Il faut noter que les deux parties du chiffré, L16
et R16, dans le 16ème tour sont permutées.
• Selon le schéma de déchiffrement précédent
on a:
– (Ld0,Rd0)= IP(Y)= IP(IP−1(R16,L16))
– = (R16,L16)
D’où:
– Ld0 = R16
– Rd0 = L16 = R15
• Maintenant, on va exprimer la sortie (Ld1,Rd1)
du 1er tour de déchiffrement en fonction de la
sortie, (L15,R15) , du dernier tours de
19:51:05 28
Déchiffrement :DES(2/2)
– Rd1 = Ld0 ⊕ f (Rd0,k16)= R16 ⊕ f (L16,k16)
– Rd1 =[L15 ⊕ f (R15,k16)]⊕ f (R15,k16)
– Rd1 = L15 ⊕[ f (R15,k16)⊕ f (R15,k16)] = L15

• Après le 1er tour de déchiffrement nous avons


trouvé les mêmes valeurs d’entré de la
dernière itération de chiffrement.
• Le processus est itératif et continue jusqu’au
15ème tour de décodage et on peut écrire:
– Ldi= R16−i,
– Rdi= L16−i où i = 0,1,...,16.
– En particulier, après la dernier tour de
19:51:05 29
d
Critique de DES
• La critique du DES est de nos jours aisée car la
clé de 64 (en fait 56 bits) est trop courte et on
peut la deviner par essais successifs de
combinaisons de 56 bits. (il faut quand même
du temps, mais les ordinateurs sont de plus en
plus performants.).
• Démonstration de John Gilmore (janvier 1999)
: on peut trouver la clé DES avec une machine
coûtant 250.000 $ en 22h et 15 min.

• DES tend à être remplacé par d'autres


19:51:05 30