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 国密算法在存储系统中的知识体系

为了让你更直观地理解国密算法在存储系统中的位置,我画了一张框架图。它展示了从算法层到应用层的完整映射关系。

国密算法在存储系统中的知识体系 算法层 SM2 SM3 SM4 SM9 随机数 签名/密钥交换 完整性校验 数据加密 标识加密 密钥派生 密钥管理层 密钥生成 密钥存储 密钥轮换 密钥销毁 存储应用层 磁盘加密 文件加密 对象加密 传输加密 数据签名 全盘加密 文件级加密 桶级加密 TLS/SASL 元数据签名 合规与审计层 密评要求 等保 2.0 日志审计 密钥审计

这张图把国密在存储系统中的落地分成了四层:算法层是地基,密钥管理层是骨架,存储应用层是血肉,合规与审计层是天花板。每一层都环环相扣。后面几章,我会一层层拆开来讲。

1.5 小结:国密不是选择题,是必答题

好了,这一章的内容就这些。总结几个关键点:

  • SM2/SM3/SM4/SM9 各有定位,存储系统里 SM4 用得最多,SM2 次之,SM3 做完整性,SM9 在特定场景有优势。
  • 国密与国际算法在安全强度上同级,但硬件生态和工具链还有差距——选型时要考虑性能。
  • 合规是硬约束。密评、等保、密码法,一个都不能少。别想着绕过去,我见过太多项目因为合规问题返工,成本翻倍。