Kryptografia založená na identite SM9 (IBC)

SM9 je člen čínskej sady SM zameraný na identitu: ľubovoľný reťazec — e-mailová adresa, telefónne číslo, sériové číslo zariadenia — funguje priamo ako verejný kľúč a Centrum generovania kľúčov vydáva zodpovedajúce súkromné kľúče. Táto stránka je len vysvetlenie na čítanie: ako IBE a IBS fungujú krok za krokom, ako sa kryptografia založená na identite porovnáva s certifikátmi PKI a oficiálne parametre krivky.
Kalkulačka je v pláne. Kalkulačka SM9 na strane prehliadača je na pláne rodiny kryptografických nástrojov — mechanizmus párovania (veža rozšírenia poľa Fp12, Millerova slučka, konečné umocnenie) je samostatné jadro. Medzitým susedné stránky plne počítajú SM2, SM3 a SM4 úplne v prehliadači.
Čo je SM9?
Jednou vetou: SM9 je čínsky národný štandard pre kryptografiu založenú na identite (GB/T 38635.1/.2-2020, nástupca série GM/T 0044-2016): verejný kľúč je identifikačný reťazec ako bob@example.com, zodpovedajúci súkromný kľúč vydáva dôveryhodné Centrum generovania kľúčov (KGC) a matematika, ktorá to umožňuje, je bilineárne párovanie na 256-bitovej krivke BN.

Konvenčná kryptografia s verejným kľúčom (RSA, SM2, ECC) odpovedá na otázku „je toto naozaj Bobov kľúč?“ certifikátmi: hierarchia CA potvrdzuje, že určitý náhodne vyzerajúci blok kľúča patrí Bobovi. Kryptografia založená na identite to obracia: samotné meno je materiál kľúča. Ktokoľvek, kto pozná Bobovu e-mailovú adresu, mu môže šifrovať alebo overovať jeho podpisy bez akéhokoľvek sťahovania — žiadny adresár certifikátov, žiadne overovanie reťaza dôvery. Cenou je dôveryhodná tretia strana, ktorá dokáže odvodiť každý súkromný kľúč, a výrazne ťažšia matematika. SM9 je štandardizovaná čínska realizácia tohto kompromisu.

Obsadenie: kto čo drží
ÚlohaČo to je
Identita (ID)ľubovoľný bajtový reťazec, napr. bob@example.com, použitý priamo ako verejný kľúč. Musí byť kanonický: bajt po bajte presný, bez dvoch zápisov tej istej osoby.
KGCCentrum generovania kľúčov: drží hlavný súkromný kľúč, overuje, komu identita patrí, a vydáva zodpovedajúci používateľský súkromný kľúč.
Hlavné páry kľúčovDva nezávislé páry: podpisovanie (tajný ks, verejný Ppub-s = [ks]P2) a šifrovanie (tajný ke, verejný Ppub-e = [ke]P1). Treba si všimnúť zámernú asymetriu: jeden hlavný verejný kľúč je v G2, druhý v G1.
Súkromný kľúč používateľabod na krivke, odvodený z ID KGC. Podpisový kľúč dsA je v G1; dešifrovací kľúč deB je v G2.
hidjednobajtový identifikátor funkcie zmiešaný do každého odvodenia kľúča, takže jedna identita dá kryptograficky nezávislé kľúče na podpisovanie, šifrovanie a výmenu kľúčov.
H1, H2, KDFPomocné funkcie na báze SM3 (GB/T 32905): zobrazenia hash-na-celé-číslo a funkcia odvodenia kľúča.
Párovanie ePárovanie R-ate e: G1 × G2 → GT nad 256-bitovou krivkou BN definovanou nižšie. Algebraický motor celej schémy.
Ako funguje šifrovanie založené na identite (IBE) v SM9

Alice chce poslať tajomstvo pre bob@example.com — možno skôr, než sa Bob kedy zaregistroval u KGC:

1. Alice si odvodzuje verejný kľúč Bobovi priamo: QB = [H1(IDB ‖ hid, N)]P1 + Ppub-e. Žiadne vyhľadávanie v adresári, žiadne načítanie certifikátu — stačí identifikačný reťazec a verejný hlavný kľúč.
2. Efemérne: náhodné r; vypočíta sa bod C1 = [r]QB.
3. Párovanie: g = e(Ppub-e, P2), potom w = gr.
4. Kľúče: K = KDF(C1 ‖ w ‖ IDB, klen) (na báze SM3), rozdelené na K1 (obalovací kľúč) a K2 (kľúč MAC).
5. Maskovanie: C2 = správa XOR-ovaná s K1 (alebo zašifrovaná pod ním); C3 = MAC(K2, C2). Šifrovaný text zväzuje C1, C3 a C2.
6. Bob pri registrácii: KGC overí, že ide naozaj o bob@example.com, a vydá deB = [ke·(H1(IDB ‖ hid, N) + ke)-1]P2. Potom sa vypočíta w′ = e(C1, deB), zostaví sa rovnaké K, overí sa MAC a odmaskuje sa správa.

Prečo to funguje: vďaka bilinearite e(C1, deB) = e([r(H1+ke)]P1, [ke/(H1+ke)]P2) = e(P1, P2)r·ke = w — presne tá hodnota, ktorú Alice zahrnula do KDF. Elegantná časť je krok 6: šifrovanie nevyžaduje predchádzajúcu registráciu. Alice môže správu zapečatiť dnes; Bob ju môže otvoriť až po preukázaní identity KGC. Odložené generovanie kľúčov je znakom IBE.

Ako fungujú podpisy založené na identite (IBS) v SM9

Alice podpíše správu M svojim podpisovým kľúčom dsA:

1. g = e(P1, Ppub-s); náhodné r; w = gr.
2. h = H2(M ‖ w, N); l = (r − h) mod N (opakuje sa s novým r, ak l = 0).
3. S = [l]dsA. Podpis je dvojica (h, S).

Ktokoľvek, kto pozná identitu Alice, ju overí bez akéhokoľvek certifikátu:

4. P = [H1(IDA ‖ hid, N)]P2 + Ppub-s; u = e(S, P); w′ = u · gh.
5. Podpis je platný práve vtedy, keď H2(M ‖ w′, N) = h.

Bilinearita uzatvára slučku aj tu: u = e(P1,P2)l·ks a gh = e(P1,P2)ks·h, takže w′ = e(P1,P2)ks·(l+h) = e(P1,P2)ks·r = w.

Šifrovanie založené na identite verzus na certifikátoch (IBE vs PKI)

Toto je rozhodnutie, na ktorom pri voľbe SM9 naozaj záleží. Oba svety ponúkajú šifrovanie s verejným kľúčom a podpisy; líšia sa v tom, kde leží dôvera:

AspektPKI / certifikáty (svet SM2, RSA)Založené na identite (SM9)
Verejný kľúč pre bob@…65+ bajtový blok v certifikáte, stiahnutý z adresára alebo od samotného príjemcuSamotný reťazec bob@example.com; overovateľ z neho kľúč vypočíta
Koreň dôveryhierarchia CA; každá reťaz musí byť overená až po koreňJeden hlavný verejný kľúč KGC pre celú doménu
Šifrovať skôr, než má príjemca kľúč?Nie — najprv je potrebný jeho platný certifikátÁno — zašifrovať teraz; príjemca sa zaregistruje a dešifruje neskôr
Súkromný kľúč generujeVlastný počítač alebo zariadenie používateľa (často ho nikdy neopustí)KGC centrálne, z identity
Úschova kľúčovPodľa návrhu žiadnyVlastná vlastnosť: KGC môže odvodiť súkromný kľúč každého používateľa
OdvolanieCRL / OCSP na každý certifikátŽiadny ekvivalent; obvyklá prax vkladá okná platnosti do ID (napr. bob@example.com|2026), takže kľúče vypršia konštrukčne
Cena za operáciuObyčajná aritmetika ECC — rýchlabilineárne párovanie — rády pomalšie než skalárne násobenie
ŠtandardyX.509 / RFC 5280; SM2 podľa GB/T 32918GB/T 38635.1/.2-2020 (predtým GM/T 0044-2016)
Prirodzené prostredieOtvorený internet: TLS, podpisovanie kódu, všeobecné PKIuzavreté ekosystémy: správy jednej banky, e-mail jednej agentúry, identita flotily/zariadení — kde je centrálna autorita prijateľná a šifrovanie bez registrácie sa oplatí

Pravidlo palca: SM9 prináša správu kľúčov bez certifikátov za cenu úschovy kľúčov a pomalšej matematiky. Ak nemožno prijať tretiu stranu, ktorá môže čítať všetko alebo sa vydávať za ktoréhokoľvek, zostáva sa pri certifikátoch SM2; ak je cieľom šifrovanie bez registrácie v rámci jednej organizácie, SM9 je presne ten nástroj.

Systémové parametre SM9 (oficiálna 256-bitová krivka BN)

Súbor parametrov z GB/T 38635.1-2020 (tiež v GM/T 0044.5-2017). Ide o referenčné hodnoty len na čítanie — samotest nižšie znovu overí každú konštantu na tejto stránke voči nezávisle overeným hodnotám:

PoložkaHodnota
Krivkakrivka Barreto–Naehrig (BN) E: y2 = x3 + b nad Fp, b = 05
Parameter krivky t60000000 0058F98A
Prvočíslo poľa pB6400000 02A3A6F1 D603AB4F F58EC745 21F2934B 1A7AEEDB E56F9B27 E351457D
Rád grupy NB6400000 02A3A6F1 D603AB4F F58EC744 49F2934B 18EA8BEE E56EE19C D69ECF25
Parametrizáciap = 36t4 + 36t3 + 24t2 + 6t + 1; N = 36t4 + 36t3 + 18t2 + 6t + 1
Kofaktor1
Vnorený stupeň k12 (veža poľa Fp → Fp2 → Fp4 → Fp12)
PárovaniePárovanie R-ate e: G1 × G2 → GT, všetky tri grupy majú rád N
Generátor G1 P1 (na E)x = 93DE051D 62BF718F F5ED0704 487D01D6 E1E40869 09DC3280 E8C4E481 7C66DDDD
y = 21FE8DDA 4F21E607 63106512 5C395BBC 1C1C00CB FA602435 0C464CD7 0A3EA616
Generátor G2 P2 (na twist E′: y2 = x3 + 5·u nad 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
(prvky Fp2 zapísané ako c0 + c1·u)
Hash / KDFH1, H2 a KDF sú postavené na SM3 (GB/T 32905-2016); hid je jednobajtový identifikátor funkcie zvolený KGC
Kde je SM9 v rámci sady SM
  • SM9 (táto stránka) — narušiteľ správy kľúčov: identity namiesto certifikátov, KGC namiesto hierarchie CA.
  • SM3 — hash; H1/H2 a KDF sú na ňom postavené. Odtlačky sa počítajú na stránke SM3.
  • SM4 — blková šifra, ktorá zvyčajne šifruje veľké údaje pod kľúčom, ktorý vytvorí KDF SM9. Vyskúšať ju možno na stránke SM4.
  • SM2 — protiklad zo sveta certifikátov: rovnaké úlohy (podpis, šifrovanie) s bežným ECC a PKI za ním. Úplná kalkulačka na stránke SM2.
Poznámka k súladu: SM9 je voľba nezávislosti sady a správy kľúčov pre regulované čínske nasadenia, porovnateľná silou s ostatnými systémami okolo 128 bitov. Produkčné nasadenia musia s hlavným kľúčom KGC zaobchádzať ako s najcennejším majetkom — zvyčajne sa drží v HSM, rozdelí medzi viacerých dôverníkov, alebo oboje.
Časté omyly
  • „Identita je verejný kľúč, takže môže ktokoľvek dešifrovať poštu.“ Nie — ktokoľvek môže šifrovať pre identitu a overovať podpisy z nej; dešifrovať alebo podpisovať môže len držiteľ súkromného kľúča vydaného KGC. KGC pred vydaním deB overí, kto Bob naozaj je.
  • Ignorovanie úschovy kľúčov. Kompromitovaný hlavný kľúč KGC znamená, že útočník môže potichu odvodiť každý používateľský súkromný kľúč — úplné dešifrovanie a úplné zosobnenie pre doménu. Je to zámer (tak funguje kryptografia založená na identite), nie chyba na opravu. Prevádzkovo sa zmierni HSM, prahovým rozdelením KGC medzi subjekty a prísnymi auditnými logmi vydávania.
  • Predpoklad, že identifikačný reťazec je zhovievavý. Hashuje sa bajt po bajte: Bob@Example.COM, bob@example.com a " bob@example.com" sú tri rôzne verejné kľúče s tromi rôznymi súkromnými kľúčmi. Pred nasadením treba zmraziť jeden kanonický formát — a zvážiť pripojenie časového okna platnosti kvôli odvolaniu.
  • „256-bitová krivka, teda 256-bitová bezpečnosť.“ Kryptografia založená na párovaní sa neškáluje ako obyčajné ECC: útoky fungujú vo veľkých poliach Fp12/Fp6, kde platia algoritmy index-calculus (subexponenciálne). Publikované analýzy zaraďujú 256-bitové krivky BN do triedy okolo ~100–128-bitovej bezpečnosti a výskumníci navrhli väčšie parametre BN pre SM9 (napr. „Searching BN Curves for SM9“, 2019). SM9 treba považovať zhruba za triedu AES-128 — pevnú, no nie pevnosť s 256 bitmi.
  • Očakávanie v OpenSSL. OpenSSL implementuje SM2/SM3/SM4, ale SM9 nemá. Fungujúce otvorené zásobníky zahŕňajú GmSSL a Bouncy Castle.
FAQ

Je SM9 čínsky vynález? Koncept nie: Shamir navrhol kryptografiu založenú na identite v roku 1984 a Boneh–Franklin (2001) zostavili prvé praktické IBE na báze párovania. SM9 (GM/T 0044-2016, potom GB/T 38635.1/.2-2020) je čínska národná štandardná realizácia tejto línie.

Prečo na tejto stránke nie je kalkulačka SM9? Na rozdiel od SM2/SM3/SM4 SM9 potrebuje bilineárne párovanie: vežu rozšírenia poľa Fp12, Millerovu slučku a konečné umocnenie — niekoľko tisíc riadkov opatrného kódu pre veľké čísla. Je to na pláne rodiny; dovtedy táto stránka dokumentuje algoritmus a susedné stránky počítajú zvyšok sady v prehliadači.

Môže SM9 nahradiť SM2, SM3 a SM4? Nie — riešia rozdielne problémy. SM9 nahrádza infraštruktúru certifikátov, nie primitíva: interne sa spolieha na SM3 na hashovanie a odvodenie kľúčov a obalený kľúč pre veľké údaje typicky riadi SM4. SM2 zostáva odpoveďou vtedy, keď je potrebná zodpovednosť v štýle certifikátov bez úschovy kľúčov.

Čo presne je hid? Jednobajtový identifikátor funkcie (zvolený a zverejnený KGC), ktorý sa zmieša do každého hashu H1. Pretože podpisové kľúče, šifrovacie kľúče a kľúče výmeny hashujú identitu spolu s rôznymi hodnotami hid, jeden uniknutý používateľský kľúč kompromituje iba jednu funkciu.

Ako sa identity odvolávajú? V SM9 nie je mechanizmus CRL. Štandardná prax: platnosť sa vloží priamo do identity (bob@example.com|2026-Q4), takže kľúče sa musia periodicky vydávať znova, a KGC jednoducho prestane vydávať pre odvolané identity.

Kde sa SM9 vlastne používa? V regulovaných čínskych odvetviach — v bankovníctve, štátnej správe a priemyselnej komunikácii — typicky v uzavretých ekosystémoch, kde je jedna autorita prijateľná a „šifruj na e-mailovú adresu dnes, zaregistruj používateľa zajtra“ stojí za cenu párovania.

Autotest
Táto stránka je len na čítanie, takže samotest overuje samotnú stránku: každá konštanta krivky zobrazená vyššie sa znovu kontroluje voči nezávisle overeným hodnotám (prvočíslo p a rád N prepočítané z parametrizácie BN, oba generátory overené ako body na krivke s rádom N), čísla štandardu, invarianty šablóny (bez DOCTYPE, značka zostavenia), vzájomné odkazy a prítomnosť FAQ.