Donnerstag, 21. August 2008

News

präsentiert von: entwickler.com
Donnerstag, 7. September 2006

About Security #71: Kryptographie – Data Encryption Standard (DES)

Diesmal geht es um den Algorithmus des DES-Verfahrens. Seine erste Veröffentlichung erfolgte am 15. Januar 1977 in Specification for the Data Encryption Standard; Federal Information Processing Standards Publication 46 (FIPS PUB 46). Die erste Version ist leider nicht online verfügbar, sondern nur aktualisierte Fassungen: FIPS PUB 46-2 und FIPS PUB 46-3 (PDF).

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

DES verwendet einen 56 Bit langen Schlüssel und verschlüsselt Blöcke von 64 Bit Länge. Der Schlüssel wird um 8 Paritätsbits auf 64 Bit erweitert, die Paritätsbits werden für den Algorithmus jedoch nicht verwendet.

Der DES-Algorithmus besteht aus

  • einer kryptographisch bedeutungslosen Eingangspermutation IP (Initial Permutation), die u.a. den Klartextblock in die beiden 32-Bit-Blöcke L_0 und R_0 zerlegt,
  • 16 Iterationsrunden, in denen die eigentliche Verschlüsselung erfolgt, und
  • einer zur Eingangspermutation inversen Ausgangspermutation IP^-1, vor deren Ausführung die Ergebnisse der 16. Iterationsrunde, L_16 und R_16, nochmals vertauscht werden.

Aus dem Schlüssel werden die 16 Teilschlüssel K_1 bis K_16 erzeugt, einer für jede Iterationsrunde.

Ablauf 
des DES-Algorithmus

Die Iterationsrunden entsprechen den in About Security #70 vorgestellten Runden der Feistel-Netzwerke. Die für die Entschlüsselung notwendige Vertauschung erfolgt nach der 16. Iterationsrunde, der DES-Algorithmus kann also unverändert sowohl zur Ver- als auch Entschlüsselung genutzt werden. Die zum Entschlüsseln notwendige Umkehrung der Reihenfolge der Iterationen erfolgt durch die Umkehrung der Reihenfolge der Teilschlüssel K_i.

Die Verschlüsselungsfunktion

Die
Verschlüsselungsfunktion

Der 32-Bit-Block R_(i-1) wird durch die Expansionspermutation E auf 48 Bit erweitert. Während eine Permutation einzelne Eingabewerte vertauscht, ohne ihre Werte oder Gesamtzahl zu verändern, kommen bei einer Expansionspermutation manche Eingabewerte mehrfach in der Ausgabe vor.

About Security: Die komplette Serie

Danach wird der 48 Bit lange Teilschlüssel K_i bitweise modulo 2 hinzuaddiert.

Die Summe wird in acht 6-Bit-Blöcke aufgeteilt, mit denen jeweils ein 4-Bit-Wert aus einer der Substitutionsboxen S_1 bis S_8 (S-Boxen, substitution box) ausgewählt wird. Diese Substitutionsboxen ordnen Werten von 6-Bit-Blöcken Werte von 4-Bit-Blöcken zu und sorgen so für Nichtlinearität.

Die sich ergebenden acht 4-Bit-Werte werden zu einem 32-Bit-Wert zusammengefasst. Auf das Ergebnis wird die Permutation P angewendet, die dann das Ergebnis liefert. P mischt die Ausgaben der 8 Substitutionsboxen, damit in der nächsten Runde die Ausgabe jeder Substitutionsbox in mehrere Substitutionsboxen eingeht.

Die Teilschlüsselerzeugung

Die Teilschlüsselerzeugung

Eine permutierende Auswahlfunktion PC-1 (PC = permuted choice) wählt aus dem 64-Bit-Schlüssel 56 Bits aus und teilt sie auf die beiden 28-Bit-Blöcke C_0 und D_0 auf. C_i und D_i (i=1, .., 16) werden erzeugt, indem die Bits in C_(i-1) und D_(i-1) abhängig von i um 1 oder 2 Stellen nach links rotiert werden (zyklischer Linksshift LS_i). Die Teilschlüssel K_i werden dann gebildet, indem C_i und D_i verbunden und daraus durch die permutierende Auswahlfunktion PC-2 48 Bits ausgewählt werden.

Die S-Boxen
Jede S-Box ist eine Tabelle mit 4 Zeilen und 16 Spalten. Wenn die Eingabe aus den 6 Bits b_1, ..., b_6 besteht, bestimmt die aus b_1 und b_2 gebildete Zahl (2 Bits = 4 Werte) die Tabellenzeile, die aus b_3 bis b_6 gebildete Zahl die Tabellenspalte. Die Zahl in der entsprechenden Zeile und Spalte wird ausgegeben.

Beispiel: Die S-Box S_1:

Spalte   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
Zeile
0       14   4  13   1   2  15  11   8   3  10   6  12   5   9   0   7
1        0  15   7   4  14   2  13   1  10   6  12  11   9   5   3   8
2        4   1  14   8  13   6   2  11  15  12   9   7   3  10   5   0
3       15  12   8   2   4   9   1   7   5  11   3  14  10   0   6  13

Die S-Boxen sind ebenso wie die Permutationen und LS_i Teil des Standards. Da es schwierig ist, die S-Boxen so zu entwerfen, dass der entstehende Algorithmus kryptologisch sicher ist, soll ihre Berechnung einige Monate gedauert haben. Ihre Entwurfskriterien wurden anfangs geheim gehalten und erst nach der Entdeckung der differentiellen Kryptanalyse durch Eli Biham und Adi Shamir 1990 (.ps.gz) veröffentlicht. Sie sind z.B. in Bruce Schneiers Buch Applied Cryptographie nachzulesen.

Die Sicherheit von DES
Es sind drei mögliche Angriffe gegen DES bekannt:

  • Bei einem Brute-Force-Angriff werden alle möglichen Schlüssel, 2^56 = ca. 72 Billiarden, ausprobiert. Dies ist inzwischen machbar. So wurde z.B. 1998 von der EFF ein speziell für das Brechen von DES entwickelter Rechner, der 'DES Cracker', gebaut, der pro Sekunde etwa 88 Milliarden Schlüssel testen konnte.
  • Die S-Boxen erschweren eine differentielle Kryptanalyse, bei der die Auswirkung von minimalen Änderungen am Klartext auf den Geheimtext untersucht werden. Daher ist differentielle Kryptanalyse nicht schneller als ein Brute-Force-Angriff.
  • Lineare Kryptanalyse, eines der modernsten kryptanalytischen Verfahren, wurde 1993 von Mitsuru Matsui entwickelt und liefert bessere Ergebnisse.

DES muß inzwischen als unsicher angesehen werden. Verbesserungen und die Anwendung des Algorithmus sind das Thema der nächsten Folge.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers



Oi schrieb am 18.11.2007, 15:08 Uhr
Oiiiiiiiiiiiiiiiiiii



Oi schrieb am 18.11.2007, 15:08 Uhr
Oiiiiiiiiiiiiiiiiiii



Peter schrieb am 18.11.2007, 15:09 Uhr
uiuiuiuiui



Peter schrieb am 18.11.2007, 15:09 Uhr
uiuiuiuiui



Ihre Meinung ist uns wichtig!
Mobile Computing Heute & Morgen!
Nehmen Sie an unserer Umfrage zum Thema Mobile Computing in Deutschland teil und nutzen Sie die Chance eine Casio Exilim EX-Z1050-Digitalkamera zu gewinnen!

Konferenzen

BASTA! 2008

BASTA! 2008

22.-26. September 2008
Rheingoldhalle, Mainz

SQLCON 2008

SQLCON 2008

22.-26. September 2008
Rheingoldhalle, Mainz

IPC 2008

IPC 2008

27.-31. Oktober 2008
Rheingoldhalle, Mainz

AJAX IN ACTION 2008

AJAX IN ACTION 2008

28.-31. Oktober 2008
Rheingoldhalle, Mainz

EKON 12

EKON 12

28.-31. Oktober 2008
Congress Centrum, Mainz

W-JAX 2008

W-JAX 2008

3.- 7. November 2008
ArabellaSheraton Hotel München

SOACON 2008

SOACON 2008

3.- 7. November 2008
Arabella Sheraton Hotel, München

JAX Asia 2008

JAX Asia 2008

25.-28. November 2008
Singapore, Kuala Lumpur, Jakarta

Werbung
Top-Jobs

Software & Support Verlag GmbH

Volontär (w/m) Redaktion, Vollzeit

Hueber Verlag GmbH & Co. KG

Webdesigner/ Webprogrammierer (m/w)

OLYMPUS EUROPA Holding GmbH

Web-Entwickler (m/w)

Gebit Solutions

Java Profis gesucht (m/w)

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher


hosted by HostEurope