Prev    Up    Next  

1.1 Blockchiffren

1.1.1 Einordnung

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.


PIC

Abbildung 1.1: SHANNON’s Modell


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:

1.1.2 Wirkprinzip

Blockchiffren zeichnen sich dadurch aus, daß sie einen Klartext-Vektor (Plaintext) der Breite n (Bit) in einen gleichgroßen Vektor verschlüsselte Daten (Ciphertext) transformieren. Diese Abbildung E von  n
2  möglichen Eingangsmustern auf wieder  n
2  Ausgangsmuster ist praktisch immer eineindeutig (affin, reversibel) und wird durch den geheimen Schlüssel K gesteuert. Besteht der Klartext wie in Abbildung 1.2 aus mehr Bits als die Blockbreite n 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.


PIC

Abbildung 1.2: Anwendung von Blockchiffren


Die Klartext-Blöcke pi  werden dann nacheinander durch den Algorithmus E in Ciphertext-Blöcke ci = E (pi)  transformiert. Dieser Prozeß kann vollständig unabhängig für jede Blockchiffre (bzw. jeden Block pi  ) ablaufen2 oder aber durch die Weitergabe von Zustandsvektoren si  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 K wird verwendet um mit Hilfe des inversen Algorithmus jeden Klartext-Block pi = E− 1(ci)  wieder zu gewinnen.

1.1.3 Herkömmliche Struktur

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 p in zwei Hälften l0  und r0  aufgeteilt (p = l0||r0  ) und an das Feistel-Netzwerk nach Abbildung 1.3 übergeben. Das Ergebnis l1||r1  wird danach wieder auf den Eingang zurückgeführt und das Verfahren in mehreren Runden wiederholt.

pict

Der sogenannte Rundschlüssel Ki  wird aus dem Schlüssel K abgeleitet (Key Scheduling) und sollte für jede Runde verschieden sein. Die nichtlineare Funktion f 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”).


PIC

Abbildung 1.3: Runde einer typischen FEISTEL-Chiffre


Die Vorteile des Verfahrens gründen sich auf dessen Einfachheit:

  1. Aufwand und Kosten der Realisierung sind überschaubar;
  2. Hardware- und Software-Implementierungen sind gleichermaßen möglich;
  3. die Skalierbarkeit (nach Sicherheitsanforderungen, Geschwindigkeit oder anderen Kriterien) ist durch Variation der Rundenanzahl gegeben;
  4. Ver- und Entschlüsselung können dieselbe Struktur verwenden.

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:

pict

d. h. alle Operationen bleiben erhalten5 . Was sich ändert ist einzig und allein die Verwendung der Rundenschlüssel, welche bei der Verschlüsselung mit K0  startete. Bei der Entschlüsselung muß man, wie Formel 1.2 zeigt, umgekehrt vorgehen, also den Schlüssel K0  zuletzt benutzen.

1.1.4 Advanced Encryption Algorithm (AES)

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.