论文部分内容阅读
自从基于椭圆曲线离散对数问题的公钥密码体制—椭圆曲线密码体制(Elliptic Curve Cryptography,简称ECC)被提出,很快掀起了学术界对ECC研究的巨大浪潮。因为ECC相对于其他密码体制如目前流行的密钥体制RSA等具有密钥更短、安全性能更高的特点,目前其被广泛的应用在保密通信、快速加密、身份验证、数字签名等领域。很多地区,如欧盟、韩国和中国等都已经开始准备或者打算将ECC作为国家密码标准。不久的将来,ECC将会作为主流的密码标准应用在信息安全的诸多领域,我们将拭目以待。椭圆曲线密码体制问题本是基本数学问题的延展,本文对椭圆曲线问题、数论等数学问题做了深入的探究,旨在找出突破ECC研究的理论基础。在此基础上,着重研究了椭圆曲线算法中的核心模块标量乘法的硬件设计,并借助FPGA平台对其做了实现。标量乘法的实现具有层次性,分为底层运算和上层运算。在有限域运算及椭圆曲线底层运算的实现中,采用串并混合乘法器结构来平衡运算速度与资源面积的矛盾;论文中我们探讨了模逆实现的三种算法,从节约资源的角度选取了多项式基上的Itoh和Tsujii算法。在寻求更加适合硬件实现的高效标量乘算法的同时,充分考虑了标量乘算法的复杂性和高效性,使用了NIST(NationalInstitute of Standards and Technology,美国国家标准技术研究所)推荐的Koblitz曲线,二进制域GF (2m)的扩展次数m233。上层运算的核心部分是kP运算即我们所称的标量乘法,结合底层有限域运算的特点对kP的快速实现算法做了深入探究,最终选择了在投影坐标下的Montgomery算法并给出了其FPGA实现的硬件解决方案。在Altera公司的集成开发环境QuartusⅡ10.0平台下,采用自顶向下的数字电路设计方法进行设计。用Verilog HDL硬件描述语言实现了椭圆曲线群上的有限域运算以及上层kP运算,并使用多种方法验证了本文设计的正确性。