Rechnernetze
Home Nach oben Stichworte

Triple DES

Zur Erhöhung der Sicherheit kann der 56 Bit lange Schlüssel des DES-Verfahrens vergrößert werden, indem das DES-Verfahren mit einem weiteren Schlüssel auf den Chiffre-Text der ersten Verschlüsselung angewendet wird. Das Ergebnis ist eine mit zwei unabhängigen Schlüsseln gesicherte Chiffre, also mit 112 Bit-Schlüsseln. 

Gegen derart einfache Produktchiffren gibt es einen Angriff, der als Meet-in-the-Middle bezeichnet wird. Wir betrachten zwei Chiffren A und B, die nacheinander ausgeführt werden, mit jeweils M bzw. N verschiedenen Schlüsseln. Gegeben sei außerdem zu einem Klartext der zugehörige Chiffretext. Der Angreifer berechnet zu gegebenem Klartext zu allen M ersten Schlüsseln mit der Chiffre A die Zwischenwerte und speichert diese; der Aufwand ist O(M). Das gleiche kann er für das zweite Chiffreverfahren B machen, wobei er dessen Umkehrung verwendet mit dem Chiffretext als Eingabe; der Aufwand hierfür ist O(N). Jetzt lassen sich die beiden Listen mit einem Aufwand log(M)*M bzw. log(N)*N sortieren und mit einem Aufwand von O(N+M) vergleichen und gleiche Elemente finden. Die Schlüssel zu solchen gleichen Elementen sind dann offenbar die Schlüssel der Produktchiffre. Der Gesamtaufwand ist O(2*(M+N+log(M)*M+log(N)*N)), wobei allerdings die nicht unerhebliche  Speichplatzkomplexität von O(N+M) noch hinzuzurechnen ist.

Der gesamte Aufwand zur Dechiffrierung des doppelten DES ist wegen N=M=256 dann O(2*(2*M+log(M)*M)) = O(2*(257+56*256)) = O(116*256). Für das doppelte DES-Verfahren ist der Aufwand zur Dechiffrierung also nur das 116-fache des einfachen DES-Verfahrens, und nicht wie erwartet das 256-fache.

Aus diesem Grunde verwendet man ein dreifaches DES-Verfahren, welches einen derartigen Angriff nicht zulässt. Dazu werden zwei Schlüssel k1 und k2 auf drei Chiffrierverfahren angewendet:

Chiffretext = Ek1Dk2Ek1(Klartext)

Klartext    = Dk1Ek2Dk1(Chiffretext )

wobei E für das Verschlüsseln, D für das Entschlüsseln mit DES steht. Die etwas eigenartige Reihenfolge scheint lediglich (von IBM) eingeführt worden zu sein, um bei gleichen Schlüsseln das einfache DES-Verfahren einsetzen zu können.

Das Triple-DES wird u.a. auch in verschiedenen Standards wie dem HBCI (home banking computer interface) verwendet.

Es sei darauf hingewiesen, dass auch gegen dieses Verfahren Angriffstechniken entwickelt wurden, deren Aufwand gegenüber dem Brute-Force-Angriff deutlich verringert ist. Bruce Schneier empfiehlt in seinem Buch "Angewandte Kryptographie" die Verwendung von drei verschiedenen Schlüsseln; das entstehende Verfahren ist so sicher wie man es bei doppelter Verschlüsselung erwartet.

Eine weitere Variante wurde von Knudsen vorgeschlagen. Man berechnet die drei verschiedenen Schlüssel K1, K2, K3 aus den beiden gegebenen X1 und X2:

K1 = EX1(DX2(EX1(T1)))
K2 = EX1(DX2(EX1(T2)))
K3 = EX1(DX2(EX1(T3)))

wobei T1, T2, T3 bekannte Konstanten sein können. Dieses Verfahren soll so sicher wie ein Klartextangriff sein.