1. 国密算法概述

国密算法(国家商用密码算法)是由中国国家密码管理局制定并发布的密码行业标准,广泛应用于政府、金融、电力、通信等关键信息基础设施领域。本章从标准体系、国际对标、应用场景与合规要求四个维度进行系统梳理,为后续源码实现奠定理论基础。

1.1 国密标准体系(SM2/SM3/SM4/SM9)

国密标准体系覆盖公钥密码、对称密码、哈希算法和标识密码四大类,核心算法包括:

算法类型密钥长度标准编号主要用途
SM2椭圆曲线公钥密码256 位GB/T 32918数字签名、密钥交换、公钥加密
SM3密码杂凑算法256 位摘要GB/T 32905完整性校验、数字签名辅助
SM4分组对称密码128 位GB/T 32907数据加密、通信加密
SM9标识密码算法256 位GB/T 38635基于标识的签名、加密、密钥交换

体系特点: SM2/SM3/SM4 构成基础密码套件,SM9 提供无证书的标识密码方案,降低密钥管理复杂度。所有算法均基于公开的国密标准文档实现,无专利壁垒。

国密标准体系架构图 国家商用密码标准体系 SM2 公钥密码 SM3 杂凑算法 SM4 对称密码 SM9 标识密码 数字签名 密钥交换 公钥加密 数据完整性校验 消息认证码 数据加密/解密 通信链路加密 标识签名 标识加密 SM2 基于椭圆曲线(256位素数域),SM3 输出256位摘要,SM4 为128位分组密码,SM9 基于双线性对 四者共同构成完整的国密算法基础设施

1.2 与国际算法对比分析

国密算法与国际主流算法在安全强度、性能、标准化程度等方面各有特点。以下从核心指标进行对比:

对比维度国密算法国际算法关键差异
公钥密码SM2(256位椭圆曲线)RSA(2048/3072位)、ECDSA(256位)SM2 密钥更短,签名速度优于 RSA,与 ECDSA 安全等级相当
哈希算法SM3(256位输出)SHA-256SM3 结构类似 SHA-256,但消息扩展和压缩函数不同,抗碰撞能力经国家密码管理局验证
对称密码SM4(128位分组,128位密钥)AES(128/192/256位密钥)SM4 采用非平衡 Feistel 结构,AES 为 SPN 结构;SM4 硬件实现效率高
标识密码SM9(基于双线性对)无直接对标(类似 IBC)SM9 无需证书,直接使用用户标识作为公钥,简化 PKI 部署

安全强度等价性: SM2 256位曲线提供与 RSA 3072位、ECDSA 256位同等级别的安全强度(约128位安全级别)。SM3 256位摘要提供与 SHA-256 相同的抗碰撞安全性。

1.3 应用场景与合规要求

国密算法在以下典型场景中具有强制性或推荐性应用要求:

  • 电子政务与党政机关: 根据《密码法》和《商用密码管理条例》,涉及国家秘密和政务信息系统的密码应用必须使用国密算法。
  • 金融行业: 银保监会、人民银行要求银行核心交易系统、网上银行、移动支付等场景逐步替换为 SM2/SM3/SM4。
  • 电力与能源: 国家电网、南方电网的智能电表、调度系统、配电自动化系统强制使用国密算法进行身份认证和数据加密。
  • 通信与物联网: 5G 核心网、物联网平台、车联网 V2X 通信中,SM9 标识密码用于设备身份认证和端到端加密。
  • 云计算与大数据: 政务云、金融云的数据存储加密、传输加密、密钥管理需通过国密算法实现合规。
国密算法应用场景与合规要求 国密算法合规体系 电子政务 金融核心系统 电力与能源 通信与物联网 《密码法》第27条:关键信息基础设施必须使用商用密码进行保护,优先采用国密算法 GM/T 系列标准、GB/T 系列标准为合规检测提供技术依据 GM/T 0009-2012 SM2 GM/T 0004-2012 SM3 GM/T 0002-2012 SM4

合规红线: 自2020年1月1日起,等保2.0标准要求三级及以上信息系统必须使用国密算法进行密码改造。未通过国密算法合规检测的系统,不得通过网络安全等级保护测评。

1.4 国密算法实现的技术要点

在后续章节的源码实战中,我们将围绕以下技术要点展开:

  • SM2 椭圆曲线运算: 素数域运算、点加/倍点、标量乘法、KDF 密钥派生函数。
  • SM3 消息填充与迭代压缩: 消息扩展、64轮压缩函数、异或/移位/置换操作。
  • SM4 密钥扩展与加解密: 32轮非线性迭代、S盒替换、线性变换 L 与 T 函数。
  • SM9 双线性对运算: Tate 对或 Ate 对实现、标识哈希到曲线、密钥封装机制。
  • 安全编码规范: 侧信道防护、随机数生成、内存清零、异常处理。

课程路线: 本章为理论总览,第2章起将依次深入 SM4、SM3、SM2、SM9 的纯 Python 实现,每章附带可运行的代码示例与测试向量验证。