Generátor hashů SM3

Počítejte otisky SM3 — GB/T 32905-2016, čínský národní standard kryptografického hashe — textu nebo souborů zcela ve vašem prohlížeči. Prostý SM3 nebo klíčovaný HMAC-SM3, výstup v hex nebo Base64, s vedlejší linkou SHA-256 pro srovnání. Nic se nenahrává.
AlgoritmusŠtěpení
SM3–
SHA-256 (srovnávací linie, pouze zdroj text)–
Podrobnosti–
Kontrola z příkazové řádky — otisk, který tato stránka vypíše pro soubor, odpovídá bajt po bajtu openssl dgst -sm3 file.bin (OpenSSL 1.1.1+) a gmssl dgst -sm3 file.bin. Pro HMAC-SM3: openssl dgst -sm3 -hmac <key> s textovým klíčem.
Autotest
Znovu spustí engine stránky proti oficiálním vektorům přílohy A GB/T 32905-2016, vektorům HMAC-SM3 GB/T 15852.2 (ISO/IEC 9797-2), inkrementálnímu běhu po 1000bajtových částech, oběma vzorkovým sadám, lince Base64 proti vlastnímu kodéru prohlížeče a negativním cestám (chybně zapsaný hex klíč musí být odmítnut). Nic se nikam neposílá.
Co je SM3?
Stručně: SM3 je kryptografický hash čínského orgánu pro standardy — 256bitový hash Merkle–Damgård ve stejné strukturální rodině jako SHA-256, ale s vlastními počátečními hodnotami, konstantami kol, booleovskými funkcemi a 68slovnou expanzí zprávy; publikovaný jako GM/T 0004-2012 a později GB/T 32905-2016.
SM3 vs SHA-256 na první pohled
AspektSM3SHA-256
Velikost otisku / bloku / slova256 / 512 / 32 bitů256 / 512 / 32 bitů
Kola komprese6464
Expanze zprávyW[0..67] + odvozené W'[0..63], permutace P1W[0..63] s rotacemi σ0/σ1
Konstanty koldvě konstanty T0..15=0x79CC4519, T16..63=0x7A879D8A, rotované podle j64 konstant K[0..63]
Booleovské funkcepřepínání FF/GG v kole 16Ch/Maj všude
Pořadí bajtůbig-endianbig-endian
Publikováno2010 (GM/T 0004-2012; GB/T 32905-2016)2001 (FIPS 180-2)
Mezinárodní statuszahrnuto v ISO/IEC 10118-3:2018FIPS 180-4

Stejná kostra, jiný sval: oba algoritmy rozdělí zprávu na 512bitové bloky a provedou 64 kol míchání nad osmi 32bitovými registry, ale každá konstanta, každé množství rotace a krok expanze zprávy se liší, takže pro stejný vstup vytvářejí zcela nesouvisející otisky. SM3("abc") je 66c7f0f4...8f4ba8e0, zatímco SHA-256("abc") je ba7816bf...f20015ad — vyzkoušejte obojí tlačítkem Ukázka.

Znamená „národní standard“ bezpečnější?

Ne — a to není jeho úkolem. SM3 nabízí bezpečnost srovnatelnou s SHA-256: 256bitový otisk, žádné známé praktické kolize ani útoky preimage. Důvod existence SM3 je nezávislost sady a regulatorní shoda: čínská pravidla komerční kryptografie (商用密码, „SM“) vyžadují domácí sadu v certifikovaných odvětvích — bankovnictví, státní správa, telekomunikační infrastruktura — aby celý zásobník (hash, podpis, šifra) řídil jeden národní standardizační proces místo cizích. Mimo tento kontext jsou SHA-256 a SM3 v síle zaměnitelné; zvolte SM3, když to vyžaduje protistrana, regulátor nebo protokol (například TLS 1.3 se šifrovými sadami SM z RFC 8998).

Kde SM3 sedí v sadě SM
  • SM3 (tato stránka) — hash. Také otisk uvnitř podpisů SM2 (hodnota ZA) a KDF šifrování SM2.
  • SM4 — 128bitová bloková šifra (představte si „AES národní“), ECB/CBC na stránce SM4 této rodiny.
  • SM2 — algoritmus podpisu a šifrování nad eliptickou křivkou sm2p256v1, postavený na SM3.
  • SM9 — kryptografie založená na identitě: vaše e-mailová adresa je váš veřejný klíč.
Časté chyby
  • Hashování hesel pomocí SM3. SM3 je rychlý obecný hash jako SHA-256 — na GPU miliardy pokusů za sekundu. Pro ukládání hesel použijte bcrypt, scrypt, Argon2id nebo PBKDF2 z generátoru hashů hesel.
  • Předpoklad, že zde záleží na starém pořadí C1C2C3. Pořadí šifrotextu je téma SM2; SM3 tuto zvláštnost nemá. Jeho výstup má vždy 32 bajtů.
  • Záměna GM/T 0004-2012 a GB/T 32905-2016. Stejný algoritmus, stejné testovací vektory — GM/T je oborová publikace, GB/T národní. Také ISO/IEC 10118-3:2018 ho obsahuje.
  • Důvěřujte, ale ověřujte. Autotest na této stránce přehrává vlastní vektory standardu z příloh; pokud nehlásí „0 selhalo“, výstupu nedůvěřujte.
Časté dotazy

Je SM3 v OpenSSL? Ano — OpenSSL 1.1.1 a novější: openssl dgst -sm3 file, HMAC přes -hmac. GmSSL (čínská odnož) ho má déle. Tato stránka nic z toho nepotřebuje: algoritmus běží ve vašem prohlížeči.

K čemu je HMAC-SM3? Autentizace zpráv: otisk, který zároveň dokazuje, kdo ho poslal, protože jej může vytvořit jen držitel sdíleného klíče. Standardizováno v GB/T 15852.2 / ISO/IEC 9797-2. Klíč může mít libovolnou délku; přes 64 bajtů se nejprve zahešuje.

Proč linie souboru neukazuje srovnání se SHA-256? Srovnání používá vestavěný jednorázový otisk WebCrypto prohlížeče, který potřebuje celý vstup v paměti — v pořádku pro text, ne pro 200MB soubor čtený po částech. Samotný SM3 se počítá inkrementálně a zde žádný takový limit nemá.

Mohu otisk získat jako Base64? Ano — volbou Formát výstupu. Obě linie každého výsledku lze zkopírovat nebo stáhnout jako malou textovou zprávu.