一、国密算法概述:从实战角度理解国产密码体系

各位同学好,我是你们这门课的老周。今天咱们正式开篇,聊聊国密算法。

说实话,我在信息安全这行摸爬滚打了十几年,早年做项目时,客户一开口就是 RSA、AES、SHA-256,国密?那会儿真没人提。但最近五六年,风向完全变了——等保 2.0 一推,密评一上,国密成了硬门槛。我去年帮一家银行做身份认证改造,光 SM2 证书替换 RSA 证书这一项,就折腾了两个月。嗯,这里面的坑,后面我会慢慢讲。

这一章,我们先搭好地基。搞清楚国密是什么、跟国际算法比差在哪、以及为什么你现在必须学它。

1.1 国密算法体系:SM2 / SM3 / SM4 三剑客

国密算法,全称是中国商用密码算法标准。由国家密码管理局发布,目前最核心的就是三个:SM2、SM3、SM4。我习惯把它们叫做「国密三件套」。

  • SM2 —— 非对称加密 + 数字签名。对标 RSA 和 ECDSA。基于椭圆曲线密码学(ECC),但曲线参数是国产自研的。
  • SM3 —— 密码杂凑算法。对标 SHA-256。输出 256 位摘要,用于完整性校验和数字签名。
  • SM4 —— 对称分组加密算法。对标 AES。密钥长度 128 位,分组长度 128 位,用于数据加密。

你可能会问:为什么要有三个?其实很简单——一个完整的密码应用场景,通常需要这三类算法配合。比如你做身份认证:SM2 用来签名和密钥协商,SM3 用来做摘要防篡改,SM4 用来加密传输的会话数据。缺一个都不行。

核心记忆点:SM2 管「你是谁」和「密钥怎么换」,SM3 管「数据有没有被改」,SM4 管「数据怎么藏起来」。三者各司其职,缺一不可。

1.2 国密 vs 国际算法:一张表看懂差异

很多同学刚接触国密时,总喜欢拿它跟 RSA、AES 硬比。我的建议是:别纠结谁更强,要关注「场景适配」。下面这张表是我自己整理的,你在别处不一定能看到这么细。

对比维度 SM2 RSA (2048位) SM3 SHA-256 SM4 AES-128
算法类型 椭圆曲线非对称 大整数分解非对称 杂凑 杂凑 分组对称 分组对称
密钥长度 256 位 2048 位 — — 128 位 128 位
签名速度 快(ECC 优势) 慢 — — — —
安全强度 ≈ RSA 3072 中等 256 位抗碰撞 256 位抗碰撞 128 位安全 128 位安全
合规要求 国密必选 密评不通过 国密必选 密评不通过 国密必选 密评不通过
典型场景 数字签名、密钥交换 旧系统兼容 完整性校验 国际通用 数据加密 国际通用

我的经验:SM2 在同等安全强度下,密钥比 RSA 短得多,计算量也更小。我在物联网项目里用 SM2 做设备身份认证,比 RSA 快将近 3 倍。但要注意,SM2 的曲线参数是国密标准规定的,不能自己随便改,否则验签会失败。

1.3 国密算法的应用场景:不只是「合规」两个字

很多人觉得上国密就是为了过密评、应付检查。说实话,早期确实有这种风气。但这两年不一样了——国密在性能、安全性上已经能打,而且有些场景比国际算法更合适。

我举几个真实场景:

  1. 政务系统身份认证:比如「互联网+政务服务」平台,用户登录必须用 SM2 证书做双向认证。我去年参与的一个省级政务项目,所有 API 网关的 TLS 握手都换成了国密套件。
  2. 金融交易签名:银行的核心交易系统,转账指令必须用 SM2 签名,SM3 做摘要。我记得有一次,某银行因为用了 RSA 签名被密评打了「高风险」,连夜改代码。
  3. 物联网设备身份:智能电表、车联网终端,资源受限,SM2 的短密钥和低计算量优势非常明显。我在一个智慧水务项目里,用 SM2 给每个水表做了唯一身份证书。
  4. 数据存储加密:数据库敏感字段加密,比如身份证号、手机号,用 SM4 做列级加密。SM4 的加解密速度跟 AES 几乎一样,但合规上更安全。

避坑指南:我曾经在一个项目中,直接用 OpenSSL 的 SM2 实现做签名,结果验签时发现跟国密硬件加密机对不上。后来排查了半天,才发现是 SM2 的签名编码格式问题——国标要求的是 DER 编码,而 OpenSSL 默认输出的是原始 R||S 拼接。这种细节,文档里不会写,踩过坑才知道。

1.4 合规要求:密评到底在查什么?

说到合规,就绕不开「密评」——商用密码应用安全性评估。这是国密落地的硬约束。我见过太多项目,技术方案写得天花乱坠,一到密评就被打回来。核心原因就三个:

  • 算法不对:该用 SM2 的地方用了 RSA,该用 SM4 的地方用了 AES。直接扣分。
  • 密钥管理混乱:SM4 密钥硬编码在代码里,或者 SM2 私钥明文存储。这在密评里属于「严重风险」。
  • 证书链不完整:SM2 证书没有跟国密 CA 对接,自签名证书不被认可。

目前,等保三级及以上的系统,基本都要求通过密评。金融、政务、能源、交通这些行业,更是「一票否决」——密评不过,系统不能上线。

一句话总结:国密不是选择题,而是必答题。你可以不喜欢它,但你不能绕过它。

1.5 国密算法体系全景图

下面这张 SVG 图,是我自己画的国密算法体系结构。你可以把它当作这一章的「知识地图」。后面每一章,都会在这张图上展开。

国密算法体系全景图 国密算法体系全景图 国密算法标准(GM/T 系列) SM2 非对称加密 / 签名 / 密钥交换 SM3 密码杂凑 / 完整性校验 SM4 对称分组加密 / 数据加密 身份认证(数字签名) 数据完整性校验 数据加密存储 / 传输 密评合规 / 等保 2.0 / 行业监管 国密网关 / 硬件加密机 / 国密 SDK / 证书体系 说明:本课程将围绕 SM2/SM3/SM4 展开,覆盖身份认证、权限隔离、密钥管理、密评合规等实战内容

1.6 本章小结:你该带走什么?

这一章的内容,说白了就是三件事:

  • 国密三件套:SM2 签名换密钥、SM3 防篡改、SM4 藏数据。记住这个口诀,后面写代码时你会感谢我。
  • 跟国际算法的差异:不是谁替代谁,而是场景不同。国密在合规上是必选,在性能上也不输。
  • 合规不是终点:密评只是门槛,真正的价值在于用国密构建更安全的系统。我见过太多「为了合规而合规」的项目,最后反而因为密钥管理混乱出了安全事件。