论文部分内容阅读
椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)作为一种公钥体制加密算法,不但功能和RSA相同,而且和RSA相比具有加密强度高等诸多技术优点,因此应用越来越广泛。在这一背景下,对于椭圆曲线加密算法的研究也受到普遍重视。论文重点研究椭圆曲线加密算法的改进,提出了一种支持椭圆曲线加密体制的双有限域算法。该算法可以完成素数域和二进制域上任意椭圆曲线的加密运算,并且模数p和取模多项式f(x)可以任意选取。论文还提出了有限域运算单元的设计方法,这个运算单元可以同时完成素数域和二进制域上的所有运算,包括加法、减法、乘法、平方、求逆和除法。在对算法的改进和创新完成以后,论文讨论了对于改进后算法的硬件实现方案。点乘运算作为椭圆曲线加密算法的核心运算,是硬件实现设计的重点,针对改进后算法的特点论文创造性的提出了点乘运算电路的三级模块结构。把点乘电路分为点乘模块、点加倍点模块和有限域运算模块,并且针对三级模块的不同运算特点分别作了电路优化。在整个的设计工作中,主要有3个创新点:1、对于椭圆曲线加密运算芯片功能的扩展是本设计最重要的一点创新,我们所设计的点乘模块不仅可以同时完成素数域和二进制域两种有限域上的点乘运算,还可以完成这两种有限域上的加、减、乘、平方、求逆和除法运算,因此它可以应用到ECC和RSA等加密电路中;2、椭圆曲线加密算法的核心运算点乘运算的算法创新,为了实现对两种有限域同时加密,我们首先对已有的算法进行了必要的改进,并且把各种算法进行合并,从而设计出了最后的点乘运算算法;3、点乘运算电路结构上的创新,我们为了更好的实现点乘运算,把整个电路分为三级模块:点乘模块、点加倍点模块和有限域运算模块,并且针对不同模块的特点对每一级模块进行优化。在完成了算法设计和电路设计之后,我们对最后的电路进行了全方位的仿真与测试。对于点乘运算算法我们做了VLSI和FPGA两种硬件实现方案:VLSI实现方案选择了中芯国际的0.18 um标准CMOS工艺,偏重于电路的功能仿真和对算法创新的验证;FPGA实现方案则是在Xilinx公司生产的Virtex2系列的XC2V3000芯片上完成的,偏重于电路参数的测试和对电路结构创新的验证。论文第五章给出了FPGA的测试结果,当加密位数为163位,电路的时钟频率为70MHz时,完成素数域点乘运算只需要4.23ms,完成二进制域点乘运算需要2.29ms。本设计无论是在功能、速度还是面积上都具有很强的竞争力。仿真和测试结果的数据验证了本设计对于算法的创新以及电路结构的创造性改进都是成功的。