SM9-identiteettipohjainen kryptografia (IBC)

SM9 on kiinalaisen SM-sarjan identiteettipohjainen jäsen: mikä tahansa merkkijono — sähköpostiosoite, puhelinnumero, laitteen sarjanumero — toimii suoraan julkisena avaimena, ja avaingenerointikeskus myöntää vastaavat yksityiset avaimet. Tämä on pelkästään luettava selityssivu: miten IBE ja IBS toimivat askel askeleelta, miten identiteettipohjainen kryptografia vertautuu PKI-varmenteisiin, ja virallisten käyrän parametrien.
Laskin suunnitteilla. SM9-laskin selaimessa on suunnitelmassa salausperheen tiekartalla — parinmuodostuskoneisto (Fp12-laajennuskunnan torni, Millerin silmukka, lopullinen eksponentiointi) on oma ytimensä. Sillä välin sisarsivut laskevat SM2:n, SM3:n ja SM4:n kokonaan selaimessa.
Mikä SM9 on?
Yhdellä lauseella: SM9 on Kiinan kansallinen standardi identiteettipohjaiselle kryptografialle (GB/T 38635.1/.2-2020, GM/T 0044-2016 -sarjan seuraaja): julkinen avain on identiteettijono kuten bob@example.com, vastaava yksityinen avain myöntää luotettu avaingenerointikeskus (KGC), ja matematiikka, joka tekee tämän mahdolliseksi, on bilineaarinen parinmuodostus 256-bittisellä BN-käyrällä.

Tavanomainen julkisen avaimen kryptografia (RSA, SM2, ECC) vastaa kysymykseen "onko tämä todella Bobin avain?" varmenteilla: CA-hierarkia takaa, että tietty satunnaisen näköinen avainpaketti kuuluu Bobille. Identiteettipohjainen kryptografia kääntää tämän ympäri: nimi itse on avainmateriaali. Kuka tahansa, joka tuntee Bobin sähköpostiosoitteen, voi salata hänelle tai vahvistaa hänen allekirjoituksensa hakematta mitään — ei varmennehakemistoa, ei luottoketjun validointia. Hinta on luotettu kolmas osapuoli, joka voi johtaa jokaisen yksityisen avaimen, sekä huomattavasti raskaampi matematiikka. SM9 on tuon vaihdon standardoitu kiinalainen toteutus.

Näyttelijät: kuka pitää mitäkin
RooliMitä se on
Identiteetti (ID)Mikä tahansa tavujono, esim. bob@example.com, käytettynä suoraan julkisena avaimena. Sen on oltava kanoninen: tavu tavulta tarkka, ei kahta kirjoitusasua samalle henkilölle.
KGCAvaingenerointikeskus: pitää hallussaan pääyksityisen avaimen, varmistaa, mihin identiteettiin jokin kuuluu, ja myöntää vastaavan käyttäjän yksityisen avaimen.
PääavainparitKaksi riippumatonta paria: allekirjoitus (salainen ks, julkinen Ppub-s = [ks]P2) ja salaus (salainen ke, julkinen Ppub-e = [ke]P1). Huomaa tarkoituksellinen epäsymmetria: toinen pääjulkinen asuu G2:ssa, toinen G1:ssä.
Käyttäjän yksityinen avainPisteen käyrällä, KGC johtaa sen ID:stä. Allekirjoitusavain dsA asuu G1:ssä; purkuavain deB asuu G2:ssa.
hidYhden tavun funktiotunniste, joka sekoitetaan jokaiseen avainjohdantaan, joten yksi identiteetti tuottaa kryptografisesti riippumattomat avaimet allekirjoitukseen, salaukseen ja avainvaihtoon.
H1, H2, KDFSM3-pohjaiset apufunktiot (GB/T 32905): tiiviste-kokonaisluku-kuvaukset ja avainjohdannan funktio.
Parinmuodostus eR-ate-bilineaarinen parinmuodostus e: G1 × G2 → GT alla määritellyllä 256-bittisellä BN-käyrällä. Koko järjestelmän algebrallinen moottori.
Miten SM9-identiteettipohjainen salaus (IBE) toimii

Alice haluaa lähettää salaisuuden osoitteeseen bob@example.com — mahdollisesti ennen kuin Bob on koskaan rekisteröitynyt KGC:lle:

1. Alice johtaa Bobin julkisen avaimen itse: QB = [H1(IDB ‖ hid, N)]P1 + Ppub-e. Ei hakemistohakua eikä varmenteen hakua — identiteettijono ja julkinen pääavain ovat kaikki, mitä hän tarvitsee.
2. Efemeerinen: satunnainen r; lasketaan piste C1 = [r]QB.
3. Parinmuodostus: g = e(Ppub-e, P2), sitten w = gr.
4. Avaimet: K = KDF(C1 ‖ w ‖ IDB, klen) (SM3-pohjainen), jaettuna K1:ksi (kääriavain) ja K2:ksi (MAC-avain).
5. Peitto: C2 = viesti XOR:attuna (tai salattuna) K1:llä; C3 = MAC(K2, C2). Salateksti kokoaa C1, C3 ja C2.
6. Bob, aina kun hän rekisteröityy: KGC varmistaa, että hän todella on bob@example.com, ja myöntää deB = [ke·(H1(IDB ‖ hid, N) + ke)-1]P2. Sitten hän laskee w′ = e(C1, deB), rakentaa saman K:n, tarkistaa MAC:n ja purkaa viestin peiton.

Miksi se toimii: bilineaarisuuden nojalla e(C1, deB) = e([r(H1+ke)]P1, [ke/(H1+ke)]P2) = e(P1, P2)r·ke = w — täsmälleen se arvo, jonka Alice sisällytti KDF:ään. Eleganssi on askeleessa 6: salaus ei vaadi ennakkorekisteröintiä. Alice voi sinetöidä viestin tänään; Bob voi avata sen vasta, kun on todistanut identiteettinsä KGC:lle. Viivästetty avaingenerointi on IBE:n allekirjoitusominaisuus.

Miten SM9-identiteettipohjaiset allekirjoitukset (IBS) toimivat

Alice allekirjoittaa viestin M allekirjoitusavaimellaan dsA:

1. g = e(P1, Ppub-s); satunnainen r; w = gr.
2. h = H2(M ‖ w, N); l = (r − h) mod N (yritetään uudelleen tuoreella r:llä, jos l = 0).
3. S = [l]dsA. Allekirjoitus on pari (h, S).

Kuka tahansa, joka tuntee Alicen identiteetin, vahvistaa sen ilman varmennetta:

4. P = [H1(IDA ‖ hid, N)]P2 + Ppub-s; u = e(S, P); w′ = u · gh.
5. Allekirjoitus on täsmälleen silloin kelvollinen, kun H2(M ‖ w′, N) = h.

Jälleen bilineaarisuus sulkee silmukan: u = e(P1,P2)l·ks ja gh = e(P1,P2)ks·h, joten w′ = e(P1,P2)ks·(l+h) = e(P1,P2)ks·r = w.

Identiteettipohjainen vs. varmennepohjainen (IBE vs PKI)

Tämä on päätös, joka oikeasti ratkaisee SM9:ää valittaessa. Molemmat maailmat tarjoavat julkisen avaimen salauksen ja allekirjoitukset; ne eroavat siinä, missä luottamus sijaitsee:

NäkökulmaPKI / varmenteet (SM2, RSA-maailma)Identiteettipohjainen (SM9)
bob@… julkinen avain65+ tavun paketti varmenteen sisällä, haettuna hakemistosta tai itse vastaanottajaltaItse merkkijono bob@example.com; vahvistaja laskee avaimen siitä
Luottamuksen juuriCA-hierarkia; jokaisen ketjun on validoituttava juureen astiYksi KGC:n pääjulkinen avain koko toimialueelle
Salaus ennen kuin vastaanottajalla on avain?Ei — tarvitaan ensin hänen voimassa oleva varmenteensaKyllä — salaa nyt; hän ilmoittautuu ja purkaa myöhemmin
Yksityisen avaimen generoiKäyttäjän oma kone tai laite (usein ei koskaan poistu siitä)KGC keskitetysti identiteetistä
Avainten talletusEi suunnitelman mukaanLuontainen: KGC voi johtaa jokaisen käyttäjän yksityisen avaimen
PeruutusCRL:t / OCSP varmennetta kohdenEi vastinetta; tavanomainen käytäntö upottaa voimassaoloikkunat ID:hen (esim. bob@example.com|2026), jotta avaimet vanhenevat rakenteellisesti
Kustannus operaatiota kohdenTavallinen ECC-aritmetiikka — nopeaBilineaarinen parinmuodostus — suuruusluokkia hitaampi kuin skalaarikertolasku
StandarditX.509 / RFC 5280; SM2 standardin GB/T 32918 mukaanGB/T 38635.1/.2-2020 (aiemmin GM/T 0044-2016)
Luonnollinen elinympäristöAvoin internet: TLS, koodin allekirjoitus, yleinen PKISuljetut ekosysteemit: yhden pankin viestintä, yhden viraston sähköposti, laitteiden tai kaluston identiteetti — missä keskusauktoriteetti on hyväksyttävissä ja ilmoittautumaton salaus kannattaa

Peukalosääntö: SM9 tarjoaa varmenteettoman avainhallinnan avainten talletuksen ja hitaamman matematiikan hinnalla. Jos kolmatta osapuolta, joka voi lukea kaiken tai väärentää kenen tahansa, ei voida hyväksyä, pysytään SM2-varmenteissa; jos tavoite on ilmoittautumattoman salauksen yhden organisaation sisällä, SM9 on juuri tuo työkalu.

SM9-järjestelmäparametrit (virallinen 256-bittinen BN-käyrä)

Parametrijoukko GB/T 38635.1-2020:sta (myös GM/T 0044.5-2017:ssä). Nämä ovat luettavia viitearvoja — alla oleva itsetesti tarkistaa jokaisen tämän sivun vakion riippumattomasti vahvistettuja arvoja vastaan:

KohdeArvo
KäyräBarreto–Naehrig (BN) -käyrä E: y2 = x3 + b kunnan Fp yli, b = 05
Käyrän parametri t60000000 0058F98A
Kentän alkuluku pB6400000 02A3A6F1 D603AB4F F58EC745 21F2934B 1A7AEEDB E56F9B27 E351457D
Ryhmän järjestys NB6400000 02A3A6F1 D603AB4F F58EC744 49F2934B 18EA8BEE E56EE19C D69ECF25
Parametrisointip = 36t4 + 36t3 + 24t2 + 6t + 1; N = 36t4 + 36t3 + 18t2 + 6t + 1
Kofaktori1
Upotusaste k12 (kenttätorni Fp → Fp2 → Fp4 → Fp12)
ParinmuodostusR-ate-parinmuodostus e: G1 × G2 → GT, kaikki kolme ryhmää järjestystä N
G1-generaattori P1 (käyrällä E)x = 93DE051D 62BF718F F5ED0704 487D01D6 E1E40869 09DC3280 E8C4E481 7C66DDDD
y = 21FE8DDA 4F21E607 63106512 5C395BBC 1C1C00CB FA602435 0C464CD7 0A3EA616
G2-generaattori P2 (kiertymällä E′: y2 = x3 + 5·u kunnan Fp2 yli, 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-alkiot kirjoitettu c0 + c1·u)
Tiiviste / KDFH1, H2 ja KDF rakentuvat SM3:n varaan (GB/T 32905-2016); hid on KGC:n valitsema yhden tavun funktiotunniste
Missä SM9 sijaitsee SM-sarjassa
  • SM9 (tämä sivu) — avainhallinnan mullistaja: identiteetit varmenteiden sijaan, KGC varmennehierarkian sijaan.
  • SM3 — tiiviste; SM9:n H1/H2/KDF rakentuvat sen päälle. Laske tiivisteitä SM3-sivulla.
  • SM4 — lohkosalain, joka tyypillisesti salaa massadatan avaimella, jonka SM9:n KDF tuottaa. Kokeile SM4-sivulla.
  • SM2 — varmennemaailman vastine: samat tehtävät (allekirjoitus, salaus) tavallisella ECC:llä ja PKI:n takana. Täysi laskin SM2-sivulla.
Vaatimustenmukaisuushuomautus: SM9 on sarjariippumattomuus- ja avainhallintavalinta kiinalaisiin säänneltyihin käyttöönottoihin; turvataso on verrattavissa muihin noin 128-bittisiin järjestelmiin. Tuotantokäyttöönotoissa KGC:n pääavain on käsiteltävä kruununjalokivenä — yleensä HSM:ssä, jaettuna useille luottamushenkilöille, tai molemmin tavoin.
Yleisiä väärinkäsityksiä
  • "Identiteetti on julkinen avain, joten kuka tahansa voi purkaa postin." Ei — kuka tahansa voi salata identiteetille ja vahvistaa sen allekirjoitukset; vain KGC:n myöntämän yksityisen avaimen haltija voi purkaa tai allekirjoittaa. KGC tarkistaa, kuka Bob todella on, ennen kuin luovuttaa deB.
  • Avainten talletuksen (key escrow) sivuuttaminen. Vaarantunut KGC:n pääavain tarkoittaa, että hyökkääjä voi hiljaa johtaa jokaisen käyttäjän yksityisen avaimen — täydellinen salauksen purku ja täydellinen esiintyminen toimialueella. Tämä on suunniteltua (näin identiteettipohjainen kryptografia toimii), ei korjattava virhe. Lievennetään operatiivisesti: HSM, eri tahojen välillä jaettu kynnys-KGC, tiukat myöntölokit.
  • Oletus, että identiteettijono on anteeksiantava. Se tiivistetään tavu tavulta: Bob@Example.COM, bob@example.com ja " bob@example.com" ovat kolme eri julkista avainta kolmella eri yksityisellä avaimella. Lukitaan yksi kanoninen muoto ennen käyttöönottoa — ja harkitaan voimassaoloikkunan liittämistä peruutusta varten.
  • "256-bittinen käyrä, joten 256-bittinen turva." Parinmuodostukseen perustuva kryptografia ei skaalaudu kuten tavallinen ECC: hyökkäykset toimivat suurissa Fp12/Fp6-kunnissa, joihin indeksilaskenta (alieksponentiaaliset algoritmit) sovelletaan. Julkaistut analyysit sijoittavat 256-bittiset BN-käyrät noin 100–128 bitin turvaluokkaan, ja tutkijat ovat ehdottaneet suurempia BN-parametreja SM9:lle (esim. "Searching BN Curves for SM9", 2019). Käsitellään SM9:ää suunnilleen AES-128-luokan järjestelmänä — vankka, mutta ei 256-bittinen linnake.
  • Odotus, että se löytyy OpenSSL:stä. OpenSSL toteuttaa SM2/SM3/SM4:n, mutta ei SM9:ää. Toimivia avoimen lähdekoodin pinoja ovat GmSSL ja Bouncy Castle.
UKK

Onko SM9 kiinalainen keksintö? Konsepti ei ole: Shamir ehdotti identiteettipohjaista kryptografiaa vuonna 1984, ja Boneh–Franklin (2001) rakensi ensimmäisen käytännöllisen parinmuodostukseen perustuvan IBE:n. SM9 (GM/T 0044-2016, sittemmin GB/T 38635.1/.2-2020) on Kiinan kansallisen standardin toteutus tästä linjasta.

Miksi tällä sivulla ei ole SM9-laskinta? Toisin kuin SM2/SM3/SM4, SM9 tarvitsee bilineaarisen parinmuodostuksen: Fp12-laajennuskunnan tornin, Millerin silmukan ja lopullisen eksponentioinnin — useita tuhansia rivejä huolellista suurten lukujen koodia. Se on perhetiekartalla; siihen asti tämä sivu dokumentoi algoritmin, ja sisarsivut laskevat muun sarjan selaimessa.

Voiko SM9 korvata SM2:n, SM3:n ja SM4:n? Ei — ne ratkaisevat eri ongelmia. SM9 korvaa varmenneinfrastruktuurin, ei primitiivejä: sisäisesti se nojaa SM3:een tiivistämisessä ja avainjohdannassa, ja kääritty massa-avain ajaa tyypillisesti SM4:ää. SM2 on edelleen vastaus, kun tarvitaan varmennetyyppinen vastuullisuus ilman avainten talletusta.

Mikä tarkalleen on hid? Yhden tavun funktiotunniste (KGC valitsee ja julkaisee), joka sekoitetaan jokaiseen H1-tiivisteeseen. Koska allekirjoitusavaimet, salausavaimet ja avainvaihtoavaimet tiivistävät identiteetin yhdessä eri hid-arvojen kanssa, yksi vuotanut käyttäjäavain vaarantaa vain tuon yhden funktion.

Miten identiteetit peruutetaan? SM9:ssä ei ole CRL-mekanismia. Tavallinen käytäntö: upotetaan vanhenemisaika itse identiteettiin (bob@example.com|2026-Q4), jotta avaimet on myönnettävä uudelleen säännöllisesti, ja KGC lakkaa yksinkertaisesti myöntämästä peruutetuille identiteeteille.

Missä SM9:ää oikeasti käytetään? Kiinalaisilla säännellyillä aloilla — pankkitoiminnassa, hallinnossa ja teollisuuden viestinnässä — tyypillisesti suljetuissa ekosysteemeissä, joissa yksi auktoriteetti on hyväksyttävissä ja "salaa sähköpostiosoitteelle tänään, rekisteröi käyttäjä huomenna" on parinmuodostuksen hinnan arvoinen.

Itsetesti
Tämä on vain luettava sivu, joten itsetesti vahvistaa sivun itsensä: jokainen yllä näytetty käyrävakio tarkistetaan uudelleen riippumattomasti vahvistettuja arvoja vastaan (alkuluku p ja järjestys N laskettu uudelleen BN-parametrisoinnista, molemmat generaattorit tarkistettu käyrällä järjestyksellä N), standardinumerot, mallipohjan invariantit (ei DOCTYPE, rakennusmerkki), ristilinkit ja UKK-osion läsnäolo.