论文部分内容阅读
随着网络被广泛的应用,数据传输网络的安全已经成为一个热点问题。公钥密码学所涉及的数学理论通常包括大数因子分解问题和有限域的离散对数问题。椭圆曲线加密ECC(Elliptic Curve Cryptography)是1985年Victor Miller与Neal Koblitz提出的一种公钥密码体制。在目前的情况而言,ECC能够提供在每比特数据传输中拥有最高安全强度的一种加密算法。确保在相同安全强度下,根据椭圆曲线离散对数难解这个显著的特点,ECC在密钥的长度小、存储的信息量少、传输带宽小以及功耗低等所体现的性能,远比另一种公钥密码体制RSA具有更大的优势。随着计算机硬件的发展和高性能计算技术的发展,ECC加密算法运算的速度问题受到广泛的重视,如果用软件实现的ECC算法芯片面积大,运行速度也慢。一般的算法由于求逆运算过多而导致整个加密算法运算速度过慢,本文就此提供了如何能更有效的加快ECC椭圆曲线加密运算的硬件实现设计思路过程。ECC椭圆曲线加密算法可以在不同基域中有不同的实现方法,常见的有素数域和二元扩域。本文主要讨论基于素数域的范围下,在尽量减少求逆运算的设计前提下,采用雅可比(Jacobi)加重射影坐标系,通过Montgomery模乘、Montgomery模逆运算,从而对进行单次点乘运算的时间进行了有效地缩减,由于有效地缩短了运算的时间,从而使得设计能够非常好地抵御旁道的攻击。本课题设计达到的预期效果是:设计一个非对称加密算法加速器,并且提高非对称加密算法的硬件加速能力。提供256位ECC加密点乘运算,包括:提供独立的数据搬运、移位等逻辑功能;提供独立的大数乘法、大数加减法、点加/倍点等算术功能;提供ECC关键运算模乘、模逆(modular inversion)功能(最大支持256位数据)。采用Verilog硬件描述语言设计实现所有的硬件模块编写,最终通过FPGA开发板的上机验证。