CN103297223B - 基于动态可重构的自恢复容错aes装置及其加密方法 - Google Patents
基于动态可重构的自恢复容错aes装置及其加密方法 Download PDFInfo
- Publication number
- CN103297223B CN103297223B CN201310163791.5A CN201310163791A CN103297223B CN 103297223 B CN103297223 B CN 103297223B CN 201310163791 A CN201310163791 A CN 201310163791A CN 103297223 B CN103297223 B CN 103297223B
- Authority
- CN
- China
- Prior art keywords
- input
- data
- selector
- module
- reconfigurable
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提出一种基于动态可重构的自恢复容错AES结构及其加密方法,属于信息安全技术领域。所述自恢复容错AES结构具有时钟模块、控制模块、可重构阵列模块、密钥扩展模块和输入输出接口模块,可重构阵列模块为2D‑TORUS网络结构的M×N互连开关连接的M×N可重构处理单元阵列;本加密方法在K‑1轮运算中顺序进行求异或、字节变换、行变换和列混合,最后一轮省略列混合运算,最后进行一次求异或运算。本发明将运算功能细分到单独的可重构运算单元中,加入相同的单元做冗余部分,构成可重构的自恢复容错AES结构,能够实现AES算法的自恢复功能。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一个基于动态可重构的自恢复容错AES装置及其加密方法。
背景技术
为了提高芯片的可靠性和安全性,通常采用容错技术来设计整个系统。通过对资源的冗余利用,在结构发生故障时,绕过故障区域,完成系统功能,以牺牲一部分冗余资源为代价,换取可靠性的提高。动态重构阵列网络作为新型手段,在芯片坏点屏蔽,多核处理器动态交互,多核芯片错误容忍提高芯片成品率等方面,都展现了其特有的功效。灵活的重构系统,数据的连线交互,都对系统可靠性有了更大的提高。
针对AES(Advanced Encryption Standard,高级加密标准)加密系统的结构特点,采用动态重构的思想,将运算功能细分到单独的可重构运算单元中,加入相同的单元做冗余部分,使用连接开关将其连接成为二维TORUS网络,构成可重构的系统结构。该系统使用一定的冗余资源实现了AES的自修复功能,在其受到太空影响导致一部分芯片资源失效时,通过动态重构完成系统功能的恢复,保证数据加密功能的实现。动态重构AES加密系统在设计上更加复杂,需要适当的自我检测和系统重构算法,针对性的屏蔽掉了损坏的单元,来实现自修复,在系统上增强了冗余的灵活性,跟传统的三模冗余结构相比,具有更高的可靠性和安全性。
重构阵列通常用在超大规模集成电路VLSI以及WSI的硬件电路冗余设计上,由于大规模集成电路集成度的提高,导致芯片复杂度增加,面积增加,进而影响到缺陷数量增加,影响了成品率。在设计VLSI和WSI级别的电路时,为了提高可靠性和芯片成品率,使用容错技术,以使电路具备容错的能力。国外早期的数字系统容错著作里面包含了可重构的基本概念和很多经典设计。
在国内,廖国宁和童勤义最早在90年之前,陆续发表了多篇文章介绍了VLSI的容错技术,包括:整片集成中的容错技术及结构设计、阵列结构矩阵乘法器的容错模块方法、实时信号处理用VLSI的容错设计、VLSI二维阵列的容错设计和容错VLSI的可靠性分析模型及其应用等论文。1999年赵天绪、郝跃等人在VLSI容错结构设计及其可靠性模型研究一文中,对树形冗余结构进行了总结。最新的研究是基于仿生学阵列的容错技术设计。
在1990年,天津大学计算机系王镭公开了《容错多处理器网络系统结构》,提出应该在分布式/多处理器系统方面对可靠性、容错多处理器网络的研究引起关注,实现在提高晶片合格率的同时,提高系统的灵活性。
现有的AES可重构设计,主要是结构上的功能添加,比如可以支持多种长度,可以支持AES和SMS4密码算法切换,加密解密部分电路复用,实现资源的节约。
发明内容
本发明针对AES加密系统的结构特点,为了克服传统的三模冗余结构灵活性差,可靠性与安全性低的不足,采用动态重构的思想,提出一种基于动态可重构的自恢复容错AES装置及其加密方法。
本发明提供了一种基于动态可重构的自恢复容错AES装置,包括:时钟模块、控制模块、可重构阵列模块、密钥扩展模块以及输入输出接口模块。
时钟模块接收外部输入的时钟,输出AES装置工作需要的时钟信号给控制模块,驱动电路工作。输入输出接口模块将需要加密的数据输入可重构阵列模块,将作为密钥的数据输入密钥扩展模块。密钥扩展模块对接收到的数据进行密钥扩展处理,并将处理生成的数据传输到可重构阵列模块。控制模块生成自测试数据,接收判断错误信号,执行AES加密运算处理的控制流程,发送对可重构阵列模块、密钥扩展模块和输入输出接口模块工作的控制信号,并接收可重构阵列模块、密钥扩展模块和输入输出接口模块的工作反馈信号。可重构阵列模块对从输入输出接口模块输入进来的数据结合密钥扩展模块输入的密钥进行AES加密运算处理,并将生成的密文数据通过输入输出接口模块输出。
可重构阵列模块包括M行×N列的可重构处理单元和M行×N列的互连开关,M行×N列的互连开关为2D-TORUS网络结构,每行的可重构处理单元与相邻的互连开关相连,在相邻行的可重构处理单元之间由互连开关直接相连。
本发明基于所述的自恢复容错AES装置,提供了一种AES加密方法,具体步骤如下:
步骤1:在第一轮运算处理中,各可重构处理单元的第一选择器选择明文数据输入给第一异或运算单元;
步骤2:进行轮运算,每轮中顺序进行求异或、字节变换、行变换和列混合;具体是:
步骤2.1:可重构处理单元将输入的扩展密钥和从第一选择器选择的数据在第一异或运算单元进行异或运算,在第二轮运算开始,第一选择器选择列混合运算单元输出的数据;
步骤2.2:将经过异或运算的数据输入字节变换运算单元进行字节变换;
步骤2.3:进行行变换;经过字节变换的数据,由第二选择器选择输出,实现数据向左移位;由第三选择器选择输出,实现不移位;由第四选择器选择输出,实现右移位;
步骤2.4:判断当前是否是最后一轮运算,若是,执行步骤3;若否,则将行变换后的数据输入同列可重构处理单元的列混合运算单元进行列混合运算,然后转步骤2.1执行;
步骤3:将行变换后的数据输入第二异或运算单元,与输入的扩展密钥进行异或运算,得到加密数据,并将加密数据恢复顺序输出。
本发明的自恢复容错AES装置及其加密方法的优点与积极效果在于:本发明的自恢复容错AES装置及其加密方法可用于特殊环境下的AES加密硬件系统,在器件部分功能单元受损失效后,可通过动态配置冗余的功能单元,并重构为正确的AES加密功能,实现容错自恢复的效果。使在特殊条件下工作的加密芯片即使受到了一些特殊的高辐射、剧烈温度变化,信息位翻转等各种软硬错误时,依旧可以通过可重构技术在无人在场的情况下,自主的将故障部件或失效模块重新配置,完成自主修复,保证芯片的正常运行,大大提高了系统的可靠性和可用性。
附图说明
图1是本发明的自恢复容错AES装置的模块示意图;
图2是本发明实施例的可重构阵列模块的结构示意图;
图3a是现有原始的AES算法流程图;
图3b是本发明改进后的AES算法流程图;
图4是本发明重构处理单元的结构示意图;
图5是本发明的输入输出接口模块输入可重构阵列模块的数据示意图;
图6a是4种行变换移位的示意图;
图6b是本发明实现行变换移位的示意图;
图7是本发明实现列混合的结构示意图;
图8a是本发明实施例中的阵列标号示意图;
图8b是本发明实施例中可重构处理单元损坏和选择的示意图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明的自恢复容错AES装置及其加密方法,采用更加细的模块,使用重构网络连接,使其具有重构的功能,在提供冗余模块单元时,能够完成使用剩余模块单元构成AES加密系统,抵御一定程度的系统损坏,完成自修复功能。
如图1所示,本发明的基于动态可重构的自恢复容错AES装置,包括:时钟模块1、控制模块2、可重构阵列模块3、密钥扩展模块4以及输入输出接口模块5。该AES装置与外部有3个接口,一个时钟输入,一个数据输入,一个数据输出。
时钟模块1把外部的50MHz晶振产生的时钟输入CLK进行倍频,得到AES装置内部工作需要的合适频率的时钟信号。时钟模块1将生成的时钟信号输入控制模块2,再由控制模块2把时钟信号传输到其余各个模块中,驱动电路工作。外部的数据通过输入输出接口模块5输入AES装置中,输入输出接口模块5把需要加密的数据输入到可重构阵列模块3中,把作为密钥的数据输入密钥扩展模块4中。密钥扩展模块4对从输入输出接口模块5中接收到的数据(密钥)进行密钥扩展处理,将经过密钥扩展处理后的数据再传输到可重构阵列模块3中。可重构阵列模块3接收控制模块2的控制信号,对从输入输出接口模块5输入进来的数据结合密钥扩展模块4输入的密钥进行AES加密运算处理,并将AES加密运算处理后生成的密文数据通过输入输出接口模块5输出。再输出加密数据的同时,将该加密数据进行AES加密所用的密钥由密钥扩展模块4通过输入输出接口模块5输出。密钥扩展模块4采用最基本的128比特密钥长度,结构上并不影响以后扩展到192和256的密钥长度。控制模块2负责生成自测试数据,接收判断错误信号,执行AES加密运算处理的控制流程,对可重构阵列模块3进行路由控制,发送对可重构阵列模块3、密钥扩展模块4和输入输出接口模块5工作的控制信号,并接收可重构阵列模块3、密钥扩展模块4和输入输出接口模块5的工作反馈信号。
可重构阵列模块包括M行×N列的可重构处理单元和M行×N列的互连开关,M行×N列的互连开关为2D-TORUS网络结构,每行的可重构处理单元与相邻的互连开关相连,在相邻行的可重构处理单元之间由互连开关直接相连。M为大于4的整数,N为大于等于4的整数。可重构阵列模块中的每个可重构处理单元每次接收8比特数据。
如图2所示,本发明实施例可重构阵列模块3采用四列六行的可重构处理单元阵列结构,即取M为6,N为4。图2所示,可重构阵列模块3中包含6行×4列的可重构处理单元和6行×4列的互连开关,6行×4列的互连开关为一个2D-TORUS阵列结构,每行的可重构单元与相邻的互连开关直接相连,在上下行的可重构处理单元之间由互连开关直接相连。第一列的互连开关和最后一列的可重构处理单元视为相邻,第一行的可重构处理单元和最后一行的可重构处理单元视为相邻。密钥扩展模块4输出密钥key给可重构阵列模块3,控制模块2输出控制信号contorl给可重构阵列模块3,可重构阵列模块3接收输入输出接口模块5传送来的明文数据State_in,对数据进行加密生成密文数据State_out,并将密文数据State_out输出给输入输出接口模块5。
如图3a所示,为现有AES算法流程图。状态输入信号(即明文数据)输入后,对状态输入信号做如下处理:开始先进行一个异或运算;接着做K-1轮的运算处理,每轮中先是字节变换,然后是行变换,再是列混合,最后又是异或运算;当轮回了K-1轮之后,将得到的结果进行最后一轮运算处理,最后一轮与前K-1轮稍微不同,省去了一次列混合运算过程。
如图3b所示,应用本发明的自恢复容错AES装置,采用改进的AES算法流程图。状态输入信号输入后,对状态输入信号做如下处理:首先做K-1轮运算处理,每轮中顺序进行求异或、字节变换、行变换和列混合;然后,将再进行最后一轮,也就是第K轮时候,依次进行求异或、字节变换和行变换,省略列混合运算;最后进行一次求异或运算。
AES算法各部分的运算方式,字节变换和求异或与现有的AES硬件实现一致,但列混合需要做输入上的修改,使其可以完成对一列上共6个可重构处理单元的列混合输出进行选择运算,而行变换则是通过连通可重构处理单元与相邻互连开关的通路,实现行方向的数据移位功能。本发明改进的AES算法流程,更加适合可重构阵列模块3的设计思路。最后一轮行变换之后不进行列混合运算,但还有一次求异或运算,这次异或运算是处于K轮运算之内的,若单独在列混合处设置电路将使设计更加复杂,本发明改进后的AES算法流程中,在每轮运算中把异或运算置于最前,这样就可以直接在最后一轮列混合之前加入输出的一条通路,单独进行一次求异或运算,设计简单。
对应本发明改进的AES算法流程,相应的可重构处理单元的最小单元结构,如图4所示,图中输入输出参数如表1所示。
表1可重构处理单元的输入输出参数
图4中,REG表示寄存器,MIX COLUMN表示列混合运算单元,MUX表示选择器,SBOX表示字节变换运算单元,XOR表示异或运算单元。XOR1表示第一异或运算单元,XOR2表示第二异或运算单元。MUX1表示第一选择器,MUX2表示第二选择器,MUX3表示第三选择器,MUX4表示第四选择器。每个可重构处理单元处理8位待加密数据(即明文数据)。
如图4所示,可重构处理单元包含五个输入端口、四个输出端口、一个列混合运算单元、四个选择器、两个异或运算单元和一个字节变换运算单元。
第一输入端口STATE_IN为明文数据输入端口,将明文数据输入第一选择器MUX1。第二输入端口KEY_IN为密钥输入端口,将密钥输入两个异或运算单元XOR1和XOR2。第三输入端口LEFT_IN为左开关输入端口,与可重构处理单元左边相邻的互连开关连接,第三输入端口输入的数据输入第三选择器MUX3和第四选择器MUX4。第四输入端口RIGHE_IN为右开关输入端口,与可重构处理单元右边相邻的互连开关连接,第四输入端口输入的数据输入第二选择器MUX2和第三选择器MUX3。第五输入端口MIX_IN为列混合输入端口,与同列M个可重构处理单元的列混合输出端口连接,第五输入端口输入的数据输入列混合运算单元MIXCOLUMN。列混合运算单元MIX COLUMN将列混合运算后的数据输入第一选择器MUX1,第一选择器MUX1的输出端连接第一异或运算单元XOR1,第一异或运算单元XOR1将第二输入端口输入的密钥数据和第一选择器MUX1输入的数据进行异或运算处理,输出处理后的数据给字节变换运算单元SBOX。经字节变换运算单元SBOX处理后的数据输入第二选择器MUX2、第三选择器MUX3和第四选择器MUX4。第二选择器MUX2的输出端连接第二输出端口LEFT_OUT,第二输出端口为左开关输出端口,与可重构处理单元左边相邻的互连开关连接。第三选择器MUX3的输出端连接第四输出端口MIX_OUT和第二异或运算单元XOR2。第四输出端口MIX_OUT为列混合输出端口,第二异或运算单元将第三选择器输出的数据与第二输入端口输入的密钥数据作异或运算,输出加密数据到第一输出端口STATE_OUT。第四选择器MUX4的输出端连接第三输出端口RIGHT_OUT,第三输出端口为右开关输出端口,与可重构处理单元右边相邻的互连开关连接。
为了配合可重构阵列模块3,输入输出接口模块5与整个可重构阵列模块3之间的数据输入和输出如图5所示。图中,输入输出接口模块5接收128比特的明文数据输入可重构阵列模块,输入数据是第0位到第127位共128比特数据;[127:96]表示128位(比特)数据中第96至127位的32比特数据,接下来的[95:64]则表示其后面的第64至95为的32比特数据,以此类推。如图5所示,每32位待加密数据和32位扩展密钥,在本发明实施例的可重构阵列模块3中的同一列内的6个可重构处理单元中选择4个,并且在AES加密算法N轮运算完成以后,将生成的加密数据按初始待加密数据的位顺序排列输出。对于待加密数据和扩展密钥,每个可重构处理单元分别采用一个8比特的四选一选择器,从输入进来的32比特明文数据和扩展密钥中各选择8比特数据。在可重构阵列模块3中,每列的每个可重构处理单元都连接4个8比特的六输入选择器,从每个六输入选择器中输出8比特加密后的数据,生成的加密数据按初始待加密数据的位顺序恢复为32比特数据输出。
本发明的可重构阵列模块3为了完成AES加密算法的可重构功能,在进行重构和容错之前,需要先能完成基本运算才可以,以下依次介绍各个运算的实现。
1)字节变换(SBOX):本发明使用BRAM来实现,因为在可重构阵列模块中,字节变换的错误视为一个整体,使用BRAM也可以人工添加错误用以检测功能。BRAM具有较短的路径延迟,能达到很高的传输速率。BRAM为Block RAM的简写,表示内嵌的块RAM,可被配置成单端口RAM、双端口RAM、内容地址存储器等常用存储结构。本发明实现字节变换运算和求异或运算的硬件和方法与现有AES硬件的实现一致。
2)行变换(SHIFT ROW):AES加密算法中,需要实现4种行变换移位,分别是不移位、左移1位、左移2位和左移3位。由于每行可重构处理单元形成一个环路,因此左移3位和右移1位效果是一样的。剩下的问题就是左移2位怎么实现,是否需要用2条回路实现左移2位。当意识到不移位的一行其实并不需要一条回路,只需要通过多路选择器MUX在可重构处理单元内部选择就可以。而且在输入输出接口模块5中输入的一列状态输入数据(即明文数据)可以被分配到这一列的6个可重构处理单元中的任意一个当中,并在输出时恢复。这样,就把行变换中不移位和左移2位所需要的一共8个可重构单元进行交叉分配,通过可重构处理单元中多路选择器在完成不移位选择的同时,左右的多路选择器可以让数据在左右两个互联开关中通过,这样就交叉着让左移2位的4个可重构处理单元分为2对,分别处于2个回路当中,具体分配如图6b的第一行和第二行所示。图6a表明,第一行(S0,0,S0,1,S0,2,S0,3)不需要进行任何变换,而第二行(S1,0,S1,1,S1,2,S1,3)和第四行(S3,0,S3,1,S3,2,S3,3)一个需要左移1位,一个需要左移3位,而左移3位就是右移1位,都只需要一个回路即可。而第三行(S2,0,S2,1,S2,2,S2,3)要左移2位,需要两个回路。图6b中,第一行和第二行的回路用于实现左移2位,第三行的回路用于实现左移1位,第四行的回路用于实现左移3位。图6b的第一行和第二行,S2,0和S2,2分为1对,处于1个回路当中,S2,1和S2,3分为1对,处于1个回路当中;当移动时,通过将S2,0和S2,2之间间隔的可重构处理单元中的第二选择器MUX2选择输出右开关输入端口输入的数据,实现将S2,2移至S2,0的位置,将S2,0移至S2,2的位置;同理,通过将S2,1和S2,3之间间隔的可重构处理单元中的第四选择器MUX4选择输出为左开关输入端口输入的数据,实现移位。
3)列混合:列混合运算被放置在可重构处理单元内,列混合需要在同一列6个可重构处理单元中选择被配置为当前4x4工作阵列的4个单元的列混合输出信号,进行列混合运算。列混合运算虽然需要对32个输入进行逻辑运算,但是其中的运算比较简单,可以很方便地设计出来。通过对加密运算的乘法运算,x2,x3,x1和x0进行组合,x3由x2和x1进行异或实现,减少资源使用量。在6个可重构处理单元中选4个可重构处理单元进行列混合运算,将6个输入按位置进行不同系数进行乘法,对于2个不需要的可重构处理单元输入按x0进行计算,最后进行全部异或运算得到列混合的8比特结果。如图7所示,S0,S1,S2,S3,S4,S5分别表示6个可重构单元输入,四种系数,x1用直接连线表示,x2按照乘法规定,可以通过连线移位和3个异或门来实现,x3将x2以后的结果和x1的连线进行异或运算,x0则是与0进行与运算,图8中的表示x3。
4)异或实现:异或部分很简单,就是8比特数据进行异或运算,得到当前数据与扩展密钥的异或结果。
5)流水线设计:流水线设计可以提高关键路径的延时,从而提供自恢复容错AES装置的工作频率,得到更高的性能和吞吐率。本发明中采用的是AES的循环结构,即AES加密过程的K轮是循环进行的,所以采用流水线结构必须同时加密和流水线级数相等的加密组数。本发明采用的是2级流水线,在FPGA仿真中,互连开关有一定的延时,而在互连开关中,加入寄存器会带来很大资源消耗,并给控制部分带来巨大的复杂度。而在设计中发现可重构阵列模块实现重构最多要经过4个互联开关和1个路过的单元,这部分路径延时成为最长路径延时,在这部分加入寄存器使其跟其他部分延时近乎相当就可以达到自恢复容错AES装置最大的工作频率。在可重构处理单元内部的多路选择器前设置了一个寄存器,内部的列混合运算之前设置了一级寄存器,虽然这个寄存器导致资源消耗增多,但是其他位置都没有这个位置分割流水线性能高。在最后的输出部分设置了2级寄存器,第一级用于2组数据加密避免最后一轮求异或和前面一组数据倒数第二轮的求异或冲突,第二级寄存器用于输出数据稳定。如图4所示,具体在列混合运算单元前设置有一个寄存器,在字节变换运算单元和第二选择器、第三选择器及第四选择器三个选择器的连接处之间设置有一个寄存器,在第三选择器和第二异或运算单元之间设置有一个寄存器,在第二异或运算单元输出端设置有一个寄存器。
6)重构策略和实例:输入输出接口模块5可以在这个4x6的阵列中,每列选择4个单元,重新构成一个4x4的阵列来进行AES算法。为了让互连开关可以排布出不发生冲突的,需要确定可以实现的布线方式以及布线算法。对4x6个单元进行编号以便于后面标记方便,如图8a所示。假设阵列中损坏情况如图8b所示,其中斜纹标记为单元损坏,在第4列只有一个单元损坏,为了构成4x4的阵列,系统应自动选取一个单元闲置不用,例如选择第5个可重构处理单元不使用,在图中以横线标记。相连两列之间有1列互连开关作为布线通路,可以实现数据不同行之间的上线连通,进而可以选择到不同的列,形成行变换的4条回路。
然后对数据通路情况进行仿真,布线方案是在可重构处理单元的流水线优化之前确定的,仿真时用的是不带流水线的方案,所有一次只加密一组数据。使用官方AES算法手册中的数据,可以对比每一轮的扩展密钥和每一轮加密结果的正确与否,经过对比发现重构完之后的4x4阵列加密功能正确。
本发明提供的AES加密方法,如图3b所示,具体实现步骤如下。
步骤1:在AES算法的第一轮运算处理中,可重构处理单元选择明文数据(状态输入信号)。在加密第一轮中,各可重构处理单元的第一选择器MUX1选择状态输入信号State_in输入给第一异或运算单元XOR1。
步骤2:然后进行轮运算,每轮中顺序进行求异或、字节变换、行变换和列混合。
步骤2.1:可重构处理单元将输入的扩展密钥和从第一选择器选择的数据在第一异或运算单元进行异或运算。第一轮运算中,第一选择器选择的数据就是步骤1输入的状态输入信号,在第二轮运算开始,第一选择器选择列混合运算单元输出的数据。
步骤2.2:将经过异或运算的数据输入字节变换运算单元进行字节变换,输入1字节数据并输出一字节数据,完成置换。
步骤2.3:行变换,通过3个选择器(MUX2,MUX3和MUX4)分别实现数据向左移位,不移位,右移位的传递,输出到可重构单元左右输出(LEFT_OUT,RIGHT_OUT),通过左右的互联开关传输到目标可重构处理单元。然后通过选择器(MUX3)选择左、右或者本单元的输出作为下一步的数据。经过字节变换的数据,由第二选择器MUX2选择输出,实现数据向左移位;由第三选择器MUX3选择输出,实现不移位;由第四选择器MUX4选择输出,实现右移位。
步骤2.4:判断当前是否是最后一轮运算,若是,执行步骤3,若否,则将行变换后的数据输入同列可重构处理单元的列混合运算单元进行列混合元算。列混合是通过列混合数据输出端口MIX_OUT,输出到同一列6个可重构处理单元的列混合输入端口MIX_IN中。列混合运算单元在控制下,选择其中4路制定的可重构处理单元输入进行运算,输出通过选择器(MUX1)进入下一轮运算。
步骤3:最后一轮数据不进行列混合运算单元进行处理,而是将行变换后的数据输入第二异或运算单元XOR2进行异或运算,然后得到加密数据,恢复成顺序的加密数据后输出。
对比AES官方手册中的附录B,加密实例的仿真:
输入数据(Input):32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34
密钥(Cipher Key):2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c
结果矩阵为:39 02dc 19
25 dc 11 6a
84 09 85 0b
1d fb 97 32
以及附录C,向量实例的仿真:
C.1AES-128(Nk=4,Nr=10)Example Vectors
加密前文本(PLAINTEXT):00112233445566778899aabbccddeeff
每轮的扩展密钥(KEY):000102030405060708090a0b0c0d0e0f
循环10轮加密输出结果(Round[10].output):69c4e0d86a7b0430d8cdb78070b4c55a
Nk表示每个密钥串的字数;Nr表示加密轮数。
测试结果正确。证明本发明的自恢复容错AES装置的配置连线功能正常工作,本发明的AES加密方法正确。
Claims (8)
1.一种基于动态可重构的自恢复容错AES装置,包括如下模块:时钟模块、控制模块、可重构阵列模块、密钥扩展模块以及输入输出接口模块;时钟模块接收外部输入的时钟,输出AES装置工作需要的时钟信号给控制模块,驱动电路工作;其特征在于:输入输出接口模块将需要加密的数据输入可重构阵列模块,将作为密钥的数据输入密钥扩展模块;密钥扩展模块对接收到的数据进行密钥扩展处理,并将处理生成的数据传输到可重构阵列模块;控制模块生成自测试数据,接收判断错误信号,执行AES加密运算处理的控制流程,发送对可重构阵列模块、密钥扩展模块和输入输出接口模块工作的控制信号,并接收可重构阵列模块、密钥扩展模块和输入输出接口模块的工作反馈信号;可重构阵列模块对从输入输出接口模块输入进来的数据结合密钥扩展模块输入的密钥进行AES加密运算处理,并将生成的密文数据通过输入输出接口模块输出;可重构阵列模块包括M行×N列的可重构处理单元和M行×N列的互连开关,M行×N列的互连开关为2D-TORUS网络结构,每行的可重构处理单元与相邻的互连开关相连,在相邻行的可重构处理单元之间由互连开关直接相连,M为大于4的整数,N为大于等于4的整数。
2.根据权利要求1所述的自恢复容错AES装置,其特征在于,所述的时钟模块,将外部50MHz晶振产生的时钟输入进行倍频,得到AES装置工作需要的时钟信号。
3.根据权利要求1所述的自恢复容错AES装置,其特征在于,所述的可重构阵列模块选用6行×4列的可重构处理单元结构。
4.根据权利要求1所述的自恢复容错AES装置,其特征在于,所述的可重构处理单元包含五个输入端口、四个输出端口、一个列混合运算单元、四个选择器、两个异或运算单元和一个字节变换运算单元;
第一输入端口为明文数据输入端口,将明文数据输入第一选择器;第二输入端口为密钥输入端口,将密钥输入两个异或运算单元;第三输入端口为左开关输入端口,与可重构处理单元左边相邻的互连开关连接,第三输入端口输入的数据输入第三选择器和第四选择器;第四输入端口为右开关输入端口,与可重构处理单元右边相邻的互连开关连接,第四输入端口输入的数据输入第二选择器和第三选择器;第五输入端口为列混合输入端口,与同列M个可重构处理单元的列混合输出端口连接,第五输入端口输入的数据输入列混合运算单元;
列混合运算单元将列混合运算后的数据输入第一选择器,第一选择器的输出端连接第一异或运算单元,第一异或运算单元将输入的密钥数据和第一选择器输入的数据进行异或运算处理,输出处理后的数据给字节变换运算单元,经字节变换运算单元处理后的数据输入第二选择器、第三选择器和第四选择器;第二选择器的输出端连接第二输出端口,第二输出端口为左开关输出端口,与可重构处理单元左边相邻的互连开关连接;第三选择器的输出端连接第四输出端口和第二异或运算单元,第四输出端口为列混合输出端口,第二异或运算单元将第三选择器输出的数据与第二输入端口输入的密钥数据作异或运算,输出加密数据到第一输出端口;第四选择器的输出端连接第三输出端口,第三输出端口为右开关输出端口,与可重构处理单元右边相邻的互连开关连接。
5.根据权利要求4所述的自恢复容错AES装置,其特征在于,所述的可重构处理单元还包括寄存器,在列混合运算单元前设置有一个寄存器,在字节变换运算单元与第二选择器、第三选择器和第四选择器三者的连接处之间设置有一个寄存器,在第三选择器和第二异或运算单元之间设置有一个寄存器,在第二异或运算单元输出端设置有一个寄存器。
6.根据权利要求1或4所述的自恢复容错AES装置,其特征在于,所述的输入输出接口模块,接收128比特的明文数据输入可重构阵列模块,可重构阵列模块中,每个可重构处理单元,分别采用一个8比特的四选一选择器,从输入进来的32比特明文数据和扩展密钥中,各选择8比特数据,每列的每个可重构处理单元都连接4个8比特的六输入选择器,从每个六输入选择器中输出8比特加密后的数据,生成的加密数据按初始待加密数据的位顺序排列输出。
7.基于权利要求4~5任一所述的自恢复容错AES装置的AES加密方法,其特征在于,包括如下步骤:
步骤1:在第一轮运算处理中,各可重构处理单元的第一选择器选择明文数据输入给第一异或运算单元;
步骤2:进行轮运算,每轮中顺序进行求异或、字节变换、行变换和列混合;具体是:
步骤2.1:可重构处理单元将输入的扩展密钥和从第一选择器选择的数据在第一异或运算单元进行异或运算,在第二轮运算开始,第一选择器选择列混合运算单元输出的数据;
步骤2.2:将经过异或运算的数据输入字节变换运算单元进行字节变换;
步骤2.3:进行行变换;经过字节变换的数据,由第二选择器选择输出,实现数据向左移位;由第三选择器选择输出,实现不移位;由第四选择器选择输出,实现右移位;
步骤2.4:判断当前是否是最后一轮运算,若是,执行步骤3;若否,则将行变换后的数据输入同列可重构处理单元的列混合运算单元,进行列混合运算,然后转步骤2.1执行;
步骤3:将行变换后的数据输入第二异或运算单元,与输入的扩展密钥进行异或运算,得到加密数据,并将加密数据恢复顺序输出。
8.根据权利要求7所述的AES加密方法,其特征在于,步骤2.3所述的行变换,实现左移2位的方法是:设输入数据(S2,0,S2,1,S2,2,S2,3),将S2,0和S2,2分为1对,分别输入一行可重构处理单元的第一个和第三个可重构处理单元,将S2,1和S2,3分为1对,分别输入另一行可重构处理单元的第二个和第四个可重构处理单元;当移位时,将S2,0和S2,2之间间隔的可重构处理单元中的第二选择器选择输出右开关输入端口输入的数据,将S2,1和S2,3之间间隔的可重构处理单元中的第四选择器选择输出为左开关输入端口输入的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310163791.5A CN103297223B (zh) | 2013-05-07 | 2013-05-07 | 基于动态可重构的自恢复容错aes装置及其加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310163791.5A CN103297223B (zh) | 2013-05-07 | 2013-05-07 | 基于动态可重构的自恢复容错aes装置及其加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103297223A CN103297223A (zh) | 2013-09-11 |
CN103297223B true CN103297223B (zh) | 2017-06-06 |
Family
ID=49097581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310163791.5A Expired - Fee Related CN103297223B (zh) | 2013-05-07 | 2013-05-07 | 基于动态可重构的自恢复容错aes装置及其加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103297223B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3704831A4 (en) * | 2017-10-30 | 2021-06-02 | Stc.Unm | SYSTEM AND METHODS FOR SIDE CHANNEL POWER RESISTOR FOR ENCRYPTION ALGORITHMS USING DYNAMIC PARTIAL RECONFIGURATION |
US11863304B2 (en) | 2017-10-31 | 2024-01-02 | Unm Rainforest Innovations | System and methods directed to side-channel power resistance for encryption algorithms using dynamic partial reconfiguration |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912501B (zh) * | 2016-05-06 | 2018-11-06 | 东南大学—无锡集成电路技术研究所 | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 |
CN105975251B (zh) * | 2016-05-19 | 2018-10-02 | 东南大学—无锡集成电路技术研究所 | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 |
CN113347029B (zh) * | 2020-09-29 | 2022-05-31 | 北京航空航天大学 | 基于拓扑重构和路径规划的Torus网络容错方法 |
CN112350819B (zh) * | 2020-10-23 | 2022-02-18 | 四川九洲电器集团有限责任公司 | 一种全流水线sms4加解密方法及系统 |
CN112579516B (zh) * | 2020-12-24 | 2024-07-05 | 清华大学无锡应用技术研究院 | 一种可重构处理单元阵列 |
CN113794562A (zh) * | 2021-09-27 | 2021-12-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种双线性对计算加速系统及方法 |
CN117056279B (zh) * | 2023-10-12 | 2024-01-26 | 之江实验室 | 可重构电路、可重构芯粒间互联的装置及其方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1215841A2 (en) * | 2000-12-13 | 2002-06-19 | Broadcom Corporation | Methods and apparatus for implementing a cryptography engine |
CN1558588A (zh) * | 2004-01-20 | 2004-12-29 | 海信集团有限公司 | 可重构密码协处理器的可重构置换模块的设计方法 |
CN1635731A (zh) * | 2003-12-27 | 2005-07-06 | 海信集团有限公司 | 可重构密码协处理器电路 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100453230B1 (ko) * | 2002-11-08 | 2004-10-15 | 한국전자통신연구원 | 초타원곡선 암호화 프로세싱 장치 |
-
2013
- 2013-05-07 CN CN201310163791.5A patent/CN103297223B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1215841A2 (en) * | 2000-12-13 | 2002-06-19 | Broadcom Corporation | Methods and apparatus for implementing a cryptography engine |
CN1635731A (zh) * | 2003-12-27 | 2005-07-06 | 海信集团有限公司 | 可重构密码协处理器电路 |
CN1558588A (zh) * | 2004-01-20 | 2004-12-29 | 海信集团有限公司 | 可重构密码协处理器的可重构置换模块的设计方法 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3704831A4 (en) * | 2017-10-30 | 2021-06-02 | Stc.Unm | SYSTEM AND METHODS FOR SIDE CHANNEL POWER RESISTOR FOR ENCRYPTION ALGORITHMS USING DYNAMIC PARTIAL RECONFIGURATION |
US11863304B2 (en) | 2017-10-31 | 2024-01-02 | Unm Rainforest Innovations | System and methods directed to side-channel power resistance for encryption algorithms using dynamic partial reconfiguration |
Also Published As
Publication number | Publication date |
---|---|
CN103297223A (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103297223B (zh) | 基于动态可重构的自恢复容错aes装置及其加密方法 | |
Patterson | High performance DES encryption in Virtex/sup TM/FPGAs using JBits/sup TM | |
Shahbazi et al. | Area-efficient nano-AES implementation for Internet-of-Things devices | |
CN102025484B (zh) | 一种分组密码加解密方法 | |
US7944236B2 (en) | High-bandwidth interconnect network for an integrated circuit | |
TWI771675B (zh) | 控制流程屏障和可重組態的資料處理器 | |
Cheng et al. | Quantum switching and quantum merge sorting | |
CN105912501A (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN110784307B (zh) | 轻量级密码算法scenery实现方法、装置及存储介质 | |
Banik et al. | Compact circuits for combined AES encryption/decryption | |
Kianpour et al. | A conventional design for CLB implementation of a FPGA in quantum-dot cellular automata (QCA) | |
Aagaard et al. | Hardware design and analysis of the ACE and WAGE ciphers | |
CN104484615A (zh) | 适用于可重构阵列架构的基于空间随机化抗故障攻击方法 | |
US20240062842A1 (en) | Programmable linear-feedback shift register systems and methods | |
CN106788976A (zh) | 一种aes加解密电路仿真分析方法及装置 | |
Lutz et al. | 2Gbit/s hardware realizations of RIJNDAEL and SERPENT: A comparative analysis | |
Huang et al. | Compact FPGA implementation of 32-bits AES algorithm using Block RAM | |
Mora-Gutierrez et al. | Low power implementation of Trivium stream cipher | |
CN100389554C (zh) | 高效率实现sms4算法的加解密处理方法 | |
Lee et al. | Emergence of universal global behavior from reversible local transitions in asynchronous systems | |
Sugier | Low-cost hardware implementations of Salsa20 stream cipher in programmable devices | |
Majzoub et al. | MorphoSys reconfigurable hardware for cryptography: the twofish case | |
Roldán Lombardía et al. | Six shades lighter: a bit-serial implementation of the AES family | |
CN112579516A (zh) | 一种可重构处理单元阵列 | |
CN109639408A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170606 Termination date: 20180507 |
|
CF01 | Termination of patent right due to non-payment of annual fee |