论文部分内容阅读
椭圆曲线密码算法是一种重要的非对称密码算法,被许多著名的国际标准组织采纳,并广泛应用于商用密码领域。椭圆曲线密码算法中最主要的运算是数乘运算,数乘运算的效率决定了椭圆曲线密码算法的加解密速度。在串行的范畴内,人们对改进数乘运算的效率进行了大量的研究,并提出了不少改进算法。本文尝试从并行计算的角度来提高椭圆曲线密码算法中数乘运算的效率,并获得初步的成功。 本文首先简要地介绍了椭圆曲线的数学基础、两种有限域上的椭圆曲线,基于椭圆曲线的密码体制,以及国内外改进椭圆曲线上数乘运算的现状。改进的途径大体分为四种,即:提高底层大整数运算及域运算的效率,使用不同的坐标系统,修改加法链,以及针对某些特殊曲线所做的优化。 通过分析二进制算法及作为其改进算法的2~T -ary算法、加减链算法的运行时间的影响因素,论文继而提出了将2~T -ary算法并行化的算法,并对该并行算法的运行时间进行了理论上的分析。 论文最后设计并实现了一个实验系统,以检验该并行算法的效果,并对实验数据加以分析。分析结果表明:受数乘运算中倍点运算次数与处理器数目无关这一瓶颈的制约,并行算法的效率受倍点运算的效率影响很大。当存在高效的倍点运算算法时,并行算法能较大幅度地提高数乘运算的速度,如在F_p域(p的长度为192~256),采用高效的倍点运算算法时,并行2~4-ary算法在4个处理器上并行执行时速度比串行的二进制算法约能提高76%,比串行的2~4-ary算法约能提高50%。