问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

国产分组密码算法SM4详解

创作时间:
作者:
@小白创作中心

国产分组密码算法SM4详解

引用
CSDN
1.
https://blog.csdn.net/HuangJinLong2/article/details/145515752

SM4算法是国产密码算法的重要组成部分,广泛应用于数据加密领域。本文将详细介绍SM4算法的加密、解密和密钥扩展过程,帮助读者深入了解这一重要的密码学算法。

国产分组密码算法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是不安全的。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号