SM1密码算法与国密对称密码体系
概述
SM1 是中国国家密码管理局发布的商用密码算法之一,属于对称分组密码算法。它与 SM2(非对称)、SM3(杂凑)、SM4(对称分组)并称为四大核心国密算法,但 SM1 有一个显著特征:算法本身不公开,仅以 IP 核形式集成在加密芯片中。
本文从 SM1 的技术背景、对称密码体系定位、与 SM4/AES 的关系、应用场景等维度进行系统梳理,帮助读者理解 SM1 在整个国密密码体系中的独特地位。
SM1 的基本参数
| 参数 | 值 |
|---|---|
| 算法类型 | 对称分组密码 |
| 分组长度 | 128 比特 |
| 密钥长度 | 128 比特 |
| 公开状态 | 算法不公开,以 IP 核形式提供 |
| 安全强度 | 与 AES-128 相当 |
| 标准编号 | GM/T 0002-2012 系列(商用密码算法分类) |
| 首次发布 | 2010 年前后 |
国密对称密码体系全景
国密算法体系中包含多个对称密码算法,SM1 并非唯一的对称算法:
对称密码家族
| 算法 | 类型 | 分组长度 | 密钥长度 | 公开状态 | 主要用途 |
|---|---|---|---|---|---|
| SM1 | 分组密码 | 128 bit | 128 bit | 不公开(IP核) | 加密芯片、智能卡、政务通 |
| SM4 | 分组密码 | 128 bit | 128 bit | 完全公开 | 无线网络、物联网、通用加密 |
| ZUC | 流密码 | — | 128 bit | 完全公开(3GPP标准) | LTE/5G 移动通信 |
| SM5 | 分组密码 | 128 bit | 128 bit | 未公开标准 | 无公开部署信息 |
| SM6 | 分组密码 | 128 bit | 128 bit | 未公开标准 | 无公开部署信息 |
| SM7 | 分组密码 | 128 bit | 128 bit | 未公开标准 | 无公开部署信息 |
| SM8 | 分组密码 | 128 bit | 128 bit | 未公开标准 | 无公开部署信息 |
重要说明:SM5-SM8 的算法规范未公开发布为标准文档(如 GM/T 系列)。上表中的参数(128 bit 分组/密钥)来源于行业传闻和部分专利文献,未经官方证实。在正式文档和合规评审中,不应将这些参数作为权威依据。如需确认 SM5-SM8 的具体规范,应联系国家密码管理局获取官方信息。
非对称密码家族
| 算法 | 类型 | 密钥长度 | 公开状态 | 主要用途 |
|---|---|---|---|---|
| SM2 | ECC 公钥密码 | 256 bit | 完全公开 | 数字签名、密钥交换、公钥加密 |
| SM9 | 标识密码(IBE) | 256 bit | 完全公开 | 基于身份的加密和签名 |
杂凑算法家族
| 算法 | 输出长度 | 公开状态 | 主要用途 |
|---|---|---|---|
| SM3 | 256 bit | 完全公开 | 数字签名、消息认证码、完整性校验 |
SM1 为什么不公开?
SM1 不公开算法细节,这是由中国密码学的战略考量决定的:
1. 硬件安全优先的设计哲学
SM1 的设计思路与 AES 不同。AES 选择将算法完全公开,依靠全球密码学界的安全分析来验证其强度;而 SM1 选择了硬件安全优先的路径——算法本身不需要被任何人理解,只要硬件芯片通过了国家密码管理部门的检测认证即可。
这种设计理念源于对供应链安全的考虑:如果算法细节公开,攻击者可能在芯片设计阶段就植入后门;而如果算法以黑盒 IP 核形式存在,只有通过认证的芯片才能正确执行 SM1 运算。
2. 加密芯片的强制要求
根据国家密码管理局的规定,使用 SM1 算法的设备必须搭载通过商用密码产品认证的加密芯片。这意味着:
- 算法实现被锁定在芯片内部
- 外部只能通过芯片接口调用加密/解密功能
- 密钥材料永远不出芯片(或仅以密文形式存在)
- 芯片本身具备防篡改、防侧信道攻击的物理防护
3. 与 SM4 的定位差异
SM1 和 SM4 虽然都是 128 位分组对称密码,但定位截然不同:
| 维度 | SM1 | SM4 |
|---|---|---|
| 实现方式 | 加密芯片 IP 核 | 纯软件/硬件均可 |
| 算法公开 | 否 | 是(GM/T 0002-2012) |
| 密钥管理 | 芯片内安全存储 | 应用层管理 |
| 适用场景 | 高安全等级设备 | 通用数据加密 |
| 性能 | 芯片级极高 | 软件级中等 |
| 审计能力 | 不可审计(黑盒) | 可审计(白盒) |
SM1 的技术特点
虽然 SM1 的算法细节不公开,但从公开的行业资料和专利申请中,可以归纳出以下特点:
1. 分组密码结构
SM1 采用 128 位分组、128 位密钥的对称加密结构,与 AES 的参数规模一致。从专利信息来看,SM1 很可能采用了类似 AES 的代换-置换网络(SPN)结构或 Feistel 网络结构,经过多轮迭代实现混淆和扩散。
2. 硬件优化设计
SM1 的 IP 核设计针对硬件实现进行了专门优化:
- 面积效率:在相同工艺下,SM1 IP 核的逻辑门数少于同等安全强度的国际算法实现
- 吞吐量:专用硬件电路可实现数百 Mbps 甚至 Gbps 级别的实时加密
- 功耗:智能卡级别芯片中 SM1 的功耗远低于 AES 的软件实现
3. 抗侧信道攻击
由于 SM1 运行在加密芯片内部,芯片设计时集成了多种抗侧信道攻击措施:
- 随机掩码(Random Masking)
- 指令重排序(Instruction Shuffling)
- 功耗均衡电路
- 物理防篡改(Anti-Tamper)
SM1 的应用场景
SM1 广泛应用于需要高安全等级的硬件加密场景:
1. 政务领域
- 国家政务通:政府机关之间的安全通信
- 警务通:公安系统的移动执法终端加密
- 电子政务卡:公民身份识别和安全认证
2. 金融领域
- 金融 IC 卡:银行卡芯片中的 SM1 加密模块
- POS 终端:刷卡交易的敏感数据加密
- 智能密码钥匙:U盾类硬件密钥存储设备
3. 通信领域
- SIM 卡:移动通信中的用户身份加密
- 智能卡:各类身份认证和安全存储
- RFID 标签:物流追踪和门禁系统中的加密
4. 物联网领域
- 智能电表:电力数据采集的加密传输
- 车联网:车辆与基础设施之间的安全通信
- 工业控制:关键基础设施的加密保护
SM1 与 AES 的安全性对比
| 对比维度 | SM1 | AES-128 |
|---|---|---|
| 分组长度 | 128 bit | 128 bit |
| 密钥长度 | 128 bit | 128 bit |
| 安全强度 | 128 bit | 128 bit |
| 算法公开 | 否 | 是 |
| 实现方式 | 加密芯片 IP 核 | 软件/硬件均可 |
| 抗量子攻击 | 否(对称算法均不抗量子) | 否 |
| 推荐密钥长度 | 128 bit | 128 bit |
| 密钥轮换周期 | 芯片级管理 | 应用级管理 |
SM1 的标准体系
SM1 的标准依据主要来源于国家密码管理局发布的商用密码算法系列标准:
| 标准编号 | 标准名称 | 与 SM1 的关系 |
|---|---|---|
| GM/T 0002-2012 | 密码算法安全评估要求 | 定义了 SM1 的安全评估框架 |
| GM/T 0028-2014 | 密码模块安全要求 | SM1 芯片需满足的密码模块安全等级 |
| GM/T 0030-2014 | 对称算法安全要求 | SM1 作为对称算法的安全参数要求 |
| GM/T 0054-2018 | 信息系统密码应用基本要求 | SM1 在密评中的应用定位 |
注意:SM1 本身没有独立的算法规范标准(如 SM2 有 GM/T 0003、SM4 有 GM/T 0002 第 2 部分),这是因为 SM1 的算法实现完全由认证芯片厂商提供,标准关注的是芯片的安全等级而非算法的细节。
与 SM4 的互补关系
在实际应用中,SM1 和 SM4 往往不是竞争关系,而是互补关系:
何时选择 SM1
- 系统对密钥保护有极高要求(金融 IC 卡、智能密码钥匙)
- 运行环境为专用加密芯片或安全模块
- 不需要对加密算法进行第三方审计
- 需要防物理篡改和侧信道攻击
何时选择 SM4
- 需要在通用服务器上运行
- 需要算法透明度和可审计性
- 软件实现即可满足性能需求
- 需要灵活的密钥管理策略
- 需要开源生态支持(如 OpenSSL、Bouncy Castle 均已支持 SM4)
典型组合
在一些高安全场景中,SM1 和 SM4 会组合使用:
SM1(芯片内) → 密钥派生和主密钥保护
↓
SM4(软件层) → 大数据量的加密传输
↓
SM3(软件层) → 数据完整性校验这种组合充分发挥了 SM1 的硬件安全优势和 SM4 的软件灵活性优势。
国密对称密码的未来发展
随着密码技术的演进,国密对称密码体系也在持续发展:
1. 密钥长度升级
面对量子计算的潜在威胁,128 位密钥的对称算法可能需要向 256 位升级。SM1 和 SM4 都有对应的 256 位版本规划。
2. 硬件加速普及
越来越多的 CPU 和 SoC 开始集成国密加速指令集,这使得 SM4 的性能大幅提升,逐步缩小与 SM1 芯片级性能差距。
3. 后量子对称密码研究
虽然对称密码对量子计算的抵抗力远强于非对称密码(Grover 算法仅将安全性降低平方根),但学术界已开始研究后量子安全的对称密码设计思路。
总结
SM1 是中国国密算法体系中独特的存在——它是唯一不公开算法细节的国密算法,以 IP 核形式嵌入加密芯片,在硬件安全等级上达到了其他国密算法难以企及的高度。
理解 SM1 的关键在于认识到:它的价值不在于算法本身有多复杂,而在于它被锁在一个无法被外部攻破的硬件容器中。 对于需要极致密钥保护的金融、政务、通信等高安全场景,SM1 仍然是不可替代的选择。而对于需要灵活部署、软件实现和开源生态的场景,SM4 则是更务实的选择。
在实际密码体系设计中,SM1 和 SM4 并非二选一的关系,而是根据安全需求和部署环境的不同,各有其不可替代的定位。
参考来源
- 国家密码管理局,《GM/T 0002-2012 密码算法安全评估要求》
- 国家密码管理局,《GM/T 0028-2014 密码模块安全要求》
- 国家密码管理局,《GM/T 0054-2018 信息系统密码应用基本要求》
- 腾讯云开发者社区,《一文读懂SM1、SM2、SM3、SM4等国密算法》,2024年5月
- 阿里云开发者社区,《一文读懂国密SM1至SM4算法原理与应用场景》,2024年1月
- Google Patents,《一种利用国密sm1算法对视频流进行实时加密的方法及系统》(CN104378649A)
- 安全内参,《密码算法应用及国际标准化情况》,2018年12月
相关实践
- SM4 算法原理详解 — 国密对称分组密码的完整算法剖析
- SM4-GCM 认证加密模式 — SM4 的 GCM 模式与认证加密
- GM/T 0054-2018 密评标准解读 — 密码应用安全性评估的核心标准
- 国密算法全链路性能基准 — SM2/SM3/SM4 vs RSA/SHA/AES 实测对比