微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 适用于嵌入式系统的AES加密IP核设计

适用于嵌入式系统的AES加密IP核设计

时间:09-29 来源:互联网 点击:

中32位数据进行“异或”运算。在系统模式由加密模式转为闲置模式时,完成密钥处理单元的归位动作,使得单元状态与密钥输入后的状态相同,为下一次加密做准备。

数据处理单元在加密模式下对明文数据进行迭代运算。该单元检测到当前是最末轮数据处理时自动跳过列混合运算。在系统进入加密模式后,数据处理单元从输入端口分4次读入128位明文数据,经过接下来的40个时钟周期数据运算过程后,得到密文中的第一个32位数据段。

时序控制单元负责整个系统关键控制信号的生成,控制信号集中由一个单元负责产生,不仅利于软件综合出较高的时钟频率,而且输出的时钟相位也有较优的一致性。

系统正常工作状态为先进行一次密钥载入操作,然后触发进入加密模式进行多次的数据加密。在需要时可以在闲置状态下再次进行密钥模式对密钥进行更新。

在系统闲置状态下,密钥加载信号被检测为有效时,系统进入密钥输入模式,对密钥数据进行读入、保存及生成第一轮密钥待用,而忽略密钥处理单元中是否先前已存在密钥数据。数据加载引脚指示系统由闲置模式输入单轮加密模式,因为128位数据要在4个时钟周期完成读入,加密后数据也需要4个时钟周期时间才能完成输出。因此,从明文数据输入到密文数据输出共需要等待40个时钟周期。如果此时检测到数据加载引脚信号有效则在输出密文的同时进行下一轮明文的读入,系统进入到连续加密模式,否则在接下来的4个时钟周期将密文输出后系统由单轮加密模式切换到闲置模式。连续加密模式适合用于进行批量数据加密处理,系统每40个时钟周期会从输入端口读入128位明文数据,同时在这40个时钟周期中将提供密文数据。在进行大量数据处理时,载入密钥及载入第一组加密数据的几个时钟周期均可忽略,系统性能为每40个时钟周期处理128位数据。在读入明文时,若检测到载入数据信号无效,则退出连续加密模式,系统回复到闲置状态。

2.2 设计要点

嵌入式系统中资源相对较少,一般数据位宽为32位或更少,如果设计的AES数据通道位宽达到128位或更多,虽然轮处理时间较短,但数据通道在I/O接口段必然利用率不高,而且占用资源难以降低,故本设计采用主通道数据位宽为32位的结构。由于每轮中列混合变换需要的32位数据与前4个时钟周期的行移变换输出结果相关,因此在行移与列混合单元间使用128位数据位宽,每4个时钟周期进行一次State0到State1转换。

从AES加密方法流程图中可见首轮与末轮均有特殊处理,未经过完整的4个轮处理过程,在一些设计中将首轮与末轮使用单独硬件实现,这样可使硬件代价减少2轮的运算时间。首轮结构简单,与标准轮处理过程差异较大,单独实现只需要在输入端加上32个“异或”门,能以较小的代价换取一轮的运算时间。而末轮与标准处理过程仅差列混合运算,单独实现需要将近多一倍的轮处理硬件,所以在本设计中由时序控制单元控制末轮处理时跳过列混合运算。

Sbox作为非线性运算部分,必需具有良好的差分特性和比较复杂的代数结构,如果使用独立逻辑电路实现,面积优化空间不大,多采用查表法实现。AES实现中的密钥扩展与数据处理都需要多个Sbox,通过分析综合软件资源消耗结果报告可知单个Sbox占用资源为208个LCs或是2KB RAM。减少Sbox的使用无疑成为降低资源占用的主要手段。经过调研,一般嵌入式系统对AES加密性能要求在160 Mb/s到480 Mb/s之间,考虑到本设计可灵活扩展的特性,设计中在数据处理路径使用4个Sbox进行时分复用,另采用4个Sbox进行密钥实时扩展。

3 硬件实现

本硬件实现在QuartusII8.0下使用 Verilog HDL语言进行描述,在ModelSim6.2环境下进行调试与仿真,使用Synplify9协助完成综合与关键路径分析工作。主要分析该IP核综合到目标器件EP1C4F324C6中在80 MHz频率的性能表现及资源占用情况。同时在更高性能的目标器件EP2S15F484C3中也进行了综合及后仿真,以作纵向对比。

在QuartusII环境下选定目标器件为低成本Cyclone系列EP1C4F324C6设置速度与面积均衡优化模式,目标工作频率为90 MHz,使用逻辑单元实现Sbox查找表功能。综合报告显示实际综合频率为87.82 MHz(period=11.387 ns),本IP核占用资源2 647(Logic Cells),其中密钥扩展单元占用1 388(LCs),时序控制单元占用45(LCs)。文中均以此IP核运行于80 MHz时钟频率进行性能分析。

选定综合到StratixII系列中EP2S15F484C3器件,综合频率FMAX达到169.12 MHz时占用资源Logic utilization 9%,其中Combinational ALUTS 834/12 480(7%),Dedicated logic registers 598/12 480(5%)。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top