0Pricing
Cryptology Academy · Lektion

Grundlagen von Blockchiffren und Padding

Verstehen Sie Blockgröße, PKCS7-Padding und den Aufbau von Chiffren.

Grundlagen von Blockchiffren und Padding ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

Blockchiffren verschlüsseln Blöcke fester Größe. Wenn der Klartext einen Block nicht vollständig ausfüllt, benötigen wir Padding. In dieser Einheit lernen Sie den Aufbau von Blockchiffren, Padding-Verfahren und deren Bedeutung kennen.

Wiederholung der Blockgröße

AES verwendet 128-Bit-Blöcke (16 Byte). DES verwendete 64-Bit-Blöcke (8 Byte). Wenn der Klartext genau 16 Byte lang ist, entspricht er einem Block. 17 Byte erfordern zwei Blöcke.

Warum Padding erforderlich ist

Wenn der Klartext 20 Byte lang ist, enthält der zweite Block nur 4 Byte. Die Chiffre benötigt jedoch einen vollständigen 16-Byte-Block. Wir füllen die verbleibenden 12 Byte mit einem deterministischen, umkehrbaren Verfahren auf.

PKCS#7-Padding

PKCS#7 füllt mit N Byte auf, wobei jedes den Wert N hat: - 3 Byte erforderlich → anhängen: 03 03 03 - 12 Byte erforderlich → anhängen: 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C - 0 Byte erforderlich → vollständigen Block mit 16 Byte anhängen: 10×16

Immer einen vollständigen Block auffüllen

Wenn der Klartext genau 16 Byte lang ist, fügt PKCS#7 einen zusätzlichen vollständigen Block aus 0x10×16 hinzu. Dadurch weiß der Empfänger immer, wo das Padding endet: Der Wert des letzten Byte gibt an, wie viele Byte entfernt werden müssen.

PKCS#7 in Python

def pkcs7_pad(data: bytes, block_size: int = 16) -> bytes: n = block_size - (len(data) % block_size) return data + bytes([n] * n) def pkcs7_unpad(data: bytes) -> bytes: n = data[-1] return data[:-n]

Padding-Oracle-Angriffe

Wenn ein Server nach der Entschlüsselung verrät, ob das Padding gültig ist (durch eine Fehlermeldung oder anhand der Antwortzeit), kann ein Angreifer den Chiffretext Byte für Byte entschlüsseln, ohne den Schlüssel zu kennen. Dadurch wurde 2010 ASP.NET ViewState kompromittiert.

Zero-Padding und ANSI X.923

Zero-Padding: mit 0x00-Byte auffüllen (mehrdeutig – die ursprünglichen Daten könnten mit Nullen enden). ANSI X.923: mit Nullen auffüllen, letztes Byte = Anzahl. ISO 7816-4: erstes Padding-Byte = 0x80, danach 0x00. PKCS#7 ist eindeutig und wird bevorzugt.

Bitweises Padding (CTS)

Ciphertext Stealing (CTS) kommt vollständig ohne Padding aus: Die letzten beiden Blöcke werden umgeordnet, um Eingaben mit einem unvollständigen Block zu verarbeiten. Es wird bei der Festplattenverschlüsselung eingesetzt (Kerberos, einige AES-Implementierungen).

Sicherheitsauswirkungen der Blockgröße

Bei 64-Bit-Blöcken (DES, 3DES, Blowfish) tritt nach 2^32 Blöcken eine Geburtstagskollision auf (~32 GB). Browser deaktivierten 3DES in TLS, nachdem der SWEET32-Angriff dies 2016 demonstriert hatte. Die 128-Bit-Blöcke von AES benötigen 2^64 Blöcke – das ist praktisch sicher.

Modi ohne Padding

AES-CTR und AES-GCM benötigen kein Padding: Sie verwenden die Blockchiffre als Keystream-Generator und verarbeiten Eingaben beliebiger Länge per XOR. Die Blockgrenze ist ein internes Implementierungsdetail.

Schnelltest

Welches Padding wird bei PKCS#7 mit 16-Byte-Blöcken an eine 13 Byte lange Nachricht angehängt?

Zusammenfassung

Sie beherrschen jetzt das Padding von Blockchiffren! Als Nächstes vergleichen wir die Modi ECB und CBC – beginnend mit dem berühmten ECB-Pinguin-Angriff.

Häufig gestellte Fragen

Ist die Lektion „Grundlagen von Blockchiffren und Padding“ kostenlos?

Ja — der vollständige Text von „Grundlagen von Blockchiffren und Padding“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Grundlagen von Blockchiffren und Padding“?

Verstehen Sie Blockgröße, PKCS7-Padding und den Aufbau von Chiffren. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Grundlagen von Blockchiffren und Padding“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen von Blockchiffren und Padding
  2. ECB vs. CBC: Muster und IVs
  3. CTR-Modus und Verhalten von Stromchiffren
  4. GCM und authentifizierte Verschlüsselung
← Zurück zu Cryptology Academy