Über SM4
SM4 ist die chinesische nationale Blockchiffre mit einer 128-Bit-Blockgröße und einem 128-Bit-Schlüssel. Sie wird im gesamten GM/T-Standards-Ökosystem eingesetzt, einschließlich SM TLS/SSL, WAPI für WLAN-Sicherheit, E-Government und Finanzen.
Verhältnis zu AES
- Gemeinsamkeiten:
- Beide sind 128-Bit-Blockchiffren; unterstützen gängige Modi (ECB/CBC) und Standard-Paddings (PKCS#5/7).
- Sehr ähnliches Betriebsmodell: benötigt einen Schlüssel (Key), optionalen IV, wählt Modus und Padding, verarbeitet dann Klartext blockweise.
- Unterschiede:
- Standards & Ökosystem: AES ist ein internationaler Standard (FIPS 197) und global verbreitet; SM4 ist ein chinesischer nationaler Standard (GM/T-Reihe), der zur Erfüllung lokaler Compliance- und regulatorischer Anforderungen dient.
- Schlüssellänge: AES unterstützt 128/192/256-Bit-Schlüssel; SM4 ist fest auf 128 Bit.
- Leistung & Hardware: moderne CPUs/GPUs haben breitere Hardwarebeschleunigung für AES; SM4-Hardwarebeschleunigung verbessert sich und hängt von der Plattform ab.
- Compliance: In China oder China-zugewandten Szenarien wird SM4 oft für „GuoMi"-Compliance verlangt; grenzüberschreitende/globale Szenarien nutzen üblicherweise AES.
ECB vs CBC
| Item |
ECB |
CBC |
| Nutzt IV |
Nein |
Ja (16 Byte) |
| Fehlerfortpflanzung |
Keine |
Ja (pro Block) |
| Parallelität |
Hoch |
Niedrig (verkettet) |
| Sicherheit |
Niedrig (offenbart Struktur) |
Hoch (empfohlen) |
| Typischer Einsatz |
Zufallsdaten, Tests |
Echte Geschäftsdaten |
- ECB: verschlüsselt jeden 16-Byte-Block unabhängig; gibt Strukturmuster preis. Nicht empfohlen für strukturierte/repetitive Daten.
- CBC: nutzt einen zufälligen und nicht wiederverwendbaren 16-Byte-IV; verkettet benachbarte Blöcke, maskiert Muster effektiv und verbessert die Sicherheit für den Geschäftseinsatz.
Padding & Ausrichtung
- PKCS#5/PKCS#7: füllt automatisch auf ein Vielfaches von 16 Byte auf; geeignet für die meisten Text/Binärdaten.
- NoPadding: keine Auffüllung; Klartext/Chiffretext muss ein Vielfaches von 16 Byte sein; geeignet für vorab ausgerichtete Daten oder eigene Protokolle.
Empfehlungen
- Moduswahl: bevorzuge CBC; vermeide ECB für strukturierte Daten.
- IV-Verwaltung: CBC-IV muss kryptografisch sicherer Zufall und pro Verschlüsselung eindeutig sein.
- Schlüsselgenerierung: nutze sichere zufällige 128-Bit-Schlüssel; vermeide schwache/vorhersagbare Werte.
- Ausgabeformat: nutze HEX oder Base64 für Chiffretext; Base64 wird für den systemübergreifenden Transport empfohlen.
- Compliance: in China oder GuoMi-konformen Systemen SM4 nutzen; in internationalen Ökosystemen ist AES typischerweise primär.