CN103391186A - 一种实现aes算法中s盒和逆s盒替换的方法 - Google Patents

一种实现aes算法中s盒和逆s盒替换的方法 Download PDF

Info

Publication number
CN103391186A
CN103391186A CN2013102618095A CN201310261809A CN103391186A CN 103391186 A CN103391186 A CN 103391186A CN 2013102618095 A CN2013102618095 A CN 2013102618095A CN 201310261809 A CN201310261809 A CN 201310261809A CN 103391186 A CN103391186 A CN 103391186A
Authority
CN
China
Prior art keywords
box
minterm
expression
expressions
function
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
Application number
CN2013102618095A
Other languages
English (en)
Other versions
CN103391186B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201310261809.5A priority Critical patent/CN103391186B/zh
Publication of CN103391186A publication Critical patent/CN103391186A/zh
Application granted granted Critical
Publication of CN103391186B publication Critical patent/CN103391186B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种实现AES算法中S盒和逆S盒替换的方法,根据AES算法标准中给出的S盒与逆S盒,得到16个真值表;将每个真值表都表示为一个最小项表达式;采用改进的Q-M化简法对每个最小项表达式进行逻辑化简得到化简后的函数表达式,在化简后得到的函数表达式中,将表达式改写为“与非与非”即为“与或”的两次取反的形式;将改写后的函数表达式之间能够公用的逻辑电路单元单独提出来,使得这些函数表达式实现电路资源得以公用,上述公用单元提取后的表达式与提取前的表达式相比,公用单元提取后的表达式对应的电路面积变小,扇出变少,从而使得延时减小,本发明相比于普遍使用的查表法,其延时减小了8.5%,面积减小了27.4%,功耗减小了17%。

Description

一种实现AES算法中S盒和逆S盒替换的方法
技术领域
本发明属于信息安全技术领域,特别涉及一种实现AES算法中S盒和逆S盒替换的方法。
背景技术
AES算法是一种对称分组密码算法,应用于金融、电子政务、电子商务及国民经济的各个领域,目前已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机、加密U盘、硬盘以及正在研究的金融IC卡等安全产品。而AES算法中的S盒替换与逆S盒替换是该算法唯一的非线性变换,因此S盒替换与逆S盒替换是AES算法的核心部分,同时这也是提高AES算法性能的主要瓶颈。
现有的S盒替换与逆S盒替换普遍采用的是查表法实现。所谓查表法中的“表”指的是AES算法中的两个盒子,分别用于加密时的S盒替换与解密时的逆S盒替换。当前,普遍的查表法不管是S盒替换还是逆S盒替换,都是根据输入值通过AES算法标准规定的表格来查出对应的输出值。这种查表法原理简单,实现容易,但是这种方法实际上是一个大的256选一多路选择器,其电路的延时较长,面积较大,是一种低效的实现方式。
发明内容
为了克服上述现有技术的缺点,本发明的目的在于提供一种实现AES算法中S盒和逆S盒替换的方法,减小了时延、面积和功耗。
为了实现上述目的,本发明采用的技术方案是:
一种实现AES算法中S盒和逆S盒替换的方法,包括如下步骤:
步骤一,根据AES算法标准中给出的S盒与逆S盒,写出输出变量的真值表,由于S盒与逆S盒都是8位输出变量,可以得到16个真值表;
步骤二,将每个真值表都表示为一个最小项表达式,得到16个最小项表达式;
步骤三,对每个最小项表达式进行逻辑化简得到化简后的函数表达式;
步骤四,在化简后得到的16个函数表达式中,将表达式改写为“与非与非”即为“与或”的两次取反的形式;
步骤五,将改写后的16个函数表达式之间能够公用的逻辑电路单元单独提出来,使得这些函数表达式实现电路资源得以公用,上述公用单元提取后的表达式与提取前的表达式相比,公用单元提取后的表达式对应的电路面积变小,扇出变少,从而使得延时减小。
所述步骤三中逻辑化简采用改进的Q-M化简法实现,具体包括如下步骤:
第一步:将函数表示成最小项表达式;
第二步:找出函数的全部质蕴涵项;
第三步:找出必要质蕴涵项,输出结果;
第四步:去除必要质蕴涵项以及各个必要质蕴涵项所对应的最小项后,得到一个新的表;
第五步:在新的表中找到包含最小项个数最多的那一个质蕴涵项,若是有多个质蕴涵项包含最小项个数最多,则任选其一,输出这个质蕴涵项;
第六步:去除第五步输出的这个质蕴涵项以及该质蕴涵项所对应的最小项后,得到一个新的表;
第七步:重复第五步和第六步,直到没有能够再合并的最小项为止,循环结束。
与现有技术相比,本发明的有益效果是:在优化Q-M化简法基础上,提出了一种实现AES算法中S盒替换和逆S盒替换的表达式方法,用C语言编程实现了改进的Q-M化简法,借助于计算机来求得函数表达式的逻辑化简结果,这种表达式方法相比于普遍使用的查表法,其延时减小了8.5%,面积减小了27.4%,功耗减小了17%。
附图说明
图1是按照本发明一种有效实现AES算法中S盒替换与逆S盒替换的电路结构图。
具体实施方式
下面结合图1和实施例详细说明本发明的实施方式。
本发明利用改进的Q-M化简法,求得AES算法中S盒替换和逆S盒替换的函数表达式的逻辑化简结果,从而有效实现了AES算法中S盒替换和逆S盒替换。
具体包括如下步骤:
1)据AES算法标准中给出的S盒与逆S盒,写出输出变量的真值表,由于S盒与逆S盒都是8位输出变量,可以得到16个真值表;
2)将每个真值表都表示为一个最小项表达式,得到16个最小项表达式;
3)采用改进的Q-M化简法对每个最小项表达式进行逻辑化简得到化简后的函数表达式。
由于S盒与逆S盒的输入变量有8个,通过手工进行逻辑化简获取S盒替换和逆S盒替换的表达式几乎是做不到的,因此用C语言编程实现了改进的Q-M化简法,借助于计算机来求得函数表达式的逻辑化简结果。
4)在化简后得到的16个函数表达式中,将表达式改写为“与非与非”即为“与或”的两次取反的形式而不是单纯的“与或”的形式。这是基于“与非”门的延时要小于“与”门的延时的事实,本发明的实验结果也验证了这一点。
以S盒替换的S-Box函数表达式SBox[7:0]为例,设输入变量为a,其逻辑表达式如下:
SBox[7]=~((~(~a[7]&~a[6]&~a[5]&~a[4]&a[3]&a[2]&~a[0]))&(~(a[6]&~a[5]&a[4]&~a[3]&a[2]&a[1]&~a[0]))&……&(~(~a[7]&a[6]&a[5]&a[4]&~a[1]&a[0])))
SBox[6]=~((~(a[7]&a[6]&~a[5]&~a[4]&~a[3]&a[2]&a[1]&a[0]))&(~(~a[7]&~a[5]&~a[4]&~a[3]&a[2]&a[1]&~a[0]))&……
&(~(a[7]&~a[6]&a[5]&a[4]&~a[1]&a[0])))
.
.
.
SBox[1]=~((~(a[7]&a[6]&~a[5]&~a[4]&~a[3]&~a[2]&~a[1]&~a[0]))&(~(a[6]&~a[5]&a[4]&a[3]&~a[2]&a[1]&~a[0]))&……
&(~(~a[7]&a[6]&a[3]&~a[2]&a[1]&~a[0])))
SBox[0]=~((~(a[7]&~a[6]&~a[5]&a[4]&~a[3]&~a[2]&~a[1]&a[0]))&(~(~a[7]&~a[6]&~a[5]&~a[3]&a[2]&~a[1]&a[0]))&……&(~(a[7]&a[6]&a[5]&a[3]&~a[2]&~a[0])))
5)通过研究这16个函数表达式,发现这些函数表达式之间含有很多可以公用的逻辑电路单元,因此,将这些能够公用的逻辑电路单元单独提出来,使得这些函数表达式实现电路资源得以公用。
下面是单独提出来的公用逻辑电路单元,其中,a为S盒与逆S盒的输入变量,变量c,d,e,f,g,h为中间变量。
c[0]=~a[1]&~a[0],c[1]=~a[1]&a[0],c[2]=a[1]&~a[0],c[3]=a[1]&a[0],
d[0]=~a[3]&~a[2],d[1]=~a[3]&a[2],d[2]=a[3]&~a[2],d[3]=a[3]&a[2],
e[0]=~a[5]&~a[4],e[1]=~a[5]&a[4],e[2]=a[5]&~a[4],e[3]=a[5]&a[4],
f[0]=~a[7]&~a[6],f[1]=~a[7]&a[6],f[2]=a[7]&~a[6],f[3]=a[7]&a[6],
g[0]=d[0]&c[0],g[1]=d[0]&c[1],g[2]=d[0]&c[2],g[3]=d[0]&c[3],
g[4]=d[1]&c[0],g[5]=d[1]&c[1],g[6]=d[1]&c[2],g[7]=d[1]&c[3],
g[8]=d[2]&c[0],g[9]=d[2]&c[1],g[10]=d[2]&c[2],g[11]=d[2]&c[3],
g[12]=d[3]&c[0],g[13]=d[3]&c[1],g[14]=d[3]&c[2],g[15]=d[3]&c[3],
h[0]=f[0]&e[0],h[1]=f[0]&e[1],h[2]=f[0]&e[2],h[3]=f[0]&e[3],
h[4]=f[1]&e[0],h[5]=f[1]&e[1],h[6]=f[1]&e[2],h[7]=f[1]&e[3],
h[8]=f[2]&e[0],h[9]=f[2]&e[1],h[10]=f[2]&e[2],h[11]=f[2]&e[3],
h[12]=f[3]&e[0],h[13]=f[3]&e[1],h[14]=f[3]&e[2],h[15]=f[3]&e[3]。
基于这些公用单元,对S盒替换的S-Box函数表达式SBox[7:0]进一步化简,得到其表达式如下,
SBox[7]=~((~(h[0]&d[3]&~a[0]))&(~(a[6]&e[1]&g[6]))&……&(~(h[7]&c[1])))
SBox[6]=~((~(h[12]&g[7]))&(~(~a[7]&e[0]&g[6]))&……&(~(h[11]&c[1])))
.
.
.
SBox[1]=~((~(h[12]&g[0]))&(~(a[6]&e[1]&g[10]))&……&(~(f[1]&g[10])))
SBox[0]=~((~(h[9]&g[1]))&(~(f[0]&~a[5]&g[5]))&……&(~(f[3]&a[5]&d[2]&~a[0])))
上述公用单元提取后的表达式与提取前的表达式相比,公用单元提取后的表达式对应的电路面积变小,扇出变少,从而使得延时减小。
用上述改进Q-M化简法得到S盒替换的8个函数表达式和逆S盒替换的8个函数表达式,分别用于加密和解密模式,电路结构如图1所示,S盒替换与逆S盒替换的输入变量为a,输出变量为b。通过MUX二选一的选择信号Encrypt进行选择,Encrypt为1时,即为加密模式,输出变量b选择输出S盒函数表达式,而Encrypt为0时,即为解密模式,输出变量b选择输出逆S盒函数表达式。
本发明对于表达式结果的功能验证,将8位输入变量a由00000000遍历到11111111的这256个值进行了功能性的完全验证,结果与AES算法标准的S盒和逆S盒完全一致。由此说明得到化简后的表达式是正确的,本发明是可行的。同时,本发明基于SMIC0.18um工艺对改进Q-M化简法得到的实现S盒替换与逆S盒替换的16个函数表达式进行综合,相比于普遍应用的查表法,本发明使得延时减小了8.5%,面积减小了27.4%,功耗减小了17%。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (2)

1.一种实现AES算法中S盒和逆S盒替换的方法,其特征在于,包括如下步骤:
步骤一,根据AES算法标准中给出的S盒与逆S盒,写出输出变量的真值表,由于S盒与逆S盒都是8位输出变量,可以得到16个真值表;
步骤二,将每个真值表都表示为一个最小项表达式,得到16个最小项表达式;
步骤三,对每个最小项表达式进行逻辑化简得到化简后的函数表达式;
步骤四,在化简后得到的16个函数表达式中,将表达式改写为“与非与非”即为“与或”的两次取反的形式;
步骤五,将改写后的16个函数表达式之间能够公用的逻辑电路单元单独提出来,使得这些函数表达式实现电路资源得以公用,上述公用单元提取后的表达式与提取前的表达式相比,公用单元提取后的表达式对应的电路面积变小,扇出变少,从而使得延时减小。
2.根据权利要求1所述的实现AES算法中S盒和逆S盒替换的方法,其特征在于,所述步骤三中逻辑化简采用改进的Q-M化简法实现,具体包括如下步骤:
第一步:将函数表示成最小项表达式;
第二步:找出函数的全部质蕴涵项;
第三步:找出必要质蕴涵项,输出结果;
第四步:去除必要质蕴涵项以及各个必要质蕴涵项所对应的最小项后,得到一个新的表;
第五步:在新的表中找到包含最小项个数最多的那一个质蕴涵项,若是有多个质蕴涵项包含最小项个数最多,则任选其一,输出这个质蕴涵项;
第六步:去除第五步输出的这个质蕴涵项以及该质蕴涵项所对应的最小项后,得到一个新的表;
第七步:重复第五步和第六步,直到没有能够再合并的最小项为止,循环结束。
CN201310261809.5A 2013-06-27 2013-06-27 一种实现aes算法中s盒和逆s盒替换的方法 Expired - Fee Related CN103391186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310261809.5A CN103391186B (zh) 2013-06-27 2013-06-27 一种实现aes算法中s盒和逆s盒替换的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310261809.5A CN103391186B (zh) 2013-06-27 2013-06-27 一种实现aes算法中s盒和逆s盒替换的方法

Publications (2)

Publication Number Publication Date
CN103391186A true CN103391186A (zh) 2013-11-13
CN103391186B CN103391186B (zh) 2016-02-24

Family

ID=49535351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310261809.5A Expired - Fee Related CN103391186B (zh) 2013-06-27 2013-06-27 一种实现aes算法中s盒和逆s盒替换的方法

Country Status (1)

Country Link
CN (1) CN103391186B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092533A (zh) * 2014-07-02 2014-10-08 上海交通大学 一种抵御能量分析攻击的aes对称互补型硬件实现方法
CN104683096A (zh) * 2013-11-29 2015-06-03 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及***
EP3716524A3 (en) * 2019-03-29 2020-12-09 Intel Corporation Ultra-low latency advanced encryption standard

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764686A (zh) * 2010-01-11 2010-06-30 石家庄开发区冀科双实科技有限公司 一种用于网络与信息安全的加密方法
CN102664730A (zh) * 2012-05-02 2012-09-12 西安电子科技大学 基于高级加密标准aes的128比特位密钥扩展方法
CN103152165A (zh) * 2013-01-25 2013-06-12 西安电子科技大学 基于fpga的超高速aes处理器及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764686A (zh) * 2010-01-11 2010-06-30 石家庄开发区冀科双实科技有限公司 一种用于网络与信息安全的加密方法
CN102664730A (zh) * 2012-05-02 2012-09-12 西安电子科技大学 基于高级加密标准aes的128比特位密钥扩展方法
CN103152165A (zh) * 2013-01-25 2013-06-12 西安电子科技大学 基于fpga的超高速aes处理器及其实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张冰等: "逻辑函数的另一种化简方法—Q-M 化简法", 《新疆教育学院学报》 *
胡春燕等: "基于AES加密算法的S盒优化设计", 《微计算机信息》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683096A (zh) * 2013-11-29 2015-06-03 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及***
CN104683096B (zh) * 2013-11-29 2017-12-22 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及***
CN104092533A (zh) * 2014-07-02 2014-10-08 上海交通大学 一种抵御能量分析攻击的aes对称互补型硬件实现方法
CN104092533B (zh) * 2014-07-02 2017-07-14 上海交通大学 一种抵御能量分析攻击的aes对称互补型硬件实现方法
EP3716524A3 (en) * 2019-03-29 2020-12-09 Intel Corporation Ultra-low latency advanced encryption standard
US11444748B2 (en) 2019-03-29 2022-09-13 Intel Corporation Ultra-low latency advanced encryption standard

Also Published As

Publication number Publication date
CN103391186B (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
Groß et al. Generic low-latency masking in hardware
CN103905462B (zh) 可抵御差分功耗分析攻击的加密处理装置及方法
CN103067155A (zh) 一种防止基于功耗分析的des算法攻击的方法及测试电路
CN103986571B (zh) 一种智能卡多核处理器***及其防御差分功耗分析的方法
CN102880840A (zh) 一种用于防御攻击的电流型物理不可克隆函数电路
CN104065473A (zh) Sm4分组密码算法s盒的紧凑实现方法
CN106487497A (zh) 对rijndael算法的dpa保护
CN107154843A (zh) 一种抗功耗攻击的sm4算法的硬件实现***
CN106487499A (zh) Rijndael算法的保护
CN103391186B (zh) 一种实现aes算法中s盒和逆s盒替换的方法
CN105471855A (zh) 一种用于电子标签快速身份鉴别的低功耗椭圆曲线加密引擎
Dakate et al. Performance comparison of symmetric data encryption techniques
CN103595371A (zh) 一种基于n型sabl逻辑的双边沿d触发器
CN107171782B (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
CN103873229B (zh) KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法
CN106656500A (zh) 加密装置及方法
Bhagat et al. Reverse encryption algorithm: a technique for encryption & decryption
CN105740730A (zh) 芯片中安全的点乘实现方法
CN105159611B (zh) 一种具有数据抽取加密功能的微控制器芯片
CN109039590A (zh) 存储器、电子设备及其防止侧信道攻击的加解密方法
CN106936822A (zh) 针对sms4抗高阶旁路分析的掩码实现方法及***
CN103647640B (zh) 针对des第二轮l寄存器翻转的功耗攻击方法
CN103701588A (zh) 一种秘密共享硬件实现方法及装置
CN105656629B (zh) 芯片中安全的非相邻表示型实现方法
CN103150522A (zh) 一种适用于无源便携式设备的3des加密算法电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160224

Termination date: 20160627