SM9 identitätsbasierte Kryptografie (IBC)

SM9 ist das identitätsbasierte Mitglied der chinesischen SM-Suite: Jede Zeichenkette — eine E-Mail-Adresse, eine Telefonnummer, eine Gerätenummer — funktioniert unmittelbar als öffentlicher Schlüssel, und ein Key Generation Centre stellt die passenden privaten Schlüssel aus. Dies ist eine reine Erklärungsseite: wie IBE und IBS Schritt für Schritt funktionieren, wie sich identitätsbasierte Kryptografie mit PKI-Zertifikaten vergleicht und die offiziellen Kurvenparameter.
Rechner geplant. Ein browserseitiger SM9-Rechner steht auf der Roadmap der Kryptofamilie — die Paarungsmaschinerie (Erweiterungskörperturm Fp12, Miller-Schleife, Endexponentiation) ist ein eigener Kern. Bis dahin berechnen die verwandten Seiten SM2, SM3 und SM4 vollständig in Ihrem Browser.
Was ist SM9?
In einem Satz: SM9 ist der chinesische nationale Standard für identitätsbasierte Kryptografie (GB/T 38635.1/.2-2020, Nachfolger der Reihe GM/T 0044-2016): Der öffentliche Schlüssel ist eine Identitätszeichenkette wie bob@example.com, der passende private Schlüssel wird von einem vertrauenswürdigen Key Generation Centre (KGC) ausgestellt, und die Mathematik, die das ermöglicht, ist eine bilineare Paarung auf einer 256-Bit-BN-Kurve.

Herkömmliche Public-Key-Kryptografie (RSA, SM2, ECC) beantwortet die Frage „Ist das wirklich Bobs Schlüssel?“ mit Zertifikaten: Eine CA-Hierarchie bürgt dafür, dass ein zufällig aussehendes Schlüsselbündel zu Bob gehört. Die identitätsbasierte Kryptografie dreht dies um: der Name selbst ist das Schlüsselmaterial. Jeder, der Bobs E-Mail-Adresse kennt, kann an ihn verschlüsseln oder seine Signaturen prüfen, ohne etwas abzurufen — kein Zertifikatsverzeichnis, keine Validierung einer Vertrauenskette. Der Preis ist eine vertrauenswürdige dritte Partei, die jeden privaten Schlüssel ableiten kann, und deutlich schwerere Mathematik. SM9 ist die standardisierte chinesische Umsetzung dieses Tauschs.

Die Beteiligten: wer was besitzt
RolleWas es ist
Identität (ID)Eine beliebige Byte-Zeichenkette, z. B. bob@example.com, direkt als öffentlicher Schlüssel verwendet. Sie muss kanonisch sein: Byte für Byte, keine zwei Schreibweisen derselben Person.
KGCKey Generation Centre: hält den privaten Hauptschlüssel, prüft, wem eine Identität gehört, und stellt den passenden privaten Nutzerschlüssel aus.
HauptschlüsselpaareZwei unabhängige Paare: Signatur (geheim ks, öffentlich Ppub-s = [ks]P2) und Verschlüsselung (geheim ke, öffentlich Ppub-e = [ke]P1). Beachten Sie die bewusste Asymmetrie: Der eine öffentliche Hauptschlüssel liegt in G2, der andere in G1.
Privater NutzerschlüsselEin Punkt auf der Kurve, von der KGC aus der ID abgeleitet. Der Signierschlüssel dsA liegt in G1; der Entschlüsselungsschlüssel deB liegt in G2.
hidEin Ein-Byte-Funktionskennzeichen, das in jede Schlüsselableitung eingemischt wird, sodass eine Identität kryptografisch unabhängige Schlüssel für Signatur, Verschlüsselung und Schlüsselaustausch ergibt.
H1, H2, KDFAuf SM3 basierende Hilfsfunktionen (GB/T 32905): Abbildungen von Hashwerten auf ganze Zahlen und die Schlüsselableitungsfunktion.
Paarung eDie bilineare R-ate-Paarung e: G1 × G2 → GT über der unten definierten 256-Bit-BN-Kurve. Die algebraische Maschine des gesamten Verfahrens.
Wie die identitätsbasierte Verschlüsselung (IBE) nach SM9 funktioniert

Alice möchte ein Geheimnis an bob@example.com senden — möglicherweise bevor Bob sich jemals bei der KGC registriert hat:

1. Alice leitet den öffentlichen Schlüssel von Bob selbst ab: QB = [H1(IDB ‖ hid, N)]P1 + Ppub-e. Kein Verzeichnisabruf, kein Zertifikatsabruf — Identitätszeichenkette und öffentlicher Hauptschlüssel genügen ihr.
2. Flüchtig: zufälliges r; den Punkt C1 = [r]QB berechnen.
3. Paarung: g = e(Ppub-e, P2), danach w = gr.
4. Schlüssel: K = KDF(C1 ‖ w ‖ IDB, klen) (auf SM3 basierend), aufgeteilt in K1 (Verpackungsschlüssel) und K2 (MAC-Schlüssel).
5. Maskierung: C2 = die Nachricht, mit K1 per XOR verknüpft (oder darunter verschlüsselt); C3 = MAC(K2, C2). Der Chiffretext bündelt C1, C3 und C2.
6. Bob bei jeder Registrierung: Die KGC prüft, dass er wirklich bob@example.com ist, und stellt deB = [ke·(H1(IDB ‖ hid, N) + ke)-1]P2 aus. Er berechnet dann w′ = e(C1, deB), baut dasselbe K auf, prüft das MAC und hebt die Maskierung der Nachricht auf.

Warum es funktioniert: Durch Bilinearität gilt e(C1, deB) = e([r(H1+ke)]P1, [ke/(H1+ke)]P2) = e(P1, P2)r·ke = w — genau der Wert, den Alice in die KDF eingebracht hat. Das Elegante an Schritt 6: Die Verschlüsselung braucht keine vorherige Registrierung. Alice kann heute eine Nachricht versiegeln; Bob kann sie erst öffnen, nachdem er seine Identität gegenüber der KGC nachgewiesen hat. Die verzögerte Schlüsselerzeugung ist das Kennzeichen der IBE.

Wie die identitätsbasierten Signaturen (IBS) nach SM9 funktionieren

Alice signiert eine Nachricht M mit ihrem Signaturschlüssel dsA:

1. g = e(P1, Ppub-s); zufälliges r; w = gr.
2. h = H2(M ‖ w, N); l = (r − h) mod N (mit einem frischen r wiederholen, falls l = 0).
3. S = [l]dsA. Die Signatur ist das Paar (h, S).

Jeder, der Alices Identität kennt, prüft sie ohne jedes Zertifikat:

4. P = [H1(IDA ‖ hid, N)]P2 + Ppub-s; u = e(S, P); w′ = u · gh.
5. Die Signatur ist genau dann gültig, wenn H2(M ‖ w′, N) = h.

Wiederum schließt die Bilinearität den Kreis: u = e(P1,P2)l·ks und gh = e(P1,P2)ks·h, also w′ = e(P1,P2)ks·(l+h) = e(P1,P2)ks·r = w.

Identitätsbasiert gegenüber zertifikatsbasiert (IBE gegenüber PKI)

Dies ist die Entscheidung, auf die es bei der Wahl von SM9 tatsächlich ankommt. Beide Welten bieten Public-Key-Verschlüsselung und Signaturen; sie unterscheiden sich darin, wo das Vertrauen liegt:

AspektPKI / Zertifikate (SM2-, RSA-Welt)Identitätsbasiert (SM9)
Öffentlicher Schlüssel von bob@…Ein Bündel von mehr als 65 Byte in einem Zertifikat, abgerufen aus einem Verzeichnis oder vom Empfänger selbstDie Zeichenkette bob@example.com selbst; der Prüfer berechnet den Schlüssel daraus
VertrauenswurzelEine CA-Hierarchie; jede Kette muss bis zu einer Wurzel validiert werdenEin öffentlicher Hauptschlüssel der KGC für die ganze Domäne
Verschlüsseln, bevor der Empfänger einen Schlüssel hat?Nein — Sie brauchen zuerst sein gültiges ZertifikatJa — jetzt verschlüsseln; er registriert sich und entschlüsselt später
Privater Schlüssel erzeugt durchDer eigene Rechner oder das Gerät des Nutzers (verlässt es oft nie)Die KGC, zentral, aus der Identität
SchlüsselhinterlegungKonstruktionsbedingt keineSystembedingt: Die KGC kann den privaten Schlüssel jedes Nutzers ableiten
SperrungCRLs / OCSP je ZertifikatKein Gegenstück; üblich ist, Gültigkeitsfenster in die ID einzubetten (z. B. bob@example.com|2026), damit Schlüssel konstruktionsbedingt ablaufen
Kosten pro OperationGewöhnliche ECC-Arithmetik — schnellEine bilineare Paarung — um Größenordnungen langsamer als eine skalare Multiplikation
StandardsX.509 / RFC 5280; SM2 nach GB/T 32918GB/T 38635.1/.2-2020 (zuvor GM/T 0044-2016)
Natürlicher EinsatzbereichOffenes Internet: TLS, Codesignatur, allgemeine PKIGeschlossene Ökosysteme: die Nachrichtendienste einer Bank, die E-Mail einer Behörde, Flotten- und Geräteidentität — wo eine zentrale Autorität akzeptabel ist und die registrierungsfreie Verschlüsselung sich lohnt

Faustregel: SM9 bietet Schlüsselverwaltung ohne Zertifikate, dafür mit Schlüsselhinterlegung und langsamerer Mathematik. Wenn Sie keine dritte Partei akzeptieren können, die alles lesen oder jede Identität fälschen kann, bleiben Sie bei SM2-Zertifikaten; ist eine registrierungsfreie Verschlüsselung innerhalb einer Organisation das Ziel, ist SM9 genau das richtige Werkzeug.

SM9-Systemparameter (offizielle 256-Bit-BN-Kurve)

Der Parametersatz aus GB/T 38635.1-2020 (auch in GM/T 0044.5-2017). Dies sind schreibgeschützte Referenzwerte — der Selbsttest unten prüft jede Konstante auf dieser Seite gegen unabhängig verifizierte Werte:

ElementWert
KurveBarreto–Naehrig-(BN-)Kurve E: y2 = x3 + b über Fp, b = 05
Kurvenparameter t60000000 0058F98A
Körper-Primzahl pB6400000 02A3A6F1 D603AB4F F58EC745 21F2934B 1A7AEEDB E56F9B27 E351457D
Gruppenordnung NB6400000 02A3A6F1 D603AB4F F58EC744 49F2934B 18EA8BEE E56EE19C D69ECF25
Parametrisierungp = 36t4 + 36t3 + 24t2 + 6t + 1; N = 36t4 + 36t3 + 18t2 + 6t + 1
Kofaktor1
Einbettungsgrad k12 (Körperturm Fp → Fp2 → Fp4 → Fp12)
PaarungR-ate-Paarung e: G1 × G2 → GT, alle drei Gruppen der Ordnung N
Erzeuger P1 von G1 (auf E)x = 93DE051D 62BF718F F5ED0704 487D01D6 E1E40869 09DC3280 E8C4E481 7C66DDDD
y = 21FE8DDA 4F21E607 63106512 5C395BBC 1C1C00CB FA602435 0C464CD7 0A3EA616
Erzeuger P2 von G2 (auf der Verdrillung E′: y2 = x3 + 5·u über Fp2, u2 = −2)xc0 = 37227552 92130B08 D2AAB97F D34EC120 EE265948 D19C17AB F9B7213B AF82D65B
xc1 = 85AEF3D0 78640C98 597B6027 B441A01F F1DD2C19 0F5E93C4 54806C11 D8806141
yc0 = A7CF28D5 19BE3DA6 5F317015 3D278FF2 47EFBA98 A71A0811 6215BBA5 C999A7C7
yc1 = 17509B09 2E845C12 66BA0D26 2CBEE6ED 0736A96F A347C8BD 856DC76B 84EBEB96
(Fp2-Elemente geschrieben als c0 + c1·u)
Hash / KDFH1, H2 und die KDF bauen auf SM3 auf (GB/T 32905-2016); hid ist ein Ein-Byte-Funktionskennzeichen, von der KGC gewählt
Wo SM9 innerhalb der SM-Suite steht
  • SM9 (diese Seite) — der Umbruch der Schlüsselverwaltung: Identitäten statt Zertifikate, KGC statt CA-Hierarchie.
  • SM3 — der Hash; H1/H2/KDF von SM9 bauen darauf auf. Digests berechnen Sie auf der SM3-Seite.
  • SM4 — die Blockchiffre, die typischerweise die Massendaten unter dem Schlüssel verschlüsselt, den die KDF von SM9 erzeugt. Probieren Sie es auf der SM4-Seite aus.
  • SM2 — das Gegenstück der Zertifikatswelt: dieselben Aufgaben (signieren, verschlüsseln) mit gewöhnlicher ECC und einer PKI dahinter. Der vollständige Rechner findet sich auf der SM2-Seite.
Hinweis zur Konformität: SM9 ist eine Entscheidung zur Unabhängigkeit der Suite und zur Schlüsselverwaltung für regulierte chinesische Einsätze und in der Stärke mit anderen Systemen von rund 128 Bit vergleichbar. Produktive Einführungen müssen den Hauptschlüssel der KGC als wertvollstes Gut behandeln — typischerweise in einem HSM, auf mehrere Treuhänder aufgeteilt oder beides.
Häufige Missverständnisse
  • „Die Identität ist der öffentliche Schlüssel, also kann jeder meine E-Mail entschlüsseln.“ Nein — jeder kann an die Identität verschlüsseln und Signaturen von ihr prüfen; nur der Inhaber des von der KGC ausgestellten privaten Schlüssels kann entschlüsseln oder signieren. Die KGC prüft, wer Bob wirklich ist, bevor sie deB herausgibt.
  • Die Schlüsselhinterlegung ignorieren. Ein kompromittierter Hauptschlüssel der KGC bedeutet, dass der Angreifer still jeden privaten Schlüssel eines Nutzers ableiten kann — vollständige Entschlüsselung und vollständige Identitätsübernahme für die Domäne. Das ist Absicht (so funktioniert identitätsbasierte Kryptografie) und kein Fehler, der sich patchen ließe. Mindern Sie betrieblich: HSM, auf mehrere Stellen aufgeteilte KGC mit Schwellenwert, strenge Prüfprotokolle der Ausstellung.
  • Annehmen, dass die Identitätszeichenkette nachsichtig ist. Sie wird Byte für Byte gehasht: Bob@Example.COM, bob@example.com und " bob@example.com" sind drei verschiedene öffentliche Schlüssel mit drei verschiedenen privaten Schlüsseln. Legen Sie vor der Einführung ein kanonisches Format fest — und erwägen Sie ein Gültigkeitsfenster im Bezeichner, um Sperrungen zu ermöglichen.
  • „256-Bit-Kurve, also 256-Bit-Sicherheit.“ Paarungsbasierte Kryptografie skaliert nicht wie gewöhnliche ECC: Angriffe wirken in den riesigen Körpern Fp12/Fp6, wo Index-Calculus-Verfahren (subexponentiell) greifen. Veröffentlichte Analysen ordnen 256-Bit-BN-Kurven grob der Sicherheitsklasse von rund 100–128 Bit zu, und Forscher haben größere BN-Parameter für SM9 vorgeschlagen (z. B. „Searching BN Curves for SM9“, 2019). Behandeln Sie SM9 etwa auf dem Niveau von AES-128 — solide, aber keine 256-Bit-Festung.
  • Erwarten, es in OpenSSL zu finden. OpenSSL implementiert SM2/SM3/SM4, hat aber kein SM9. Funktionierende Open-Source-Stacks sind GmSSL und Bouncy Castle.
FAQ

Ist SM9 eine chinesische Erfindung? Das Konzept nicht: Shamir schlug die identitätsbasierte Kryptografie 1984 vor, und Boneh–Franklin (2001) entwickelte die erste praktische paarungsbasierte IBE. SM9 (GM/T 0044-2016, danach GB/T 38635.1/.2-2020) ist die nationalstandardisierte Umsetzung Chinas dieser Linie.

Warum gibt es auf dieser Seite keinen SM9-Rechner? Anders als SM2/SM3/SM4 braucht SM9 eine bilineare Paarung: einen Erweiterungskörperturm Fp12, eine Miller-Schleife und eine Endexponentiation — mehrere tausend Zeilen sorgfältigen Code für große Zahlen. Er steht auf der Roadmap der Familie; bis dahin dokumentiert diese Seite den Algorithmus, und die verwandten Seiten berechnen den Rest der Suite im Browser.

Kann SM9 SM2, SM3 und SM4 ersetzen? Nein — sie lösen verschiedene Probleme. SM9 ersetzt die Zertifikatsinfrastruktur, nicht die Grundverfahren: Intern stützt es sich für Hashing und Schlüsselableitung auf SM3, und der verpackte Massenschlüssel steuert typischerweise SM4. SM2 bleibt die Antwort, wenn zertifikatsartige Nachvollziehbarkeit ohne Schlüsselhinterlegung verlangt ist.

Was genau ist hid? Ein Ein-Byte-Funktionskennzeichen (von der KGC gewählt und veröffentlicht), das in jeden H1-Hash eingemischt wird. Da Signierschlüssel, Verschlüsselungsschlüssel und Schlüsselaustauschschlüssel die Identität mit unterschiedlichen hid-Werten hashen, kompromittiert ein durchgesickerter Nutzerschlüssel nur diese eine Funktion.

Wie werden Identitäten gesperrt? In SM9 gibt es keinen CRL-Mechanismus. Übliche Praxis: das Ablaufdatum in die Identität selbst einbetten (bob@example.com|2026-Q4), damit Schlüssel regelmäßig neu ausgestellt werden müssen, und die KGC einfach keine Schlüssel mehr für gesperrte Identitäten ausstellen lassen.

Wo wird SM9 tatsächlich eingesetzt? In regulierten chinesischen Bereichen — Banken, Behörden und branchenspezifische Nachrichtendienste — typischerweise in geschlossenen Ökosystemen, in denen eine einzige Autorität akzeptabel ist und „heute an eine E-Mail-Adresse verschlüsseln, morgen den Nutzer registrieren“ die Kosten der Paarung wert ist.

Selbsttest
Dies ist eine schreibgeschützte Seite, daher prüft der Selbsttest die Seite selbst: Jede oben gezeigte Kurvenkonstante wird gegen unabhängig verifizierte Werte geprüft (die Primzahl p und die Ordnung N, aus den BN-Parametern neu berechnet; beide Erzeuger auf der Kurve mit der Ordnung N geprüft), die Standardnummern, die Invarianten der Vorlage (kein DOCTYPE, Build-Markierung), Querverweise und das Vorhandensein der FAQ.