国密分组密码的设计特征

举报
码乐 发表于 2026/01/07 08:00:43 2026/01/07
【摘要】 1 简介SM4 分组密码的工作模式是中国国家密码管理局于 2012 年发布的对称分组密码算法,采用 128 位分组大小和 128 位密钥长度,与 AES 类似。作为分组密码,SM4 可以结合多种工作模式(Modes of Operation)来处理任意长度的明文数据。这些模式决定了如何将明文分成块、如何处理块之间的依赖关系,以及是否提供额外功能如认证或完整性保护。用户查询中列出的 8 种模...

1 简介

SM4 分组密码的工作模式是中国国家密码管理局于 2012 年发布的对称分组密码算法,采用 128 位分组大小和 128 位密钥长度,与 AES 类似。

作为分组密码,SM4 可以结合多种工作模式(Modes of Operation)来处理任意长度的明文数据。这些模式决定了如何将明文分成块、如何处理块之间的依赖关系,以及是否提供额外功能如认证或完整性保护。

用户查询中列出的 8 种模式为:ECB、CBC(假设“CBCCFB”为 CBC 和 CFB 的连写)、CFB、OFB、CTR、GCM、CCM 和 XTS。

2 加密分类

  • 国密分组密码加密模式的特征

SM4算法作为国密标准分组密码,主要特征包括:

分组长度:128位(与AES相同)。

密钥长度:128位。

轮数:32轮非线性迭代结构。

加解密对称性:加解密算法结构相同,仅轮密钥使用顺序相反。

设计理念:

采用Feistel网络结构(与DES类似),而非AES的SPN结构。

强调安全性与软硬件实现效率的平衡。

工作模式:

支持国际通用的ECB、CBC、CFB、OFB、CTR等模式。

国密标准中定义了适用于特定场景的自定义工作模式,如用于加密与MAC生成的复合模式。

3 加密模式的特殊设计(国密标准)

  • SM4-CTR模式:

支持并行计算,适用于高速数据加密。

*SM4-CBC模式:

需配合填充规则(如PKCS#7)使用,保证数据完整性。

*SM4-GCM模式:

支持认证加密(AEAD),在物联网、通信协议中常用。

  • 其他类型的密码加密

** 1. 对称密码

流密码(Stream Cipher):

对数据流逐位/逐字节加密。

国密标准:ZUC(祖冲之算法),用于4G/5G通信加密。

其他示例:RC4、ChaCha20。

** 2. 非对称密码(公钥密码)

使用公钥加密、私钥解密。

国密标准:

SM2:基于椭圆曲线密码(ECC),用于数字签名、密钥交换、加密。

SM9:基于身份密码(IBC),无需数字证书。

其他示例:RSA、ECC、ElGamal。

** 3. 哈希函数与消息认证码
哈希函数:

国密标准:SM3(杂凑算法),生成256位哈希值,用于数字签名与完整性验证。

其他示例:SHA-256、MD5(已不安全)。

消息认证码(MAC):

如HMAC-SM3、GMAC(与GCM模式配合)。

** 4. 密码协议与混合加密
密钥交换协议:

如SM2密钥交换协议、DH协议。

混合加密:

结合对称加密(高效)与非对称加密(密钥管理),如使用SM2加密SM4的密钥。

注意:需安装支持 SM4 的库(如 tongsuopy)。纯 Python 实现 GHASH 和 SM4 较慢,不推荐生产使用。
另一个选项:GmSSL-Python(ctypes 绑定 GmSSL C 库),示例类似但接口略不同。

4 小结

本文概要说明分组国密这些模式并非 SM4 独有,而是标准的分组密码模式,但 SM4 可以无缝应用它们。以后将详细解读每个模式,包括其定义、工作原理、数学表示(简化版)、优缺点、安全考虑,以及在 SM4 中的典型应用场景。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。