什么是SM4分组密码算法?SM4算法有哪些特点?

2023年2月27日12:57:46什么是SM4分组密码算法?SM4算法有哪些特点?已关闭评论
1.概述

随着密码标准的制定活动在国际上热烈开展,我国对密码算法的设计与分析也越来越关注,因此国家密码管理局公布了国密算法SM4。SM4算法(全称为SM4分组密码算法),是国家密码管理局2012年3月发布的第23号公告中公布的密码行业标准。该算法适用于无线局域网的安全领域,优点是软件和硬件实现容易,运算速度快。

SM4分组密码算法是一个迭代分组密码算法,由加解密算法和密钥扩展算法组成。SM4分组密码算法采用非平衡Feistel结构,明文分组长度为128bit,密钥长度为128bit。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

与DES类似,SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。这里解释一下分组长度和密钥长度。分组长度(block length)是一个信息分组的比特位数,密钥长度是密钥的比特位数。可以看出,这2个长度都是比特位数,说16字节也可以。如果看到分组长度是128,没有带单位,那么应该知道默认是比特。

SM4加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。

SM4分组密码算法在使用上表现出了安全高效的特点,与其他分组密码相比较有以下优势。

(1)算法资源利用率高,表现为在密钥扩展算法与加密算法上可共用。

(2)加密算法流程和解密算法流程一样,只是轮密钥顺序相反,因此无论是软件实现还是硬件实现都非常方便。

(3)算法中包含异或运算、数据的输入输出、线性置换等模块,这些模块都是按8位来进行运算的,现有的处理器完全能处理。

SM4分组密码算法主要包括加密算法、解密算法以及密钥的扩展算法三部分。其基本算法结构如图3-15所示。

什么是SM4分组密码算法?SM4算法有哪些特点?

图3-15

可见,其最初输入的128位密钥还要进行密钥扩展,变成轮密钥后才能用于算法(轮函数)。

2.密钥及密钥参量

SM4算法中的加密密钥和解密密钥长度相同,一般定为128bit,即16字节,在算法中表示为MK=(MK , MK , MK , MK )。其中,MK (i=0, 1, 2, 3)为32bit。算法中的轮密钥是由加密算法的密钥生成的,主要表示为(rk , rk , …, rk 31 )。其中,rk (i=0, 1, …, 31)为32bit。

FK=(FK , FK , FK , FK )为系统参数,CK=(CK , CK , …, CK 31 )为固定参数,这两个参数主要在密钥扩展算法中使用。其中,FK (i=0, 1, …, 31)、CK (i=0, 1, …, 31)均为32bit,也就是说一个FK 和一个CK 都是4个字节。

  • A+
所属分类:JAVA
  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。