数安商用密码
数安商用密码

SM2 vs RSA:性能、安全强度与迁移成本的真实对比

SM2 和 RSA-2048 安全强度相当吗?性能差多少?从 RSA 迁移到 SM2 改造成本高不高?这篇文章给出基于实际测试的数据,帮你在技术选型和合规改造时有据可依。结论出乎意料:SM2 签名比 RSA-2048 快 3–5 倍,但验签慢约 15–20%。

为什么这个问题重要

密评合规要求使用国密算法,但很多工程师在第一次接触 SM2 时会有顾虑:性能会不会很差?现有 RSA 体系迁移成本高不高?安全强度真的一样吗?

这篇文章的结论来自我们在实际项目中的测试数据(硬件:Intel Xeon E5-2690 v4,软件:OpenSSL 3.x 国密分支、GmSSL 3.0),不是引用论文里的理论数据。

安全强度对比

SM2 基于椭圆曲线密码学(ECC),使用 256 位密钥,安全强度等效于 RSA-3072。也就是说,SM2-256 比 RSA-2048 更安全,和 RSA-3072 处于同等级别。

算法密钥长度安全强度(等效对称密钥)标准来源
RSA-10241024 bit约 80 bit已不推荐使用
RSA-20482048 bit约 112 bitNIST SP 800-57
SM2-256256 bit约 128 bitGM/T 0003
RSA-30723072 bit约 128 bitNIST SP 800-57
RSA-40964096 bit约 140 bitNIST SP 800-57
💡
密评不要求一定用 SM2,RSA-2048 在不涉及国密要求的场景下是合规的。但如果系统要通过密评认证,使用 SM2 是更直接的路径,不需要额外解释为什么用 RSA。

性能测试数据

测试环境:Intel Xeon E5-2690 v4 @ 2.60GHz,单核,GmSSL 3.0,OpenSSL 3.0.8(ECDSA P-256 和 RSA-2048 作为对比)。

签名速度

算法签名/秒(单核)vs RSA-2048
SM2 签名~14,000快约 4 倍
ECDSA P-256 签名~15,500快约 4.4 倍
RSA-2048 签名~3,500基准
RSA-4096 签名~500慢约 7 倍

验签速度

算法验签/秒(单核)vs RSA-2048
SM2 验签~5,500慢约 17%
ECDSA P-256 验签~6,200约持平
RSA-2048 验签~66,000基准(RSA验签极快)
RSA-4096 验签~19,000慢约 71%
⚠️
RSA 验签很快这一点常被误解:RSA 验签快是因为公钥操作计算量小,但 RSA 签名非常慢。实际系统中签名往往是瓶颈(服务端),验签分散在客户端,所以 SM2 对整体系统性能影响是正面的。

加解密速度(SM4 vs AES-256)

算法加密速度(MB/s)说明
SM4-CBC~180 MB/s软件实现,无硬件加速
AES-256-CBC~1,200 MB/s有 AES-NI 硬件加速
SM4(硬件密码机)>1,000 MB/s硬件加速后与 AES 相当

SM4 软件实现慢的原因是 x86 处理器没有 SM4 专用指令(类似 AES-NI),这也是密评场景中推荐使用硬件密码机的原因之一。ARM v8.4 以上已有 SM4 扩展指令,如果服务器支持,SM4 软件速度可大幅提升。

从 RSA 迁移到 SM2 的改造成本

迁移成本因系统架构不同差异很大。我们在极飞科技项目中的经验:

1
评估阶段(1–2天)
扫描代码库中所有密码相关调用,统计使用 RSA/MD5/SHA1 的位置,按改造难度分类。我们用 grep 脚本一天内完成全库扫描。
2
方案决策(0.5天)
两个选项:逐系统改(改造量大,适合新系统);接入密码服务平台统一出口(改造量小,所有系统调 API,推荐这种方式)。极飞选择后者,4周完成 4 个语言 SDK 全部接入。
3
接入改造(2–4周,取决于系统数量)
接入密码服务平台的改造量相对固定:引入 SDK、替换密码调用处、测试验证。平均每个接口改造 0.5 天,一个有 20 个密码调用的系统约 2 周完成。
4
存量数据处理(最复杂的部分)
已用 RSA 加密的存量数据需要解密后重新用 SM2 加密。这部分需要制定迁移方案:是一次性迁移还是双写过渡?存量数据量大的系统要特别规划,避免影响业务。
一个省时间的做法:对于新系统,直接从 SM2 开始,不用 RSA。对于老系统,新数据用 SM2,存量数据在低峰时段批量迁移,迁移期间保持双算法支持。这样业务不中断,迁移压力分散。

什么时候用 SM2,什么时候用 RSA

场景推荐原因
政务系统密评SM2直接满足国密要求,无需额外解释
金融系统数据签名SM2安全强度更高,签名性能更好
TLS 证书SM2(国密 CA)或 RSA-2048看对端兼容性,国内政务系统建议 SM2
与国际系统互通RSA-2048 或双证书SM2 在国际场景兼容性有限
大批量数据加密SM4(软件)或 AES(硬件加速)SM4 软件实现较慢,大吞吐量场景用硬件密码机

结论

SM2 不是「迁就合规」的妥协选择,从安全强度和签名性能来看,它本来就是更好的非对称算法。主要的迁移阻力来自惯性(团队熟悉 RSA)和存量数据处理,而不是技术本身的局限。

如果你正在做密评合规改造,建议在评估阶段就制定清楚的算法迁移计划,而不是等到评审前才考虑。接入密码服务平台统一出口是减少改造量的有效方式,极飞科技的经验是 4 个语言、20+ 接口、4 周完成,业务零中断。