1. 国密算法概述

各位同学好,我是老张。今天咱们正式进入《国密算法权限隔离与启动校验实战》的第一章。说实话,做了十几年安全架构,我亲眼看着国密从“冷门选项”变成了“强制要求”。很多朋友一听到“国密”就觉得头大,觉得是政策任务。其实你把它拆开看,它就是一套密码学工具包,跟国际算法一样干活,只是换了套标准。

这一章,我们先搭个知识骨架。把 SM2、SM3、SM4 是什么、跟国际算法怎么比、实际用在哪儿,一次性理清楚。后面所有实战章节,都建立在这个基础上。

1.1 国密算法体系介绍

国密算法,全称是中国商用密码算法。由国家密码管理局发布,目前最核心的三个是:SM2(公钥密码)、SM3(密码杂凑)、SM4(分组密码)。

我习惯把它们类比成国际算法里的 RSA、SHA-256 和 AES。但注意,只是功能对标,底层数学原理完全不同。

核心三件套速览:

  • SM2:基于椭圆曲线(ECC),用于签名、密钥交换、加密。曲线参数是国密局定的,跟国际 ECC 不互通。
  • SM3:杂凑算法,输出 256 位摘要。结构上类似 SHA-256,但做了很多细节优化。
  • SM4:对称分组密码,密钥长度 128 位,分组长度 128 位。用于数据加密,性能很好。

除了这三个,还有 SM9(基于标识的密码)、SM7(非接触式 IC 卡专用)等。但咱们课程主要围绕 SM2/SM3/SM4 展开,因为这是权限隔离和启动校验里最常用的。

1.2 国密与国际算法对比

很多同学会问:“国密到底比国际算法强在哪?弱在哪?” 说实话,没有绝对的强弱,只有适用场景和合规要求的不同。

我拿一个实际项目举例。之前给某金融机构做密钥管理系统,客户要求必须用国密。我们对比了 SM2 和 RSA-2048 的性能,发现 SM2 签名速度比 RSA 快不少,但验签速度略慢。不过 SM2 的密钥长度只有 256 位,RSA 要 2048 位,存储和传输优势很明显。

对比维度 SM2 RSA-2048 SM3 SHA-256 SM4 AES-128
算法类型 椭圆曲线公钥 大整数分解公钥 杂凑 杂凑 对称分组 对称分组
密钥长度 256 位 2048 位 — — 128 位 128 位
安全强度 128 位 112 位 128 位 128 位 128 位 128 位
签名性能 较快 较慢 — — — —
合规要求 国密标准 国际标准 国密标准 国际标准 国密标准 国际标准

避坑提醒: 我曾经遇到一个团队,把 SM2 的密钥对直接当成 RSA 密钥对用,结果签名验签死活对不上。国密和国际算法在编码格式、曲线参数、填充方式上都有差异,不能直接互换。后面章节我会专门讲格式转换的坑。

1.3 国密算法应用场景

国密算法现在覆盖的场景越来越广。我把它分成三大类:

  • 身份认证与数字签名:比如电子政务、金融交易、合同签署。SM2 签名是主力。
  • 数据加密与传输保护:比如数据库加密、VPN 通信、文件加密。SM4 因为性能好,用得最多。
  • 完整性校验与防篡改:比如固件校验、日志完整性、启动校验。SM3 做哈希摘要。

咱们这门课的核心——权限隔离与启动校验,就是把这三种场景组合起来。举个例子:系统启动时,先用 SM3 计算固件摘要,再用 SM2 验签确认固件来源可信,最后用 SM4 解密敏感配置。一套组合拳下来,安全性就上去了。

下面这张图,把国密算法体系、国际对标、应用场景串在一起,方便你建立整体认知。

国密算法知识体系总览 国密算法体系 SM2(公钥密码) SM3(密码杂凑) SM4(分组密码) 对标 RSA / ECDSA 对标 SHA-256 对标 AES-128 身份认证 / 数字签名 数据加密 / 传输保护 完整性校验 / 防篡改 课程核心:权限隔离 + 启动校验 SM2 + SM3 + SM4 组合使用,构建可信启动链与细粒度权限控制

个人经验: 我建议你在学习具体实现之前,先把这三个算法的核心参数记牢。SM2 的曲线标识符是 0x03、SM3 的初始 IV 是固定的 8 个 32 位字、SM4 的 S 盒是 16x16 的查找表。后面写代码时,这些细节会反复用到。