CN106034021B - 轻量级双模兼容aes加解密模块及其方法 - Google Patents

轻量级双模兼容aes加解密模块及其方法 Download PDF

Info

Publication number
CN106034021B
CN106034021B CN201510107703.9A CN201510107703A CN106034021B CN 106034021 B CN106034021 B CN 106034021B CN 201510107703 A CN201510107703 A CN 201510107703A CN 106034021 B CN106034021 B CN 106034021B
Authority
CN
China
Prior art keywords
round
key
encryption
column
decryption
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
Application number
CN201510107703.9A
Other languages
English (en)
Other versions
CN106034021A (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.)
Shanghai Advanced Research Institute of CAS
Original Assignee
Shanghai Advanced Research Institute of CAS
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 Shanghai Advanced Research Institute of CAS filed Critical Shanghai Advanced Research Institute of CAS
Priority to CN201510107703.9A priority Critical patent/CN106034021B/zh
Publication of CN106034021A publication Critical patent/CN106034021A/zh
Application granted granted Critical
Publication of CN106034021B publication Critical patent/CN106034021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种轻量级双模兼容AES加解密模块及其方法,该加解密模块包括:数据及控制信号读取模块,读取相应控制信号,并经数据读入控制信号触发后读入待加密数据和加密密钥;判断选择模块,用于判断加解密控制信号以及模式选择控制信号,以选择当前为加密运算或是解密运算,以及当前为256bit密钥加解密运算或是128bit密钥加解密运算;AES计算模块,根据所述判断选择模块的选择采用轮计算对待加/解密数据进行加解密,本发明在控制信号的控制下,可实现128bit、256bit长度密钥的加解密运算,并实现部分结构复用,从而达到万门等效门以下的实现结果和数十Mbps级别的吞吐量。

Description

轻量级双模兼容AES加解密模块及其方法
技术领域
本发明涉及一种AES加解密模块及其方法,特别是涉及一种轻量小面积均衡吞吐量且128/256bit长度密钥兼容的轻量级双模兼容AES加解密模块的硬件实现及其方法。
背景技术
AES(Advanced Encryption Standard,高级加密标准)算法自从2001年被NIST机构采纳为标准算法以来,因为安全性、复杂度、速度等方面的均衡性优点,被多种通信系统采纳为加密算法而广泛应用,以提高数据的保密性和完整性。
AES算法实现主要包括软件实现和硬件实现。随着通信系统集成度的提高,硬件实现近年来越来越被重视和需求。除了大规模常规算法外,近几年的研究中也被认为是最合适的轻量级加密算法之一,被应用于RFID(射频识别)和无线传感网等多种轻量级场合。作为一种对称分组加密算法,AES每次处理一个128bit长度的数据块,使用128、192和256bit不同长度的密钥来提供不同的安全等级。研究表明256bit长度的密钥破解复杂度远高于128bit密钥,达到2120。虽然256bit长度的密钥能提供更高的安全性,但受面积代价等方面的限制,目前的轻量级算法都集中于128bit密钥单模式AES的实现。兼容算法多为支持三种密钥长度大吞吐量兼容算法,面积及功耗均不适用于轻量级场合,高达数万等效门。轻量级AES算法实现结构尚缺乏多种密钥长度兼容的实现设计,无法为高安全要求的轻量级系统提供更高的安全等级,并且部分设计结构过低的吞吐量严重限制了使用范围。
发明内容
为克服上述现有技术存在的不足,本发明之一目的在于提供一种轻量级双模兼容AES加解密模块及其方法,其在控制信号enc和sw的控制下,可实现128bit、256bit长度密钥的加解密运算,并实现部分结构复用,从而达到万门等效门以下的实现结果和数十Mbps级别的吞吐量。
为达上述及其它目的,本发明提出一种轻量级双模兼容AES加解密模块,包括:
数据及控制信号读取模块,读取相应控制信号,并经数据读入控制信号触发后读入待加密数据和加密密钥;
判断选择模块,用于判断加解密控制信号以及模式选择控制信号,以选择当前为加密运算或是解密运算,以及当前为256bit密钥加解密运算或是128bit密钥加解密运算;
AES计算模块,根据所述判断选择模块的选择采用轮计算对待加/解密数据进行加解密,256bit密钥AES加解密需14轮运算,128bit密钥AES加解密需10轮运算,除最后一轮跳过列混淆运算,每轮包括行变换、S变换、列混淆和轮密钥加各一次,每轮运算需要20个时钟周期,采用1个S盒,在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次。
进一步地,所述AES计算模块包括:
行变换模块,对主状态矩阵进行行变换;
S盒变换模块,利用S盒分别对主状态矩阵各列进行S变换;
列混淆模块,对S变换后的主状态矩阵逐列进行列混淆运算;
轮密钥加模块对经列混淆运算后的主状态矩阵与经密钥拓展模块305获得的拓展密钥进行轮密钥加运算;
密钥拓展模块,根据轮密钥生成规则生成所述轮密钥加模块所需的密钥,除初始密钥外,每次轮变换中的轮密钥加模块所需要的密钥均通过所述密钥拓展模块产生。
进一步地,在加密运算与解密运算中保持列混淆和轮密钥加的顺序不同,加密运算先进行列混淆,解密运算先进行轮密钥加。
进一步地,主状态矩阵每轮需要使用16次S盒,密钥拓展每轮需使用4次S盒,主状态机在每轮运算中将S盒分配给主状态矩阵和密钥拓展的不同部分使用。
进一步地,在每轮轮变换中,对一列元素进行S变换后,再同时输入到列混淆模块进行运算,列混淆运算和轮密钥加发生在同一个周期。
进一步地,所述轮密钥生成规则为:
Figure BDA0000680886350000031
其中,w[i]为密钥字,每个长度为32bit,i为密钥的序数,sub函数表示S变换,rot为一个循环移位函数,rcon函数为AES标准文档中所规定的一个与轮数有关的函数。
为达到上述目的,本发明还提供一种轻量级双模兼容AES加解密方法,包括如下步骤:
步骤一,在数据读入控制信号触发下读入待加密数据和加密密钥;
步骤二,根据加解密控制信号控制AES计算模块进行加密或解密运算,根据模式选择控制信号控制AES计算模块进行256bit密钥加解密运算或128bit密钥加解密运算;
步骤三,在所述加解密控制信号与模式选择控制信号的控制下,AES计算模块采用轮计算对待加/解密数据进行加解密,256bit密钥AES加解密各需14轮运算,128bit密钥AES加解密需10轮运算,除最后一轮跳过列混淆运算,每轮包括行变换、S变换、列混淆和轮密钥加各一次,每轮运算需要20个时钟周期,采用1个S盒,在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次。
进一步地,在步骤三中,在加密和解密运算的每次轮变换中,均为先计算行变换再进行S变换,加密运算和解密运算保持列混淆和轮密钥加的顺序不同,加密运算先进行列混淆、解密运算先进行轮密钥加。
进一步地,在步骤三中,主状态矩阵每轮计算需要使用16次S盒,密钥拓展每轮需使用4次S盒,主状态机在每轮运算中将S盒分配给主状态矩阵和密钥拓展的不同部分使用,每轮计算中,每次分四周期对一列元素进行S变换后,再同时输入到列混淆模块进行运算,列混淆运算和轮密钥加发生在同一个周期。
进一步地,所述轮密钥生成规则为:
Figure BDA0000680886350000041
其中,w[i]为密钥字,每个长度为32bit,i为密钥的序数,sub函数表示S变换,rot为一个循环移位函数,rcon函数为AES标准文档中所规定的一个与轮数有关的函数。
与现有技术相比,本发明一种轻量级双模兼容AES加解密模块及其方法在控制信号enc和sw的控制下,可实现128bit、256bit长度密钥的加解密运算,并实现部分结构复用,从而达到万门等效门以下的实现结果和数十Mbps级别的吞吐量,通过本发明的设计,可使本发明达到低于一万门,双模式实现和较为均衡的吞吐量,可满足大多数轻量级通信及数字系统要求。
附图说明
图1为本发明一种轻量级双模兼容AES加解密模块的架构示意图;
图2为本发明的数据的加密过程图;
图3为本发明中S盒的具体分配方法流程图;
图4为本发明中采用的S盒结构示意图;
图5为本发明密钥拓展模块的密钥拓展结构复用结构图;
图6为本发明一种轻量级兼容AES加解密方法的步骤流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种轻量级双模兼容AES加解密模块的架构示意图。如图1所示,本发明一种轻量级双模兼容AES加解密模块,包括:数据及控制信号读取模块10、判断选择模块20以及AES计算模块30。
其中,数据及控制信号读取模块10读取相应控制信号,并经数据读入控制信号ld触发后读入待加密数据Data_in和加密密钥Key_in,本发明中,输入控制信号包括enc(加/解密控制信号)、ld(数据读入控制信号)、sw(模式选择控制信号),计算前需将数据读入控制信号ld信号置高电平,进行数据读入,开始计算后ld置低电平,Data_in为128-bit输入,Key_in在两种情况下都是256bit输入,在128bit长度密钥工作情况下,高128bit置0,输出均为128bit的Data_out;判断选择模块20用于判断加解密控制信号enc以及模式选择控制信号sw,以选择当前为加密运算还是解密运算,以及当前为256bit密钥加解密运算还是128bit密钥加解密运算,具体地说,判断选择模块20判断加解密控制信号enc为1时指示加密运算,enc为0时指示解密运算,判断模式选择控制信号sw为1时指示256bit密钥加解密运算,sw为0时指示128bit密钥加解密运算;AES计算模块30根据判断选择模块20的选择采用轮计算对待加/解密数据进行加解密,256bit密钥AES加解密各需14轮运算,128bit密钥AES加解密需10轮运算。除最后一轮跳过列混淆运算,每轮包括行变换、S变换、列混淆和轮密钥加各一次,每轮运算需要20个时钟周期,采用1个S盒(Substitution-box,置换盒,对称密钥算法中执行置换计算的基本结构),在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次。AES计算模块30进一步包括行变换模块301、S盒变换模块302、列混淆模块303、轮密钥加模块304以及密钥拓展模块305,行变换模块301对主状态矩阵进行行变换,S盒变换模块302利用S盒分别对主状态矩阵各列进行S变换,列混淆模块303对S变换后的主状态矩阵逐列进行列混淆运算,轮密钥加模块304对经列混淆运算后的主状态矩阵与经密钥拓展模块305获得的拓展密钥进行轮密钥加,即异或运算,密钥拓展模块305,根据轮密钥生成规则生成轮密钥加模块304所需的密钥,即除了初始密钥外,每次轮变换中的轮密钥加模块所需要的密钥均通过密钥拓展模块305产生。
具体地,AES计算模块主要通过迭代运算完成,迭代运算称为轮变换(轮计算)。每个轮变换的具体计算过程如图2所示,包括行变换(ShiftRow)、S变换(SubBytes)、列混淆(Mixcolumn)和轮密钥加(Add RoundKey)等。在此需说明的是,图2示出的是数据的加密步骤图,解密步骤和加密步骤类似,只是四个步骤顺序不同。256bit密钥共需14轮运算,128bit密钥需10轮运算,最后一轮跳过列混淆运算,本发明中每轮运算需要20个时钟周期,故256bit密钥加解密算法共需280个时钟周期,128bit密钥加解密算法共需200个时钟周期。计算完成后输出运算结果Data_out。
在加密和解密运算中,行变换和S变换、列混淆和轮密钥加的顺序是不同的。在本发明中,根据行变换和S变换序可换的原理,在加密和解密运算的每次轮变换中,均为先计算行变换再进行S变换。列混淆和轮密钥加的顺序如需调换,将明显增加计算量。因而在本发明较佳实施例中,加密算法和解密算法保持列混淆和轮密钥加的顺序不同,加密运算先进行列混淆,解密运算先进行轮密钥加。
本发明的特点之一在于S盒的分配问题。S盒的具体分配方法如图3所示。主状态矩阵每轮需要使用16次S盒,密钥拓展每轮需使用4次S盒。主状态机在每轮运算中将S盒分配给主状态矩阵和密钥拓展的不同部分使用。
在共用一个列混淆模块的情况下,每次应对一列元素进行S变换后,再同时输入到列混淆模块进行运算,列混淆运算和轮密钥加发生在同一个周期。计算周期的位置如图3所示。
当Sw=1,即为256bit密钥加解密运算:
S0周期:S盒用于密钥拓展,主状态矩阵进行行变换;
S1~S4周期:S盒用于S3(主状态矩阵第4列)S变换;
S5~S8周期:S盒用于S2列(主状态矩阵第3列)S变换,S3列进行列混淆和轮密钥加运算;
S9~S12周期,S盒用于S1列(主状态矩阵第2列)S变换,S2列进行列混淆和轮密钥加运算;
S13~S16周期,S盒用于S0列(主状态矩阵第1列)S变换,S1列进行列混淆和轮密钥加运算;
S17~S19周期:S盒用于密钥拓展,S0列进行列混淆和轮密钥加运算。
当Sw=0,即为128bit密钥加解密运算:
第一轮计算进行之前,先进行S17~S19周期计算,但屏蔽列混淆和轮密钥加运算,再从第一轮S0开始计算,其他分配与256bit密钥AES计算相同。
在本发明中,轮变换中采用的S盒为采用组合逻辑S盒,本发明中采用的S盒结构如图4所示。可通过enc信号控制,进行S变换或逆S变换。组合S盒结构主要包括Affine(仿射)变换和求逆运算。加密时加解密控制信号enc控制多路器输出选择1输入端的数据依次进行求逆运算和仿射,解密时加解密控制信号enc控制多路器输出选择0输入端的数据依次进行逆仿射和求逆运算。本发明求逆运算算法是将GF(28)有限域上的求逆运算转换到GF(24)上进行。也就是说,每个S盒设计结构上需要调用两个多路器、一个求逆运算、一个仿射和一个逆仿射模块。
承前所述,除了初始密钥外,本发明每次轮变换中的轮密钥加步骤所需要的密钥均通过密钥拓展过程产生。密钥拓展的生成规则如公式1所示,其结构实现如图5所示。其中,w[i]为密钥字,每个长度为32bit,i为密钥的序数。sub函数表示S变换,rot是一个移位函数。rcon函数是AES标准文档中所规定的一个与轮数有关的函数,对应不同轮数取特定常数,在图5中记为Rcon。Nk为密钥字的长度,对于128bit、192bit、256bit密钥分别取4、6、8。
Figure BDA0000680886350000081
公式1
128bit密钥、192bit密钥和256bit密钥分别以4、6、8周期进行拓展。本发明中选取128bit密钥和256bit密钥兼容主要基于复用代价和安全性能的考虑。若128bit和192bit密钥兼容将造成不低于128bit/256bit密钥兼容的面积代价,获得不高于后者的安全等级。本发明中对于256bit的密钥拓展引入内部奇偶控制信号od,拆分成奇周期和偶周期。其中奇数周期的结构可与128bit密钥拓展使用相同的结构。复用情况如图5所示。左侧实线部分为奇数周期,128bit和256bit密钥拓展复用的部分;右侧虚线部分为偶数周期,也是256bit密钥拓展专用的部分。sw为图1中的输入信号,sw为1时,指示256bit密钥AES;sw为0时指示128bit密钥AES。sw=0时,od信号恒为0;只有sw=1时,才涉及到od的奇偶问题,因此sw/od信号为01是不可能的。sw/od取00或01时,多路器输出为左侧实线输入;sw/od取11时,多路器输出为右侧虚线输入。需说明的是,因为只有两种输入,该选择器是一个四选一选择器的简化示意画法。图5是一个反馈结构,输出密钥也是下一轮密钥拓展的输入。
图6为本发明一种轻量级兼容AES加解密方法的步骤流程图。如图5所示,本发明一种轻量级兼容AES加解密方法,包括如下步骤:
步骤601,在数据读入控制信号ld触发下读入待加密数据Data_in和加密密钥Key_in。
步骤602,根据加解密控制信号enc控制AES计算模块进行加密或解密运算,根据模式选择控制信号sw控制AES计算模块进行256bit密钥加解密运算或128bit密钥加解密运算。其中,加解密控制信号enc为1时指示加密运算,enc为0时指示解密运算;模式选择控制信号sw为1时指示256bit密钥加解密运算,sw为0时指示128bit密钥加解密运算。
步骤603,在加解密控制信号与模式选择控制信号的控制下,AES计算模块采用轮计算对待加/解密数据进行加解密,256bit密钥AES加解密共需14轮运算,128bit密钥AES加解密需10轮运算。除最后一轮跳过列混淆运算,每轮包括行变换、S变换、列混淆和轮密钥加各一次,每轮运算需要20个时钟周期,采用1个S盒(Substitution-box,置换盒,对称密钥算法中执行置换计算的基本结构),在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次。
较佳的,在步骤603中,根据行变换和S变换序可换的原理,在加密和解密运算的每次轮变换中,均为先计算行变换再进行S变换。列混淆和轮密钥加的顺序如需调换,将明显增加计算量。因而在本发明中,加密运算和解密运算保持列混淆和轮密钥加的顺序不同,加密运算先进行列混淆,解密运算先进行轮密钥加。
在步骤603中,主状态矩阵每轮计算需要使用16次S盒,密钥拓展每轮需使用4次S盒。主状态机在每轮运算中将S盒分配给主状态矩阵和密钥拓展的不同部分使用。
在共用一个列混淆模块的情况下,每轮计算中,每四个周期对一列元素进行S变换后,再同时输入到列混淆模块进行运算,列混淆运算和轮密钥加发生在同一个周期。
除了初始密钥外,每次轮变换中的轮密钥加步骤所需要的密钥均通过密钥拓展过程产生。密钥拓展的规则如下公式所示。w[i]为密钥字,每个长度为32bit,i为密钥的序数。sub函数表示S变换,rot是一个循环移位函数。rcon函数是AES标准文档中所规定的一个与轮数有关的函数,对应不同轮数取特定常数。Nk为密钥字的长度,对于128bit、192bit、256bit密钥分别取4、6、8。
Figure BDA0000680886350000101
本发明经过modelsim软件进行功能仿真,能够实现两种长度密钥加解密全部功能。之后经过ISE套件进行FPGA布线仿真,采用VirtexVI xc6vlx550t进行仿真,最高运算频率为67.6Mhz,吞吐量达到43.2/31.1Mbps。通过DesignComplier进行布线仿真,采用0.18μm工艺,等效门数为8400门,吞吐量达到30.8/22.1Mbps。在小面积均衡吞吐量设计中取得了较为理想的结果。
综上所述,本发明一种轻量级双模兼容AES加解密模块及其方法在控制信号enc和sw的控制下,可实现128bit、256bit长度密钥的加解密运算,并实现部分结构复用,从而达到万门等效门以下的实现结果和数十Mbs级别的吞吐量,通过本发明的设计,可使本发明达到低于一万门,双模式实现和较为均衡的吞吐量,可满足大多数轻量级通信及数字系统要求。
与现有技术相比,本发明具有如下有益效果:
1.选取128/256bit长度密钥兼容作为多模实现手段,利用256bit密钥拓展的对称结构实现与128bit密钥的兼容,通过逻辑复用,减少了内存和控制信号的使用,以较低代价获得最高的安全等级。
2.采用1个S盒(Substitution-box,置换盒,对称密钥算法中执行置换计算的基本结构),在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次,从而实现该种方案下的理论最小周期。
3.使用8bit数据通路进行变换、列混淆等计算,将列混淆等模块在不同周期内分配给状态矩阵的不同部分使用,同时采用组合逻辑S盒,进一步降低设计面积。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (9)

1.一种轻量级双模兼容AES加解密模块,包括:
数据及控制信号读取模块,读取相应控制信号,并经数据读入控制信号触发后读入待加密数据和加密密钥;
判断选择模块,用于判断加解密控制信号以及模式选择控制信号,以选择当前为加密运算或是解密运算,以及当前为256bit密钥加解密运算或是128bit密钥加解密运算;
AES计算模块,根据所述判断选择模块的选择采用轮计算对待加/解密数据进行加解密,256bit密钥AES加解密各需14轮运算,128bit密钥AES加解密各需10轮运算,除最后一轮跳过列混淆运算,每轮包括行变换、S变换、列混淆和轮密钥加各一次,每轮运算需要20个时钟周期,采用1个S盒,在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次,
当根据模式选择控制信号选择256bit密钥加解密运算时,每轮进行如下运算:
S0周期,S盒用于密钥拓展,主状态矩阵进行行变换;
S1~S4周期,S盒用于所述主状态矩阵第4列S变换;
S5~S8周期,S盒用于所述主状态矩阵第3列S变换,所述主状态矩阵第4列进行列混淆和轮密钥加运算;
S9~S12周期,S盒用于所述主状态矩阵第2列S变换,所述主状态矩阵第3列进行列混淆和轮密钥加运算;
S13~S16周期,S盒用于所述主状态矩阵第1列S变换,所述主状态矩阵第2列进行列混淆和轮密钥加运算;
S17~S19周期,S盒用于密钥拓展,所述主状态矩阵第1列进行列混淆和轮密钥加运算;
当根据模式选择控制信号选择128bit密钥加解密运算时,进行如下运算:
第一轮计算进行之前,先进行S17~S19周期计算,但屏蔽列混淆和轮密钥加运算,再从第一轮S0周期开始计算,其他分配与所述256bit密钥加解密运算的计算相同。
2.如权利要求1所述的一种轻量级双模兼容AES加解密模块,其特征在于,所述AES计算模块包括:
行变换模块,对主状态矩阵进行行变换;
S盒变换模块,利用S盒分别对主状态矩阵各列进行S变换;
列混淆模块,对S变换后的主状态矩阵逐列进行列混淆运算;
轮密钥加模块,对经列混淆运算后的主状态矩阵与经密钥拓展模块获得的拓展密钥进行轮密钥加运算;
密钥拓展模块,根据轮密钥生成规则生成所述轮密钥加模块所需的密钥,除初始密钥外,每次轮变换中的轮密钥加模块所需要的密钥均通过所述密钥拓展模块产生,所述轮密钥生成规则为:
Figure FDA0002371405910000021
其中,w[i]为密钥字,每个长度为32bit,i为密钥的序数,sub函数表示S变换,rot为一个移位函数,rcon函数为AES标准文档中所规定的一个与轮数有关的函数,对应不同轮数取特定常数,Nk为密钥字的长度,对于128-bit、256-bit密钥分别取4、8。
3.如权利要求2所述的一种轻量级双模兼容AES加解密模块,其特征在于:在加密运算与解密运算中保持列混淆和轮密钥加的顺序不同,加密运算先进性列混淆,解密计算先进行轮密钥加。
4.如权利要求3所述的一种轻量级双模兼容AES加解密模块,其特征在于:主状态矩阵每轮需要使用16次S盒,密钥拓展每轮需使用4次S盒,主状态机在每轮运算中将S盒分配给主状态矩阵和密钥拓展的不同部分使用。
5.如权利要求4所述的一种轻量级双模兼容AES加解密模块,其特征在于:在每轮轮变换中,对一列元素进行S变换后,再同时输入到列混淆模块进行运算,列混淆运算和轮密钥加发生在同一个周期。
6.一种轻量级双模兼容AES加解密方法,包括如下步骤:
步骤一,在数据读入控制信号触发下读入待加密数据和加密密钥;
步骤二,根据加解密控制信号控制AES计算模块进行加密或解密运算,根据模式选择控制信号控制AES计算模块进行256bit密钥加解密运算或128bit密钥加解密运算;
步骤三,在所述加解密控制信号与模式选择控制信号的控制下,AES计算模块采用轮计算对待加/解密数据进行加解密,256bit密钥AES加解密各需14轮运算,128bit密钥AES加解密各需10轮运算,除最后一轮跳过列混淆运算,每轮包括行变换、S变换、列混淆和轮密钥加各一次,每轮运算需要20个时钟周期,采用1个S盒,在一轮运算中的20个时钟周期内通过主状态机分配给每轮运算内使用20次,当根据模式选择控制信号选择256bit密钥加解密运算时,每轮进行如下运算:
S0周期,S盒用于密钥拓展,主状态矩阵进行行变换;
S1~S4周期,S盒用于所述主状态矩阵第4列S变换;
S5~S8周期,S盒用于所述主状态矩阵第3列S变换,所述主状态矩阵第4列进行列混淆和轮密钥加运算;
S9~S12周期,S盒用于所述主状态矩阵第2列S变换,所述主状态矩阵第3列进行列混淆和轮密钥加运算;
S13~S16周期,S盒用于所述主状态矩阵第1列S变换,所述主状态矩阵第2列进行列混淆和轮密钥加运算;
S17~S19周期,S盒用于密钥拓展,所述主状态矩阵第1列进行列混淆和轮密钥加运算;
当根据模式选择控制信号选择128bit密钥加解密运算时,进行如下运算:
第一轮计算进行之前,先进行S17~S19周期计算,但屏蔽列混淆和轮密钥加运算,再从第一轮S0周期开始计算,其他分配与所述256bit密钥加解密运算的计算相同。
7.如权利要求6所述的一种轻量级双模兼容AES加解密方法,其特征在于:在步骤三中,在加密和解密运算的每次轮变换中,均为先计算行变换再进行S变换,加密运算和解密运算保持列混淆和轮密钥加的顺序不同,加密运算先进性列混淆,解密计算先进行轮密钥加。
8.如权利要求7所述的一种轻量级双模兼容AES加解密方法,其特征在于:在步骤三中,主状态矩阵每轮计算需要使用16次S盒,密钥拓展每轮需使用4次S盒,主状态机在每轮运算中将S盒分配给主状态矩阵和密钥拓展的不同部分使用,每轮计算中,每次分四周期对一列元素进行S变换后,再同时输入到列混淆模块进行运算,列混淆运算和轮密钥加发生在同一个周期。
9.如权利要求8所述的一种轻量级双模兼容AES加解密方法,其特征在于,所述密钥拓展中采用的轮密钥生成规则为:
Figure FDA0002371405910000041
其中,w[i]为密钥字,每个长度为32bit,i为密钥的序数,sub函数表示S变换,rot为一个移位函数,rcon函数为AES标准文档中所规定的一个与轮数有关的函数,对应不同轮数取特定常数,Nk为密钥字的长度,对于128-bit、256-bit密钥分别取4、8。
CN201510107703.9A 2015-03-12 2015-03-12 轻量级双模兼容aes加解密模块及其方法 Active CN106034021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510107703.9A CN106034021B (zh) 2015-03-12 2015-03-12 轻量级双模兼容aes加解密模块及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510107703.9A CN106034021B (zh) 2015-03-12 2015-03-12 轻量级双模兼容aes加解密模块及其方法

Publications (2)

Publication Number Publication Date
CN106034021A CN106034021A (zh) 2016-10-19
CN106034021B true CN106034021B (zh) 2020-04-10

Family

ID=57149828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510107703.9A Active CN106034021B (zh) 2015-03-12 2015-03-12 轻量级双模兼容aes加解密模块及其方法

Country Status (1)

Country Link
CN (1) CN106034021B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109033894B (zh) * 2018-06-11 2021-06-22 安徽工程大学 普通轮变换运算单元、普通轮变换电路及其aes加密电路
CN109033847B (zh) * 2018-06-11 2021-06-18 安徽工程大学 Aes加密运算单元、aes加密电路及其加密方法
CN109033892B (zh) * 2018-06-11 2021-08-31 安徽工程大学 基于合成矩阵的轮变换复用电路及aes解密电路
CN109033893B (zh) * 2018-06-11 2021-06-18 安徽工程大学 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
CN108989018B (zh) * 2018-06-11 2021-05-04 安徽工程大学 一种aes加密单元、aes加密电路及加密方法
CN109818733B (zh) * 2019-03-27 2022-04-26 苏州中晟宏芯信息科技有限公司 一种高级加密标准运算电路及其加解密方法
CN112804194B (zh) * 2020-12-25 2023-05-19 朗坤智慧科技股份有限公司 基于5g的电子输注泵远程监测方法、系统和网络侧服务端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1921382A (zh) * 2006-09-06 2007-02-28 华为技术有限公司 一种基于aes算法的加解密方法及加解密器
CN101588233A (zh) * 2008-05-19 2009-11-25 北京大学深圳研究生院 无线传感器网络节点应用中aes协处理器系统与架构
CN102185692A (zh) * 2011-04-25 2011-09-14 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN102801519A (zh) * 2012-07-10 2012-11-28 记忆科技(深圳)有限公司 一种实现aes加解密的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8879725B2 (en) * 2008-02-29 2014-11-04 Intel Corporation Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
US8238557B2 (en) * 2008-12-16 2012-08-07 Exelis Inc. Method and apparatus for key expansion to encode data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1921382A (zh) * 2006-09-06 2007-02-28 华为技术有限公司 一种基于aes算法的加解密方法及加解密器
CN101588233A (zh) * 2008-05-19 2009-11-25 北京大学深圳研究生院 无线传感器网络节点应用中aes协处理器系统与架构
CN102185692A (zh) * 2011-04-25 2011-09-14 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN102801519A (zh) * 2012-07-10 2012-11-28 记忆科技(深圳)有限公司 一种实现aes加解密的方法及装置

Also Published As

Publication number Publication date
CN106034021A (zh) 2016-10-19

Similar Documents

Publication Publication Date Title
CN106034021B (zh) 轻量级双模兼容aes加解密模块及其方法
JP5822970B2 (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス
EP3200385B1 (en) Encryption method and encryption device
US8175265B2 (en) Systems and methods for implementing block cipher algorithms on attacker-controlled systems
US8094816B2 (en) System and method for stream/block cipher with internal random states
EP3371928B1 (en) Key sequence generation for cryptographic operations
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN102025484A (zh) 一种分组密码加解密方法
KR102169369B1 (ko) 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
CN103812641A (zh) 一种实现sm4分组对称密码算法的系统
CN110784307B (zh) 轻量级密码算法scenery实现方法、装置及存储介质
CN116488794B (zh) 基于fpga的高速sm4密码模组实现方法及装置
CN103444125A (zh) 加密处理设备、加密处理方法和程序
WO2008114829A1 (ja) 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体
CN104219045A (zh) Rc4 流密码生成器
JP2015191107A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
US20140369499A1 (en) Cryptographic device, cryptographic processing method, and cryptographic processing program
US20120321079A1 (en) System and method for generating round keys
JP6292195B2 (ja) 情報処理装置及び情報処理方法
CN102780557B (zh) 一种选择门优化的aes加解密方法及装置
CN102857334B (zh) 一种实现aes加解密的方法及装置
KR101662291B1 (ko) 경량 블록암호 lea 기반 암호화 및 복호화 장치
CN110071927B (zh) 一种信息加密方法、系统及相关组件
KR20060014420A (ko) 암호화/암호 해독용 장치, 메모리 요구량 감소 방법 및컴퓨터 프로그램 제품
KR20100054697A (ko) 데이터의 암호화 방법 및 그 복호화 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant