基于椭圆曲线数字签名的研究与应用论文

时间:2021-08-31

  1.引言

  在信息产业高速发展的今天, 网络的安全问题已成为信息产业发展的重要问题。而安全高效的密码系统则是解决信息安全问题的基础。椭圆曲线密码系统,即基于椭圆曲线离散对数问题的各种公钥密码系统, 最早于1985 年由Koblitz 和Miller 分别独立地提出, 它是利用有限域上的椭圆曲线有限群代替基于离散对数问题密码系统中的有限循环群所得到的一类密码系统。与RSA、DSA 等公钥密码系统相比,具有密钥短、运算量小等优点,并具有更高的安全性,这些优点使椭圆曲线密码系统成为近年来的研究热点。例如微软操作系统的25位的产品密钥中就使用了椭圆曲线数字签名算法,产品密钥就是签名的十六进制串的表示形式。

  2.椭圆曲线数字签名算法(ECDSA)

  2.1 密钥对的产生

  ECDSA 的密钥对是和特定的椭圆曲线域参数组联系在一起的,在实现ECDSA时需要先产生域参数组。但是求域参数是很复杂的,在实现时可以从可靠机构获得可信的域参数,也可用NIST推荐的曲线它们给出了全部域参数。无论采用哪种方式为了安全起见,在产生密钥对之前,实体A 需确保域参数组是有效的。然后实体A 作如下步骤:

  3.基于java的应用研究

  Java 6对数字签名算法的支持非常有限,除了RSA就是DSA了。但是第三方组件Bouncy Castle给ECDSA提供了一定的支持。Bouncy Castle支持多种数字签名算法。有关ECDSA系列的包括NONEwithECDSA,RIPEMD160withECDSA,SHA1/224/256/384/512withECDSA共7种算法。ECDSA数字签名算法的密钥算法实现方式与RSA和DSA算法产生密钥的方式相类似。

  Bouncy Castle未给出ECDSA算法的密钥长度及默认值信息,ECDSA算法密钥生成仅能通过算法材料的方式产生。这也是ECDSA算法区别于RSA和DSA算法的主要地方。由于Bouncy Castle提供的ECDSA算法未能实现密钥生成的自动化实现,这可能跟ECC算法的高难度有关,所以实现起来还是有一定的困难

  Java.security系列文件提供了大量的支持,为密钥产生,签名,验证,ECC参数设定提供了方法。

  Java由于其方便的运行环境和超强的支持为ECDSA的应用奠定了基础,这使得ECDSA在资源环境受限的环境下可以更好的发挥其作用。

  参考文献:

  信息通信,2011,3(sum113)