SM9 算法基于标识密码(IBC)体系,核心特点是"标识即公钥":用户的唯一标识(如 alice@company.com、手机号码、设备 ID)经过哈希运算后直接作为公钥使用,私钥由密钥生成中心(KGC)根据主密钥和用户标识统一生成。该设计彻底摆脱了对 CA 和数字证书的依赖,大幅简化了密钥管理流程。
KGC 生成系统主密钥对:随机生成主私钥 s(保密存储),计算主公钥 P_pub = s × P2(公开分发)。KGC 同时公开系统参数,包括椭圆曲线参数、基点、哈希函数、双线性对识别符等。主私钥是系统的信任根,必须严格保护。
用户向 KGC 提交身份标识(如邮箱地址),KGC 使用主私钥 s 和标识派生出用户私钥 d_ID = s × H(ID),通过安全渠道(如离线介质、加密通道)分发给用户。此后,任意通信方只需知道对方标识即可进行加密或验签。
Q_B,生成随机数 r,计算密钥 K = e(Q_B, P_pub)^r,使用 K 派生对称密钥加密消息,输出密文 C = (C1, C2)。接收方使用私钥 d_B 计算 K = e(C1, d_B) 恢复对称密钥并解密。SM9 算法标准(GM/T 0044 系列 / GB/T 38635-2020)包括五个部分:总则、数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法、参数定义。
根据《网络安全法》(2026 年修订)和 GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》,政务信息系统应当使用商用密码进行保护。SM2 用于电子公文数字签名,SM3 用于数据完整性校验,SM4 用于敏感数据传输和存储加密,SM9 用于跨部门身份认证的轻量化场景。
金融 IC 卡、银联芯片卡、数字人民币系统均采用了 SM 算法体系。SM2 用于金融交易的数字签名和密钥协商,SM3 用于交易数据的哈希校验,SM4 用于卡片内部数据和交易报文的加密保护。金融数据密码机(GM/T 0045-2016)是支持 SM 算法的专用硬件密码设备。
国密 SSL 证书采用 SM2 算法作为数字签名算法,配套 SM3 作为哈希算法、SM4 作为对称加密算法,构成完整的国密 TLS 协议栈。国密浏览器(如 360 安全浏览器国密版)和国密 Web 服务器(Nginx 国密版)已实现端到端的国密 SSL 支持。
物联网设备资源受限,SM9 的"无证书"特性大幅降低了设备入网和密钥管理的复杂度。车联网中,车辆标识(VIN 码)可直接作为 SM9 公钥,实现车辆间通信的身份认证和数据加密,无需部署车载 CA。
能源、交通、水利等关键基础设施的工业控制系统(ICS)逐步采用 SM 算法保护控制指令的真实性和机密性。SM4 用于无线通信链路加密,SM2 用于远程运维的身份鉴别,SM3 用于日志完整性保护。
SM2 采用 256 位椭圆曲线参数,基于椭圆曲线离散对数问题(ECDLP)的数学困难性,其安全强度等效于 RSA 3072 位,远高于 RSA 2048 位。在相同的 128 位安全级别下,SM2 的密钥长度仅为 RSA 的约 1/12,签名速度和验证速度均显著优于 RSA。
SM3 输出 256 位哈希值,抗碰撞性设计对标并优于 SHA-256。SM3 的压缩函数融入了更复杂的非线性变换,针对差分攻击、长度扩展攻击等进行了专项优化。目前全球密码学界尚未公开 SM3 的有效攻击方法。
SM4 密钥长度 128 位,安全强度与 AES-128 相当。SM4 采用 32 轮非线性迭代的 Feistel 结构,可有效抵抗线性密码分析和差分密码分析。SM4 不支持 192 位和 256 位密钥长度,在密钥长度维度上安全性弱于 AES-256,但在 128 位安全级别下与 AES-128 等效。
SM9 基于 256 位椭圆曲线上的双线性对构造,安全强度同样达到 128 位级别,等效于 RSA 3072 位。由于双线性对运算的计算开销较高,SM9 的计算效率低于 SM2,但在无需证书的大规模用户场景下具有显著的运维优势。
腾讯云、华为云等主流云服务商已提供基于 SM 算法的密码服务。以腾讯云为例,腾讯云密钥管理系统(KMS)支持 SM2 非对称加密和签名、SM3 哈希运算、SM4 对称加密,开发者可通过云 API 直接调用国密算法能力,无需自行部署密码硬件。
在主流服务器 CPU(如 Intel Xeon)软件实现环境下,SM2 256 位密钥的签名速度约为 3000 次/秒,验签速度约为 2000 次/秒,显著快于 RSA 同等安全强度下的性能。SM2 密钥生成速度比 RSA 快约 10 倍,适合高并发身份认证场景。
SM3 的软件实现吞吐量与 SHA-256 相近,在集成硬件加速(如国密专用指令集)的处理器上,SM3 的吞吐量可进一步提升。SM3 的计算复杂度略高于 SHA-256,但在国产化合规场景中为必选项。
SM4 的软件实现性能低于 AES-128 在 AES-NI 硬件加速下的性能。这是因为 AES 有广泛的硬件加速支持(AES-NI 指令集),而 SM4 尚未成为主流 CPU 的硬件加速指令。在国产处理器(如鲲鹏、龙芯)上,SM4 硬件加速已逐步普及,性能差距正在缩小。
SM9 由于涉及双线性对运算,计算开销显著高于 SM2。在相同硬件环境下,SM9 签名速度约为 SM2 的 1/5 至 1/10,但 SM9 节省了证书管理和分发的开销,在大规模用户场景下的总体运维成本更低。
SM 算法是一个算法体系,其中与 AES 对等的算法是 SM4。SM4 和 AES 均为分组对称加密算法,但 SM4 采用非平衡 Feistel 网络结构,AES 采用代换-置换网络(SPN)结构,两者的算法设计路线不同。
SM4 的分组长度和密钥长度均固定为 128 位,不支持更长的密钥长度。AES 支持 128、192、256 位三种密钥长度,在密钥长度灵活性上优于 SM4。在 128 位密钥长度下,SM4 和 AES-128 的安全强度相当。
AES 是美国 NIST 于 2001 年发布的国际标准,全球主流浏览器、操作系统、通信协议均原生支持 AES。SM4 是中国国家标准(GB/T 32907-2016),并已推进为 ISO/IEC 18033-3/AMD1:2021 国际标准,但在海外系统的兼容性仍弱于 AES。
AES 自 2010 年前后起已广泛集成于 x86(AES-NI)、ARM(ARMv8 加密扩展)等主流 CPU 指令集,硬件加速后的性能优势显著。SM4 的硬件加速目前主要见于国产处理器和专用密码芯片,在通用 CPU 上的软件实现性能弱于 AES。
SM 算法体系中与 RSA 对等的非对称算法是 SM2。SM2 基于椭圆曲线离散对数问题(ECDLP),RSA 基于大整数分解问题。在相同安全强度下,SM2 的密钥长度(256 位)远短于 RSA(3072 位),密钥存储和传输开销更低。
SM2 的签名和密钥生成速度显著快于 RSA,但加密速度(使用 SM2 公钥加密时)与 RSA 各有优劣。SM2 的内存占用远低于 RSA,更适合嵌入式设备和物联网终端。RSA 的加密速度在短数据场景下略优于 SM2,但签名速度明显慢于 SM2。
SM2 集数字签名、密钥交换、公钥加密三种功能于一体,一套算法即可满足大多数非对称加密需求。RSA 主要提供数字签名和公钥加密功能,密钥交换通常需要借助 DH 或 ECDH 协议补充实现。
RSA 是全球通用的国际标准,几乎所有 SSL 证书、SSH 密钥均默认使用 RSA 或 ECDSA。SM2 是中国国家标准和国际标准(ISO/IEC 14888-3:2018),主要在中国境内和"一带一路"相关国家推广使用,跨境互通性弱于 RSA。
SM 算法的密钥管理应遵循 GM/T 0051-2016《密码设备管理 对称密钥管理技术规范》和 GB/T 39786-2021 的要求,覆盖密钥生成、分发、存储、更新、归档、销毁全生命周期。密钥生成必须在经国家密码管理局认证的密码设备(如 HSM)中完成,确保密钥不以明文形式出现在设备外部。
SM2 密钥对可由用户端生成(如浏览器密钥生成功能),也可由 CA 或 KMS 生成后安全分发。私钥应存储在受硬件保护的环境(如 TPM 2.0、TEE、UKey)中,不得明文导出。公钥以数字证书(X.509 v3 格式,遵循 GM/T 0015-2023)形式分发和验证。
SM9 的密钥管理以 KGC 为核心。KGC 的主私钥是系统的最高秘密,必须存储在 HSM 中,并采用多因素认证、分片存储、审计日志等机制保护。用户私钥通过安全渠道分发,并建议设置私钥有效期,到期后在 KGC 侧重新生成并更新。
SM4 密钥应通过国家密码管理局认证的密钥管理系统(KMS)生成和管理。密钥分发可采用 SM2 公钥加密或 SM9 加密保护,避免密钥以明文形式在网络中传输。关键系统应定期(如每年)更新 SM4 工作密钥,历史密钥在更新后按规定期限归档或销毁。
GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》是密评(商用密码应用安全性评估)的核心标准,从物理和环境安全、网络和通信安全、设备和计算安全、应用和数据安全、密钥管理安全、安全管理体系六个维度对信息系统密码应用提出要求。系统通过密评的条件是总分不低于 60 分且不存在高风险项。
《关键信息基础设施商用密码使用管理规定》(2025 年 8 月 1 日施行)明确规定:被认定为关键信息基础设施的系统,运行后须每年至少开展一次密评;未通过评估的系统须进行改造,改造期间不得投入运行。金融、能源、交通、政务等行业的核心业务系统均在此范围内。
《网络数据安全风险评估办法》(2026 年 8 月 20 日起施行)第二十三条明确规定:涉及重要数据加密等技术措施的,应当按照国家密码相关法律、行政法规要求开展商用密码应用安全性评估。这意味着重要数据处理者的年度数据安全风险评估,若涉及加密技术措施,必须同步开展密评工作。
销售或提供商用密码产品和服务,应当依法办理商用密码认证(如 SRRC 认证、商密产品型号证书)。使用未经国家密码管理局认证的密码产品(如未获商密资质的 SSL 网关、密码机)建设的系统,在密评中将被判定为不合规。
SM 算法的理论安全性由国家密码管理局组织国内顶尖密码学专家进行多轮评审,包括数学困难问题的规约证明、算法结构的安全性分析、随机性检测等。SM2 的安全性规约为 ECDLP,SM3 的安全性规约为抗碰撞哈希函数的随机预言机模型,SM4 的安全性规约为 Feistel 网络的反演复杂度。
SM2、SM3、SM4、SM9、ZUC 在推进为 ISO/IEC 国际标准的过程中,接受了全球密码学专家的公开审查。国际标准组织的审查意见已反映在最终标准中,进一步验证了 SM 算法的国际学术认可度。
商用密码应用安全性评估(密评)是对 SM 算法实际部署安全性的权威评估方式。密评由具有国家密码管理局认可资质的商用密码检测机构实施,依据 GB/T 39786-2021 及相关检测规范,对系统的密码算法使用正确性、合规性、有效性进行全方位测评。
截至 2026 年,全球密码学界尚未公开 SM2、SM3、SM4、SM9 的有效攻击方法。SM1 和 SM7 因算法细节未公开,安全性无法由学术界独立验证,需依赖国家密码管理局的安全论证。需要注意的是,SM2 和 RSA 均面临量子计算的潜在威胁,抗量子密码算法的研究和标准化工作已在国家密码管理局的组织下展开。
SM4 在通用 CPU 软件实现下的加密速度低于 AES-128 在 AES-NI 硬件加速下的性能。AES 有广泛的硬件加速支持(AES-NI 指令集),而 SM4 尚未成为主流 CPU 的硬件加速指令。在国产处理器(如鲲鹏 920、龙芯 3A5000)上,SM4 硬件加速后的性能已接近 AES 的水平。
SM2 256 位签名速度约为 3000 次/秒,显著快于 RSA 同等安全强度下的性能。在验签速度上,SM2 同样大幅领先于 RSA,适合高并发的认证和签名场景。
SM9 由于涉及双线性对运算,单次加密或签名速度明显慢于 SM2(约为 SM2 的 1/5 至 1/10)。但 SM9 的优势不在于单次运算速度,而在于免证书管理带来的系统总体效率提升。在百万级用户规模的系统中,SM9 的密钥管理开销远低于基于 CA 的 SM2 体系。
SM 算法的实际加密速度受多个因素影响:硬件是否支持国密指令加速、是否使用经认证的密码设备、数据分组模式(ECB/CBC/CFB/OFB/GCM)的选择、密钥长度配置等。在选型时应结合业务场景的吞吐量需求、延迟要求和合规要求综合评估。