论文部分内容阅读
公钥密码(Public Key Cryptography, PKC)在保证开放的网络(如互联网)中通信的真实性和保密性上起着至关重要的作用。目前,RSA密码体系仍然是最重要而且应用最广泛的公钥密码算法标准,然而可以预见椭圆曲线密码体系(Elliptic Curve Cryptography, ECC)在未来会继续得到越来越广泛的关注以及应用,ECC有机会变成公钥密码体系在集合的网络信息应用中的标准。由于椭圆密码体系的密钥每位具有高安全性,即要达到相同的安全等级,ECC的所需要的密钥长度要远小于RSA(160位的ECC密钥安全等级相当于1024位的RSA的密钥),因此ECC在资源受限的设备已经嵌入式设备(比如无线传感网络节点和RFID传感器)上具有很大的吸引力。ECC密码方案的性能主要由在相关的有限域上的算术操作决定,尤其是乘法以及乘方。在本文中,作者首先提出了一个针对于多精度整数的Gura混合乘法的改进,改进的原因在于内循环中的指令的重新排序。第二,作者提出了一个在8位ATmega128芯片上基于最优素数域(Optimal Prime Fields, OPFs)的多精度算术算法的快速实现。ATmegal28是一个被应用在大量传感节点(包括MICAz mote)上的8位芯片。OPFs是素数域的一个特殊的群体,属于OPF的素数被定义为p=u2k+v的形式,这里u和y是相对于2k要小得多的整数,在本文的相关实验中,u总是为16位整数而v总是为1。OPF素数的特征是它们具有极低的汉明重量(Hamming Weight),只要很少一部分的靠近最高位和最低位的位为1,其他的位都为0。利用OPF素数的低汉明重量的特点,作者提出了对著名的Montgomery乘法以及乘方的改进算法。实验结果显示,本文的实现在ATmega128上只用3006个时钟周期就可以完成160位的乘法(不包括取模部分)。而在素数域上的160位的模乘只需要3532个时钟周期即可完成,这也是160位模乘在8位芯片上的执行速度记录。