next up previous contents
Next: Asymmetrische Chiffren Up: Grundlagen der Kryptographie Previous: Der Begriff der Chiffre   Contents

Subsections

Symmetrische Chiffren

Definition

Bei Symmetrischen Chiffren trifft die Analogie des Schlüssels zu. Wie bei der Tür, die vom gleichen Schlüssel zu- und auch wieder aufgeschlossen werden kann, wird auch der Text bei symmetrischen Chiffren mit dem gleichen Schlüssel ver- und wieder entschlüsselt.

Bei einem sicheren Nachrichtenaustausch zwischen verschiedenen Parteien muß dieser Schlüssel allen Beteiligten bekannt sein. Und hier liegt auch das Hauptproblem, auf das man bei der Benutzung von symmetrischen Chiffren stößt: Der sichere Schlüsselaustausch. Bevor man sicher vor ungewollten Lauschern mittels verschlüsselter Botschaften kommunizieren kann, muß man den Schlüssel an alle Gesprächspartner verteilen, falls er ihnen noch nicht bekannt ist. Doch dieses ist kein triviales Problem, da ja offensichtlich kein sicherer Kanal zu den Gesprächspartnern vorhanden ist (sonst müßte man den Nachrichtenaustausch schließlich nicht verschlüsseln).

In der Familie der symmetrischen Chiffren gibt es zwei Kategorien: Die Stromchiffren, welche die Daten bitweise verschlüsseln, und die Blockchiffren, die den Text in Blöcken fester Größe verschlüsseln.

Stromchiffren

Prinzip der Stromchiffren:

Eine Stromchiffre verschlüsselt den Klartext i.A. bitweise (manchmal aber auch in größeren Einheiten). Dieses geschieht in den meisten Fällen durch eine bitweise exklusive Veroderung (XOR) mit einem Schlüsselstrom ( $ C_{i} =
K_{i} \oplus S_{i}$, wobei $ C_{i},K_{i},S_{i}$ jeweils das i-te Bit des Chiffretextes, Klartextes und Schlüsselstroms sind). Die Entschlüsselung findet ebenfalls durch bitweises XOR mit dem gleichen Schlüsselstrom statt. ( $ C_{i} \oplus S_{i} = K_{i} \oplus S_{i}
\oplus S_{i} = K_{i} \oplus 0
= K_{i}$). Der Schlüsselstrom wird durch einen Algorithmus (dem sogenannten Schlüsselstrom-Generator) erzeugt, der als Eingabe zur Initialisierung einen Wert (den eigentlichen Schlüssel) bekommt. Der gleiche Schlüssel erzeugt immer den gleichen Schlüsselstrom, so dass den einzelnen Kommunikationspartnern lediglich der Schlüssel bekannt sein muß, um den Strom an Chiffretext-Bits zu entschlüsseln. Die Sicherheit einer Stromchiffre beruht auf der Güte des Schlüsselstrom-Generators. Der Schlüsselstrom-Generator produziert eine Folge von Bits, deren Auftreten möglichst zufällig ist. Je besser der Generator den Zufall approximiert, desto sicherer wird die Chiffrierung. Bei der Verwendung von Stromchiffren sollte man darauf achten, niemals den gleichen Schlüssel (und somit den gleichen Chiffrestrom) zweimal zu verwenden. Falls man dieses tut, könnte eine dritte Person, die die beiden Chiffretexte abgefangen hat, diese beiden miteinander exklusiv verodern. Als Ergebnis erhält sie eine exklusive Veroderung der beiden Klartexte (die Schlüsselstrom-Bits fallen bei diesem Vorgehen weg). Dieses ist leicht zu entschlüsseln, da das Vorkommen der einzelnen Zeichen in Sprache alles andere als zufällig ist. Durch die Kenntnis eines der Klartexte kann man nun den Schlüsselstrom berechnen (durch XOR des Klar- und des Chiffretextes) und hat dadurch die Möglichkeit, alle weiteren Nachrichten, die mit diesem Schlüssel chiffriert wurden, problemlos zu lesen.

Ebenfalls sollte man darauf achten, dass, wenn man einen Schlüsselstrom- Generator mit einem periodischen Schlüsselstrom verwendet, die Größe der zu verschlüsselnden Daten kleiner ist als die Größe der Periode. Falls dieses nicht erfüllt ist, gibt man eventuellen Lauschern einen Ansatzpunkt zum erfolgreichen Entschlüsseln des Textes: Es besteht so die Möglichkeit, den Chiffretext in Blöcke der Größe der Periode aufzuteilen und diese, ähnlich zu dem oben erwähnten Angriff, mit einander exklusiv zu verodern. Da sich der Schlüssel nach dem Durchlaufen der Periode wiederholt, fallen auch bei diesem Vorgehen die Schlüsselbits weg (s.o.).

Durch die oben beschriebenen Eigenschaften (Strom von Chiffretext-Bits durch bitweise Verschlüsselung, keine Notwendigkeit, spezielle Blockgrößen der zu verschlüsselnden Daten einzuhalten) eignen sich Stromchiffren besonders für den Einsatz an Orten, wo es auf die Verschlüsselung kontinuierlicher Datenströme ankommt (z.B. Video/Audio).


Arten von Stromchiffren:
Man kann zwischen zwei unterschiedlichen Arten von Stromchiffren unterscheiden: den synchronen und den selbstsynchronisierenden Stromchiffren (vgl. Abbildung 6).

Bei den synchronen Stromchiffren ist der Schlüsselstrom unabhängig vom Datenstrom, d.h. der generierte Strom von Schlüsselbits wird allein bestimmt durch den verwendeten Algorithmus und den Schlüssel. Der Vorteil einer solchen Verfahrensweise ist, dass die Berechnung des Schlüsselstroms im vorhinein erledigt werden kann, und beim eigentlichen Nachrichtenaustausch nur noch die XOR-Verknüpfung mit den Daten stattfinden muß. Besonders bei rechenintensiven Algorithmen kann man so den Datendurchsatz der Kommunikation erheblich erhöhen. Der Nachteil von synchronen Stromchiffren ist, dass bei nur einem verlorengegangenen Bit der gesamte folgende Chiffretext unbrauchbar ist. Dieses ist der Fall, weil sowohl auf Sender- wie auch auf Empfängerseite die Schlüsselstrom-Generatoren die jeweiligen Daten-Bits mit dem selben Schlüsselstrom-Bit (de)kodieren müssen, sie müssen also synchron vorgehen (daher auch der Name). Falls ein Bit verloren geht, geraten die beiden in Asynchronismus. Während der Sender schon bei Bit Nummer i+1 ist, ist der Empfänger noch bei Bit Nummer i und versucht somit eine Dechiffrierung anhand eines falschen Schlüsselstrom-Bits. Dieses setzt sich auf den Rest des Chiffretextes fort. Fehlerhaft übertragene Bits wiederum machen keine größeren Probleme. Die fehlerhaften Bits werden zwar falsch dechiffriert, aber der Rest der Nachricht bleibt entschlüsselbar.

Figure 6: Synchrone und selbstsynchronisierende Stromchiffren
\begin{figure}\centerline{\epsfig{file=bilder/strom.eps, height= 9cm}}\end{figure}

Bei selbstsynchronisierenden Stromchiffren ist jedes Schlüsselstrom-Bit eine Funktion einer festen Anzahl (n) vorhergehender Chiffretext-Bits. Dadurch bekommt die Chiffre die Eigenschaft, dass auch unter Verwendung des gleichen Schlüssels unterschiedliche Daten mit unterschiedlichen Schlüsselströmen kodiert werden. Somit fällt der Angriffsansatz aus [*] weg. Fehlerhaft übertragene oder fehlende Bits führen dazu, dass die nächsten n Bits falsch dechiffriert werden, da die Funktion zur Berechnung des Schlüsselstroms auf Sender- und Empfängerseite mit unterschiedlichen Chiffretext-Bits arbeitet. Nach n Bits haben sich die beiden aber wieder synchronisiert (deswegen selbstsynchronisierend) und arbeiten wieder korrekt (die Kommunikationspartner haben allerdings keine Möglichkeit zu entscheiden, ab welcher Stelle wieder synchron gearbeitet wird - dieses kann bestenfalls aus den empfangenen Daten geschlossen werden). Dieses eigentlich sehr wünschenswerte Verhalten ermöglicht aber auch einen Angriff auf die Kommunikation durch Wiedereinspielung. Eine dritte Partei, die aus einem früher stattgefundenen Nachrichtenaustausch Chiffretextbits gespeichert hat, kann diese später in einen Nachrichtenaustausch wieder einschleusen. Auf Empfängerseite wird dann für n Bits unbrauchbarer Datenmüll entschlüsselt, danach hat sich der Schlüsselstrom-Generator aber mit den alten Daten synchronisiert und entschlüsselt nun einwandfrei die eingeschleusten Daten. Dies funktioniert natürlich nur, wenn der Schlüssel in der Zwischenzeit nicht geändert wurde.

Ein Beispiel für eine häufig verwendete Stromchiffre ist RC4 (von Ron Rivest, 1987). RC4 ist eine synchrone Stromchiffre mit einer variablen Schlüssellänge und findet unter anderem Einsatz in Lotus Notes und Oracle Secure SQL.

Blockchiffren

.
Blockchiffren sind wie Stromchiffren symmetrische Chiffrieralgorithmen. Im Unterschied zu den Stromchiffren findet die Verschlüsselung aber nicht bitweise statt, sondern in Blöcken fester Größe (üblich sind im Allgemeinen 64 Bit). Bei einer Blocklänge von 64 Bit werden also immer jeweils 64 Bit Klartext in 64 Bit Chiffretext transformiert. Bei einem Klartext, dessen Größe ungleich einem Vielfachen der Blockgröße ist, muß der letzte Block mit Bits aufgefüllt werden (``padding''). Dieses kann durch einfaches Auffüllen mit Nullen oder Einsen stattfinden. Somit hat der Chiffretext nicht unbedingt dieselbe Größe wie der Klartext, was auch ein weiterer Unterschied zu den Stromchiffren ist, wo Klartext- und Chiffretext-Größe in jedem Fall gleich sind. Unterschiedliche Größe von Chiffre- und Klartext ist eine wünschenswerte Eigenschaft, da in manchen Fällen die alleinige Kenntnis über die genaue Größe einer Nachricht Hinweise auf ihren Inhalt liefern kann.

Blockchiffren - Betriebsmodi:
Blockchiffren können in verschiedenen kryptographischen Modi betrieben werden. Die verschiedenen Modi ermöglichen eine der jeweiligen Situation angepaßte Nutzung der Chiffre, je nachdem ob es z.B. wichtiger ist, dass die Verschlüsselung schnell vonstatten geht oder ob der Gefahr des Entfernens oder Einschleusens von fremden Daten begegnet werden soll. Auch ist es möglich, einen Blockchiffre-Algorithmus so zu benutzen, dass er wie eine Stromchiffre arbeitet, z.B. in Fällen, in denen es wichtig ist, dass Klar- und Chiffretext dieselbe Größe haben. Kryptographische Modi fügen einer Chiffre keine weitere Sicherheit zu; die Sicherheit beruht weiterhin ausschließlich auf dem verwendeten Algorithmus. Im folgenden werden vier häufig verwendete Modi vorgestellt:

Ausgewählte Blockchiffren:
Es gibt eine Vielzahl an Blockchiffren, die wohl bekanntesten und zum Teil häufig eingesetzten sind:


next up previous contents
Next: Asymmetrische Chiffren Up: Grundlagen der Kryptographie Previous: Der Begriff der Chiffre   Contents
willemATkoram.de