Initialisierungsvektor

Aus Wikipedia, der freien Enzyklopädie

Ein Initialisierungsvektor (IV) ist ein Datenblock, der in vielen kryptografischen Verfahren als Initialisierung für eine iterative Verarbeitung der Eingabedaten genutzt wird. Das sind beispielsweise manche Betriebsmodi von Blockchiffren oder viele kryptografische Hashfunktionen.

Der IV kann konstant sein und enthält dann in der Regel zufällige oder pseudozufällige Daten, oder er wird aus Parametern bzw. Zusatzeingaben des Verfahrens gebildet, zum Beispiel Salt oder einer Nonce.

Verschlüsselung

Zusammenfassung
Kontext

Beim Verschlüsseln von Nachrichten muss vermieden werden, dass gleiche Klartextblöcke immer wieder gleiche Geheimtextblöcke ergeben. Ein förmlicher Brief etwa fängt im Deutschen häufig mit „Sehr geehrte Frau / sehr geehrter Herr“ an, gefolgt vom Namen. Aus solchem Wissen könnte ein Angreifer versuchen, Rückschlüsse auf den verwendeten Schlüssel zu ziehen (siehe Known-Plaintext-Angriff). Um das zu vermeiden, wird z. B. beim Cipher Block Chaining Mode der erste Klartextblock mit einem IV per XOR verknüpft.

Der IV ist für jede verschlüsselte Nachricht ein anderer, und da in der Regel Modi gewählt werden, bei denen der Geheimtext eines Blocks vom Geheimtext seines Vorgängerblocks abhängt, unterscheiden sich die entstehenden Geheimtextblöcke auch dann, wenn die jeweiligen Klartextblöcke gleich sind.

Der IV muss dabei nicht geheim gehalten werden und kann im Klartext mit der verschlüsselten Nachricht übermittelt werden. Im beschriebenen Fall würde der Geheimtext des Block als IV des Blocks fungieren, so dass für die Kryptanalysten ohnehin Initialisierungsvektoren bekannt wären.

Hashen

Eine kryptografische Hashfunktion verarbeitet eine Nachricht meist blockweise iterativ, indem ein Nachrichtenblock mit einem Verkettungsblock verrechnet wird, was den nächsten Verkettungsblock ergibt. Der erste Nachrichtenblock wird dabei mit dem IV verrechnet. Diese Grundschema gilt für sehr viele heute genutzte Hashfunktionen, sowohl nach der Merkle-Damgård-Konstruktion aufgebaute als auch Sponge-Konstruktionen wie SHA-3. Der IV ist dabei meist konstant und pseudozufällig, am besten eine Unverdächtige Konstante. Im Fall von SHA-3 besteht der IV aus Null-Bits.

Der IV kann auch genutzt werden, um den Hashprozess abhängig von Zusatzdaten zu machen. Zum Beispiel kann die Länge des zu berechnenden Hashwerts in den IV eingehen, damit eine Nachricht, wenn sie mit verschiedenen Versionen eines Hashverfahrens verarbeitet wird, die Hashwerte unterschiedlicher Länge liefern, keine korrelierten Hashwerte ergibt, indem z. B. ein Hashwert ein Anfangsstück des anderen ist.

Siehe auch

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.