鄭均輝,甘 泉
(平頂山學院 計算機科學與技術學院,河南 平頂山 467002)
隨著信息時代的到來,數字化得到了的深入發展和不斷推廣。面對電力事業的突飛猛進,人們把改革和發展的目光投向了電力調度系統的開發與研究,如文獻[1]針對電力調度的數字化提出了各自的建設思想和實現方法。從現場應用和發表的文獻來看,這些電力調度系統都以網絡通信為數據傳輸的基礎,已經涉及到數據傳輸的安全問題。
由于電力行業的特殊性,任何數據傳輸的安全問題,都將導致災難性的事故發生,其造成的政治和經濟影響是巨大的,帶來的損失是不可估量的。文獻[2]為了避免在電力調度中心、電廠及用戶之間傳輸的數據被篡改、偽造而產生電力系統事故,提出并設計了認證體系結構。文獻[3]分析了電力二次系統所面臨的風險,介紹了電力調度系統的證書服務系統及應用。這些方案雖然闡述了能夠提高系統安全性的證書服務技術,但是為了存儲證書和驗證證書的有效性,需要大量的存儲空間和計算開銷。因此,需要引入一種合適的電力調度系統簽名體制。
Al-Riyami等人提出了無證書密碼體制,既消除了傳統密碼體制對證書的需求,也解決了基于身份密碼體制中的密鑰托管問題,是一種理想的簽名方案[4]。在無證書密碼系統中用到一個第三方KGC,其作用是負責產生用戶的部分私鑰。在獲得 KGC產生的部分私鑰后,用戶隨機選擇一個秘密值,然后用戶通過部分私鑰和秘密值來產生自己的公鑰和私鑰,系統將部分公鑰綁定同一個身份。一個無證書簽名方案由系統參數生成,部分密鑰生成,設置秘密值,設置私鑰,設置公鑰,簽名以及簽名驗證7個算法組成。通常,前兩個算法由KGC執行,而其它算法由簽名或驗證用戶執行[5]。由于具有較強的實用性,無證書簽名方案的研究受到廣泛重視,出現了許多新的方案。但是,這些方案以雙線性配對作為設計工具,導致存在計算效率不高的問題[6]。目前無證書密碼體制方案已經在電子商務、電子病歷等方面開始應用[7],但在電力調度中的應用研究很少。
鑒于此,本文通過對 DSA簽名算法進行改進,構建了一種更有效的基于電力調度系統的無 pairing的無證書簽名方案,方案具有抗否認性、抗偽造性、可驗證性等特點,能夠很好地解決電力調度系統的安全性問題。
電力調度系統通常設計的用戶角色為系統管理員、錄入操作員、審核操作員、簽發操作員等。電力調度系統的控制要依靠生產指令數據及時、準確地進行在這些角色間頻繁傳送。在電力調度過程中,一般需要解決:數據的不可否認性、數據的不可偽造性、數據簽名的可驗證性和數據的完整性等問題。
為保證數據傳輸的安全性,在簽名過程中,應涉及有3種對象:
1)信任中心(KGC):建立公告板,公布共享信息,防止利用公共信息的篡改進行簽名的偽造;負責產生用戶的部分私鑰;如果調度驗證者對簽名有疑義,可進行判斷裁決。
2)調度信息簽名者:對傳輸信息進行簽名。
3)調度信息驗證者:對傳輸信息進行驗證。
DSA是 ElGamal、Schnorr等數字簽名算法的變體,其安全性基于離散對數問題,是目前公認的安全算法。該算法中沒有昂貴的對操作,便于軟件和硬件實現,執行效率較高。本文在此算法的基礎上,通過分析改進,構建了一種基于電力調度系統的DSA無證書數字簽名算法。
系統參數生成:電力調度信任中心輸入安全參數k,輸出系統主密鑰master-key和系統公開參數params。系統公開參數params向電力調度系統中的全體用戶公開,而主密鑰master-key則由 KGC 秘密保存。 公開參數 params=〈p,q,g,y,H1,H2〉, 其中:p 是一個大的素數,2L-1<p<2L,512≤L≤1024,并且按64 bit的幅度遞增;q是p-1的素因子,其字長為 160bit;g=h(p-1) /q mod p,h 是一個整數,1<h<(p-1),且要求 h (p-1)/q mod p>1;H1:{0,1}*×Zp*→Zq*,H2:{0,1}*→Zq*。 任意選取 x∈Z q*,計算 y=gx mod p,主密鑰是 masterkey=x。
部分密鑰生成:設電力調度信息簽名者A的身份為IDA,KGC 隨機選擇 s∈Zq*,計算 w=gsmod p,d=x+sH1(IDA‖w)。d為KGC產生的部分秘鑰。d可采用以下方式從KGC傳輸到 A:A 隨機選擇 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 產生的部分秘鑰d,又可以驗證KGC的身份。
設置秘密值:用戶隨機選取z∈Zq*,計算u=gzmod p,z作為用戶A的另一部分私鑰,u作用戶A的另一部分公鑰。
設置私鑰:電力調度信息簽名者A的私鑰為SKA=(,z),私鑰由A自己保存。
設置公鑰:電力調度信息簽名者A的公鑰為PKA=(w,u),公鑰由KGC在公告板進行告示,防止公鑰替換攻擊。
簽名:設電力調度信息M∈{0,1}*。電力調度信息簽名過程如下。
1)生成隨機數 k,0<k<q;
2)計算 r=(gkmod p) mod q;
3)計算 σ=(k-1(dr+zH2(M))) mod q,(r,σ)即為用戶 A對消息M的簽名;
4)發送消息和簽名結果(M,r,σ) 。
簽名驗證:驗證方收到簽名信息M∈{0,1}*以及簽名(r,σ),按以下過程進行驗證。
1)從KGC處獲取電力調度信息簽名者A的公鑰為PKA=(w,u)及系統公開參數 params;
2)計算 e=σ-1mod q;
3)u1=ywH1(IDA‖w);
4)u2=uH2(M);
6)如果 r=v,表示簽名有效;否則,簽名非法。
1)可驗證性。以上基于 DSA的無證書簽名方案中,若簽名過程準確無誤,則驗證等式r=v必然成立。
證明:

針對調度信息簽名者和調度信任中心身份,均可采用零知識方式進行認證。若驗證者對用戶的公鑰不信任,可通過以下身份鑒別方案進行驗證:驗證者隨機選擇t∈Zq*,將t傳給用戶;用戶計算j=(td+z)mod q,將 j傳給驗證者;驗證者計算 gj=u(ywH1(ID‖w))t,如果相等,則驗證通過,否則用戶公鑰為偽造。
證明:

2)不可否認性。簽名者發送的私鑰中含有了簽名者的身份ID,具有不可否認性。
3)不可偽造性。在無證書系統中有兩類攻擊者,第一類攻擊者不知道系統主密鑰,但是可以任意替換用戶的公鑰。第二類攻擊者知道系統的主密鑰,但是不能替換目標用戶的公鑰。如果簽名方案能抵抗以上兩種形式的攻擊者,則簽名方案為不可偽造性安全的。
對于第一類攻擊者,因為不知道系統的主密鑰x,所以也不知道用戶的部分私鑰d。KGC產生的部分私鑰d內建立了與用戶身份關聯的信息,給攻擊者設置了第一道壁壘。若攻擊者試圖替換用戶公鑰,就必須修改KGC的公告板中的公鑰信息,由于公告板是公開的,所以給攻擊者設置了第二道壁壘。若KGC或者其它電力調度用戶產生懷疑,就會采用零知識方式進行認證。由于攻擊者不知道驗證者任意選取的t,故攻擊者不能構造j。即使攻擊者知道驗證者選取的t,要求解出j也相當于求解離散對數問題,給攻擊者設置了第三道壁壘。故在離散對數問題難解的假設下,該方案可以抵抗第一類攻擊的攻擊。
對于第二類攻擊者,攻擊者知道系統的主密鑰x,則公鑰、部分私鑰d以及公開參數對攻擊者來說都是已知的。顯然,試圖通過公鑰和部分私鑰d直接求解出用戶一部分私鑰z的做法是不可取的,因為這相當于求解離散對數問題。假設用戶偽造一個消息M的簽名,就必須繞過部分私鑰z,偽造r和 σ,使之滿足 r=((u2)σ-1mod p),這相當于求解離散對數問題。故在離對數問題難解的假設下,該方案可以抵抗第二類攻擊者的攻擊。
4)數據的完整性。在簽名時使用散列函數,能夠保證消息的完整性。
本文算法與其他算法在安全性上的比較見表1。(其中,“√”表示“具有”。)其中,文獻[3]是基于RSA的證書簽名方案,文獻[6]是基于雙線性對的無證書簽名方案。

表1 本文算法與其他算法在安全性上的比較Tab.1 Comparison of security between this paper scheme and other schemes
電力調度系統中數字簽名過程中,采用預先計算的方式,在消息M到來之前,先計算出r;當消息M到來時,只需要一次逆運算、一次模運算、一次加法、兩次乘法運算、一次散列運算。電力調度系統中數字簽名驗證過程中,需要一次逆運算、兩次乘法運算、四次指數運算、兩次模運算、兩次散列運算。零知識驗證過程中,需要三次乘法運算、三次指數運算、一次模運算、兩次散列運算。
根據文獻[8]所給出的分析結果,雙線性配對、指數運算與散列運算的計算量分別是乘運算的約 21倍、3倍及1倍,相對于標量乘,加法運算、乘法運算、逆運算和模運算均可忽略不計。P表示一個雙線性配對運算,S表示標量乘法運算,E表示指數運算,H表示一個散列運算。通過本文算法與其它算法在運算次數的比較(見表 2)可以看出,本文算法的計算量明顯小于其他算法,說明本文算法具有較高的運行效率,便于應用到電力調度設備中。其中,文獻[3]是基于電力調度的證書簽名方案,文獻[8]是基于雙線性對的無證書簽名方案。

表2 本文算法與其他算法在運算次數上的比較Tab.2 Comparison of the number of operations between this paper scheme and other schemes
本文算法在 VC6.0環境下進行實現,p、q的位數為160位。針對電力調度命令進行簽名和驗證,以檢驗本軟件的實用性,整個實驗采用 Intel酷睿 i5-750,4 G內存的運行環境。密鑰和公鑰生成過程的平均時間為 1.432 ms,電力調度簽名過程消耗的平均時間為 4.31 ms,簽名驗證過程消耗的平均時間為6.57 ms,零知識驗證消耗的平均時間為 4.797 ms。
實驗表明該系統具有良好的運行效率,能夠滿足電力調度的實時性要求。
本文設計了電力調度中的 DSA無證書數字簽名方案。方案滿足抗否認性、抗偽造性、可驗證性和調度消息完整性等安全特性。本文算法與同類簽名算法相比,具有較高的運行效率。應用測試表明能夠滿足電力調度的實時性要求。但是本文算法是以信任中心為研究前提,沒有考慮到惡意信任中心,如何設計基于電力調度系統的防止惡意信任中心的無證書簽名方案是下一步的研究方向。
[1]高明,袁玲,李文云,等.電力調度系統信息化的幾個問題探討[J].電力系統保護與控制,2011,39(14):138-142.GAO Ming,YUAN Ling,LI Wen-yun,et al.Study on several problems of power dispatching system information construction[J].Power System Protection and Control,2011,39(14):138-142.
[2]程旭,梁云,俞俊,等.電力調度分布式工作流設計與實現[J].電力系統自動化,2012,36(21):93-96.CHENG Xu,LIANG Yun,YU Jun,et al.Design and Implementation of distributed workflow for electric power dispatching[J].Automation of Electric Power Systems,2012,36(21):93-96.
[3]徐茹枝,郭健,李衍輝,等.智能電網中電力調度數字證書系統[J].中國電力,2011,44(1):37-40.XU Ru-zhi,GUO Jian,LI Yan-hui,et al.Power dispatching digital certificatesystemin smart grid[J].Electric Power,2011,44(1):37-40.
[4]李文武,游文霞,王先培.電力系統信息安全研究綜述[J].電力系統保護與控制,2011,39(10):140-147.LI Wen-wu,YOU Wen-xia,WANG Xian-pei.Survey of cyber security research in power system[J].Power System Protection and Control,2011,39(10):140-147.
[5]Al-Riyami S,Paterson K.C'ertificateless public key cryptography [C]//ASIACRYPT 2003,LNC:S 2894.Springer Verlag,2003:452-473.
[6]Huang X,Susilo W,Mu Y,et al.On the security of a certificateless signature scheme [C]//Proceedings of the CANS 2005.Xia-men, China,2005:13-25.
[7]Yum D H,Lee PJ.Genericconstruction of certificateless signature[C]//Proceedings of ACISP 2004.Sydney, Australia,2004:200-211.
[8]夏峰,楊波.公鑰不可替換無證書簽名方案[J].計算機科學,2012,39(8):92-97.XlA Feng,YANG Bo.Certificateless signature scheme without public key replaced[J].Computer Science,2012,39(8):92-97.