基于DSA的電力調(diào)度數(shù)字簽名方案
掃描二維碼
隨時隨地手機(jī)看文章
摘要:為了解決電力調(diào)度系統(tǒng)的安全性問題,克服傳統(tǒng)公鑰密碼體制證書管理復(fù)雜的缺陷,在無雙線性對思想的基礎(chǔ)上,構(gòu)造了一種基于DSA的無證書數(shù)字簽名方案。方案利用零知識方式對調(diào)度用戶身份進(jìn)行認(rèn)證,將簽名身份與公鑰進(jìn)行哈希處理,防止身份替換攻擊。利用離散對數(shù)難題,由調(diào)度中心和調(diào)度用戶共同產(chǎn)生的私鑰對和公鑰對,減少了存儲空間,降低了計算開銷。與同類算法相比,簽名方案具有消息的完整性、抗否認(rèn)性、抗偽造型、簽名的可驗證性等特點。應(yīng)用測試表明算法能夠滿足電力調(diào)度的實時性要求。
關(guān)鍵詞:電力調(diào)度;安全性;無線性對;無證書數(shù)字簽名
隨著信息時代的到來,數(shù)字化得到了的深入發(fā)展和不斷推廣。面對電力事業(yè)的突飛猛進(jìn),人們把改革和發(fā)展的目光投向了電力調(diào)度系統(tǒng)的開發(fā)與研究,如文獻(xiàn)針對電力調(diào)度的數(shù)字化提出了各自的建設(shè)思想和實現(xiàn)方法。從現(xiàn)場應(yīng)用和發(fā)表的文獻(xiàn)來看,這些電力調(diào)度系統(tǒng)都以網(wǎng)絡(luò)通信為數(shù)據(jù)傳輸?shù)幕A(chǔ),已經(jīng)涉及到數(shù)據(jù)傳輸?shù)陌踩珕栴}。
由于電力行業(yè)的特殊性,任何數(shù)據(jù)傳輸?shù)陌踩珕栴},都將導(dǎo)致災(zāi)難性的事故發(fā)生,其造成的政治和經(jīng)濟(jì)影響是巨大的,帶來的損失是不可估量的。文獻(xiàn)為了避免在電力調(diào)度中心、電廠及用戶之間傳輸?shù)臄?shù)據(jù)被篡改、偽造而產(chǎn)生電力系統(tǒng)事故,提出并設(shè)計了認(rèn)證體系結(jié)構(gòu)。文獻(xiàn)分析了電力二次系統(tǒng)所面臨的風(fēng)險,介紹了電力調(diào)度系統(tǒng)的證書服務(wù)系統(tǒng)及應(yīng)用。這些方案雖然闡述了能夠提高系統(tǒng)安全性的證書服務(wù)技術(shù),但是為了存儲證書和驗證證書的有效性,需要大量的存儲空間和計算開銷。因此,需要引入一種合適的電力調(diào)度系統(tǒng)簽名體制。
Al-Riyami等人提出了無證書密碼體制,既消除了傳統(tǒng)密碼體制對證書的需求,也解決了基于身份密碼體制中的密鑰托管問題,是一種理想的簽名方案。在無證書密碼系統(tǒng)中用到一個第三方KGC,其作用是負(fù)責(zé)產(chǎn)生用戶的部分私鑰。在獲得KGC產(chǎn)生的部分私鑰后,用戶隨機(jī)選擇一個秘密值,然后用戶通過部分私鑰和秘密值來產(chǎn)生自己的公鑰和私鑰,系統(tǒng)將部分公鑰綁定同一個身份。一個無證書簽名方案由系統(tǒng)參數(shù)生成,部分密鑰生成,設(shè)置秘密值,設(shè)置私鑰,設(shè)置公鑰,簽名以及簽名驗證7個算法組成。通常,前兩個算法由KGC執(zhí)行,而其它算法由簽名或驗證用戶執(zhí)行。由于具有較強(qiáng)的實用性,無證書簽名方案的研究受到廣泛重視,出現(xiàn)了許多新的方案。但是,這些方案以雙線性配對作為設(shè)計工具,導(dǎo)致存在計算效率不高的問題。目前無證書密碼體制方案已經(jīng)在電子商務(wù)、電子病歷等方面開始應(yīng)用,但在電力調(diào)度中的應(yīng)用研究很少。
鑒于此,本文通過對DSA簽名算法進(jìn)行改進(jìn),構(gòu)建了一種更有效的基于電力調(diào)度系統(tǒng)的無pairing的無證書簽名方案,方案具有抗否認(rèn)性、抗偽造性、可驗證性等特點,能夠很好地解決電力調(diào)度系統(tǒng)的安全性問題。
1 電力調(diào)度系統(tǒng)的安全性分析
電力調(diào)度系統(tǒng)通常設(shè)計的用戶角色為系統(tǒng)管理員、錄入操作員、審核操作員、簽發(fā)操作員等。電力調(diào)度系統(tǒng)的控制要依靠生產(chǎn)指令數(shù)據(jù)及時、準(zhǔn)確地進(jìn)行在這些角色間頻繁傳送。在電力調(diào)度過程中,一般需要解決:數(shù)據(jù)的不可否認(rèn)性、數(shù)據(jù)的不可偽造性、數(shù)據(jù)簽名的可驗證性和數(shù)據(jù)的完整性等問題。
為保證數(shù)據(jù)傳輸?shù)陌踩?,在簽名過程中,應(yīng)涉及有3種對象:
1)信任中心(KGC):建立公告板,公布共享信息,防止利用公共信息的篡改進(jìn)行簽名的偽造;負(fù)責(zé)產(chǎn)生用戶的部分私鑰;如果調(diào)度驗證者對簽名有疑義,可進(jìn)行判斷裁決。
2)調(diào)度信息簽名者:對傳輸信息進(jìn)行簽名。
3)調(diào)度信息驗證者:對傳輸信息進(jìn)行驗證。
2 基于電力調(diào)度系統(tǒng)的DSA無證書簽密方案
DSA是ElGamal、Schnorr等數(shù)字簽名算法的變體,其安全性基于離散對數(shù)問題,是目前公認(rèn)的安全算法。該算法中沒有昂貴的對操作,便于軟件和硬件實現(xiàn),執(zhí)行效率較高。本文在此算法的基礎(chǔ)上,通過分析改進(jìn),構(gòu)建了一種基于電力調(diào)度系統(tǒng)的DSA無證書數(shù)字簽名算法。
系統(tǒng)參數(shù)生成:電力調(diào)度信任中心輸入安全參數(shù)k,輸出系統(tǒng)主密鑰master-key和系統(tǒng)公開參數(shù)params。系統(tǒng)公開參數(shù)params向電力調(diào)度系統(tǒng)中的全體用戶公開,而主密鑰master-key則由KGC秘密保存。公開參數(shù)params=,其中:p是一個大的素數(shù),2L-11;H1:{0,1}*×Zp*→Zq*,H2:{0,1}*→Zq*。任意選取x∈Zq*,計算y=gx mod p,主密鑰是master-Key=x。
部分密鑰生成:設(shè)電力調(diào)度信息簽名者A的身份為IDA,KGC隨機(jī)選擇s∈Zq*,計算w=gs mod p,d=x+sH1(IDA ‖w)。d為KGC產(chǎn)生的部分秘鑰。d可采用以下方式從KGC傳輸?shù)紸;A隨機(jī)選擇t∈Zq*,計算j=gt mod p,將j傳給KGC;KGC計算j’=jx mod p mod q,d’=d+s’,將d’傳給A;A計算j’=yt mod p mod q,d=d’-j’,從而既可以獲取KGC產(chǎn)生的部分秘鑰d,又可以驗證KGC的身份。
設(shè)置秘密值:用戶隨機(jī)選取z∈Zq*,計算u=gz mod p,z作為用戶A的另一部分私鑰,u作用戶A的另一部分公鑰。
設(shè)置私鑰:電力調(diào)度信息簽名者A的私鑰為SKA=(,z),私鑰由A自己保存。
設(shè)置公鑰:電力調(diào)度信息簽名者A的公鑰為PKA=(w,u),公鑰由KGC在公告板進(jìn)行告示,防止公鑰替換攻擊。
簽名:設(shè)電力調(diào)度信息M∈{0,1}*。電力調(diào)度信息簽名過程如下。
1)生成隨機(jī)數(shù)k,0
2)計算r=(gk mod p) mod g;
3)計算σ=(k-1(dr+zH2(M))) mod q,(r,σ)即為用戶A對消息M的簽名;
4)發(fā)送消息和簽名結(jié)果(M,r,σ)。
簽名驗證:驗證方收到簽名信息M∈{0,1}*以及簽名(r,σ),按以下過程進(jìn)行驗證。
3 方案安全性分析
1)可驗證性。以上基于DSA的無證書簽名方案中,若簽名過程準(zhǔn)確無誤,則驗證等式r=v必然成立。
證明:
針對調(diào)度信息簽名者和調(diào)度信任中心身份,均可采用零知識方式進(jìn)行認(rèn)證。若驗證者對用戶的公鑰不信任,可通過以下身份鑒別方案進(jìn)行驗證:驗證者隨機(jī)選擇t∈Zq*,將t傳給用戶;用戶計算j=(td+z) mod q,將j傳給驗證者;驗證者計算,如果相等,則驗證通過,否則用戶公鑰為偽造。
證明:
2)不可否認(rèn)性。簽名者發(fā)送的私鑰中含有了簽名者的身份ID,具有不可否認(rèn)性。
3)不可偽造性。在無證書系統(tǒng)中有兩類攻擊者,第一類攻擊者不知道系統(tǒng)主密鑰,但是可以任意替換用戶的公鑰。第二類攻擊者知道系統(tǒng)的主密鑰,但是不能替換目標(biāo)用戶的公鑰。如果簽名方案能抵抗以上兩種形式的攻擊者,則簽名方案為不可偽造性安全的。
對于第一類攻擊者,因為不知道系統(tǒng)的主密鑰x,所以也不知道用戶的部分私鑰d。KGC產(chǎn)生的部分私鑰d內(nèi)建立了與用戶身份關(guān)聯(lián)的信息,給攻擊者設(shè)置了第一道壁壘。若攻擊者試圖替換用戶公鑰,就必須修改KGC的公告板中的公鑰信息,由于公告板是公開的,所以給攻擊者設(shè)置了第二道壁壘。若KGC或者其它電力調(diào)度用戶產(chǎn)生懷疑,就會采用零知識方式進(jìn)行認(rèn)證。由于攻擊者不知道驗證者任意選取的t,故攻擊者不能構(gòu)造j。即使攻擊者知道驗證者選取的t,要求解出j也相當(dāng)于求解離散對數(shù)問題,給攻擊者設(shè)置了第三道
壁壘。故在離散對數(shù)問題難解的假設(shè)下,該方案可以抵抗第一類攻擊的攻擊。
對于第二類攻擊者,攻擊者知道系統(tǒng)的主密鑰x,則公鑰、部分私鑰d以及公開參數(shù)對攻擊者來說都是已知的。顯然,試圖通過公鑰和部分私鑰d直接求解出用戶一部分私鑰z的做法是不可取的,因為這相當(dāng)于求解離散對數(shù)問題。假設(shè)用戶偽造一個消息M的簽名,就必須繞過部分私鑰z,偽造r和σ,使之滿足,這相當(dāng)于求解離散對數(shù)問題。故在離對數(shù)問題難解的假設(shè)下,該方案可以抵抗第二類攻擊者的攻擊。
4)數(shù)據(jù)的完整性。在簽名時使用散列函數(shù),能夠保證消息的完整性。
本文算法與其他算法在安全性上的比較見表1。(其中,“√”表示“具有”。)其中,文獻(xiàn)是基于RSA的證書簽名方案,文獻(xiàn)是基于雙線性對的無證書簽名方案。
4 執(zhí)行效率分析
電力調(diào)度系統(tǒng)中數(shù)字簽名過程中,采用預(yù)先計算的方式,在消息M到來之前,先計算出r;當(dāng)消息M到來時,只需要一次逆運算、一次模運算、一次加法、兩次乘法運算、一次散列運算。電力調(diào)度系統(tǒng)中數(shù)字簽名驗證過程中,需要一次逆運算、兩次乘法運算、四次指數(shù)運算、兩次模運算、兩次散列運算。零知識驗證過程中,需要三次乘法運算、三次指數(shù)運算、一次模運算、兩次散列運算。
根據(jù)文獻(xiàn)所給出的分析結(jié)果,雙線性配對、指數(shù)運算與散列運算的計算量分別是乘運算的約21倍、3倍及1倍,相對于標(biāo)量乘,加法運算、乘法運算、逆運算和模運算均可忽略不計。P表示一個雙線性配對運算,S表示標(biāo)量乘法運算,E表示指數(shù)運算,H表示一個散列運算。通過本文算法與其它算法在運算次數(shù)的比較(見表 2)可以看出,本文算法的計
算量明顯小于其他算法,說明本文算法具有較高的運行效率,便于應(yīng)用到電力調(diào)度設(shè)備中。其中,文獻(xiàn)是基于電力調(diào)度的證書簽名方案,文獻(xiàn)是基于雙線性對的無證書簽名方案。
5 應(yīng)用測試
本文算法在VC6.0環(huán)境下進(jìn)行實現(xiàn),p、q的位數(shù)為160位。針對電力調(diào)度命令進(jìn)行簽名和驗證,以檢驗本軟件的實用性,整個實驗采用Intel酷睿i5-750,4 G內(nèi)存的運行環(huán)境。密鑰和公鑰生成過程的平均時間為1.432 ms,電力調(diào)度簽名過程消耗的平均時間為4.31 ms,簽名驗證過程消耗的平均時間為6.57 ms,零知識驗證消耗的平均時間為4.797 ms。
實驗表明該系統(tǒng)具有良好的運行效率,能夠滿足電力調(diào)度的實時性要求。
6 結(jié)束語
本文設(shè)計了電力調(diào)度中的DSA無證書數(shù)字簽名方案。方案滿足抗否認(rèn)性、抗偽造性、可驗證性和調(diào)度消息完整性等安全特性。本文算法與同類簽名算法相比,具有較高的運行效率。應(yīng)用測試表明能夠滿足電力調(diào)度的實時性要求。但是本文算法是以信任中心為研究前提,沒有考慮到惡意信任中心,如何設(shè)計基于電力調(diào)度系統(tǒng)的防止惡意信任中心的無證書簽名方案是下一步的研究方向。