AES算法的快速硬件设计与实现

2010-03-19 11:16:05来源: 李雪梅,路而红,欧海文 关键字:FPGA  AES算法  快速硬件设计

  信息安全是计算机科学技术的热点研究领域,数据加密则是信息安全的重要手段。随着可编程技术的飞速发展及高速集成电路的不断出现,采用FPGA实现加密算法已受到越来越广泛的关注和重视[1][2]。与传统的软件加密方法相比,硬件加密的优点是:(1)安全性好,不易被攻击;(2)计算速度快,效率高;(3)成本低,性能可靠。加密系统中体现数据传输速度的一个重要性能指标是数据吞吐量,计算公式为:(数据长度M/时钟个数N)×时钟频率F。提高数据吞吐量是改善加密系统性能的关键,也是加密算法硬件实现技术的重要内容。
  
  AES算法作为DES算法的替代者应用非常广泛,其硬件实现方法已有不少讨论,主要是通过提高算法频率来提高吞吐量。但是在实际运行中,为了保证整个加密系统的稳定性,通常全局时钟频率较低,不可能达到算法的仿真频率,如PCI接口电路时钟频率只有33MHz,因此实际数据吞吐量仍然较低。本文根据AES算法的结构特点及硬件系统的特点,提出一种快速的AES算法IP核设计方法。该方法采用优化设计轮函数和流水线技术,在较低的系统时钟频率下,通过减少分组运算时钟数目来获得更高的吞吐量和更快的传输速度。
  
  1 AES算法
  
  AES是美国国家标准与技术研究所(NIST)提出的高级加密标准[4]。2000年10月,NIST宣布将比利时人Joan Daemen和Vicent Rijinen提交的Rijndael算法作为高级加密标准(AES)。该算法设计简单,与公钥密码算法不同,没有复杂的乘法运算,易于实现,灵活性强,轮函数良好的并行特性有利于硬件设计与实现。AES算法是一种迭代型分组密码,其分组长度和密钥长度均可变,各自可以独立指定为128bit、192bit、256bit。本文主要讨论分组长度和密钥长度为128bit的情况。
  
  AES算法是将输入的明文(或密文)分成16个字节,在第一个Add Round Keys变换后进入10轮迭代。前9轮完全相同,依次经过字节代替(Substitute Bytes)、行移位(Shift Rows)、列混合(Mix Columns)、轮密钥加(Add Round Keys),最后一轮则跳过了Mix Column。解密过程与加密过程类似,但执行顺序与描述内容有所不同,因此AES算法的加解密过程需要分别实现。图1给出了AES算法的加解密过程。关于AES算法的详细描述请参见参考文献[4]。

  2 AES算法优化设计
  
  2.1 硬件选择
  
  Cyclone器件是Altera公司推出的成本最低的SRAM工艺FPGA,容量为2 910~20 060个逻辑单元(LE)和多达288kbit的M4K memory block。每个LE都有一个四输入的LUT查找表、可编程寄存器和具有进位选择能力的进位链,可实现任何四输入变量的函数,能够进行大量逻辑运算,非常适合作为加密算法的硬件载体。设计中所使用的开发工具是QuartusII4.2,FPGA芯片选择Cyclone器件的EP1C12Q240C8,基于Verilog HDL语言实现。
  
  2.2 密钥扩展单元优化设计
  
  密钥扩展是将初始密钥作为种子密钥,经过字节代换、字节移位、轮常数计算、字异或等过程,计算产生10轮迭代子密钥。有文献提出计算密钥时密钥扩展和加密过程同步执行,这样做会节约FPGA的存储器资源。但笔者认为在算法运行过程中,扩展密钥进程始终运行会增加FPGA芯片的动态功耗。另外,AES算法解密运算是从最后一轮子密钥开始,只有扩展出所有子密钥才能启动解密运算,因此制约了解密过程的实现。通常情况下初始密钥不会频繁改变,加/解密多包数据时可共享密钥扩展结果,同时由于Cyclone器件存储器资源丰富,为存放子密钥提供了足够的空间。因此本文采用更普遍的做法,将所有子密钥扩展后保存在RAM中,使用时依次从RAM中读取。这种方式不受加解密实现过程的限制,灵活性强,非常适合于加密算法的FPGA实现。
  
  从RAM中读取子密钥需要时间,为了避免算法第一个Add Round Key过程带来的延时,可以将第一组子密钥(初始密钥)和最后一组子密钥(解密过程第一组子密钥)在写入RAM的同时,分别保存在两组寄存器中。如图2所示,加/解密时直接利用寄存器结果进入算法第一轮迭代,保证算法在10个时钟内完成10轮迭代,从而减少Add Round Key的时间。

  保存密钥虽然多占用了约256个寄存器资源,但这样做更易于实现算法的流水线操作,对提高整体性能有很大帮助。

[1] [2] [3]

关键字:FPGA  AES算法  快速硬件设计

编辑:小甘 引用地址:http://www.eeworld.com.cn/FPGA/2010/0319/article_1038.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于Verilog计算精度可调的整数除法器的设计
下一篇:众志和达借助赛灵思可编程方案打造数据存储新典范

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
FPGA
AES算法
快速硬件设计

小广播

独家专题更多

2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved