● 摘要
信息技术的不断发展,对信息的安全性提出了更高的要求。椭圆曲线密码体制是一种公钥密码体制,相对于以往基于有限域上离散对数问题或大整数分解问题的传统公钥算法,它具有安全性高、速度快、密钥短、实现时所需占用资源少的特点。 本文重点研究了基于二进制有限域GF(2n)的椭圆曲线加密算法的FPGA实现问题。为了硬件实现上的方便,选择含有II型优化正规基的域GF(2233)。根据层次化、结构化的设计思路,将椭圆曲线上的点乘运算划分成两个运算层次:椭圆曲线上的运算和有限域上的运算。模块划分之后,利用自底向上的设计思路,主要针对有限域上的乘法运算进行了重要的改进,并对点乘运算的算法进行了优化改进,以达到面积优化和快速执行的效果。 本文采用硬件描述语言Verilog HDL设计各个模块的输入,并使用Mentor Graphics公司的ModelSimSE 5.8C进行仿真。然后再选用Altera公司的Cyclone II系列器件,利用软件Quartus II 8.1进行综合、布局和布线。本文提出了合适的验证策略,对各个模块进行了验证,结果表明本设计的正确性。 本文主要针对资源受限的应用环境,改进了有限域上的乘法运算、使用了优化改进后的点乘算法。改进后的椭圆曲线点乘运算需要9445个逻辑单元,在50MHz的时钟约束下,运行一次点乘运算平均需要11.7ms。该结果可直接用于构造椭圆曲线上的密钥计算、加解密运算等应用。