论文部分内容阅读
1976年Diffie和Hellman提出了公钥密码的概念,信息安全产业由于这一概念的引入得到了迅猛的发展。目前应用最广泛的公钥密码是基于大整数分解问题的RSA算法和基于离散对数问题的ElGamal算法,椭圆曲线密码系统由Koblitz和Miller在1985年独立提出,经过十多年的安全性论证,于本世纪初开始步入应用领域。随着人们对公钥密码系统分析的深入和计算能力的提升,大整数的难分解性和离散对数的难解性都受到了威胁,这就迫使以它们为基础的密码系统使用更长的密钥,而与此同时,椭圆曲线离散对数问题的求解却几乎毫无进展。因此在相同的安全级别下,椭圆曲线密码系统可以使用更短的密钥,这就意味着更快的运算速度和更小的空间消耗,这也使其特别适用于传输带宽或计算能力受限的环境,例如无线网络、智能卡等。
本文以椭圆曲线密码系统的实现算法和协议为研究重点。椭圆曲线可以定义于各种域上,但只有定义于二元域和大素数域上的适用于计算机密码学,因此文中对这两种域上的基本运算算法作了细致的探讨,同时给出实现椭圆曲线点加、点乘的典型算法。文中解决了二元域上的明文嵌入问题,将明文嵌入算法应用到椭圆曲线点的变换上,节省了大约一半的存储空间和传输带宽。椭圆曲线可以应用在各种基于离散对数问题的安全协议中,文中对此作了分析,并将EC-Elgamal加密协议加以改造,提出了Rambo会话密钥交换协议,新的协议简化了通信双方交换会话密钥的过程。文中对实现椭圆曲线密码系统各功能模块的典型算法均作了性能分析,给出实验数据,并以之为参考,选出效率最高的算法,开发了二元域上的椭圆曲线密码函数库。在此基础上,按照WindowsCSP的框架,将此系统和对称加密、哈希功能集成,构建了一个基础密码函数库,称为“EC-CSP”。测试数据表明,“EC-CSP”主要功能函数的速度要优于Windows自带的两种主流CSP(RSA和DSS),且运行稳定,可以支持上层应用程序的调用。