关于国密算法
2025/11/23大约 8 分钟指南国密算法国密信创密码学
关于国密算法
🇨🇳 什么是国密算法
国密算法是指国家密码管理局认定和公布的商用密码算法,是我国自主设计的密码算法体系。主要包括:
- SM2 - 椭圆曲线公钥密码算法
- SM3 - 密码杂凑算法
- SM4 - 分组密码算法
- SM9 - 标识密码算法
- ZUC - 祖冲之序列密码算法(用于 4G/5G 通信加密)
🏛️ 信创化与特殊领域应用
什么是信创
信创(信息技术应用创新)是国家战略,旨在实现信息技术领域的自主可控,摆脱对国外技术的依赖。国密算法是信创体系的重要组成部分。
适用场景
国密算法常见于:政务专网与电子签章、金融支付与清算、医疗健康档案、关键基础设施(能源/交通/通信/工控)、以及需要合规审计的企业内部系统与电子合同平台。
🆚 国密算法 vs 国际标准算法
功能对应关系
| 功能 | 国密算法 | 国际标准算法 | 密钥长度 |
|---|---|---|---|
| 非对称加密/签名 | SM2 | RSA / ECDSA | 256位 (SM2) vs 2048位+ (RSA) |
| 哈希/摘要 | SM3 | SHA-256 / SHA-512 | 256位输出 |
| 对称加密 | SM4 | AES | 128位 |
| 流密码 | ZUC | ChaCha20 / RC4 | 128位 |
性能特点对比
SM2 vs RSA
优势:
- ✅ 密钥更短(256位 vs 2048位),存储和传输更高效
- ✅ 签名和验签速度更快
- ✅ 相同安全强度下计算量更小
劣势:
- ⚠️ 缺乏硬件加速支持(国际芯片)
- ⚠️ 软件实现性能受限于平台
SM3 vs SHA-256
特点:
- ✅ 安全强度相当(256位输出)
- ✅ 算法结构相似,性能接近
- ⚠️ SHA系列在国际芯片上有硬件加速指令(如 Intel SHA-NI)
- ⚠️ SM3 在国产芯片上有专用加速指令
SM4 vs AES
特点:
- ✅ 同为128位分组密码,安全强度相当
- ✅ 算法效率相似
- ⚠️ AES 在国际芯片上有硬件加速(AES-NI)
- ⚠️ SM4 在国产芯片上有专用加速指令
⚡ 性能差异的根本原因
CPU 硬件加速指令
现代处理器通常内置了密码算法加速指令:
国际芯片(Intel、AMD、ARM)
• AES-NI:AES 加速指令集,性能提升 3-10 倍
• SHA Extensions:SHA-256 加速,性能提升 2-5 倍
• PCLMULQDQ:用于 GCM 模式加速这些指令对国密算法不起作用,导致国密算法在国际芯片上只能用纯软件实现。
国产芯片(飞腾、龙芯、海光、申威)
• SM2 硬件加速单元
• SM3 专用指令
• SM4 加速指令
• ZUC 硬件支持国产芯片针对国密算法优化,可以达到与 AES/SHA 在国际芯片上相当的性能。
性能测试数据参考
平台差异
以下数据仅供参考,实际性能取决于具体的硬件平台、软件实现和使用场景。
在 Intel/AMD x86 平台(无国密硬件加速)
- AES 依赖 AES-NI,可比纯软件 SM4 快约 3-10 倍。
- SHA-256 依赖 SHA 指令,可比纯软件 SM3 快约 2-5 倍。
- ZUC/SM2 在无专用指令时均为纯软件路径,性能取决于实现质量。
在国产芯片平台(有国密硬件加速)
- SM4/SM3/SM2/ZUC 通常有专用指令或内置加速,性能可反超软件版 AES/SHA(常见提升 2-5 倍)。
- AES/SHA 若无对应指令,则退化为纯软件,实现间差异更大。
上述倍数为典型量级参考,实际表现取决于芯片型号、编译器优化和具体实现。
🎯 如何选择算法
必须使用国密的场景
以下场景强制或强烈推荐使用国密算法:
- 国家政务系统 - 法律法规明确要求
- 金融支付系统 - 人民银行和银保监会要求
- 关键基础设施 - 国家安全考虑
- 国产化替代项目 - 信创要求
- 敏感数据保护 - 合规要求
可以选择国际算法的场景
以下场景可以灵活选择:
- 国际化应用 - 与国外系统对接
- 开源社区项目 - 生态兼容性
- 移动应用 - 兼容性和性能平衡
- 非敏感数据 - 无特殊合规要求
混合使用方案
GMKitX 同时支持国密和国际算法,可以灵活混合使用:
import {
sm2Encrypt, sm3Digest, // 国密算法
sha256, sha512 // 国际算法
} from 'gmkitx';
// 敏感数据用国密
const sensitiveData = sm2Encrypt(publicKey, '敏感信息');
const signature = sm3Digest('重要文件');
// 一般数据用国际标准(兼容性更好)
const checksum = sha256('普通文件内容');
const hash = sha512('日志数据');📚 法律法规依据
主要法规
《中华人民共和国密码法》(2020年1月1日施行)
- 明确商用密码的管理和使用要求
《商用密码应用安全性评估管理办法(试行)》
- 规定关键信息基础设施必须使用商用密码
《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019)
- 三级及以上系统推荐使用国密算法
行业规范
- 金融行业:《证券期货业信息系统密码应用技术要求》
- 政务系统:《政务信息系统密码应用与安全性评估工作指南》
- 电信行业:《电信网和互联网安全防护基本要求》
🔮 未来趋势
硬件支持普及
- 国产芯片对国密算法支持日益完善
- 性能差距逐步缩小
生态系统建设
- 国密算法库日趋成熟
- 工具链和开发支持增强
国际认可度
- SM2/SM3/SM4 已被 ISO/IEC 标准化
- 国际互通性提升
应用场景扩展
- 从政务金融向更多行业渗透
- 物联网、车联网等新兴领域
💡 最佳实践建议
1. 评估合规要求
首先确定项目是否有国密算法的强制要求。
2. 考虑部署平台
- 国产平台:优先使用国密算法
- 国际平台:根据性能需求选择
- 混合环境:灵活搭配使用
3. 性能测试
在目标平台上进行实际性能测试,而不是依赖理论数据。
4. 保持兼容性
设计时考虑算法可替换性,便于未来迁移。
5. 持续关注
跟踪国密算法生态发展和硬件支持情况。