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)Outputappends 05 05 05 05 05Pads 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
PKCS#7 Padding
Das PKCS#7-Padding hängt n Bytes des Werts n (1 ≤ n ≤ Blockgröße) an das Ende des Klartexts an; umkehrbar und selbstprüfend, ist es das De-facto-Standard-Padding des CBC-Modus. GLOSSAR
Block Cipher
Eine Blockchiffre ist ein symmetrisches Verschlüsselungsverfahren, das Blöcke fester Länge (z. B. 128 Bits) ver- und entschlüsselt und eines Betriebsmodus bedarf, um Daten beliebiger Länge zu verarbeiten. GLOSSAR
CBC (Cipher Block Chaining)
Der CBC-Modus verknüpft den vorherigen Geheimtextblock per XOR mit dem aktuellen Klartext, bevor verschlüsselt wird, sodass identische Klartextblöcke unterschiedliche Geheimtexte ergeben; er erfordert einen zufälligen IV, bietet aber keine Integritätsauthentifizierung. GLOSSAR