一、国密算法概述

各位同学好,我是老张。做密码学工程十几年了,今天咱们聊聊国密算法。

说实话,早些年我在项目中用国密,总被客户问“这玩意儿靠谱吗?”现在不一样了,金融、政务、电力,甚至一些互联网大厂都在全面迁移。为什么?因为国密不是简单的“国产替代”,它在某些场景下比国际算法更灵活、更安全。

这一章,我把国密体系的四个核心算法——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 国密算法体系结构图

下面这张图,把国密算法的分层关系和典型应用场景画清楚了。我建议你保存下来,后面学证书配置时还会用到。

国密算法体系结构图 国密算法体系结构图 密码服务层 算法层 SM2 非对称加密/签名 SM3 密码杂凑 SM4 对称分组密码 SM9 基于标识密码 应用场景层 金融交易签名 电子政务公文 物联网密钥分发 国密SSL VPN 说明:SM2/SM3/SM4/SM9 可组合使用,例如 SM2 签名 + SM3 摘要 + SM4 加密

1.5 小结

这一章咱们把国密算法的家底摸了一遍。记住几个关键点:

  • SM2是主力非对称算法,替代RSA和ECDSA
  • SM3是哈希算法,和SHA-256同级
  • SM4是对称加密,适合批量数据
  • SM9是无证书方案,IoT场景首选