1. 国密算法体系概览
国密算法是我国自主设计并发布的一系列商用密码算法,由国家密码管理局(OSCCA)主导制定,通过国家标准(GB/T)和密码行业标准(GM/T)形成完整体系。理解国密算法,首先要建立一张“全景地图”:哪些算法解决什么问题、它们分别处于密码体系的哪一层、与国际主流算法如何对应、在什么场景下必须使用、合规上有哪些硬性要求。本节围绕这五个问题展开。
一、SM系列算法的分类与定位
国密算法并非单一算法,而是按密码功能划分为对称加密、非对称加密、杂凑(哈希)、消息认证、标识密码等类别。核心成员包括:
- SM1:分组对称密码算法,分组长度128位,密钥长度128位,算法细节不公开,以硬件IP核形式提供,主要用于金融IC卡、加密机等嵌入式场景。
- SM2:基于椭圆曲线密码(ECC)的非对称算法,包含数字签名、密钥交换、公钥加密三部分,密钥长度256位,安全强度约等于RSA 3072位。
- SM3:密码杂凑算法,输出256位摘要,用于完整性校验、数字签名中的消息摘要、HMAC构造等。
- SM4:分组对称密码算法,分组长度128位,密钥长度128位,32轮非线性迭代结构,算法公开,软硬件实现皆可。
- SM9:基于双线性对的标识密码算法,以用户标识(如邮箱、手机号)作为公钥,无需数字证书,适用于大规模密钥管理场景。
- SM7:分组对称密码算法,分组长度128位,密钥长度128位,主要用于非接触式IC卡等场景。
- SM9之外还有ZUC(祖冲之)序列密码,用于4G/5G移动通信空口加密与完整性保护。
从密码体系层次看,SM4、SM1、SM7、ZUC属于对称密码层,负责数据机密性;SM2、SM9属于非对称密码层,负责密钥分发、身份认证与数字签名;SM3属于杂凑层,负责数据完整性与签名摘要。三者协同才能构成完整的密码应用方案。
二、标准体系与合规依据
国密算法的标准体系分为三个层级:
- 法律层:《密码法》《网络安全法》《数据安全法》构成合规上位法,明确商用密码用于保护非国家秘密信息,关键信息基础设施必须使用商用密码保护。
- 标准层:GB/T 32918系列(SM2)、GB/T 32905(SM3)、GB/T 32907(SM4)、GB/T 38635系列(SM9)等国家标准,以及GM/T 0002、GM/T 0003、GM/T 0004等密码行业标准,规定算法参数、接口与测试方法。
- 应用层:GM/T 0028《密码模块安全技术要求》、GM/T 0039《密码模块安全检测要求》等,规范密码模块的分级与检测;金融、政务、能源等行业还发布各自的国密改造指南。
三、与国际主流算法的对比
国密算法在设计目标上与国际算法对等,但参数和结构不同,不能直接混用。下表给出常见对应关系与关键参数对比(示例参数以标准公开值为准):
| 功能类别 | 国密算法 | 国际对应 | 关键参数 | 典型差异 |
|---|---|---|---|---|
| 分组对称 | SM4 | AES-128 | 128位分组/128位密钥/32轮 | 结构不同,S盒不同,不可互操作 |
| 非对称签名 | SM2 | ECDSA P-256 | 256位素域椭圆曲线 | 签名格式、曲线参数不同 |
| 非对称加密 | SM2 | RSA-3072 / ECIES | 256位密钥 | SM2加密基于椭圆曲线,非RSA |
| 杂凑 | SM3 | SHA-256 | 256位输出/512位分组 | 压缩函数与迭代常数不同 |
| 标识密码 | SM9 | IBC(如Boneh-Franklin) | 双线性对/256位 | SM9有独立标准与参数 |
| 序列密码 | ZUC | SNOW 3G / AES-CTR | 128位密钥/128位IV | 用于移动通信空口 |
需要特别强调:SM2与ECDSA虽然都基于椭圆曲线,但曲线参数、签名编码、密钥派生方式均不同,不能把SM2密钥直接用于ECDSA,也不能把SM3摘要当作SHA-256使用。在协议改造中,必须整体替换算法套件,而不是只换其中一个环节。
四、典型应用场景
国密算法的落地场景可以按“数据在哪里、需要什么保护”来划分:
- 金融领域:银行卡、POS终端、网上银行、移动支付,使用SM2做签名与密钥交换,SM4做报文加密,SM3做完整性校验。
- 电子政务:电子印章、电子证照、公文传输,使用SM2数字签名保证不可否认性,SM3保证公文完整性。
- 身份认证:基于SM2的数字证书体系(如SM2证书链)替代RSA证书链,用于VPN、SSL/TLS国密改造。
- 物联网与车联网:SM4轻量级实现用于传感器数据加密,SM9用于海量设备标识密钥管理。
- 移动通信:ZUC用于4G/5G空口加密和完整性保护。
- 区块链:SM2签名、SM3哈希用于联盟链身份与交易完整性。
五、合规要求与工程落地要点
在工程实践中,使用国密算法不是“把算法库换掉”这么简单,需要关注以下要点:
- 算法套件整体替换:TLS国密改造需使用SM2+SM3+SM4套件(如GM/T 0024),不能只替换对称算法。
- 密钥管理合规:密钥生成、存储、分发、销毁需符合GM/T 0039等要求,使用通过认证的密码模块或密码机。
- 随机数质量:SM2签名依赖高质量随机数,随机数不合格会导致私钥泄露,必须使用合规随机数发生器。
- 密评要求:关键信息基础设施运营者应每年至少开展一次商用密码应用安全性评估,评估内容包括算法合规性、密钥管理、密码模块认证等。
- 性能与兼容:SM4软件实现性能与AES相当,SM2签名速度优于RSA-3072;但国密改造需考虑与现有国际算法并存的过渡方案。
六、体系关系图解
下图从“密码功能—算法—标准—典型场景”四个维度展示国密算法体系的整体关系,帮助建立全局认知:
这张图的核心信息是:国密算法不是孤立存在的,而是“功能层—算法层—标准层—场景层”四层贯通。学习国密算法,既要记住每个算法的参数和用途,也要理解它在标准体系和合规框架中的位置,这样才能在实际工程中做出正确的算法选型和改造方案。