论文部分内容阅读
随着人们对公钥密码的深入研究和计算机计算速度的提高,目前广泛使用的公钥密码系统RSA的安全性受到了很大的威胁,为了提高RSA的安全性,RSA的密钥长度不断增加。但是对椭圆曲线离散对数的攻击,学者们并没有发现有效的方法。这样,椭圆曲线密码系统用比较短的密钥,且可以达到RSA的长密钥的安全级别,并且可以提高运算效率,减少密钥的存储空间,这对资源相对有限的移动设备、无线网络传输来说,具有很大的吸引力。
对于椭圆曲线密码系统的实现及应用,二元域对硬件的实现是最具吸引力的,因为其运算只涉及移位和异或。对于通用处理器上的软件实现,素域由于素数的位数和计算中进位的传播,造成了实现和执行效率的局限。最佳扩域通过选择符合处理器单字的素数,使其运算可以在处理器的字长范围内进行,并且计算过程中无须进位,这在一定的程度上提高了执行的效率,同时也消除了实现中的局限,所以在通用处理器上椭圆曲线密码系统的软件实现,最佳扩域是最好的选择。
本文以最佳扩域上椭圆曲线密码系统在嵌入式片上系统的软件实现为研究的切入点,首先对椭圆曲线密码的理论进行了深入研究与探讨,并给出了最佳扩域上的椭圆曲线密码体制,研究了其运算算法的构建与实现过程,同时给出了实现椭圆曲线的点加、倍点和点乘等基本实现算法。利用最佳扩域上的椭圆曲线密码密码体制讨论了明文的嵌入、ECC密码协议(加密/解密、签名/验证、密钥交换)等的实现。在此基础上,利用C语言在嵌入式片上系统中,实现了椭圆曲线密码的加密/解密、签名/验证等密码协议。最后本文对最佳扩域与二元域、素域上的各种算法的运算效率进行了对比。