当前位置:首页 > 工业控制 > 电子设计自动化
[导读]摘要:介绍AES 算法的原理以及基于FPGA 的高速实现。结合算法和FPGA 的特点,采用查表法优化处理了字节代换运算、列混合运算。同时,为了提高系统工作速度,在设计中应用了内外结合的流水线技术,并应用Altera 公司的开发

摘要:介绍AES 算法的原理以及基于FPGA 的高速实现。结合算法和FPGA 的特点,采用查表法优化处理了字节代换运算、列混合运算。同时,为了提高系统工作速度,在设计中应用了内外结合的流水线技术,并应用Altera 公司的开发工具及芯片进行实际开发。

1 引言

随着信息技术的迅速发展,信息已成为当今社会的一种重要资源。但当人们享受信息资源带来的巨大便利的同时,也承受着信息被篡改、泄漏、伪造的威胁,安全问题日益严重。安全风险制约着信息的有效使用,信息安全对现代社会健康有序的发展,保障国家安全和社会稳定有着重要作用。加密技术是信息安全技术的核心,是保证信息资源安全的关键。

高级加密标准(Advanced Encryption Standard, AES)作为传统对称加密算法标准DES 的替代者,由美国国家标准与技术研究所(NIST)于1997 年提出征集该算法的公告,2000 年最终选定了Rijndael 算法,并于2001 年正式发布了AES标准[1]。Rijndael 算法本质上是一种对称分组密码体制,该算法汇聚了安全性能、效率、可实现性和灵活性等优点,已经成为工业界、银行业、政府部门的事实上的密码标准[2]。

随着网络传输速度的快速提升,业界对算法的执行速度的要求也越来越高,基于软件的密码算法便显得性能不足,需要采用硬件加密的方式。另外,用硬件实现加密算法具有较更高的物理安全性。而FPGA 芯片兼有硬件的安全性和高速性以及软件的灵活性和易维护性,从而成为研究和实现AES 算法的理想硬件平台。

2 AES 加密算法简介

AES 是一种分组迭代密码,明文分组长度固定为128 b,而且仅支持128,196 或256b 的密钥长度,本文着重对密钥长度为128 b 的情况进行讨论。AES 加密算法的实现流程如图1 所示,将输入的明文填入一个4X4 的矩阵(16 进制),并将其称为状态矩阵。算法的前round-1 轮包含四种变换,分别是:字节替换、轮密钥加、行移位、列混合。对于每一轮,都有对应的子密钥。子密钥由初始密钥通过密钥扩展得到。最后一轮由字节替换、行移位和轮密钥加组成。AES 解密过程为上述过程的逆过程。


字节替换:字节替换(SubBytes)是一个基于S 盒的非线性置换,它通过一个简单的查表操作将输入或中间状态的每一个字节映射为另一个字节。查表的方法为:将输入字节的高4 位作为S 盒的行值,低4 位作为列值,然后取出S 盒中对应行和列的元素作为输出。

行移位:行移位(ShiftRows)完成基于行的循环移位操作。具体的操作为:第0 行不动,第1 行循环左移1 个字节,第2 行循环左移2 个字节,第3 行循环左移3 个字节。

列混合:列混合(MixColumns)是对状态矩阵中的列做线性变换,进行四字节乘运算。具体定义如下:将状态矩阵的列看作有限域G(28)上的多项式,并在模x4+1 下与一个给定的多项式c(x)相乘,其中c(x)=03x3+01x2+01x+02。假设该步变换状态的一列输入为a,输出为b,即b(x)=c(x)·a(x)mod(x4+1)。

密钥加:密钥加(AddRoundKey)是将轮密钥的各字节和状态矩阵中相应位置的字节分别模2 加,实现状态和密钥的混合。轮密钥的长度和状态的长度是一样的。该步骤的逆变换是其自身[3]。

3 算法实现的优化

3.1 对算法本身的优化

用查找表和组合逻辑的方式代替了复杂的乘法运算[3],大大减少了芯片资源的占用,提高了加、解密步骤的执行速度。字节替换是 Rijndael 密码中唯一的非线性变换。该步骤是一种非线性面向字节的变换,是将一个8 位二进制数据转换为另一个不同的8 位二进制数据,这里要求一一对应,并且替换结果不能超出8 位,可以通过构造可逆的S-盒来实现。

由于有限域GF(2)中总共有256 个元素,则可预先通过一定的算法计算出每个元素的逆元,再进行对应的仿射变换求出有限域GF(28)中每个元素经过字节代换后所对应的值,并将这个计算出的替代值写入一个16×16 字节的置换表中相应的位置作为步骤SubBytes 的S-盒。具体实现时,根据状态的每一个字节的数值检索出S-盒中对应的替代值,即通过查表即可实现该步变换,避免复杂的乘法运算[4]。

对于列混合变换,由于GF(28)有限域中的每一个元素都能够写成02 的不同幂次的和,因此,乘以任何常数的乘法都可以通过反复的乘以02 和异或运算来实现。可将矩阵乘法中的常数因子分解为 02 的不同幂次和,矩阵乘法转换为与02 的乘法和异或运算。将GF(28)域中的每一个元素与02 的乘积存储在一张16×16 字节查找表中,记作xtime(·)。所以,该步骤可以通过查表和异或运算实现。

3.2 加密模块结构的优化

加密模块结构直接影响 AES 算法的加解密速度,AES 算法加解密系统的速度是指单位时间内完成的加密(解密)的比特数,也称为吞吐量(throughput),单位为兆比特每秒(Mbit/s)。其基本结构可分为以下三种:外部流水线结构、内部流水线结构和循环展开结构[5]。其中循环展开结构的速度是以芯片面积增加为代价的,而外部流水线结构和内部流水线结构在反馈模式中速度受到限制,面积的增加并不能增加速度,所以这两种结构只适用于非反馈模式。内部流水线结构的速度在非反馈模式下随着内部流水线站数的增加而增加,但面积的相应增长极小,具有很好的速度面积比。但在反馈模式下其速度面积比不具优势。因此,在外部应用流水线结构设计的同时,在内部划分流水线站,可以在外部流水线结构的速度基础上进一步提高速度,而面积的增长极小,从而提高吞吐量和速度面积比。基于以上分析,在本设计中采取了非反馈模式和内外混合的流水线结构。

4 硬件测试及应用

本设计采用 ALTERA 公司的开发工具QuartusII,以VerilogHDL 为实现语言,在综合仿真并测试无误后,下载至ALTERA 公司的Cyclone 系列芯片上。该系列芯片具有相当的性价比,非常适合于大批量、低成本的应用本设计方案。本设计既可以作为单独的专用加密芯片完成加密任务,也可以嵌入到复杂的数字系统中。具有非常广阔的应用市场。



参考文献:

[1].NISTdatasheethttp://www.dzsc.com/datasheet/NIST_2562226.html.


来源:lele0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭