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

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

Info

Publication number
CN103391186B
CN103391186B CN201310261809.5A CN201310261809A CN103391186B CN 103391186 B CN103391186 B CN 103391186B CN 201310261809 A CN201310261809 A CN 201310261809A CN 103391186 B CN103391186 B CN 103391186B
Authority
CN
China
Prior art keywords
box
expression
inverse
abbreviation
aes algorithm
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.)
Expired - Fee Related
Application number
CN201310261809.5A
Other languages
English (en)
Other versions
CN103391186A (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 (1)

1.一种实现AES算法中S盒和逆S盒替换的方法,其特征在于,包括如下步骤:
步骤一,根据AES算法标准中给出的S盒与逆S盒,写出输出变量的真值表,由于S盒与逆S盒都是8位输出变量,可以得到16个真值表;
步骤二,将每个真值表都表示为一个最小项表达式,得到16个最小项表达式;
步骤三,对每个最小项表达式进行逻辑化简得到化简后的函数表达式;
步骤四,在化简后得到的16个函数表达式中,将表达式改写为“与非与非”即为“与或”的两次取反的形式;
步骤五,将改写后的16个函数表达式之间能够公用的逻辑电路单元单独提出来,使得这些函数表达式实现电路资源得以公用。
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 CN103391186A (zh) 2013-11-13
CN103391186B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683096B (zh) * 2013-11-29 2017-12-22 中国航天科工集团第三研究院第八三五七研究所 动态s盒变换方法及系统
CN104092533B (zh) * 2014-07-02 2017-07-14 上海交通大学 一种抵御能量分析攻击的aes对称互补型硬件实现方法
US11444748B2 (en) 2019-03-29 2022-09-13 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
基于AES加密算法的S盒优化设计;胡春燕等;《微计算机信息》;20121231;第28卷(第10期);全文 *
逻辑函数的另一种化简方法—Q-M 化简法;张冰等;《新疆教育学院学报》;20030630;第19卷(第2期);全文 *

Also Published As

Publication number Publication date
CN103391186A (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
Groß et al. Generic low-latency masking in hardware
CN103391186B (zh) 一种实现aes算法中s盒和逆s盒替换的方法
CN103067155A (zh) 一种防止基于功耗分析的des算法攻击的方法及测试电路
CN104065473A (zh) Sm4分组密码算法s盒的紧凑实现方法
CN102880840B (zh) 一种用于防御攻击的电流型物理不可克隆函数电路
CN102983964A (zh) 一种抗差分功耗分析的数字加密标准改进方法及装置
CN104318181A (zh) 基于阈值偏差延迟的物理不可克隆函数电路
CN103986571B (zh) 一种智能卡多核处理器系统及其防御差分功耗分析的方法
CN106487497A (zh) 对rijndael算法的dpa保护
JP2012215813A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
US20120093308A1 (en) Apparatus and method for generating random data
CN103595371B (zh) 一种基于n型sabl逻辑的双边沿d触发器
CN106487499A (zh) Rijndael算法的保护
Dakate et al. Performance comparison of symmetric data encryption techniques
CN105379172B (zh) 用于在块加密算法中使用的密钥更新的设备和方法
CN106157231B (zh) 一种基于改进Arnold变换和LSB的图像信息加密及解密方法
CN107171782B (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
CN101866401B (zh) 演化s盒对抗旁路式攻击的方法
CN106656500A (zh) 加密装置及方法
CN206585573U (zh) 可重构s盒电路结构
CN102932135A (zh) 一种3des加密方法
CN103873229B (zh) KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法
CN104871476B (zh) 用于可计算、大型、可变及安全的替换盒的方法及设备
CN103618595B (zh) 一种抗功耗分析的密码算法代换电路
CN103647640A (zh) 针对des第二轮l寄存器翻转的功耗攻击方法

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