Data Encryption Standard
DES | |
---|---|
![]() | |
Entwickler | IBM |
Veröffentlicht | 1975 |
Abgeleitet von | Lucifer |
Zertifizierung | als FIPS PUB 46 durch NBS |
Schlüssellänge | 56 Bit |
Blockgröße | 64 Bit |
Struktur | Feistelchiffre |
Runden | 16 |
Beste bekannte Kryptoanalyse | |
Bester analytischer Angriff ist die lineare Kryptoanalyse mit 243 bekannten Klartextblöcken. Brute-Force-Angriffe finden den verwendeten Schlüssel nach wenigen Stunden. |
Der Data Encryption Standard (DES; deutsch „Datenverschlüsselungsstandard“) ist ein weit verbreiteter symmetrischer Verschlüsselungsalgorithmus, eine sogenannte Blockchiffre.
Der DES-Algorithmus wurde als offizieller Standard für die US-Regierung (siehe FIPS 46) im Jahr 1977 bestätigt und wird seither international vielfach eingesetzt. Seine Entstehungsgeschichte hat wegen der Beteiligung der NSA am Design des Algorithmus immer wieder Anlass zu Spekulationen über seine Sicherheit gegeben. DES wurde schon kurz nach seiner Veröffentlichung aufgrund der verwendeten Schlüssellänge von nur 56 Bits als nicht ausreichend sicher erachtet.
Die Schlüssellänge kann durch Mehrfachanwendung des DES jedoch auf einfache Weise vergrößert werden. Als Triple-DES, auch als TDES, 3DES oder DESede bezeichnet, wird der DES weiterhin am häufigsten, zum Beispiel von Banken in Chipkartenanwendungen, eingesetzt, obwohl der TDES als offizieller Standard für die USA durch den Advanced Encryption Standard (AES) abgelöst wurde.
Geschichte
Zu Beginn der 1970er-Jahre war zwar die militärische Kryptologie auf einem hohen Niveau, für nichtmilitärische Anwendungen waren jedoch kaum brauchbare Produkte verfügbar. Das National Bureau of Standards (NBS) der USA – heute National Institute of Standards and Technology (NIST) – sah Bedarf für einen einheitlichen Standard für die behördenübergreifende Verschlüsselung vertraulicher Daten. Nach Beratungen mit der NSA veröffentlichte es am 15. Mai 1973 im Federal Register eine Ausschreibung. Insbesondere sollte die Sicherheit des Algorithmus nach Kerckhoffs’ Prinzip nur von der Geheimhaltung des Schlüssels, nicht aber von der Geheimhaltung des Algorithmus abhängen. Keiner der eingereichten Kandidaten erfüllte jedoch die gestellten Bedingungen, was zu einer neuerlichen Ausschreibung am 27. August 1974 führte.
IBM lieferte einen vielversprechenden Vorschlag, der auf einer Weiterentwicklung des wenige Jahre zuvor unter der Mitarbeit von Horst Feistel entwickelten Algorithmus „Lucifer“ beruhte. Dieser Algorithmus zeichnete sich dadurch aus, dass er einfache logische Operationen auf kleinen Bitgruppen nutzte und dadurch leicht in Hardware implementierbar war. Neben Feistel selbst waren auch Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith und Bryant Tuckerman Mitglieder des IBM-Entwicklungsteams.
Die Rolle der NSA
NBS und IBM beschlossen eine Kooperation mit Unterstützung der National Security Agency (NSA). Welchen Einfluss die NSA auf die Entwicklung des Algorithmus hatte, ist umstritten. Vor allem die Schlüssellänge von 56 Bits und das Design der für Substitution zuständigen „S-Boxen“ gab Anlass zu Spekulation über mögliche Hintertüren, die eventuell durch die NSA eingeführt wurden. Nach eigenen Angaben stärkte die NSA die S-Boxen gegen differentielle Kryptoanalyse, wollte aber gleichzeitig die Schlüssellänge auf 48 Bits beschränken, während IBM 64 Bits wollte. Als Kompromiss einigten sich NSA und IBM auf eine Schlüssellänge von 56 Bits.[1]
Am 17. März 1975 wurde der Algorithmus im „Federal Register“ veröffentlicht. Die NBS bat zudem um öffentliche Stellungnahme. Im folgenden Jahr wurden zwei Workshops zum vorgeschlagenen Standard abgehalten. Durch die unklare Rolle der NSA zogen die Veränderungen des Algorithmus von verschiedenen Seiten Kritik auf sich, unter anderem von den Pionieren asymmetrischer Kryptosysteme Martin Hellman und Whitfield Diffie. Es wurde gemutmaßt, die NSA habe eine Hintertür eingebaut, welche das Verfahren dergestalt schwächt, dass sie damit verschlüsselte Nachrichten lesen konnte. Alan Konheim, einer der DES-Entwickler, gab an, die S-Boxen nach Washington gesendet und stark verändert wiedererhalten zu haben.[2]
Ein nachrichtendienstliches Komitee des US-Senats untersuchte die Einflussnahme des NSA. In der nicht als Verschlusssache gehandhabten Zusammenfassung des Berichts gaben sie 1978 an:[3]
“In the development of DES, NSA convinced IBM that a reduced key size was sufficient; indirectly assisted in the development of the S-box structures; and certified that the final DES algorithm was, to the best of their knowledge, free from any statistical or mathematical weakness. […]
NSA did not tamper with the design of the algorithm in any way. IBM invented and designed the algorithm, made all pertinent decisions regarding it, and concurred that the agreed upon key size was more than adequate for all commercial applications for which the DES was intended.”
„Während der Entwicklung von DES überzeugte die NSA IBM davon, dass eine reduzierte Schlüssellänge ausreichend sei; half indirekt bei der Konstruktion der S-Boxen; und zertifizierte den entstehenden DES-Algorithmus als nach bestem Gewissen frei von statistischen und mathematischen Schwächen. […]
Die NSA veränderte das Design des Algorithmus in keiner Weise. IBM entwarf und entwickelte diesen, traf alle sachdienlichen Entscheidungen und stimmte darin überein, dass die verkürzte Schlüssellänge mehr als adäquat für die vorgesehenen kommerziellen Verwendungen sei.“
Walter Tuchman, ein weiterer DES-Entwickler, wird mit den Worten zitiert “We developed the DES algorithm entirely within IBM using IBMers. The NSA did not dictate a single wire!” (deutsch: „Wir haben den DES-Algorithmus vollständig innerhalb von IBM unter Nutzung von IBMern entwickelt. Die NSA hat nicht ein einziges Memo diktiert!“).[4]
Durch die Veröffentlichung der differentiellen Kryptoanalyse durch Adi Shamir und Eli Biham im Jahr 1990 wurden einige der Befürchtungen einer Hintertür aus dem Wege geräumt. DES zeigte sich durch die Gestaltung der S-Boxen deutlich widerstandsfähiger gegen diese generische Angriffsmethode, als dies bei einer zufälligen Anordnung der Fall gewesen wäre.[5] 1994 veröffentlichte Don Coppersmith die ursprünglichen Designkriterien für die S-Boxen.[6] Es zeigte sich, dass IBM die differentielle Kryptoanalyse bereits in den 1970er Jahren entdeckt hatte und nach Umgestaltung der S-Boxen von der NSA zur Geheimhaltung instruiert worden war.
Coppersmith erklärte “that was because [differential cryptanalysis] can be a very powerful tool, used against many schemes, and there was concern that such information in the public domain could adversely affect national security.” (deutsch: „dies geschah, da die [differentielle Kryptoanalyse] ein mächtiges Werkzeug gegen viele Verfahren sein kann und es Bedenken gab, die nationale Sicherheit könne durch eine Veröffentlichung gefährdet werden.“).[7]
Shamir selbst kommentierte “I would say that, contrary to what some people believe, there is no evidence of tampering with the DES so that the basic design was weakened.” (deutsch: „Anders als manche glauben, sehe ich selbst keine Hinweise auf Manipulation von DES, welche das grundlegende Design geschwächt hat.“)
Die Kritik an der Länge des Schlüssels blieb jedoch bestehen und wurde durch die Begründung der NSA, 8 der 64 Schlüsselbits könnten als Paritätsbits verwendet werden, noch weiter gestützt. Es wird weithin vermutet, dass die Reduzierung der NSA die Möglichkeit eines Angriffs mit der Brute-Force-Methode schaffen sollte.
Heute gilt der DES aufgrund seiner geringen Schlüssellänge als nicht mehr sicher genug. Durch die Mehrfachanwendung des DES mit unterschiedlichen Schlüsseln wie zum Beispiel beim TDES kann die effektive Schlüssellänge erhöht werden.
Wissenschaftliche Untersuchungen haben mittlerweile erwiesen, dass DES trotz seiner Schlüssellänge von nur 56 Bits sicherer ist als der Lucifer-Algorithmus mit seinen 128 Bits.[8]
Standardisierung
DES wurde als Standard für alle amerikanischen Bundesbehörden zugelassen und am 15. Januar 1977 als FIPS PUB 46 publiziert; verpflichtend für sie wurde er sechs Monate später. Der Standard enthielt die Auflage, alle fünf Jahre neu bestätigt werden zu müssen. Weiterhin befasste sich die Internationale Organisation für Normung (ISO) mit dem Algorithmus unter der Bezeichnung Data Encipherment No. 1 (DEA1).
1981 wurde der DES-Algorithmus vom American National Standards Institute (ANSI) als Standard für den privaten Sektor anerkannt.
Bereits Anfang der 1990er Jahre äußerten Kryptographen erste Zweifel, ob der DES-Algorithmus noch als sicher anzusehen sei. Zum einen hatte sich die Hardware im Vergleich zu 1970 stark weiter entwickelt, zum anderen glaubte man auch Schwächen im Algorithmus zu erkennen. 1994 wurde ein theoretischer Angriff mittels linearer Kryptoanalyse publiziert. Mitte 1998 führte die Electronic Frontier Foundation (EFF) einen erfolgreichen Angriff über die Brute-Force-Methode durch. Die Gesellschaft baute hierzu eine spezielle Hardware mit insgesamt über 1800 Mikroprozessoren[9] und konnte mit dieser einen Schlüssel in weniger als drei Tagen brechen. Die Arbeiten am Nachfolgestandard AES hatten zu diesem Zeitpunkt schon begonnen. Am 26. Mai 2002 wurde DES schließlich durch AES ersetzt.
Die Einführung von DES gilt als Auslöser einer Vielzahl kryptographischer Studien, besonders solcher, die sich mit dem Angriff auf Blockchiffrierungen befassen. Bruce Schneier schreibt in seinem Buch Angewandte Kryptographie:
„Inoffiziell bezeichnete die NSA den DES als einen ihrer größten Fehler. Hätte die Behörde gewußt, daß die Einzelheiten herausgegeben und Softwareimplementierungen möglich wurden, hätte sie niemals zugestimmt. Mehr als alles andere revolutionierte DES die gesamte Kryptoanalyse. Jetzt gab es einen Algorithmus, den man untersuchen konnte – sogar einen, den die NSA als sicher bezeichnete.“[10]
Chronologie
Datum | Ereignis | |
---|---|---|
15. Mai | 1973 | Das NBS veröffentlicht eine erste Ausschreibung für ein standardisiertes Verschlüsselungsverfahren |
27. August | 1974 | Das NBS veröffentlicht eine zweite Ausschreibung für ein standardisiertes Verschlüsselungsverfahren |
17. März | 1975 | DES wird im „Federal Register“ veröffentlicht |
August | 1976 | Erster Workshop zu DES |
September | 1976 | Zweiter Workshop, welcher die mathematischen Grundlagen von DES behandelt |
November | 1976 | DES wird als Standard zugelassen |
15. Januar | 1977 | DES wird als FIPS-Standard „FIPS PUB 46“ veröffentlicht |
Juni | 1977 | Diffie und Hellman argumentieren, dass DES per brute force geknackt werden kann[11] |
1983 | DES wird das erste Mal neu bestätigt | |
1986 | Videocipher II, ein auf DES basierendes Verschlüsselungssystem für Fernsehsatelliten wird von der HBO verwendet | |
22. Januar | 1988 | DES wird als „FIPS 46-1“ revalidiert, welches FIPS PUB 46 ersetzt |
1992 | Biham und Shamir publizieren den ersten theoretischen Angriff mit gegenüber der Brute-Force-Methode verminderter Komplexität: die differentielle Kryptanalyse. Dieser Angriff erfordert jedoch unrealistische 247 frei gewählte Klartexte. | |
30. Dezember | 1993 | DES wird ein drittes Mal bestätigt, diesmal als „FIPS 46-2“ |
1994 | Die erste experimentelle Kryptoanalyse von DES wird mittels linearer Kryptoanalyse durchgeführt (Matsui, 1994) | |
Juni | 1997 | Das DESCHALL-Projekt bricht erstmals öffentlich eine mit DES verschlüsselte Nachricht |
Juli | 1998 | Der DES-Knacker „Deep Crack“ der Electronic Frontier Foundation bricht einen DES-Schlüssel binnen 56 Stunden |
Januar | 1999 | Deep Crack und distributed.net brechen in einer Kooperation einen DES-Schlüssel in 22 Stunden und 15 Minuten |
25. Oktober | 1999 | DES wird ein viertes Mal in Gestalt des „FIPS 46-3“ bestätigt. Dieser gibt als bevorzugte Anwendung 3DES an und erlaubt DES selbst nur für den Einsatz in veralteten Systemen |
26. November | 2001 | Der Advanced Encryption Standard (AES) wird als „FIPS 197“ publiziert |
26. Mai | 2002 | Der AES tritt in Kraft |
26. Juli | 2004 | Im „Federal Register“ wird die Absetzung des FIPS 46-3 und verwandter Standards empfohlen |
19. Mai | 2005 | NIST setzt den FIPS 46-3 außer Kraft |
März | 2006 | Der FPGA-basierte Parallelrechner COPACOBANA kostet weniger als 10.000 Dollar (Materialkosten) und bricht DES in weniger als 9 Tagen |
Nov. | 2008 | Die Weiterentwicklung des FPGA-basierten Parallelrechners COPACOBANA, die RIVYERA, bricht DES erstmals in weniger als einem Tag |
Funktionsweise
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/DES_resize.png/300px-DES_resize.png)
Bei DES handelt es sich um einen symmetrischen Algorithmus, das heißt zur Ver- und Entschlüsselung wird derselbe Schlüssel verwendet. DES funktioniert als Blockchiffre, jeder Block wird also unter Verwendung des Schlüssels einzeln chiffriert, wobei die Daten in 16 Iterationen beziehungsweise Runden von Substitutionen und Transpositionen (Permutation) nach dem Schema von Feistel „verwürfelt“ werden. Die Blockgröße beträgt 64 Bits, das heißt ein 64-Bit-Block Klartext wird in einen 64-Bit-Block Chiffretext transformiert. Auch der Schlüssel, der diese Transformation kontrolliert, besitzt 64 Bits. Jedoch stehen dem Benutzer von diesen 64 Bits nur 56 Bits zur Verfügung; die übrigen 8 Bits (jeweils ein Bit aus jedem Byte) werden zum Paritäts-Check benötigt. Die effektive Schlüssellänge beträgt daher nur 56 Bits. Die Entschlüsselung wird mit dem gleichen Algorithmus durchgeführt, wobei die einzelnen Rundenschlüssel in umgekehrter Reihenfolge verwendet werden.
Auf den 64-Bit-Block wird eine initiale Permutation angewandt. Danach wird der Block in zwei Teile aufgeteilt und jeder Teil in ein 32-Bit-Register gespeichert. Die beiden Blockhälften werden in Folge als linke und rechte Hälfte (siehe Skizze) bezeichnet. Auf die rechte Blockhälfte wird die Feistel-Funktion angewandt. Danach wird die rechte Hälfte mit der linken Hälfte XOR verknüpft und das Ergebnis im Register der nächsten Runde für die rechte Hälfte gespeichert. In das linke Register der nächsten Runde wird die ursprüngliche rechte Blockhälfte kopiert. Nach Ende der letzten Runde werden die beiden Hälften vertauscht zusammengeführt und eine finale Permutation durchgeführt. Dabei handelt es sich um die inverse Permutation zur initialen Permutation.
Betriebsmodi
Der DES-Algorithmus beschreibt zunächst nur, wie ein Datenblock mit 64 Bits verarbeitet wird. Zur Verarbeitung einer Nachricht beliebiger Länge lässt sich der DES wie auch jede andere Blockchiffre in verschiedenen Betriebsmodi verwenden. Für bestimmte Betriebsmodi, wie zum Beispiel ECB oder CBC, ist ein Auffüllen des Klartextes auf ein Vielfaches der vollen Blocklänge notwendig (Padding). Dies geschieht, indem die Bitfolge 1000… angehängt wird.
Die Feistel-Funktion
Die F-Funktion von DES arbeitet auf Halbblöcken zu je 32 Bits und besteht aus vier Phasen:[12]
- Die R-Blöcke werden mittels einer geeigneten Permutation E (Expansion) auf 48 Bits Länge expandiert, indem einzelne Bits mehrfach verwendet werden.
- Das Ergebnis wird mit einem Teilschlüssel XOR-verknüpft. Für jede Runde wird hierzu nach einer festen Vorschrift ein anderer 48-Bit-Teilschlüssel aus dem Hauptschlüssel generiert.
- Die resultierenden Blöcke werden in acht 6-Bit-Stücke zerteilt und diese mittels Substitution durch S-Boxen auf eine Länge von 4 Bits komprimiert. Diese nicht-lineare Transformierung in den S-Boxen stellt das Herzstück der Sicherheit von DES dar, ohne sie wäre DES linear und trivial zu brechen.
- Die 32 Bits Ausgabe der S-Boxen werden mittels einer festen Permutation P rearrangiert.
Diese Kombination aus Permutationen und Substitutionen entspricht dem von Claude Shannon aufgestellten Prinzip der Diffusion und Konfusion.
Die Expansion
Um den Halbblock in der Feistel-Funktion von 32 Bits auf 48 Bits zu erweitern, wird der Halbblock in 4-Bit-Gruppen aufgeteilt. Die Bits am Rand jeder 4-Bit-Gruppe werden vorn, beziehungsweise hinten an die benachbarte 4-Bit-Gruppe angehängt.[13]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Des_expansion.svg/640px-Des_expansion.svg.png)
Die Substitution
Die Substitutionsboxen (S-Boxen) beim DES sind standardisiert. Um aus den folgenden Tabellen den Ausgabewert zu erhalten, wird der Eingabewert gesplittet. So bildet das erste und letzte Bit zusammen die Zeile, und die Spalte ergibt sich aus den übrigen Bits (siehe Beispiel).[14] Eine Änderung dieser Boxen reduziert die Sicherheit drastisch! Daher sollten die folgenden Tabellen für die Substitutionsboxen verwendet werden:
S1 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 1110 | 0100 | 1101 | 0001 | 0010 | 1111 | 1011 | 1000 | 0011 | 1010 | 0110 | 1100 | 0101 | 1001 | 0000 | 0111 |
01 | 0000 | 1111 | 0111 | 0100 | 1110 | 0010 | 1101 | 0001 | 1010 | 0110 | 1100 | 1011 | 1001 | 0101 | 0011 | 1000 | |
10 | 0100 | 0001 | 1110 | 1000 | 1101 | 0110 | 0010 | 1011 | 1111 | 1100 | 1001 | 0111 | 0011 | 1010 | 0101 | 0000 | |
11 | 1111 | 1100 | 1000 | 0010 | 0100 | 1001 | 0001 | 0111 | 0101 | 1011 | 0011 | 1110 | 1010 | 0000 | 0110 | 1101 |
S2 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 1111 | 0001 | 1000 | 1110 | 0110 | 1011 | 0011 | 0100 | 1001 | 0111 | 0010 | 1101 | 1100 | 0000 | 0101 | 1010 |
01 | 0011 | 1101 | 0100 | 0111 | 1111 | 0010 | 1000 | 1110 | 1100 | 0000 | 0001 | 1010 | 0110 | 1001 | 1011 | 0101 | |
10 | 0000 | 1110 | 0111 | 1011 | 1010 | 0100 | 1101 | 0001 | 0101 | 1000 | 1100 | 0110 | 1001 | 0011 | 0010 | 1111 | |
11 | 1101 | 1000 | 1010 | 0001 | 0011 | 1111 | 0100 | 0010 | 1011 | 0110 | 0111 | 1100 | 0000 | 0101 | 1110 | 1001 |
S3 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 1010 | 0000 | 1001 | 1110 | 0110 | 0011 | 1111 | 0101 | 0001 | 1101 | 1100 | 0111 | 1011 | 0100 | 0010 | 1000 |
01 | 1101 | 0111 | 0000 | 1001 | 0011 | 0100 | 0110 | 1010 | 0010 | 1000 | 0101 | 1110 | 1100 | 1011 | 1111 | 0001 | |
10 | 1101 | 0110 | 0100 | 1001 | 1000 | 1111 | 0011 | 0000 | 1011 | 0001 | 0010 | 1100 | 0101 | 1010 | 1110 | 0111 | |
11 | 0001 | 1010 | 1101 | 0000 | 0110 | 1001 | 1000 | 0111 | 0100 | 1111 | 1110 | 0011 | 1011 | 0101 | 0010 | 1100 |
S4 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 0111 | 1101 | 1110 | 0011 | 0000 | 0110 | 1001 | 1010 | 0001 | 0010 | 1000 | 0101 | 1011 | 1100 | 0100 | 1111 |
01 | 1101 | 1000 | 1011 | 0101 | 0110 | 1111 | 0000 | 0011 | 0100 | 0111 | 0010 | 1100 | 0001 | 1010 | 1110 | 1001 | |
10 | 1010 | 0110 | 1001 | 0000 | 1100 | 1011 | 0111 | 1101 | 1111 | 0001 | 0011 | 1110 | 0101 | 0010 | 1000 | 0100 | |
11 | 0011 | 1111 | 0000 | 0110 | 1010 | 0001 | 1101 | 1000 | 1001 | 0100 | 0101 | 1011 | 1100 | 0111 | 0010 | 1110 |
S5 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 0010 | 1100 | 0100 | 0001 | 0111 | 1010 | 1011 | 0110 | 1000 | 0101 | 0011 | 1111 | 1101 | 0000 | 1110 | 1001 |
01 | 1110 | 1011 | 0010 | 1100 | 0100 | 0111 | 1101 | 0001 | 0101 | 0000 | 1111 | 1010 | 0011 | 1001 | 1000 | 0110 | |
10 | 0100 | 0010 | 0001 | 1011 | 1010 | 1101 | 0111 | 1000 | 1111 | 1001 | 1100 | 0101 | 0110 | 0011 | 0000 | 1110 | |
11 | 1011 | 1000 | 1100 | 0111 | 0001 | 1110 | 0010 | 1101 | 0110 | 1111 | 0000 | 1001 | 1010 | 0100 | 0101 | 0011 |
S6 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 1100 | 0001 | 1010 | 1111 | 1001 | 0010 | 0110 | 1000 | 0000 | 1101 | 0011 | 0100 | 1110 | 0111 | 0101 | 1011 |
01 | 1010 | 1111 | 0100 | 0010 | 0111 | 1100 | 1001 | 0101 | 0110 | 0001 | 1101 | 1110 | 0000 | 1011 | 0011 | 1000 | |
10 | 1001 | 1110 | 1111 | 0101 | 0010 | 1000 | 1100 | 0011 | 0111 | 0000 | 0100 | 1010 | 0001 | 1101 | 1011 | 0110 | |
11 | 0100 | 0011 | 0010 | 1100 | 1001 | 0101 | 1111 | 1010 | 1011 | 1110 | 0001 | 0111 | 0110 | 0000 | 1000 | 1101 |
S7 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 0100 | 1011 | 0010 | 1110 | 1111 | 0000 | 1000 | 1101 | 0011 | 1100 | 1001 | 0111 | 0101 | 1010 | 0110 | 0001 |
01 | 1101 | 0000 | 1011 | 0111 | 0100 | 1001 | 0001 | 1010 | 1110 | 0011 | 0101 | 1100 | 0010 | 1111 | 1000 | 0110 | |
10 | 0001 | 0100 | 1011 | 1101 | 1100 | 0011 | 0111 | 1110 | 1010 | 1111 | 0110 | 1000 | 0000 | 0101 | 1001 | 0010 | |
11 | 0110 | 1011 | 1101 | 1000 | 0001 | 0100 | 1010 | 0111 | 1001 | 0101 | 0000 | 1111 | 1110 | 0010 | 0011 | 1100 |
S8 | Mittlere 4 Bits des Eingabewertes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Äußere Bits | 00 | 1101 | 0010 | 1000 | 0100 | 0110 | 1111 | 1011 | 0001 | 1010 | 1001 | 0011 | 1110 | 0101 | 0000 | 1100 | 0111 |
01 | 0001 | 1111 | 1101 | 1000 | 1010 | 0011 | 0111 | 0100 | 1100 | 0101 | 0110 | 1011 | 0000 | 1110 | 1001 | 0010 | |
10 | 0111 | 1011 | 0100 | 0001 | 1001 | 1100 | 1110 | 0010 | 0000 | 0110 | 1010 | 1101 | 1111 | 0011 | 0101 | 1000 | |
11 | 0010 | 0001 | 1110 | 0111 | 0100 | 1010 | 1000 | 1101 | 1111 | 1100 | 1001 | 0000 | 0011 | 0101 | 0110 | 1011 |
Schwächen
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/DES_Board300.jpg/220px-DES_Board300.jpg)
Weil die Schlüssellänge nur 56 Bit beträgt, konnte DES bereits durch Brute-Force-Angriffe gebrochen werden, indem systematisch alle möglichen Schlüssel (256 = ca. 72 Billiarden) getestet wurden. Es gibt die Vermutung, dass diese kleine Schlüssellänge absichtlich gewählt wurde, weil die NSA bereits in den 1970er-Jahren genug Rechnerkapazität besaß, um diese Verschlüsselung zu brechen.
Deep Crack
Die EFF baute 1998 eine etwa 250.000 Dollar teure Maschine mit dem Namen „Deep Crack“. Dieser Superrechner enthielt 1536 spezielle Krypto-Chips und konnte pro Sekunde etwa 88 Milliarden Schlüssel testen. Im Juli 1998 gelang es mit dieser Maschine, einen DES-Code in 56 Stunden zu knacken und damit die „DES Challenge II-2“ zu gewinnen, die von der Firma RSA Security ausgeschrieben worden war. 1999 gewann die gleiche Maschine die „DES Challenge III“; dazu arbeitete sie mit dem weltweiten Netzwerk von distributed.net, bestehend aus etwa 100.000 Rechnern, zusammen. Der DES-Schlüssel wurde in 22 Stunden und 15 Minuten gefunden, mehr als 245 Milliarden Schlüssel wurden pro Sekunde getestet.
COPACOBANA
Die einzige andere öffentlich bekannte Maschine zum Brechen von DES ist COPACOBANA. Sie wurde 2006 von zwei Arbeitsgruppen an den Universitäten Bochum und Kiel gebaut. Im Gegensatz zu Deep Crack besteht eine COPACOBANA aus rekonfigurierbaren Hardware-Bausteinen, sogenannten FPGAs. 120 FPGAs vom Typ Xilinx Spartan-3-1000 sind in einer Maschine auf 20 DIMM-Modulen zusammengefasst, wobei jedes DIMM-Modul sechs FPGAs enthält. COPACOBANA kann 65 Milliarden DES-Schlüssel pro Sekunde testen, woraus sich eine durchschnittliche Suchzeit von 6,4 Tagen für eine DES-Attacke ergibt. Durch den Einsatz rekonfigurierbarer Hardware kann COPACOBANA auch zum Brechen anderer Chiffren wie A5 eingesetzt werden. Die Material- und Herstellungskosten von COPACOBANA belaufen sich auf etwa 10.000 Dollar. Der Kostenvorteil gegenüber Deep Crack um einen Faktor 25 ist ein beeindruckendes Beispiel für das Mooresche Gesetz. Hiernach wäre ein Kostenvorteil von etwa 32 = 25 zu erwarten gewesen, da acht Jahre zwischen dem Bau der beiden Maschinen verstrichen sind (das Mooresche Gesetz sagt eine Halbierungen der Kosten digitaler ICs alle 1,5 Jahre voraus, so dass bei acht Jahren etwa 5 Halbierungen stattgefunden haben sollten).
Der derzeitige Rekord wurde 2008 von der Firma SciEngines GmbH (einem Spin-off der COPACOBANA-Arbeitsgruppen) aufgestellt und auf einem Workshop 2009 erneut verbessert. Mit 128 Xilinx-FPGAs lag der Durchsatz bei über 292 Milliarden Schlüsseln pro Sekunde.[15]
Geringfügige Schwächen
DES besitzt eine Komplement-Eigenschaft, das heißt, es gilt
- für alle Schlüssel und alle Klartexte ,
wobei das bitweise Komplement von bezeichnet. Dadurch lässt sich mit einem Chosen-Plaintext-Angriff bei einer vollständigen Schlüsselsuche der Suchraum auf 255 Schlüssel halbieren.
Es existieren vier schwache Schlüssel mit der Eigenschaft, dass
- für alle Klartexte .
Des Weiteren gibt es sechs semi-schwache Schlüsselpaare mit der Eigenschaft, dass
- für alle Klartexte .
In der Praxis ist dies jedoch kein Problem, da die Wahrscheinlichkeit für einen (semi-)schwachen Schlüssel bei zufälliger Auswahl eines Schlüssels nur 16:256 beträgt. Außerdem lässt sich die Verwendung dieser Schlüssel leicht vermeiden, indem sie bei der Erzeugung explizit ignoriert werden.
Anwendungen
Breite Anwendung findet der DES-Algorithmus bei Geldautomaten: Mit Hilfe des DES-Algorithmus und eines geheimen Schlüssels wird bereits in der Tastatur eine sogenannte PAC berechnet. Diese wird zusammen mit den Daten des Magnetstreifens (Kontonummer, Bankleitzahl, Gültigkeitszeitraum, …) zum Host des kontoführenden Instituts geschickt, dort wird die PIN entschlüsselt und verifiziert.
In der Anfangszeit der Geldautomaten wurde aus den Daten des Magnetstreifens (Kontonummer, Bankleitzahl, Gültigkeitszeitraum, …) und dem geheimen Schlüssel die PIN berechnet und das Ergebnis mit der Eingabe des Benutzers verglichen. Diese sogenannte Offline-PIN-Prüfung wird seit mehreren Jahren nicht mehr verwendet.
Bis zum heutigen Tage wird DES für die Sprachverschlüsselung von sicherheitskritischen Sprechfunkaussendungen verwendet. In Deutschland gehören zu den Anwendern diverse polizeiliche Sondereinheiten sowie die Verfassungsschutzbehörden des Bundes und der Länder. Verbreitet sind zu diesem Zweck Sprechfunkgeräte von Motorola aus den Modellreihen MX3000 und MTS2000. Die Sprache wird mittels Delta-Modulation digitalisiert und durch ein zertifiziertes Steckmodul im Inneren des Sprechfunkgerätes zur Verschlüsselung geschleust. Das Modul ist gegen Manipulationen geschützt, der Schlüssel ist nicht auslesbar und wird bei Manipulationsversuchen gelöscht. Auch bei Verwendung von Relaisstellen zur Reichweitenerhöhung ist das Konzept dergestalt, dass im Inneren der Relaisstelle das Signal nie unverschlüsselt vorliegt. Die Schlüsselverwaltung erfolgt entweder dezentral im direkten Zugriff auf das Gerät mit einem sog. key variable loader (KVL), oder über Funk zentral von einem key management centre per OTAR, „Over The Air Rekeying“. Für diese Anwendung ist auch DES nach heutigem Stand der Technik mehr als ausreichend sicher, sofern für jedes Einsatzgeschehen (bzw. regelmäßig während längerer Einsätze) die Schlüssel gewechselt werden, da das gesprochene Wort in solchen Anwendungsfällen nur aktuell für die Gegenseite von Bedeutung ist. Eine mögliche Entschlüsselung nach Stunden oder Tagen ist für den Einsatz in der Regel irrelevant, da dann bereits „alles gelaufen ist“. Sowohl der technisch relativ hohe Aufwand als auch das benötigte Fachwissen senkt zusätzlich die Wahrscheinlichkeit, dass tatsächlich versucht wird, die Funkkommunikation nachträglich zu entschlüsseln.
Die US-Exportbeschränkung für den DES mit voller 56-Bit-Schlüssellänge wurde aufgehoben.
Ersatz-Algorithmen
Aufgrund seiner geringen Schlüssellänge war DES bald nicht mehr ausreichend sicher und es musste ein Ersatz gefunden werden.
Triple-DES
Der erste Ersatz für DES war Triple-DES (auch 3DES oder DESede genannt). Die Idee der mehrfachen Ausführung von DES mit zwei verschiedenen Schlüsseln ist ein Verfahren, das vom DES-Mitentwickler Walter Tuchman beschrieben und analysiert wurde (siehe FIPS 46-3). Ralph Merkle und Martin Hellman schlugen nach einer weiteren Analyse 1981 die Dreifachverschlüsselung mit drei unabhängigen, voneinander verschiedenen Schlüsseln vor.[16]
Bei der am häufigsten verwendeten Methode wird jeder Datenblock mit einem DES-Schlüssel chiffriert, dann mit dechiffriert und mit chiffriert:
Dieses Verfahren wird auch als EDE (Encrypt-Decrypt-Encrypt) bezeichnet. Eine einfache DES-Verschlüsselung ist somit ein Spezialfall von 3DES:
Ein für die Verschlüsselungsstärke von 3DES wichtiges mathematisches Problem war die Frage, ob die Hintereinanderausführung von DES-Operationen die Sicherheit erhöht; dies wäre nicht der Fall, wenn DES eine Gruppe ist. Campell und Wiener fanden heraus, dass die Menge der DES-Verschlüsselungen unter Hintereinanderausführung nicht abgeschlossen ist. Das bedeutet, dass es Schlüssel und gibt, sodass für alle Schlüssel . Anders ausgedrückt ist die Anzahl der Permutationen von der Form bedeutend größer als die Zahl der -Permutationen. Damit lässt sich die effektive Schlüssellänge tatsächlich steigern. Dies konnte allerdings erst 1992 gezeigt werden.[17]
Die Schlüssellänge von 3DES ist mit 168 Bits dreimal so groß wie bei DES (56 Bits), die effektive Schlüssellänge liegt aber nur bei 112 Bits. Dies ist bedingt durch die Möglichkeit eines sogenannten Meet-in-the-middle-Angriff: Ist der Angreifer im Besitz eines Paares aus Klartext und Chiffre, so kann er die Verschlüsselung von beiden Seiten angreifen. Der Klartext wird mit sämtlichen möglichen Schlüsseln für Stufe 1 verschlüsselt (256 Möglichkeiten). Die so entstandenen Texte werden ebenfalls jeweils mit allen möglichen Schlüsseln für Stufe 2 entschlüsselt (2112 Möglichkeiten). Deren Ergebnisse vergleicht man mit den Ergebnissen der Entschlüsselung des Chiffretextes mit sämtlichen Schlüsseln (256Möglichkeiten). So müssen insgesamt nur 2112+256≈2112 Ver- bzw. Entschlüsselungen durchgeführt werden, anstatt 2168 bei Verwendung der Brute-Force-Methode.
Aufgrund dieses Missverhältnisses zwischen Schlüssellänge und effektivem Sicherheitsniveau wird oft gewählt. Dies liefert für eine Schlüssellänge von 112 Bits ein theoretisches Sicherheitsniveau von 112 Bits, da kein Meet-in-the-middle-Angriff möglich ist. Es gibt jedoch weitere Angriffe,[18] so dass 3DES mit zwei Schlüsseln vom National Institute of Standards and Technology mit einem Sicherheitsniveau von 80 Bits bewertet wird.[19]
AES
Durch einen Wettbewerb des NIST wurde im Oktober 2000 der Advanced Encryption Standard (AES) gewählt, um DES offiziell zu ersetzen. Das jetzt als AES bezeichnete Verschlüsselungsverfahren, das den Wettbewerb gewann, war von seinen belgischen Entwicklern Vincent Rijmen und Joan Daemen unter dem Namen Rijndael zu diesem Wettbewerb eingereicht worden.
3DESE – Triple DES im Bereich PPP
Die im RFC 2420[20] definierte Protokollerweiterung 3DESE (Triple-DES Encryption Protocol Extension) ermöglicht über PPP (Point-to-Point Protocol) die gewohnte Triple-DES-Verschlüsselung.
Literatur
- Bruce Schneier: Applied Cryptography. Protocols, Algorithms, and Source Code in C. 2. Auflage. John Wiley and Sons, New York NY 1996, ISBN 0-471-11709-9.
- Bruce Schneier: Angewandte Kryptographie. Protokolle, Algorithmen und Sourcecode in C. Addison-Wesley, Bonn u. a. 1996, ISBN 3-89319-854-7, S. 267 (Informationssicherheit).
- Klaus Schmeh: Codeknacker gegen Codemacher. Die faszinierende Geschichte der Verschlüsselung. 2. Auflage. W3l-Verlag, Herdecke u. a. 2008, ISBN 978-3-937137-89-6, S. 263–274.
- Dossier Kryptographie. In: Spektrum der Wissenschaft, 24, 4, 2001, S. 42–47.
Weblinks
- DES- und TripleDES-Spezifikation. (PDF; 0,4 MB) NIST (englisch).
- DES als JavaScript (inkl. Zwischenwerte des Algorithmus). eku.edu (englisch).
- Einfache Beschreibung von DES mit Grafik. chello.at
- Detaillierte Darstellung von DES. matheprisma.de
- COPACOBANA – Eine kostenoptimierte Spezialhardware zum Codeknacken der Universitäten Bochum und Kiel. copacobana.org (englisch).
- Standard Cryptographic Algorithm Naming zu DES. zetnet.co.uk
Einzelnachweise
- ↑ Tom R. Johnson: American Cryptology during the Cold War, 1945–1989. Book III: Retrenchment and Reform, S. 232. NSA, DOCID 3417193, FOIA-Veröffentlichung auf cryptome.org, 18. Dezember 2009; abgerufen am 2. Januar 2010.
- ↑ Bruce Schneier: Applied Cryptography. Protocols, Algorithms and Source Code in C. 2. Auflage. John Wiley & Sons, New York 1996, ISBN 0-471-11709-9, S. 280.
- ↑ Unclassified Summary: Involvement of NSA in the Development of the Data Encryption Standard. (PDF) United States Senate Select Committee on Intelligence, November 1978, S. 55, archiviert vom Original (nicht mehr online verfügbar) am 18. Dezember 2015; abgerufen am 6. August 2010. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.lkn.fe.uni-lj.si
- ↑ Paul Kinnucan: Data encryption gurus: Tuchman and Meyer. In: Cryptologia. Band 2, Nr. 4, Oktober 1978, S. 371–381, doi:10.1080/0161-117891853270 (informaworld.com [PDF; abgerufen am 6. August 2010]).
- ↑ Adi Shamir, Eli Biham: Differential cryptanalysis of DES-like cryptosystems. In: Journal of Cryptology. Band 4, Nr. 1, Januar 1991, S. 3–72, doi:10.1007/BF00630563 (psu.edu [PDF]).
- ↑ Don Coppersmith: The Data Encryption Standard (DES) and its strength against attacks. In: IBM Journal of Research and Development. Band 38, Nr. 3, Mai 1994, S. 243 (rub.de [PDF]).
- ↑ Don Coppersmith: The Data Encryption Standard (DES) and its strength against attacks. In: IBM Journal of Research and Development. Band 38, Nr. 3, Mai 1994, S. 247 (rub.de [PDF]).
- ↑ Eli Biham & Ishai Ben-Aroya: Differential cryptanalysis of Lucifer. In: Journal of Cryptology. Band 9, Nr. 1, März 1996, S. 21–34, doi:10.1007/BF02254790.
- ↑ cryptography.com
- ↑ Bruce Schneier: Applied Cryptography, Protocols, Algorithms, and Source Code in C. 2. Auflage. John Wiley and Sons, New York 1996, S. 267
Angewandte Kryptographie, Protokolle, Algorithmen und Sourcecode in C. Pearson Studium, 2006. - ↑ Whitfield Diffie, Martin E. Hellman: Exhaustive Cryptanalysis of the NBS Data Encryption Standard. In: Computer. 10. Jahrgang, Nr. 6, Juni 1977, S. 74–84, doi:10.1109/C-M.1977.217750 (englisch, origin-computer.org (Memento des Originals vom 26. Februar 2014 im Internet Archive)).
- ↑ Alfred H. Menezes, Paul C. van Oorschot, Scott A. Vanstone, „Handbook of Applied Cryptography“, CRC Press, 1996, ISBN 0-8493-8523-7.
- ↑ Bruce Schneier: Applied Cryptography. Protocols, Algorithms and Source Code in C. 2. Auflage. John Wiley & Sons, New York 1996, ISBN 0-471-11709-9, S. 274.
- ↑ Klaus Irmscher: DES – Data Encryption Standard. (PDF; 42 kB) Uni Leipzig, 2009, archiviert vom Original (nicht mehr online verfügbar) am 4. November 2009; abgerufen am 18. März 2010.
- ↑ Break DES in less than a single day (Memento vom 24. April 2010 im Internet Archive) Presseseite der Firma zu den Workshop Ergebnissen 2009.
- ↑ R. C. Merkle, M. E. Hellman: On the Security of Multiple Encryption. In: Communications of the ACM, Vol. 24, Nr. 7, Juli 1981.
- ↑ K.W. Campbell, M.J. Wiener: DES is not a group. In: Advances in Cryptology – CRYPTO ’92 (LNCS 740). Springer-Verlag, 1993, S. 512–520.
- ↑ Eli Biham: How to Forge DES-Encrypted Messages in 228 Steps (Memento vom 10. Dezember 2005 im Internet Archive) (PostScript), 1996.
- ↑ Elaine Barker, William Barker, William Burr, William Polk, Miles Smid: NIST Special Publication 800-57. Recommendation for Key Management – Part 1: General (Revision 3). Hrsg.: National Institute of Standards and Technology (= NIST Special Publications). 2012, Abschnitt 5.6.1 Comparable Algorithm Strengths, S. 64 (nist.gov [PDF; 535 kB; abgerufen am 21. August 2021]).
- ↑ RFC 2420 – The PPP Triple-DES Encryption Protocol (3DESE). September 1998 (englisch).