GB/T 32907-2016 SM4 分组密码算法

标题:信息安全技术 SM4分组密码算法

发布组织:国家密码管理局 / 中国国家标准委

标准编号:GB/T 32907-2016

摘要:SM4 是我国自主设计的分组对称密码算法,分组长度128位,密钥长度128位。加密算法与密钥扩展算法均采用32轮非线性迭代结构,广泛应用于无线局域网、物联网、金融IC卡等领域。

主要特性:

官方下载链接: 国家标准全文公开系统 (可能需要登录)

关联工具: 对称加密工具 (SM4)

GB/T 32907 (SM4) 规范详解

GB/T 32907《信息安全技术 SM4 分组密码算法》由国家密码管理局发布,是中国商用密码分组加密标准。SM4 的密钥长度和分组长度均为 128 位(16 字节),结构为 Feistel 网络,32 轮迭代。

算法结构

SM4 加密过程:将 128 位明文分为 4 个 32 位字 X0, X1, X2, X3;32 轮迭代,每轮 Xi+4 = Xi XOR T(Xi+1 XOR Xi+2 XOR Xi+3 XOR RKi),其中 T 是合成置换(S 盒替换 + 线性变换 L);轮密钥 RKi 由 128 位主密钥通过密钥扩展算法生成,使用另一组 S 盒和常数 CK;最后做反序变换输出密文。解密使用相同的算法但轮密钥逆序。

工作模式

SM4 的常用工作模式:ECB 每块独立加密,不推荐;CBC 需 16 字节 IV,适合数据加密;CTR 计数器模式,可并行;GCM 认证加密模式,提供 AEAD。国密规范 GM/T 0006 定义了 SM4 的 CBC、CTR、GCM 等模式的使用方法。PBOC 3.0 金融 IC 卡规范中 SM4-CBC 用于数据加密,SM4 的 ECB 模式仅用于密钥派生。

与 AES 对比

SM4 和 AES-128 的密钥长度和分组长度相同(128 位),但结构不同:AES 是 SPN(替换-置换网络),SM4 是 Feistel 网络;AES 的 S 盒和 SM4 的 S 盒不同;AES 支持 192/256 位密钥而 SM4 固定 128 位。在智能卡领域,国密芯片通常同时支持 SM4 和 AES,软件层面选择算法即可切换。本站 对称加密工具 支持在线 SM4-CBC 加解密。

← 返回规范索引