【技术实现步骤摘要】
一种分组加解密方法和装置
本专利技术涉及信息安全领域,尤其涉及一种分组加解密方法和装置。
技术介绍
数据加密是密码系统的基本任务。按加密密钥和解密密钥的关系,目前数据加密可以分为两大类:对称密码加密和公钥密码加密。SM4是一种对称密码加密算法,属于分组加密,该算法的明文、密钥和密文的长度均为128比特,该算法通过32次非线性迭代实现加密和解密。然而,现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差。
技术实现思路
本专利技术的目的是提供一种分组加解密方法和装置,能够提高安全性。一方面,本专利技术实施例提供一种分组加密方法,包括:根据预先生成的查找表进行32轮迭代计算,所述生成查找表的过程包括:将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;记将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),所述为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;以构建对应的查找表Tboxi0,T ...
【技术保护点】
1.一种分组加解密方法,包括根据预先生成的查找表进行32轮迭代计算,其特征在于,所述生成查找表的过程包括:将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;记
【技术特征摘要】
1.一种分组加解密方法,包括根据预先生成的查找表进行32轮迭代计算,其特征在于,所述生成查找表的过程包括:将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;记将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),所述为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;以构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;所述Tboxij为对应的查找表;所述j为整数,所述j满足0≤j≤3;构造W盒W(x),所述所述E为随机生成的64比特随机数,所述F为随机生成的32比特随机数中的第n个字节,所述n为整数,所述1≤n≤4,所述*为矩阵乘法;所述x为00-FF的任意字节;根据所述W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi,所述TWi=(W(Tboxi0),W(Tboxi1),W(Tboxi2),W(Tboxi3))。2.根据权利要求1所述的分组加解密方法,其特征在于,所述生成查找表的过程还包括:根据所述E计算C后存储,所述C=E-1;根据所述C和F计算D后存储,所述D=C*F。3.根据权利要求1或2所述的分组加解密方法,其特征在于,所述生成查找表的过程还包括:每一轮运算随机生成4个8比特随机数Zi0,Zi1,Zi2,Zi3;根据所述TWi和4个8比特随机数Zi0,Zi1,Zi2,Zi3构造查找表TWM盒TWMi,所述TWMi=[W(Tboxi0)*Zi0,W(Tboxi1)*Zi1,W(Tboxi2)*Zi2,W(Tboxi3)*Zi3]。4.根据权利要求3所述的分组加解密方法,其特征在于,所述生成查找表的过程还包括:根据所述4个8比特随机数Zi0,Zi1,Zi2,Zi3计算Zi-1后存储,所述Zi-1=Zi0-1|Zi1-1|Zi2-1|Zi3-1,该逆运算为有限域GF(28)内的逆运算。5.一种分组加密方法,包括明文经32轮迭代计算进行加密,其特征在于,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述迭代计算中获取第t+4个轮密文Yt+4,包括:记所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述为异或;Yt+1为第t+1个轮密文;Yt+2为第t+2个轮密文;Yt+3为第t+3个轮密文;分别以所述bt0,bt1,bt2,bt3对权利要求1或2生成的TW盒TWi进行查表操作,得到Bt0,Bt1,Bt2,Bt3;根据权利要求2存储的C和D,将所述Bt0,Bt1,Bt2,Bt3转换为Ut,所述Ut=Ut0|Ut1|Ut2|Ut3,Utj=Btj*C+D,所述j为整数,所述j满足0≤j≤3;将所述Ut进行合成置换,得到T(Ut);根据第t个轮密文Yt和所述T(Ut)获取第t+4个轮密文Yt+4,所述6.一种分组加密方法,其特征在于,包括明文经32轮迭代计算进行加密,其特征在于,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述迭代计算中获取第t+4个轮密文Yt+4,包括:记所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述为异或;分别以bt0,bt1,bt2,bt3对权利要求3或4生成的TWM盒TWMi进行查表操作,得到Gt0,Gt1,Gt2,Gt3;根据权利要求2存储的C和D,以及权利要求4存储的Zt-1,分别将所述Gt0,Gt1,Gt2,Gt3转换为TXt,所述TXt=TXt0|TXt1|TXt2|TXt3,TXtj=Gtj*Ztj-1*C+D,所述j为整数,所述j满足0≤j≤3;将所述TXt进行合成置换,得到所述T(TXt);根据第t个轮密文Yt和所述T(TXt)获取所述第t+4个轮密文Yi+4,所述7.一种分组加解密配置方法,其特征在于,包括:服务器根据权利要求4所述的生成查找表的过程生成第一查找表TWM1盒及其参数C1、D1和Z1i-1,作为业务主密钥进行存储;预先连接的用户终端从所述服务器获取所述第一查找表TWM1盒及其参数C1、D1并存储;所述用户终端获取工作密钥,所述工作密钥用于所述用户终端加解密各种数据;所述用户终端通过所述服务器获取所述参数Z1i-1;所述用户终端通过权利要求6提供的分组加密方法采用所述业务主密钥对所述工作密钥进行加密,得到加密密钥后存储。8.根据权利要求7所述的分组加解密配置方法,其特征在于,所述用户终端通过所述服务器获取所述参数Z1i-1的方法为:所述用户终端将业务认证消息码发送至所述服务器;所述服务器验证所述业务认证消息码,验证通过,将所述参数Z1i-1发送至所述用户终端。9.根据权利要求8所述的分组加解密配置方法,其特征在于,所述业务认证消息码由所述参数C1、D1采用预设哈希函数计算获得,所述服务器通过比对所述业务认证消息码进行验证。10.根据权利要求8所述的分组加解密配置方法,其特征在于,所述将所述参数Z1i-1发送至所述用户终端的方法为:以所述业务认证消息码的前16字节作为密钥对所述参数Z1i-1进行加密后发送。11.根据权利要求7所述的分组加解密配置方法,其特征在于,所述用户终端获取工作密钥,包括:所述用户终端根据权利要求2所述的生成查找表的过程生成第二查找表TW1盒及其参数C2、D2,作为所述工作密钥。12.一种分组加解密方法,其特征在于,服务器及用户终端根据权利要求7所述的分组加解密配置方法对业务主密钥及工作密钥进行了配置,所述分组加解密方法包括:所述用户终端接收用户输入的加解密请求;所述用户终端通过所述第一查找表TWM1盒、所述参数C1、D1和Z1i-1对所述加密请求对应的加密密钥进行解密,得到所述工作密钥;所述用户终端通过所述工作密钥执行所述加解密请求。13.一种分组加解密装置,包括用于预先生成查找表的查找表生成模块和根据所示预先生成的查...
【专利技术属性】
技术研发人员:程威,全勇,
申请(专利权)人:北京思源互联科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。