国密算法(SM系列)是国家密码管理局认定并发布的国产商用密码算法标准体系。"SM"是"商密"(Commercial Cryptography)的缩写,数字编号不代表代际升级关系,而是不同功能模块的区分。截至目前,已公开发布的SM系列算法主要包括SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法和SM9标识密码算法四种。这四套算法各自覆盖密码学的一个核心领域:SM2对应非对称加密体系,SM3对应单向散列函数,SM4对应对称分组加密,SM9对应基于标识的密码体制(IBC)。四者协同构成一个完整的国产密码技术栈,覆盖了数据加密、完整性校验、数字签名、身份认证和密钥协商等密码学全场景需求。
从发布时间线来看,SM2于2010年12月17日发布,标准编号GM/T 0003-2012,旨在替代RSA在我国商用密码体系中的位置。SM3密码杂凑算法同期发布,标准编号GM/T 0004-2012。SM4最初以"SMS4"名义随WAPI标准公开,2012年3月21日正式定名为SM4(GM/T 0002-2012),2016年转化为国标GB/T 32907-2016。SM9标识密码算法于2016年3月28日发布,基于椭圆曲线双线性对,使我国成为全球少数拥有自主标识密码算法标准的国家。SM系列中SM1和SM7算法细节未公开,仅能通过硬件芯片调用,考试焦点始终集中在SM2、SM3、SM4和SM9四种公开算法。
SM2算法的安全性建立在椭圆曲线离散对数问题(ECDLP)之上,而非RSA所依赖的大整数因子分解难题。其椭圆曲线定义在素数域256位上,方程形式为y的平方等于x的立方加ax加b,基点G的阶n为大素数。私钥d从1到n-1之间随机选取,公钥P=dG即私钥与基点G的标量乘法运算结果。已知公钥P和基点G反推私钥d,等价于求解椭圆曲线离散对数,计算复杂度为指数级。256位SM2密钥的安全强度等价于3072位RSA密钥,而密钥长度仅为后者的约十二分之一。SM2包含三个功能模块:SM2-1数字签名算法、SM2-2密钥交换协议和SM2-3公钥加密算法,分别对应签名验签、密钥协商和数据加密。
SM3算法的设计结构采用Merkle-Damgård迭代框架,消息分组长度为512比特,经过填充、消息扩展和64轮压缩函数迭代后,输出固定256比特的杂凑值。SM3由王小云院士团队主导设计——该团队因成功破解MD5和SHA-1而享誉国际密码学界,这一背景本身就赋予了SM3极高的可信度。相比SHA-256,SM3在消息扩展和压缩函数中引入了更复杂的非线性变换,强化了对差分攻击和碰撞攻击的抵抗能力。其核心特征之一是强雪崩效应:输入数据的任意一个比特发生变化,输出摘要中约有一半的比特随之翻转,使得攻击者无法通过微小扰动猜测原始数据。
SM4算法的核心构造是32轮非平衡Feistel迭代结构。与AES采用的SPN(代换-置换网络)结构不同,非平衡Feistel结构的特点在于加密和解密使用完全相同的电路逻辑,解密时只需将32个轮密钥的使用顺序逆序排列即可恢复明文。SM4的明文分组长度和密钥长度均为128比特。每轮操作包括:将32位子分组与轮密钥异或,经过由四个并行S盒构成的非线性变换实现混淆,再通过循环移位和异或构成的线性变换实现扩散,最终由合成置换T完成一轮迭代。S盒是SM4安全性的核心组件,采用仿射函数逆映射复合法设计,具有优良的非线性度和差分均匀度,能够有效抵抗差分密码分析和线性密码分析。32轮迭代的设计提供了充足的安全冗余,确保即使攻击者获取大量明密文对,也难以恢复密钥。
SM9算法的数学基础与其他三者有本质区别。它不是基于椭圆曲线离散对数问题,而是基于椭圆曲线双线性对(Bilinear Pairing)的性质。双线性对是一个映射e,将两个加法循环群G1和G2的元素映射到乘法循环群GT,且满足双线性性——即e(aP, bQ)等于e(P, Q)的ab次方。SM9在BN曲线上采用R-ate对实现这一映射。标识密码的核心思想由Shamir于1984年提出:用户的身份标识(如邮箱地址、手机号码、身份证号)直接充当公钥,无需数字证书绑定,私钥由密钥生成中心(KGC)根据系统主密钥和用户标识统一计算分发。这从根本上消除了传统PKI体系中证书申请、签发、更新和吊销的全套管理负担。SM9的安全性依赖于双线性Diffie-Hellman问题的难解性,其加密强度等同于3072位密钥的RSA算法。
按密码学功能分类,SM2属于非对称加密,使用公钥私钥对,解决开放网络中"你是谁"的身份信任问题。SM3属于单向散列函数,解决"数据有没有被篡改"的完整性问题。SM4属于对称加密,加解密使用同一密钥,解决"数据不能让第三方看到"的机密性问题。SM9属于标识密码算法,革新了密钥管理模式,解决"如何省去证书管理"的部署简化问题。
在实际工程应用中,四种算法按特定协同模式组合部署。最常见的混合加密体系流程是:发送方生成临时SM4会话密钥对明文高速加密,再用接收方SM2公钥加密该会话密钥传输。接收方用SM2私钥解密获得SM4会话密钥后解密正文。SM3全程负责计算明文杂凑值随密文传输,供接收方验证完整性。这一组合同时实现机密性、身份认证和完整性校验,是国密SSL/TLS协议、国密IPSec VPN和安全电子邮件的标准工作模式。
从行业应用看,SM2和SM3的组合已广泛应用于电子政务签名、二代身份证管理系统、金融信息系统和数字人民币体系。SM4因WAPI标准的推动深度嵌入无线局域网安全,同时在国内金融IC卡、POS终端和ATM加密键盘中承担加密任务。SM9凭借免证书部署的天然优势,在物联网终端认证、车联网V2X安全通信和海量移动设备密钥分发中展现出不可替代的价值。
与国际算法对标关系的准确理解对备考至关重要。SM2对标的是RSA和ECDSA,但并非简单替换——SM2采用自主设计的256位椭圆曲线参数,与国际上常用的NIST P-256曲线互不兼容。SM3对标的是SHA-256,在设计理念上借鉴了SHA-2的Merkle-Damgård结构,但在压缩函数的非线性变换上做了自主增强。SM4对标的是AES-128,两者分组长度和密钥长度相同,但AES采用SPN结构而SM4采用非平衡Feistel结构,导致两者在硬件实现代价和侧信道攻击防护能力上各有优劣。SM9对标的是国际上的IBC方案如Boneh-Franklin方案,但在双线性对
本篇完!