Symmetrische Kryptografie

In einem symmetrischen kryptographischen System verwenden Sender und Empfänger den gleichen Schlüssel. Diese Verfahren beziehen ihre Sicherheit aus der Geheimhaltung des Schlüssels nach dem Prinzip von Kerckhoffs und heißen folglich auch Secret Key Cryptography. Durch das symmetrische Prinzip stellt sich das Problem der sicheren Schlüsselverteilung, da zwei sicher kommunizierende Stellen, z.B. Alice und Bob, einen gemeinsamen geheimen Schlüssel benötigen. Dies kann mit Hilfe eines asymmetrischen Verfahrens erfolgen, oder mit etwas komplizierteren Verfahren über ein dezidiertes KDC (Key Distribution Center) oder über ein Ticketverfahren mit zwei Schlüsselservern, wie Kerberos, erfolgen.

Symmetrische Algorithmen können nach ihrer Anwendung auf den Klartext charakterisiert werden. Es gibt 2 Arten von Algorithmen, bei Blockchiffren wird der Klartext in Blöcke zerlegt und der Schlüssel auf die einzelnen Blöcke angewandt, bei Stromchiffren wird aus dem Schlüssel ein Schlüsselstrom erzeugt, der auf den Klartextstrom angewandt wird.

Die bekanntesten Blockchiffre sind: DES, 3DES, AES (Rijndael), IDEA, CAST, FEAL, Blowfish, Twofish, Mars, RC2, RC5, RC6, Serpent, Skipjack.

Bekannte Stromchiffre wären: A5 (GSM) und RC4

=

symmetrische Verschlüsselung: Derselbe Schlüssel verschlüsselt und entschlüsselt.
symmetrische Verschlüsselung: Derselbe Schlüssel verschlüsselt und entschlüsselt.

Blockchiffren

Blockverschlüsselung (ECB-Mode)
Blockverschlüsselung (ECB-Mode)

Bei einer Blockchiffrierung wird der Klartext in eine Folge gleich langer Blöcke zerlegt, wobei jeder Block anschließend mit einem festen Schlüssel chiffriert wird. Somit werden Chiffretextblöcke mit einer festen Länge erzeugt. Der gesamte Chiffretext setzt sich aus der Konkatenation der Blöcke zusammen. Um statistische Analysten zu erschweren, sollte die Blockgröße nicht zu klein sein. In der Praxis haben sich 64 Bit Blöcke oder Vielfache davon durchgesetzt. Der Chiffriermodus definiert, in welcher Art der Verschlüsselungsalgorithmus auf den Datenstrom angewandt wird.

Vorteil: einfacher Einsatz

Nachteil: Padding notwendig, eher langsamer, geringerer mathematischer Hintergrund

Ein kryptographischer Modus verknüpft gewöhnlich die Grundchiffrierung zumeist mit einer Rückkopplung und einigen einfachen Operationen.

=

ECB - Electronic Code Book

Wird der Algorithmus einfach blockweise auf den Klartext angewandt, spricht man vom Electronic Code Book Modus. In diesem Modus erfolgt keine Rückkopplung und kann deshalb mit paralleler Hardware beschleunigt werden. Dieser Modus weist aber Schwächen auf, da Muster im Klartext zu Mustern im Chiffretext führen können, was bei Verschlüsselung von Protokolldaten sehr "unangenehm" sein kann. Zudem kann ein Angreifer innerhalb einer Schlüsselperiode Blöcke durcheinander bringen oder wiedereinspielen ohne, dass dies erkannt wird.ECB eignet sich gut zur Verschlüsselung zufälliger Daten. Wenn die Daten kurz und zufällig sind (z.B. andere Schlüssel), wirkt sich keiner der Nachteile von ECB aus.

=

Cipher Block Chaining
Cipher Block Chaining

CBC - Cipher Block Chaining

Um den Verwundbarkeiten des ECB zu entgehen kann man den CBC Modus einsetzen. Dieser Modus verbirgt Muster im Klartext, indem er einen Klartextblock mit dem vorangegangenen Chiffretextblock mittels einer XOR-Operation verknüpft. Der erste Block wird mit einem Initialisierungsvektor, ein Block zufälliger Bits, verknüpft - die weiteren mit dem vorangehenden Chiffretextblock. Dadurch werden zwei gleiche Klartextblöcke niemals in den gleichen Chiffretext übersetzt. Der Initialisierungsvektor wird zumeist vor der Nachricht im Klartext übertragen.CBC eignet sich am besten für die Verschlüsselung von Dateien, da Muster im Klartext verborgen werden. Für Software-Anwendungen ist CBC fast immer die beste Wahl.

=

Cipher Feedback Modus
Cipher Feedback Modus

CFB - Cipher Feedback

Der CFB Modus ähnelt dem CBC Modus, da ebenfalls eine Rückkopplung des Chiffretextblockes erfolgt. Allerdings wird bei diesem Blockchiffrieralgorithmus zuerst durch Anwendung des Schlüssels auf den vorangegangenen Chiffretextblock, bzw. Initialisierungsvektor ein temporärer Schlüssel erzeugt, der dann mit dem Klartext mittels XOR verknüpft wird. CFB und nachfolgender OFB können dadurch z.B. ohne Padding verwendet werden, da sie mehr einem Stromchiffre ähneln.

CFB, insbesondere 8-Bit-CFB, stellt normalerweise die beste Wahl zur Verschlüsselung von Zeichenströmen dar, wenn alle Zeichen einzeln behandelt werden müssen.

=

Output Feedback Modus
Output Feedback Modus

Output Feedback

Der OFB Modus ist etwas einfacher aufgebaut als der CFB Modus. Hier hängt der Schlüsselstrom nicht vom Datenstrom ab, das heißt die Verschlüsselung hängt nicht durch Rückkopplung vom Chiffretextblock und Klartextblock ab. Der Schlüsselstrom wird durch Anwendung des Schlüssels auf den Initialisierungsvektor bzw. auf den Block des vorhergehenden Durchgangs erzeugt.

OFB eignet sich am besten für fehleranfällige Umgebungen, da hier keine Fehlerfortpflanzung auftritt. OFB kommt außerdem zum Einsatz, wenn Vorausberechnungen nötig sind.

weitere Modi sind

  • Counter Modus,
  • OCB Offset Codebook Mode
  • Block Chaining,
  • PCBC Propagating Cipher Block Chaining,
  • CBCC Cipher Block Chaining with Checksum
  • PBC Plaintext Block Chaining
  • PFB Plaintext Feedback
  • CCM Counter with CBC MAC
  • und einige mehr

 

Die bekanntesten Blockchiffre sind: DES, 3DES, AES (Rijndael), IDEA, CAST, FEAL, Blowfish, Twofish, Mars, RC2, RC5, RC6, Serpent, Skipjack

=

Stromchiffren

Stromchiffrierung
Stromchiffrierung

Bei der Fluss- oder Stromchiffrierung wird ein Datenstrom beliebiger Länge direkt verschlüsselt. Der Klartext wird in einzelne Zeichen oder Bits zerlegt und mit dem entsprechenden Element einer Schlüsselfolge chiffriert. Aus einem Klartextstrom und einem Schlüsselstrom erhält man den Chiffrestrom. Klassisches Beispiel hiefür ist die Vernam Chiffrierung.

Die bekanntesten Stromchiffre sind A5 (GSM) und RC4, der in einer Vielzahl von Protokollen (WEP, TKIP, MPPE, etc.) verwendet wird. Blockchiffren im CFB oder OFB Modus haben ähnliche Eigenschaften wie Stromchiffren.

Stromchiffren sind oft einfache PRNG , mit dem Schlüssel als Seed, zur Generierung des Schlüsselstroms, der mit dem Klartextstrom XOR-verknüpft wird. Diese Vorgehensweise stellt einige Anforderungen an die sichere Verwendung, Negativbeispiel dafür ist WEP

Vorteil: sehr schnell

Nachteil: Bitfehler desynchronisieren die Ströme, Wiederverwendung von Schlüsseln problematisch

Klartext "A"

01100001 

Schlüsselstrom 

01010010 

XORed "A" 

00110011 

 


Klartext "B"

01100010  

Schlüsselstrom 

01010010 

XORed "B"

00110000

 


Klartext "A" 

01100001 

 Klartext "B"  

01100010  

A XOR B 

00000011

 


XORed "A"

00110011  

XORed "B"

00110000

"A" XOR "B"

00000011

 


Klartext "A"

01100001  

XORed "A"

00110011

= Schlüsselstrom

01010010

 

=