国产分组密码算法SM4

目录

(1)加密算法

(2)解密算法

(3)密钥扩展算法


国产分组密码算法SM4

SM4(原SMS4)加密算法是公开的国产分组密码算法,主要用于对大量数据进行加密。SM4采用4分支非平衡Feistel结构设计,轮函数为SP结构,分组长度和密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,解密算法和加密算法的流程大同小异,只是轮密钥的使用顺序相反,S盒为固定的8比特输入8比特输出。SM4的主要操作包括异或运算、合成置换、非线性置换、反序变换、循环移位以及S盒变换等。它的安全强度与AES(高级加密标准)相当,适用于各类应用场景。

SM4算法的S盒(SBOX)

(1)加密算法

将输入轮函数的128bit的数据分为4个32bit字,加密算法每一轮使用32bit的密钥更新其中1个字。

轮函数为:

其中T变换(可逆)为S和L的复合:

其中“||”为字节的连接。

轮函数执行32轮之后,最终可以得到36个32bit字,即(X0,……,X35)

逆序变换R:(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。

(Y0,Y1,Y2,Y3)即为最终输出的密文。

(2)解密算法

解密算法和加密算法一致,只是轮密钥的使用顺序相反。

(3)密钥扩展算法

则轮密钥生成方法为:

在算法设计方面,SM4兼具安全性、高效性创新性、可扩展性;在安全性方面,目前没有公开发表的研究表明SM4是不安全的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄金龙PLUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值