CN112134686A - 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质 - Google Patents
一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质 Download PDFInfo
- Publication number
- CN112134686A CN112134686A CN202010947808.6A CN202010947808A CN112134686A CN 112134686 A CN112134686 A CN 112134686A CN 202010947808 A CN202010947808 A CN 202010947808A CN 112134686 A CN112134686 A CN 112134686A
- Authority
- CN
- China
- Prior art keywords
- encryption
- decryption
- unit
- aes
- key
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims description 36
- 238000009826 distribution Methods 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 7
- 238000006467 substitution reaction Methods 0.000 abstract description 12
- 239000011159 matrix material Substances 0.000 description 12
- 238000013461 design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 239000002131 composite material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
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/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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种基于可重构计算的AES硬件实现方法及运行该方法的计算机设备与可读存储介质,硬件实现方法具体包括如下步骤:步骤1、初始化;步骤2、调用密钥运算单元;步骤3、读取与传输数据源;步骤4、调用加/解密计算单元;步骤5、读取与传输结果数据;步骤6、判决。本发明的目的在于提高AES硬件实现算法的灵活性,根据配置信息的不同,对硬件架构进行重构,支持AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度等参数灵活配置。该发明可以有效提高AES硬件实现的配置灵活性,同时,将行移位、列混淆和字节替代三个步骤进行合并,减小AES算法的关键路径,在保证加解密精度的同时提高硬件实现速度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于可重构计算的AES硬件实现方法及运行该方法的计算机设备与可读存储介质。
背景技术
随着信息时代的到来,通信系统不断更迭,在信息技术为人们的经济文化生产生活带来极大便利的同时,人们对于信息安全的需求也与日俱增,网络安全性也成为了人们关注的重点。有效的数据加密、解密算法在保护信息安全中发挥着至关重要的作用。现代加解密算法主要包括对称加密算法(symmetrical encryptionalgorithm)和非对称加密算法(asymmetrical encryptionalgorithm)。其中,对称加密算法采用单密钥系统,接收方和发送方采用同一个密钥对信息进行加密和解密,也称为单密钥加密。其优点在于加解密速度快,效率高,运算量小且算法公开。
对称加密主要分为流加密和分组加密两类,分组加密将待加密的明文进行分组,对每组明文分别进行加密,每组明文和所得密文的长度相同。AES(Advanced EncryptionStandard)加密是目前公认的最安全的加密方式之一,是对称加密算法中最流行的方式。
AES算法中的主要步骤包括:密钥扩展及调度及对明文/密文进行的轮函数运算。轮函数运算包括:轮密钥加,字节替代,行移位,列混淆四种运算。称正在轮函数中进行运算的128bit数据为状态矩阵,轮密钥加通过对扩展完成的128bit轮密钥及128bit状态矩阵1按位异或,得到状态矩阵2;字节替代将状态矩阵2分为16*8bit的字节,依次在S盒中进行查找,输出16*8bit状态矩阵3;行移位对状态矩阵进行固定的移位操作,得到状态矩阵4;列混淆采用伽罗瓦域上的乘法实现状态矩阵4与固定矩阵相乘,输出状态矩阵5,一次轮函数运算结束。
目前,针对S盒的优化研究是提高AES算法效率的重要方向之一。A.Satoh提出采用复合域的方式实现S盒,该方案能极大程度的缩小电路面积,但其实现速度并不能满足一些需要高吞吐率的应用场景。
发明内容
发明目的:一个目的是提供一种基于可重构计算的AES硬件实现方法,以提高AES硬件实现算法的灵活性,实现AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度等参数灵活配置。进一步目的是提供一种可运行上述方法的计算机设备以及可被该计算机设备读取的存储介质。
技术方案:一种基于可重构计算的AES硬件实现方法,包括如下步骤:
步骤1、初始化;
步骤2、调用密钥运算单元;
步骤3、读取与传输数据源;
步骤4、调用加/解密计算单元;
步骤5、读取与传输结果数据;
步骤6、判决。
在进一步的实施例中,所述步骤1进一步为:读取存储在缓存中的AES加解密配置信息,并将配置信息传输至AES加解密控制单元,包括AES分组模式CBC/EBC选择信息,密钥长度选择信息,加/解密模式选择信息,待运算明文/密文总长度信息;
所述AES加解密控制单元通过有限状态机控制AES加解密算法的运算流程;根据不同配置信息对系统进行重构;通过调用密钥运算单元对原始密钥进行扩展运算;通过调用加/解密计算单元以实现AES加解密算法。
在进一步的实施例中,所述步骤2进一步为:密钥运算单元根据控制单元信息对原始密钥进行扩展运算,并传输至加/解密计算单元。
在进一步的实施例中,所述步骤3进一步为:利用源数据/结果数据分发单元根据控制单元信息产生数据地址并访问存储单元,将相应的输入信息,包括对应密钥及待运算明文/密文传输计算单元,传输结束后跳转至步骤4。
在进一步的实施例中,所述步骤4进一步为:加/解密计算单元根据控制单元信息对源数据分发单元的信息进行运算,并将结果数据传输至结果数据分发单元,传输结束后跳转至步骤5;
其中,所述加/解密计算单元包括至少N路128bit按位异或运算单元以及至少N路T盒查找单元;其中,N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元包括4路16bit输入8bit输出,规模为8*16*16*8bit的查找表。
在进一步的实施例中,所述步骤5进一步为:结果数据分发单元根据控制单元信息产生结果数据地址,并将计算单元结果存入存储单元,跳转至步骤6;
其中,所述存储单元将数据存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
在进一步的实施例中,所述步骤6进一步为:判断是否已经完成对配置要求的所有信息的计算,未完成则返回步骤3,已完成则结束算法,输出结果。
一种基于可重构计算的AES硬件实现方法,基于如下硬件架构,包括控制单元、密钥运算单元、源数据/结果数据分发单元,计算单元及存储单元。
其中,控制单元通过有限状态机控制AES加解密算法的运算流程;根据不同配置信息对系统进行重构;通过调用密钥运算单元对原始密钥进行扩展运算;通过调用加/解密计算单元以实现AES加解密算法。
密钥运算单元根据控制器信息对原始密钥进行扩展运算。
源数据/结果数据分发单元根据控制信息产生源数据/结果数据地址,实现存储单元至计算单元的数据传输。
加/解密计算单元根据配置对输入信息进行相应计算。
存储单元对源数据和结果数据进行暂存。
在进一步的实施例中,所述配置信息包括加解密模式选择信号、明文/密文CBC/EBC分组模式选择信号、密钥长度配置信息、以及总待运算明文/密文长度配置信息。
在进一步的实施例中,该系统可根据配置信息进行重构,所执行的AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度可以灵活配置。
在进一步的实施例中,加/解密计算单元由N路128bit按位异或运算单元以及N路T盒查找单元构成。
在进一步的实施例中,加密计算单元中的批次参数N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元由4路16bit输入8bit输出,规模为8*16*16*8bit的查找表构成,该硬件系统中,N灵活可配。
在进一步的实施例中,T盒查找单元的输入信息包括:8bit基本系数及8bit状态输入。
在进一步的实施例中,存储单元可以进行裁剪拆分。将数据存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序存储在一种计算机可读存储介质上,计算机设备通过运行该可读存储介质,由处理器执行计算机程序,进而实现以下步骤:
步骤1、初始化:读取存储在缓存中的AES加解密配置信息,并将配置信息传输至AES加解密控制单元,包括AES分组模式CBC/EBC选择信息,密钥长度选择信息,加/解密模式选择信息,待运算明文/密文总长度信息;所述AES加解密控制单元通过有限状态机控制AES加解密算法的运算流程;根据不同配置信息对系统进行重构;通过调用密钥运算单元对原始密钥进行扩展运算;通过调用加/解密计算单元以实现AES加解密算法。
步骤2、调用密钥运算单元:密钥运算单元根据控制单元信息对原始密钥进行扩展运算,并传输至加/解密计算单元。
步骤3、读取与传输数据源:利用源数据/结果数据分发单元根据控制单元信息产生数据地址并访问存储单元,将相应的输入信息,包括对应密钥及待运算明文/密文传输计算单元,传输结束后跳转至步骤4。
步骤4、调用加/解密计算单元:加/解密计算单元根据控制单元信息对源数据分发单元的信息进行运算,并将结果数据传输至结果数据分发单元,传输结束后跳转至步骤5;其中,所述加/解密计算单元包括至少N路128bit按位异或运算单元以及至少N路T盒查找单元;其中,N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元包括4路16bit输入8bit输出,规模为8*16*16*8bit的查找表。
步骤5、读取与传输结果数据:结果数据分发单元根据控制单元信息产生结果数据地址,并将计算单元结果存入存储单元,跳转至步骤6;其中,所述存储单元将数据存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
步骤6、判决:判断是否已经完成对配置要求的所有信息的计算,未完成则返回步骤3,已完成则结束算法,输出结果。
一种计算机可读存储介质,该可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下过程:
步骤1)初始化:读取存储在缓存中的AES加解密配置信息,并将配置信息传输至AES加解密控制单元,其中包括AES分组模式CBC/EBC选择信息cbc_ebc,密钥长度选择信息key_len,加/解密模式选择信息mode,待运算明文/密文总长度信息data_len,并行路数N;
步骤2)调用密钥运算单元:密钥运算单元根据当前访问批次对原始密钥进行扩展运算,并传输至加/解密计算单元;
步骤3)源数据读取与传输:源数据分发单元根据控制单元信息产生数据地址并访问存储单元,将相应的输入信息,包括对应密钥及待运算明文/密文传输计算单元,传输结束后跳转至步骤4);
步骤4)调用加/解密计算单元:计算单元根据控制单元信息对源数据分发单元的信息进行运算,以128bit密钥-10轮加密为例,其计算过程如图2所示。计算结束后,将结果数据传输至结果数据分发单元,传输结束后跳转至步骤5);
步骤5)结果数据读取与传输:结果数据分发单元根据当前访问批次n及当前数据分组m产生结果数据地址,并将计算单元结果存入存储单元,跳转至步骤6);
步骤6)判决:判断当前访问批次n是否等于配置批次N,若不等,则返回步骤3),若相等,则已完成则结束算法,输出结果。
有益效果:
第一、本发明实现了一种高性能的基于可重构计算的AES硬件实现方法,硬件架构可根据可重构控制器配置字的不同进行重构,可实现10轮、12轮、14轮加解密运算,同时可支持CBC、EBC两种不同的加解密模式;AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度可以灵活配置,在节省硬件资源的基础上大大提高了硬件的灵活性。
第二、本发明提出了一种可以复用的AES加/解密计算单元,采用将AES算法中的行移位、列混淆、字节替代合并为T盒的方式,缩短了算法关键路径,有效提高了AES硬件实现速度,可复用的计算单元提高了硬件利用效率,减小了硬件开销。
第三、本发明提出的数据存储单元可支持裁剪拆分且无访存冲突,在EBC模式加解密运算中可实现全流水运算。
第四、本发明架构的主要运算单元为128bit按位异或运算单元,8*16*16*8bit查找表,易于硬件实现,在保证性能的同时降低了算法的复杂度及硬件开销。
综上所述,本发明可以有效地提高系统性能,具有较高的灵活性,较高的硬件实现速度及硬件利用效率,有着良好的实际应用价值。
附图说明
图1为本发明的实现方法流程图。
图2为本发明的计算模型示意图。
图3为本发明的实现系统架构示意图。
图4为本发明的计算单元架构示意图。
图5为本发明的计算单元中T盒结构示意图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
申请人认为,目前针对S盒的优化研究是提高AES算法效率的重要方向之一。A.Satoh提出采用复合域的方式实现S盒,该方案能极大程度的缩小电路面积,但其实现速度并不能满足一些需要高吞吐率的应用场景。
为此,申请人提出一种基于可重构计算的AES硬件实现方法,以提高AES硬件实现算法的灵活性,实现AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度等参数灵活配置。该发明可以有效地提高AES硬件实现的配置灵活性,有效减小了硬件资源开销,同时,将行移位、列混淆和字节替代三个步骤进行合并,减小了AES算法的关键路径,在保证加解密精度的同时有效提高了硬件实现速度,更好的满足了实际应用需求。并进一步提出一种可运行上述方法的计算机设备以及可被该计算机设备读取的存储介质。
本发明所述的基于可重构计算的AES硬件实现方法,其具体实现流程如图1所示。该方法的具体步骤如下:
步骤1)初始化:读取存储在缓存中的AES加解密配置信息,并将配置信息传输至AES加解密控制单元,其中包括AES分组模式CBC/EBC选择信息cbc_ebc,密钥长度选择信息key_len,加/解密模式选择信息mode,待运算明文/密文总长度信息data_len,并行路数N;
步骤2)调用密钥运算单元:密钥运算单元根据当前访问批次对原始密钥进行扩展运算,并传输至加/解密计算单元;
步骤3)源数据读取与传输:源数据分发单元根据控制单元信息产生数据地址并访问存储单元,将相应的输入信息,包括对应密钥及待运算明文/密文传输计算单元,传输结束后跳转至步骤4);
步骤4)调用加/解密计算单元:计算单元根据控制单元信息对源数据分发单元的信息进行运算,以128bit密钥-10轮加密为例,其计算过程如图2所示。计算结束后,将结果数据传输至结果数据分发单元,传输结束后跳转至步骤5);
步骤5)结果数据读取与传输:结果数据分发单元根据当前访问批次n及当前数据分组m产生结果数据地址,并将计算单元结果存入存储单元,跳转至步骤6);
步骤6)判决:判断当前访问批次n是否等于配置批次N,若不等,则返回步骤3),若相等,则已完成则结束算法,输出结果。
如图3所示,本实例根据所述基于可重构计算的AES硬件实现,提供一种基于可重构计算的AES的硬件实现架构,由控制单元、密钥运算单元、源数据/结果数据分发单元,计算单元及存储单元组成。其中,计算单元由128bit按位与及T盒查找单元组成,架构如图4所示,T盒示意图如图5所示。
配置信息包括加解密模式选择信号、明文/密文CBC/EBC分组模式选择信号、密钥长度配置信息、总待运算明文/密文长度配置信息。
该系统可根据配置信息进行重构,所执行的AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度可以灵活配置。
加/解密计算单元由N路128bit按位异或运算单元以及N路T盒查找单元构成。
加密计算单元中的批次参数N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元由4路16bit输入8bit输出,规模为8*16*16*8bit的查找表构成,该硬件系统中,N灵活可配。
T盒查找单元的输入信息包括:8bit基本系数及8bit状态输入。
存储单元可以进行裁剪拆分。将数据存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
在本实施例中,以CBC模式,128bit分组明文,128bit密钥10轮加密计算,N=1为例,第一轮运算只进行密钥相加,其余9轮加密需进行T盒中的字节代换和密钥加,在本架构中,Re-S/T盒查找需5clk,每轮中进行的字节代换流水进行,T盒查找表实现4路并行,在此情况下,处理128bit明文/密文128bit密钥所需要的时钟周期为1+7*8+1+6=64clk,以1GHz计算,吞吐率为2.0Gbps;处理128bit明文/密文192bit密钥所需要的时钟周期为1+7*10+1+6=78clk,吞吐率为1.641Gbps;处理256bit明文/密文256bit密钥所需要的时钟周期为1+7*12+1+6=92 clk,吞吐率为1.391Gbps。
为实现上述方法,本发明提供一种系统,该系统包括控制单元、密钥运算单元、源数据/结果数据分发单元,计算单元及存储单元。该系统可根据配置信息进行重构,所执行的AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长度及加解密轮数、总明文/密文长度可以灵活配置。
控制单元通过有限状态机控制AES加解密算法的运算流程;根据不同配置信息对系统进行重构;通过调用密钥运算单元对原始密钥进行扩展运算;通过调用加/解密计算单元以实现AES加解密算法。配置信息包括加解密模式选择信号、明文/密文CBC/EBC分组模式选择信号、密钥长度配置信息、总待运算明文/密文长度配置信息。
密钥运算单元根据控制器信息对原始密钥进行扩展运算。
源数据/结果数据分发单元根据控制信息产生源数据/结果数据地址,实现存储单元至计算单元的数据传输。
加/解密计算单元根据配置对输入信息进行相应计算。加/解密计算单元由N路128bit按位异或运算单元以及N路T盒查找单元构成。加密计算单元中的批次参数N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元由4路16bit输入8bit输出,规模为8*16*16*8bit的查找表构成,该硬件系统中,N灵活可配。T盒查找单元的输入信息包括:8bit基本系数及8bit状态输入。
存储单元对源数据和结果数据进行暂存。存储单元可以进行裁剪拆分。将数据存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
本发明基于可重构计算的AES硬件实现方法实现了根据配置信息的不同,对硬件架构进行重构。
在该可重构架构中,涉及多种模式的不同配置,以下对传统AES中的轮函数设计与本发明中采用的轮函数设计进行阐述:
传统AES设计:
轮密钥加->行移位->列混淆->S盒字节替代
tmp2=rot(tmp1)
tmp3=GF(2^8)(weight_matrix×tmp2_matrix)
round_output=S_LUT(tmp3)
本发明中采用的AES设计:
轮密钥加->T盒替代
round_output=T_LUT(tmp1)
本发明可支持10轮、12轮、14轮加解密运算,同时可支持CBC、EBC两种不同 的加解密模式。AES加解密算法的加解密模式、明文/密文CBC/EBC分组模式、密钥长 度及加解密轮数、总明文/密文长度可以灵活配置;采用将AES算法中的行移位、列混 淆、字节替代合并为T盒的方式,缩短了算法关键路径,有效提高了AES硬件实现速 度。关键路径的缩短方式为:将传统AES算法中的行移位、列混淆、S盒字节替代三个 步骤进行合并,直接通过T盒查找实现,使得原本的三个步骤合并为一步,从而缩短关 键路径,提高硬件计算效率。
可复用的计算单元提高了硬件利用效率,减小了硬件开销。计算模块易于硬件实现,在保证性能的同时降低了算法的复杂度及硬件开销。作为信息安全领域的典型算法,该硬件实现方式可以有效地提高系统性能,具有较高的灵活性,较高的硬件实现速度及硬件利用效率,有着良好的实际应用价值及前景。
在本发明中采用的AES轮函数的设计方案与传统AES硬件设计方案相比,最突出的优点在于:
硬件架构可根据可重构控制器配置字的不同进行重构,支持多种模式、不同配置的AES加解密算法,在节省硬件资源的基础上大大提高了硬件的灵活性。
本发明中采用将AES算法中的行移位、列混淆、S盒字节替代合并为T盒的方式,缩短了算法关键路径,有效提高了AES硬件实现速度,可复用的计算单元提高了硬件利用效率,减小了硬件开销。以10轮-128bit密钥加密算法,1GHz主频为例,在查找表访存效率相同,处理大量单密钥数据(忽略密钥扩展计算时间),异或运算规模相同的情况下,传统AES硬件设计进行一次AES加密吞吐率为1.6Gbps,而本发明中的AES加密吞吐率为2.51Gbps。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。
Claims (10)
1.一种基于可重构计算的AES硬件实现方法,其特征是包括如下步骤:
步骤1、初始化;
步骤2、调用密钥运算单元;
步骤3、读取与传输数据源;
步骤4、调用加/解密计算单元;
步骤5、读取与传输结果数据;
步骤6、判决。
2.根据权利要求1所述的一种基于可重构计算的AES硬件实现方法,其特征在于,所述步骤1进一步为:
读取存储在缓存中的AES加解密配置信息,并将配置信息传输至AES加解密控制单元,包括AES分组模式CBC/EBC选择信息,密钥长度选择信息,加/解密模式选择信息,待运算明文/密文总长度信息;
所述AES加解密控制单元通过有限状态机控制AES加解密算法的运算流程;根据不同配置信息对系统进行重构;通过调用密钥运算单元对原始密钥进行扩展运算;通过调用加/解密计算单元以实现AES加解密算法。
3.根据权利要求1所述的一种基于可重构计算的AES硬件实现方法,其特征在于,所述步骤2进一步为:
步骤2-1、密钥运算单元根据控制单元信息对原始密钥进行扩展运算,并传输至加/解密计算单元;
所述步骤3进一步为:
步骤3-1、利用源数据/结果数据分发单元根据控制单元信息产生数据地址并访问存储单元,将相应的输入信息,包括对应密钥及待运算明文/密文传输计算单元,传输结束后跳转至步骤4。
4.根据权利要求1所述的一种基于可重构计算的AES硬件实现方法,其特征在于,所述步骤4进一步为:
加/解密计算单元根据控制单元信息对源数据分发单元的信息进行运算,并将结果数据传输至结果数据分发单元,传输结束后跳转至步骤5;
其中,所述加/解密计算单元包括至少N路128bit按位异或运算单元以及至少N路T盒查找单元;其中,N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元包括4路16bit输入8bit输出,规模为8*16*16*8bit的查找表。
5.根据权利要求1所述的一种基于可重构计算的AES硬件实现方法,其特征在于,所述步骤5进一步为:
结果数据分发单元根据控制单元信息产生结果数据地址,并将计算单元结果存入存储单元,跳转至步骤6;
其中,所述存储单元将数据存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
6.根据权利要求1所述的一种基于可重构计算的AES硬件实现方法,其特征在于,所述步骤6进一步为:
判断是否已经完成对配置要求的所有信息的计算,未完成则返回步骤3,已完成则结束算法,输出结果。
7.一种基于可重构计算的AES硬件实现方法,其特征在于包括以下模块:
控制单元:通过有限状态机控制AES加解密算法的运算流程;根据不同配置信息对系统进行重构;通过调用密钥运算单元对原始密钥进行扩展运算;通过调用加/解密计算单元以实现AES加解密算法;
密钥运算单元:根据控制器信息对原始密钥进行扩展运算;
源数据/结果数据分发单元:根据控制信息产生源数据/结果数据地址,实现存储单元至计算单元的数据传输;
加/解密计算单元:根据配置对输入信息进行相应计算;
存储单元:对源数据和结果数据进行暂存。
8.根据权利要求7所述的基于可重构计算的AES硬件实现方法,其特征在于,所述配置信息包括加解密模式选择信号、明文/密文CBC/EBC分组模式选择信号、密钥长度配置信息、以及总待运算明文/密文长度配置信息;
所述加/解密计算单元包括至少N路128bit按位异或运算单元以及至少N路T盒查找单元;其中,N代表并行路数,其取值取决于运算资源和存储资源,N路并行需要N个128bit按位异或运算单元,N个T盒查找单元构成,其中,T盒查找单元包括4路16bit输入8bit输出,规模为8*16*16*8bit的查找表;
所述存储单元拆分为2N+1个bank,其中2N个数据bank和1个密钥bank,待运算的明文/密文放在前N个数据bank中,对应的N个密钥依次放在密钥bank中,输出数据则放在其余的N个bank中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010947808.6A CN112134686A (zh) | 2020-09-10 | 2020-09-10 | 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010947808.6A CN112134686A (zh) | 2020-09-10 | 2020-09-10 | 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112134686A true CN112134686A (zh) | 2020-12-25 |
Family
ID=73846301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010947808.6A Pending CN112134686A (zh) | 2020-09-10 | 2020-09-10 | 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134686A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910628A (zh) * | 2021-01-29 | 2021-06-04 | 苏州浪潮智能科技有限公司 | 一种aes运算的方法和设备 |
CN112966289A (zh) * | 2021-03-30 | 2021-06-15 | 中国电子信息产业集团有限公司第六研究所 | 一种信息处理方法、装置、计算机设备和介质 |
CN114465711A (zh) * | 2022-01-29 | 2022-05-10 | 支付宝(杭州)信息技术有限公司 | 一种存储器的硬件秘钥重构方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030223580A1 (en) * | 2002-05-23 | 2003-12-04 | Snell Dorian L. | Advanced encryption standard (AES) hardware cryptographic engine |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
CN102484581A (zh) * | 2009-06-19 | 2012-05-30 | 耶德托公司 | 使用中间数据更改的具有可配置密钥的白盒密码系统 |
-
2020
- 2020-09-10 CN CN202010947808.6A patent/CN112134686A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030223580A1 (en) * | 2002-05-23 | 2003-12-04 | Snell Dorian L. | Advanced encryption standard (AES) hardware cryptographic engine |
CN102484581A (zh) * | 2009-06-19 | 2012-05-30 | 耶德托公司 | 使用中间数据更改的具有可配置密钥的白盒密码系统 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
Non-Patent Citations (2)
Title |
---|
杨斐: "基于AES 的可重构加密系统的FPGA 设计", 《微型机与应用》 * |
杨静: "一种AES算法加密传输系统的设计与实现", 《电子设计工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910628A (zh) * | 2021-01-29 | 2021-06-04 | 苏州浪潮智能科技有限公司 | 一种aes运算的方法和设备 |
CN112966289A (zh) * | 2021-03-30 | 2021-06-15 | 中国电子信息产业集团有限公司第六研究所 | 一种信息处理方法、装置、计算机设备和介质 |
CN114465711A (zh) * | 2022-01-29 | 2022-05-10 | 支付宝(杭州)信息技术有限公司 | 一种存储器的硬件秘钥重构方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112134686A (zh) | 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质 | |
US8020006B2 (en) | Pipeline for high-throughput encrypt functions | |
CN106921487B (zh) | 可重构s盒电路结构 | |
US7885404B2 (en) | Cryptographic systems and methods supporting multiple modes | |
US7688974B2 (en) | Rijndael block cipher apparatus and encryption/decryption method thereof | |
CN110321162B (zh) | 基于粗粒度可重构计算单元的present加密算法实现方法及系统 | |
US7653196B2 (en) | Apparatus and method for performing RC4 ciphering | |
CN106992852B (zh) | 应用于AES与Camellia密码算法的可重构S盒电路结构 | |
CN107181586B (zh) | 可重构s盒电路结构 | |
WO2009031883A1 (en) | Encryption processor | |
Nishikawa et al. | High-performance symmetric block ciphers on CUDA | |
Zhu et al. | Study of the AES realization method on the reconfigurable hardware | |
CN113078996B (zh) | Sm4密码算法的fpga优化实现方法、系统及应用 | |
Luo et al. | Design and implementation of area-optimized AES based on FPGA | |
JP2002040932A (ja) | データ暗号化標準アルゴリズムを利用する暗号化装置 | |
Abdelrahman et al. | Analysis on the aes implementation with various granularities on different gpu architectures | |
CN110445601B (zh) | 祖冲之加密算法提速方法、系统、存储介质及计算机设备 | |
US7627764B2 (en) | Apparatus and method for performing MD5 digesting | |
WO2023192772A2 (en) | A reconfigurable architecture for improvement and optimization of advanced encryption standard | |
CN108566271B (zh) | 复用轮变换电路、aes加密电路及其加密方法 | |
CN113922949B (zh) | 一种基于clefia-sha3的密码协处理器 | |
KR20100068902A (ko) | 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법. | |
JP2003098959A (ja) | 暗号処理装置 | |
KR101240243B1 (ko) | Aes의 ctr 모드에 따른 암호화 장치 및 방법 | |
CN117439744A (zh) | 基于业务安全等级的业务数据传输方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201225 |
|
RJ01 | Rejection of invention patent application after publication |