🧀分组密码(三) SM4
2023-7-8
| 2023-8-31
0  |  0 分钟
type
status
date
summary
password
category
slug
icon

🔑SM4

基本概念

  • 与DES和AES算法类似,SM4算法是一种分组密码算法。
  • 其分组长度为128bit(16字节),密钥长度也为128bit。
  • 加密算法与密钥扩展算法均采用32轮非线性迭代结构(指在程序中使用循环或递归等结构来重复执行一段代码,直到满足某个条件为止),以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。
  • SM4 分组密码算法的解密算法以及加密算法拥有相同的结构特征 , 不同的地方是所使用的轮密钥顺序完全相反,解密轮密钥是加密轮密钥的逆序
notion image
notion image
两个算法的安全性均是基于S盒的非线性性以及线性变换提供的扩散作用。密钥的使用方式也均是将密钥与明文或加密结果异或。一点小区别在于,AES算法在每轮的最后使用密钥,而SM4算法在每轮的开始使用密钥。

密码工作模式:

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

📑加密 算法

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

轮密钥的生成

notion image
notion image

轮函数

notion image

非线性变换 τ

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

反序列变化R

notion image

📎 参考文章

 
日常学习
分组密码(二)DES流密码
目录