RSA加密算法在電網(wǎng)發(fā)電競價(jià)信息加密系統(tǒng)的應(yīng)用

電廠報(bào)價(jià)實(shí)際上是電廠參與電力市場的決策管理機(jī)構(gòu)和手段,它綜合了傳統(tǒng)的MIS系統(tǒng)、DCS系統(tǒng)的特點(diǎn),打破了舊有的記錄式和缺乏遞推的管理模式,符合現(xiàn)代化電廠的主動(dòng)參與電力市場的需求,因而有較強(qiáng)的發(fā)展趨勢(shì),而且由于電廠各不相同的特性,也決定了各電廠必須發(fā)展不同模式和個(gè)性的電廠報(bào)價(jià)系統(tǒng),但在市場競爭的條件下,要確保競標(biāo)標(biāo)書的可靠、真實(shí)和安全是非常有必要的。

一、電網(wǎng)發(fā)電競價(jià)信息加密系統(tǒng)的主要功能

電網(wǎng)發(fā)電競價(jià)信息加密系統(tǒng)包含3個(gè)既可以獨(dú)立運(yùn)行、又相互關(guān)聯(lián)的子系統(tǒng),即客戶端,監(jiān)控端(認(rèn)證中心)和服務(wù)端;

(1)客戶端

客戶端負(fù)責(zé)將各個(gè)電廠的竟價(jià)信息經(jīng)過加密處理,發(fā)送到服務(wù)端,同時(shí)接收服務(wù)端在Intemet發(fā)布的任何合法信息(包括竟標(biāo)信息和競標(biāo)結(jié)果等)。

(2)監(jiān)控端(認(rèn)證中心)

監(jiān)控端負(fù)責(zé)審核電廠的合法身份、發(fā)放電廠的有效數(shù)字證書:負(fù)責(zé)認(rèn)證中心密鑰管理(包括用于簽名用戶證書的密鑰和其他密鑰的各種運(yùn)行參數(shù)信息在Internet上發(fā)布;以及用戶管理。

只有確保竟標(biāo)標(biāo)書的真實(shí)、安全和可靠,所有的加密算法和竟標(biāo)結(jié)果都是公開的,竟標(biāo)結(jié)果才是公開的:只有競標(biāo)的所有過程都是可再現(xiàn)和反復(fù)驗(yàn)證的,竟標(biāo)結(jié)果才是公正、公平的。

同時(shí),監(jiān)控端對(duì)電廠合法身份的審核,以及服務(wù)端對(duì)標(biāo)書的接收,識(shí)別和保存全部自動(dòng)進(jìn)行并形成操作日志。由于每份標(biāo)書都加上了時(shí)間戳,不會(huì)受到重發(fā)攻擊的影響,符合競標(biāo)規(guī)范。

二、RSA加密算法在電網(wǎng)發(fā)電競價(jià)信息加密系統(tǒng)的應(yīng)用

電網(wǎng)發(fā)電競價(jià)信息加密系統(tǒng)采用公開密鑰的RSA加密算法,即公開加密和解密算法以及公開密鑰。

1、RSA加密算法

公開密鑰的RSA加密算法是:密鑰分為加密密鑰E,解密密鑰D和公鑰N。加密密鑰E和公鑰N可以公開,解密密鑰D不能公開。加密時(shí)采用以E和N為參數(shù)的函數(shù)進(jìn)行加密;解密時(shí)采用以D和N為參數(shù)的函數(shù)進(jìn)行解密。

式(1)為加密運(yùn)算數(shù)學(xué)表達(dá)式,式(2)為解密運(yùn)算數(shù)學(xué)表達(dá)式。式中,X為競標(biāo)標(biāo)書(明文);C為加密標(biāo)書(密文);E為加密密鑰:D為解密密鑰:N為公鑰。

E,D,N滿足下述條件:(1)隨機(jī)生成兩個(gè)大素?cái)?shù)P,Q(典型地應(yīng)大于10100);(2)計(jì)算N=P×Q和Z=(P-1)×。(Q-1);(3)選擇一個(gè)與Z互為質(zhì)數(shù)的數(shù)D;(4)求加密密鑰E;E是D關(guān)于Z的乘逆,滿足E×D=1modZ。

系統(tǒng)采用了210即1024個(gè)二進(jìn)制位的密鑰長度,保證了在無解密密鑰情況下,破譯加密標(biāo)書在計(jì)算上的不可實(shí)現(xiàn),確保了竟標(biāo)標(biāo)書的安全性和可靠性。

2、競標(biāo)標(biāo)書的加密與解密計(jì)算

(1)竟標(biāo)標(biāo)書(明文)X加密計(jì)算

對(duì)竟標(biāo)標(biāo)書X加密,計(jì)算C=XE(m od N)。將競標(biāo)標(biāo)書X(看作一個(gè)比特串)劃分成塊,使各段竟標(biāo)標(biāo)書X落在區(qū)間0<X<N。把竟標(biāo)標(biāo)書分成k比特的塊即可滿足這一要求,其中,k為滿足2k<N的最大整數(shù)。

(2)加密標(biāo)書(密文)C解密計(jì)算

對(duì)解密加密標(biāo)書C解密,計(jì)算X=CD(mod N)。加密標(biāo)書C落在區(qū)間0< C<N。

可以證明,對(duì)于在指定范圍內(nèi)的所有X,加密函數(shù)和解密函數(shù)互為反函數(shù)。實(shí)行加密需要E和N,實(shí)旌解密需要D和N。因此,公開密鑰由(E.N)構(gòu)成,私有密鑰由(D,N)構(gòu)成。電廠傳送競標(biāo)標(biāo)書到省電力調(diào)度中心。首先用監(jiān)控端的加密密鑰將竟標(biāo)標(biāo)書加密。競標(biāo)標(biāo)書傳送到省電力調(diào)度中心后,用監(jiān)控端的解密密鑰解密。由于竟價(jià)系統(tǒng)采用公開密鑰的RSA加密算法,加密措施非常有力,其他任何人都無法閱讀加密后的競標(biāo)標(biāo)書,且從公開密鑰推導(dǎo)出解密密鑰非常困難。而且,加密算法E和解密算法D同時(shí)滿足下列3點(diǎn)要求:

(1)D(E(X))一X,確保了竟標(biāo)標(biāo)書的完整性;

(2)從E導(dǎo)出D極其困難,確保了竟標(biāo)標(biāo)書的真實(shí)性和可靠性;

(3)由一段竟標(biāo)標(biāo)書明文不可能破譯出E,確保了竟標(biāo)標(biāo)書的安全性和保密性。

3、公開密鑰的數(shù)字簽名

公開密鑰的RSA加密算法既能對(duì)標(biāo)書進(jìn)行加密、解密又有數(shù)字簽名的作用。要保證竟標(biāo)標(biāo)書傳送的真實(shí)性、完整性和不可否認(rèn)性,必須有授權(quán)的親筆簽名存在與否來確定,即所謂的數(shù)字簽名,數(shù)字簽名能滿足:

(1)省電力調(diào)度中心能夠驗(yàn)證電廠(發(fā)送方)所宣稱的身份。

(2)電廠以后不能否認(rèn)竟標(biāo)標(biāo)書是他發(fā)送的。

(3)省電力調(diào)度中心不能偽造。修改或部分丟失該竟標(biāo)標(biāo)書內(nèi)容。

首先,由監(jiān)控端給每個(gè)電廠發(fā)放數(shù)字證書(Dc),也就是每個(gè)電廠的私有密鑰,同時(shí)每個(gè)電廠還擁有省電力調(diào)度中心的公開密鑰(ET);而省電力調(diào)度中心擁有每個(gè)電廠的公開密鑰(Ec)和自己的
數(shù)字證書(私有密鑰,Dr)。以上的Dc是每個(gè)電廠的身份證明,必須妥善保管,不能泄露出去。

(1)加密標(biāo)書在通信線路上傳輸,有可能被截取或竊聽。但竊聽者沒有調(diào)度中心的私鑰和各電廠的公鑰,則不可能從加密之后的標(biāo)書中得到任何有效信息,也不可能篡改標(biāo)書內(nèi)容;而且,由于每份標(biāo)書都加上了時(shí)間戳,也不會(huì)受到重發(fā)攻擊的影響。

(2)如果電廠要否認(rèn)曾經(jīng)發(fā)送過標(biāo)書X給調(diào)度中心,調(diào)度中心可以出示標(biāo)書X和Dc(X),只需使用Ec,就能證明調(diào)度中心確實(shí)收到了一條用Dc加密的有效標(biāo)書。由于調(diào)度中心不知道各電廠的私有密鑰Dc,調(diào)度中心不可能自己生成這樣一條由Dc加密的有效標(biāo)書,因此只能是由電廠發(fā)送過來。

(3)所有的算法都是公開的。如果需要,所有的過程都可再現(xiàn)和反復(fù)驗(yàn)證。

三、RSA加密算法的軟件實(shí)現(xiàn)

竟價(jià)系統(tǒng)服務(wù)端和監(jiān)控端采用Windows NT操作系統(tǒng),服務(wù)器數(shù)據(jù)庫采用Microsoft SQLSever;客戶端采用Windows98操作系統(tǒng),客戶端數(shù)據(jù)庫采用Access;系統(tǒng)的竟標(biāo)算法及子系統(tǒng)采用Visual Basic編程語言;網(wǎng)絡(luò)協(xié)議為TCP/IP,網(wǎng)絡(luò)技術(shù)采用客戶機(jī),服務(wù)器(C/S)模型。

1、RSA加密算法中函數(shù)XE(mod N)的軟件實(shí)現(xiàn)

RSA加密算法在加密和解密運(yùn)算時(shí),所用到的只是冪模函數(shù)。

把競標(biāo)標(biāo)書X(看作一個(gè)比特串)劃分成塊,使各段竟標(biāo)標(biāo)書X落在區(qū)間0<X(N。經(jīng)過RSA的加密運(yùn)算,得到加密標(biāo)書CXE(mod N) (O<C<N)。

2、方程E×D=1 mod Z軟件實(shí)現(xiàn)

解密運(yùn)算和加密運(yùn)算原理基本相同,只是讀取需要解密的加密標(biāo)書時(shí),必須與經(jīng)過加密運(yùn)算后存入的加密標(biāo)書相同,這是系統(tǒng)能否正確運(yùn)行的前提條件,解密運(yùn)算為X=CD(mod N),它是加密過程的模函數(shù)逆運(yùn)算。

對(duì)于E×D=1 mod Z,在已知E而求D時(shí),采用的冪模函數(shù)的求逆運(yùn)算計(jì)算流程圖如圖4所示。

3、軟件的安全性

系統(tǒng)的合法用戶必須知道正確的解密密鑰、公鑰和用戶密碼才能進(jìn)入系統(tǒng),否則系統(tǒng)將拒絕進(jìn)入.由于解密密鑰,公鑰和用戶密碼都是隨時(shí)可以更改的,這就增加了非法用戶進(jìn)入系統(tǒng)的難度,將系統(tǒng)的不安全系數(shù)降至最低,確保系統(tǒng)的安全。

小知識(shí)之?dāng)?shù)字簽名

數(shù)字簽名(又稱公鑰數(shù)字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領(lǐng)域的技術(shù)實(shí)現(xiàn),用于鑒別數(shù)字信息的方法。一套數(shù)字簽名通常定義兩種互補(bǔ)的運(yùn)算,一個(gè)用于簽名,另一個(gè)用于驗(yàn)證。