一、国密算法概述
各位同学好,我是老张。做密码学工程十几年了,今天咱们聊聊国密算法。
说实话,早些年我在项目中用国密,总被客户问“这玩意儿靠谱吗?”现在不一样了,金融、政务、电力,甚至一些互联网大厂都在全面迁移。为什么?因为国密不是简单的“国产替代”,它在某些场景下比国际算法更灵活、更安全。
这一章,我把国密体系的四个核心算法——SM2、SM3、SM4、SM9——掰开揉碎讲清楚。顺便对比一下大家熟悉的RSA、AES、ECDSA,看看它们到底差在哪。
1.1 国密算法体系介绍
国密算法是国家密码管理局发布的商用密码标准。目前最核心的是这四个:
| 算法 | 类型 | 密钥长度 | 对标国际算法 | 典型用途 |
|---|---|---|---|---|
| SM2 | 非对称加密/签名 | 256位 | RSA / ECDSA | 数字签名、密钥交换、加密 |
| SM3 | 密码杂凑 | 256位摘要 | SHA-256 | 完整性校验、数字签名辅助 |
| SM4 | 对称分组密码 | 128位 | AES | 数据加密、通信加密 |
| SM9 | 基于标识的非对称 | 256位 | 无直接对标 | 无证书密钥管理、IoT |
核心要点:SM2和SM9都是非对称算法,但SM9不需要数字证书。你想想看,在物联网场景里,给每个传感器配证书多麻烦?SM9直接用用户标识(比如手机号、设备ID)当公钥,省掉了证书管理这一层。
1.2 与国际算法的对比
咱们一个一个来对比。我尽量说人话,不堆公式。
SM2 vs RSA / ECDSA
RSA大家都很熟,用了三四十年了。但RSA有个硬伤——密钥越长,性能越差。2048位的RSA,签名速度只有SM2的十分之一左右。
ECDSA呢?它和SM2都是基于椭圆曲线。但SM2的曲线参数是国家标准规定的,ECDSA的曲线各家厂商自己定。我在项目中遇到过一个问题:两家公司的ECDSA实现,因为曲线参数不同,根本没法互认。SM2就没这个坑,大家都用同一套参数。
我的建议:新项目直接上SM2。如果必须兼容旧系统,可以用SM2+RSA双证书方案。我去年帮某银行做改造就是这么干的,过渡期半年,平稳切换。
SM3 vs SHA-256
SM3的摘要长度也是256位,安全性理论上和SHA-256相当。但SM3的设计更保守一些,对某些攻击的抵抗性更强。
我记得有一次做等保测评,测评机构要求必须用国密。当时系统里全是SHA-256,改起来倒不麻烦——SM3的接口和SHA-256几乎一样,换一下算法ID就行。
SM4 vs AES
SM4是分组密码,分组长度128位,密钥长度128位。AES支持128/192/256位密钥,灵活性更高。
但SM4有个优势:它的S盒和密钥扩展算法是公开固定的,硬件实现非常高效。我在嵌入式设备上做过测试,SM4的加解密速度比AES-128快大约15%。
注意:SM4的密钥长度固定128位,不能像AES那样选256位。如果你的合规要求里明确写了“密钥长度不低于256位”,那SM4就不适用。这种情况我建议用SM2做密钥封装,SM4做数据加密,组合使用。
SM9 vs 其他
SM9是基于标识的密码算法(IBE)。说白了,就是不需要证书。公钥直接是用户的身份信息,比如邮箱、手机号。
这个在国际上也有类似方案,比如BF-IBE、BB-IBE。但SM9是国家标准,而且它的密钥生成中心(KGC)有完整的密钥管理流程。我在做智慧城市项目时,用SM9给几万个传感器分发密钥,管理成本比证书方案低了至少60%。
1.3 国密算法的应用场景
光讲理论没意思,咱们看看实际中怎么用。
- 金融行业:网上银行、手机银行、支付系统。SM2用于交易签名,SM4用于传输加密。我参与过的某国有大行核心系统,每天处理上亿笔交易,全部走国密。
- 政务系统:电子公文、行政审批、社保医保。SM3用于文件完整性校验,SM2用于电子印章。注意,政务系统对合规性要求极高,必须使用通过国密局认证的硬件密码模块。
- 物联网:智能电表、车联网、工业传感器。SM9在这里特别香,因为设备数量大、证书管理成本高。直接用设备ID当公钥,省掉CA。
- VPN和通信加密:SSL/TLS国密套件、IPSec国密改造。现在主流浏览器和服务器都支持国密SSL,配置起来和普通HTTPS差不多。
避坑指南:我曾经帮一家企业做国密改造,他们直接把国际算法换成国密,结果性能下降了一半。后来发现是SM2的签名验签次数太多——他们用SM2加密每一笔业务数据,其实应该用SM4加密数据,SM2只签关键字段。记住:非对称算法只做密钥交换和签名,对称算法做批量加密。
1.4 国密算法体系结构图
下面这张图,把国密算法的分层关系和典型应用场景画清楚了。我建议你保存下来,后面学证书配置时还会用到。
1.5 小结
这一章咱们把国密算法的家底摸了一遍。记住几个关键点:
- SM2是主力非对称算法,替代RSA和ECDSA
- SM3是哈希算法,和SHA-256同级
- SM4是对称加密,适合批量数据
- SM9是无证书方案,IoT场景首选