论文部分内容阅读
随着有线和无线通信的传播、互联网和电子商务的持续增长,共享或交换秘密以及私人信息的应用程序的安全性问题越来越受到人们的重视。椭圆曲线密码算法(ECC)由于其能够以较小的密钥尺寸提供较高的安全性,目前已经被广泛的应用于因特网和无线通信网络中的用户之间,用来建立安全通信信道。 本文主要研究素域椭圆曲线上的点乘问题,点乘算法实现是一个自下而上的分层次结构,主要分为有限域运算层和椭圆曲线上的群运算。 有限域运算层具体包括模加/模减、模乘以及模逆运算。论文着重对素域上的模乘模块进行了改进,传统的模乘运算有两种方法,一种是先进行乘法运算后再对其约化的方法,另一种则是边乘边约化的Montgomery模乘。在对这两种模乘方式在改进上有相似之处,均是通过对原有的算法分析,将以前的单步处理单比特方式转化成多步处理多位的方式使其算法的迭代次数降低,从而减少完成一次运算所需要的周期数,进而达到提高速率的目的。通过大量实验测试以及数据分析,综合考虑运算速度和硬件资源消耗,给出了不同算法最优的迭代次数,最后通过QuartusII和Modelsim的仿真验证,结果表明基于256位的素数域优化后的先乘后约化方法的运算时间为0.44微秒,Montgomery模乘方法达到0.22微秒/次。与其他文献结果相比,本文的模乘运算时间降低了约30%到60%之间,具有较高的效率。 椭圆曲线上的群运算主要是点乘运算,而点乘计算则是由点加运算和倍点运算构成。论文通过坐标转换形式将仿射坐标转换成投影坐标来实现点加和倍点运算,从而避免耗时的模逆运算,达到提高运算速度的目的。其中,倍点运算采用的是雅克比坐标表示形式,点加运算采用的是仿射坐标-雅可比坐标的混合点加结构形式,在此基础上利用多路复用技术进一步提高点加和倍点运算的效率;除了通过改进点加和倍点运算提高点乘速度以外,论文还从点乘的结构方面进一步优化点乘的硬件实现。整个点乘运算的功能仿真验证是基于Modelsim软件,而综合则是通过Synplify Pro软件进行。在AlteraStratix II器件上的模拟实现,针对256位和384位素数域,得到点乘的运算时间约为0.57毫秒和1.33毫秒。最后,论文给出了本文设计的点乘运算与其它相关文献的性能比较,与大多数文献相比,本文的点乘设计在运算时间上降低了约14%到44%之间,由于在资源占用上也仅仅只使用了硬件逻辑资源,表明本文的实现具有可移植性,可用于其他硬件设计平台。