CN109743156B - 一种分组加解密方法和装置 - Google Patents

一种分组加解密方法和装置 Download PDF

Info

Publication number
CN109743156B
CN109743156B CN201811629193.1A CN201811629193A CN109743156B CN 109743156 B CN109743156 B CN 109743156B CN 201811629193 A CN201811629193 A CN 201811629193A CN 109743156 B CN109743156 B CN 109743156B
Authority
CN
China
Prior art keywords
tbox
encryption
box
key
round
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811629193.1A
Other languages
English (en)
Other versions
CN109743156A (zh
Inventor
程威
全勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Siyuan ideal Holding Group Co., Ltd
Original Assignee
Beijing Siyuan Ideal Holding Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Siyuan Ideal Holding Group Co ltd filed Critical Beijing Siyuan Ideal Holding Group Co ltd
Priority to CN201811629193.1A priority Critical patent/CN109743156B/zh
Publication of CN109743156A publication Critical patent/CN109743156A/zh
Application granted granted Critical
Publication of CN109743156B publication Critical patent/CN109743156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种分组加解密方法和装置,涉及信息安全领域。为解决现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差的问题而发明。包括:根据预先生成的查找表进行32轮迭代计算,生成查找表的过程包括:将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3);记
Figure DDA0001928606850000011
将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3);构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;构造W盒W(x);根据所述W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi

Description

一种分组加解密方法和装置
技术领域
本发明涉及信息安全领域,尤其涉及一种分组加解密方法和装置。
背景技术
数据加密是密码系统的基本任务。按加密密钥和解密密钥的关系,目前数据加密可以分为两大类:对称密码加密和公钥密码加密。SM4是一种对称密码加密算法,属于分组加密,该算法的明文、密钥和密文的长度均为128比特,该算法通过32次非线性迭代实现加密和解密。
然而,现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差。
发明内容
本发明的目的是提供一种分组加解密方法和装置,能够提高安全性。
一方面,本发明实施例提供一种分组加密方法,包括:根据预先生成的查找表进行32轮迭代计算,所述生成查找表的过程包括:将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;记
Figure BDA0001928606830000011
将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),所述
Figure BDA0001928606830000012
为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;以
Figure BDA0001928606830000013
构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;所述Tboxij
Figure BDA0001928606830000014
对应的查找表;所述j为整数,所述j满足0≤j≤3;构造W盒W(x),所述
Figure BDA0001928606830000015
所述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))。
另一方面,提供一种分组加密方法,包括明文经32轮迭代计算进行加密,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述迭代计算中获取第t+4个轮密文Yt+4,包括:记
Figure BDA0001928606830000021
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure BDA0001928606830000022
为异或;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,所述
Figure BDA0001928606830000023
另一方面,提供一种分组加密方法,包括明文经32轮迭代计算进行加密,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述迭代计算中获取第t+4个轮密文Yt+4,包括:记
Figure BDA0001928606830000024
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure BDA0001928606830000025
为异或;分别以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,所述
Figure BDA0001928606830000026
另一方面,提供一种分组加解密配置方法,包括:服务器根据权利要求4所述的生成查找表的过程生成第一查找表TWM1盒及其参数C1、D1和Z1i -1,作为业务主密钥进行存储;预先连接的用户终端从所述服务器获取所述第一查找表TWM1盒及其参数C1、D1并存储;所述用户终端获取工作密钥,所述工作密钥用于所述用户终端加解密各种数据;所述用户终端通过所述服务器获取所述参数Z1i -1;所述用户终端通过权利要求6提供的分组加密方法采用所述业务主密钥对所述工作密钥进行加密,得到加密密钥后存储。
又一方面,提供一种分组加解密方法,服务器及用户终端根据上述配置方法进行配置,分组加解密方法还包括:所述用户终端接收用户输入的加解密请求;所述用户终端通过所述第一查找表TWM1盒、所述参数C1、D1和Z1i -1对所述加密请求对应的加密密钥进行解密,得到所述工作密钥;所述用户终端通过所述工作密钥执行所述加解密请求。
又一方面,提供一种分组加解密装置,包括:用于预先生成查找表的查找表生成模块和根据所示预先生成的查找表进行32轮迭代计算的迭代模块,所述查找表生成模块,包括:
第一轮密钥拆分子模块,用于将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;
轮密文拆分子模块,用于记
Figure BDA0001928606830000031
将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),所述
Figure BDA0001928606830000032
为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;
Tbox盒构建子模块,分别与所述第一轮密钥拆分子模块和轮密文拆分子模块相连,用于以
Figure BDA0001928606830000033
构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;所述Tboxij
Figure BDA0001928606830000034
对应的查找表;所述j为整数,所述j满足0≤j≤3;
W盒构造子模块,用于构造W盒W(x),所述
Figure BDA0001928606830000035
所述E为随机生成的64比特随机数,所述F为随机生成的32比特随机数中的第n个字节,所述n为整数,所述1≤n≤4,所述*为矩阵乘法;所述x为00-FF的任意字节;
TW盒构造子模块,分别与所述Tbox盒构建子模块和所述W盒构造子模块相连,用于根据所述W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi,所述TWi=(W(Tboxi0),W(Tboxi1),W(Tboxi2),W(Tboxi3))。
又一方面,提供一种分组加密装置,包括用于明文经32轮迭代计算进行加密的加密模块,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述加密模块,包括:
第二轮密文拆分子模块,用于记
Figure BDA0001928606830000036
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure BDA0001928606830000037
为异或;Yt+1为第t+1个轮密文;Yt+2为第t+2个轮密文;Yt+3为第t+3个轮密文;
第一查表子模块,与所述第二轮密文拆分子模块相连,用于分别以所述bt0,bt1,bt2,bt3对权利要求14的TW盒构造子模块生成的TW盒TWi进行查表操作,得到Bt0,Bt1,Bt2,Bt3
Ut转换子模块,与所述第一查表子模块相连,用于根据权利要求2存储的C和D,将所述Bt0,Bt1,Bt2,Bt3转换为Ut,所述Ut=Ut0|Ut1|Ut2|Ut3,Utj=Btj*C+D,所述j为整数,所述j满足0≤j≤3;
第一合成置换子模块,与所述Ut转换子模块相连,用于将所述Ut进行合成置换,得到T(Ut);
第一加密子模块,与所述第一合成置换子模块相连,用于根据第t个轮密文Yt和所述T(Ut)获取第t+4个轮密文Yt+4,所述
Figure BDA0001928606830000041
又一方面,提供一种分组加密装置,包括用于明文经32轮迭代计算进行加密的加密模块,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述加密模块,包括:
第三轮密文拆分子模块,用于记
Figure BDA0001928606830000042
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure BDA0001928606830000043
为异或;
第二查表子模块,与所述第三轮密文拆分子模块相连,用于分别以bt0,bt1,bt2,bt3对权利要求15中TWM盒构造子模块生成的TWM盒TWMi进行查表操作,得到Gt0,Gt1,Gt2,Gt3
TXt转换子模块,与所述第二查表子模块相连,用于根据权利要求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转换子模块相连,用于将所述TXt进行合成置换,得到所述T(TXt);
第二加密子模块,与所述第二合成置换子模块相连,用于根据第t个轮密文Yt和所述T(TXt)获取所述第t+4个轮密文Yi+4,所述
Figure BDA0001928606830000044
再一方面,提供一种分组加解密配置装置,包括:
参数获取模块,用于从所述服务器获取第一查找表TWM1盒及其参数C1、D1、Z1i -1并存储;所述第一查找表TWM1盒及其参数C1、D1、Z1i -1是所述服务器根据权利要求4所述的生成查找表的过程生成并作为业务主密钥进行存储的;
工作密钥获取模块,用于获取工作密钥,所述工作密钥用于所述用户终端加解密各种数据;
加密模块,分别与所述参数获取模块和所述工作密钥获取模块相连,用于通过权利要求6提供的分组加密方法采用所述业务主密钥对所述工作密钥进行加密,得到加密密钥后存储。
再一方面,提供一种分组加解密装置,包括上述参数获取模块、工作密钥获取模块和加密模块,还包括:
请求接收模块,用于接收用户输入的加解密请求;
解密模块,与所述参数获取模块相连,用于通过所述第一查找表TWM1盒、所述参数C1、D1和Z1i -1对所述加密请求对应的加密密钥进行解密,得到所述工作密钥;
执行模块,与所述解密模块相连,用于通过所述工作密钥执行所述加解密请求。
再一方面,提供一种分组加解密配置系统,包括:
服务器,用于根据权利要求4所述的生成查找表的过程生成第一查找表TWM1盒及其参数C1、D1和Z1i -1,作为业务主密钥进行存储;向预先连接的用户终端发送所述第一查找表TWM1盒及其参数C1、D1。
所述用户终端,用于接收所述服务器发送的第一查找表TWM1盒及其参数C1、D1并存储;获取工作密钥,所述工作密钥用于所述用户终端加密各种数据;通过所述服务器获取所述参数Z1i -1;通过权利要求6提供的分组加密方法采用所述业务主密钥对所述工作密钥进行加密,得到加密密钥后存储。
本发明实施例提供的技术方案,通过查找表TW盒TWi进行32轮迭代运算,实现分组加解密过程。本发明实施例提供的技术方案直接通过查找表TW盒TWi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差的问题。
附图说明
图1为本发明实施例一提供的分组加解密方法的流程图一;
图2为本发明实施例一提供的分组加解密方法的流程图二;
图3为本发明实施例二提供的分组加解密方法的流程图一;
图4为本发明实施例二提供的分组加解密方法的流程图二;
图5为本发明实施例三提供的分组加密方法的流程图;
图6为本发明实施例四提供的分组加密方法的流程图;
图7为本发明实施例五提供的分组加解密配置方法的流程图一;
图8为本发明实施例六提供的分组加解密方法的流程图;
图9为本发明实施例七提供的分组加解密装置的结构示意图一;
图10为本发明实施例七提供的分组加解密装置的结构示意图二;
图11为本发明实施例八提供的分组加密装置的结构示意图;
图12为本发明实施例九提供的分组加密装置的结构示意图;
图13为本发明实施例十提供的分组加解密配置装置的结构示意图;
图14为本发明实施例十一提供的分组加解密装置的结构示意图;
图15为本发明实施例十二提供的分组加解密系统的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,在下面的具体实施方式中,将对本发明作进一步详细的说明。
实施例一
如图1所示,本发明实施例提供一种分组加解密方法,包括:
步骤101,将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3)。
在本实施例中,标准SM4算法一共有32个轮密钥,即步骤101中i代表迭代计算轮数,i为整数,i满足0≤i≤31。
步骤102,记
Figure BDA0001928606830000061
将Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3)。
在本实施例中,步骤102中
Figure BDA0001928606830000062
为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文。
步骤103,以
Figure BDA0001928606830000063
构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3
在本实施例中,步骤103中Tboxij
Figure BDA0001928606830000071
对应的查找表;j为整数,j满足0≤j≤3。
步骤104,构造W盒W(x)。
在本实施例中,步骤104中
Figure BDA0001928606830000072
E为随机生成的64比特随机数,F为随机生成的32比特随机数中的第n个字节,n为整数,1≤n≤4,*为矩阵乘法;x为00-FF的任意字节;。
在本实施例中,生成每轮查找表所使用的W盒W(x)均可以通过步骤104重新构造;特别的,还可以仅在第0轮生成查找表时构造W盒W(x),其余轮直接使用第0轮构造的W盒W(x)。也就是说,E和F可以每轮各不相同,也可以32轮采用相同的参数E和F。
步骤105,根据W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi
在本实施例中,步骤105中TWi=(W(Tboxi0),W(Tboxi1),W(Tboxi2),W(Tboxi3))。
步骤106,根据查找表TW盒TWi对明文/密文进行32轮迭代计算,得到对应的密文/明文。
在本实施例中,当进行加密运算时,可以通过步骤106根据查找表TW盒TWi对明文进行顺序32轮迭代运算,得到对应的密文;当进行解密运算时,可以通过步骤106根据查找表TW盒TWi对密文进行逆序32轮迭代运算,得到对应的明文。
在本实施例中,进行分组加解密运算时,可以首先通过步骤101至步骤105构造查找表TW盒TWi后进行迭代;为了提高运算速度,也可以首先通过步骤101至步骤105构造查找表TW盒TWi后存储,进行分组加解密运算时,直接通过存储的查找表TW盒TWi进行迭代。
进一步的,为了方便进行分组加解密配置等操作,如图2所示,本发明实施例提供的分组加解密方法,还可以包括:
步骤107,根据E计算C后存储,C=E-1
步骤108,根据C和F计算D后存储,D=C*F。
本发明实施例提供的技术方案,通过查找表TW盒TWi进行32轮迭代运算,实现分组加解密过程。本发明实施例提供的技术方案直接通过查找表TW盒TWi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差的问题。
实施例二
如图3所示,本发明实施例提供一种分组加解密方法,包括:
步骤301至步骤305,构建查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3和W盒W(x),并根据W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi。该过程与图1所示的步骤101至步骤105相似,在此不再一一赘述。
步骤306,每一轮运算随机生成4个8比特随机数Zi0,Zi1,Zi2,Zi3
在本实施例中,为了提高加解密运算的安全性,在32轮迭代运算中,每一轮均通过步骤306随机生成一组随机数Zi0,Zi1,Zi2,Zi3。优选地,为保证32轮迭代运算中所有的Zij(0≤j≤3)各不相同,可一次性生成32*4字节随机数,每轮运算取4个字节随机数,分别作为Zi0,Zi1,Zi2,Zi3
步骤307,根据TWi和4个8比特随机数Zi0,Zi1,Zi2,Zi3构造查找表TWM盒TWMi
在本实施例中,步骤307中TWMi=[W(Tboxi0)*Zi0,W(Tboxi1)*Zi1,W(Tboxi2)*Zi2,W(Tboxi3)*Zi3]。
步骤308,根据查找表TWM盒TWMi对明文/密文进行32轮迭代计算,得到对应的密文/明文。
在本实施例中,当进行加密运算时,可以通过步骤308根据查找表TWM盒TWMi对明文进行顺序32轮迭代运算,得到对应的密文;当进行解密运算时,可以通过步骤308根据查找表TWM盒TWMi对密文进行逆序32轮迭代运算,得到对应的明文。
在本实施例中,进行分组加解密运算时,可以首先通过步骤301至步骤307构造查找表TWM盒TWMi后进行迭代;为了提高运算速度,也可以首先通过步骤301至步骤307构造查找表TWM盒TWMi后存储,进行分组加解密运算时,直接通过存储的查找表TWM盒TWMi进行迭代。
进一步的,为了方便进行分组加解密配置等操作,如图4所示,本发明实施例提供的分组加解密方法,还包括:
步骤309,根据4个8比特随机数Zi0,Zi1,Zi2,Zi3计算Zi -1后存储。
在本实施例中,步骤309中Zi -1=Zi0 -1|Zi1 -1|Zi2 -1|Zi3 -1,该逆运算为有限域GF(28)内的逆运算。
在本实施例中,还可以根据E和F生成C和D后存储,该过程与图2所示的步骤107至步骤108相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TWM盒TWMi进行32轮迭代运算,实现分组加解密过程。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差的问题。
实施例三
如图5所示,本发明实施例提供一种分组加密方法,包括:
步骤501,记
Figure BDA0001928606830000091
将Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3)。
在本实施例中,步骤501中t为整数,t满足0≤t≤31,Y0,Y1,Y2,Y3为明文拆分的4个32bit字;Yt+1为第t+1个轮密文;Yt+2为第t+2个轮密文;Yt+3为第t+3个轮密文。
步骤502,分别以bt0,bt1,bt2,bt3对TW盒TWi进行查表操作,得到Bt0,Bt1,Bt2,Bt3
在本实施例中,步骤502中TW盒TWi的生成方式,与图1所示的步骤101至步骤105相似,在此不再一一赘述。
步骤503,根据C和D,将Bt0,Bt1,Bt2,Bt3转换为Ut
在本实施例中,C和D的获取过程与图2所示的步骤107和108相似,在此不再一一赘述。步骤503中,Ut=Ut0|Ut1|Ut2|Ut3,Utj=Btj*C+D,j为整数,j满足0≤j≤3。
步骤504,将Ut进行合成置换,得到T(Ut)。
在本实施例中,通过步骤504对Utj进行合成置换的方式,与标准SM4算法中合成置换的过程相似,在此不再一一赘述。
步骤505,根据第t个轮密文Yt和T(Ut)获取第t+4个轮密文Yt+4
在本实施例中,步骤505中
Figure BDA0001928606830000092
在本实施例中,将明文分拆为Y0,Y1,Y2,Y3后,根据步骤501至步骤504进行32轮运算得到Y32,Y33,Y34,Y35,从而实现分组加密。
本发明实施例提供的技术方案,通过查找表TW盒TWi进行查表操作,并根据查表结果进行合成置换后获取轮密文,直至32轮结束,从而实现分组加密过程。本发明实施例提供的技术方案直接通过查找表TW盒TWi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例四
如图6所示,本发明实施例提供一种分组加密方法,包括:
步骤601,记
Figure BDA0001928606830000101
将Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3)。该过程与图5所示的步骤501相似,在此不再一一赘述。
步骤602,分别以bt0,bt1,bt2,bt3对TWM盒TWMi进行查表操作,得到Gt0,Gt1,Gt2,Gt3
在本实施例中,步骤602中的生成方式,与图3所示的步骤301至步骤307近似,在此不再一一赘述。
步骤603,根据C和D,以及Zt -1,分别将Gt0,Gt1,Gt2,Gt3转换为TXt
在本实施例中,C和D的获取过程与图2所示的步骤107和108相似,在此不再一一赘述;Zt -1的获取过程与图4所示的步骤309相似,在此不再一一赘述。步骤603中TXt=TXt0|TXt1|TXt2|TXt3,TXtj=Gtj*Ztj -1*C+D,j为整数,j满足0≤j≤3。
步骤604,将TXt进行合成置换,得到T(TXt)。
在本实施例中,通过步骤604对TXt进行合成置换的方式,与标准SM4算法中合成置换的过程相似,在此不再一一赘述。
步骤605,根据第t个轮密文Yt和T(TXt)获取第t+4个轮密文Yi+4
在本实施例中,步骤605中
Figure BDA0001928606830000102
本发明实施例提供的技术方案,通过查找表TWM盒TWMi进行查表操作,并根据查表结果进行合成置换后获取轮密文,直至32轮结束,从而实现分组加密过程。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例五
如图7所示,本发明实施例提供一种分组加解密配置方法,包括:
步骤701,服务器生成第一查找表TWM1盒及其参数C1、D1和Z1i -1,作为业务主密钥进行存储。
在本实施例中,第一查找表TWM1盒及其参数C1、D1和Z1i -1的生成过程,与本发明实施例一和二提供的相似,在此不再一一赘述。
步骤702,预先连接的用户终端从服务器获取第一查找表TWM1盒及其参数C1、D1并存储。
步骤703,用户终端获取工作密钥,工作密钥用于用户终端加解密各种数据。
在本实施例中,通过步骤703获取的工作密钥可以是任意加密方式得到的工作密钥。特别的,为了提高工作密钥的安全性,该工作密钥可以是用户终端生成第二查找表TW1盒及其参数C2、D2,作为工作密钥;该第二查找表TW1盒及其参数C2、D2与本发明实施例一提供的相似,在此不再一一赘述。
步骤704,用户终端通过服务器获取参数Z1i -1
在本实施例中,初始化时,用户终端可以通过步骤704从服务器获取并存储参数Z1i -1,后续使用时,直接使用存储的参数Z1i -1即可,直到存储的参数Z1i -1丢失时,重新通过步骤704获取。
在本实施例中,通过步骤704获取参数Z1i -1的过程可以包括:用户终端将业务认证消息码发送至服务器;服务器验证业务认证消息码,验证通过,将参数Z1i -1发送至用户终端。其中,业务认证消息码可以是参数C1与D1组合,也可以是参数C1与D1经预设加密运算如哈希函数计算获得,服务器通过比对业务认证消息码进行验证;该验证方式可以为服务器根据存储C和D参数以及加密算法生成对比消息码,判断对比消息码与用户终端发送的业务认证消息码是否一致。将参数Z1i -1发送至用户终端的具体方法可以为:以业务认证消息码的前16字节作为密钥对参数Z1i -1进行加密后发送;该加密过程可以采用任意加密算法,在此不作限制。用户终端接收到加密的参数Z1i -1后,采用业务认证消息码的前16字节作为密钥解密获得参数Z1i -1
步骤705,用户终端通过分组加密方法采用业务主密钥对工作密钥进行加密,得到加密密钥后存储。
在本实施例中,通过步骤705进行加密的过程,与本发明实施例四提供的相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TWM盒TWMi对工作密钥进行加密,从而实现密钥加密过程。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例六
如图8所示,本发明实施例提供一种分组加解密方法,该分组加解密方法的配置过程,与本发明实施例五提供的相似,区别在于,还包括:
步骤801,用户终端接收用户输入的加解密请求。
步骤802,用户终端通过第一查找表TWM1盒、参数C1、D1和Z1i -1对加密请求对应的加密密钥进行解密,得到工作密钥。
步骤803,用户终端通过工作密钥执行加解密请求。
本发明实施例提供的技术方案,工作密钥预先经查找表TWM盒TWMi进行加密,使用时先对加密密钥进行解密得到工作密钥后,再通过工作密钥执行相应的请求。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例七
如图9所示,本发明实施例提供一种分组加解密装置,包括用于预先生成查找表的查找表生成模块和根据所示预先生成的查找表进行32轮迭代计算的迭代模块,查找表生成模块,包括:
第一轮密钥拆分子模块901,用于将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中i代表迭代计算轮数,i为整数,i满足0≤i≤31;
轮密文拆分子模块902,用于记
Figure BDA0001928606830000121
将Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),
Figure BDA0001928606830000122
为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;
Tbox盒构建子模块903,分别与第一轮密钥拆分子模块和轮密文拆分子模块相连,用于以
Figure BDA0001928606830000131
构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;Tboxij
Figure BDA0001928606830000132
对应的查找表;j为整数,j满足0≤j≤3;
W盒构造子模块904,用于构造W盒W(x),
Figure BDA0001928606830000133
E为随机生成的64比特随机数,F为随机生成的32比特随机数中的第n个字节,n为整数,1≤n≤4,*为矩阵乘法;x为00-FF的任意字节;
TW盒构造子模块905,分别与Tbox盒构建子模块和W盒构造子模块相连,用于根据W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi,TWi=(W(Tboxi0),W(Tboxi1),W(Tboxi2),W(Tboxi3))。
在本实施例中,通过上述模块构造查找表TW盒TWi的过程,与本发明实施例一提供的相似,在此不再一一赘述。
进一步的,如图10所示,本发明实施例提供的查找表生成模块,还包括:
随机数获取子模块906,用于每一轮运算随机生成4个8比特随机数Zi0,Zi1,Zi2,Zi3
TWM盒构造子模块907,分别与随机数获取子模块和TW盒构造子模块相连,用于根据TWi和4个8比特随机数Zi0,Zi1,Zi2,Zi3构造查找表TWM盒TWMi,TWMi=[W(Tboxi0)*Zi0,W(Tboxi1)*Zi1,W(Tboxi2)*Zi2,W(Tboxi3)*Zi3]。
在本实施例中,通过上述模块构造查找表TWM盒TWMi的过程,与本发明实施例二提供的相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TW盒TWi或查找表TWM盒TWMi进行32轮迭代运算,实现分组加解密过程。本发明实施例提供的技术方案直接通过查找表TW盒TWi或查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加解密,安全性较差的问题。
实施例八
如图11所示,本发明实施例提供一种分组加密装置,包括用于明文经32轮迭代计算进行加密的加密模块,明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,加密模块,包括:
第二轮密文拆分子模块1101,用于记
Figure BDA0001928606830000134
t为整数,t满足0≤t≤31;将Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),bt0,bt1,bt2,bt3均为8比特字节,
Figure BDA0001928606830000141
为异或;Yt+1为第t+1个轮密文;Yt+2为第t+2个轮密文;Yt+3为第t+3个轮密文;
第一查表子模块1102,与第二轮密文拆分子模块相连,用于分别以bt0,bt1,bt2,bt3对本发明实施例七中TW盒构造子模块生成的TW盒TWi进行查表操作,得到Bt0,Bt1,Bt2,Bt3
Ut转换子模块1103,与第一查表子模块相连,用于根据权利要求2存储的C和D,将Bt0,Bt1,Bt2,Bt3转换为Ut,Ut=Ut0|Ut1|Ut2|Ut3,Utj=Btj*C+D,j为整数,j满足0≤j≤3;
第一合成置换子模块1104,与Ut转换子模块相连,用于将Ut进行合成置换,得到T(Ut);
第一加密子模块1105,与第一合成置换子模块相连,用于根据第t个轮密文Yt和T(Ut)获取第t+4个轮密文Yt+4
Figure BDA0001928606830000142
在本实施例中,通过上述模块实现分组加解密的过程,与本发明实施例三提供的过程相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TW盒TWi进行查表操作,并根据查表结果进行合成置换后获取轮密文,直至32轮结束,从而实现分组加密过程。本发明实施例提供的技术方案直接通过查找表TW盒TWi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例九
如图12所示,本发明实施例提供一种分组加密装置,包括用于明文经32轮迭代计算进行加密的加密模块,明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,加密模块,包括:
第三轮密文拆分子模块1201,用于记
Figure BDA0001928606830000143
t为整数,t满足0≤t≤31;将Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),bt0,bt1,bt2,bt3均为8比特字节,
Figure BDA0001928606830000144
为异或;
第二查表子模块1202,与第三轮密文拆分子模块相连,用于分别以bt0,bt1,bt2,bt3对本发明实施例七中TWM盒构造子模块生成的TWM盒TWMi进行查表操作,得到Gt0,Gt1,Gt2,Gt3
TXt转换子模块1203,与第二查表子模块相连,用于根据本发明实施例一存储的C和D,以及本发明实施例二存储的Zt -1,分别将Gt0,Gt1,Gt2,Gt3转换为TXt,TXt=TXt0|TXt1|TXt2|TXt3,TXtj=Gtj*Ztj -1*C+D,j为整数,j满足0≤j≤3;
第二合成置换子模块1204,与TXt转换子模块相连,用于将TXt进行合成置换,得到T(TXt);
第二加密子模块1205,与第二合成置换子模块相连,用于根据第t个轮密文Yt和T(TXt)获取第t+4个轮密文Yi+4
Figure BDA0001928606830000151
在本实施例中,通过上述模块实现分组加解密的过程,与本发明实施例四提供的相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TWM盒TWMi进行查表操作,并根据查表结果进行合成置换后获取轮密文,直至32轮结束,从而实现分组加密过程。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例十
如图13所示,本发明实施例提供一种分组加解密配置装置,包括:
参数获取模块1301,用于从服务器获取第一查找表TWM1盒及其参数C1、D1、Z1i -1并存储;第一查找表TWM1盒及其参数C1、D1、Z1i -1是服务器根据本发明实施例二生成查找表的过程生成并作为业务主密钥进行存储的;
工作密钥获取模块1302,用于获取工作密钥,工作密钥用于用户终端加解密各种数据;
加密模块1303,分别与参数获取模块和工作密钥获取模块相连,用于通过本发明实施例四提供的分组加密方法采用业务主密钥对工作密钥进行加密,得到加密密钥后存储。
在本实施例中,通过上述模块实现分组加解密配置过程,与本发明实施例五提供的相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TWM盒TWMi对工作密钥进行加密,从而实现密钥加密过程。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例十一
如图14所示,本发明实施例提供一种分组加解密装置,包括参数获取模块1301、工作密钥获取模块1302和加密模块1303,还包括:
请求接收模块1304,用于接收用户输入的加解密请求;
解密模块1305,与参数获取模块相连,用于通过第一查找表TWM1盒、参数C1、D1和Z1i -1对加密请求对应的加密密钥进行解密,得到工作密钥;
执行模块1306,与解密模块相连,用于通过工作密钥执行加解密请求。
在本实施例中,通过上述模块实现加解密的过程,与本发明实施例六提供的相似,在此不再一一赘述。
本发明实施例提供的技术方案,工作密钥预先经查找表TWM盒TWMi进行加密,使用时先对加密密钥进行解密得到工作密钥后,再通过工作密钥执行相应的请求。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
实施例十二
如图15所示,本发明实施例提供一种分组加解密配置系统,包括:
服务器1501,用于根据本发明实施例二的生成查找表的过程生成第一查找表TWM1盒及其参数C1、D1和Z1i -1,作为业务主密钥进行存储;向预先连接的用户终端发送第一查找表TWM1盒及其参数C1、D1。
用户终端1502,用于接收服务器发送的第一查找表TWM1盒及其参数C1、D1并存储;获取工作密钥,工作密钥用于用户终端加密各种数据;通过服务器获取参数Z1i -1;通过本发明实施例四提供的分组加密方法采用业务主密钥对工作密钥进行加密,得到加密密钥后存储。
在本实施例中,通过用户终端和服务器实现分组加解密配置过程,与本发明实施例五提供的相似,在此不再一一赘述。
本发明实施例提供的技术方案,通过查找表TWM盒TWMi对工作密钥进行加密,从而实现密钥加密过程。本发明实施例提供的技术方案直接通过查找表TWM盒TWMi进行迭代,无需明文参与,解决了现有技术中直接通过原始密钥经循环计算进行加密,安全性较差的问题。
以上实施例的先后顺序仅为便于描述,不代表实施例的优劣。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (19)

1.一种分组加解密方法,包括根据预先生成的查找表TW盒TWi对明文/密文进行32轮迭代计算,得到对应的密文/明文,其特征在于,所述生成查找表TW盒TWi的过程包括:
将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;
Figure FDA0003493811980000011
将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),所述
Figure FDA0003493811980000012
为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;
Figure FDA0003493811980000013
构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;所述Tboxij
Figure FDA0003493811980000014
对应的查找表;所述j为整数,所述j满足0≤j≤3;
构造W盒W(x),所述
Figure FDA0003493811980000015
所述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所述的分组加解密方法,其特征在于,所述生成查找表TW盒TWi的过程还包括:
根据所述E计算C后存储,所述C=E-1
根据所述C和F计算D后存储,所述D=C*F。
3.根据权利要求1或2所述的分组加解密方法,其特征在于,所述生成查找表TW盒TWi的过程还包括:
每一轮运算随机生成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所述的分组加解密方法,其特征在于,所述生成查找表TW盒TWi的过程还包括:
根据所述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,包括:
Figure FDA0003493811980000021
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure FDA0003493811980000022
为异或;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,所述
Figure FDA0003493811980000023
6.一种分组加密方法,其特征在于,包括明文经32轮迭代计算进行加密,其特征在于,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述迭代计算中获取第t+4个轮密文Yt+4,包括:
Figure FDA0003493811980000024
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure FDA0003493811980000025
为异或;
分别以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,所述
Figure FDA0003493811980000031
7.一种分组加解密配置方法,其特征在于,包括:
服务器根据权利要求4所述的生成查找表TW盒TWi的过程生成第一查找表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所述的生成查找表TW盒TWi的过程生成第二查找表TW1盒及其参数C2、D2,作为所述工作密钥。
12.一种分组加解密方法,其特征在于,服务器及用户终端根据权利要求7所述的分组加解密配置方法对业务主密钥及工作密钥进行了配置,所述分组加解密方法包括:
所述用户终端接收用户输入的加解密请求;
所述用户终端通过所述第一查找表TWM1盒、所述参数C1、D1和Z1i -1对所述加解密请求对应的加密密钥进行解密,得到所述工作密钥;
所述用户终端通过所述工作密钥执行所述加解密请求。
13.一种分组加解密装置,包括用于预先生成查找表TW盒TWi的查找表生成模块和根据所述预先生成的查找表TW盒TWi进行32轮迭代计算的迭代模块,其特征在于,所述查找表生成模块,包括:
第一轮密钥拆分子模块,用于将标准SM4算法中轮密钥rki拆分为4个字节,记为rki=(rki0,rki1,rki2,rki3),其中所述i代表迭代计算轮数,所述i为整数,所述i满足0≤i≤31;
轮密文拆分子模块,用于记
Figure FDA0003493811980000041
将所述Li拆分为4个字节,记为Li=(ai0,ai1,ai2,ai3),所述
Figure FDA0003493811980000042
为异或;Xi+1为第i+1个轮密文;Xi+2为第i+2个轮密文;Xi+3为第i+3个轮密文;
Tbox盒构建子模块,分别与所述第一轮密钥拆分子模块和轮密文拆分子模块相连,用于以
Figure FDA0003493811980000043
构建对应的查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3;所述Tboxij
Figure FDA0003493811980000044
对应的查找表;所述j为整数,所述j满足0≤j≤3;
W盒构造子模块,用于构造W盒W(x),所述
Figure FDA0003493811980000045
所述E为随机生成的64比特随机数,所述F为随机生成的32比特随机数中的第n个字节,所述n为整数,所述1≤n≤4,所述*为矩阵乘法;所述x为00-FF的任意字节;
TW盒构造子模块,分别与所述Tbox盒构建子模块和所述W盒构造子模块相连,用于根据所述W盒W(x)和查找表Tboxi0,Tboxi1,Tboxi2,Tboxi3构造查找表TW盒TWi,所述TWi=(W(Tboxi0),W(Tboxi1),W(Tboxi2),W(Tboxi3))。
14.根据权利要求13所述的分组加解密装置,其特征在于,所述查找表生成模块,还包括:
随机数获取子模块,用于每一轮运算随机生成4个8比特随机数Zi0,Zi1,Zi2,Zi3
TWM盒构造子模块,分别与所述随机数获取子模块和所述TW盒构造子模块相连,用于根据所述TWi和4个8比特随机数Zi0,Zi1,Zi2,Zi3构造查找表TWM盒TWMi,所述TWMi=[W(Tboxi0)*Zi0,W(Tboxi1)*Zi1,W(Tboxi2)*Zi2,W(Tboxi3)*Zi3]。
15.一种分组加密装置,包括用于明文经32轮迭代计算进行加密的加密模块,其特征在于,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述加密模块,包括:
第二轮密文拆分子模块,用于记
Figure FDA0003493811980000051
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure FDA0003493811980000052
为异或;Yt+1为第t+1个轮密文;Yt+2为第t+2个轮密文;Yt+3为第t+3个轮密文;
第一查表子模块,与所述第二轮密文拆分子模块相连,用于分别以所述bt0,bt1,bt2,bt3对权利要求14的TW盒构造子模块生成的TW盒TWi进行查表操作,得到Bt0,Bt1,Bt2,Bt3
Ut转换子模块,与所述第一查表子模块相连,用于根据权利要求2存储的C和D,将所述Bt0,Bt1,Bt2,Bt3转换为Ut,所述Ut=Ut0|Ut1|Ut2|Ut3,Utj=Btj*C+D,所述j为整数,所述j满足0≤j≤3;
第一合成置换子模块,与所述Ut转换子模块相连,用于将所述Ut进行合成置换,得到T(Ut);
第一加密子模块,与所述第一合成置换子模块相连,用于根据第t个轮密文Yt和所述T(Ut)获取第t+4个轮密文Yt+4,所述
Figure FDA0003493811980000061
16.一种分组加密装置,包括用于明文经32轮迭代计算进行加密的加密模块,其特征在于,所述明文拆分为4个32bit字,记为Y0,Y1,Y2,Y3,所述加密模块,包括:
第三轮密文拆分子模块,用于记
Figure FDA0003493811980000062
所述t为整数,所述t满足0≤t≤31;将所述Mt拆分为4个字节,记为Mt=(bt0,bt1,bt2,bt3),所述bt0,bt1,bt2,bt3均为8比特字节,所述
Figure FDA0003493811980000063
为异或;
第二查表子模块,与所述第三轮密文拆分子模块相连,用于分别以bt0,bt1,bt2,bt3对权利要求15中TWM盒构造子模块生成的TWM盒TWMi进行查表操作,得到Gt0,Gt1,Gt2,Gt3
TXt转换子模块,与所述第二查表子模块相连,用于根据权利要求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转换子模块相连,用于将所述TXt进行合成置换,得到所述T(TXt);
第二加密子模块,与所述第二合成置换子模块相连,用于根据第t个轮密文Yt和所述T(TXt)获取所述第t+4个轮密文Yi+4,所述
Figure FDA0003493811980000064
17.一种分组加解密配置装置,其特征在于,包括:
参数获取模块,用于从服务器获取第一查找表TWM1盒及其参数C1、D1、Z1i -1并存储;所述第一查找表TWM1盒及其参数C1、D1、Z1i -1是所述服务器根据权利要求4所述的生成查找表TW盒TWi的过程生成并作为业务主密钥进行存储的;
工作密钥获取模块,用于获取工作密钥,所述工作密钥用于用户终端加解密各种数据;
加密模块,分别与所述参数获取模块和所述工作密钥获取模块相连,用于通过权利要求6提供的分组加密方法采用所述业务主密钥对所述工作密钥进行加密,得到加密密钥后存储。
18.一种分组加解密装置,包括权利要求7所述的参数获取模块、工作密钥获取模块和加密模块,其特征在于,还包括:
请求接收模块,用于接收用户输入的加解密请求;
解密模块,与所述参数获取模块相连,用于通过所述第一查找表TWM1盒、所述参数C1、D1和Z1i -1对所述加密请求对应的加密密钥进行解密,得到所述工作密钥;
执行模块,与所述解密模块相连,用于通过所述工作密钥执行所述加解密请求。
19.一种分组加解密配置系统,其特征在于,包括:
服务器,用于根据权利要求4所述的生成查找表TW盒TWi的过程生成第一查找表TWM1盒及其参数C1、D1和Z1i -1,作为业务主密钥进行存储;向预先连接的用户终端发送所述第一查找表TWM1盒及其参数C1、D1;
所述用户终端,用于接收所述服务器发送的第一查找表TWM1盒及其参数C1、D1并存储;获取工作密钥,所述工作密钥用于所述用户终端加密各种数据;通过所述服务器获取所述参数Z1i -1;通过权利要求6提供的分组加密方法采用所述业务主密钥对所述工作密钥进行加密,得到加密密钥后存储。
CN201811629193.1A 2018-12-28 2018-12-28 一种分组加解密方法和装置 Active CN109743156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811629193.1A CN109743156B (zh) 2018-12-28 2018-12-28 一种分组加解密方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811629193.1A CN109743156B (zh) 2018-12-28 2018-12-28 一种分组加解密方法和装置

Publications (2)

Publication Number Publication Date
CN109743156A CN109743156A (zh) 2019-05-10
CN109743156B true CN109743156B (zh) 2022-03-22

Family

ID=66361947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811629193.1A Active CN109743156B (zh) 2018-12-28 2018-12-28 一种分组加解密方法和装置

Country Status (1)

Country Link
CN (1) CN109743156B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348229B (zh) * 2019-06-11 2021-09-21 北京思源理想控股集团有限公司 数据的加密方法及装置、数据的解密方法及装置
CN112003687B (zh) * 2020-08-26 2023-04-07 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571331A (zh) * 2012-02-07 2012-07-11 中国科学院软件研究所 一种用于防御能量分析攻击的密码算法实现保护方法
CN104579636A (zh) * 2015-02-16 2015-04-29 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN108270550A (zh) * 2018-01-10 2018-07-10 成都卫士通信息产业股份有限公司 一种基于sm4算法的安全高效的白盒实现方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900149B2 (en) * 2013-12-24 2018-02-20 Synopsys, Inc. Area efficient cryptographic method and apparatus
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
CN105681025B (zh) * 2016-01-29 2019-04-16 中国科学院信息工程研究所 一种国家密码标准算法sm4的安全白盒实现方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571331A (zh) * 2012-02-07 2012-07-11 中国科学院软件研究所 一种用于防御能量分析攻击的密码算法实现保护方法
CN104579636A (zh) * 2015-02-16 2015-04-29 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN108270550A (zh) * 2018-01-10 2018-07-10 成都卫士通信息产业股份有限公司 一种基于sm4算法的安全高效的白盒实现方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于SOPC的AES算法硬件实现研究;肖顺文等;《西华师范大学学报(自然科学版)》;20131231;全文 *

Also Published As

Publication number Publication date
CN109743156A (zh) 2019-05-10

Similar Documents

Publication Publication Date Title
CN108629027B (zh) 基于区块链的用户数据库重建方法、装置、设备及介质
KR102136904B1 (ko) 공유 비밀키 생성 장치, 암호화 장치, 복호화 장치, 공유 비밀키 생성 방법, 암호화 방법, 복호화 방법, 및 프로그램
US7907723B2 (en) Device, system and method for fast secure message encryption without key distribution
US7912213B2 (en) Device, system and method for fast secure message encryption without key distribution
KR20020016620A (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
US8180048B2 (en) Method and system for computational transformation
CN108183791B (zh) 应用于云环境下的智能终端数据安全处理方法及系统
KR20120098926A (ko) 보안성을 향상시키는 순열 데이터 변환
CN112183767A (zh) 一种多密钥下模型聚合的联邦学习方法及相关设备
TW201545524A (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
CN109743156B (zh) 一种分组加解密方法和装置
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
Joshy et al. Text to image encryption technique using RGB substitution and AES
CN114584278A (zh) 数据同态加密方法及装置、数据传输方法及装置
CN117254897B (zh) 基于容错学习的身份基矩阵同态加密方法
JP5689826B2 (ja) 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム
US11165758B2 (en) Keystream generation using media data
JP2000209195A (ja) 暗号通信システム
Belmeguenai et al. Speech encryption using stream cipher
RU2503135C1 (ru) Способ криптографического преобразования информации и устройство для его реализации
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
Leon et al. Performance analysis of the confidentiality security service in the IEEE 802.11 using WEP, AES-CCM, and ECC
Landge et al. VHDL based Blowfish implementation for secured embedded system design
US20170126399A1 (en) Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20191113

Address after: 102300 no.6-1-21, office building, building 20, Pudong, Mentougou District, Beijing

Applicant after: Beijing Siyuan ideal Holding Group Co., Ltd

Address before: 100102 No. 301, No. 316 building, Nanhu garden, Chaoyang District, Beijing 18

Applicant before: Beijing Siyuan Internet Technology Co. Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant