1. 国密算法概述:SM2/SM3/SM4/SM9 算法介绍、国密与国际算法对比、国密合规性要求
各位好,我是老张。在存储系统里摸爬滚打了十几年,今天咱们来聊聊国密算法。
说实话,前些年大家对国密的态度是「能用就行,不行就绕」。但这两年不一样了——等保2.0、密评、数据安全法,一套组合拳下来,国密已经不是「选做题」,而是「必答题」。我在好几个存储项目里都遇到过客户拿着合规清单一条条核对,SM2没上?直接打回。
所以这一章,咱们先把国密算法的底牌翻清楚。你搞懂了这些,后面讲存储集成、性能优化、密钥管理,才有根基。
1.1 国密算法家族:SM2 / SM3 / SM4 / SM9
国密算法不是单个算法,而是一套体系。目前存储系统里最常碰到的,就是这四个:
| 算法 | 类型 | 典型用途 | 密钥长度 |
|---|---|---|---|
| SM2 | 椭圆曲线公钥密码 | 数字签名、密钥交换、加密 | 256 位 |
| SM3 | 密码杂凑(哈希) | 完整性校验、数字摘要 | 输出 256 位 |
| SM4 | 对称分组密码 | 数据加密、链路加密 | 128 位 |
| SM9 | 标识密码(IBC) | 无证书加密、签名 | 256 位 |
嗯,这里要注意:SM9 在存储里用得还不多,但它在密钥分发场景有天然优势。我去年帮一个金融客户做分布式存储加密,他们跨机房密钥同步搞不定,最后用 SM9 的标识加密解决了——省掉了证书管理那套麻烦事。
SM2:国标里的「RSA 替代者」
SM2 基于椭圆曲线,安全性等价于 3072 位 RSA。说白了,同样的安全强度,SM2 的密钥更短、计算更快。我在项目中测过,SM2 签名比 RSA-2048 快 3 倍左右,这对存储系统的元数据签名来说,提升很明显。
SM3:国标里的「SHA-256 替代者」
SM3 输出 256 位摘要,结构和 SHA-256 类似但做了改进。它的抗碰撞能力经过国内密码专家严格论证。我记得有一次做存储数据完整性校验,客户要求必须用 SM3,不能用 SHA-256。其实两者性能差不多,但合规就是硬门槛。
SM4:国标里的「AES 替代者」
SM4 是分组密码,分组长度 128 位,密钥长度也是 128 位。它的 S 盒设计比 AES 更保守,但足够安全。在存储加密场景里,SM4 的 ECB/CBC/CTR/GCM 模式都有标准定义。我个人习惯在磁盘加密里用 SM4-XTS 模式,兼容性好,性能也稳。
SM9:标识密码,省掉证书
SM9 的最大特点是:公钥可以是任意标识,比如邮箱、设备 ID。不需要 CA 证书,不需要 PKI 体系。这在物联网存储、边缘存储场景里特别香。不过 SM9 的计算开销比 SM2 大,目前硬件加速支持还不普遍。
核心观点: 国密算法不是「山寨版国际算法」,而是独立设计的密码体系。SM2/SM3/SM4 在数学原理上与国际算法同级别,但 SM9 是国密独有的创新——国际标准里没有直接对标物。
1.2 国密与国际算法对比:一张表说清楚
很多工程师问我:「国密到底比国际算法差在哪?」其实从密码学强度看,差距不大。但工程实现上,确实有些差异。我整理了一张对比表:
| 对比维度 | 国密算法 | 国际算法 | 我的看法 |
|---|---|---|---|
| 安全强度 | SM2 256 位 ≈ RSA 3072 | RSA 3072 / ECC 256 | 同一安全级别,无本质差距 |
| 性能 | SM2 签名略快于 RSA | ECDSA 略快于 SM2 | 差距在 10%-20%,可接受 |
| 硬件支持 | 国产 CPU/密码卡支持好 | Intel QAT、ARM 等广泛支持 | 国际算法硬件生态更成熟 |
| 合规性 | 国内等保/密评强制要求 | 国际通用,国内部分场景受限 | 国内存储系统必须支持国密 |
| 生态成熟度 | OpenSSL 1.1.1+ 已支持 | OpenSSL、NSS、BoringSSL | 差距在缩小,但工具链仍不够全 |
避坑指南: 我曾经在一个分布式存储项目里,直接用 OpenSSL 的 SM4 实现做磁盘加密。结果发现 OpenSSL 1.1.1 的 SM4-GCM 模式有性能 bug,吞吐量只有 AES-GCM 的 60%。后来换了国产密码卡硬件加速,才解决问题。所以——软件实现国密,一定要做充分的性能压测。
1.3 国密合规性要求:不是你想用,是必须用
合规性这块,我多说几句。很多存储厂商觉得「我产品卖到海外,用国际算法就行」。但如果你在国内部署,尤其是政府、金融、能源、医疗这些行业,国密是硬性要求。
具体来说,以下几个法规直接决定了存储系统必须支持国密:
- 《密码法》(2020 年实施):明确要求关键信息基础设施必须使用商用密码保护数据。
- 《网络安全等级保护 2.0》(等保 2.0):三级及以上系统,数据加密和完整性校验必须采用国密算法。
- 《商用密码应用安全性评估》(密评):每年一次评估,不通过要整改。存储系统是密评的重点检查对象。
- 《数据安全法》(2021 年):重要数据出境、存储、处理,必须使用国家认可的密码技术。
注意: 合规不是「加个 SM4 加密开关」就完事了。密评会检查密钥生命周期管理、算法模式选择、随机数质量、日志审计等。我见过一个存储厂商,SM4 加密用了 ECB 模式——直接被密评判为「不符合」。ECB 模式在存储加密里是禁区,因为相同明文块会生成相同密文块,泄露数据模式。
1.4 国密算法在存储系统中的知识体系
为了让你更直观地理解国密算法在存储系统中的位置,我画了一张框架图。它展示了从算法层到应用层的完整映射关系。
这张图把国密在存储系统中的落地分成了四层:算法层是地基,密钥管理层是骨架,存储应用层是血肉,合规与审计层是天花板。每一层都环环相扣。后面几章,我会一层层拆开来讲。
1.5 小结:国密不是选择题,是必答题
好了,这一章的内容就这些。总结几个关键点:
- SM2/SM3/SM4/SM9 各有定位,存储系统里 SM4 用得最多,SM2 次之,SM3 做完整性,SM9 在特定场景有优势。
- 国密与国际算法在安全强度上同级,但硬件生态和工具链还有差距——选型时要考虑性能。
- 合规是硬约束。密评、等保、密码法,一个都不能少。别想着绕过去,我见过太多项目因为合规问题返工,成本翻倍。