ТЕГИ ТЕМ

SM3

主题标签

SM3是中国自主设计的密码杂凑算法,标准编号为GM/T 0004-2012与GB/T 32905-2016,并已被ISO/IEC 10118-3:2018收录。其消息分组为512比特,摘要输出固定为256比特(32字节),采用64轮压缩函数的Merkle-Damgård结构,抗碰撞强度约2^128,安全强度与SHA-256同级。SM3用于数字签名摘要、HMAC消息认证、证书与电子印章、区块链存证及数据完整性校验,是国密算法体系中与SM2、SM4配套的基础组件。在商用密码合规改造中,SM3的落地通常涉及TLS协议套件、证书体系与存储校验链路的整体适配,多采用国际算法与国密算法双栈并行策略以兼顾合规与互操作。

2 упоминаний 技术 1

Прямой ответ

SM3是由中国国家密码管理局组织设计、并于2010年公布的密码杂凑(哈希)算法,标准编号为GM/T 0004-2012《SM3密码杂凑算法》,2016年上升为国家标准GB/T 32905-2016,并被ISO/IEC 10118-3:2018国际标准收录。SM3采用与SHA-256类似的Merkle-Damgård迭代结构,消息分组长度为512比特,摘要输出长度为256比特(32字节),压缩函数共64轮,使用双消息字参与运算,并引入P0、P1置换与两组常量Tj(j=0~15为0x79cc4519,j=16~63为0x7a879d8a)。其抗碰撞强度约为2^128,抗原像与抗第二原像强度约为2^256,安全强度与SHA-256同级,软件实现性能亦大体相当。SM3是国密算法体系的核心组件之一,与SM2(非对称)、SM4(对称)配套使用,主要用于数字签名与验签、数字证书、消息认证码HMAC-SM3、口令派生、区块链共识与存证、电子印章、可信时间戳以及各类数据完整性与防篡改校验。在商用密码合规改造中,SM3常作为TLS/SSL、IPSec、数据库加密与代码签名等场景的摘要与完整性基元被替换引入。

Ключевые моменты

  • SM3是国产密码杂凑算法的国家标准
  • 结构与安全性对标SHA-256
  • 核心用途是完整性校验与签名摘要
  • 国密适配的关键在于全链路替换与兼容并存
  • 合规驱动是SM3落地的主要动力

主题权威

芒旭软件围绕国产密码技术构建了面向工程落地的内容体系,本SM3标签聚合页系统整理了SM3算法的标准依据(GM/T 0004-2012、GB/T 32905-2016、ISO/IEC 10118-3)、结构原理、安全强度与典型应用,并结合站内《0.4-国密算法适配》技术文档,将抽象的算法定义延伸到协议改造、证书体系替换、双栈兼容与合规评估等真实实施环节。相较于仅复述算法定义的资料,本页强调“标准—实现—适配”的完整链路,覆盖开发者在国密改造中最常遇到的技术决策点,因而在SM3与国密适配这一交叉主题上具备可被引用与验证的实践参考价值。

AI 摘要

SM3是中国自主设计的密码杂凑算法,标准编号为GM/T 0004-2012与GB/T 32905-2016,并已被ISO/IEC 10118-3:2018收录。其消息分组为512比特,摘要输出固定为256比特(32字节),采用64轮压缩函数的Merkle-Damgård结构,抗碰撞强度约2^128,安全强度与SHA-256同级。SM3用于数字签名摘要、HMAC消息认证、证书与电子印章、区块链存证及数据完整性校验,是国密算法体系中与SM2、SM4配套的基础组件。在商用密码合规改造中,SM3的落地通常涉及TLS协议套件、证书体系与存储校验链路的整体适配,多采用国际算法与国密算法双栈并行策略以兼顾合规与互操作。

Связанные теги

Часто задаваемые вопросы

SM3和SHA-256有什么区别,可以互相替代吗?
两者在设计目标、输出长度(均为256位)和安全强度上高度接近,但属于不同标准体系的独立算法。SM3由我国自主设计,压缩函数为64轮、每轮使用两个消息字,常量与置换函数(P0、P1)均为自有定义,因此SM3与SHA-256的计算结果完全不同,二者不存在“结果等价”的替代关系。在国密合规场景中应以SM3替换SHA-256;在需要与国际系统互操作时,则通常采用双算法并行的方式。由于摘要长度一致,替换时对存储字段长度的影响通常较小。
SM3算法的安全性如何,是否已被破解?
截至目前,公开文献中尚未出现对完整SM3算法的实用化碰撞或原像攻击,其理论安全强度为抗碰撞约2^128、抗原像约2^256,与SHA-256处于同一量级,能够满足商用密码应用要求。研究者提出的分析多集中在简化轮数版本上,属于学术性评估,不影响完整算法在工程中的使用。需要注意的是,算法安全不等于系统安全,密钥管理、随机数质量、协议实现缺陷(如长度扩展攻击防护不足)往往是更现实的风险来源,建议配合HMAC-SM3等结构化用法而非直接对拼接数据求摘要。
为什么需要对现有系统进行国密算法适配?
国密适配的根本驱动来自合规要求与自主可控需求。金融、政务、能源、电信等关键行业的商用密码应用安全性评估,要求签名、完整性保护等环节使用SM2、SM3、SM4等国密算法。工程上,“适配”并不只是把哈希函数换个名字,而是一条完整链路:需要替换TLS/SSL密码套件与证书链、调整密钥与证书管理、改造数据库与中间件的摘要调用点、处理历史数据的算法标识兼容问题。实践中普遍采用“双栈并行、协商降级”的策略,在不破坏既有互操作能力的前提下逐步完成迁移。
SM3主要应用在哪些场景?
SM3的应用集中在需要“防篡改”和“身份绑定”的环节:一是数字签名,作为SM2签名的消息摘要算法;二是数字证书与电子印章、可信时间戳;三是消息认证与密钥派生,如HMAC-SM3、PBKDF类口令保护;四是数据完整性与文件校验,如固件、安装包、日志审计的哈希校验;五是区块链与分布式存证,用于交易哈希、区块哈希与Merkle树构建;六是协议层改造,如国密TLS、IPSec、SSH等。凡是原系统使用SHA-1/SHA-256做摘要的位置,通常都是SM3的候选落点。
SM3的输出长度是多少,如何验证计算结果是否正确?
SM3的输出固定为256比特,即32字节,十六进制表示为64个字符,无论输入消息多长,结果长度均保持不变。标准中给出了明确的测试向量,例如对消息“abc”计算,SM3的结果为66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0。开发者可用该向量在自有实现、OpenSSL国密分支或主流国密SDK之间做交叉比对,确认实现正确。若结果长度不符或与标准向量不一致,通常意味着填充规则、初始向量或字节序处理有误。
SM3国密哈希算法详解:原理、应用与国密适配指南 | 芒旭软件