论文部分内容阅读
模算术是实现椭圆曲线密码的基本运算。椭圆曲线密码系统是一种基于椭圆曲线离散对数难题的公钥密码体制,与传统的RSA公钥密码体制相比,椭圆曲线密码体制使用较短的密钥可以获得较高的安全性。2007年,陈刚等提出一种快速的素域模除算法及其脉动阵列实现(IEEE Transactions on Computers,2007,56(2):282-286),并在此基础上给出了基于仿射坐标的素域椭圆曲线密码芯片实现。这一研究工作给出了基于仿射坐标和快速素域模除算法实现椭圆曲线密码系统的一种思路。本文沿着这一思路,以改进素域模算术算法与优化其硬件实现为基础,研究素域椭圆曲线密码的快速硬件实现。本文首先改进关于大素域模算术中模除算法,在此基础上给出一个快速的统一的关于大素数域的模乘除算法;其次优化改进的模除算法的脉动阵列实现,并在此基础上实现一个统一的模乘除算术运算器,通过优化脉动阵列中四个加法器的计算顺序来减少关键路径延时,以提高关于大素数域的模乘除脉动阵列算术运算器的计算速度;最后给出仅使用一个模乘除脉动阵列算术运算器的素域椭圆曲线密码的硬件实现。本文对素域模算术中模除算法与统一的模乘除算法及其硬件实现作了三个方面的改进。首先,给出一种改进的适合脉动阵列实现的模除算法及其优化的脉动阵列实现。改进的模除算法采用新的迭代终止条件与较好的控制变量的更新方法,统计数据表明其迭代周期数相比已有的适合脉动阵列实现的模除算法的周期数减少近15%。在改进的模除算法的脉动阵列实现中,通过重新排列其基本运算单元的四个加法器的计算顺序,使得关键路径延时减少约18%。在算法周期数减少15%与脉动阵列的关键路径延时减少18%的基础上,改进的模除脉动阵列完成一次模除运算的平均时间减少近30%。其次,给出一种快速的统一的模乘除算法及其脉动阵列的硬件实现。该算法的模除计算过程与改进的模除算法的计算过程一致,且模除运算与模乘运算的迭代终止条件一致,其硬件实现可在改进的模除算法的脉动阵列基础上仅增加一个标志信号和三个逻辑门,使得基于脉动阵列的模除器成为一个统一的脉动阵列模乘除器。最后,给出三种改进的基于加法器的模除算法及一个超大素数域的模除处理器设计。三种改进的基于加法器的模除算法通过控制算法中两个变量有条件地交换,可以有效地减少算法的迭代计算周期数,其硬件实现适合不同硬件资源条件与性能要求。超大素数域的基于加法器的模除处理器采用一种可伸缩式的硬件结构,其用于计算超大素域模除。在改进的模算术算法及其优化的硬件实现基础上,本文采用基于仿射坐标的素域椭圆曲线密码算法,仅使用一个统一的模乘除脉动阵列算术运算器实现椭圆曲线密码硬件系统,并通过三级流水结构并行计算提高点乘计算速度。与现有结果相比,由于改进的模除算法减少15%的周期数,模乘运算的周期数不变,核心的脉动阵列的关键路径延时减少18%,使得模乘运算时间减少约18%,模除运算时间减少30%,从而基于统一的模乘除脉动阵列算术运算器的素域椭圆曲线密码硬件实现减少约19%的计算时间。