论文部分内容阅读
随着计算机运算速度的迅速提高和Internet分布式计算能力的日益强大,经典的公钥密码体制如RSA、Diffie-Hellman等在密钥长度为512bit下已经越来越不安全;虽然增加密钥长度能增加安全性,但是加、解密效率会越来越低,同时对系统的要求也会提高。在这种情况下,椭圆曲线密码体制(Elliptic Curve Cryptosystem,简称ECC)“短密钥”的优势得到充分体现,其发展大有取代RSA成为通用公钥密码体制之势。 本文结合椭圆曲线算法的数学基础对椭圆曲线密码体制进行深入的分析,对椭圆曲线算法的FPGA实现进行了具体的研究设计,为ECC算法提供了实际可行的硬件解决方案。 底层运算的实现中乘法器使用串并混合型结构以达到面积与速度的最佳匹配。对比了两种模逆算法,从节约时间的角度选取了扩展的欧几里德方法。在寻找适合硬件实现的高效算法的同时,充分考虑了ECC算法的多样性,没有使用针对单一曲线的快速算法。 上层运算中最重要的部分是KP运算,结合底层有限域运算的特点对四种求KP的快速算法进行分析,最终选择了射影坐标下的Montgomery方法并给出了其FPGA实现算法。 在Altera公司的集成开发环境Quartus Ⅱ下,用VHDL语言实现了椭圆曲线算法的底层域运算及上层KP运算。使用ANXI X9.62中椭圆曲线的例子对各个运算模块进行测试,验证了它们的正确性。 测试结果表明:设计芯片能够有效地完成椭圆曲线加密体制完整流程;在20MHz的工作频率下,平均每次KP运算的时间为15.15ms。该芯片可以支持m≤256的F2m域上任意可变曲线的ECC公钥密码算法,是一种系统参数可选择的高速椭圆曲线密码芯片。