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)
本文來源:http://www.nvnqwx.com/wenxue/gexingqianming/590784.htm