SM3 Özet Üreteci

Metnin ya da dosyaların SM3 özetlerini (GB/T 32905-2016, Çin ulusal kriptografik karma standardı) tamamen tarayıcınızda hesaplayın. Düz SM3 ya da anahtarlı HMAC-SM3, onaltılık ya da Base64 çıktı; karşılaştırma için yan yana bir SHA-256 şeridi. Hiçbir şey yüklenmez.
AlgoritmaKesin
SM3–
SHA-256 (karşılaştırma şeridi, yalnızca metin kaynağı)–
Ayrıntılar–
Komut satırı çapraz denetimi — bu sayfanın bir dosya için yazdırdığı özet, openssl dgst -sm3 file.bin (OpenSSL 1.1.1+) ve gmssl dgst -sm3 file.bin ile bayt bayt eşleşir. HMAC-SM3 için: metin anahtarla openssl dgst -sm3 -hmac <key>.
Öz test
Sayfa motorunu resmî GB/T 32905-2016 ek A vektörlerine, GB/T 15852.2 (ISO/IEC 9797-2) HMAC-SM3 vektörlerine, parçalı 1000 baytlık artımlı bir çalıştırmaya, her iki örnek havuzuna, tarayıcının kendi kodlayıcısına karşı Base64 şeridine ve olumsuz yollara (hatalı biçimli onaltılık anahtar reddedilmelidir) karşı yeniden çalıştırır. Hiçbir şey hiçbir yere gönderilmez.
SM3 nedir?
Tek cümleyle: SM3, Çin ulusal standartlar kuruluşunun kriptografik karmasıdır — SHA-256 ile aynı yapısal ailede 256 bitlik bir Merkle–Damgård karmasıdır, ancak kendi başlangıç değerleri, tur sabitleri, Boolean fonksiyonları ve 68 kelimelik bir ileti genişletmesiyle; GM/T 0004-2012 ve daha sonra GB/T 32905-2016 olarak yayımlanmıştır.
Bir bakışta SM3 ve SHA-256
YönSM3SHA-256
Özet / blok / kelime boyutu256 / 512 / 32 bit256 / 512 / 32 bit
Sıkıştırma turları6464
İleti genişletmesiW[0..67] + türetilmiş W'[0..63], P1 permütasyonuW[0..63], σ0/σ1 döndürmeleriyle
Tur sabitleriiki sabit T0..15=0x79CC4519, T16..63=0x7A879D8A, j'ye göre döndürülmüş64 sabit K[0..63]
Boolean fonksiyonlarıFF/GG, 16. turda değişirHer yerde Ch/Maj
Bayt sırasıbüyük uçlu (big-endian)büyük uçlu (big-endian)
Yayımlandı2010 (GM/T 0004-2012; GB/T 32905-2016)2001 (FIPS 180-2)
Uluslararası durumISO/IEC 10118-3:2018'de yer alırFIPS 180-4

Aynı iskelet, farklı kas: iki algoritma da iletiyi 512 bitlik bloklara böler ve sekiz 32 bitlik kayıt üzerinde 64 tur karıştırma yapar, ancak her sabit, her döndürme miktarı ve ileti genişletme adımı farklıdır; bu yüzden aynı girdi için tamamen ilgisiz özetler üretirler. SM3("abc") 66c7f0f4...8f4ba8e0, SHA-256("abc") ise ba7816bf...f20015ad'dir — ikisini de Örnek düğmesiyle deneyin.

"Ulusal standart" daha güvenli mi demek?

Hayır — ve bu onun işi değil. SM3, SHA-256 ile karşılaştırılabilir güvenlik sunar: 256 bitlik bir özet, bilinen pratik çarpışma ya da ön-görüntü saldırısı yok. SM3'ün var olmasının nedeni paket bağımsızlığı ve düzenleyici uyumluluktur: Çin ticari kriptografi düzenlemeleri (商用密码, "SM") onaylı sektörlerde — bankacılık, devlet, telekom altyapısı — yerli paketi zorunlu kılar, böylece tüm yığın (karma, imza, şifre) yabancı değil tek bir ulusal standart sürecinin kontrolünde olur. Bu bağlam dışında SHA-256 ve SM3 güç açısından birbirinin yerine geçebilir; karşı tarafınız, düzenleyiciniz ya da protokolünüz (örneğin RFC 8998 SM şifre paketleriyle TLS 1.3) bunu istediğinde SM3'ü seçin.

SM3, SM paketinin içinde nerede durur
  • SM3 (bu sayfa) — karma. Aynı zamanda SM2 imzalarındaki özet (ZA değeri) ve SM2 şifrelemesinin KDF'sidir.
  • SM4 — 128 bitlik blok şifresi ("ulusal hale getirilmiş AES" olarak düşünün); bu ailenin SM4 sayfasında ECB/CBC.
  • SM2 — sm2p256v1 eğrisi üzerinde eliptik eğri imza ve şifreleme algoritması; SM3 üzerine kuruludur.
  • SM9 — kimlik tabanlı kriptografi: e-posta adresiniz açık anahtarınızdır.
Yaygın hatalar
  • SM3 ile parola karmalamak. SM3, SHA-256 gibi hızlı, genel amaçlı bir karmadır — bir GPU üzerinde saniyede milyarlarca tahmin. Parola saklama için Parola Karma Üretici'deki bcrypt, scrypt, Argon2id ya da PBKDF2'yi kullanın.
  • Eski C1C2C3 sırasının burada önemli olduğunu varsaymak. Şifreli metin sıralaması bir SM2 konusudur; SM3'te böyle bir ayrıntı yoktur. Çıktısı her zaman 32 bayttır.
  • GM/T 0004-2012 ile GB/T 32905-2016'yı karıştırmak. Aynı algoritma, aynı test vektörleri — GM/T sektörün standart yayını, GB/T ise ulusal olanıdır. ISO/IEC 10118-3:2018 de onu içerir.
  • Güvenin ama doğrulayın. Bu sayfadaki öz-test standardın kendi ek vektörlerini yeniden oynatır; "0 başarısız" dememişse çıktıya güvenmeyin.
SSS

SM3, OpenSSL'de var mı? Evet — OpenSSL 1.1.1 ve sonrası: openssl dgst -sm3 file, -hmac ile HMAC. GmSSL (Çince çatal) bunu daha uzun süredir içerir. Bu sayfa hiçbirine ihtiyaç duymaz: algoritma tarayıcınızda çalışır.

HMAC-SM3 ne için? İleti kimlik doğrulaması: paylaşılan anahtarın sahipleri onu üretebildiği için, kimin gönderdiğini de kanıtlayan bir özet. GB/T 15852.2 / ISO/IEC 9797-2'de standartlaştırılmıştır. Anahtar herhangi bir uzunlukta olabilir; 64 bayttan uzunsa önce karmalanır.

Dosya şeridi neden SHA-256 karşılaştırmasını göstermiyor? Karşılaştırma tarayıcının yerleşik WebCrypto tek seferlik özetini kullanır; bu, tüm girdinin bellekte olmasını gerektirir — metin için uygundur, parçalar halinde akan 200 MB'lık bir dosya için değil. SM3'ün kendisi artımlı hesaplanır ve burada böyle bir sınırı yoktur.

Özeti Base64 olarak alabilir miyim? Evet — Çıktı biçimi seçici. Her sonucun her iki şeridi de küçük bir metin raporu olarak kopyalanabilir ya da indirilebilir.