分组密码(块密码)-SM4

本文详细介绍了SM4算法,一种128-bit分组密码,与DES和AES类似但具有32轮非线性迭代结构。文章还讨论了其加密过程、轮密钥生成和与AES的区别,以及常见的密码工作模式。同时提到了SM2的相关性。
摘要由CSDN通过智能技术生成

SM4

基本概念

  • 与DES和AES算法类似,SM4算法是一种分组密码算法。
  • 其分组长度为128bit(16字节),密钥长度也为128bit。
  • 加密算法与密钥扩展算法均采用32轮非线性迭代结构(指在程序中使用循环或递归等结构来重复执行一段代码,直到满足某个条件为止),以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。
  • SM4 分组密码算法的解密算法以及加密算法拥有相同的结构特征 , 不同的地方是所使用的轮密钥顺序完全相反,解密轮密钥是加密轮密钥的逆序

img

img

两个算法的安全性均是基于S盒的非线性性以及线性变换提供的扩散作用。密钥的使用方式也均是将密钥与明文或加密结果异或。一点小区别在于,AES算法在每轮的最后使用密钥,而SM4算法在每轮的开始使用密钥。

密码工作模式:

  1. 电子密码本模式ECB
  2. 密码分组链接模式CBC
  3. 密码反馈模式CFB
  4. 输出反馈模式OFB
  5. 计数器模式CTR
  6. 密文挪用模式CTS(https://blog.csdn.net/m0_46161993/article/details/108834948)

加密 算法

先将128比特密钥 MK扩展为32个轮密钥 rk,再将该轮密钥与128比特明文 X 经过轮函数进行32次迭代后,选取最后四次迭代生成的结果 X32,X33,X34,X35进行反序变换,该变换结果作为最终的密文 Y 输出。

img 轮密钥的生成

img

轮函数

img

非线性变换 τ

非线性变换 τ: τ(B),τ 由4个并行的S盒构成。

img

反序列变化R

img

📎 参考文章

SM2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值