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.