Moderne Verschlüsselungsverfahren

Symmetrische Verschlüsselung

Bei der symmetrischen Verschlüsselung wird ein und derselbe Schlüssel verwendet, um Daten zu verschlüsseln und auch wieder zu entschlüsseln. Der Nachteil dieser Verschlüsselung ist, dass der Schlüssel geheim bleiben muss und es muss sichergestellt werden, dass der Empfänger der verschlüsselten Daten oder Nachricht den Schlüssel sicher und geheim erhält, um die Daten wieder zu entschlüsseln.

Der Schlüssel wird um ein vielfaches Sicherer wenn die Schlüssellänge größer wird.

Ein 192 Bit langer Schlüssel hat im Gegensatz zum 128 Bit langen Schlüssel ca. 18 Trillionen mehr Möglichkeiten.

2128 = 340.282.366.920.938.463.463.374.607.431.768.211.456 (entspricht 128 bit)
2192 = 6.277.101.735.386.680.763.835.789.423.207.666.416.102.355.444.464.034.512.896
2256 = 115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936

Zu den symmetrischen Verfahren gehören z.B.:

AES:
AES unterstützt die Schlüssellängen 128, 192 und 256 Bit und kann in 32 Bit-Schritten erweitert werden. 256 Bit entspricht 1.1 x 10 hoch 77.

Twofish:
Es handelt sich um eine Blockchiffre mit einer Blockgröße von 128 Bit und 16 Runden, Die Schlüssellängen betragen 128, 192 oder 256 Bit.

Asymmetrische Verschlüsselung

Der Unterschied zwischen der asymmetrischen und symmetrischen Verschlüsselung ist, dass bei der Asymmetrischen 2 verschiedene Schlüssel für das Verschlüsseln und Entschlüsseln benutzt werden. Es wird ein Schlüsselpaar erstellt, welche eine gemeinsame mathematische Basis haben. Trotz der mathematischen Basis kann kein Schlüssel von dem anderen hergeleitet werden. Der Schlüssel zur Verschlüsselung kann daher beliebig verbreitet werden und sogar öffentlich in Verzeichnissen oder Servern hinterlegt werden. Man spricht auch vom öffentlichen Schlüssel (engl.: public Key). Der Schlüssel für das Entschlüsseln der Daten ist ein privater Schlüssel (engl.: private Key), welcher in der Obhut des Empfängers bleibt und meistens noch einmal geschützt wird.
Der Nachteil dieses Verfahrens besteht darin, dass es deutlich langsamer ist, als die symmetrische Verschlüsselung und aufgrund der mathematischen Abhängigkeit auch höhere Schlüssellängen benötigt werden.

Zu den asymmetrischen Verfahren gehören z.B. RSA und Elgamal.

Hybride Verschlüsselung

Bei diesem Verfahren werden beide oben genannten Vorteile, Geschwindigkeit (symmetrisches Verfahren) und Sicherheit (asymmetrisches Verfahren), kombiniert.
Die Verschlüsselung der eigentlichen Daten erfolgt per symmetrischer Verschlüsselung. Jedoch wird für jeden Datenübertragung ein neuer Schlüssel generiert (session key), der per asymmetrischer Verschlüsselung dem Empfänger übermittelt wird. Da es sich bei diesem Schlüssel nur um eine sehr geringe Schlüssellänge handelt, fällt der Nachteil der langsamen asymmetrischen Verschlüsselung weg.

Blockchiffre

Die Blockverschlüsselung ist eine der beiden Möglichkeiten, Daten zu verschlüsseln. Anders wie bei der Stromverschlüsselung, werden bei der Blockverschlüsselung Daten eines Klartextes in feste Blöcke unterteilt und “gemeinsam” verschlüsselt. Bei einem Klartext von beispielsweise 20 Zeichen wird die Zeichenkette in 5 gleichlange Blöcke unterteilt, die anschließend unabhängig voneinander chiffriert werden. Die Länge der chiffrierten Blöcke kann sowohl fest als auch variabel sein. Typische Werte für die Blockgrößen sind 128, 192 oder 256 Bit. Ist eine Zeichenkette kürzer als z.B. 128 Bit, so wird sie mit Fülldaten vervollständigt (“Dummytext”). Ein kleiner Auszug der bekanntesten Blockchiffren ist DES, IDEA, AES, Blowfish, Serpent und Twofish.


Wie funktioniert eine Blockchiffrierung?

Bei der Blockchiffrierung werden logische Verknüpfungen wie XOR-Operationen, Substitutionen (Verwischung der Beziehung zwischen Klar- und Geheimtext), Permutationen (Veränderung der Anordnung einer bestimmten Menge; z.B. aus 1234 wird 1324) sowie arithmetische Operationen der Dualarithmetik (Anwendung der Arithmetik + – * / auf das Dualsystem) angewendet. In den meisten Fällen durchläuft die Verschlüsselung von Daten im Blockchiffreverfahren in mehreren Runden, um den Ursprung so gut wie möglich zu zerstören (Verwirrung (Konfusion) und Zerstreuung (Diffusion)).

Bei der Chiffrierung wird unterteilt in die folgenden kryptographischen Modi (zählt auch bei Stromchiffrierung):

  • Electronic Code Book (ECB)
  • Cipher Block Chaining (CBC)
  • Cipher Feedback (CFB)
  • Output Feedback (OFB)
Ablauf einer Blockchiffrierung

Ablauf einer Blockchiffrierung / Bild: unbekannt

Stromchiffre

Im Gegensatz zur Blockverschlüsselung wird bei der Stromverschlüsselung jeder Buchstabe / jedes Bit einzeln verschlüsselt (XOR). Der Schlüsselstrom ist eine pseudozufällige Zeichenfolge. Die meisten Stromchiffrierungen benutzen einen symmetrischen Schlüssel für die Chiffrierung.

Anders wie die Blockverschlüsselung ist die Stromverschlüsselung nicht darauf angewiesen, eine bestimmte Anzahl von Daten (z.B. 128 Bit bei 128 Bit-facher Verschlüsselung), da jedes Bit einzeln verschlüsselt wird. Vorteil hiervon ist, dass das verschlüsselte Bit sofort an den Empfänger gesendet werden kann, statt erst einen ganzen Block zu verschlüsseln (wird z.B. bei Mobilfunk angewandt).

Wie funktioniert eine Stromchiffrierung?

Zuerst wird durch eine synchrone Stromchiffrierung (z.B. Output Feedback Mode) ein Schlüsselstrom unabhängig vom Klar- oder Schlüsseltext generiert. Es gibt auch selbstsynchronisierende Stromchiffren (z.B. Cipher Feedback Mode), bei denen der Schlüsselstrom von vorhergehenden verschlüsselten Bits abhängt.

Die synchronen Stromchiffren werden oft mit Hilfe linearer Schieberegister mit Rückkopplung (Erstellung von pseudozufälligen Zeichenfolgen) konstruiert.

Ablauf einer Stromchiffrierung

Ablauf einer Stromchiffrierung / Bild: unbekannt

RC4

RC4 ist eine weit verbreitete Stromverschlüsselung, die unter anderem in Standards wie HTTPS, SSH 1 und WEP/WPA eingesetzt wird. Hierbei wird eine Zufallsfolge aus einem einmalig verwendetem Schlüssel erzeugt. Der Klartext wird Bit für Bit per XOR mit der Zufallsfolge verknüpft, um die Daten zu verschlüsseln. Ähnlich wie bei der Blockchiffrierung wird hier eine S-Box verwendet (Grundkomponente für die Chiffrierung), bei der zufällige Permutationen oder Substitutionen der Zahlen 0 – 255 generiert werden. Nach der Berechnung der Zufallszahlen werden die Werte in der S-Box vertauscht.