Pourquoi n'utilise-t-on pas le double DES?
Lorsqu'à la fin des années 1990, le DES a paru définitivement trop faible pour résister à une attaque exhaustive, la solution provisoire adoptée a été le triple DES, 3 applications successives du DES avec 2 clés différentes (ce qui donne en tout une clé de 512 bits) :
Cela peut sembler tout de même un peu étrange : puisqu'on n'utilise que deux clés, pourquoi effectuer 3 tours du DES? Il se trouve que le double DES ne résite pas à l'attaque par le milieu!
Supposons qu'Alice envoie à Bob le message M en utilisant le double DES. Elle transmet C=f2(f1(M)), où f1 correspond au DES pour la clé K1, f2 correspond au DES pour la clé K2. Si Gilles intercepte la communication, et connait M et C, voici comment il peut procéder pour retrouver K1 et K2. Il établit deux listes de 256 messages :
L1={fK(M); K clé},  L2={fK-1(C); K clé}.
Il cherche ensuite dans les 2 listes un élément commun. Si R=fK3(M)=fK4-1(C), c'est que fK4(fK3(M))=C : Gilles a probablement retrouvé K3=K1 et K4=K1.
Calculons le temps que celui lui aura pris. Pour générer les 2 listes, il lui faut environ 256 opérations (puisqu'il y a 256 éléments à produire). Maintenant, quand on a deux listes de m éléments, il faut en moyenne O(mlog m) opérations pour trouver un élément en commun (ou affirmer qu'il n'y en a pas). Ici, il faut donc environ O(256log(256)) opérations, ce qui est plus petit que 262. L'utilisation de deux clés de 56 bits ne conduit finalement qu'à une sécurité comparable à celle d'une clé de 62 bits, et non 112 bits comme escompté. Moralité : il faut se méfier d'une prétendue taille de clé!
Et encore, dans la cryptographie expliquée...
|