论文部分内容阅读
近年来,双线性对作为非对称密码学的新兴研究方向,受到密码学领域的广泛关注。与目前广泛使用的RSA和ECC等传统公钥加密体制相比,双线性对密码具有密钥短、存储空间小、安全性高等优点。利用这些特性,人们成功设计出了基于身份标识的加密方案(IBC),避免了传统公钥密码体制中可信第三方的身份验证和密钥托管问题。随着我国基于身份标识的商用加密方案SM9的公布,双线性对加密技术已成为具有广阔应用前景的研究热点。但双线性对密码涉及的代数结构较复杂,计算难度大。不断改进算法效率并设计出高效安全的硬件架构已成为推广双线性对加密技术的重要研究课题。本文以提高计算速度和降低系统硬件开销为目标,设计了一个基于FPGA的双线性对算法硬件实现方案。研究了与双线性对运算密切相关的有限域运算法则及扩域的构造原理。本文选择BN曲线上的Optimal-Ate Pairing详细分析了双线性对的构造过程和算法架构,并对上层运算的优化方法进行论述。基于蒙哥马利模乘算法,使用大数分解方法设计出具有高度并行性和较低延时路径的素域运算单元。在此基础上,针对扩域运算并行性的特点完成具有双运算单元的并行硬件架构设计。最后依照FPGA嵌入式系统开发流程,采用Xilinx vertex-5系列中的XUPV5LX110T开发板完成双线性对算法系统的设计。本文使用Verilog HDL完成双线性对系统硬件模块的设计和验证,在系统应用层使用C语言完成双线性对上层运算的设计。经过综合与布局布线等设计流程,将板级验证的结果与magma代数软件的结果进行对比,验证了系统功能的正确性。测试结果表明,整个系统硬件开销为4380 Slices和131 DSPs,完成一次双线性对运算共需254,853个时钟周期。与现有的研究相比,本设计在有限硬件资源的前提下有效提高双线性对的运算速度,具有较好的综合性能。