论文部分内容阅读
RSA作为最广泛应用的公钥加密算法,其数据加密和数字签名应用在信息安全领域扮演着重要的角色。随着计算机技术的高速发展,RSA标准密钥的长度越来越大,这对RSA算法的实现提出了更高的要求。目前,RSA算法的实现主要有软件和硬件实现两种方式。RSA软件加密被应用于各种Internet传输协议,来保证网络安全;与传统的软件加密相比,硬件加密具有速度更快,稳定性和兼容性更高,安全性更好等优势。尤其是现代IC技术的发展,促使IC卡、USB Key等小型电子设备在电子商务领域得到越来越多的应用;因而将RSA协处理器嵌入到这些小型硬件中,对电子商务高度发达的今天将具有重大的现实意义。为了能够在资源受限的情况下,完成一种适合小型硬件的面向低端的RSA实现,需要找寻一种综合性能最优的解决方案。本文首先从理论出发,分析了RSA算法的原理及其实现算法,并对其算法实现作出了改进。选择了RL二进制扫描作为模幂的实现方式,并对经典的Montgomery模乘的改进实现方式中的FIOS算法做了改进优化,改进后的IIFIOS算法的时空复杂度优于原本综合性能最优的CIOS算法。同时鉴于硬件实现的面积和性能综合考虑,对模乘参数和模平方等作出了相应改进。基于改进的算法,在VS上对RSA模乘模幂算法用C语言编程,完成了RSA的软件建模。通过软件的实现及对比测试,完成了算法的正确性验证,并从软件层面肯定了算法上的改进对RSA实现性能的提升,为后续的IP核的硬件实现打下了基础。在RSA IP核的设计中,从低成本高性能的前提出发,选择32位作为基本处理数据位宽,有效地实现了算法上的优化思想,完成了适合流水线技术的IIFIOS算法的硬件实现。并通过模块的独立和复用、数据通路设计、存储映射等策略对IP核作出了硬件设计上的优化。RSAIP核各模块经过仿真,并实现了FPGA的验证测试及ASIC逻辑综合。在100Mhz时钟下,2048位的模幂速度约为4次/秒,1024位模幂速度约为36.7次/秒;gsmc0.13um工艺下,综合得到IP总面积约为76k门,其中Sram约46k门,Sram占整个IP的约60%,性能优良,与其他设计相比也具有较大优势。该RSA实现算法在软件实现具有一定优势,同时基于改进算法的IP核也具有较好的性能。