论文部分内容阅读
目前商界广泛使用的加密技术是基于大整数因子分解难题的RSA(Rivest Shamir Adleman)公钥密码技术。由于存在亚指数攻击,随着计算机计算能力的增强,RSA只能通过增加密钥长度来提高加密强度。椭圆曲线密码体系[ECQElliptic Curve Cryptosystem)是一种基于椭圆曲线群上的新的公钥密码体系,最新研究表明密钥长度为220比特的ECC加密强度比密钥长度为2048比特的RSA加密强度高。ECC是基于椭圆曲线离散对数难题,与大整数因子分解难题(RSA)相比,ECC具有密钥更短、安全性更高、运算速度更快和所需存储空间更少等优势。软件和硬件都可以实现ECC密码算法,其中软件实现的加密速度和安全级别难以满足信息安全的要求,硬件实现的加密速度和安全级别明显高于软件,能够满足信息安全的要求,但是其实现成本高。本课题采用软硬件协同设计方式,设计实现ECC加解密算法。论文选择有限素数域上的椭圆曲线作为研究对象,首先结合软硬件设计的特点分析ECC加解密算法,合理划分软硬件模块。然后重点研究硬件模块用到的算法,先从理论上对其进行改进,再结合所选FPGA器件提供的硬件资源,设计出速度和面积平衡的硬件电路。点乘运算的性能决定了ECC加解密算法的性能,本文深入分析了常用的几种点乘算法后,提出了一种点乘并行运算算法,该算法支持点加和倍点同时运算。经过深入研究Jacobian射影坐标系下点加算法和倍点算法的数据流特点后,分别设计了一种点加并行运算算法和倍点并行运算算法,该算法支持模乘和模加/减同时运算。基于改进后算法设计的点乘模块,完成一次密钥长度为256bit的点乘运算需要138612个时钟周期,在已查阅文献中本文设计实现的点乘模块运算时钟节拍数最少。最后通过Signal Tap Ⅱ逻辑分析仪完成FPGA硬件电路的板级测试,从而验证本文设计的FPGA硬件电路的功能是否正确。通过上位机测试程序,完成ECC加解密算法的功能测试、性能测试和可靠性测试。测试结果表明:本文设计实现的ECC加解密算法功能正确,能够长时间正常工作,性能和可靠性达到预期目标。其中点乘算法性能为489.8次/s,ECC加密算法性能为219.87次/s,ECC解密算法性能为402.23次/S。连续进行2千万组随机明文加解密运算,运算结果完全正确,FPGA芯片工作温度正常。