CN112636903A - 构造方法、加密方法、解密方法、装置、设备及存储介质 - Google Patents
构造方法、加密方法、解密方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112636903A CN112636903A CN202110262965.8A CN202110262965A CN112636903A CN 112636903 A CN112636903 A CN 112636903A CN 202110262965 A CN202110262965 A CN 202110262965A CN 112636903 A CN112636903 A CN 112636903A
- Authority
- CN
- China
- Prior art keywords
- lookup table
- linear transformation
- target
- encryption
- result
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000010276 construction Methods 0.000 title claims abstract description 38
- 230000009466 transformation Effects 0.000 claims abstract description 138
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 68
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000003786 synthesis reaction Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种构造方法、加密方法、解密方法、装置、设备及存储介质,其中,该构造方法包括:确定SM4算法的S盒;对S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据至少一个查找表生成目标查找表,其中,目标查找表中的存储数据用于参与到SM4算法的每一轮的加密计算。本申请实施例提供的技术方案能够优化SM4算法的加密性能。
Description
技术领域
本申请实施例涉及计算机应用技术领域,尤其涉及一种构造方法、加密方法、解密方法、装置、设备及存储介质。
背景技术
已作为密码行业标准GMT 0002-2012的SM4算法是一种分组密码算法,密钥长度为128比特,分组长度128比特,加密算法与密钥扩展算法都采用32轮非线性迭代结构,解密过程与加密过程的结构相同。
目前,SM4算法应用广泛,应用SM4算法需要在内存中存储SM4算法所提供的起混淆的作用的多个S盒(Sbox),且每一轮的加密步骤较为复杂,然而,多个S盒占用的存储空间比较大,且较为复杂的加密步骤消耗的计算资源比较多,导致SM4算法的加密性能较差,无法满足一些对加密性能要求高的应用场景的加密需求。
发明内容
本申请实施例提供一种构造方法、加密方法、解密方法、装置、设备及存储介质,用优化SM4算法的加密性能。
第一方面,本申请实施例中提供了一种构造方法,包括:
确定SM4算法的S盒;
对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。
第二方面,本申请实施例中提供了一种加密方法,包括:
确定明文;
利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
第三方面,本申请实施例中提供了一种解密方法,包括:
确定密文;
利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
第四方面,本申请实施例中提供了一种构造装置,包括:
第一确定模块,用于确定SM4算法的S盒;
第一处理模块,用于对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
所述第一处理模块,还用于根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。
第五方面,本申请实施例中提供了一种加密装置,包括:
第二确定模块,用于确定明文;
第二处理模块,用于利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
第六方面,本申请实施例中提供了一种解密装置,包括:
第三确定模块,用于确定密文;
第三处理模块,用于利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
第七方面,本申请实施例中提供了一种电子设备,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
确定SM4算法的S盒;
对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算;或者,
所述处理组件用于:
确定明文;
利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果;
或者,
所述处理组件用于:
确定密文;
利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
第八方面,本申请实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时实现上述构造方法、上述加密方法或者上述解密方法。
本申请实施例中,通过确定SM4算法的S盒;对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。由此,预先制作合成变换T(X)的目标查找表,后续加密时查询合成变换T(X)的目标查找表中的存储数据进行加密计算,即能减少对存储资源的占用,还能简化加密计算步骤,降低加密的运算量,节约计算资源,提高加密速度,优化了加密性能。当然,后续解密时查询合成变换T(X)的目标查找表中的存储数据进行解密计算,即能减少对存储资源的占用,还能简化解密计算步骤,降低解密的运算量,节约计算资源,提高解密速度,优化解密性能。
本请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请提供的构造方法一个实施例的流程图;
图2示出了SM4算法的原理图;
图3示出了SM4算法的S盒;
图4示出了根据本申请提供的加密方法一个实施例的流程图;
图5示出了根据本申请提供的解密方法一个实施例的流程图;
图6示出了根据本申请提供的构造装置一个实施例的结构示意图;
图7示出了根据本申请提供的加密装置一个实施例的结构示意图;
图8示出了根据本申请提供的解密装置一个实施例的结构示意图;
图9示出了根据本申请提供的电子设备一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了根据本申请提供的构造方法一个实施例的流程图。参见图1,该方法可以包括以下步骤:
101、确定SM4算法的S盒。
为了便于理解,结合图2对SM4算法进行简单介绍:
假设输入的明文为(X0,X1,X2,X3)、轮密钥为rki以及密文(Y0,Y1,Y2,Y3),其中,i为0至31中的任一整数;X0、X1、X2和X3均为明文中的一个字节,每个字节由16个比特bit组成,四个字节表示128个比特的明文;同样地,Y0、Y1、Y2和Y3均为密文中的一个字节,每个字节由16个比特组成,四个字节表示128个比特的密文。此外,第i+1轮的加密结果为(Xi+1,Xi+2,Xi+3,Xi+4),Xi+1、Xi+2、Xi+3、Xi+4均为加密结果中的一个字节。
则SM4算法可以表示为:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki),(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),其中,⊕为异或运算符号,F(X)为轮函数,T(X)为合成变换函数。
参见图2,可以理解的是,上一轮加密结果中的后三个字节作为下一轮加密结果中的前三个字节,根据上一轮加密结果和下一轮加密所采用的轮密钥生成下一轮加密结果中的第四个字节。以明文为(X0,X1,X2,X3)例,第1轮的加密结果为(X1,X2,X3,X4),第2轮的加密结果为(X2,X3,X4,X5),依次类推,第32轮的加密结果为(X32,X33,X34,X35)。
其中,SM4的S盒Sbox是一种以字节为单位的非线性代替变换,它的密码学作用是可以起到混淆的作用。S盒的本质是8个比特的非线性置换,输入数据和输出数据都是8个比特的字节。
图3所示为SM4的S盒,例如S盒的输入数据为EF,查询S盒中第E行和第F列的值,获取输出数据Sbox(EF)=84。
其中,合成变换函数T(X)=L(τ(X))是非线性变换τ和线性变换L两者的一个复合,它可以同时起到混淆以及扩散的作用,由此可以大大地加强了密码的安全性。SM4的非线性变换τ的本质是S盒的一种并行应用,它由4个S盒并置构成,是用字来作为单位的一种非线性代替变换。
在应用现有的SM4进行加密时,需要在内存中存储至少4个S盒,占用的存储空间大,且在迭代加密计算时,既要多次查询S盒,还要进行多次移位操作以及多次线性变换,计算步骤较为复杂,运算量较大,消耗的计算资源多,加密速度下降,加密性能较差。
发明人经过研究发现,可以预先制作合成变换T(X)的查找表,加密时查询合成变换T(X)的查找表中的存储数据进行加密计算,即能减少对存储资源的占用,还能简化加密计算步骤,降低加密的运算量,节约计算资源,提高加密速度,优化加密性能。
102、对S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表。
在一些实施例中,依次遍历S盒中的存储数据;对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表。
在一种可能的实现方式中,“对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表”可以是:对当前遍历的存储数据进行左移24位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第一线性变换结果,并将第一线性变换结果存储至第一查找表;对当前遍历的存储数据进行左移16位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第二线性变换结果,并将第二线性变换结果存储至第二查找表;对当前遍历的存储数据进行左移8位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第三线性变换结果,并将第三线性变换结果存储至第三查找表;对当前遍历的存储数据进行线性变换,得到第四线性变换结果,并将第四线性变换结果存储至第四查找表。
为了便于理解,假设第一查找表为T1[d1],第二查找表为T2[d2],第三查找表为T3[d3],以及第四查找表为T4[d4],<<为向左移位操作,L()为线性变换操作。
其中,T1[d1]=L(Sbox(d1)<<24),按照d1从00至FF依次遍历S盒,对当前遍历的Sbox(d1)进行向左移位24位的移位操作,以及对移位操作后的Sbox(d1)进行线性变换,并将得到的线性变换结果作为与d1对应的存储数据存储至第一查找表T1[d1]。
其中,T2[d2]=L(Sbox(d2)<<16),按照d2从00至FF依次遍历S盒,对当前遍历的Sbox(d2)进行向左移位16位的移位操作,以及对移位操作后的Sbox(d2)进行线性变换,并将得到的线性变换结果作为与d2对应的存储数据存储至第二查找表T2[d2]中。
其中,T3[d3]=L(Sbox(d3)<<8)按照d3从00至FF依次遍历S盒,对当前遍历的Sbox(d3)进行向左移位8位的移位操作,以及对移位操作后的
Sbox(d3)进行线性变换,并将得到的线性变换结果作为与d3对应的存储数据存储至第二查找表T3[d3]中。
其中,T4[d4]=L(Sbox(d4)),按照d4从00至FF依次遍历S盒,对当前遍历的Sbox(d4)进行线性变换,并将得到的线性变换结果作为与d4对应的存储数据存储至第四查找表T4[d4]中。
需要指出的是,第一查找表为T1[d1],第二查找表为T2[d2],第三查找表为 T3[d3]以及第四查找表为T4[d4]均为8比特输入、32比特输出的查找表。其中,8比特输入即指查找表的输入数据为8个比特,32比特输出即指查找表所输出的存储数据为32个比特。
103、根据至少一个查找表生成目标查找表,其中,目标查找表中的存储数据用于参与到SM4算法的每一轮的加密计算。
在一些实施例中,依次对第一查找表、第二查找表、第三查找表、第四查找表中相同位置的存储数据进行异或运算,将异或运算结果存储至目标查找表中。
其中,第一查找表、第二查找表、第三查找表、第四查找表均为8比特输入、32比特输出的一维查找表。
假设目标查找表为T,T=T1[d1]⊕T2[d2]⊕T3[d3]⊕T4[d4],其中,在每次异或运算时,d1、d2、d3、d4依次从00至FF取同一数值。
需要指出的是,目标查找表即为与SM4算法中合成变换T(X)对应的查找表,该目标查找表减少了对内存资源的占用。
发明人在基于目标查找表进行SM4算法加密时,发现与现有的SM4算法相比,加密效率提高约一倍,目标查表占用的存储空间仅1KB,至少可以有效的节约3KB的存储空间。
在一些实施例中,目标查找表中的256个32比特的存储数据依次如下:
0x8ED55B5B,0xD0924242,0x4DEAA7A7,0x06FDFBFB,0xFCCF3333, 0x65E28787,0xC93DF4F4,0x6BB5DEDE,0x4E165858,0x6EB4DADA, 0x44145050,0xCAC10B0B,0x8828A0A0,0x17F8EFEF,0x9C2CB0B0, 0x11051414,0x872BACAC,0xFB669D9D,0xF2986A6A,0xAE77D9D9, 0x822AA8A8,0x46BCFAFA,0x14041010,0xCFC00F0F,0x02A8AAAA,
0x54451111, 0x5F134C4C, 0xBE269898, 0x6D482525, 0x9E841A1A,
0x1E061818,0xFD9B6666,0xEC9E7272,0x4A430909,0x10514141, 0x24F7D3D3,0xD5934646,0x53ECBFBF,0xF89A6262,0x927BE9E9, 0xFF33CCCC,0x04555151,0x270B2C2C,0x4F420D0D,0x59EEB7B7, 0xF3CC3F3F,0x1CAEB2B2,0xEA638989,0x74E79393,0x7FB1CECE, 0x6C1C7070,0x0DABA6A6,0xEDCA2727,0x28082020,0x48EBA3A3,
0xC1975656, 0x80820202,0xA3DC7F7F,0xC4965252,0x12F9EBEB,
0xA174D5D5,0xB38D3E3E,0xC33FFCFC,0x3EA49A9A,0x5B461D1D, 0x1B071C1C,0x3BA59E9E,0x0CFFF3F3,0x3FF0CFCF,0xBF72CDCD, 0x4B175C5C,0x52B8EAEA,0x8F810E0E,0x3D586565,0xCC3CF0F0, 0x7D196464,0x7EE59B9B,0x91871616,0x734E3D3D,0x08AAA2A2, 0xC869A1A1,0xC76AADAD,0x85830606,0x7AB0CACA,0xB570C5C5,
0xF4659191, 0xB2D96B6B, 0xA7892E2E,0x18FBE3E3,0x47E8AFAF,
0x330F3C3C,0x674A2D2D,0xB071C1C1,0x0E575959,0xE99F7676, 0xE135D4D4,0x661E7878,0xB4249090,0x360E3838,0x265F7979, 0xEF628D8D,0x38596161,0x95D24747,0x2AA08A8A,0xB1259494, 0xAA228888,0x8C7DF1F1,0xD73BECEC,0x05010404,0xA5218484, 0x9879E1E1,0x9B851E1E,0x84D75353,0x00000000,0x5E471919, 0x0B565D5D,0xE39D7E7E,0x9FD04F4F,0xBB279C9C,0x1A534949,
0x7C4D3131,0xEE36D8D8,0x0A020808,0x7BE49F9F,0x20A28282, 0xD4C71313,0xE8CB2323,0xE69C7A7A,0x42E9ABAB,0x43BDFEFE, 0xA2882A2A,0x9AD14B4B,0x40410101,0xDBC41F1F,0xD838E0E0, 0x61B7D6D6,0x2FA18E8E,0x2BF4DFDF,0x3AF1CBCB,0xF6CD3B3B, 0x1DFAE7E7,0xE5608585,0x41155454,0x25A38686,0x60E38383,
0x16ACBABA, 0x295C7575, 0x34A69292, 0xF7996E6E, 0xE434D0D0,
0x721A6868,0x01545555,0x19AFB6B6,0xDF914E4E,0xFA32C8C8, 0xF030C0C0,0x21F6D7D7,0xBC8E3232,0x75B3C6C6,0x6FE08F8F, 0x691D7474,0x2EF5DBDB,0x6AE18B8B,0x962EB8B8,0x8A800A0A, 0xFE679999,0xE2C92B2B,0xE0618181,0xC0C30303,0x8D29A4A4, 0xAF238C8C,0x07A9AEAE,0x390D3434,0x1F524D4D,0x764F3939,
0xD36EBDBD, 0x81D65757, 0xB7D86F6F, 0xEB37DCDC, 0x51441515,
0xA6DD7B7B,0x09FEF7F7,0xB68C3A3A,0x932FBCBC,0x0F030C0C, 0x03FCFFFF,0xC26BA9A9,0xBA73C9C9,0xD96CB5B5,0xDC6DB1B1, 0x375A6D6D,0x15504545,0xB98F3636,0x771B6C6C,0x13ADBEBE, 0xDA904A4A,0x57B9EEEE,0xA9DE7777,0x4CBEF2F2,0x837EFDFD, 0x55114444,0xBDDA6767,0x2C5D7171,0x45400505,0x631F7C7C,
0x50104040, 0x325B6969, 0xB8DB6363, 0x220A2828, 0xC5C20707,
0xF531C4C4,0xA88A2222,0x31A79696,0xF9CE3737,0x977AEDED, 0x49BFF6F6,0x992DB4B4,0xA475D1D1,0x90D34343,0x5A124848, 0x58BAE2E2,0x71E69797,0x64B6D2D2,0x70B2C2C2,0xAD8B2626, 0xCD68A5A5,0xCB955E5E,0x624B2929,0x3C0C3030,0xCE945A5A, 0xAB76DDDD,0x867FF9F9,0xF1649595,0x5DBBE6E6,0x35F2C7C7,
0x2D092424, 0xD1C61717, 0xD66FB9B9, 0xDEC51B1B, 0x94861212,
0x78186060,0x30F3C3C3,0x897CF5F5,0x5CEFB3B3,0xD23AE8E8, 0xACDF7373,0x794C3535,0xA0208080,0x9D78E5E5,0x56EDBBBB, 0x235E7D7D,0xC63EF8F8,0x8BD45F5F,0xE7C82F2F,0xDD39E4E4, 0x68492121。
在一些实施例中,在根据至少一个查找表生成目标查找表之后,该方法还包括:在本地保存目标查找表或者将目标查找表上传至加密端。
实际应用中,可以将目标查找表保存在执行构造方法的构造端,后续加密端执行加密步骤时,可以向构造端请求获取目标查找表。当然,构造端生成目标查找表之后,还可以将目标查找表上传至加密端,由加密端进行保存。另外,也可以由加密端执行构造方法生成目标查找表并在加密端本地保存。
其中,构造端或加密端包括但不限于手机、电脑、可穿戴设备、车载设备、服务器等各种终端设备。
可以理解的是,由构造端执行构造方法生成目标查找表,加密端向构造端请求获取目标查找表的方式,可以减轻加密端的负荷,提高加密端的加密性能。当然,针对多个加密端的场景,由构造端执行构造方法生成目标查找表,还可以快速满足多个加密端的加密需求,无需每个加密端执行构造方法生成目标查找表,节约了系统资源。
本申请实施例提供的构造方法,通过确定SM4算法的S盒;对S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据至少一个查找表生成目标查找表,其中,目标查找表中的存储数据用于参与到SM4算法的每一轮的加密计算。由此,预先制作合成变换T(X)的目标查找表,后续加密时查询合成变换T(X)的目标查找表中的存储数据进行加密计算,即能减少对存储资源的占用,还能简化加密计算步骤,降低加密的运算量,节约计算资源,提高加密速度,优化了加密性能。当然,后续解密时查询合成变换T(X)的目标查找表中的存储数据进行解密计算,即能减少对存储资源的占用,还能简化解密计算步骤,降低解密的运算量,节约计算资源,提高解密速度,优化解密性能。
图4示出了根据本申请提供的加密方法一个实施例的流程图。参见图4,该方法可以包括以下步骤:
401、确定明文。
402、利用目标查找表提供的存储数据,采用SM4算法对明文进行加密获得密文;其中,目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
在本实施例中,加密方法由加密端执行,加密端在加密过程中所利用的目标查找表可以由加密端按照图1所示的构造方法生成得到,也可以向构造端请求获取目标查找表,在此不做限制,关于目标查找表的构造方法参照前述内容。
在一些实施例中,利用目标查找表提供的存储数据,采用SM4算法对明文进行加密获得密文具体是:
S1、确定用于加密明文的32轮中每轮的轮密钥。
S2、执行32轮的加密操作,其中,针对每轮加密操作:将上一轮的加密结果中后三个字节作为待生成的当前轮的加密结果中的前三个字节;确定上一轮的加密结果中后三个字节和当前轮的轮密钥的第一异或操作结果,以及根据第一异或操作结果查询目标查找表,获取与第一异或操作结果匹配的存储数据;并将上一轮的加密结果中第一个字节和查询所得的存储数据进行异或运算得到的第二异或操作结果,作为当前轮的加密结果中的第四个字节。
S3、获取第32轮的加密结果,并对第32轮的加密结果进行反序,得到明文的密文。
为了便于理解,假设128bit的明文表示为(X0,X1,X2,X3),其中,X0、X1、X2、X3均为明文中的一个字节;假设128bit的密文表示为(Y0,Y1,Y2,Y3),其中,Y0、Y1、Y2、Y3均为明文中的一个字节;假设轮密钥rki,其中,i为0至31中的任一整数。
根据SM4算法的规定,第i+1轮加密结果(Xi+1,Xi+2,Xi+3,Xi+4)中的前三个字节来源于第i轮的加密结果(Xi,Xi+1,Xi+2,Xi+3)中的后三个字节,因此,获取第i轮的加密结果中的后三个字节Xi、Xi+1、Xi+2作为第i+1轮加密结果(Xi+1,Xi+2,Xi+3,Xi+4)中的前三个字节。
根据SM4算法的规定,第i+1轮加密结果(Xi+1,Xi+2,Xi+3,Xi+4)中的第四个字节Xi+4满足Xi+4=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)这一条件。因此,为了获取Xi+4,可以先依次将Xi+1、Xi+2、Xi+3、rki进行异或运算,得到第一异或操作结果;接着,将第一异或操作结果作为目标查找表的输入数据,在目标查找表中查找与该输入数据匹配的存储数据;接着,对Xi和查找到的存储数据进行异或运算,得到第二异或操作结果即为Xi+4。由此,确定了第i+1轮加密结果的四个字节(Xi+1,Xi+2,Xi+3,Xi+4)。
在执行完第32轮的加密计算后,获取第32轮的加密结果(X32,X33,X34,X35),并对加密结果(X32,X33,X34,X35)进行反序,得到密文(X32,X33,X34,X35)即(Y0,Y1,Y2,Y3)。
在一些实施例中,轮秘钥rki按照秘钥扩展算法得到。
本申请实施例提供的加密方法,通过确定明文,利用目标查找表提供的存储数据,采用SM4算法对明文进行加密获得密文;其中,目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。由此,加密时查询合成变换T(X)的目标查找表中的存储数据进行加密计算,即能减少对存储资源的占用,还能简化加密计算步骤,降低加密的运算量,节约计算资源,提高加密速度,优化加密性能。
图5示出了根据本申请提供的解密方法一个实施例的流程图。参见图5,该方法可以包括以下步骤:
501、确定密文。
502、利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
在本实施例中,由解密端执行解密方法,解密端可以在解密过程中所利用的目标查找表可以由解密端按照图1所示的构造方法生成得到,也可以向构造端请求获取目标查找表,在此不做限制,关于目标查找表的构造方法参照前述内容。
由于SM4密码算法的解密算法结构和加密算法结构一样,不同的是轮密钥的使用顺序,解密的轮密钥和加密的轮密钥是相反的,也就是说,解密的轮密钥是加密的轮密钥的逆序。
在一些实施例中,步骤502具体实现方式可以为:确定用于解密所述密文的32轮中每轮的轮密钥;对所述密文进行反序,并对反序后的密文执行32轮的解密操作,其中,针对每轮解密操作:将上一轮的解密结果中前三个字节作为待生成的当前轮的解密结果中的后三个字节;确定上一轮的解密结果中前三个字节和当前轮的轮密钥的第三异或操作结果,以及根据所述第三异或操作结果查询所述目标查找表,获取与所述第三异或操作结果匹配的存储数据;根据所述上一轮的解密结果中第四个字节和与所述第三异或操作结果匹配的存储数据确定作为当前轮的解密结果中的第一个字节;获取第32轮的解密结果以得到明文。
为了便于理解,假设128bit的明文表示为(X0,X1,X2,X3),其中,X0、X1、X2、X3均为明文中的一个字节;假设128bit的密文表示为(Y0,Y1,Y2,Y3),其中,Y0、Y1、Y2、Y3均为明文中的一个字节;假设轮密钥rki,其中,i为0至31中的任一整数。
根据SM4算法的规定,对密文进行反序得到第32轮的加密结果(X32,X33,X34,X35),对第32轮的加密结果进行32轮的解密,得到明文(X0,X1,X2,X3);
其中,第i+1轮解密结果(Xi,Xi+1,Xi+2,Xi+3)中的后三个字节来源于第i轮解密结果(Xi+1,Xi+2,Xi+3,Xi+4)的前三个字节,因此,获取第i轮的解密结果中的前三个字节Xi+1、Xi+2、Xi+3作为第i+1轮解密结果(Xi,Xi+1,Xi+2,Xi+3)中的后三个字节。
针对第i+1轮解密结果(Xi,Xi+1,Xi+2,Xi+3)中第一个字节Xi,先依次将Xi+1、Xi+2、Xi+3、rki进行异或运算,得到第三异或操作结果;接着,将第三异或操作结果作为目标查找表的输入数据,在目标查找表中查找与该输入数据匹配的存储数据T(Xi+1⊕Xi+2⊕Xi+3⊕rki);接着,在已知Xi+4和T(Xi+1⊕Xi+2⊕Xi+3⊕rki)的前提下,根据公式Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)不难得到Xi,Xi即第i+1轮解密结果的第一个字节。
在执行完第32轮的解密计算后,获取第32轮的解密结果(X0,X1,X2,X3)即明文。
本申请实施例提供的解密方法,通过确定密文;利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。由此,解密时查询合成变换T(X)的目标查找表中的存储数据进行解密计算,即能减少对存储资源的占用,还能简化解密计算步骤,降低解密的运算量,节约计算资源,提高解密速度,优化解密性能。
图6示出了根据本申请提供的构造装置一个实施例的结构示意图。
参见图6,该构造装置可以包括:
第一确定模块601,用于确定SM4算法的S盒;
第一处理模块602,用于对S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
第一处理模块602,还用于根据至少一个查找表生成目标查找表,其中,目标查找表中的存储数据用于参与到SM4算法的每一轮的加密计算。
在一些实施例中,第一处理模块602获取至少一个查找表具体是:
依次遍历S盒中的存储数据;
对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表。
在一些实施例中,第一处理模块602对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表具体是:
对当前遍历的存储数据进行左移24位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第一线性变换结果,并将第一线性变换结果存储至第一查找表;
对当前遍历的存储数据进行左移16位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第二线性变换结果,并将第二线性变换结果存储至第二查找表;
对当前遍历的存储数据进行左移8位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第三线性变换结果,并将第三线性变换结果存储至第三查找表;
对当前遍历的存储数据进行线性变换,得到第四线性变换结果,并将第四线性变换结果存储至第四查找表。
在一些实施例中,第一处理模块602根据至少一个查找表生成目标查找表具体是:
依次对第一查找表、第二查找表、第三查找表、第四查找表中相同位置的存储数据进行异或运算,将异或运算结果存储至目标查找表中。
在一些实施例中,第一处理模块602,在根据至少一个查找表生成目标查找表之后,还用于:在本地保存目标查找表或者将目标查找表上传至加密端。
图6的构造装置可以执行图1所示实施例的构造方法,其实现原理和技术效果不再赘述。对于上述实施例中的构造装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7示出了根据本申请提供的加密装置一个实施例的结构示意图。参见图7,该加密装置可以包括:
第二确定模块701,用于确定明文;
第二处理模块702,用于利用目标查找表提供的存储数据,采用SM4算法对明文进行加密获得密文;其中,目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
在一些实施例中,第二处理模块702利用目标查找表提供的存储数据,采用SM4算法对明文进行加密获得密文具体是:
确定用于加密明文的32轮中每轮的轮密钥;
执行32轮的加密操作,其中,针对每轮加密操作:将上一轮的加密结果中后三个字节作为待生成的当前轮的加密结果中的前三个字节;确定上一轮的加密结果中后三个字节和当前轮的轮密钥的第一异或操作结果,以及根据第一异或操作结果查询目标查找表,获取与第一异或操作结果匹配的存储数据;并将上一轮的加密结果中第一个字节和查询所得的存储数据进行异或运算得到的第二异或操作结果,作为当前轮的加密结果中的第四个字节;
获取第32轮的加密结果,并对第32轮的加密结果进行反序,得到明文的密文。
图7的加密装置可以执行图4所示实施例的加密方法,其实现原理和技术效果不再赘述。对于上述实施例中的加密装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8示出了根据本申请提供的解密装置一个实施例的结构示意图。参见图8,该解密装置可以包括:
第三确定模块801,用于确定密文;
第三处理模块802,用于利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
在一些实施例中,第三处理模块802具体用于:
确定用于解密所述密文的32轮中每轮的轮密钥;
对所述密文进行反序,并对反序后的密文执行32轮的解密操作,其中,针对每轮解密操作:将上一轮的解密结果中前三个字节作为待生成的当前轮的解密结果中的后三个字节;确定上一轮的解密结果中前三个字节和当前轮的轮密钥的第三异或操作结果,以及根据所述第三异或操作结果查询所述目标查找表,获取与所述第三异或操作结果匹配的存储数据;根据所述上一轮的解密结果中第四个字节和与所述第三异或操作结果匹配的存储数据确定作为当前轮的解密结果中的第一个字节;
获取第32轮的解密结果以得到明文。
图8的解密装置可以执行图5所示实施例的解密方法,其实现原理和技术效果不再赘述。对于上述实施例中的解密装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图6所示实施例的构造装置、图7所示实施例的加密装置或者图8所示实施例的解密装置均可以实现为电子设备,如图9所示,该电子设备可以包括存储组件901以及处理组件902;
存储组件901存储一条或多条计算机指令,其中,一条或多条计算机指令供处理组件调用执行。
处理组件902用于:
确定SM4算法的S盒;
对S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
根据至少一个查找表生成目标查找表,其中,目标查找表中的存储数据用于参与到SM4算法的每一轮的加密计算;或者,
处理组件902用于:
确定明文;
利用目标查找表提供的存储数据,采用SM4算法对明文进行加密获得密文;其中,目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果;或者,
处理组件902用于:
确定密文;
利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
其中,处理组件902可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件901被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
另外,电子设备还可以包括显示组件903,显示组件903可以为电致发光(EL)元件、液晶显示器或具有类似结构的微型显示器、或者视网膜可直接显示或类似的激光扫描式显示器。
当然,电子设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
通信组件被配置为便于电子设备和其他设备之间有线或无线方式的通信等。
如在本文所使用的,“电子设备”可以是远程web服务器、服务器、计算机联网设备、芯片组、台式计算机、笔记本式计算机、工作站,或任何其他处理设备或者装备。
其中,该电子设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时电子设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被计算机执行时可以实现上述图1所示实施例的构造方法、上述图4所示实施例的加密方法或者上述图5所示实施例的解密方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种构造方法,其特征在于,包括:
确定SM4算法的S盒;
对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。
2.根据权利要求1所述的方法,其特征在于,所述获得至少一个查找表具体是:
依次遍历S盒中的存储数据;
对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表。
3.根据权利要求2所述的方法,其特征在于,所述对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表,包括:
对当前遍历的存储数据进行左移24位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第一线性变换结果,并将所述第一线性变换结果存储至第一查找表;
对当前遍历的存储数据进行左移16位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第二线性变换结果,并将所述第二线性变换结果存储至第二查找表;
对当前遍历的存储数据进行左移8位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第三线性变换结果,并将所述第三线性变换结果存储至第三查找表;
对当前遍历的存储数据进行线性变换,得到第四线性变换结果,并将所述第四线性变换结果存储至第四查找表。
4.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个查找表生成目标查找表包括:
依次对所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表中相同位置的存储数据进行异或运算,将异或运算结果存储至所述目标查找表中。
5.根据权利要求1至4任一项所述的方法,其特征在于,在根据所述至少一个查找表生成目标查找表之后,还包括:
在本地保存所述目标查找表或者将所述目标查找表上传至加密端。
6.一种加密方法,其特征在于,包括:
确定明文;
利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
7.根据权利要求6所述的方法,其特征在于,利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文包括:
确定用于加密所述明文的32轮中每轮的轮密钥;
执行32轮的加密操作,其中,针对每轮加密操作:将上一轮的加密结果中后三个字节作为待生成的当前轮的加密结果中的前三个字节;确定上一轮的加密结果中后三个字节和当前轮的轮密钥的第一异或操作结果,以及根据所述第一异或操作结果查询所述目标查找表,获取与所述第一异或操作结果匹配的存储数据;并将所述上一轮的加密结果中第一个字节和查询所得的存储数据进行异或运算得到的第二异或操作结果,作为当前轮的加密结果中的第四个字节;
获取第32轮的加密结果,并对第32轮的加密结果进行反序,得到所述明文的密文。
8.一种解密方法,其特征在于,包括:
确定密文;
利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
9.一种构造装置,其特征在于,包括:
第一确定模块,用于确定SM4算法的S盒;
第一处理模块,用于对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
所述第一处理模块,还用于根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。
10.一种加密装置,其特征在于,包括:
第二确定模块,用于确定明文;
第二处理模块,用于利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
11.一种解密装置,其特征在于,包括:
第三确定模块,用于确定密文;
第三处理模块,用于利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
12.一种电子设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
确定SM4算法的S盒;
对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算;或者,
所述处理组件用于:
确定明文;
利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果;或者,
所述处理组件用于:
确定密文;
利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。
13.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被计算机执行时实现权利要求1至5中任一项所述的构造方法、权利要求6至7中任一项所述的加密方法或者权利要求8所述的解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110262965.8A CN112636903A (zh) | 2021-03-11 | 2021-03-11 | 构造方法、加密方法、解密方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110262965.8A CN112636903A (zh) | 2021-03-11 | 2021-03-11 | 构造方法、加密方法、解密方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112636903A true CN112636903A (zh) | 2021-04-09 |
Family
ID=75297686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110262965.8A Pending CN112636903A (zh) | 2021-03-11 | 2021-03-11 | 构造方法、加密方法、解密方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112636903A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113328848A (zh) * | 2021-05-21 | 2021-08-31 | 清华大学 | 参数化s盒生成方法、装置、设备及存储介质 |
CN114553398A (zh) * | 2022-04-24 | 2022-05-27 | 广州万协通信息技术有限公司 | 多重查找的分组加密方法、装置、设备和存储介质 |
CN115208626A (zh) * | 2022-06-02 | 2022-10-18 | 北京交大微联科技有限公司 | 铁路信号系统中基于安全通信密文传输的通信方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788974A (zh) * | 2016-12-22 | 2017-05-31 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
CN107070636A (zh) * | 2016-12-23 | 2017-08-18 | 中国电子科技集团公司第三十研究所 | 一种标准密文输出格式的商密sm4算法的白盒软件实现方法 |
CN107409041A (zh) * | 2015-02-05 | 2017-11-28 | 金雅拓股份有限公司 | 用于通过使用查找表实现包括替换盒和线性变换的混合器函数来执行块密码加密的系统和方法 |
CN109257162A (zh) * | 2018-11-02 | 2019-01-22 | 北京京东金融科技控股有限公司 | 加密算法白盒化的方法和装置 |
WO2020201899A1 (en) * | 2019-03-29 | 2020-10-08 | Irdeto B.V. | Method and apparatus for implementing a white-box cipher |
CN111865559A (zh) * | 2020-06-16 | 2020-10-30 | 郑州信大捷安信息技术股份有限公司 | 一种sm4算法快速实现方法及装置 |
-
2021
- 2021-03-11 CN CN202110262965.8A patent/CN112636903A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107409041A (zh) * | 2015-02-05 | 2017-11-28 | 金雅拓股份有限公司 | 用于通过使用查找表实现包括替换盒和线性变换的混合器函数来执行块密码加密的系统和方法 |
CN106788974A (zh) * | 2016-12-22 | 2017-05-31 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
CN107070636A (zh) * | 2016-12-23 | 2017-08-18 | 中国电子科技集团公司第三十研究所 | 一种标准密文输出格式的商密sm4算法的白盒软件实现方法 |
CN109257162A (zh) * | 2018-11-02 | 2019-01-22 | 北京京东金融科技控股有限公司 | 加密算法白盒化的方法和装置 |
WO2020201899A1 (en) * | 2019-03-29 | 2020-10-08 | Irdeto B.V. | Method and apparatus for implementing a white-box cipher |
CN111865559A (zh) * | 2020-06-16 | 2020-10-30 | 郑州信大捷安信息技术股份有限公司 | 一种sm4算法快速实现方法及装置 |
Non-Patent Citations (2)
Title |
---|
陈宇涵 等: "基于通用可重构处理器的AES算法设计与实现", 《计算机工程》 * |
韩林 等: "一种专用指令集安全处理器的架构设计与VLSI实现", 《小型微型计算机系统》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113328848A (zh) * | 2021-05-21 | 2021-08-31 | 清华大学 | 参数化s盒生成方法、装置、设备及存储介质 |
CN113328848B (zh) * | 2021-05-21 | 2022-07-15 | 清华大学 | 参数化s盒生成方法、装置、设备及存储介质 |
CN114553398A (zh) * | 2022-04-24 | 2022-05-27 | 广州万协通信息技术有限公司 | 多重查找的分组加密方法、装置、设备和存储介质 |
CN115208626A (zh) * | 2022-06-02 | 2022-10-18 | 北京交大微联科技有限公司 | 铁路信号系统中基于安全通信密文传输的通信方法及装置 |
CN115208626B (zh) * | 2022-06-02 | 2023-12-01 | 北京交大微联科技有限公司 | 铁路信号系统中基于安全通信密文传输的通信方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417726B (zh) | 一种密钥管理方法及相关设备 | |
CN108629027B (zh) | 基于区块链的用户数据库重建方法、装置、设备及介质 | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
Zhang et al. | Cryptanalysis of S-box-only chaotic image ciphers against chosen plaintext attack | |
CN112636903A (zh) | 构造方法、加密方法、解密方法、装置、设备及存储介质 | |
EP2924677B1 (en) | Splitting s-boxes in a white-box implementation to resist attacks | |
US9692592B2 (en) | Using state reordering to protect against white box attacks | |
US8489897B2 (en) | Method and circuitry for detecting a fault attack | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
CN109460536B (zh) | 一种矩阵运算的安全外包方法 | |
CN111736902B (zh) | 基于simd指令的sm4的并行计算方法及装置、可读存储介质 | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
JP2007316614A (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
Walia et al. | Implementation of new modified MD5-512 bit algorithm for cryptography | |
Zhang et al. | Cryptanalyzing a novel image cipher based on mixed transformed logistic maps | |
Neha | Enhanced security using hybrid encryption algorithm | |
Mendonca | Data security in cloud using AES | |
Chaudhary et al. | Comparative study between cryptographic and hybrid techniques for implementation of security in cloud computing | |
CN116663038A (zh) | 数据加密的方法、装置及电子设备 | |
US9639674B2 (en) | Using single white-box implementation with multiple external encodings | |
Xu et al. | A white-box AES-like implementation based on key-dependent substitution-linear transformations | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
US11101824B2 (en) | Encryption device and decryption device, and operation method thereof | |
Jain et al. | Enhance data security in cloud computing with digital signature & hybrid cryptographic algorithm | |
Mushtaque et al. | Implementation of new encryption algorithm with random key selection and minimum space complexity |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |