SM4分组密码算法

SM4分组密码算法

ID:43485860

大小:200.55 KB

页数:4页

时间:2019-10-08

SM4分组密码算法_第1页
SM4分组密码算法_第2页
SM4分组密码算法_第3页
SM4分组密码算法_第4页
资源描述:

《SM4分组密码算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、无线局域网产品使用的SMS4密码算法本算法是一个分组算法。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。1.术语说明1.1字与字节e328用Z表示e-比特的向量集,Z中的元素称为字,Z中的元素称为字节。2221.2S盒S盒为固定的8比特输入8比特输出的置换,记为Sbox(.)。1.3基本运算在本算法中采用了以下基本运算:⊕32比特异或<<

2、MK1,MK2,MK3),其中MKi(i=0,1,2,3)为字。轮密钥表示为(rk0,rk1,…,rk31),其中rki(i=0,…,31)为字。轮密钥由加密密钥生成。FK=(FK0,FK1,FK2,FK3)为系统参数,CK=(CK0,CK1,…,CK31)为固定参数,用于密钥扩展算法,其中FKi(i=0,…,3)、CKi(i=0,…,31)为字。2.轮函数F本算法采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。设输入为324,轮密钥为32,则轮函数F为:(X0,X1,X2,X3)∈(Z2)rk∈Z2F(X,X,X,X,rk)=X⊕T(X⊕X⊕X

3、⊕rk)0123012312.1合成置换T3232T:Z→Z,是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。222.1.1非线性变换ττ由4个并行的S盒构成。8484设输入为A=(a,a,a,a)∈(Z),输出为B=(b,b,b,b)∈(Z),则0123201232(b,b,b,b)=τ(A)=(Sbox(a),Sbox(a),Sbox(a),Sbox(a))012301232.1.2线性变换L3232非线性变换τ的输出是线性变换L的输入。设输入为B∈Z,输出为C∈Z,则22C=L(B)=B⊕(B<<<)2⊕(B<<<10)⊕(B<<

4、<18)⊕(B<<<24)2.2S盒S盒中数据均采用16进制表示。0123456789abcdef0d690e9fecce13db716b614c228fb2c0512b679a762abe04c3aa4413264986069929c4250f491ef987a33540b43edcfac623e4b31ca9c908e89580df94fa758f3fa644707a7fcf37317ba83593c19e6854fa85686b81b27164da8bf8eb0f4b70569d3561e240e5e6358d1a225227c3b012178877d40046

5、579fd327524c3602e7a0c4c89e8eabf8ad240c738b5a3f7f2cef96115a19e0ae5da49b341a55ad933230f58cb1e3a1df6e22e8266ca60c02923ab0d534e6fbd5db3745defd8e2f03ff6a726d6c5b51c8d1baf92bbddbc7f11d95c411f105ad8d0ac13188a5cd7bbd2d74d012b8e5b4b0e8969974a0c96777e65b9f109c56ec684f18f07dec3adc4d2079ee5f3ed7cb3

6、948例:输入‘ef’,则经S盒后的值为表中第e行和第f列的值,Sbox(‘ef’)=‘84’。23.加/解密算法定义反序变换R为:32R(A0,A1,A2,A3)=(A3,A2,A1,A0),Ai∈Z2,i=3,2,1,0。324324设明文输入为(X,X,X,X)∈(Z),密文输出为(Y,Y,Y,Y)∈(Z),轮密钥012320123232为rk∈Z,i=2,1,0,...,31。则本算法的加密变换为:i2X=F(X,X,X,X,rk)=X⊕T(X⊕X⊕X⊕rk,)i=1,0,...,.13i+4ii+1i+2i+3iii+1i+2i+3i(Y0,Y1,Y2,Y3

7、)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。加密时轮密钥的使用顺序为:(rk0,rk1,…,rk31)解密时轮密钥的使用顺序为:(rk31,rk30,…,rk0)4.密钥扩展算法本算法中加密算法的轮密钥由加密密钥通过密钥扩展算法生成。32加密密钥MK=(MK0,MK1,MK2,MK3),MKi∈Z2,i=0,1,2,3;3232令Ki∈Z2,i=0,1,…,35,轮密钥为rki∈Z2,i=1,0,...,31,则轮密钥生成方法为:首先,(K0,K1,K2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。