EMZETT.
Login

Nonce und Initialisierungsvektor (IV)

Kurz: Eine Nonce („number used once”) und ein Initialisierungsvektor sind Zusatzwerte, die dafür sorgen, dass dieselbe Nachricht mit demselben Schlüssel jedes Mal anders verschlüsselt wird.

Genauer: Sie sind nicht geheim, aber ihre Eigenschaften sind entscheidend: Eine Nonce darf sich nie wiederholen, ein IV muss je nach Modus unvorhersagbar (zufällig) sein.

Im Detail

  • Warum nötig: Ohne sie ergäben gleiche Klartexte gleiche Geheimtexte, und man erkennt Wiederholungen.
  • Nonce: Oft ein Zähler oder ein Zufallswert. Bei CTR/GCM/ChaCha20 reicht „einmalig”, Zufälligkeit ist nicht nötig, aber Wiederholung ist fatal: Zwei Nachrichten mit gleichem Schlüssel und gleicher Nonce verraten das XOR ihrer Klartexte, und bei GCM kann der Authentifizierungsschlüssel auffliegen.
  • IV bei CBC: Muss zufällig und unvorhersagbar sein.
  • Mitschicken: Nonce/IV wird meist vor den Geheimtext gehängt und im Klartext übertragen.
  • Zufallsnonce: Bei 96 Bit und sehr vielen Nachrichten droht eine Kollision (Geburtstagsparadoxon). Dann sind Zähler oder Schlüsselwechsel besser. Siehe Zufallszahlen.
  • Auch außerhalb: Bei Anmeldeverfahren und Blockchains als Einmalwert gegen Wiederholung („Replay”).

Siehe auch: ChaCha20-Poly1305