论文部分内容阅读
二十一世纪以来,信息通信已经由过去单一的点到点通信发展成为全球化的网络通信,互联网的开放,使得信息的安全性变得越来越重要,信息安全已经成为人们研究的热点课题。密码学是信息安全的基石,为全球约1万亿通讯设备提供安全保障,而哈希函数又是密码学中一个非常重要的工具,在消息认证、电子签名和密码体制中具有广泛的应用。近年来,随着密码分析学的发展,哈希算法的安全性受到了越来越大的威胁,为了提高哈希算法的安全性,2007年,美国NIST公开竞选SHA-3算法,经过五年的筛选,Keccak算法成为最终获胜算法。本文的主要工作是对新的SHA-3算法在FPGA上进行硬件设计与实现,具体完成以下四个方面的工作:(1)基于现有的研究成果,围绕哈希函数对SHA-3算法进行深入研究,从统计学角度对SHA-3算法进行安全性分析,并介绍了SHA-3算法的应用领域。(2)根据SHA-3算法的结构性质,设计了SHA-3算法的顶层电路架构,完成了控制电路、数据读入、轮函数运算等模块的设计,实现SHA-3算法的数据读入、消息填充、流程控制、数据输出等功能,在此基础上,对Keccak算法进行硬件设计,主要设计了Keccak算法的轮函数电路结构,并用Verilog硬件描述语言对五步迭代运算进行描述。(3)针对不同的应用场景,对Keccak算法进行了两个维度的硬件优化,首先,在高速处理器应用环境中,采用速度优先方案,主要对五步迭代运算采用并行化处理方式,达到速度最优化。其次,在智能卡应用环境中,采用面积优先方案,直接对寄存器存取数据,通过状态机控制算法运行,达到面积最优化。(4)根据设计的硬件结构,在ModelSim SE-64 10.4软件上完成了算法的功能性仿真验证,并针对Xilinx Kintex7 XC7K410T FPGA芯片在ISE14.7软件上进行综合,在速度优先的方案中,Keccak算法吞吐量可达到9.45Gbps,在面积优先方案中,占用Slices为1350个,LUT为1204个。除此之外,本文基于课题组的硬件平台,给出了SHA-3算法的应用系统,提出了基于FPGA的加解密板卡设计方案和板卡的启动方案,并进行后续测试和应用。