CN113922943B - Sbox电路、运算方法及电子设备 - Google Patents
Sbox电路、运算方法及电子设备 Download PDFInfo
- Publication number
- CN113922943B CN113922943B CN202111151546.3A CN202111151546A CN113922943B CN 113922943 B CN113922943 B CN 113922943B CN 202111151546 A CN202111151546 A CN 202111151546A CN 113922943 B CN113922943 B CN 113922943B
- Authority
- CN
- China
- Prior art keywords
- result
- exclusive
- sbox
- circuit
- operation 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 16
- 238000010295 mobile communication Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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
Abstract
本发明公开了一种SBOX电路、运算方法及电子设备,其中电路包括:M个多次幂运算单元和异或运算单元,M个多次幂运算单元中的每个多次幂运算单元分别用于对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数;异或运算单元用于根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX电路的输出结果。由此,该电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该电路易于实施、成本较低。
Description
技术领域
本发明涉及移动通信技术领域,尤其涉及一种SBOX电路、运算方法及电子设备。
背景技术
随着信息技术的不断发展,更多的密码算法被用来保护信息的安全。在移动通信中,通信数据的安全性尤为重要。SNOW 3G(SNOW 3G Stream Cipher,SNOW 3G加解密算法)作为通信的核心算法被应用于3GPP(3rd Generation Partnership Project,第三代合作伙伴计划)系统的安全体系中,从而保证网络传输的数据不被窃听和篡改,进而满足通信系统的安全需求。然而随着攻击技术的不断发展,针对SNOW 3G算法的密码学分析也不断被提出,例如线性区分攻击、碰撞攻击、能量分析攻击等。其中能量分析攻击作为侧信道攻击的重要分支之一,被广泛应用于密码算法的分析中,对密码算法构成了巨大的威胁,SNOW3G算法也不可避免,因为使用该算法进行加解密时也会泄露功耗信息,而攻击者正是通过这些泄露的功耗等信息对密码算法进行能量攻击分析,从而获得密钥信息。
现有的SNOW 3G算法架构如图1所示,主要由线性反馈移位寄存器和有限状态机两部分组成,其中,有限状态机中的M1和M2为非线性模块SBOX(S box,S盒),且M1由SR SBOX构造实现,M2由SQ SBOX构造实现,而SBOX作为算法的非线性模块,以及其特有的属性,往往是侧信道攻击的必选攻击点。由于掩码防护技术可以在算法级实现,且无需改变密码设备的能量消耗特性,即可使设备的能量消耗与所执行的密码算法中间值之间无依赖关系,因此掩码防护技术被广泛应用于对侧信道攻击的防护上。但是,目前对于SBOX的实现,通常是利用查找表来实现,如图2所示,其为一个8字节进8字节出的逻辑表,如果直接对该表进行全掩码操作以确保中间值不泄露功耗信息,则需要另外构建一个16字节进8字节出的掩码SBOX,这对于硬件资源受限的芯片来说是不可接受的。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种SBOX电路,该电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该电路易于实施、成本较低。
本发明的第二个目的在于提出一种SBOX运算方法。
本发明的第三个目的在于提出一种电子设备。
为达到上述目的,本发明第一方面实施例提出了一种SBOX电路,包括:M个多次幂运算单元,M个多次幂运算单元中的每个多次幂运算单元分别用于对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数;异或运算单元,异或运算单元用于根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX电路的输出结果。
根据本发明实施例的SBOX电路,通过M个多次幂运算单元中的每个多次幂运算单元分别对输入数据进行多次幂运算,以获得M个多次幂运算结果,以及通过异或运算单元根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX电路的输出结果。由此,该电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该电路易于实施、成本较低。
根据本发明的一个实施例,M个多次幂运算结果包括:9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
根据本发明的一个实施例,输入数据为输入的原始数据。
根据本发明的一个实施例,输入数据包括输入掩码和基于输入掩码对输入的原始数据进行处理得到的防护数据。
根据本发明的一个实施例,异或运算单元包括:第一异或运算子电路,第一异或运算子电路用于根据输入掩码以及M个多次幂运算结果进行异或运算,获得第一输出结果;第二异或运算子电路,第二异或运算子电路用于根据防护数据以及M个多次幂运算结果进行异或运算,获得第二输出结果;第三异或运算子电路,第三异或运算子电路用于根据第一输出结果、第二输出结果以及预设数据进行异或运算,获得SBOX电路的输出结果。
根据本发明的一个实施例,当多次幂运算单元为3次幂运算单元时,3次幂运算单元包括:第一运算子电路,第一运算子电路用于根据防护数据进行乘法运算,获得第一运算结果,并根据防护数据和输入掩码进行乘法运算,获得第二运算结果,以及根据第一运算结果和第二运算结果进行异或运算,获得第三运算结果;第二运算子电路,第二运算子电路用于根据输入掩码进行乘法运算,获得第四运算结果,并根据防护数据和输入掩码进行乘法运算,获得第五运算结果,以及根据第四运算结果和第五运算结果进行异或运算,获得第六运算结果;第四异或运算子电路,第四异或运算子电路用于根据第三运算结果和第六运算结果进行异或运算,获得3次幂运算结果。
为达到上述目的,本发明第二方面实施例提出了一种SBOX运算方法,方法包括:对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数;根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX运算结果。
根据本发明实施例的SBOX运算方法,通过对输入数据进行多次幂运算获得M个多次幂运算结果,并根据输入数据以及M个多次幂运算结果进行异或运算获得SBOX运算结果。由此,该方法采用SBOX电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该方法易于实施、成本较低。
根据本发明的一个实施例,M个多次幂运算结果包括:9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
根据本发明的一个实施例,输入数据为输入的原始数据。
根据本发明的一个实施例,输入数据包括输入掩码和基于输入掩码对输入的原始数据进行处理得到的防护数据。
根据本发明的一个实施例,基于输入掩码对输入的原始数据进行处理,包括:对输入掩码和输入的原始数据进行异或运算。
根据本发明的一个实施例,对输入数据进行多次幂运算,包括:对输入掩码和防护数据进行多次幂运算;根据输入数据以及M个多次幂运算结果进行异或运算,包括:根据输入掩码以及M个多次幂运算结果进行异或运算,获得第一输出结果;根据防护数据以及M个多次幂运算结果进行异或运算,获得第二输出结果;根据第一输出结果、第二输出结果以及预设数据进行异或运算,获得SBOX运算结果。
根据本发明的一个实施例,当多次幂运算为3次幂运算时,对输入掩码和防护数据进行多次幂运算,包括:根据防护数据进行乘法运算,获得第一运算结果,并根据防护数据和输入掩码进行乘法运算,获得第二运算结果,以及根据第一运算结果和第二运算结果进行异或运算,获得第三运算结果;根据输入掩码进行乘法运算,获得第四运算结果,并根据防护数据和输入掩码进行乘法运算,获得第五运算结果,以及根据第四运算结果和第五运算结果进行异或运算,获得第六运算结果;根据第三运算结果和第六运算结果进行异或运算,获得3次幂运算结果。
为达到上述目的,本发明第三方面实施例提出了一种电子设备,包括如上述第一方面实施例中的SBOX电路。
根据本发明实施例的电子设备,通过上述的SBOX电路,不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且易于实施、成本较低。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为现有SNOW 3G算法的架构图;
图2为现有SQ SBOX的查找表实现方法;
图3为根据本发明一个实施例的SBOX电路的结构框图;
图4为根据本发明一个实施例的mul(a,b)bit级电路的结构示意图;
图5为根据本发明一个实施例的3次幂运算单元电路结构示意图;
图6为根据本发明一个实施例的SBOX原电路的结构示意图;
图7为根据本发明另一个实施例的SBOX电路的结构框图;
图8为根据本发明一个实施例的3次幂运算单元的掩码电路结构图;
图9为根据本发明一个实施例的SBOX全掩码的结构示意图;
图10为根据本发明一个实施例的SBOX运算方法的流程图;
图11为根据本发明一个实施例的电子设备的方框图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例提出的SBOX电路、运算方法及电子设备。
图3为根据本发明一个实施例的SBOX电路的结构框图。参考图3所示,SBOX电路100包括:M个多次幂运算单元110和异或运算单元120,其中,M个多次幂运算单元110中的每个多次幂运算单元分别用于对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数;异或运算单元120用于根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX电路的输出结果。
具体来说,多次幂运算单元可包括一个或者更多个,具体可根据SBOX电路的实际需求进行选择,每个多次幂运算单元之间可以为相同次幂运算,也可以为不同次幂运算,例如,M个多次幂运算单元110中可以包括3次幂运算单元、9次幂运算单元或者13次幂运算单元等等,当SBOX电路100工作时,先通过不同的多次幂运算单元对输入数据进行多次幂运算,以获得所有多次幂运算单元对应的多次幂运算结果,而后通过异或运算单元120对输入数据和所有多次幂运算结果进行异或运算以获得SBOX电路的输出结果。
根据本发明实施例的SBOX电路,通过M个多次幂运算单元中的每个多次幂运算单元分别对输入数据进行多次幂运算,以获得M个多次幂运算结果,以及通过异或运算单元根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX电路的输出结果。由此,该电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该电路易于实施、成本较低。
可选的,M个多次幂运算结果包括:9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
根据SNOW 3G算法协议可知,SQ SBOX的数学计算公式为g(x)=g49(x)⊕0x25,其中,x为有限域GF(28)上的元素,该有限域GF(28)的不可约多项式为:x8+x6+x5+x3+1,⊕表示异或运算,该计算公式的设计思想基于迪克森(Dickson)多项式构造,迪克森多项式为:g49(x)=x⊕x9⊕x13⊕x15⊕x33⊕x41⊕x45⊕x47⊕x49。
也就是说,根据上述的SQ SBOX数学计算公式,SBOX电路中的M个多次幂运算单元包括:9次幂运算单元、13次幂运算单元、15次幂运算单元、33次幂运算单元、41次幂运算单元、45次幂运算单元、47次幂运算单元和49次幂运算单元,从而输入数据经过多次幂运算后,可以获得对应的9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
针对不同的输入数据可形成具有不同功能的SBOX电路,作为一种示例,输入数据为输入的原始数据,此时可形成能够替代现有查找表方式的SBOX电路,该电路也可称为SBOX原电路,先以输入数据为输入的原始数据,以形成SBOX原电路为例进行说明。
需要说明的是,有限域GF(28)上的乘法运算可表示为mul(a,b)=a*bmod(x8+x6+x5+x3+1),即先进行a*b运算,再进行a*b mod(x8+x6+x5+x3+1),其中mod表示取模运算,a和b均为有限域GF(28)上的元素。如果令a=a[7]x7+a[6]x6+a[5]x5+a[4]x4+a[3]x3+a[2]x2+a[1]x+1,b=x,那么mul(a,b)=(a[7]x8+a[6]x7+a[5]x6+a[4]x5+a[3]x4+a[2]x3+a[1]x2+x)mod(x8+x6+x5+x3+1),该多项式运算用电路实现可简化为:mul(a,b)=(a<<1)^({8{a[7]}}&8’b00011011),其中,a<<1表示移位运算,具体是指a的每一位向左移一位,{8{a[7]}}&8’b00011011表示与运算,具体是指a的每一位与二进制数00011011进行位与运算,(a<<1)^({8{a[7]}}&8’b00011011)表示异或运算,具体是指(a<<1)的每一位与({8{a[7]}}&8’b00011011)进行位异或运算,对应的bit(字节)级电路结构如图4所示。
由此可以看出,有限域GF(28)上的乘法运算可转化为简单的移位运算、与运算以及异或运算。基于该思想,可以推导出有限域GF(28)上任意两个数的乘法运算,假设用mul标记,那么输入数据的2次幂运算可为mul_q2,3次幂运算可为mul_q3,依次类推,可以获得任意次幂的运算单元。
图5为根据本发明一个实施例的3次幂运算单元电路结构示意图,如图5所示,3次幂运算单元mul_q3内部包含有一个1次幂运算单元mul以及一个2次幂运算单元mul_q2,3次幂运算单元mul_q3工作时,先对输入的原始数据in_a进行2次幂运算mul(in_a,in_a),得到2次幂运算结果后再进行乘法运算mul(mul_q2,in_a),最终得到3次幂运算结果mul_q3(in_a),其它多次幂运算单元的电路结构可以参考图5所示进行扩展,这里不再一一说明。
进一步地,基于上述获得的3次幂运算单元的电路结构以及前述的SQ SBOX的数学计算公式,在对相应多次幂运算单元进行扩展后,可以获得如图4所示的SQ SBOX电路架构示意图,即SBOX原电路的结构示意图。
具体来说,以图6所示为例,SBOX原电路包括9次幂运算单元mul_q9、13次幂运算单元mul_q13、15次幂运算单元mul_q15、33次幂运算单元mul_q33、41次幂运算单元mul_q41、45次幂运算单元mul_q45、47次幂运算单元mul_q47以及49次幂运算单元mul_q49,在SBOX原电路工作时,通过9次幂运算单元mul_q9、13次幂运算单元mul_q13、15次幂运算单元mul_q15、33次幂运算单元mul_q33、41次幂运算单元mul_q41、45次幂运算单元mul_q45、47次幂运算单元mul_q47以及49次幂运算单元mul_q49分别对输入的8字节原始数据in_a进行多次幂运算,分别获得相应的多次幂运算结果,而后对输入的原始数据in_a、各次幂运算结果、以及8字节的16进制数0x25进行异或运算,得到输出结果g(in_a)。
由此,该电路能够替代现有的查找表方式,且在此基础上容易进行全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且成本相对于查找表方式较低。
作为另一种示例,输入数据包括输入掩码和基于输入掩码对输入的原始数据进行处理得到的防护数据,此时可形成能够替代现有查找表方式、且具有全掩码防护的SBOX电路,该电路也可称为SBOX掩码电路,下面来详细介绍如何在前述SBOX原电路上进行全掩码防护,以获得SBOX掩码电路。
需要说明的是,在生成SBOX掩码电路时,先确定SBOX掩码电路对应的输入数据,输入数据包括输入掩码和基于输入掩码对输入的原始数据进行处理得到的防护数据。其中,基于输入掩码对输入的原始数据进行处理包括对输入掩码和输入的原始数据进行异或运算。
具体来说,根据数学运算原理可知,对于有限域GF(28)上的平方运算有:a2^b2=(a^b)2,对于有限域GF(28)上的乘法运算有:(a*b)^(c*b)=(a^c)*b。根据有限域运算的特性,可以得知对于平方运算可用布尔异或掩码实现,即(a^m)2^m2=a2,其中a为原始数据,m为掩码,在平方运算中a作为中间值无需直接参与运算,而是用a^m和m参与运算,异或后的结果为a2;对于乘法运算也可用布尔异或掩码实现,即(a^m)*b^(m*b)=(a*b),其中a为原始数据,m为掩码,b为乘法运算数据,用a^m和m参与乘法运算,异或后的结果为a*b。基于此,在生成SBOX掩码电路时,可对输入掩码in_m和输入的原始数据in_a进行异或运算,得到防护数据in_b=in_m^in_a,而后将防护数据in_b和输入掩码in_m作为输入数据。
在一些实施例中,如图7所示,当多次幂运算单元为3次幂运算单元10时,3次幂运算单元10包括:第一运算子电路11、第二运算子电路和12、第四异或运算子电路13,其中,第一运算子电路11用于根据防护数据进行乘法运算,获得第一运算结果,并根据防护数据和输入掩码进行乘法运算,获得第二运算结果,以及根据第一运算结果和第二运算结果进行异或运算,获得第三运算结果;第二运算子电路12用于根据输入掩码进行乘法运算,获得第四运算结果,并根据防护数据和输入掩码进行乘法运算,获得第五运算结果,以及根据第四运算结果和第五运算结果进行异或运算,获得第六运算结果;第四异或运算子电路13用于根据第三运算结果和第六运算结果进行异或运算,获得3次幂运算结果。
具体来说,图8为3次幂运算单元的掩码电路结构图,如图8所示,3次幂运算单元第一运算子电路11包括两个一次幂运算单元mul、两个2次幂运算单元mul_q2以及一个异或运算单元,第二运算子电路12包括两个一次幂运算单元mul、两个2次幂运算单元mul_q2以及一个异或运算单元,第四异或运算子电路13包括一个异或运算单元。
在3次幂运算单元工作时,先对防护数据in_b进行2次幂运算mul_q2(in_b),再进行乘法运算mul(mul_q2(in_b),in_b),即进行3次幂运算mul_q3(in_b),得到第一运算结果,同时先对输入掩码in_m进行2次幂运算mul_q2(in_m),再与防护数据in_b进行乘法运算mul(mul_q2(in_m),in_b),得到第二运算结果,而后对第一运算结果和第二运算结果进行异或运算,得到第三运算结果记为mul_q3_m1(in_b,in_m);同时,先对输入掩码in_m进行2次幂运算mul_q2(in_m),再进行乘法运算mul(mul_q2(in_m),in_m),即进行3次幂运算mul_q3(in_m),得到第四运算结果,同时先对防护数据in_b进行2次幂运算mul_q2(in_b),再与输入掩码in_m进行乘法运算mul(mul_q2(in_b),in_m),得到第五运算结果,而后对第四运算结果和第五运算结果进行异或运算,得到第六运算结果记为mul_q3_m2(in_m,in_b)。最后,对第三运算结果mul_q3_m1(in_b,in_m)和第六运算结果mul_q3_m2(in_m,in_b)进行异或运算,获得原始数据in_a的3次幂运算结果mul_q3(in_a)。从图7可以看出,整个运算过程原始数据in_a未直接参与,而是在最后运算结束后才进行脱掩处理,即将第三运算结果mul_q3_m1(in_b,in_m)和第六运算结果mul_q3_m2(in_m,in_b)进行异或运算得到mul_q3(in_a),从而保证了在运算过程中中间值in_a不泄露任何功耗信息,因而可以有效抵抗侧信道攻击。
类似地,根据3次幂的掩码电路实现方法可以推导出更多次幂mul_qn的掩码电路结构,其中n≥3,从而依据对应的掩码电路结构可以获得具有全掩码防护的输入数据的M个多次幂运算结果。
在一些实施例中,继续参考图7所示,异或运算单元120包括:第一异或运算子电路121、第二异或运算子电路122、第三异或运算子电路123,其中,第一异或运算子电路121用于根据输入掩码以及M个多次幂运算结果进行异或运算,获得第一输出结果;第二异或运算子电路122用于根据防护数据以及M个多次幂运算结果进行异或运算,获得第二输出结果;第三异或运算子电路123用于根据第一输出结果、第二输出结果以及预设数据进行异或运算,获得SBOX电路的输出结果。
具体来说,SBOX电路的M个多次幂运算单元中的每个多次幂运算单元分别对输入掩码进行多次幂运算,以获得输入掩码对应的M个多次幂运算结果,并将输入掩码和所获得的M个多次幂运算结果进行异或运算从而获得第一输出结果,SBOX电路的M个多次幂运算单元中的每个多次幂运算单元分别对防护数据进行多次幂运算,以获得防护对应的M个多次幂运算结果,并将防护数据和所获得的M个多次幂运算结果进行异或运算从而获得第而输出结果,根据第一输出结果、第二输出结果以及预设数据进行异或运算,获得SBOX电路的输出结果。
进一步地,基于获得的mul_qn的掩码电路以及前述的SQ SBOX的数学计算公式,可获得SBOX全掩码电路,也即在SBOX原电路的基础上进行全掩码防护得到SBOX全掩码电路,具体如图9所示,该电路包括9次幂运算单元mul_q9_m2、13次幂运算单元mul_q13_m2、15次幂运算单元mul_q15_m2、33次幂运算单元mul_q33_m2、41次幂运算单元mul_q41_m2、45次幂运算单元mul_q45_m2、47次幂运算单元mul_q47_m2以及49次幂运算单元mul_q49_m2。
在SBOX全掩码电路工作过程中,其输入可为8字节输入掩码in_m和输入掩码in_m对原始数据in_a进行异或运算后的8字节防护数据in_b,输出为8字节的输出结果g(in_a)。具体运算过程是:先对输入掩码in_m分别进行9次幂运算mul_q9_m2、13次幂运算mul_q13_m2、15次幂运算mul_q15_m2、33次幂运算mul_q33_m2、41次幂运算mul_q41_m2、45次幂运算mul_q45_m2、47次幂运算mul_q47_m2和49次幂运算mul_q49_m2,得到多次幂运算结果,并将输入掩码in_m以及各次幂运算结果进行异或运算,得到第一输出结果g49(in_m)=in_m⊕mul_q9_m2⊕mul_q13_m2⊕mul_q15_m2⊕mul_q33_m2⊕mul_q41_m2⊕mul_q45_m2⊕mul_q47_m2⊕mul_q49_m2;同时,对防护数据in_b分别进行9次幂运算mul_q9_m1、13次幂运算mul_q13_m1、15次幂运算mul_q15_m1、33次幂运算mul_q33_m1、41次幂运算mul_q41_m1、45次幂运算mul_q45_m1、47次幂运算mul_q47_m1和49次幂运算mul_q49_m1,得到多次幂运算结果,并将防护掩码in_b以及各次幂运算结果进行异或运算,得到第二输出结果g49(in_b)=in_b⊕mul_q9_m1⊕mul_q13_m1⊕mul_q15_m1⊕mul_q33_m1⊕mul_q41_m1⊕mul_q45_m1⊕mul_q47_m1⊕mul_q49_m1。而后,根据第一输出结果g49(in_m)、第二输出结果g49(in_b)以及预设数据(0x25,即8位16进制数)进行异或运算,得到输出结果g(in_a)。
由于输入的原始数据in_a在整个运算过程中均未出现,因此攻击者通过侧信道攻击是无法获得原始数据in_a泄漏的功耗信息,也就无法对原始数据in_a进行攻击,因此该掩码电路可以有效抵抗侧信道攻击,从而提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且相对查找表方式成本低。
需要说明的是,上述示例以一个输入掩码为例进行说明,也可以增加输入掩码的数量,以获得能够抵抗高阶侧信道攻击的掩码电路。
根据本发明实施例的SBOX电路,通过M个多次幂运算单元中的每个多次幂运算单元分别对输入数据进行多次幂运算,以获得M个多次幂运算结果,以及通过异或运算单元根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX电路的输出结果。由此,该电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该电路易于实施、成本较低。
图10为根据本发明一个实施例的SBOX运算方法的流程图。参考图3所示,该SBOX运算方法可包括以下步骤:
步骤S101,对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数。
步骤S102,根据输入数据以及M个多次幂运算结果进行异或运算,获得SBOX运算结果。
在一些实施例中,M个多次幂运算结果包括:9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
在一些实施例中,输入数据为输入的原始数据。
在一些实施例中,输入数据包括输入掩码和基于输入掩码对输入的原始数据进行处理得到的防护数据。
在一些实施例中,基于输入掩码对输入的原始数据进行处理,包括:对输入掩码和输入的原始数据进行异或运算。
在一些实施例中,对输入数据进行多次幂运算,包括:对输入掩码和防护数据进行多次幂运算;根据输入数据以及M个多次幂运算结果进行异或运算,包括:根据输入掩码以及M个多次幂运算结果进行异或运算,获得第一输出结果;根据防护数据以及M个多次幂运算结果进行异或运算,获得第二输出结果;根据第一输出结果、第二输出结果以及预设数据进行异或运算,获得SBOX运算结果。
在一些实施例中,当多次幂运算为3次幂运算时,对输入掩码和防护数据进行多次幂运算,包括:根据防护数据进行乘法运算,获得第一运算结果,并根据防护数据和输入掩码进行乘法运算,获得第二运算结果,以及根据第一运算结果和第二运算结果进行异或运算,获得第三运算结果;根据输入掩码进行乘法运算,获得第四运算结果,并根据防护数据和输入掩码进行乘法运算,获得第五运算结果,以及根据第四运算结果和第五运算结果进行异或运算,获得第六运算结果;根据第三运算结果和第六运算结果进行异或运算,获得3次幂运算结果。
需要说明的是,本申请中关于SBOX运算方法的描述,请参考本申请中关于SBOX电路的描述,具体这里不再赘述。
根据本发明实施例的SBOX运算方法,通过对输入数据进行多次幂运算获得M个多次幂运算结果,并根据输入数据以及M个多次幂运算结果进行异或运算获得SBOX运算结果。由此,该方法采用SBOX电路不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且该方法易于实施、成本较低。
图11为根据本发明一个实施例的电子设备的方框图,参考图11所示,该电子设备1000包括上述的SBOX电路100。
需要说明的是,本申请的电子设备可以为通信芯片或移动终端,具体这里不做限制。
根据本发明实施例的电子设备,通过上述的SBOX电路,不仅能够替代现有的查找表方式,而且易于实现全掩码防护,提升SNOW 3G算法的抗侧信道攻击能力,为移动通信提供更高的安全防护,保障通信的安全性和用户的隐私,且易于实施、成本较低。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (14)
1.一种SBOX电路,其特征在于,包括:
M个多次幂运算单元,所述M个多次幂运算单元中的每个多次幂运算单元分别用于对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数;
异或运算单元,所述异或运算单元用于根据所述输入数据以及所述M个多次幂运算结果进行异或运算,获得所述SBOX电路的输出结果。
2.根据权利要求1所述的SBOX电路,其特征在于,所述M个多次幂运算结果包括:9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
3.根据权利要求1所述的SBOX电路,其特征在于,所述输入数据为输入的原始数据。
4.根据权利要求1所述的SBOX电路,其特征在于,所述输入数据包括输入掩码和基于所述输入掩码对输入的原始数据进行处理得到的防护数据。
5.根据权利要求4所述的SBOX电路,其特征在于,所述异或运算单元包括:
第一异或运算子电路,所述第一异或运算子电路用于根据所述输入掩码以及所述M个多次幂运算结果进行异或运算,获得第一输出结果;
第二异或运算子电路,所述第二异或运算子电路用于根据所述防护数据以及所述M个多次幂运算结果进行异或运算,获得第二输出结果;
第三异或运算子电路,所述第三异或运算子电路用于根据所述第一输出结果、所述第二输出结果以及预设数据进行异或运算,获得所述SBOX电路的输出结果。
6.根据权利要求5所述的SBOX电路,其特征在于,当所述多次幂运算单元为3次幂运算单元时,所述3次幂运算单元包括:
第一运算子电路,所述第一运算子电路用于根据所述防护数据进行乘法运算,获得第一运算结果,并根据所述防护数据和所述输入掩码进行乘法运算,获得第二运算结果,以及根据所述第一运算结果和所述第二运算结果进行异或运算,获得第三运算结果;
第二运算子电路,所述第二运算子电路用于根据所述输入掩码进行乘法运算,获得第四运算结果,并根据所述防护数据和所述输入掩码进行乘法运算,获得第五运算结果,以及根据所述第四运算结果和所述第五运算结果进行异或运算,获得第六运算结果;
第四异或运算子电路,所述第四异或运算子电路用于根据所述第三运算结果和所述第六运算结果进行异或运算,获得3次幂运算结果。
7.一种SBOX运算方法,其特征在于,所述方法包括:
对输入数据进行多次幂运算,获得M个多次幂运算结果,其中,M为正整数;
根据所述输入数据以及所述M个多次幂运算结果进行异或运算,获得SBOX运算结果。
8.根据权利要求7所述的SBOX运算方法,其特征在于,所述M个多次幂运算结果包括:9次幂运算结果、13次幂运算结果、15次幂运算结果、33次幂运算结果、41次幂运算结果、45次幂运算结果、47次幂运算结果和49次幂运算结果。
9.根据权利要求7所述的SBOX运算方法,其特征在于,所述输入数据为输入的原始数据。
10.根据权利要求7所述的SBOX运算方法,其特征在于,所述输入数据包括输入掩码和基于所述输入掩码对输入的原始数据进行处理得到的防护数据。
11.根据权利要求10所述的SBOX运算方法,其特征在于,基于所述输入掩码对输入的原始数据进行处理,包括:
对所述输入掩码和所述输入的原始数据进行异或运算。
12.根据权利要求10或11所述的SBOX运算方法,其特征在于,所述对输入数据进行多次幂运算,包括:
对所述输入掩码和所述防护数据进行多次幂运算;
根据所述输入数据以及所述M个多次幂运算结果进行异或运算,包括:
根据所述输入掩码以及所述M个多次幂运算结果进行异或运算,获得第一输出结果;
根据所述防护数据以及所述M个多次幂运算结果进行异或运算,获得第二输出结果;
根据所述第一输出结果、所述第二输出结果以及预设数据进行异或运算,获得所述SBOX运算结果。
13.根据权利要求11所述的SBOX运算方法,其特征在于,当所述多次幂运算为3次幂运算时,对所述输入掩码和所述防护数据进行多次幂运算,包括:
根据所述防护数据进行乘法运算,获得第一运算结果,并根据所述防护数据和所述输入掩码进行乘法运算,获得第二运算结果,以及根据所述第一运算结果和所述第二运算结果进行异或运算,获得第三运算结果;
根据所述输入掩码进行乘法运算,获得第四运算结果,并根据所述防护数据和所述输入掩码进行乘法运算,获得第五运算结果,以及根据所述第四运算结果和所述第五运算结果进行异或运算,获得第六运算结果;
根据所述第三运算结果和所述第六运算结果进行异或运算,获得3次幂运算结果。
14.一种电子设备,其特征在于,包括根据权利要求1-6中任一项所述的SBOX电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111151546.3A CN113922943B (zh) | 2021-09-29 | 2021-09-29 | Sbox电路、运算方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111151546.3A CN113922943B (zh) | 2021-09-29 | 2021-09-29 | Sbox电路、运算方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113922943A CN113922943A (zh) | 2022-01-11 |
CN113922943B true CN113922943B (zh) | 2023-09-19 |
Family
ID=79237195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111151546.3A Active CN113922943B (zh) | 2021-09-29 | 2021-09-29 | Sbox电路、运算方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113922943B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116208317B (zh) * | 2023-05-05 | 2023-07-07 | 上海芯联芯智能科技有限公司 | 一种抗侧信道攻击的方法及加解密器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728634A (zh) * | 2004-06-19 | 2006-02-01 | 三星电子株式会社 | 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备 |
CN1758591A (zh) * | 2004-01-19 | 2006-04-12 | 三星电子株式会社 | 在加密系统中处理已屏蔽数据的方法、电路和程序产品 |
CN101095102A (zh) * | 2004-11-22 | 2007-12-26 | 阿纳洛格装置公司 | 压缩伽罗瓦域计算系统 |
CN101542558A (zh) * | 2007-05-30 | 2009-09-23 | 松下电器产业株式会社 | 加密装置、解密装置、加密方法及集成电路 |
EP2296307A1 (fr) * | 2009-09-04 | 2011-03-16 | Oberthur Technologies | Procédé de traitement cryptographique de données sécurisé contre les attaques par fautes |
CN103634101A (zh) * | 2013-12-03 | 2014-03-12 | 中国电子器材总公司 | 加密处理方法及设备 |
CN103647638A (zh) * | 2013-12-03 | 2014-03-19 | 北京中电华大电子设计有限责任公司 | 一种抵抗侧信道攻击的des掩码方法 |
CN104579635A (zh) * | 2015-01-27 | 2015-04-29 | 聚辰半导体(上海)有限公司 | 可循环迭代抗侧信道攻击的des系统及实现可重映射sbox方法 |
CN110278070A (zh) * | 2018-03-13 | 2019-09-24 | 中国科学技术大学 | 一种sm4算法中s盒的实现方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006058561A1 (en) * | 2004-12-01 | 2006-06-08 | Telecom Italia S.P.A. | Method and related device for hardware-oriented conversion between arithmetic and boolean random masking |
US9875377B2 (en) * | 2014-03-31 | 2018-01-23 | Stmicroelectronics S.R.L. | Encryption device of a substitution-box type, and corresponding encryption method and computer program product |
EP3422176A1 (en) * | 2017-06-28 | 2019-01-02 | Gemalto Sa | Method for securing a cryptographic process with sbox against high-order side-channel attacks |
-
2021
- 2021-09-29 CN CN202111151546.3A patent/CN113922943B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758591A (zh) * | 2004-01-19 | 2006-04-12 | 三星电子株式会社 | 在加密系统中处理已屏蔽数据的方法、电路和程序产品 |
CN1728634A (zh) * | 2004-06-19 | 2006-02-01 | 三星电子株式会社 | 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备 |
CN101095102A (zh) * | 2004-11-22 | 2007-12-26 | 阿纳洛格装置公司 | 压缩伽罗瓦域计算系统 |
CN101542558A (zh) * | 2007-05-30 | 2009-09-23 | 松下电器产业株式会社 | 加密装置、解密装置、加密方法及集成电路 |
EP2296307A1 (fr) * | 2009-09-04 | 2011-03-16 | Oberthur Technologies | Procédé de traitement cryptographique de données sécurisé contre les attaques par fautes |
CN103634101A (zh) * | 2013-12-03 | 2014-03-12 | 中国电子器材总公司 | 加密处理方法及设备 |
CN103647638A (zh) * | 2013-12-03 | 2014-03-19 | 北京中电华大电子设计有限责任公司 | 一种抵抗侧信道攻击的des掩码方法 |
CN104579635A (zh) * | 2015-01-27 | 2015-04-29 | 聚辰半导体(上海)有限公司 | 可循环迭代抗侧信道攻击的des系统及实现可重映射sbox方法 |
CN110278070A (zh) * | 2018-03-13 | 2019-09-24 | 中国科学技术大学 | 一种sm4算法中s盒的实现方法及装置 |
Non-Patent Citations (3)
Title |
---|
"A Novel Trojan Side Channel For Attacking Masking";Yulin Zhao;《2018 12th IEEE International Conference on Anti-counterfeiting, Security, and Identification (ASID)》;全文 * |
AES快速算法的扩展指令集实现;封斌等;《华南理工大学学报(自然科学版)》(第06期);全文 * |
针对掩码AES的选择明文和二阶DPA组合攻击;王飞宇等;《密码学报》(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113922943A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8595513B2 (en) | Method and system for protecting a cryptography device | |
Noura et al. | A new efficient lightweight and secure image cipher scheme | |
JP6406350B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN106233660B (zh) | 加密处理设备、加密处理方法和程序 | |
CN108352981B (zh) | 被布置用于计算目标块加密的密码设备 | |
Teh et al. | Unkeyed hash function based on chaotic sponge construction and fixed-point arithmetic | |
WO2009044150A1 (en) | Aes algorithm processing method and processors resistant to differential power analysis attack | |
EP3363142A1 (en) | A cryptographic device and an encoding device | |
CN113922943B (zh) | Sbox电路、运算方法及电子设备 | |
CN113078997A (zh) | 一种基于轻量级密码算法的终端保护方法 | |
WO2015146430A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
KR20050076015A (ko) | 유한체 곱셈기 | |
Li et al. | Related-tweak statistical saturation cryptanalysis and its application on QARMA | |
Ou et al. | Research on a high‐order AES mask anti‐power attack | |
CN112910630B (zh) | 扩展密钥的置换方法及装置 | |
Gupta et al. | Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes | |
KR20190037980A (ko) | 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템 | |
Werner et al. | Implementing authenticated encryption algorithm MK-3 on FPGA | |
JP2019504343A (ja) | 計算デバイス及び方法 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
Kim et al. | Protecting secret keys in networked devices with table encoding against power analysis attacks | |
Nga et al. | On the improving diffusion layer and performance of AES algorithm | |
Kushwah et al. | Chaotic Map based Block Encryption | |
Wang et al. | An area-efficient shuffling scheme for AES implementation on FPGA |
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 |