3、常见密码算法详解:AES、RSA、ECC、SHA系列、SM系列等国密算法与国际算法的特性与适用场景
在CRA合规(密码应用合规性评估)的落地实践中,算法选型是密码应用方案设计的基石。无论是金融核心交易系统、政务数据共享平台,还是物联网终端认证,算法选错或混用,往往会导致合规评审不通过或系统存在隐性安全风险。本章将系统拆解国际主流算法(AES、RSA、ECC、SHA系列)与我国国密算法(SM2、SM3、SM4)的数学原理、工程特性、适用场景及合规边界,帮助学员建立“算法特性—合规要求—业务场景”的映射能力。
上图展示了算法选型的核心逻辑:国际算法与国密算法并非简单的替代关系,而是需要根据合规边界、业务属性、性能开销进行组合决策。下面我们将逐一拆解各类算法的数学内核与工程适用性。
3.1 对称加密:AES与SM4的工程对决
核心原理
对称加密使用同一把密钥进行加解密,其安全性依赖于密钥的保密性。AES(高级加密标准)是国际最通用的分组密码,分组长度128bit,支持128/192/256bit密钥。其核心是SPN结构(替换-置换网络),通过字节代换(SubBytes)、行移位(ShiftRows)、列混合(MixColumns)和轮密钥加(AddRoundKey)实现多轮混淆与扩散。SM4是我国国密对称算法,分组长度同样为128bit,密钥长度128bit,采用32轮非线性迭代结构,轮函数F包含S盒变换、线性变换L和合成置换T。
| 对比维度 | AES-128 | SM4 |
|---|---|---|
| 分组长度 | 128 bit | 128 bit |
| 密钥长度 | 128/192/256 bit | 128 bit |
| 轮数 | 10/12/14轮 | 32轮 |
| 硬件加速 | AES-NI指令集,性能极高 | 需专用IP或软件优化 |
| 合规属性 | 国际通用,密评中仅限非核心 | 国密标准,密评首选 |
| 典型场景 | HTTPS、VPN、磁盘加密 | 政务云、金融支付、物联网 |
判断方法或操作流程
在CRA合规评估中,判断对称算法选型是否合理,可遵循以下流程:
- 识别数据生命周期:明确数据在传输、存储、处理环节的加密需求。
- 检查合规清单:若系统属于等保三级以上或涉及密评,优先选择SM4。
- 评估性能开销:在高速网络设备(如SSL网关)中,AES-NI可提供更高吞吐,但需确认是否允许使用国际算法。
- 验证实现合规性:SM4算法必须使用通过国家密码管理局检测的密码模块。
常见误区或总结复盘
- 误区一:认为AES比SM4更安全。实际上两者在目前计算能力下均安全,差异在于合规属性。
- 误区二:忽略密钥管理。对称加密的密钥若硬编码在代码中,算法再强也无意义。
- 误区三:SM4仅用于国内系统。若涉及跨境数据交互,需考虑国际算法兼容。
3.2 非对称加密:RSA、ECC与SM2的选型博弈
核心原理
非对称加密使用公钥/私钥对,解决密钥分发难题。RSA基于大整数分解难题,密钥长度通常为2048或3072bit,计算开销大,适合低频次签名或密钥交换。ECC(椭圆曲线密码)基于椭圆曲线离散对数难题,在同等安全强度下密钥长度远小于RSA(例如256bit ECC约等于3072bit RSA),计算效率更高。SM2是我国自主设计的椭圆曲线公钥密码算法,基于256bit素数域,提供签名、密钥交换和加密功能,其曲线参数为国家密码管理局推荐。
| 算法 | 安全强度(等效对称密钥) | 密钥长度 | 运算速度 | 合规场景 |
|---|---|---|---|---|
| RSA-2048 | 112 bit | 2048 bit | 慢(模幂运算) | 传统PKI、国际互通 |
| ECC P-256 | 128 bit | 256 bit | 快 | 移动端、轻量级设备 |
| SM2 | 128 bit | 256 bit | 快 | 国密合规、金融/政务 |
判断方法或操作流程
在CRA合规评估中,非对称算法的选择需考虑以下决策树:
- 是否涉及密评?是 → 直接选择SM2。
- 是否需与外部国际系统互通?是 → 可采用双证书体系(SM2+RSA),但SM2作为主签名算法。
- 终端计算能力是否受限?是 → 优先ECC或SM2,避免RSA的大指数运算。
- 密钥长度是否满足长期安全性?RSA至少2048bit,ECC/SM2至少256bit。
案例拆解:某银行网上银行系统算法升级
背景与约束:某城商行网银系统原使用RSA-2048进行交易签名,证书由第三方CA签发。为满足《金融领域密码应用基本要求》,需将核心交易签名算法切换为SM2,并同步更换服务端证书与客户端U盾。
初始现象:密评预审发现,网银交易签名算法为RSA,不符合“核心业务须使用国密算法”的强制条款。
关键输入数据:存量用户约80万,其中40%使用U盾,60%使用短信验证码;交易峰值TPS为2000。
分析判断过程:若直接停用RSA,将导致大量旧U盾无法使用。项目组决定采用“双算法并行”策略:新发U盾支持SM2,旧U盾在有效期内继续使用RSA,但系统层面优先使用SM2签名。
实际操作步骤:
- 在密码服务中间件中增加SM2签名接口,并保留RSA接口。
- 更新服务端证书链,根证书与二级CA证书均替换为SM2证书。
- 客户端U盾分批更换,优先更换高净值客户与内部员工。
- 设置6个月过渡期,过渡期后强制使用SM2。
结果对比:切换后,单笔签名耗时从RSA的8ms降至SM2的3ms,且顺利通过密评。风险与代价:过渡期内需维护两套证书体系,运维复杂度上升,但整体风险可控。
复盘经验:算法升级不是简单的代码替换,而是涉及证书体系、硬件介质、业务系统的系统工程。建议提前规划兼容期,并建立算法切换的自动化测试用例。
3.3 哈希算法:SHA系列与SM3的完整性保障
核心原理
哈希算法将任意长度消息压缩为固定长度摘要,用于完整性校验、数字签名和口令存储。SHA-256输出256bit摘要,SHA-3基于Keccak海绵结构,安全性更高。SM3是我国国密哈希算法,输出256bit摘要,采用Merkle-Damgård结构,消息分组512bit,压缩函数包含消息扩展、64轮迭代。SM3与SHA-256安全性相当,但算法细节不同,不可直接互换。
| 算法 | 摘要长度 | 分组长度 | 结构 | 合规属性 |
|---|---|---|---|---|
| SHA-256 | 256 bit | 512 bit | Merkle-Damgård | 国际通用 |
| SHA-3 | 224/256/384/512 bit | 可变 | 海绵结构 | 国际通用 |
| SM3 | 256 bit | 512 bit | Merkle-Damgård | 国密标准 |
判断方法或操作流程
在CRA合规评估中,哈希算法的选择相对简单:
- 若系统涉及密评或等保三级,优先使用SM3。
- 若仅用于内部日志完整性或非核心数据,可使用SHA-256。
- 口令存储建议使用加盐哈希(如PBKDF2或bcrypt),而非直接使用SM3/SHA-256。
常见误区或总结复盘
- 误区一:认为SM3比SHA-256更安全。实际上两者安全性相当,选择依据是合规要求。
- 误区二:在国密改造中,仅将哈希算法替换为SM3,但签名算法仍为RSA,导致“算法套件”不匹配。
- 误区三:忽略哈希算法的长度扩展攻击。对于HMAC场景,应使用HMAC-SM3或HMAC-SHA256,而非简单拼接密钥。
3.4 国密算法体系与合规落地要点
核心原理
国密算法体系包括SM2(非对称)、SM3(哈希)、SM4(对称)以及SM9(标识密码)。SM9基于椭圆曲线对实现,无需数字证书,公钥直接使用用户标识(如手机号、邮箱),适合物联网、车联网等海量设备认证场景。在CRA合规中,SM9可作为SM2的补充,但需确认业务场景是否被密评机构认可。
判断方法或操作流程
国密算法落地需遵循以下流程:
- 算法选型确认:根据业务类型选择SM2/SM3/SM4或SM9。
- 密码模块检测:使用的密码产品(如密码机、U盾)必须具有《商用密码产品认证证书》。
- 密钥管理设计:包括密钥生成、分发、存储、更新、销毁的全生命周期管理。
- 合规性自评估:对照GM/T 0054-2018《信息系统密码应用基本要求》逐项检查。
常见误区或总结复盘
- 误区一:认为国密算法仅适用于政府项目。实际上金融、能源、交通等关键信息基础设施均需逐步国密化。
- 误区二:忽略算法实现的侧信道防护。即使算法正确,若实现时未做掩码或随机化处理,仍可能被功耗分析攻击。
- 误区三:在合规评估中只关注算法本身,而忽略密钥管理、随机数生成、协议安全等配套要素。
总结而言,密码算法选型必须坚持“合规优先、性能适配、安全等效”的原则。在CRA合规评估中,国密算法是核心要求,但国际算法在特定场景(如跨境通信、兼容旧系统)中仍有其价值。关键在于建立清晰的算法治理策略,确保密码应用的合规性、安全性与业务连续性。