CN113162756A - 一种基于查表的sm4算法实现方法和装置 - Google Patents
一种基于查表的sm4算法实现方法和装置 Download PDFInfo
- Publication number
- CN113162756A CN113162756A CN202110346724.1A CN202110346724A CN113162756A CN 113162756 A CN113162756 A CN 113162756A CN 202110346724 A CN202110346724 A CN 202110346724A CN 113162756 A CN113162756 A CN 113162756A
- Authority
- CN
- China
- Prior art keywords
- lookup
- lookup table
- encryption
- round
- lookup tables
- 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.)
- Granted
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000009466 transformation Effects 0.000 claims description 20
- 230000002441 reversible effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000000844 transformation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种基于查表的SM4算法实现方法,具体包括:在查找表生成阶段,根据平台资源大小动态生成32轮加解密运算对应的查找表;计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数,所述TBox查找表的数量x=floor[(M‑32*2b)/(a‑2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32‑floor((M‑256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;在查找表使用阶段,进行每轮加解密运算时,直接使用每轮加解密运算对应的查找表进行加解密运算。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于查表的SM4算法实现方法和装置。
背景技术
SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。
目前,通常采用的SM4方法是将密钥信息隐藏在查找表中防止攻击者获得密钥信息。然而,目前的SM4设计方案设计的查找表规模有数百KB,无法在资源有限的嵌入式平台应用,且不能根据嵌入式平台的资源大小动态调整查找表的规模大小。
因此如何设计一种基于查表的SM4算法实现方法,能够根据平台资源大小动态调整查找表规模,实现SM4算法在平台资源受限的情况下仍能使用,而且在一定程度上通过构造的查找表对密钥进行隐藏,有效保护密钥的安全性是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种基于查表的SM4算法实现方法和装置,能够根据平台资源大小动态调整查找表规模,实现SM4算法在平台资源受限的情况下仍能使用,而且在一定程度上通过构造的查找表对密钥进行隐藏,有效保护密钥的安全性。
本发明第一方面提出一种基于查表的SM4算法实现方法,所述SM4算法实现方法包括查找表生成阶段和查找表使用阶段;
在查找表生成阶段,根据平台资源大小动态生成32轮加解密运算对应的查找表:
根据平台资源大小计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数,所述TBox查找表的数量x=floor[(M-32*2b)/(a-2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32-floor((M-256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;
根据预设匹配策略将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并根据匹配结果分别生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;其中,所述TBox查找表由轮密钥运算和可逆变换T运算组合构造而成;所述MaskBox查找表由随机数构成,所述MaskKey查找表轮密钥与所述MaskBox查找表异或运算构成;
在查找表使用阶段,进行每轮加解密运算时,直接使用每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表进行加解密运算。
进一步的,所述预设匹配策略包括:
若所述TBox查找表的数量x为偶数,则前x/2轮和后x/2轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表;
若所述TBox查找表的数量x为奇数,则前x/2+1轮和后x/2轮加解密运算或者前x/2轮和后x/2+1轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
进一步的,所述预设匹配策略还包括:当所述TBox查找表的数量x小于2时,则首轮和尾轮加解密运算对应的查找表均为所述TBox查找表,剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
进一步的,在通过所述MaskKey查找表和MaskBox查找表进行轮密钥rki运算时,所述MaskKey查找表和MaskBox查找表的查找顺序可以互换。
进一步的,所述TBox查找表比所述MaskKey查找表和MaskBox查找表资源占用大,在进行SM4加解密的中间轮操作时,根据平台资源的大小动态选择所述TBox查找表或所述MaskKey查找表和MaskBox查找表;当平台资源较大时,中间轮加解密运算时选择所述TBox查找表的次数增加,当平台资源较小时,中间轮加解密运算时选择所述MaskKey查找表和MaskBox查找表的次数增加。
本发明第二方面还提出一种基于查表的SM4算法实现装置,所述SM4算法实现装置包括:查找表生成单元和SM4加解密单元;
所述查找表生成单元,根据平台资源大小动态计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数:
所述TBox查找表的数量x=floor[(M-32*2b)/(a-2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32-floor((M-256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;
根据预设匹配策略将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并根据匹配结果分别生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;其中,所述TBox查找表由轮密钥运算和可逆变换T运算组合构造而成;所述MaskBox查找表由随机数构成,所述MaskKey查找表轮密钥与所述MaskBox查找表异或运算构成;
所述SM4加解密单元,进行每轮加解密运算时,直接使用每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表表进行加解密运算。
进一步的,所述预设匹配策略包括:
若所述TBox查找表的数量x为偶数,则前x/2轮和后x/2轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表;
若所述TBox查找表的数量x为奇数,则前x/2+1轮和后x/2轮加解密运算或者前x/2轮和后x/2+1轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
进一步的,所述预设匹配策略还包括:当所述TBox查找表的数量x小于2时,则首轮和尾轮加解密运算对应的查找表均为所述TBox查找表,剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
进一步的,在通过所述MaskKey查找表和MaskBox查找表进行轮密钥rki运算时,所述MaskKey查找表和MaskBox查找表的查找顺序可以互换。
本发明第三方面提供一种基于查表的SM4算法实现的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现前述的方法。
本发明第四方面提供一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现前述的方法步骤。
本发明具有突出的实质性特点和显著的进步,具体的说:本发明根据平台资源大小动态产生每轮加解密运算对应的TBox查找表或MaskBox查找表和MaskKey查找表,进行每轮加解密运算时,直接使用每轮加解密运算对应的T查找表进行加解密运算;一方面能够根据平台资源大小选择不同的查找表,动态调整查找表规模,实现SM4算法在平台资源受限的情况下仍能使用,另一方面在一定程度上通过构造的查找表对密钥进行隐藏,有效保护密钥的安全性。
本发明中TBox查找表的数量选择满足[(M-32*8)/(4096-8)]的最大整数,其中,M为平台分配给查找表的资源,单位为M字节;由于TBox查找表的安全性能更高,因此TBox查找表的数量越多,SM4算法的安全性越高,因此本发明在满足平台资源受限情况下最大限度的保证SM4算法的安全性,实现了平台资源和SM4算法安全性的平衡。
本发明中将所述TBox查找表动态安排在32轮加解密运算的两端,通过保证与外界密切接触的加解密运算的安全性来确保SM4算法的安全性。
本发明中当根据计算公式得到的所述TBox查找表的个数小于2时,则通过确保首轮和尾轮加解密运算对应的查找表恒为所述TBox查找表,来保证与外界密切接触的加解密运算的安全性来确保SM4算法的安全性。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种基于查表的SM4算法实现方法流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
所述SM4算法的加解密变换为: 其中,(Xi,Xi+1,Xi+2,Xi+3)为输入的128位明文或密文数据,rki为轮密钥;可逆变换T的定义为:T(x)=L(τ(x)),非线性变换τ由四个并行的S盒构成,A=(a0,a1,a2,a3),τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3)),且线性变换L的定义为:
目前,通常采用的SM4方法是将密钥信息隐藏在查找表中防止攻击者获得密钥信息。然而,目前的SM4设计方案设计的查找表规模有数百KB,无法在资源有限的嵌入式平台应用,且不能根据嵌入式平台的资源大小动态调整查找表的规模大小。
实施例1
如图1所示,本发明第一方面提出一种基于查表的SM4算法实现方法,所述SM4算法实现方法包括查找表生成阶段和查找表使用阶段;
在查找表生成阶段,根据平台资源大小动态生成32轮加解密运算对应的查找表:
根据平台资源大小计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数,所述TBox查找表的数量x=floor[(M-32*2b)/(a-2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32-floor((M-256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;
根据预设匹配策略将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并根据匹配结果分别生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;其中,所述TBox查找表由轮密钥运算和可逆变换T运算组合构造而成;所述MaskBox查找表由随机数构成,所述MaskKey查找表轮密钥与所述MaskBox查找表异或运算构成;
在查找表使用阶段,进行每轮加解密运算时,直接使用每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表进行加解密运算。
在具体实施时,所述预设匹配策略包括:若所述TBox查找表的数量x为偶数,则前x/2轮和后x/2轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表;
若所述TBox查找表的数量x为奇数,则前x/2+1轮和后x/2轮加解密运算或者前x/2轮和后x/2+1轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
可以理解,所述SM4加解密中加解密运算通过选择所述TBox查找表进行轮密钥rki运算和可逆变换T运算,具体包括:
对输入的明文或密文数据Xi+1、Xi+2、Xi+3进行异或运算后,再通过所述TBox查找表进行轮密钥rki运算、可逆变换T中的非线性变换τ定义的并行S盒运算和线性变换L定义的移位运算,将通过所述TBox查找表运算的输出结果与明文数据Xi进行异或运算。
需要说明的是,轮密钥运算和T变换可以由4个8进32出的TBox查找表来计算。将每轮运算输入的32位数据拆分为4个8位数据,每个8位输入映射为32位输出,将4个32位输出进行异或即为轮密钥运算和T变换后的运算结果。
可以理解,所述SM4加解密中加解密运算通过选择所述MaskKey查找表和MaskBox查找表进行轮密钥运算,具体包括:
对输入的明文或密文数据Xi+1、Xi+2、Xi+3进行异或运算后,分别通过所述MaskKey查找表和MaskBox查找表进行轮密钥rki运算,将运算的输出结果再进行可逆变换T中的非线性变换τ定义的并行S盒运算和线性变换L定义的移位运算后,再将可逆变换T运算的输出结果与明文数据Xi进行异或运算。
具体的,在通过所述MaskKey查找表和MaskBox查找表进行轮密钥rki运算时,所述MaskKey查找表和MaskBox查找表的查找顺序可以互换。
需要说明的是,SM4加密过程和解密过程的结构相同,只是轮密钥的使用顺序相反,解密过程的轮密钥是加密过程的轮密钥的逆序。
具体的,所述构造查找表中还包括:对128为明文或密文数据进行非线性编码保护后构成PS查找表,所述非线性编码保护组合S盒混淆和矩阵混淆;
若采用所述PS查找表对输入的明文或密文数据进行非线性编码保护,则在首轮加解密运算中,通过所述TBox查找表进行轮密钥rki运算和可逆变换T运算时,所述TBox查找表中还设置有抵消所述非线性编码保护中S盒混淆和矩阵混淆的操作。
需要说明的是,在对输入的明文或密文数据进行PS查找表之前,将输入的128位明文或密文数据的后96位拆分为三组32位数据,每组32位数据拆分为4个8位数据,每个8位输入映射为8位输出。
由于,所述TBox查找表比所述MaskKey查找表和MaskBox查找表资源占用大,在进行SM4加解密的操作时,根据平台资源的大小动态生成所述TBox查找表或所述MaskKey查找表和MaskBox查找表;当平台资源较大时,则生成的所述TBox查找表的次数增加,当平台资源较小时,则生成的所述MaskKey查找表和MaskBox查找表的次数增加。通过根据平台资源大小选择不同的查找表,动态调整查找表规模,实现SM4算法在平台资源受限的情况下仍能使用,另一方面在一定程度上通过构造的查找表对密钥进行隐藏,有效保护密钥的安全性。
本发明中TBox查找表的数量选择满足[(M-32*8)/(4096-8)]的最大整数,其中,M为平台分配给查找表的资源,单位为M字节;由于TBox查找表的安全性能更高,因此TBox查找表的数量越多,SM4算法的安全性越高,因此本发明在满足平台资源受限情况下最大限度的保证SM4算法的安全性,实现了平台资源和SM4算法安全性的平衡。
本发明中根据预设分配策略将所述TBox查找表动态安排在32轮加解密运算的两端,通过保证与外界密切接触的加解密运算的安全性来确保SM4算法的安全性。
实施例2
本实施例与实施例1的区别在于:当根据x=floor[(M-32*8)/(4096-8)]计算得到的所述TBox查找表的数量x小于2时,则首轮和尾轮加解密运算对应的查找表均选择为所述TBox查找表,剩余轮加解密运算对应的查找表均选择为所述MaskKey查找表和MaskBox查找表。
在实际的应用中,在进行算法实现时,第一轮和最后一轮运算使用TBox查找表,剩余30轮运算全部采用MaskBox查找表时,加解密查找表资源占用大小少于20KB。
本发明中当根据计算公式得到的所述TBox查找表的个数小于2时,则通过确保首轮和尾轮加解密运算对应的查找表恒为所述TBox查找表,来保证与外界密切接触的加解密运算的安全性来确保SM4算法的安全性。
实施例3
本发明第二方面还提出一种基于查表的SM4算法实现装置,所述SM4算法实现装置包括:查找表生成单元和SM4加解密单元;
所述查找表生成单元,根据平台资源大小动态计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数:
所述TBox查找表的数量x=floor[(M-32*2b)/(a-2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32-floor((M-256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;
根据预设匹配策略将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并根据匹配结果分别生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;其中,所述TBox查找表由轮密钥运算和可逆变换T运算组合构造而成;所述MaskBox查找表由随机数构成,所述MaskKey查找表轮密钥与所述MaskBox查找表异或运算构成;
所述SM4加解密单元,进行每轮加解密运算时,直接使用每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表表进行加解密运算。
进一步的,若所述TBox查找表的数量x为偶数,则前x/2轮和后x/2轮加解密运算对应的查找表均选择为所述TBox查找表;剩余轮加解密运算对应的查找表均选择为所述MaskKey查找表和MaskBox查找表;若所述TBox查找表的数量x为奇数,则前x/2+1轮和后x/2轮加解密运算或者前x/2轮和后x/2+1轮加解密运算对应的查找表均选择为所述TBox查找表;剩余轮加解密运算对应的查找表均选择为所述MaskKey查找表和MaskBox查找表。
进一步的,当根据x=floor[(M-32*8)/(4096-8)]计算得到的所述TBox查找表的数量x小于2时,则首轮和尾轮加解密运算对应的查找表均选择为所述TBox查找表,剩余轮加解密运算对应的查找表均选择为所述MaskKey查找表和MaskBox查找表。
进一步的,在通过所述MaskKey查找表和MaskBox查找表进行轮密钥rki运算时,所述MaskKey查找表和MaskBox查找表的查找顺序可以互换。
实施例4
本实施例提供一种基于查表的SM4算法实现的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现实施例1-2任一项所述的方法。
实施例5
本实施例提供一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现实施例1-2任一项所述的方法步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于查表的SM4算法实现方法,其特征在于,所述SM4算法实现方法包括查找表生成阶段和查找表使用阶段;
在查找表生成阶段,根据平台资源大小动态生成32轮加解密运算对应的查找表:
根据平台资源大小计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数,所述TBox查找表的数量x=floor[(M-32*2b)/(a-2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32 - floor((M-256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;
根据预设匹配策略将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并根据匹配结果分别生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;其中,所述TBox查找表由轮密钥运算和可逆变换T运算组合构造而成;所述MaskBox查找表由随机数构成,所述MaskKey查找表轮密钥与所述MaskBox查找表异或运算构成;
在查找表使用阶段,进行每轮加解密运算时,直接使用每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表进行加解密运算。
2.根据权利要求1所述的SM4算法实现方法,其特征在于,所述预设匹配策略包括:
若所述TBox查找表的数量x为偶数,则前x/2轮和后x/2轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表;
若所述TBox查找表的数量x为奇数,则前x/2+1轮和后x/2轮加解密运算或者前x/2轮和后x/2+1轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
3.根据权利要求1所述的SM4算法实现方法,其特征在于,所述预设匹配策略还包括:当所述TBox查找表的数量x小于2时,则首轮和尾轮加解密运算对应的查找表均为所述TBox查找表,剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
5.一种基于查表的SM4算法实现装置,其特征在于,所述SM4算法实现装置包括:查找表生成单元和SM4加解密单元;
所述查找表生成单元,根据平台资源大小动态计算32轮加解密运算中TBox查找表、MaskKey查找表和MaskBox查找表的个数:
所述TBox查找表的数量x=floor[(M-32*2b)/(a-2b)],所述MaskKey查找表和所述MaskBox查找表的数量y=32 - floor((M-256)/4088);M为平台分配给32轮查找表的资源,单位为M字节;a为每轮TBox查找表的预设资源,单位为字节,b分别为每轮MaskKey查找表和MaskBox查找表的预设资源,单位为字节;
根据预设匹配策略将x个TBox查找表、y个MaskKey查找表和y个MaskBox查找表与32轮加解密运算进行匹配,并根据匹配结果分别生成每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表;其中,所述TBox查找表由轮密钥运算和可逆变换T运算组合构造而成;所述MaskBox查找表由随机数构成,所述MaskKey查找表轮密钥与所述MaskBox查找表异或运算构成;
所述SM4加解密单元,进行每轮加解密运算时,直接使用每轮加解密运算对应的TBox查找表或MaskKey查找表和MaskBox查找表表进行加解密运算。
6.根据权利要求5所述的SM4算法实现装置,其特征在于:
所述预设匹配策略包括:
若所述TBox查找表的数量x为偶数,则前x/2轮和后x/2轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表;
若所述TBox查找表的数量x为奇数,则前x/2+1轮和后x/2轮加解密运算或者前x/2轮和后x/2+1轮加解密运算对应的查找表均为所述TBox查找表;剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
7.根据权利要求5所述的SM4算法实现装置,其特征在于:
所述预设匹配策略还包括:当所述TBox查找表的数量x小于2时,则首轮和尾轮加解密运算对应的查找表均为所述TBox查找表,剩余轮加解密运算对应的查找表均为所述MaskKey查找表和MaskBox查找表。
9.一种基于查表的SM4算法实现的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110346724.1A CN113162756B (zh) | 2021-03-31 | 2021-03-31 | 一种基于查表的sm4算法实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110346724.1A CN113162756B (zh) | 2021-03-31 | 2021-03-31 | 一种基于查表的sm4算法实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113162756A true CN113162756A (zh) | 2021-07-23 |
CN113162756B CN113162756B (zh) | 2022-02-11 |
Family
ID=76885720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110346724.1A Active CN113162756B (zh) | 2021-03-31 | 2021-03-31 | 一种基于查表的sm4算法实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113162756B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150172043A1 (en) * | 2012-06-18 | 2015-06-18 | China Iwncomm Co., Ltd. | Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device |
CN108270550A (zh) * | 2018-01-10 | 2018-07-10 | 成都卫士通信息产业股份有限公司 | 一种基于sm4算法的安全高效的白盒实现方法及装置 |
CN108809626A (zh) * | 2018-05-30 | 2018-11-13 | 北京安如山文化科技有限公司 | 一种白盒sm4密码算法方案与系统 |
CN111538480A (zh) * | 2020-03-26 | 2020-08-14 | 郑州信大捷安信息技术股份有限公司 | 一种用于椭圆曲线密码的倍点运算方法及系统 |
CN111800255A (zh) * | 2020-06-08 | 2020-10-20 | 北京电子科技学院 | 一种适用于分组密码白盒化的动态白盒库生成和使用方法 |
CN111901097A (zh) * | 2020-08-06 | 2020-11-06 | 成都卫士通信息产业股份有限公司 | 一种白盒实现方法、装置、电子设备及计算机存储介质 |
-
2021
- 2021-03-31 CN CN202110346724.1A patent/CN113162756B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150172043A1 (en) * | 2012-06-18 | 2015-06-18 | China Iwncomm Co., Ltd. | Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device |
CN108270550A (zh) * | 2018-01-10 | 2018-07-10 | 成都卫士通信息产业股份有限公司 | 一种基于sm4算法的安全高效的白盒实现方法及装置 |
CN108809626A (zh) * | 2018-05-30 | 2018-11-13 | 北京安如山文化科技有限公司 | 一种白盒sm4密码算法方案与系统 |
CN111538480A (zh) * | 2020-03-26 | 2020-08-14 | 郑州信大捷安信息技术股份有限公司 | 一种用于椭圆曲线密码的倍点运算方法及系统 |
CN111800255A (zh) * | 2020-06-08 | 2020-10-20 | 北京电子科技学院 | 一种适用于分组密码白盒化的动态白盒库生成和使用方法 |
CN111901097A (zh) * | 2020-08-06 | 2020-11-06 | 成都卫士通信息产业股份有限公司 | 一种白盒实现方法、装置、电子设备及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
姚思等: "SM4算法的一种新型白盒实现", 《密码学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113162756B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7899190B2 (en) | Security countermeasures for power analysis attacks | |
JP5229315B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
CN110795762B (zh) | 基于流密码的保留格式加密方法 | |
KR20020041810A (ko) | 대칭-키 암호들을 위한 치환-박스 | |
JP2001517897A (ja) | 暗号流れ解読鍵を発生する方法および装置 | |
CN107257279B (zh) | 一种明文数据加密方法及设备 | |
US8619985B2 (en) | Table splitting for cryptographic processes | |
US20120128153A1 (en) | Symmetric-key encryption method and cryptographic system employing the method | |
JPWO2015146431A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN113472525B (zh) | 基于后量子密码Saber算法的低内存占用密钥生成方法和加解密方法及其系统 | |
JP2015191106A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN114172651B (zh) | 一种sm9公钥加密算法、解密算法的gpu加速实现方法 | |
KR20050078271A (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
Saarinen | The STRIBOBr1 authenticated encryption algorithm | |
JPH0675525A (ja) | 暗号通信装置 | |
CN108270545A (zh) | 一种基于移动互联网的改进的des数据加密算法 | |
Noura et al. | Overview of efficient symmetric cryptography: dynamic vs static approaches | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
JP2015191107A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
EP1587237B1 (en) | Security countermeasures for power analysis attacks | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
CN113162756B (zh) | 一种基于查表的sm4算法实现方法和装置 | |
CN116796345A (zh) | 加解密方法、装置、设备及存储介质 | |
CN115811398A (zh) | 基于动态s盒的分组密码算法、装置、系统及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Implementation Method and Device for SM4 Algorithm Based on Table lookup Granted publication date: 20220211 Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2024980013861 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |