SM9 identitásalapú kriptográfia (IBC)

Az SM9 az SM-csomag identitásalapú tagja: bármely sztring — e-mail-cím, telefonszám, eszköz-sorozatszám — közvetlenül nyilvános kulcsként működik, a megfelelő privát kulcsokat pedig egy kulcsgeneráló központ adja ki. Ez egy csak olvasható magyarázó oldal: lépésről lépésre bemutatja, hogyan működik az IBE és az IBS, összehasonlítja az identitásalapú kriptográfiát a PKI-tanúsítványokkal, és közli a hivatalos görbeparamétereket.
Számológép tervezve. Egy böngészőoldali SM9-számológép a kriptográfiai család ütemtervében szerepel — a párosítási gépezet (Fp12 bővítettmező-torony, Miller-ciklus, végső kitevősítés) önálló kernel. Addig a testvéroldalak teljesen a böngészőben számolják az SM2, SM3 és SM4 értékeket.
Mi az SM9?
Egy mondatban: az SM9 a kínai nemzeti szabvány identitásalapú kriptográfiára (GB/T 38635,1/.2-2020, a GM/T 0044-2016 sorozat utódja): a nyilvános kulcs identitás-sztring, például bob@example.com; a hozzá tartozó privát kulcsot egy megbízható kulcsgeneráló központ (KGC) adja ki, a működést pedig egy 256 bites BN-görbén értelmezett bilineáris párosítás teszi lehetővé.

A hagyományos nyilvános kulcsú kriptográfia (RSA, SM2, ECC) tanúsítványokkal válaszol arra a kérdésre, hogy „ez valóban Bob kulcsa-e?”: egy CA-hierarchia igazolja, hogy egy véletlen-szerűnek látszó kulcsblob Bobhoz tartozik. Az identitásalapú kriptográfia ezt megfordítja: a név szolgál kulcsanyagként. Bárki, aki ismeri Bob e-mail-címét, titkosíthat neki vagy ellenőrizheti az aláírásait anélkül, hogy bármit lekérne — nincs tanúsítványkönyvtár, nincs bizalmi lánc validálás. Az ár egy megbízható harmadik fél, amely bármely privát kulcsot származtathat, és sokkal nehezebb matematika. Az SM9 ennek a cserének a szabványosított kínai megvalósítása.

A szereplők: ki mit tart birtokban
SzerepJelentése
Identitás (ID)Bármely bájtsorozat, pl. bob@example.com, közvetlenül nyilvános kulcsként. Kanonikusnak kell lennie: bájtra pontos, ugyanazon személynek nem lehet két írásmódja.
KGCKulcsgeneráló központ: a mesterprivát kulcsot tartja, ellenőrzi, kihez tartozik az identitás, és kiadja a hozzá tartozó felhasználói privát kulcsot.
MesterkulcspárokKét független pár: aláírás (titok ks, nyilvános Ppub-s = [ks]P2) és titkosítás (titok ke, nyilvános Ppub-e = [ke]P1). Figyelemre méltó a szándékos aszimmetria: az egyik mesternyilvános a G2-ben, a másik a G1-ben él.
Felhasználói privát kulcsPont a görbén, az azonosítóból a KGC által származtatva. Az dsA aláírókulcs a G1-ben él; a deB visszafejtőkulcs a G2-ben.
hidEgybájtos függvényazonosító, amely minden kulcsszármaztatásba bekeveredik, így egy identitás aláíráshoz, titkosításhoz és kulcscseréhez kriptográfiailag független kulcsokat ad.
H1, H2, KDFSM3-alapú segédfüggvények (GB/T 32905): kivonat-egész leképezések és a kulcsszármaztató függvény.
Párosítás eAz R-ate bilineáris párosítás e: G1 × G2 → GT az alább definiált 256 bites BN-görbe felett. A teljes séma algebrai motorja.
Hogyan működik az SM9 identitásalapú titkosítás (IBE)

Alice titkot szeretne küldeni a bob@example.com címnek — esetleg még mielőtt Bob bármikor regisztrált volna a KGC-nél:

1. Bob nyilvános kulcsát Alice származtatja: QB = [H1(IDB ‖ hid, N)]P1 + Ppub-e. Nincs könyvtárkeresés, nincs tanúsítvány-lekérés — az azonosító-sztring és a nyilvános mesterkulcs elegendő.
2. Ideiglenes: véletlen r; a C1 = [r]QB pont kiszámítása.
3. Párosítás: g = e(Ppub-e, P2), majd w = gr.
4. Kulcsok: K = KDF(C1 ‖ w ‖ IDB, klen) (SM3-alapú), amely K1-re (csomagoló kulcs) és K2-re (MAC-kulcs) bomlik.
5. Maszkolás: C2 az üzenet, XOR-olva (vagy titkosítva) a K1-gyel; C3 = MAC(K2, C2). A titkosszöveg a C1, C3 és C2 kötege.
6. Bob bármikor, amikor regisztrál: a KGC ellenőrzi, hogy valóban bob@example.com-e, és kiadja a deB = [ke·(H1(IDB ‖ hid, N) + ke)-1]P2-t. Ezután kiszámítja a w′ = e(C1, deB) értéket, újraépíti ugyanazt a K-t, ellenőrzi a MAC-et, és feloldja az üzenetet.

Miért működik: a bilinearitás miatt e(C1, deB) = e([r(H1+ke)]P1, [ke/(H1+ke)]P2) = e(P1, P2)r·ke = w — pontosan az az érték, amelyet Alice a KDF-be vont. A szép rész a 6. lépés: a titkosításhoz nincs szükség előzetes regisztrációra. Alice ma lezárhat egy üzenetet; Bob csak akkor nyithatja meg, miután igazolta identitását a KGC előtt. A halasztott kulcsgenerálás az IBE aláírása.

Hogyan működnek az SM9 identitásalapú aláírások (IBS)

Alice aláírja az M üzenetet az aláíró kulcsával, a dsA-val:

1. g = e(P1, Ppub-s); véletlen r; w = gr.
2. h = H2(M ‖ w, N); l = (r − h) mod N (friss r-rel újra, ha l = 0).
3. S = [l]dsA. Az aláírás a (h, S) pár.

Bárki, aki ismeri Alice identitását, tanúsítvány nélkül ellenőrizheti:

4. P = [H1(IDA ‖ hid, N)]P2 + Ppub-s; u = e(S, P); w′ = u · gh.
5. Az aláírás pontosan akkor érvényes, ha H2(M ‖ w′, N) = h.

Ismét a bilinearitás zárja a kört: u = e(P1,P2)l·ks és gh = e(P1,P2)ks·h, így w′ = e(P1,P2)ks·(l+h) = e(P1,P2)ks·r = w.

Identitásalapú vs tanúsítványalapú (IBE vs PKI)

Ez az a döntés, amely az SM9 kiválasztásakor valóban számít. Mindkét világ nyilvános kulcsú titkosítást és aláírásokat ad; abban különböznek, hol van a bizalom:

SzempontPKI / tanúsítványok (SM2, RSA-világ)Identitásalapú (SM9)
bob@… nyilvános kulcsa65+ bájtos blob egy tanúsítványban, könyvtárból vagy a címzettől lekérveA bob@example.com sztring; az ellenőrző ebből számítja ki a kulcsot
Bizalmi gyökérCA-hierarchia; minden láncnak egy gyökérig validálnia kellEgyetlen KGC-mesterkulcs az egész tartományra
Titkosítás még mielőtt a címzettnek van kulcsa?Nem — először érvényes tanúsítvány kell nekiIgen — most titkosítható; a címzett később regisztrál, és visszafejt
A privát kulcsot előállítjaA felhasználó gépe vagy eszköze (gyakran el sem hagyja)A KGC, központilag, az identitásból
KulcsletétTervezés szerint nincsEredendő: a KGC minden felhasználó privát kulcsát származtathatja
VisszavonásCRL-ek / OCSP tanúsítványonkéntNincs megfelelője; a szokásos gyakorlat érvényességi ablakot ágyaz az ID-ba (pl. bob@example.com|2026), így a kulcsok szerkezetileg lejárnak
Költség műveletenkéntSima ECC-aritmetika — gyorsBilineáris párosítás — nagyságrendekkel lassabb, mint egy skalármultiplikáció
SzabványokX.509 / RFC 5280; SM2 a GB/T 32918 alattGB/T 38635,1/.2-2020 (korábban GM/T 0044-2016)
Természetes élőhelyNyílt internet: TLS, kódaláírás, általános PKIZárt ökoszisztémák: egy bank üzenetküldése, egy hatóság e-mailje, eszköz- és flottaazonosítás — ahol központi hatóság elfogadható, és a regisztráció nélküli titkosítás megtérül

Hüvelykujj-szabály: az SM9 tanúsítványmentes kulcskezelést nyújt a kulcsletét és a lassabb matematika árán. Ha nem fogadható el egy harmadik fél, amely mindent elolvashat vagy bárkit hamisíthat, célszerű az SM2 tanúsítványoknál maradni; ha egy szervezeten belül regisztráció nélküli titkosítás a cél, az SM9 pontosan ez az eszköz.

SM9 rendszerparaméterek (hivatalos 256 bites BN-görbe)

A GB/T 38635,1-2020 paraméterkészlete (megtalálható a GM/T 0044,5-2017-ben is). Ezek csak olvasható referenciaértékek — az alábbi önellenőrzés az oldal minden konstansát független, ellenőrzött értékekkel veti össze:

TételÉrték
GörbeBarreto–Naehrig (BN) görbe E: y2 = x3 + b az Fp felett, b = 05
Görbeparaméter t60000000 0058F98A
Mezőprím pB6400000 02A3A6F1 D603AB4F F58EC745 21F2934B 1A7AEEDB E56F9B27 E351457D
Csoportrend NB6400000 02A3A6F1 D603AB4F F58EC744 49F2934B 18EA8BEE E56EE19C D69ECF25
Paraméterezésp = 36t4 + 36t3 + 24t2 + 6t + 1; N = 36t4 + 36t3 + 18t2 + 6t + 1
Kofaktor1
Beágyazási fok k12 (mezőtorony Fp → Fp2 → Fp4 → Fp12)
PárosításR-ate párosítás e: G1 × G2 → GT, mindhárom csoport rendje N
G1 generátor P1 (E-n)x = 93DE051D 62BF718F F5ED0704 487D01D6 E1E40869 09DC3280 E8C4E481 7C66DDDD
y = 21FE8DDA 4F21E607 63106512 5C395BBC 1C1C00CB FA602435 0C464CD7 0A3EA616
G2 generátor P2 (az E′ csavarási görbén: y2 = x3 + 5·u az Fp2 felett, 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 elemek c0 + c1·u alakban írva)
Kivonat / KDFH1, H2 és a KDF az SM3-ra (GB/T 32905-2016) épül; a hid egybájtos függvényazonosító, amelyet a KGC választ
Hol helyezkedik el az SM9 az SM-csomagban
  • SM9 (ez az oldal) — a kulcskezelés megzavarója: identitások tanúsítványok helyett, KGC a CA-hierarchia helyett.
  • SM3 — a kivonat; az SM9 H1/H2/KDF-je erre épül. Kivonatok számítása az SM3-oldalon.
  • SM4 — a blokk-rejtjelező, amely általában a nagy adatmennyiséget titkosítja az SM9 KDF által előállított kulcs alatt. Az SM4-oldalon kipróbálható.
  • SM2 — a tanúsítványvilág megfelelője: ugyanazok a feladatok (aláírás, titkosítás) közönséges ECC-vel és mögötte PKI-val. Teljes számológép az SM2-oldalon.
Megfelelőségi megjegyzés: Az SM9 csomag-függetlenségi és kulcskezelési választás szabályozott kínai telepítésekhez, erősségben más ~128 bites rendszerekkel összemérhető. Éles bevezetéseknél a KGC mesterkulcsot a korona ékszereként kell kezelni — jellemzően HSM-ben tartva, több megbízott között megosztva, vagy mindkettő.
Gyakori tévhitek
  • "Az identitás a nyilvános kulcs, tehát bárki elolvashatja a leveleket." Nem — bárki titkosíthat az identitásnak, és ellenőrizheti az onnan érkező aláírásokat; csak a KGC által kiadott privát kulcs birtokosa fejthet vissza vagy írhat alá. A KGC ellenőrzi, ki Bob valójában, mielőtt kiadja a deB-t.
  • A kulcsletétkezelés figyelmen kívül hagyása. Egy kompromittált KGC mesterkulcs azt jelenti, hogy a támadó csendben származtathatja minden felhasználó privát kulcsát — teljes visszafejtés és teljes megszemélyesítés a teljes tartományon. Ez így van tervezve (az identitásalapú kriptográfia ilyen működésű), nem javítandó hiba. Működési szinten enyhíthető: HSM, entitások között megosztott küszöb-KGC, szigorú kiadási naplózás.
  • Feltételezés, hogy az identitás-sztring megbocsátó. Bájtra pontosan kivonatolódik: a Bob@Example.COM, a bob@example.com és a " bob@example.com" három különböző nyilvános kulcs, három különböző privát kulccsal. Bevezetés előtt rögzítsen egy kanonikus formátumot — és fontolja meg érvényességi ablak hozzáfűzését a visszavonáshoz.
  • "256 bites görbe, tehát 256 bites biztonság." A párosítás-alapú kriptográfia nem skálázódik úgy, mint a sima ECC: a támadások a hatalmas Fp12/Fp6 mezőkben működnek, ahol az index-kalkulus (szubexponenciális) algoritmusok alkalmazhatók. Közzétett elemzések a 256 bites BN-görbéket nagyjából a ~100–128 bites biztonsági osztályba sorolják, a kutatók pedig nagyobb BN-paramétereket javasoltak SM9-hez (pl. „Searching BN Curves for SM9”, 2019). Az SM9-et nagyjából AES-128 osztályúnak kezeljük — szilárd, de nem 256 bites erősségű.
  • OpenSSL-ben várni. Az OpenSSL implementálja az SM2/SM3/SM4-et, de SM9-et nem. Működő nyílt forráskódú verem a GmSSL és a Bouncy Castle.
GYIK

Kínai találmány-e az SM9? A koncepció nem az: Shamir 1984-ben javasolta az identitásalapú kriptográfiát, Boneh–Franklin (2001) pedig az első gyakorlati párosítás-alapú IBE-t építette. Az SM9 (GM/T 0044-2016, majd GB/T 38635,1/.2-2020) Kína nemzeti szabványos megvalósítása ennek a vonalnak.

Miért nincs SM9-számológép ezen az oldalon? Az SM2/SM3/SM4-gyel ellentétben az SM9 bilineáris párosítást igényel: Fp12 bővítettmező-tornyot, Miller-ciklust és végső kitevősítést — több ezer sornyi gondos nagy-szám kódot. A család ütemtervében szerepel; addig ez az oldal dokumentálja az algoritmust, a testvéroldalak pedig a csomag többi részét böngészőben számolják.

Lecserélheti-e az SM9 az SM2-t, SM3-at és SM4-et? Nem — más problémákat oldanak meg. Az SM9 a tanúsítványinfrastruktúrát helyettesíti, nem a primitíveket: belsőleg az SM3-ra támaszkodik kivonatoláshoz és kulcsszármaztatáshoz, a becsomagolt nagy kulcs pedig jellemzően SM4-et hajt. Az SM2 marad a válasz, ha tanúsítvány-jellegű elszámoltathatóságra van szükség kulcsletét nélkül.

Mi pontosan a hid? Egybájtos függvényazonosító (a KGC választja és teszi közzé), amely minden H1-kivonatba bekeveredik. Mivel az aláírási, titkosítási és kulcscsere-kulcsok az identitást különböző hid-értékekkel kivonatolják, egy kiszivárgott felhasználói kulcs csak az adott függvényt kompromittálja.

Hogyan vonják vissza az identitásokat? Az SM9-en belül nincs CRL-mechanizmus. Szokásos gyakorlat: a lejárat magába az identitásba ágyazása (bob@example.com|2026-Q4), hogy a kulcsokat rendszeresen újra kelljen kiadni, a KGC pedig egyszerűen nem ad ki újabbat a visszavont identitásokra.

Hol használják tényleg az SM9-et? Szabályozott kínai ágazatokban — bank, kormányzat és ipari üzenetküldés — jellemzően zárt ökoszisztémákban, ahol egy hatóság elfogadható, és az „titkosíts egy e-mail-címnek ma, regisztráld a felhasználót holnap” megéri a párosítás költségét.

Önteszt
Ez egy csak olvasható oldal, ezért az önellenőrzés az oldal tartalmát ellenőrzi: a fent látható minden görbekonstanst független, ellenőrzött értékekkel vet össze (a p prímet és az N rendet újraszámolva a BN-paraméterezésből, mindkét generátort görbén levőnek és N rendűnek ellenőrizve), a szabványszámokat, a sablon-invariánsokat (nincs DOCTYPE, build-jelölő), a keresztlinkeket és a GYIK jelenlétét.