SM4:商用算法密码
前身:SMS4算法
分组长度:128bit
密钥长度:128bit
加密/密钥扩展算法:32轮非线性迭代结构
具有分组密码的典型特征:加密算法与解密算法结构相同,只是轮密钥的使用顺序相反。
一. SM4算法描述
轮函数
<<<i 表示32bit循环左移i位
(1)非线性变换
非线性变换由4个平行的S盒构成
(2)线性变换L
二. 密钥扩展
加密密钥128bit MK=(MK0, MK1, MK2, MK3)
轮密钥表示为 (rk0, rk1, … rk31)
系统参数 FK=(FK0, FK1, FK2, FK3)
固定参数 CK=(CK0, CK1, CK2, … CK31)
均为字
加密时轮函数的使用顺序为顺序,解密时逆序使用
三. 比较
SM4一步迭代的非线性运算单位是32bit,
Feistel网络非线性运算单位是64bit,
SP网络非线性运算单位是128bit