当前位置:首页 > 工业控制 > 电子设计自动化
[导读]摘要:介绍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次

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

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

Altera致力于为客户提供端到端的FPGA、易于使用的AI、软件和弹性供应链。

关键字: FPGA AI

在半导体领域,大部分对于AI的关注都集中在GPU或专用AI加速器芯片(如NPU和TPU)上。但事实证明,有相当多的组件可以直接影响甚至运行AI工作负载。FPGA就是其中之一。

关键字: FPGA AI 半导体

半导体产品老化是一个自然现象,在电子应用中,基于环境、自然等因素,半导体在经过一段时间连续工作之后,其功能会逐渐丧失,这被称为功能失效。半导体功能失效主要包括:腐蚀、载流子注入、电迁移等。其中,电迁移引发的失效机理最为突...

关键字: 半导体 电迁移 FPGA
关闭
关闭