牛滌塵 徐飆
摘要:該文以ECDSA算法為基礎(chǔ),提出了一種有序多重?cái)?shù)字簽名方案。ECDSA算法基于橢圓曲線密碼體系,具有更高的安全性及執(zhí)行速度,更短的密鑰長(zhǎng)度,占用更小的存儲(chǔ)空間及帶寬。本方案加入CA中心來(lái)控制簽名順序,從而保證簽名的有效性和安全性。最后通過(guò)實(shí)驗(yàn),證明了本方案的正確性和安全性。
關(guān)鍵詞:橢圓曲線;多重簽名;有序;CA中心
中圖分類(lèi)號(hào):TP309.7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)05-0207-03
生活中,手寫(xiě)簽字和印章隨處可見(jiàn),作為保證文件或數(shù)據(jù)的可靠性、數(shù)據(jù)源的證明或不可否認(rèn)性等被廣泛應(yīng)用。網(wǎng)絡(luò)技術(shù)迅猛發(fā)展的今天,辦公方式趨向信息化,無(wú)紙化,傳統(tǒng)的手寫(xiě)簽名和印章無(wú)法滿(mǎn)足信息化需求,數(shù)字簽名應(yīng)運(yùn)而生。數(shù)字簽名,即通過(guò)某種密碼運(yùn)算生成一系列代碼組成電子密碼對(duì)電子消息進(jìn)行簽名,通過(guò)某種算法進(jìn)行驗(yàn)證,用于解決消息完整性,身份認(rèn)證及防抵賴(lài)等問(wèn)題。在一些特殊的情況下,要求多個(gè)簽名者簽署同一份文件,產(chǎn)生了多重簽名。根據(jù)簽名過(guò)程不同,多重簽名分為有序和廣播多重簽名。有序多重簽名要求一組簽名者按照給定順序?qū)ξ募M(jìn)行簽名,廣播多重簽名則沒(méi)有對(duì)簽名順序的要求,只要所有的簽名者簽署文件即可。
2004年,L.Harn,C.-Y.Lin和T.-C.Wu于提出了一種基于ElGamal算法的結(jié)構(gòu)化多重簽名算法[1],該算法實(shí)現(xiàn)了有序多重?cái)?shù)字簽名,并進(jìn)一步擴(kuò)展,實(shí)現(xiàn)了有序和廣播兩種簽名結(jié)構(gòu)相結(jié)合的數(shù)字簽名算法,該算法建立在離散對(duì)數(shù)密碼體系上。就密碼體系而言,現(xiàn)目前研究的熱點(diǎn)橢圓曲線密碼體系,其安全性、密鑰長(zhǎng)度、計(jì)算開(kāi)銷(xiāo)與速度、存儲(chǔ)需求和帶寬需求等方面優(yōu)于其他公鑰密碼體系[2,3]。文獻(xiàn)[5]提出了一種以ECDSA(elliptic curve digital signature algorithm)為基礎(chǔ)的多重?cái)?shù)字簽名方案,它是一種基于橢圓曲線密碼體系的算法。但文獻(xiàn)[5]提出的方案只適用于廣播多重?cái)?shù)字簽名,本文在該方案基礎(chǔ)上,提出了一種基于ECDSA,適用于有序多重?cái)?shù)字簽名的方案。
2 基于ECDSA的有序多重簽名方案
本文提出的簽名方案由一個(gè)CA中心和一個(gè)包含t個(gè)簽名者[U1,U2,...,Ut]的簽名組組成,并規(guī)定簽名順序?yàn)閇
2.4 安全性分析
1)本方案建立在橢圓曲線密碼體系基礎(chǔ)上,攻擊者想通過(guò)簽名者的公鑰和主域參數(shù)求解簽名者私鑰的困難性等同于求解橢圓曲線離散對(duì)數(shù)問(wèn)題的困難性[6]。
2)攻擊者試圖通過(guò)簽名者[Ui]的簽名[si]和[Ui-1]的簽名[si-1]來(lái)獲取[Ui]的私鑰[di]也是行不通的,因?yàn)榉匠蘙ki=(si-si-1)(m+diai)modn]中有[ki,di]兩個(gè)未知數(shù)。
3)攻擊者試圖偽造簽名者[Ui]的簽名[si],由于不知道[Ui]的私鑰[di],是不能成功的。
4)方案能有效防止相鄰成員串通改變簽名順序。下面舉例說(shuō)明未加入CA中心的情況下簽名組相鄰成員串通改變簽名順序的方法。假設(shè)[Ui-1],[Ui]為簽名組中企圖改變相互簽名順序的不誠(chéng)實(shí)簽名者,[Ui-1],[Ui]作如下操作:[Ui-1]收到[Ui-2]的簽名[si-2],不做處理,直接發(fā)送給[Ui],[Ui]計(jì)算[si=si-2+b-1imodn],將[si]發(fā)送給[Ui-1],[Ui-1]計(jì)算[si-1=si+b-1i-1modn]發(fā)送給[Ui],由[Ui]發(fā)送給后續(xù)簽名者。這樣,[Ui-1]和[Ui]調(diào)換了簽名順序。本方案中,[Ui-1]簽完名后發(fā)送給CA中心驗(yàn)證,CA中心計(jì)算[Δsi-1=si-1-si-2modn],如果[Ui-1]和[Ui]未改變簽名順序,則CA中心計(jì)算得到[Δsi-1=b-1i-1modn],而[Ui-1]和[Ui]調(diào)換簽名順序后,[Δsi-1=si+b-1i-1-si-2≠b-1i-1modn],將不能通過(guò)CA中心的驗(yàn)證。
5)整個(gè)簽名過(guò)程由CA中心控制,一旦簽名者不按規(guī)定順序操作,CA中心將終止簽名或要求重簽,保證了簽名者嚴(yán)格按照順序簽名。
6)簽的驗(yàn)證過(guò)程由CA中心執(zhí)行,簽名者和使用簽名者不用驗(yàn)證簽名,降低了對(duì)簽名者和使用簽名者的硬件需求,提高了二者效率。
3實(shí)現(xiàn)
為驗(yàn)證本文提出的方案有效性,筆者進(jìn)行了系統(tǒng)模擬實(shí)現(xiàn)。設(shè)計(jì)了一個(gè)由5名簽名者參與的實(shí)例。
3.1 實(shí)驗(yàn)環(huán)境
本實(shí)驗(yàn)僅為驗(yàn)證簽名方案正確性,故整個(gè)環(huán)境搭建在單機(jī)上。環(huán)境語(yǔ)言選用JAVA,利用JAVA提供的與ECC相關(guān)的API。開(kāi)發(fā)工具eclipse。
3.2 實(shí)現(xiàn)過(guò)程
3.3 實(shí)驗(yàn)結(jié)果
根據(jù)程序設(shè)計(jì),CA的簽名由U1驗(yàn)證,不成功,則拒絕簽名。簽名過(guò)程中,若出現(xiàn)一個(gè)簽名者簽名不成功,則CA終止簽名,并輸出是哪一個(gè)簽名者簽名不成功。若所有簽名者簽名均成功,則輸出每一個(gè)簽名者的簽名,最后由CA生成有效的有序多重?cái)?shù)字簽名。
程序成功實(shí)現(xiàn)了整個(gè)簽名過(guò)程。此外,模擬了本文3.4節(jié)提到攻擊方法,實(shí)驗(yàn)結(jié)果與3.4節(jié)的分析相吻合。
4 結(jié)論
本文在ECDSA算法的基礎(chǔ)上,對(duì)文獻(xiàn)[5]提出的廣播多重?cái)?shù)字簽名進(jìn)行改進(jìn),提出了基于橢圓密碼體系的有序多重?cái)?shù)字簽名方案,滿(mǎn)足了日常生活中多人簽名順序有嚴(yán)格要求的需求。通過(guò)3.4節(jié)安全性分析可知,本文提出的方案可抵御多種方式攻擊,安全性較高,在信息社會(huì)中具有很高的應(yīng)用價(jià)值。另外,方案加入了CA中心,由CA中心控制簽名流程和驗(yàn)證簽名來(lái)保證簽名順序,簡(jiǎn)化了簽名者和使用簽名者的操作,但同時(shí)提高了對(duì)CA中心計(jì)算能力的要求。最后,通過(guò)實(shí)驗(yàn)證明了本方案的正確性及安全性。
參考文獻(xiàn):
[1] L.Harn, C.-Y.Lin and T.-C.Wu. Structured multisignature algorithms[J]. IEE Proceedings Computers and Digital Techniques, 2004, 151(3): 231-234.
[2] 葉生勤. 公鑰密碼理論與技術(shù)的研究現(xiàn)狀及發(fā)展趨勢(shì)[J]. 計(jì)算機(jī)工程, 2006,32(17):4-6.
[3] 陳健. 幾種常用數(shù)據(jù)加密算法的比較[J]. 福建商業(yè)高等專(zhuān)科學(xué)校學(xué)報(bào),2003.
[4] D.Johnson, A.Menezes. The Elliptic Curve Digital Signature Algorithm(ECDSA)[OL]. www.certicom.com
[5] Hakim Khali, MIEEE. DSA and ECDSA-based Multi-Signature Schemes[J]. IJCSNS International Journal of Computer Science and Network Security, 2007,7(7):11-19.
[6] 肖攸安. 橢圓曲線密碼體系研究[M]. 武漢:華中科技大學(xué)出版社, 2006.