DES und 3DES

Der Data Encryption Standard (DES) wurde Anfang der 70er Jahre von IBM unter dem Namen Lucifer entwickelt. IBM hatte mit ihrem patentierten Lucifer-Algorithmus den einzigen ernstzunehmenden Vorschlag für einen Standardalgorithmus, nach einem Aufruf des damaligen National Bureau of Standards, gemacht. In Zusammenarbeit mit der NSA wurde der Algorithmus überarbeitet, wobei vor allem die Schlüssellänge von 128 Bit auf 64 bzw. 56 gekürzt wurde. 1975 wurde der resultierende Algorithmus als Data Encryption Standard publiziert.

Der DES verschlüsselt 64 Bit große Klartextblöcke in 64 Bit große Chiffretextblöcke. Der Schlüssel ist ebenfalls 64 Bit lang, wobei jedes achte Bit als Prüfbit verwendet wird, sodass die effektive Länge 56 Bit beträgt. Der Algorithmus verwendet lediglich die einfachen Funktionen der Permutation, Substitution, sowie eine XOR-Verknüpfung. Die einzelnen Funktionen ermöglichen keine sichere Verschlüsselung, während durch geschickte Kombination und Wiederholung ein sicheres Verfahren realisiert wird.Charakteristisch für den DES ist der Teil wo der Schlüssel in den Text eingeht. Dies geschieht in 16 Runden und wird jeweils nur auf 32 Bit des gesamten 64 Bit Blockes angewandt. Diese Form wird nach dem damaligen Chef-Kryptologen von IBM Dr. H. Feistel, heute auch Feistel-Chiffrierung genannt. Eine vollständige Erklärung kann im Nist-Standard FIPS-46-3 gefunden werden.

=

Data Encryption Standard Extended

DESX ist eine verstärkte Variante des DES. Der Unterschied zwischen den beiden besteht darin, dass in DESX der eingehende Klartext sowie der ausgehende Chiffretext, mit jeweils 64 von zusätzlichen Schlüsselbits, eine bitweise XOR Operation durchlaufen muss. Die Sicherheit von DESX wird damit gegenüber kryptanalytischen Techniken keineswegs erhöht, sondern ist als einfache Maßnahme gegen die vollständige Schlüsselsuche gedacht, die damit um einiges aufwendiger wird. Das DESX-Design geht auf Ron Rivest zurück.

=

Triple DES

Als größte Schwäche des DES wurde alsbald seine kurze Schlüssellänge erkannt. Eine Kaskade von mehreren DES – Chiffrierungen soll dazu Abhilfe schaffen. Da eine zweifache Kaskade mit einem „Meet-in-the-middle“-Angriff nur einen Sicherheitsgewinn von "einem Bit" also fast gleich schwer zu brechen ist wie eine einfache Verschlüsselung, ist zur "Verdoppelung der Schlüsselstärke" eine dreifache Kaskade notwendig.

Vom Triple-DES gibt es zwei Varianten im EDE-Modus. Mit zwei Schlüssel (K1,K2) erfolgt eine Chiffrierung der Form C= EK1(DK2(EK1(P))). Einer Verschlüsselung (Encryption) mit dem ersten Schlüssel folgt eine Entschlüsselung (Decryption) mit dem zweiten und wiederum eine Verschlüsselung mit dem ersten Schlüssel (EDE2). Bei drei unabhängigen Schlüssel (K1,K2,K3) wird mit C=EK1(DK2(EK3(P))) chiffriert (EDE3). Da es auf die 2-Schlüsselvariante einige kryptanalytische Angriffe gibt, sollte man, wenn es kein Problem mit der Speicherung eines längeren Schlüssels gibt, auf die 3-Schlüssel Variante setzen.

=

Sicherheit des DES und 3DES

Eine Charakteristik von DES (und anderen Blockchiffre-Algorithmen) ist, dass er schwache und halbschwache Schlüssel besitzt. Der DES hat vier schwache Schlüssel, für die gilt, dass Ek(Ek(m)) = m. Es existieren ebenso 12 halbschwache Schlüssel, die als Paar (k1,k2) die Bedingung Ek1(Ek2(m)) = m erfüllen, wo also eine Verschlüsselung einem Schlüssel k1 der der Entschlüsselung mit dem Schlüssel k2 entspricht. Bei der Wahl eines DES-Schlüssel sollte man auf diese Schlüssel achten.

=

schwache DES-Schlüsselhalbschwaches Schlüsselpaar
1. halbschwacher Schlüssel2. halbschwacher Schlüssel 
0101010101010101 E001E001F101F101 01E001E001F101F1 
1F1F1F1F0E0E0E0E FE1FFE1FFEOEFEOE 1FFE1FFEOEFEOEFE 
FEFEFEFEFEFEFEFE E01FE01FF10EF10E 1FE01FEOOEF10EF1 
E0E0E0E0F1F1F1F1 01FE01FE01FE01FE FE01FE01FE01FE01 
011F011F010E010E 1F011F010E010E01 
E0FEE0FEF1FEF1FE FEE0FEE0FEF1FEF1 

 

Abgesehen von der kurzen Schlüssellänge fand man erst in den frühen 90er Jahren kryptanalytische Techniken, wie differentielle oder lineare Kryptanalyse, die unter dem Aufwand einer vollständigen Schlüsselsuche waren. Für die Kaskadentechnik wurden schon früher die "Meet in the middle Attack" von Merkle und Hellman erkannt. Sie waren auch die ersten die eine Schwäche der 2 Schlüsselvariante des 3DES erkannten. Die beste Technik auf die 2-Schlüsselvariante fanden van Oorschot und Wiener (Oorschot Wiener Attack). Eine Diskussion über die Sicherheit ist in Helena Handschuh und Bart Preneels Über die Sicherheit von Doppel- und 2-Schlüssel-Dreifach-Verschlüsselungen zu finden

Da kryptanalytische Techniken eher weniger praktische Bedeutung besitzen, blieb die vollständige Schlüsselsuche für DES bei bekanntem Klar- und Chiffretext im Blickfeld, bis 1999 im Rahmen der dritten DES Challenge der RSADES Challenge III der Schlüssel in 22 Stunden 15 Minuten gefunden wurde - höchste Zeit für einen Nachfolger. Im Oktober 2000 wurde der Nachfolger (AES) dann endlich ausgewählt: Rijndael.

=

Advanced Encryption Standard - AES

Im Jahre 1997 veröffentlichte das NIST eine Ausschreibung für einen Nachfolgealgorithmus für den in die Jahre gekommenen Data Encryption Standard. Bei dem so genannten Advanced Encryption Standard (AES) sollte es sich um einen frei verfügbaren symmetrischen 128-Bit-Blockchiffre handeln, der auch Schlüsselgrößen von 128, 192 und 256 Bit erlaubt. Die Frist zur Einsendung von Vorschlägen endete im Juni 1998 und in einer ersten Runde wurden 15 Kandidaten ermittelt. Am 9. August 1999 wurden 5 Kandidaten für die Endausscheidung bekannt gegeben:

  • MARS von IBM
  • RC6 der RSA Laboratories
  • RIJNDAEL von Joan Daemen, Vincent Rijmen
  • Serpent von Ross Anderson, Eli Biham, Lars Knudsen
  • Twofish von Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson

Am 2. Oktober 2000 wurde RIJNDAEL als AES ausgewählt.

=

 

RIJNDAEL - bekannt als AES

Vincent Rijmen & Joan Daemen (rechts) Quelle: www.pbcrypto.com
Vincent Rijmen & Joan Daemen (rechts) Quelle: www.pbcrypto.com

RIJNDAEL basiert auf dem Blockchiffre Square, der ebenfalls von Daemen und Rijmen stammt, wobei die Blocklänge und Schlüssellänge voneinander unabhängig 128, 192 oder 256 Bit betragen können, mit einer Erweiterung sind auch 160 und 224 Bit möglich. Die Ziele bei der Entwicklung waren die Immunität gegenüber allen bekannten Angriffen, schneller und kompakter Code, und dabei ein einfaches Design zu behalten. Einigen Kryptographen erscheint er dabei zu einfach und zu elegant.

Charakteristisch für RIJNDAEL ist, dass er zwar rundenbasiert ist, aber keine Feistel-Chiffrierung besitzt, stattdessen werden drei verschiedene umkehrbare Transformationen (layers) pro Runde eingesetzt, um linearen und differentiellen Kryptanalysen standzuhalten.

  • linear mixing layer: garantiert hohe Diffusion über mehrere Runden (ShiftRow Transformation, MixColumn Transformation)
  • non-linear layer: verwendet Substitutionsboxen, welche optimale nichtlineare Eigenschaften besitzen. (ByteSub Transformation)
  • key-addition layer: Einbringung des Rundenschlüssels mittels einer XOR Verknüpfung

=