Zum Inhalt springen

Blockverschlüsselung

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 30. Mai 2005 um 19:04 Uhr durch 84.56.224.42 (Diskussion) (127 Bit). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Symmetrische Verschlüsselungsalgorithmen sind oft Blockverschlüsselungsalgorithmen (auch Blockchiffre). Bevor sie Daten verschlüsseln, werden diese zunächst in Blöcke unterteilt, deren Größe durch den Algorithmus vorgegeben ist. Die Verschlüsselungsroutinen setzen jedoch ganze Blöcke voraus, somit muss meistens der letzte Block mit Zufallsdaten aufgefüllt werden (bei einer Blockgröße von 128 Bit werden die verschlüsselten Daten somit 0 bis 127 Bit größer als der Klartext).

Die Blöcke werden anschließend nacheinander verschlüsselt. Dabei ist es durchaus üblich, dass das Ergebnis der Verschlüsselung eines Blocks bei der Verschlüsselung des nächsten Blocks als Eingangswert mitverwendet wird.

Wichtige Parameter einer Blockchiffre sind somit die Blocklänge (auch Blockgröße) und die Schlüssellänge.

Eine Verschlüsselungsfunktion mit einer Blockgröße von Bits ist eine bijektive Abbildung

Wieviele verschiedene n-Bit-Verschlüsselungsfunktionen gibt es? Die Funktion weist jedem Eingabewert eindeutig einen Ausgabewert zu und wegen der Bijektivität ist jedem Ausgabewert eindeutig ein Eingabewert zugeordnet. ist daher eine Permutationsfunktion. Es gibt

verschiedene Möglichkeiten, die möglichen Eingabewerte zu permutieren. Man beachte, dass nicht die Bits permutiert werden, sondern die durch die Bits darstellbaren verschiedenen Werte.

Um die Permutation eindeutig festzulegen, müsste der zugehörige Schlüssel deshalb aus

Bits bestehen.

Die folgende Tabelle verdeutlicht den Zusammenhang zwischen und der Schlüsselgröße:

n Permutationen Schlüsselbits
1 2! = 2 1
2 4! = 24 5
3 8! = 40320 16
4 16! = 20922789888000 45
8 256! 1684
16 65536! 954037
32
64 Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle \big(2^{64}\big)! \approx 10^{3,47 \cdot 10^{20}}}
128 Fehler beim Parsen (Konvertierungsfehler. Der Server („/media/api/rest_“) hat berichtet: „Cannot get mml. upstream connect error or disconnect/reset before headers. reset reason: connection termination“): {\displaystyle 4,3\cdot 10^{40}}

Schon bei einer Blockgröße von 8 Bit wäre also ein 1684-Bit-Schlüssel nötig, um alle Permutationen realisieren zu können. Moderne Verschlüsselungsfunktionen basieren auf 64- oder 128-Bit-Blöcken, was einer unvorstellbaren Anzahl möglicher Permutationen entspricht. Die zugehörigen verwendeten Schlüsselgrößen von 128 oder 256 Bits nutzen also nur einen winzigen Bruchteil der möglichen Permutationen aus.

Beispiele: Data Encryption Standard (DES), Advanced Encryption Standard (AES)

Siehe auch: Kryptografie, Stromchiffre, Feistelchiffre, Electronic Code Book Mode, Cipher Block Chaining Mode