3、常见密码算法详解:AES、RSA、ECC、SHA系列、SM系列等国密算法与国际算法的特性与适用场景

在CRA合规(密码应用合规性评估)的落地实践中,算法选型是密码应用方案设计的基石。无论是金融核心交易系统、政务数据共享平台,还是物联网终端认证,算法选错或混用,往往会导致合规评审不通过或系统存在隐性安全风险。本章将系统拆解国际主流算法(AES、RSA、ECC、SHA系列)与我国国密算法(SM2、SM3、SM4)的数学原理、工程特性、适用场景及合规边界,帮助学员建立“算法特性—合规要求—业务场景”的映射能力。

密码算法选型与合规映射全景图 国际算法 • AES-128/256:对称加密,硬件加速友好 • RSA-2048/3072:非对称,大整数分解 • ECC(P-256):非对称,椭圆曲线离散对数 • SHA-256/384:哈希摘要,完整性校验 典型场景:国际互联、通用浏览器、传统PKI 国密算法(SM系列) • SM4:对称加密,分组128bit,国密标准 • SM2:非对称,基于椭圆曲线,签名/密钥交换 • SM3:哈希摘要,输出256bit,杂凑算法 • SM9:标识密码,无需证书管理 典型场景:等保三级、密评、政务/金融核心系统 CRA合规要求 • 密评:优先采用国密算法 • 等保三级:核心数据须国密加密 • 金融行业:SM2/SM3/SM4强制或推荐 • 国际算法仅限非核心或兼容场景 注意:算法实现需通过检测认证 选型决策路径(合规优先) ① 识别业务系统等级(等保二级/三级/四级) ② 判断数据敏感度(个人隐私/金融交易/政务数据) ③ 若涉及密评 → 默认选SM2+SM3+SM4 ④ 若需国际互通 → 双算法兼容(国密为主,国际为辅) ⑤ 性能敏感场景 → SM4硬件加速 / AES-NI

上图展示了算法选型的核心逻辑:国际算法与国密算法并非简单的替代关系,而是需要根据合规边界、业务属性、性能开销进行组合决策。下面我们将逐一拆解各类算法的数学内核与工程适用性。

3.1 对称加密:AES与SM4的工程对决

核心原理

对称加密使用同一把密钥进行加解密,其安全性依赖于密钥的保密性。AES(高级加密标准)是国际最通用的分组密码,分组长度128bit,支持128/192/256bit密钥。其核心是SPN结构(替换-置换网络),通过字节代换(SubBytes)、行移位(ShiftRows)、列混合(MixColumns)和轮密钥加(AddRoundKey)实现多轮混淆与扩散。SM4是我国国密对称算法,分组长度同样为128bit,密钥长度128bit,采用32轮非线性迭代结构,轮函数F包含S盒变换、线性变换L和合成置换T。

对比维度AES-128SM4
分组长度128 bit128 bit
密钥长度128/192/256 bit128 bit
轮数10/12/14轮32轮
硬件加速AES-NI指令集,性能极高需专用IP或软件优化
合规属性国际通用,密评中仅限非核心国密标准,密评首选
典型场景HTTPS、VPN、磁盘加密政务云、金融支付、物联网

判断方法或操作流程

在CRA合规评估中,判断对称算法选型是否合理,可遵循以下流程:

  1. 识别数据生命周期:明确数据在传输、存储、处理环节的加密需求。
  2. 检查合规清单:若系统属于等保三级以上或涉及密评,优先选择SM4。
  3. 评估性能开销:在高速网络设备(如SSL网关)中,AES-NI可提供更高吞吐,但需确认是否允许使用国际算法。
  4. 验证实现合规性:SM4算法必须使用通过国家密码管理局检测的密码模块。
实战场景:某省级政务云平台承载不动产登记数据,原系统使用AES-256加密数据库字段。在密评整改中,评估组指出核心数据必须使用国密算法。项目组将存储加密切换为SM4,并采用硬件密码机提供密钥管理。切换后性能损耗约5%,但合规性完全达标。关键经验:提前在应用层抽象加解密接口,避免算法替换时改动业务代码。

常见误区或总结复盘

  • 误区一:认为AES比SM4更安全。实际上两者在目前计算能力下均安全,差异在于合规属性。
  • 误区二:忽略密钥管理。对称加密的密钥若硬编码在代码中,算法再强也无意义。
  • 误区三:SM4仅用于国内系统。若涉及跨境数据交互,需考虑国际算法兼容。

3.2 非对称加密:RSA、ECC与SM2的选型博弈

核心原理

非对称加密使用公钥/私钥对,解决密钥分发难题。RSA基于大整数分解难题,密钥长度通常为2048或3072bit,计算开销大,适合低频次签名或密钥交换。ECC(椭圆曲线密码)基于椭圆曲线离散对数难题,在同等安全强度下密钥长度远小于RSA(例如256bit ECC约等于3072bit RSA),计算效率更高。SM2是我国自主设计的椭圆曲线公钥密码算法,基于256bit素数域,提供签名、密钥交换和加密功能,其曲线参数为国家密码管理局推荐。

算法安全强度(等效对称密钥)密钥长度运算速度合规场景
RSA-2048112 bit2048 bit慢(模幂运算)传统PKI、国际互通
ECC P-256128 bit256 bit快移动端、轻量级设备
SM2128 bit256 bit快国密合规、金融/政务

判断方法或操作流程

在CRA合规评估中,非对称算法的选择需考虑以下决策树:

  1. 是否涉及密评?是 → 直接选择SM2。
  2. 是否需与外部国际系统互通?是 → 可采用双证书体系(SM2+RSA),但SM2作为主签名算法。
  3. 终端计算能力是否受限?是 → 优先ECC或SM2,避免RSA的大指数运算。
  4. 密钥长度是否满足长期安全性?RSA至少2048bit,ECC/SM2至少256bit。
风险提示:部分系统为通过密评,仅将RSA替换为SM2,但未更换密钥长度或曲线参数,导致实际安全性不足。SM2必须使用标准曲线参数(推荐使用国家密码管理局发布的推荐参数),不可自定义曲线。

案例拆解:某银行网上银行系统算法升级

背景与约束:某城商行网银系统原使用RSA-2048进行交易签名,证书由第三方CA签发。为满足《金融领域密码应用基本要求》,需将核心交易签名算法切换为SM2,并同步更换服务端证书与客户端U盾。

初始现象:密评预审发现,网银交易签名算法为RSA,不符合“核心业务须使用国密算法”的强制条款。

关键输入数据:存量用户约80万,其中40%使用U盾,60%使用短信验证码;交易峰值TPS为2000。

分析判断过程:若直接停用RSA,将导致大量旧U盾无法使用。项目组决定采用“双算法并行”策略:新发U盾支持SM2,旧U盾在有效期内继续使用RSA,但系统层面优先使用SM2签名。

实际操作步骤:

  1. 在密码服务中间件中增加SM2签名接口,并保留RSA接口。
  2. 更新服务端证书链,根证书与二级CA证书均替换为SM2证书。
  3. 客户端U盾分批更换,优先更换高净值客户与内部员工。
  4. 设置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-256256 bit512 bitMerkle-Damgård国际通用
SHA-3224/256/384/512 bit可变海绵结构国际通用
SM3256 bit512 bitMerkle-Damgård国密标准

判断方法或操作流程

在CRA合规评估中,哈希算法的选择相对简单:

  • 若系统涉及密评或等保三级,优先使用SM3。
  • 若仅用于内部日志完整性或非核心数据,可使用SHA-256。
  • 口令存储建议使用加盐哈希(如PBKDF2或bcrypt),而非直接使用SM3/SHA-256。
经验提醒:SM3与SHA-256的摘要长度相同,但算法不兼容。在数字签名场景中,签名算法必须与哈希算法配套(如SM2withSM3、RSAwithSHA256),不可混用。

常见误区或总结复盘

  • 误区一:认为SM3比SHA-256更安全。实际上两者安全性相当,选择依据是合规要求。
  • 误区二:在国密改造中,仅将哈希算法替换为SM3,但签名算法仍为RSA,导致“算法套件”不匹配。
  • 误区三:忽略哈希算法的长度扩展攻击。对于HMAC场景,应使用HMAC-SM3或HMAC-SHA256,而非简单拼接密钥。

3.4 国密算法体系与合规落地要点

核心原理

国密算法体系包括SM2(非对称)、SM3(哈希)、SM4(对称)以及SM9(标识密码)。SM9基于椭圆曲线对实现,无需数字证书,公钥直接使用用户标识(如手机号、邮箱),适合物联网、车联网等海量设备认证场景。在CRA合规中,SM9可作为SM2的补充,但需确认业务场景是否被密评机构认可。

判断方法或操作流程

国密算法落地需遵循以下流程:

  1. 算法选型确认:根据业务类型选择SM2/SM3/SM4或SM9。
  2. 密码模块检测:使用的密码产品(如密码机、U盾)必须具有《商用密码产品认证证书》。
  3. 密钥管理设计:包括密钥生成、分发、存储、更新、销毁的全生命周期管理。
  4. 合规性自评估:对照GM/T 0054-2018《信息系统密码应用基本要求》逐项检查。
实战场景:某车联网平台需要为100万辆汽车提供V2X消息签名。若使用SM2证书,需为每辆车预置证书并管理吊销列表,运维成本高。平台改用SM9标识密码,直接使用车辆VIN码作为公钥,私钥由密钥中心按需生成。这样既满足国密合规,又大幅降低证书管理复杂度。但需注意:SM9的密钥托管特性要求密钥中心具备极高的安全防护能力。

常见误区或总结复盘

  • 误区一:认为国密算法仅适用于政府项目。实际上金融、能源、交通等关键信息基础设施均需逐步国密化。
  • 误区二:忽略算法实现的侧信道防护。即使算法正确,若实现时未做掩码或随机化处理,仍可能被功耗分析攻击。
  • 误区三:在合规评估中只关注算法本身,而忽略密钥管理、随机数生成、协议安全等配套要素。

总结而言,密码算法选型必须坚持“合规优先、性能适配、安全等效”的原则。在CRA合规评估中,国密算法是核心要求,但国际算法在特定场景(如跨境通信、兼容旧系统)中仍有其价值。关键在于建立清晰的算法治理策略,确保密码应用的合规性、安全性与业务连续性。