CN101588234A - 一种aes中列混合变换模块的加解密复用方法 - Google Patents

一种aes中列混合变换模块的加解密复用方法 Download PDF

Info

Publication number
CN101588234A
CN101588234A CNA2008100979238A CN200810097923A CN101588234A CN 101588234 A CN101588234 A CN 101588234A CN A2008100979238 A CNA2008100979238 A CN A2008100979238A CN 200810097923 A CN200810097923 A CN 200810097923A CN 101588234 A CN101588234 A CN 101588234A
Authority
CN
China
Prior art keywords
encryption
row
decryption
circuit
mixing module
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
CNA2008100979238A
Other languages
English (en)
Other versions
CN101588234B (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.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
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 Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN2008100979238A priority Critical patent/CN101588234B/zh
Publication of CN101588234A publication Critical patent/CN101588234A/zh
Application granted granted Critical
Publication of CN101588234B publication Critical patent/CN101588234B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • Y02B60/50

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种加密技术,尤其是AES电路中列混合模块的加解密复用的优化方法。本发明基于GF(28)域中的加法操作,来最大程度找出列混合过程中使用的乘法因子的不同,进而在解密过程中加以补足,实现了加密和解密电路共用一个列混合模块,从而减少了所用的电路的规模,有效降低了整个电路的功耗和面积;而且在加密或者解密的单向流程中,使用了列字节处理复用技术,使电路面积进一步减小至原来的四分之一左右,仅用硬线逻辑和三个时钟周期换取了较大程度上的面积节省。本发明适合于使用VLSI硬件实现,也便于AES协处理器集成与其他微处理器的集成。采用本发明的AES协处理器在智能卡,无线传感器网络节点等对成本功耗要求较高的特定环境下,能发挥出较大优势。

Description

一种AES中列混合变换模块的加解密复用方法
所属技术领域
本发明涉及加解密技术,尤其是AES加解密电路的优化。
背景技术
AES算法是美国国家标准委员会NIST于2000年公布的一种分组密码算法。它的基本要求是,采用对称分组密码体制,其分组长度和密钥长度都可改变。密钥长度的最少支持为128、192、256,分组长度128位。该算法是把要加密的数据分为每组128bit的数据块(block),然后用长为128、196或者256bit的密钥对每组数据进行加密,最后得到密文。
AES算法的核心有:AddRoundKey(密钥扩展)、SubBytes(字节变换)、ShiftRows(行位移变换)MixColumns(列混合变换)这4种操作。Subbyte变换为非线性层;ShiftRow和MixColumn运算为线行混合层;AddRoundKey运算为密钥加层。他们共同组成了各轮迭代变换的子变换。
对于AES加解密算法,列混合模块分为加密列混合模块和解密逆列混合模块。在具体实现该模块的过程中,如果加密和解密分别进行设计,需要用比较多的电路来实现,这样不利于AES协处理器的VLSI硬件实现和系统集成。所以,有必要对AES的列混合模块进行优化以达到节省面积和功耗的目的。
发明内容
为了克服AES中列混合模块面积功耗较大,以及加密和解密应用各自列混合模块的重复所带来的面积和功耗的增加,本发明提出一种基于复用技术的处理方法,该方法有效减小AES算法电路中列混合部分的电路规模,功耗和成本,降低了复杂程度,更加适于使用VLSI硬件实现和集成。
本发明解决其技术问题所采用的技术方案是:
根据AES算法中的列混合模块的结构,在找出该模块加密和解密相同部分之后,对不同部分进行优化和拟合。
列混合变换是将AES操作中间状态的矩阵的列在GF(28)域中乘以固定多项式c(x)后模x4+1的结果。列混合变换的逆运算与列混合变换类似,输入多项式在模x4+1下与另一个常数多项式d(x)相乘。此前,在GF(28)域中,已有基于乘法找出c(x)和d(x)不同之处,然后引入多路选择开关在加密和解密时对其进行不同的选通,进而实现的加解密复用的列混合方案。
受此启发,本发明基于GF(28)域中的加法找出c(x)和d(x)在GF(28)域中的不同,也就是找出d(x)-c(x),基于这个不同点在解密中进行补足,并最大程度的复用相同点c(x),完全由与门和异或门构成列混合加解密复用单元模块。根据c(x)和d(x)在GF(28)域中的关系d(x)=c(x)+{08}(x3+x)+{0c}(x2+1),让S1与S3,S0与S2彼此临近,使它们分别异或后再在GF(28)域中乘以系数,这样可以更好的保证电路结构的平衡性和规整性,使结构更加优化。对于c(x)的实现中,在S1,S3和S0,S2分别与各自系数相乘后,同时分别进行异或,然后两者间再一次异或,这样可保证路径延迟大致相同。对于最后一个异或门而言,延迟路径长度大致相同,都是从输入端经过两级异或门和一级的乘法操作。这样,减小了门电路的竞争与冒险,从而有效降低了模块的功耗。
而对列混合模块中的输入端硬件连线逻辑单元,用一个计数器控制其连接状态,并且在其之后组合电路不变的前提下,依次为:
当Counter=1时,由上至下为S2,S0,S3,S1;
当Counter=2时,由上至下为S1,S3,S2,S0;
当Counter=3时,由上至下为S0,S2,S1,S3;
当Counter=4时,由上至下为S3,S1,S0,S2;
最后,只要在加密或解密时,用一个使能信号来控制区分即可实现列混合和逆列混合功能,简单易行。本发明可节省近一半的成本和电路规模,也有助于功耗的降低。
本发明的有益效果是,以较小的硬件成本的开销和较低的功耗,实现了加解密复用和字节处理复用的列混合模块,进而可以使AES更好的集成在系统中,有利于VLSI硬件实现。
附图说明
下面结合附图和实施例对本实用新型进一步说明。
图1是基于GF(28)域中乘法区分实现的加解密复用的列混合模块结构图。
图2是基于GF(28)域中加法区分实现的加解密复用的列混合模块结构图。
图3是图2中硬连线逻辑单元在计数器控制下的连线关系图。
具体实施方式
下面参照附图详细说明本发明。所给出的附图仅用于说明,并不限制本发明。
AES算法是一种分组密码算法,对于加密和解密模式而言,其电路结构是相同的,适用的都是32位输入32位输出的列混合模块,只是输入和输出的对应关系不同。由于不论是加密还是解密,列混合模块实现的都是GF(28)上的乘法和加法,对于加解密的区分仅仅是GF(28)域中乘的系数不同。而其他过程基本相似。列混合变换将AES操作中间状态的列看作GF(28)上的多项式,并在模x4+1下与一个给定的多项式c(x)相乘。列混合变换的逆运算与列混合变换类似,输入多项式在模x4+1下与另一个常数多项式d(x)相乘。
既然只是c(x)和d(x)的不同,我们就可以找出它们的最大相同点,然后再在小的差别上进行弥补,以达到共用的目的,节省成本,这就是本发明的主要思想。
此前,已经有人提出基于GF(28)上的乘法区分c(x)和d(x)的列混合复用方案,见附图1。而本设计则是考虑更进一步的节省成本,实现面积优化,提出了基于GF(28)上的加法来区分c(x)和d(x)的方法。
根据上述分析结果,本发明为了减小加解密计算共同的功耗和面积,需要最大程度的找出它们之间的相同之处。下面的等式为c(x)和d(x)引出的等式:
c(x)={03}x3+{01}x2+{01}x+{02};
d(x)={0b}x3+{0d}x2+{09}x+{0e};
d(x)-c(x)={08}x3+{0c}x2+{08}x+{0c}={08}(x3+x)+{0c}(x2+1);
d(x)=c(x)+{08}(x3+x)+{0c}(x2+1);
当d(x)减去c(x)后,便可以看出提取相同的系数后,只有{08}和{0c}是加密和解密的不同之处,所以,我们利用这一点就可以实现加/解密复用的列混合单元。实现的框架图如附图2所示。
考虑到d(x)和c(x)的区分,也就是{08}(x3+x)+{0c}(x2+1)关系式,并考虑电路图的规整性和平衡性,把S1与S3,S0与S2进行划分,使它们各自进行操作(乘系数和彼此异或)之后,再进行二者的异或,并从最后一级异或门处看,之前的各个输入端的延迟路径大致相同,都经历了两级的异或逻辑和一级的乘法逻辑,减少了竞争和冒险,从而有利于功耗的降低。
本发明还涉及到在单向流程中,也就是加密或者解密的某一个方向中,列混合单元的字节处理复用,从而仅在输入端用简单的连线逻辑便可以实现近四分之一的面积节省。其原理是,某一列变换中的四个字节分别调用该列混合模块进行列混合运算,之后再重新组成运算后的新列。由图2可见,模块输入端口为32位,输出端口为8位。由于GF(28)域的特点,一列中每个字节都要进行相似的变换,这就提供了列中字节处理复用的可能。通过计算将处于state中的一列中的4个字节进行操作,得到一个新的列中4个字节。这些字节分别是:
s , 3 = ( { 02 } · s 3 ) ⊕ ( { 03 } · s 2 ) ⊕ s 1 ⊕ s 0 ;
s , 2 = s 3 ⊕ ( { 02 } · s 2 ) ⊕ ( { 03 } · s 1 ) ⊕ s 0 ;
s , 1 = s 3 ⊕ s 2 ⊕ ( { 02 } · s 1 ) ⊕ ( { 03 } · s 0 ) ;
s , 0 = ( { 03 } · s 3 ) ⊕ s 2 ⊕ s 1 ⊕ ( { 02 } · s 0 ) ;
而解密过程中逆列混合对四个字节进行的操作为:
s , 3 = ( { 0 e } · s 3 ) ⊕ ( { 0 b } · s 2 ) ⊕ ( { 0 d } · s 1 ) ⊕ ( { 09 } · s 0 ) ;
s , 2 = ( { 09 } · s 3 ) ⊕ ( { 0 e } · s 2 ) ⊕ ( { 0 b } · s 1 ) ⊕ ( { 0 d } · s 0 ) ;
s , 1 = ( { 0 d } · s 3 ) ⊕ ( { 09 } · s 2 ) ⊕ ( { 0 e } · s 1 ) ⊕ ( { 0 b } · s 0 ) ;
s , 0 = ( { 0 b } · s 3 ) ⊕ ( { 0 d } · s 2 ) ⊕ ( { 09 } · s 1 ) ⊕ ( { 0 e } · s 0 ) ;
按照上述分析过程,分别找出每一个字节加解密操作的不同,结合图2右半部分的逻辑图,只需对输入的S0-S3的位置进行调整便可,调整的结果如下:
当进行state某一列中第一个字节变换时,图2硬线连接后由上至下分别为S2,S0,S3,S1;
当进行state某一列中第二个字节变换时,图2硬线连接后由上至下分别为S1,S3,S2,S0;
当进行state某一列中第一个字节变换时,图2硬线连接后由上至下分别为S0,S2,S1,S3;
当进行state某一列中第一个字节变换时,图2硬线连接后由上至下分别为S3,S1,S0,S2;
由图可见,本发明仅用一个特定的加解密控制信号来区分控制加密或是解密流程的模块使用,而且整体电路结构仅用异或门和与门构成,无论从电路结构还是控制信号上来说都简单易行。
一般地,在不同的时钟周期和不同的分组情况下,采用的本发明的列混合模块数目会不同。比如,当希望24个时钟周期实现一个128bit分组加密的时候,AES加解密电路可以使用8个本发明上述的列混合模块来实现。当对时钟周期不做特殊要求时,AES加解密电路可以仅使用一个本发明上述的列混合模块来实现,实现最大程度的低成本和低功耗。
经检验,本发明比基于GF(28)上乘法实现的列混合复用模块面积减小了约16%,具有更小的面积和功耗,更有利于VLSI硬件实现和集成。
本发明通过对c(x)电路的共用,且对d(x)-c(x)在解密中的补足,使得本发明既可以在AES加密电路中作为列混合单元使用,又可以在AES解密电路中作为逆列混合单元使用,它们的差别仅用一个加解密使能控制信号便可区分。这与现有技术相比,每两个列混合模块省去了一个c(x)这个面积较大的电路,从而降低了电路的规模,使得采用本发明的AES协处理器在智能卡,无线传感器网络节点等对成本功耗要求较高的特定环境下,发挥出较大优势。

Claims (9)

1.一种AES中加解密复用的列混合模块单元,其特征在于,
根据AES算法中的列混合模块的结构,在找出该模块加密和解密相同部分之后,对不同部分进行优化和拟合。基于这个不同点在解密中进行补足,而对相同点进行复用,最大程度的实现面积节省。
基于GF(28)域中的加法来区分加解密过程中所要相乘的系数。
在输入端用一个硬线连接逻辑单元实现列混合模块的字节处理复用。
2.如权利要求1所述,列混合模块单元中,加密相乘系数c(x)和解密相乘系数d(x)之间的关系,其特征在于,
d(x)=c(x)+{08}(x3+x)+{0c}(x2+1)。
3.如权利要求2所述,其中根据c(x)与d(x)的关系,使得S1与S3接近,S0与S2相临近,且S1与S3,S0与S2分别异或后再在GF(28)域中乘以系数,这样可以更好的保证电路结构的平衡性和规整性,使整体结构更加优化。
4.如权利要求2所述,其中对于c(x)的实现中,在S1,S3和S0,S2分别与各自系数相乘后,同时分别进行异或,然后两者间再一次异或,这样可保证路径延迟大致相同。
5.如权利要求2所述,其中对于最后一个异或门而言,延迟路径长度大致相同,都是从输入端经过两级异或门和一级的乘法操作。权利要求4和权利要求5减小了门电路的竞争和冒险,从而有效降低了功耗。
6.如权利要求2所述的逻辑电路,其中对于AES中列混合模块的加解密流程的控制,其特征在于,
利用一个加解密使能信号en来控制其中的与门选择器,进而决定进行加密还是解密操作。简单易行。
7.如权利要求2中的逻辑电路所述,列混合模块的构成,其特征在于,
仅用与门和异或门构成简单的逻辑电路,实现其加密中列混合和解密中逆列混合的功能。
8.如权利要求2所述,列混合模块中输入端的硬连线逻辑单元实现了列字节处理复用,其特征在于,
用一个计数器控制其连接状态,并且在其之后组合电路不变的前提下,依次为:
当Counter=1时,由上至下为S2,S0,S3,S1;
当Counter=2时,由上至下为S1,S3,S2,S0;
当Counter=3时,由上至下为S0,S2,S1,S3;
当Counter=4时,由上至下为S3,S1,S0,S2。
9.如权利要求8所述,列字节处理复用的列混合模块输入端口为32位,输出端口为8位。
CN2008100979238A 2008-05-19 2008-05-19 一种aes中列混合变换模块的加解密复用方法 Expired - Fee Related CN101588234B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100979238A CN101588234B (zh) 2008-05-19 2008-05-19 一种aes中列混合变换模块的加解密复用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100979238A CN101588234B (zh) 2008-05-19 2008-05-19 一种aes中列混合变换模块的加解密复用方法

Publications (2)

Publication Number Publication Date
CN101588234A true CN101588234A (zh) 2009-11-25
CN101588234B CN101588234B (zh) 2013-10-02

Family

ID=41372312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100979238A Expired - Fee Related CN101588234B (zh) 2008-05-19 2008-05-19 一种aes中列混合变换模块的加解密复用方法

Country Status (1)

Country Link
CN (1) CN101588234B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888937A (zh) * 2014-03-31 2014-06-25 北京科技大学 一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法
CN106982116A (zh) * 2017-04-26 2017-07-25 南通大学 一种基于可逆逻辑电路的aes的本地文件加密方法
CN107171782A (zh) * 2017-04-19 2017-09-15 南通大学 一种基于可逆逻辑电路的aes私密日志加密方法
CN109033023A (zh) * 2018-06-11 2018-12-18 安徽工程大学 一种普通轮变换运算单元、普通轮变换电路及aes加密电路
CN115344236A (zh) * 2022-10-19 2022-11-15 无锡沐创集成电路设计有限公司 多项式乘法运算方法、多项式乘法器、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1625693A2 (en) * 2003-05-14 2006-02-15 Koninklijke Philips Electronics N.V. A hardware implementation of the mixcolumn / invmixcolumn functions

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888937A (zh) * 2014-03-31 2014-06-25 北京科技大学 一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法
CN103888937B (zh) * 2014-03-31 2017-06-20 北京科技大学 一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法
CN107171782A (zh) * 2017-04-19 2017-09-15 南通大学 一种基于可逆逻辑电路的aes私密日志加密方法
CN107171782B (zh) * 2017-04-19 2020-10-30 南通大学 一种基于可逆逻辑电路的aes私密日志加密方法
CN106982116A (zh) * 2017-04-26 2017-07-25 南通大学 一种基于可逆逻辑电路的aes的本地文件加密方法
CN106982116B (zh) * 2017-04-26 2020-01-17 南通大学 一种基于可逆逻辑电路的aes的本地文件加密方法
CN109033023A (zh) * 2018-06-11 2018-12-18 安徽工程大学 一种普通轮变换运算单元、普通轮变换电路及aes加密电路
CN115344236A (zh) * 2022-10-19 2022-11-15 无锡沐创集成电路设计有限公司 多项式乘法运算方法、多项式乘法器、设备及介质

Also Published As

Publication number Publication date
CN101588234B (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
CN102710415B (zh) 一种利用对称密码算法进行数据加解密的方法及查表装置
CN101114903B (zh) 一种吉比特无源光网络系统中高级加密标准加密装置及其实现方法
CN101969376B (zh) 一种具有语义安全的自适应加密系统及方法
CN101702709B (zh) 一种适用于mips处理器的aes加密单元
CN101478392B (zh) 利用vlsi实现128位密钥长度aes算法的装置
CN101588234B (zh) 一种aes中列混合变换模块的加解密复用方法
CN107947916B (zh) 一种基于des算法的一体式加解密模块
CN102035641A (zh) 一种实现aes加解密的装置和方法
Zhu et al. Study of the AES realization method on the reconfigurable hardware
CN103632104A (zh) 一种大数据环境下动态数据的并行加解密方法
CN101547087B (zh) 一种基于可逆逻辑门的des加密系统的控制单元设计方法
Mohurle et al. Review on realization of AES encryption and decryption with power and area optimization
El-meligy et al. 130nm Low power asynchronous AES core
Sideris et al. Hardware acceleration of the aes algorithm using nios-ii processor
CN109150495A (zh) 一种轮变换复用电路及其aes解密电路
Balamurugan et al. High speed low cost implementation of advanced encryption standard on fpga
CN103338447B (zh) 一种应用于短距离传输的自存取加解密电路
Deotare et al. Performance Evaluation of AES using Hardware and Software Codesign
KR100667189B1 (ko) 휴대 기기를 위한 aes 암호화 장치 및 방법
CN103209071A (zh) Aes加密装置
CN1688121A (zh) AES加解密电路优化方法及复用Sbox模块
James et al. An Optimized Parallel Mix column and Sub bytes’ design in Lightweight Advanced Encryption Standard
Mohan et al. An efficient FPGA implementation of the advanced encryption standard algorithm
CN103051443A (zh) Aes密钥扩展的方法
CN202998117U (zh) Aes加密装置

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131002

Termination date: 20140519