C.E. SHANNON beschreibt in [Sha49] ein allgemeines (symmetrisches1 ) Kryptosystem entsprechend Abbildung 1.1 und formuliert auf dieser Grundlage erstmalig grundlegende Theoreme zur theoretischen Sicherheit.
In Teil III widmet er sich auch praktischen Aspekten der Auswahl bzw. des Designs solcher Verschlüsselungsalgorithmen. Dabei bezieht er sich unter anderem auf die folgenden Kriterien zur Bewertung von Kryptosystemen:
Blockchiffren zeichnen sich dadurch aus, daß sie einen Klartext-Vektor (Plaintext) der Breite (Bit) in
einen gleichgroßen Vektor verschlüsselte Daten (Ciphertext) transformieren. Diese Abbildung
von
möglichen Eingangsmustern auf wieder
Ausgangsmuster ist praktisch immer eineindeutig
(affin, reversibel) und wird durch den geheimen Schlüssel
gesteuert. Besteht der Klartext wie in
Abbildung 1.2 aus mehr Bits als die Blockbreite
vorgibt, dann muß er in Teilblöcke dieser Breite
segmentiert und der letzte Block unter Umständen mit einem Muster pad(ding) aufgefüllt
werden.
Die Klartext-Blöcke werden dann nacheinander durch den Algorithmus
in Ciphertext-Blöcke
transformiert. Dieser Prozeß kann vollständig unabhängig für jede Blockchiffre (bzw. jeden Block
)
ablaufen2
oder aber durch die Weitergabe von Zustandsvektoren
beeinflußt
sein3 .
Den ersten Zustandsvektor nennt man Initialisierungsvektor (IV) und wählt ihn entweder zufällig (dann
muß er zum Ort der Entschlüsselung übertragen werden) oder per Vereinbarung, z. B. als statisches
Muster. Bei der Entschlüsselung läuft der gesamte Prozeß umgekehrt ab, d. h. derselbe Schlüssel
wird verwendet um mit Hilfe des inversen Algorithmus jeden Klartext-Block
wieder zu
gewinnen.
SHANNON hat schon in vorgeschlagen symmetrische Kryptoalgorithmen durch Anwendung von
Substitution (als nichtlineare Komponente) und Permutation zu realisieren. Fast alle bekannten
Blockchiffren wenden dieses Prinzip auf der Grundlage einer einfachen Verarbeitungsstruktur nach
H. FEISTEL an [HFS75]. Dazu wird der Plaintext-Block in zwei Hälften
und
aufgeteilt
(
) und an das Feistel-Netzwerk nach Abbildung 1.3 übergeben. Das Ergebnis
wird danach wieder auf den Eingang zurückgeführt und das Verfahren in mehreren Runden
wiederholt.
Der sogenannte Rundschlüssel wird aus dem Schlüssel
abgeleitet (Key Scheduling)
und sollte für jede Runde verschieden sein. Die nichtlineare Funktion
realisiert dabei
die Substitution (in Abhängigkeit vom Rundenschlüssel), die ständige Kreuzung von
linker und rechter Hälfte zusammen mit der Exklusiv-Oder (XOR) Operation eine
reversible4
Permutation (und „Durchmischung”).
Die Vorteile des Verfahrens gründen sich auf dessen Einfachheit:
Der letzte Punkt soll noch kurz erläutert werden, wobei von Formel 1.1 auszugehen ist. Stellen wir diese einfach für die Rückwärtsrichtung (Entschlüsselung) um, so ergibt sich:
d. h. alle Operationen bleiben erhalten5 .
Was sich ändert ist einzig und allein die Verwendung der Rundenschlüssel, welche bei der
Verschlüsselung mit startete. Bei der Entschlüsselung muß man, wie Formel 1.2 zeigt, umgekehrt
vorgehen, also den Schlüssel
zuletzt benutzen.
Der AES ist definiert im NIST-Standard [FIP01] und mittlerweile auch als [ISO05]. Es gibt so viele Beschreibungen und Implementierungshinweise zum AES, daß ich dies hier nicht weiter ausführe.