基于FPGA的RSA快速加密IP核的设计与实现
作者单位:河北大学
学位级别:硕士
导师姓名:张锁良
授予年度:2021年
学科分类:11[军事学] 1105[军事学-军队指挥学] 0839[工学-网络空间安全] 08[工学] 110505[军事学-密码学] 110503[军事学-军事通信学]
主 题:RSA加密 Montgomery算法 IP核 流水线
摘 要:随着信息全球化进程的不断推进与发展,信息的频繁泄露使得信息安全成为人们广泛关注且亟待解决的热点问题之一。RSA加密算法是当下较为安全且应用广泛的公钥密码算法,其算法核心为模幂运算。随着计算机的计算能力不断提高,出于安全性考虑,RSA加密算法的模长相应增长,随之而来的是加解密时间的相应增加,所以快速实现RSA加密算法具有十分重要的现实意义。对比软件实现,硬件实现RSA加密算法具有明显优势,本文在研究了RSA算法的改进方案后,通过硬件实现1024位RSA IP核验证了改进方案的可行性。本文首先针对RSA密码体制原理与实现方法,对比分析了几种不同的模幂算法和模乘算法,研究出一套RSA算法的改进方案。该方案一方面在模幂运算的选择和改进中,整体采用L-R型高进制法,减少了模乘运算的循环迭代次数;在数据预计算时采用R-L型二进制算法,便于硬件的并行实现。当幂指数的0,1出现概率相同时,改进后的模幂方案对比二进制方案,模乘次数减少约18.0%。另一方面在模乘运算的选择和改进中,采用Montgomery模乘算法,通过移位来避免除法;采用SMM优化算法,有效地减少了模乘运算的计算量;在数据预处理时使用两个普通模乘模块将数据从整数域映射到Montgomery域。改进后的模乘方案不仅减少了计算量,而且适合硬件实现与优化。通过上述两方面的改进,提升了RSA算法的运算效率。其次,基于RSA算法的改进方案,借助FPGA平台实现了1024位RSA IP核。在硬件实现上采取的改进措施主要体现在两方面:一方面利用位宽优化定义小位宽数据节省了部分硬件资源,定义大位宽数据提高了运算效率;另一方面对模幂模块与模乘模块运算中出现的循环采用并行流水线优化,时延减少约15.1%,时钟频率可提高约17.8%,进一步提升了RSA IP核的性能。使用软件Vivado HLS对不同功能模块进行建模、仿真和测试,验证其正确性后综合并封装IP核;使用软件Vivado对IP核实例化后进行性能测试。最终实现的RSA IP核加解密结果正确,验证了算法改进方案的可行性。IP核在100 MHz时钟频率下,加密速度约为21.2 ms/次,解密速度约为31.4 ms/次,性能优良。