老哥学习网 - www.lg9.cn 2024年05月17日 00:49 星期五
当前位置 首页 >情感故事 >

图像重构算法 可重构Keccak算法设计及FPGA实现

发布时间:2019-03-17 06:20:00 浏览数:

  摘 要:在分析研究Keccak算法的基础上,针对现有Keccak算法的硬件实现方案版本单一,应用不灵活的问题,设计了一种高性能可重构的Keccak算法硬件实现方案。实验结果表明:该方案在Xilinx 公司的现场可编程门阵列(FPGA)Virtex�5平台上的时钟频率可达214�MHz,占用1�607�slices;该方案具有吞吐量高(9�131�Mbps),应用灵活性好,可支持4种不同参数版本的优点。
  关键词:Keccak算法;海绵结构;哈希算法;可重构;现场可编程门阵列
  中图分类号: TP332.1 文献标志码:A
  �
  Reconfigurable Keccak algorithm and its implementation on FPGA platform
  �
  WU Wu�fei�1, WANG Yi��1,2,3�*�, LI Ren�fa��1,2,3�
  �(
  1.Embedded Systems and Networking Laboratory, Hunan University, Changsha Hunan 410082, China�;��
  2.Hunan Province Graduate Innovation Base, Hunan University, Changsha Hunan 410082, China�;��
  3.Hunan Province Key Laboratory of Network and Information Security, Hunan University, Changsha Hunan 410082, China
  )�
  Abstract:
  Based on the analysis of Keccak algorithm, concerning the situation that the existing hardware implementations of Keccak algorithm lack of flexibility and could only support one version, this paper proposed a new reconfigurable Keccak hardware implementation, which could support four versions algorithms. The proposed design achieved 214�MHz clock frequency using 1�607�slices when being ported to Xilinx Virtex�5 FPGA platform. The experimental results show that the proposed design has the advantages of high throughput (9�131�Mbps), good flexibility and supporting four versions.
  �Key words:
  Keccak algorithm;sponge structure;Hash algorithm;reconfigurability; Field�Programmable Gate Array (FPGA)
  
  0 引言�
  安全散列算法(Secure Hash Algorithm, SHA)��[1]�是由美国国家标准与技术研究院(National Institute of Standards and Technology, NIST)于1993年发布的一种数据加密算法。其主要思想是将可变长度的消息映射成固定长度的消息摘要,广泛应用于密码保护、消息鉴别、数据完整性验证以及数字签名等信息安全领域。NIST先后发布了SHA�0、SHA�1和SHA�2共3个版本标准,随着计算机技术的飞速发展和破解技术的增强这3个版本逐个被成功攻击��[2-4]�,因此NIST采用公开竞赛的方式来制定新的安全散列算法即SHA�3标准算法。经过两轮竞赛其中有5个算法成功进入到第三轮,分别是BLAKE、Gr�stl、JH、Skein和Keccak��[5]1-7�。�
  目前国内对Keccak研究较少,基于可重构技术的密码算法硬件实现的研究内容多集中于多个密码算法的整合实现��[6]�和一类密码算法的统一框架设计实现��[7]�等方面。国外已经有学者在硬件平台上实现Keccak算法,如:爱尔兰国立考克大学的Baldwin等��[8]14�在Xilinx FPGA上单个实现了Keccak�224、Keccak�256、Keccak�384与Keccak�512,其最大的吞吐量为8�518�Mbps(Keccak�384);日本情报通信研究机构的Matsuo等��[9]14�同样在Xilinx FPGA上实现了Keccak�256,其吞吐量为8�397�Mbps;Str�mbergson等��[10]2�实现了 Keccak�256,在Stratix Ⅲ平台上的吞吐量为10�000�Mbps,同时在该平台上实现了面积最优的Keccak�256设计,面积为1�026�ALUT,占用242个寄存器,吞吐量达到了3�457�Mbps;美国乔治梅森大学的Homsirikamol等��[11]109�在Xilinx和Altera FPGA上分别实现了Keccak�256和Keccak�512,其性能指标是目前最好的,且最大吞吐量达到了12�817�Mbps。�
  分析发现,现有的Keccak算法硬件实现只考虑了一种或两种参数版本��[12]�,吞吐量/面积还有提升空间。针对以上不足,本文设计了一种高性能可重构的Keccak硬件实现方案,该方案支持Keccak�224、Keccak�256、Keccak�384和Keccak�512共4种不同的参数版本。本设计与实现的优势在于:提高了算法应用的灵活性;提出了可重构的硬件实现方案。实验结果表明本文的可重构设计在Xilinx Virtex�5 FPGA平台上可达到9�131�Mbps的吞吐率,吞吐量/面积为5.68。�
  
  
  
  1 Keccak算法�
  
  Keccak是一种采用密封海绵结构(Hermetic Sponge Strategy, HSS)��[13]�的安全散列算法,用Keccak[�r,c�]表示,由置换函数
  ��Keccak��f����[14]45-64��和特定的填充函数组成,如图1所示。其中�P为输入,Z�为Hash后的输出, �f为置换函数, r为波特率,c为容量。�输入数据通过填充函数进入state��[15]10-11�,然后在state中被置换函数�f�处理后输出,其中state�可看作是一个5×5×w的三维数组用a[5][5][w]表示,如图2所示, �lane�的长度为w,可以看作是w�位CPU的1个字节。�

推荐访问:算法 重构 设计 FPGA

相关文章:

Top