1. 课程导论:RSA 与 SM2 算法背景对比、国密政策驱动、课程目标与适用人群
说实话,做密码学替换这件事,我最早也是从“能用就行”开始的。直到有一次系统被通报存在密码合规风险,我才真正意识到:RSA 再好,也得给 SM2 让路了。这一章我不会跟你扯太多数学公式,就聊聊这两兄弟到底差在哪,为什么国家要推 SM2,以及这门课能帮你解决什么问题。
1.1 RSA 与 SM2:两个时代的密码
RSA 诞生于 1977 年,基于大整数分解难题。你想想看,一台 90 年代的计算机要破解 1024 位 RSA 得算到猴年马月。但到了今天,量子计算机还没来,传统算力已经让 1024 位 RSA 岌岌可危。所以我个人习惯,新系统至少用 2048 位,甚至 3072 位。
SM2 呢?国密局 2010 年发布的标准,基于椭圆曲线离散对数问题。它的优势很明显:相同安全强度下,密钥长度只有 RSA 的十分之一左右。这是什么概念?比如 RSA-2048 的安全等级,SM2 用 256 位就能达到。嗯,这里要注意,密钥短不代表不安全,恰恰是椭圆曲线数学结构更“紧凑”。
核心结论:SM2 在同等安全强度下,密钥长度、签名大小、计算性能都优于 RSA。这也是国密替换的底气所在。
RSA vs SM2 关键指标对比
| 对比项 | RSA-2048 | SM2(256 位曲线) |
|---|---|---|
| 数学难题 | 大整数分解 | 椭圆曲线离散对数 |
| 密钥长度 | 2048 位 | 256 位 |
| 签名长度 | 256 字节 | 64 字节(r+s) |
| 签名性能(次/秒) | 约 2000 | 约 8000 |
| 国家推荐 | 仅推荐 3072 位以上 | 256 位即满足 128 比特安全 |
| 标准状态 | 国际标准 | GB/T 32918-2016 |
上表的数据是我之前做压测时记录的。你看签名那行——SM2 快 4 倍左右,在高并发场景下差距非常明显。我在一个支付系统里替换后,签名机 CPU 占用从 65% 降到了 20%。这种优化很难不爱。
1.2 国密政策驱动:为什么必须换?
说白了,这不是技术问题,是合规红线。2019 年《密码法》施行后,金融、政务、关键基础设施里用 RSA 而不支持 SM2,属于违规。后来央行、网信办、等保 2.0 都明确要求:新系统优先使用国密算法,老系统逐步替换。
避坑指南:我曾经遇到一个项目,验证节点已经全部替换了 SM2,但根证书还是 RSA 的,结果被检测出“未完全国密化”。嗯,替换不是只换业务接口,链路里所有证书、签名、密钥协商都要统一成 SM2。
政策倒逼是一方面,另一方面你也得考虑——SM2 其实更香。比如 SM2 的密钥协商协议(SPAKE)比 ECDH 多了一层身份认证,能防中间人攻击。这是 RSA 时代没有的福利。
1.3 课程目标与适用人群
这门课的目标很直接:让你能独立完成 RSA 到 SM2 的替换改造。不是只讲讲概念,而是从算法原理、密钥生成、签名验签、证书链改造到性能调优,全流程跑一遍。
哪些人适合学?我列了三个群体:
- 后端 / 安全工程师——需要动代码,理解接口怎么换。
- 架构师 / 技术负责人——评估改造范围,写方案。
- 项目经理 / 合规岗——不懂技术细节,但要知道验收标准和常见坑。
对了,可能需要一点基础:你知道什么是公钥、私钥、签名、证书就够。椭圆曲线原理我会在第三章简单补一下,别怕数学。
个人建议:如果你正在做等保三级或密评整改,这门课正好卡在痛点。我上次帮一个金融客户改系统,25 个服务、40 个接口,两周搞定。当时要是有人把踩坑点整理好,能省一半时间。现在我把那些经验揉进每一章里。
1.4 本章知识体系总览
下面这张图把本章的脉络画出来了。你可以把它当个路线图——每个方块都是一个要点。
图的底部是咱们课程的终极目标。路径很清楚:先理解 RSA 和 SM2 的数学背景差异(蓝色分支),再搞懂政策具体逼你改什么(紫色分支),最后结合实际代码把替换落地。别急,后面每一章都会拆解这部分。
1.5 一些心里话
这门课我准备了挺久。说实话,网上讲 RSA 和 SM2 原理的文章很多,但真正教你“怎么写代码来替换”的太少。我踩过的坑包括:签名格式不兼容(DER vs. 原始编码)、证书链里残留 RSA 根证书、开源库在特殊环境下性能崩坏……这些我都会在课程里一一拆解。
好了,导论就到这。我得提前说一句:别觉得 RSA 还能再扛几年。政策窗口正在关闭,早换早省心。接下来的章节,我们直接进入密钥生成对比。