Zum Inhalt springen
uencoder

Padding

Padding ist der Mechanismus, der den Klartext bis zu einer Blockgrenze verlängert; gängige Verfahren sind PKCS#7, Zero-Padding und ISO 10126, während AEAD-Modi keins benötigen.

Zweck

Es ermöglicht Blockchiffren, Klartexte zu verarbeiten, deren Länge kein Vielfaches der Blockgröße ist.

Mechanismus

Dem Klartext werden Bytes angehängt, damit die Gesamtlänge ein Vielfaches der Blockgröße wird; beim Entschlüsseln werden sie entfernt. PKCS#7 hängt n Bytes mit Wert n an (reversibel und selbstverifizierend). Zero-Padding ist einfach, kann aber Padding und Daten nicht unterscheiden. Strommodi (CTR) und AEAD (GCM) brauchen kein Padding.

Anwendungsfälle

  • AES-CBC/PKCS#7-Padding
  • RSA-OAEP-Padding
  • Altlasten des Zero-Paddings
  • Lehrbeispiele

Beispiele

  • Eingabe
    3 bytes + PKCS#7 (block=8)
    Output
    appends 05 05 05 05 05

    Pads with five 0x05 bytes

Häufige Fehler

Zero padding cannot distinguish trailing data zeros from padding
Use a self-describing scheme such as PKCS#7
Padding errors fall to Padding Oracle attacks
Use AEAD or constant-time validation

Verwandte Begriffe

Verwandte Tools

References