SM9 Kimlik Tabanlı Kriptografi (IBC)

SM9, Çin SM paketinin kimlik tabanlı üyesidir: herhangi bir dizgi — bir e-posta adresi, bir telefon numarası, bir cihaz seri numarası — doğrudan genel anahtar olarak çalışır ve bir Anahtar Üretim Merkezi eşleşen özel anahtarları verir. Bu salt okunur bir açıklama sayfasıdır: IBE ve IBS adım adım nasıl çalışır, kimlik tabanlı kriptografi PKI sertifikalarıyla nasıl karşılaştırılır ve resmî eğri parametreleri.
Hesap makinesi planlandı. Tarayıcı tarafı bir SM9 hesap makinesi kripto ailesi yol haritasındadır — eşleştirme makinesi (Fp12 genişletme alanı kulesi, Miller döngüsü, son üs alma) kendi başına bir çekirdektir. Bu arada kardeş sayfalar SM2, SM3 ve SM4'ü tamamen tarayıcınızda hesaplar.
SM9 nedir?
Tek cümleyle: SM9, kimlik tabanlı kriptografi için Çin ulusal standardıdır (GB/T 38635.1/.2-2020, GM/T 0044-2016 serisinin halefi): genel anahtar bir kimlik dizgisidir (ör. bob@example.com), eşleşen özel anahtar güvenilir bir Anahtar Üretim Merkezi (KGC) tarafından verilir ve bunu mümkün kılan matematik 256 bitlik bir BN eğrisi üzerinde bir doğrusal eşleştirmedir.

Geleneksel açık anahtar kriptografisi (RSA, SM2, ECC), "bu gerçekten Bob'un anahtarı mı?" sorusunu sertifikalarla yanıtlar: bir CA hiyerarşisi, rastgele görünen belirli bir anahtar bloğunun Bob'a ait olduğunu garanti eder. Kimlik tabanlı kriptografi bunu tersine çevirir: ad kendisi anahtar malzemesidir. Bob'un e-posta adresini bilen herkes, hiçbir şey almadan ona şifreleyebilir ya da imzalarını doğrulayabilir — sertifika dizini yok, güven zinciri doğrulaması yok. Bedeli, her özel anahtarı türetebilecek güvenilir bir üçüncü taraf ve çok daha ağır bir matematiktir. SM9, bu takasın standartlaştırılmış Çin örneklemesidir.

Oyuncular: kim neyi tutar
RolNedir
Kimlik (ID)Herhangi bir bayt dizisi, ör. bob@example.com, doğrudan genel anahtar olarak kullanılır. Kanonik olmalıdır: bayt bayt tam, aynı kişiye ait iki yazım olmamalıdır.
KGCAnahtar Üretim Merkezi: ana özel anahtarı tutar, bir kimliğin kime ait olduğunu doğrular ve eşleşen kullanıcı özel anahtarını verir.
Ana anahtar çiftleriİki bağımsız çift: imzalama (gizli ks, genel Ppub-s = [ks]P2) ve şifreleme (gizli ke, genel Ppub-e = [ke]P1). Kasıtlı asimetriye dikkat edin: bir ana genel anahtar G2'de, diğeri G1'de yaşar.
Kullanıcı özel anahtarıKGC tarafından kimlikten türetilen eğri üzerinde bir nokta. İmzalama anahtarı dsA G1'de, şifre çözme anahtarı deB G2'dedir.
hidHer anahtar türetmeye karıştırılan bir baytlık fonksiyon tanımlayıcısı; böylece tek bir kimlik imzalama, şifreleme ve anahtar değişimi için kriptografik olarak bağımsız anahtarlar üretir.
H1, H2, KDFSM3 tabanlı yardımcı fonksiyonlar (GB/T 32905): karma-tamsayı eşlemeleri ve anahtar türetme fonksiyonu.
Eşleştirme eAşağıda tanımlanan 256 bitlik BN eğrisi üzerinde R-ate çift doğrusal eşleştirme e: G1 × G2 → GT. Tüm şemanın cebirsel motoru.
SM9 kimlik tabanlı şifreleme (IBE) nasıl çalışır

Alice, bob@example.com'a bir sır göndermek ister — Bob KGC ile hiç kaydolmamış olsa bile:

1. Alice, Bob'un genel anahtarını kendisi türetir: QB = [H1(IDB ‖ hid, N)]P1 + Ppub-e. Dizin araması yok, sertifika alımı yok — ihtiyacı olan tek şey kimlik dizgisi ve genel ana anahtardır.
2. Geçici: rastgele r; C1 = [r]QB noktasını hesaplayın.
3. Eşleştirme: g = e(Ppub-e, P2), ardından w = gr.
4. Anahtarlar: K = KDF(C1 ‖ w ‖ IDB, klen) (SM3 tabanlı), K1 (sarma anahtarı) ve K2 (MAC anahtarı) olarak bölünür.
5. Maske: C2 = ileti, K1 ile XOR'lanmış (ya da onun altında şifrelenmiş); C3 = MAC(K2, C2). Şifreli metin C1, C3 ve C2'yi bir araya getirir.
6. Bob, kaydolduğu zaman: KGC onun gerçekten bob@example.com olduğunu doğrular ve deB = [ke·(H1(IDB ‖ hid, N) + ke)-1]P2 verir. Ardından w′ = e(C1, deB) hesaplar, aynı K'yi yeniden oluşturur, MAC'i denetler ve iletiyi açar.

Neden çalışır: çift doğrusallık gereği, e(C1, deB) = e([r(H1+ke)]P1, [ke/(H1+ke)]P2) = e(P1, P2)r·ke = w — Alice'in KDF'ye kattığı değerin tam olarak aynısı. Zarif kısım 6. adımdır: şifrelemenin önceden kayıt gerektirmemesi. Alice bugün bir iletiyi mühürleyebilir; Bob ancak kimliğini KGC'ye kanıtladıktan sonra açabilir. Ertelenmiş anahtar üretimi, IBE'nin imza özelliğidir.

SM9 kimlik tabanlı imzalar (IBS) nasıl çalışır

Alice, M iletisini imzalama anahtarı dsA ile imzalar:

1. g = e(P1, Ppub-s); rastgele r; w = gr.
2. h = H2(M ‖ w, N); l = (r − h) mod N (l = 0 ise yeni bir r ile yeniden deneyin).
3. S = [l]dsA. İmza (h, S) çiftidir.

Alice'in kimliğini bilen herkes, herhangi bir sertifika olmadan doğrular:

4. P = [H1(IDA ‖ hid, N)]P2 + Ppub-s; u = e(S, P); w′ = u · gh.
5. İmza tam olarak H2(M ‖ w′, N) = h olduğunda geçerlidir.

Yine çift doğrusallık döngüyü kapatır: u = e(P1,P2)l·ks ve gh = e(P1,P2)ks·h, dolayısıyla w′ = e(P1,P2)ks·(l+h) = e(P1,P2)ks·r = w.

Kimlik tabanlı ile sertifika tabanlı (IBE ve PKI)

SM9 seçerken gerçekten önemli olan karardır. İki dünya da açık anahtar şifrelemesi ve imzalar sunar; farkları güvenin nerede yaşadığında:

YönPKI / sertifikalar (SM2, RSA dünyası)Kimlik tabanlı (SM9)
bob@… genel anahtarıBir sertifika içinde 65+ baytlık bir blok, bir dizinden ya da alıcının kendisinden alınırbob@example.com dizgisinin kendisi; doğrulayıcı anahtarı ondan hesaplar
Güven köküBir CA hiyerarşisi; her zincirin bir köke kadar doğrulanması gerekirTüm alan için tek bir KGC ana genel anahtarı
Alıcının bir anahtarı olmadan şifrelemek?Hayır — önce onun geçerli sertifikasına ihtiyacınız varEvet — şimdi şifreleyin; o sonra kaydolur ve çözer
Özel anahtar şunun tarafından üretilirKullanıcının kendi makinesi ya da cihazı (genellikle hiç ayrılmaz)KGC, merkezi olarak, kimlikten
Anahtar emanetıTasarım gereği yokDoğasında: KGC her kullanıcının özel anahtarını türetebilir
İptalSertifika başına CRL / OCSPEşdeğeri yok; olağan uygulama, anahtarların yapı gereği sona ermesi için kimliğe geçerlilik pencereleri gömmektir (ör. bob@example.com|2026)
İşlem başına maliyetDüz ECC aritmetiği — hızlıBir doğrusal eşleştirme — skaler çarpmadan büyüklük mertebeleri daha yavaş
StandartlarX.509 / RFC 5280; GB/T 32918 kapsamında SM2GB/T 38635.1/.2-2020 (önceden GM/T 0044-2016)
Doğal ortamAçık internet: TLS, kod imzalama, genel PKIKapalı ekosistemler: tek bir bankanın mesajlaşması, tek bir kurumun e-postası, filo/cihaz kimliği — merkezi bir otoritenin kabul edilebilir olduğu ve kayıtsız şifrelemenin karşılığını verdiği yerler

Pratik kural: SM9, anahtar emanetinin ve daha yavaş matematiğin bedeli karşılığında sertifikasız anahtar yönetimi sağlar. Her şeyi okuyabilen ya da herkesi taklit edebilen bir üçüncü tarafı kabul edemiyorsanız, SM2 sertifikalarında kalın; bir kuruluş içinde kayıtsız şifreleme hedefiyse SM9 tam olarak bu araçtır.

SM9 sistem parametreleri (resmî 256 bitlik BN eğrisi)

GB/T 38635.1-2020'den parametre seti (GM/T 0044.5-2017'de de bulunur). Bunlar salt okunur referans değerleridir — aşağıdaki öz-test bu sayfadaki her sabiti bağımsız olarak doğrulanmış değerlerle yeniden denetler:

ÖğeDeğer
EğriFp üzerinde Barreto–Naehrig (BN) eğrisi E: y2 = x3 + b, b = 05
Eğri parametresi t60000000 0058F98A
Alan asalı pB6400000 02A3A6F1 D603AB4F F58EC745 21F2934B 1A7AEEDB E56F9B27 E351457D
Grup düzeni NB6400000 02A3A6F1 D603AB4F F58EC744 49F2934B 18EA8BEE E56EE19C D69ECF25
Parametreleştirmep = 36t4 + 36t3 + 24t2 + 6t + 1; N = 36t4 + 36t3 + 18t2 + 6t + 1
Kofaktör1
Gömme derecesi k12 (alan kulesi Fp → Fp2 → Fp4 → Fp12)
EşleştirmeR-ate eşleştirmesi e: G1 × G2 → GT, üç grubun da düzeni N
G1 üreteci P1 (E üzerinde)x = 93DE051D 62BF718F F5ED0704 487D01D6 E1E40869 09DC3280 E8C4E481 7C66DDDD
y = 21FE8DDA 4F21E607 63106512 5C395BBC 1C1C00CB FA602435 0C464CD7 0A3EA616
G2 üreteci P2 (E′ büküm eğrisinde: y2 = x3 + 5·u, Fp2 üzerinde, 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 elemanları c0 + c1·u olarak yazılmıştır)
Karma / KDFH1, H2 ve KDF, SM3 üzerine kuruludur (GB/T 32905-2016); hid, KGC tarafından seçilen bir baytlık fonksiyon tanımlayıcısıdır
SM9, SM paketinin içinde nerede durur
  • SM9 (bu sayfa) — anahtar yönetiminde yıkıcı yenilik: sertifikalar yerine kimlikler, CA hiyerarşisi yerine KGC.
  • SM3 — karma; SM9'un H1/H2/KDF'si onun üzerine kuruludur. Özetleri SM3 sayfasında hesaplayın.
  • SM4 — SM9'un KDF'sinin ürettiği anahtar altında toplu veriyi genellikle şifreleyen blok şifresi. SM4 sayfasında deneyin.
  • SM2 — sertifika dünyasının karşılığı: aynı işler (imzalama, şifreleme), sıradan ECC ve arkasında bir PKI ile. SM2 sayfasında tam hesap makinesi.
Uyumluluk notu: SM9, düzenlemeye tabi Çin dağıtımları için bir paket bağımsızlığı ve anahtar yönetimi seçimidir; güç açısından diğer ~128 bitlik sistemlerle karşılaştırılabilir. Üretim dağıtımları KGC ana anahtarını taç mücevher olarak ele almalıdır — genellikle bir HSM'de tutulur, birkaç güvenilir kişi arasında bölünür ya da her ikisi birden yapılır.
Yaygın yanlış anlamalar
  • "Kimlik genel anahtardır, dolayısıyla herkes postamı çözebilir." Hayır — herkes kimliğe şifreleyebilir ve ondan gelen imzaları doğrulayabilir; yalnızca KGC'nin verdiği özel anahtarın sahibi şifre çözebilir ya da imzalayabilir. KGC, deB'yi vermeden önce Bob'un gerçekte kim olduğunu denetler.
  • Anahtar emanetini (key escrow) yok saymak. Ele geçirilmiş bir KGC ana anahtarı, saldırganın her kullanıcının özel anahtarını sessizce türetebileceği anlamına gelir — alan için toplam şifre çözme ve toplam kimlik taklidi. Bu tasarım gereğidir (kimlik tabanlı kriptografinin işleyişi bu), yamanacak bir hata değil. Operasyonel olarak hafifletin: HSM, kuruluşlar arasında bölünmüş eşik KGC, sıkı verme denetim günlükleri.
  • Kimlik dizgisinin esnek olduğunu varsaymak. Bayt bayt tam olarak karmalanır: Bob@Example.COM, bob@example.com ve " bob@example.com" üç farklı genel anahtar ve üç farklı özel anahtardır. Dağıtımdan önce tek bir kanonik biçim belirleyin — ve iptal için bir geçerlilik penceresi eklemeyi düşünün.
  • "256 bitlik eğri, dolayısıyla 256 bitlik güvenlik." Eşleştirme tabanlı kriptografi düz ECC gibi ölçeklenmez: saldırılar, indeks-hesaplama (alt-üstel) algoritmalarının uygulandığı devasa Fp12/Fp6 alanlarında işler. Yayımlanmış analizler 256 bitlik BN eğrilerini yaklaşık ~100–128 bitlik güvenlik sınıfına koyar ve araştırmacılar SM9 için daha büyük BN parametreleri önermiştir (ör. "Searching BN Curves for SM9", 2019). SM9'u kabaca AES-128 sınıfı olarak görün — sağlam, ama 256 bitlik bir kale değil.
  • OpenSSL'de bekleyerek. OpenSSL SM2/SM3/SM4'ü uygular ancak SM9'u içermez. Çalışan açık kaynak yığınlar arasında GmSSL ve Bouncy Castle bulunur.
SSS

SM9 bir Çin icadı mı? Kavram değil: Shamir kimlik tabanlı kriptografiyi 1984'te önerdi ve Boneh–Franklin (2001) ilk pratik eşleştirme tabanlı IBE'yi kurdu. SM9 (GM/T 0044-2016, ardından GB/T 38635.1/.2-2020), bu soyun Çin ulusal standardı örneklemesidir.

Neden bu sayfada SM9 hesap makinesi yok? SM2/SM3/SM4'ten farklı olarak SM9 bir doğrusal eşleştirme gerektirir: bir Fp12 genişletme alanı kulesi, bir Miller döngüsü ve bir son üs alma — dikkatli büyük sayı kodunun birkaç bin satırı. Aile yol haritasındadır; o zamana kadar bu sayfa algoritmayı belgeler ve kardeş sayfalar paketin geri kalanını tarayıcıda hesaplar.

SM9, SM2, SM3 ve SM4'ün yerini alabilir mi? Hayır — farklı sorunları çözerler. SM9 ilkellerin değil sertifika altyapısının yerini alır: içinde karma ve anahtar türetme için SM3'e dayanır ve sarılmış toplu anahtar tipik olarak SM4'ü sürer. Anahtar emanetine gerek kalmadan sertifika tarzı hesap verebilirlik gerektiğinde cevap hâlâ SM2'dir.

hid tam olarak nedir? Her H1 karmasına karıştırılan, bir baytlık bir fonksiyon tanımlayıcısıdır (KGC tarafından seçilir ve yayımlanır). İmzalama anahtarları, şifreleme anahtarları ve anahtar değişimi anahtarları kimliği farklı hid değerleriyle karmaladığından, sızdırılmış tek bir kullanıcı anahtarı yalnızca o tek fonksiyonu tehlikeye atar.

Kimlikler nasıl iptal edilir? SM9 içinde bir CRL mekanizması yoktur. Standart uygulama: son kullanma tarihini kimliğin kendisine gömün (bob@example.com|2026-Q4), böylece anahtarlar periyodik olarak yeniden verilmelidir ve KGC iptal edilmiş kimlikler için basitçe vermeyi durdurur.

SM9 gerçekte nerede kullanılıyor? Düzenlemeye tabi Çin sektörlerinde — bankacılık, devlet ve endüstri mesajlaşmasında — genellikle tek bir otoritenin kabul edilebilir olduğu ve "bugün bir e-posta adresine şifrele, yarın kullanıcıyı kaydet" yaklaşımının eşleştirme maliyetine değdiği kapalı ekosistemlerde.

Öz test
Bu salt okunur bir sayfa olduğundan, öz-test sayfanın kendisini doğrular: yukarıda gösterilen her eğri sabiti bağımsız olarak doğrulanmış değerlerle yeniden denetlenir (asal p ve düzen N BN parametrizasyonundan yeniden hesaplanır, her iki üreteç eğri üzerinde ve düzen N ile denetlenir), standart numaraları, şablon değişmezleri (DOCTYPE yok, derleme işareti), çapraz bağlantılar ve SSS varlığı.