AES算法的超简化FPGA实现方法_Very Compact FPGA Implementation of the AES Algorithm.pdfVIP

  • 1
  • 0
  • 约1.79万字
  • 约 14页
  • 2017-06-15 发布于湖北
  • 举报

AES算法的超简化FPGA实现方法_Very Compact FPGA Implementation of the AES Algorithm.pdf

AES 算法的超简化FPGA 实现方法 Very Compact FPGA Implementation of the AES Algorithm 美国乔治梅森大学Pawel Chodowiec Kris Gaj 著 上海电力学院电子与信息工程学院 李名扬 译 摘要:介绍了一种用于实现128 位秘钥AES 算法的简化FPGA 架构,其主要针对低成本的嵌 入式应用程序。该设计仅使用222 Slices 和3 Block RAMs 这样一个小资源就能完成加密、解 密和密钥编排等工作,很容易符合Xilinx 公司的 Spartan II XC2S30 这种低成本 FPGA。该实现 方法能以150Mbps 的吞吐率对数据流进行加密和解密,可以满足包括无线通讯在内的绝大 多数嵌入式应用程序的需求。探究了Spartan II 系列FPGA 能够实现简化逻辑的具体特性, 并介绍了一种采用共享逻辑资源实现列混合变换和逆列混合变换的新方法。 1 介绍 2001 年美国国家标准和技术研究所(NIST)采用了 Rijndael 算法作为新的高级加密标准 (AES) [29],从而人们提出并评估了大量关于AES 算法的FPGA [2] [15] [16] [17] [18] [19] [20] [24] [25] [26] [27] [28]和ASIC [4] [6] [7] [8] [10] [11]实现方法。时至今日,大多数实现方法的 主要特征都是高速度、高成本,只适用于一些高端的嵌入式应用程序。 人们对电子资料交换安全的需求将变得越来越重要,因此AES 加密必须扩展应用到一些 低端的客户产品上,比如PAD、无线设备等其他嵌入式应用程序。为了达到这一目标,AES 的实现方法就必须要求低成本。 大多数低端应用程序对加密速度的要求并不高。目前的无线网络最高速度可达60 Mb/s, 即便对那些低网速应用程序而言,执行安全协议也会明显增加对运算能力的需求。例如,在 10 Mb/s 的网速下,AES 加密所要求的运算能力在206.3 MIPS [12]这样一个层次,而相比之 下,最先进的手机处理器的运算能力大概是150 MIPS (133 MHz 时)和235 MIPS (206 MHz 时)。 本文试图在嵌入式应用程序的性能和成本需求之间搭建一个桥梁,因此一种基于FPGA 器件且能够支持大多数嵌入式应用程序的低成本AES 实现方法就被开发和评估了。 2 相关研究 早期的AES 设计大多都是简单地采用各种循环展开和流水线架构[24] [25] [26] [27] [28] 来实现的,很少进行架构优化,从而造成了资源利用效率的低下。例如,AES 的8x8 S-Box 是通过查表的方式来实现的,留出了大量的表格需要综合器进行优化。后来的FPGA 实现方 法展示出了对FPGA 资源的更有效利用,人们还开发了几种使用专门的片上存储来实现S-Box 和T-Box 的架构[15] [17] [18] [19] [20]。 最近在FPGA [2] [3] [14] [18] [19] [20]和ASIC [4] [6] [7] [11]领域中的研究都集中在快速流 水线的实现方法上,但不幸的是,这些实现方法中的绝大多数对于实际应用程序来说都消耗 太高。 V. Rijmen 提出了一种基于复合域[31]的S-Box 的实现方法,标志着人们在压缩AES 实现 方法上迈出了关键性的第一步。与此同时,J.Wolkerstorfer [13]也提出了一个相似的方案。 Rijmen 的想法在FPGA [2]和ASIC [4] [6] [8]中都得到了实现。S. Morioka [10]做了进一步的研 究,并提出了一种适合ASIC 设计的低功耗简化型的S-Box 实现方法。 3 简化实现的架构 如文献[26]中介绍的一样,我们在分析基本结构的基础上开始进行简化结构的设计。基 本架构仅仅展开了一个完整的密码轮,并且在这个轮中反复循环数据,直到整个加密或解密 过程完成为止。每次只有一个数据块被处理,这同时满足了反馈和非反馈的操作模式。 AES 加密轮的结构如图1 所示,解密轮跟加密轮看起来很相似,只不过解密轮采用相反 的操作顺序:逆行移位(InvShiftRows),逆字节代替(InvSu

文档评论(0)

1亿VIP精品文档

相关文档