RFC 3610 – Counter with CBC-MAC (CCM)
| Status | Informational |
|---|---|
| Veröffentlicht | September 2003 |
| Volltext | rfc-editor.org/rfc/rfc3610 |
RFC 3610 spezifiziert Counter with CBC-MAC (CCM), einen generischen authentisierten Verschlüsselungsmodus für Blockchiffren mit 128-Bit-Blockgröße, wie etwa AES. CCM kombiniert die Vertraulichkeit des Counter-Modus (CTR) mit der Integritätssicherung durch einen CBC-MAC (Cipher Block Chaining Message Authentication Code). Der Modus authentisiert zusätzliche Daten (Additional Authenticated Data, AAD), die unverschlüsselt bleiben, sowie den verschlüsselten Nutztext. Parametrisierbar sind die Länge des Authentisierungfelds (M) und die Längenfeldgröße (L), was einen Kompromiss zwischen Nachrichtenexpansion, Nonce-Größe und maximaler Nachrichtenlänge erlaubt.
Im Kern wird zuerst der CBC-MAC über einer strukturierten Sequenz von 16-Byte-Blöcken berechnet: Beginnend mit einem Steuerblock (B0), der Flags, Nonce und Nachrichtenlänge kodiert, gefolgt von der AAD und dem Klartext (aufgefüllt auf Blockgrenzen). Das Resultat ist ein Authentisierungswert T. Anschließend wird der Klartext mittels des Counter-Modus verschlüsselt, wobei die Counter-Blöcke die gleiche Nonce und Länge wie B0 verwenden, sich aber durch ein spezifisches Flag-Feld unterscheiden, um die Blockidentität für Authentisierung und Verschlüsselung zu trennen.
CCM ist als Informationsdokument (kein Standard) veröffentlicht und dient als Grundlage für zahlreiche Sicherheitsprotokolle wie IEEE 802.11i (WPA2), IPsec (RFC 4309) und TLS. Seine Bedeutung liegt darin, dass es als effizienter, patentfreier Modus mit einer starken Kombination aus Vertraulichkeit und Integrität gilt, insbesondere für eingebettete Systeme mit begrenzter Rechenleistung. Die Spezifikation legt die algorithmischen Schritte, Parameter und Blockformate präzise fest, sodass interoperable Implementierungen möglich sind.