SM4算法加密流程

您所在的位置:网站首页 对称加密解密流程图 SM4算法加密流程

SM4算法加密流程

2024-07-16 07:11| 来源: 网络整理| 查看: 265

分组长度

 

数据分组(明文,密文)长度=128位、密钥长度=128位 数据处理单位:字(32位)(32bit)

密码算法特点

对合运算:解密算法与加密算法相同 解密算法与加密算法相同子密钥生成算法与加密算法结构类似 (加密算法与密钥扩展算法均采用32轮非线性迭代结构)

密码结构

滑动窗口结构

SM4 密码算法结构

加密流程还是分为两部分:明文加密部分与密钥扩展部分(每次密钥的生成) 明文加密部分 输入明文:(X0,X1,X2,X3),128位,四个字。输入轮密钥:rki ,i=0,1,…,31,共32个轮密钥。输出密文:(Y0,Y1,Y2,Y3),128位,四个字。

 Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)【F为轮函数】 = Xi ⊕T( Xi+1⊕ Xi+2⊕ Xi+3⊕rki), i = 0,1…31 (Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)【注意最后的反序】

 

F轮函数部分(经过32轮迭代)

1.S盒字节非线性替换(非线性变换τ)

把128bit明文分为4个32位字(X0,X1,X2,X3)X1,X2,X3,rK相互异或得到32位字将这32位字并行输入5*4个S盒

输入的前半字节为行号,后半字节为列号,行列交叉点处的数据即为输出。(查S盒,与AES的字节替换类似)

2.字线性部件L变换

输出的结果再进行循环左移;最后与X0进行异或。

32位输入,32位输出。 设输入为B,输出为C,表为: C=L(B) 运算规则: C=L(B) =B⊕(B



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3