王方鑫
摘要:在當今信息化高速發(fā)展的時代里,信息的傳遞和交互越來越成為人們生活中的一部分。如何保證信息源的真實性,以及如何辨別信息是否經過他人惡意的篡改或偽造成為一個熱點話題。該文介紹一個基于橢圓曲線密碼體制在數(shù)學簽名的一個實現(xiàn)方案ECDSA,具體介紹該算法的實現(xiàn)以及應用發(fā)展。
關鍵詞:數(shù)字簽名;橢圓曲線密碼體制;非對稱密碼體制
中圖分類號:TP393? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2019)01-0053-01
伴隨電子商務的日益發(fā)展,人們的生活越來越離不開電子信息的交互和傳輸,當前電子商務領域廣泛的使用RSA簽名算法來保證消息的真實性以及來源的真實性,但是隨著ECDSA技術的日益完善,以及ECDSA相較RSA簽名算法的優(yōu)勢,電子商務領域對ECDSA的使用也越來越多。
1 研究背景
橢圓曲線數(shù)字簽名算法(ECDSA)是使用橢圓曲線密碼(ECC)對數(shù)字簽名算法(DSA)的模擬,在2000年,ECDSA成為IEEE和NIST標準。目前,ECDSA算法已經成為一種國際通用的標準算法,廣泛地應用于電子移動硬件中。
2 數(shù)字簽名的流程
將信息的發(fā)送者記為A,將信息的接受者記為B。一般來說,數(shù)字簽名的流程為:
消息的發(fā)送者A將消息通過hash函數(shù)生成消息摘要,然后通過不同的簽名算法,將簽名和消息分別發(fā)給消息的接受者B。
消息的接收者B將消息通過hash函數(shù)生成消息摘要,然后通過簽名驗證算法把A發(fā)送的簽名進行驗證。如果驗證相等那么簽名有效,否則無效。圖1給出了數(shù)字簽名的一般流程。
3 橢圓曲線數(shù)字簽名技術的實現(xiàn)
本文介紹的是基于橢圓曲線密碼體制在數(shù)學簽名的一個實現(xiàn)方案ECDSA,這個簽名方案實現(xiàn)的流程類似于RSA數(shù)字簽名方案。
第一步,執(zhí)行密鑰生成算法,生成ECDSA算法的公私鑰。
第二步,執(zhí)行簽名算法,用第一步生成的私鑰進行簽名。
第三步,執(zhí)行驗證算法,用公鑰驗證私鑰簽名。
第四步,對比得到簽名是否有效。
3.1 密鑰生成算法
這里介紹ECDSA簽名算法中的密鑰生成算法,KeyPairGenerator 類用于生成公鑰和私鑰對。我們可以使用指定ECDSA簽名算法中生成密鑰KeyPairGenerator.getInstance("EC");其中ECPublicKe是ECDSA公鑰密鑰的接口,ECPrivateKey是專用密鑰的接口。
3.2 簽名算法
這里介紹ECDSA簽名算法中的簽名算法,PKCS8EncodedKeySpec類繼承EncodedKeySpec類,以編碼格式來表示私鑰。Signature 類用來為應用程序提供數(shù)字簽名算法功能。數(shù)字簽名用于確保數(shù)字數(shù)據的驗證和完整性。
3.3 驗證算法
這里介紹ECDSA簽名算法的驗證算法,用公鑰來驗證生成的私鑰簽名是否有效。
4 總結
目前應用最為廣泛的RSA簽名算法仍存在很多不足之處,比如說RSA數(shù)字簽名算法的分組太長,速度太慢,以及RSA簽名算法產生大素數(shù)十分的麻煩。相比之下ECSDA有很明顯的優(yōu)勢,它可以在更短的密鑰長度的情況下實現(xiàn)更高的安全強度,因此,ECDSA有非常好的應用前景,尤其是在目前日益火爆的電子商務領域,值得繼續(xù)深入研究。
參考文獻:
[1] 張艷麗,劉嘉勇.基于ECC數(shù)字簽名系統(tǒng)的設計與實現(xiàn)[J].信息安全與通信保密,2011(05):86-87+90.
[2] 任艷芳.基于橢圓曲線密碼(ECC)的數(shù)字簽名技術[J].硅谷,2013,6(12):51-53.
[3] 韓松,馬飛,李沛.ECDSA在電子商務中的應用[J].網絡安全技術與應用,2012(07):18-20.
[4] 索望.一次性口令身份認證方案的設計與實現(xiàn)[D].四川大學,2005.
[5] 谷利澤,鄭世慧,楊義先.現(xiàn)代密碼學教程[M].北京郵電大學出版社,2009.
[6] 孫淑玲.應用密碼學[M].北京:清華大學出版社,2004.
[7] 楊曉元.現(xiàn)代密碼學[M].西安:西安電子科技大學出版社,2009.
[8] 楊波.現(xiàn)代密碼學[M].2版.北京:清華大學出版社,2007.