SM3 国密哈希
SM3 国密密码杂凑算法,输出 256 位摘要,符合 GM/T 0004 标准。
- SM3 是中国国家密码管理局发布的密码杂凑算法(GM/T 0004-2012)
- 输出 256 位(32 字节 / 64 十六进制字符)摘要,安全强度与 SHA-256 相当
- 用于电子签名、数字证书、消息完整性校验等场景
- 与 SM2、SM4 同属"国密 SM 系列",政企合规场景必备
SM3 国密哈希在线生成
SM3 是中国国家密码管理局发布的密码杂凑算法(GM/T 0004-2012),输出 256 位(32 字节)摘要,安全强度与 SHA-256 相当。 SM3 用于电子签名、数字证书、消息完整性校验等场景,是国密合规体系的核心哈希算法,与 SM2、SM4 配套形成完整密码学方案。
SM3 与 SHA-256 对比
- 输出长度:均为 256 位。
- 分组长度:均为 512 位。
- 结构:SM3 用 Merkle-Damgård 结构;SHA-256 同。
- 性能:相当,软件实现 SM3 略慢于 SHA-256。
- 合规:SM3 是中国国密标准;SHA-256 是国际标准。
常见应用
- 电子签名:与 SM2 算法配套,对原文先 SM3 哈希再签名
- 数字证书:SM2 证书指纹用 SM3 计算
- 数据完整性校验:文件、消息防篡改
- 区块链:部分国产联盟链采用 SM3 替代 SHA-256
- 身份认证:口令加盐哈希存储
国密算法体系
中国国密算法体系是一套完整的密码学标准,旨在关键领域实现自主可控。SM2(GM/T 0003)是基于椭圆曲线的非对称加密算法,密钥长度 256 位,安全强度相当于 RSA-3072,用于数字签名、密钥交换、公钥加密,替代 RSA/ECDSA。SM3(GM/T 0004)是密码杂凑算法,输出 256 位,替代 SHA-256。SM4(GM/T 0002)是分组对称加密,128 位密钥,替代 AES。三者配套使用,覆盖非对称、哈希、对称三大密码学需求。
SM3 的设计:SM3 采用 Merkle-Damgård 迭代结构,分组长度 512 位,共 64 轮压缩,输出 256 位摘要。虽然结构与 SHA-256 类似,但压缩函数、消息扩展、轮函数均针对抗密码分析重新设计。SM3 已通过国际密码学界的广泛分析,未发现实际攻击,安全性等同 SHA-256。
密码存储的特殊说明:和 SHA-256 一样,直接用 SM3 存储密码不安全,容易遭受彩虹表和暴力破解。密码存储应使用专门的慢速哈希算法(bcrypt、scrypt、Argon2)。国密合规场景中,如需用 SM3 派生密钥,可基于 SM3 实现 PBKDF2 类似的密钥派生函数,增加迭代次数和 salt 以抵抗暴力破解。GM/T 0062 提供了基于 SM3 的密码杂凑应用规范。