首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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%)。将此综合结果在ModelSim中用133 MHz时钟驱动进行后仿真。
4 数据分析
仿真结果见表1,No.1采用常用测试数据,密钥为:2b7e1516_28aed2a6_abf71588_09cf4f3c,输入明文为 3243f6a8_885a308d_313198a2_e0370734时,得到输出密文 3925841d_02dc09fb_dc118597_196a0b32,结果正确无误。

该IP核工作在80 MHz时钟频率下时,数据吞吐量为128 bit×80 MHz/40 clk=256 Mb/s。速度/资源比(Mb/s)/Slice=256/(2647/2)=0.193。当并行连接IP核进行位宽扩展时,密钥扩展单元与时序控制单元可共用,进一步提高资源利用率。当扩展为128位数据位宽时,数据吞吐量成倍增加,而速度/资源比也有所提高,几乎能达到 (Mb/s)/Slice=1024/((2647×4-(1388+45)×3)/2)=0.326。
表2中数据显示本设计在32位数据位宽的同类设计中有一定的优势,从适用于嵌入式系统应用的角度考虑,本设计更具优越性。128位数据位宽的设计[6]中原文计算速度/资源比值时未考虑所占用的RAMs资源,而且文中设计为25 MHz时钟频率,进行数据分析时却将工作频率直接换算为54 MHz,而未对其设计是否可正常工作于此频率进行论证。其设计主要考虑建立流水作业以提高性能。参考文献[6]中采用6级流水线技术及复合域方法优化 Sbox,达到了较优的设计指标,但其固定的128位数据位宽在嵌入式系统中应用有一定的局限性。

在Synplify9下选定目标器件EP2S15F484C3,优先考虑提高速度,综合结果报告最高时钟频率超过240 MHz,说明本IP核设计合理,较好地利用了目标器件资源。如果将本IP核应用在更高性能目标器件上或是设计为ASIC将会有更大的性能提升。
本文设计的IP核在低端FPGA能以较低的资源消耗提供I/O性能,AES实现达到256 Mb/s,并提供适合应用于嵌入式系统中32位数据界面。在输入、输出端加FIFO数据缓存器可减少主器件被中断数据传输的次数,提供标准通信界面、简化主器件的操作时序。该IP核具有一定的灵活性,可将数据位宽扩展为64位或128位等,满足多种数据位宽应用的要求,是一种低成本高性能的AES加密实现方法。
返回列表