SM4算法

一. SM4概述

SM4 是我国自主研发的商用分组密码标准,对标国际 DES、AES,兼具安全性和高效性,在车载通信(如 T-Box 数据加密、车载以太网传输安全)、车联网身份认证等场景中广泛适用

1.1 基础信息

  1. 标准归属:国家密码管理局发布,标准号 GM/T 0002-2012,属于国密算法核心成员(与 SM2 非对称加密、SM3 哈希算法并称核心国密三剑客)

  2. 算法类型:分组密码,固定分组长度 128bit,密钥长度固定 128bit(无其他可选长度,简化工程实现)

  3. 加密模式:支持 ECB、CBC、CFB、OFB、CTR 等常用模式,车载场景优先用CBC/CTR 模式(安全性更高,避免 ECB 的分组重复漏洞)

  4. 核心特点:非线性性强、抗差分攻击 / 线性攻击能力优异,运算量适中,适配嵌入式设备(车载 MCU/SoC 算力完全满足)

1.2 使用场景

  1. 无需进行密钥交换的场景,如内部系统,事先就可以直接确定密钥

  2. 防止明文传输数据被窃取的

  3. 加解密速度快,适合数据内容比较大的加密场景

1.3 名词解释

基础概念

(1)分组密码:
  • 定义:将明文按固定长度的 “分组” 为单位进行加密 / 解密的对称密码算法,区别于按字节 / 位处理的流密码。

  • SM4 中的体现:SM4 是固定分组长度的分组密码,分组长度为 128bit(16 字节),即每次加密 / 解密必须以 16 字节为基本单元。

  • 车载场景意义:T-Box 传输的车况数据、控制指令需按 16 字节分组处理,非 16 字节倍数的需填充(如 PKCS7)。

(2)国密算法:
  • 定义:由国家密码管理局制定发布的国产密码算法标准,核心包括 SM2(非对称)、SM3(哈希)、SM4(对称分组)。

  • SM4 的归属:GM/T 0002-2012《SM4 分组密码算法》是 SM4 的官方标准,车载场景中涉及国内车联网数据加密需遵循此标准。

(3)对称加密
  • 定义:加密和解密使用同一把密钥的加密方式,对比 SM2(非对称,公钥 / 私钥分离)。

  • SM4 的特点:密钥长度固定 128bit(16 字节),加密 / 解密仅需这一把主密钥,车载场景中 T-Box 与云端共享该密钥即可完成双向加密。

SM4核心常量/组件

(1) S 盒(Substitution Box)
  • 定义:非线性替换盒,是 SM4 实现 “混淆性” 的核心组件,本质是一个 256 字节的固定查表数组(国密标准规定)。

  • 作用:将 32bit 字拆分为 4 个 8bit 字节,每个字节通过 S 盒完成非线性变换,抵抗线性攻击、差分攻击等密码分析手段。

  • 车载注意:工程实现中必须使用国密标准 S 盒,禁止自定义修改,否则算法不合规且安全性大幅降低。

(2)FK(系统参数)
  • 定义:密钥扩展的初始固定参数,共 4 个 32bit 字(0xa3b1bac6、0x56aa3350、0x677d9197、0xb27022dc)。

  • 作用:主密钥拆分后与 FK 异或,生成密钥扩展的初始密钥 K0~K3,是密钥扩展的 “初始种子”。

(3)CK(固定参数)
  • 定义:轮密钥扩展的轮常量,共 32 个 32bit 字(对应 SM4 的 32 轮迭代),国密标准固定值。

  • 作用:每一轮密钥扩展时,与 K0~K3 的异或结果结合,保证轮密钥的唯一性和随机性。

(4)轮密钥(Round Key)
  • 定义:由 128bit 主密钥通过 “密钥扩展算法” 生成的 32 个 32bit 密钥(共 32×32bit),是每一轮迭代运算的核心密钥。

  • 核心特点:加密时按 rk0→rk1→…→rk31 顺序使用,解密时按 rk31→rk30→…→rk0 逆序使用;车载场景中轮密钥需在安全存储区生成,避免泄露。

算法相关

(1)轮函数 F(Round Function)
  • 定义:SM4 单轮迭代的核心运算函数,输入 3 个 32bit 明文分组字 + 1 个轮密钥,输出 1 个 32bit 变换结果。

  • 运算步骤:线性异或

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值