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

2010-03-19 11:16:05来源: 李雪梅,路而红,欧海文

  信息安全是计算机科学技术的热点研究领域,数据加密则是信息安全的重要手段。随着可编程技术的飞速发展及高速集成电路的不断出现,采用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
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
AES算法
快速硬件设计

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

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

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