论文部分内容阅读
随着信息技术的快速发展,大量的信息需要迅速而又安全的传输。在信息传输中实时高效的加密机制必不可少,而采用椭圆曲线离散对数问题建立起来的ECC公钥加密体制由于有着单bit安全性能高、处理速度快、储存空间占用小等优点,得到了迅速发展。为了进一步提高ECC的速度,使其能适应现在高速通信的需求,本文将针对限制ECC速度提升的点乘算法,在FPGA上开发一种面积较小、速度快的点乘算法模块。本文首先介绍一种快速实现点乘的方案,通过采用基于LD投影坐标Montgomery方法快速实现点乘。为保证信息传输安全,加密曲线采用NIST标准的基于GF(2163)的Koblitz曲线作为加密椭圆曲线,另外加密时涉及的参数也采用NIST标准建议使用的参数。然后针对各有限域运算的特点设计和优化相对应的算法,其中有限域乘法运算通过采用KOA方案优化全并行乘法器来进行实现,有限域平方运算由于其特殊性采用全并行的方式进行实现,有限域除法运算则是在费马小定理的基础上进行适当优化来实现。最后优化点乘算法流程,减少模块例化个数,减小资源消耗。本文对点乘模块进行行为仿真,利用Xilinx XC7VX690T的FPGA芯片完成点乘模块的综合,其结果显示点乘模块的最高频率为266MHz,资源为12047个LUT和6821个Register。一次点乘需要大约4144个时钟周期,1秒能实现64516次点乘。最后分析表明本文相比于同类文献基于GF(2163)实现的点乘模块,在资源增加不多的情况下,其速度有较大增长。