楊榮霞
(南方電網(wǎng)大數(shù)據(jù)服務(wù)有限公司, 廣東, 廣州 510000)
系統(tǒng)數(shù)據(jù)庫中存儲了諸多智能變電站機(jī)密信息,如果沒有做好數(shù)據(jù)庫數(shù)據(jù)保護(hù)工作,極易出現(xiàn)數(shù)據(jù)被篡改、完整性和真實性不確定等問題[1-3]。然而,供電局運維工作人員在使用系統(tǒng)數(shù)據(jù)時,對其真實性要求極高,一旦使用了篡改、不完整的監(jiān)測數(shù)據(jù),會導(dǎo)致智能變電站出現(xiàn)故障維修不及時、維修難度增加、電力故障等問題,造成嚴(yán)重經(jīng)濟(jì)損失[4-5]?;诖?系統(tǒng)數(shù)據(jù)庫防篡改已經(jīng)成為數(shù)據(jù)安全保護(hù)重要手段。
如今相關(guān)學(xué)者得到了一些較好的研究成果。文獻(xiàn)[6]將信息共享網(wǎng)絡(luò)作為研究對象,通過分析信息共享網(wǎng)絡(luò)數(shù)據(jù)共享過程,將RDTP協(xié)議應(yīng)用在網(wǎng)絡(luò)數(shù)據(jù)共享的數(shù)據(jù)處理和傳輸層中,防止共享數(shù)據(jù)被篡改。文獻(xiàn)[7]面對安全監(jiān)控系統(tǒng)數(shù)據(jù)存在的數(shù)據(jù)庫安全問題,結(jié)合捕獲機(jī)制和數(shù)據(jù)加密兩種技術(shù),識別、跟蹤和記錄數(shù)據(jù)篡改行為,防止數(shù)據(jù)庫數(shù)據(jù)被篡改。但是,由于以上方法沒有對數(shù)據(jù)庫的嵌入式水印的加密進(jìn)行深入分析,忽略了數(shù)據(jù)庫加密相應(yīng)函數(shù)的建立,導(dǎo)致已有方法存在變電站系統(tǒng)數(shù)據(jù)庫訪問平均響應(yīng)時間較長問題。
為解決以上問題,本文提出智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫防篡改方法。為優(yōu)化數(shù)據(jù)庫訪問的效率,增強數(shù)據(jù)防篡改效果,將水印分割成多個水印信息,并建立數(shù)據(jù)庫嵌入水印加密函數(shù),優(yōu)化數(shù)據(jù)庫的加密結(jié)果?;诖?提取嵌入水印,恢復(fù)數(shù)據(jù)庫篡改數(shù)據(jù),最終完成智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫防篡改。
1.1.1 預(yù)處理數(shù)字水印
為了增強水印的隱蔽性,通過數(shù)制轉(zhuǎn)換的方式預(yù)處理水印,將水印分割成多個小的水印信息。假設(shè)此次研究選擇的水印信息為U,則其預(yù)處理公式如下:
(1)
式(1)中,j表示最小指數(shù),k表示U分解個數(shù),2j表示k-1位進(jìn)制數(shù),ai表示U分解后第i個水印信息,ui表示U分解后第i個水印[8]。式(1)具有如下性質(zhì):u0=j;ui=ai-1;1
依據(jù)式(1)預(yù)處理得到的ui轉(zhuǎn)化為j位二進(jìn)制的形式。若ui轉(zhuǎn)化的二進(jìn)制數(shù)不滿足j,則需要采用0在其轉(zhuǎn)化的二進(jìn)制數(shù)前面補齊位數(shù)。
1.1.2 嵌入數(shù)字水印
由于數(shù)字水印加密數(shù)據(jù)會改變數(shù)據(jù)庫和MD5值,且不同大小數(shù)字水印所能加密的信息容量有限,為此,初始化數(shù)據(jù)庫,計算預(yù)處理后的數(shù)字水印容量和MD5值,則有:
S′=f(S,q1)
(2)
O=∏ (|Ri|!)
(3)
M=g(S′)
(4)
式(2)~式(4)中,S′表示初始化后的智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫,S表示智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫,q1表示數(shù)字水印嵌入秘鑰生成元,f表示網(wǎng)頁屬性重新排序映射函數(shù),O表示數(shù)字水印容量,Ri表示第i個水印的標(biāo)簽中的屬性個數(shù),“!”表示階乘符號,M表示MD5值,g表示Meijer-G函數(shù)。
根據(jù)O、q和M值,將數(shù)字水印嵌入系統(tǒng)實時監(jiān)測數(shù)據(jù)庫中,則有:
D′=h(M,O,q2)
(5)
式(5)中,D′表示嵌入水印后的數(shù)據(jù)庫數(shù)據(jù),h表示數(shù)字水印加密響應(yīng)函數(shù),q2表示數(shù)字水印嵌入密鑰集。式(5)使用MD5值調(diào)整數(shù)字水印容量,以增強數(shù)字水印安全性。
1.1.3 加密系統(tǒng)實時監(jiān)測數(shù)據(jù)庫
按照式(5)所示的計算過程,將數(shù)字水印嵌入智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫后,需要對系統(tǒng)實時監(jiān)測數(shù)據(jù)庫進(jìn)行加密,計算加密公鑰和私鑰的秘鑰對。假設(shè),公鑰秘鑰對為a和b,私鑰秘鑰對為c和b,其計算公式如下:
(6)
式(6)中,K表示(p-1,q-1)的最小公倍數(shù)值,ψ表示最小公倍數(shù)求取符號,p和q表示兩大質(zhì)數(shù),由偽隨機(jī)數(shù)生成,ζ表示最大公約數(shù),y表示求余函數(shù)。
如式(6)所示的加密秘鑰對計算公式,求取公鑰a和私鑰c均需要滿足兩個條件,且私鑰c由公鑰a計算得到,則水印加密公鑰和私鑰具有如圖1所示的關(guān)系。
圖1 水印加密公鑰和私鑰關(guān)系圖
根據(jù)圖1所示的水印加密公鑰和私鑰關(guān)系,設(shè)計的系統(tǒng)實時監(jiān)測數(shù)據(jù)庫嵌入水印加密函數(shù)如下式所示:
E′=Eayb
(7)
式(7)中,E′表示系統(tǒng)實時監(jiān)測數(shù)據(jù)庫密文,E表示系統(tǒng)實時監(jiān)測數(shù)據(jù)庫明文。
在嵌入數(shù)字水印以及嵌入水印加密過程中的數(shù)據(jù)D′都是完好無誤的,則數(shù)字水印十進(jìn)制編碼χ也是正確的。此時,數(shù)據(jù)庫數(shù)據(jù)出現(xiàn)篡改問題,會改變嵌入水印十進(jìn)制編碼,若嵌入水印十進(jìn)制編碼χ中部分編碼被更改,則被篡改后的嵌入水印十進(jìn)制編碼χ′可表示為
χ′=χ+Δχ
(8)
式(8)中,Δχ表示被篡改的嵌入水印十進(jìn)制編碼?;诖?假設(shè)嵌入水印生成矩陣為G,在理想情況下破譯嵌入水印編碼的譯碼矩陣為H,此時的H屬于絕對可逆矩陣。由于H在理想狀態(tài)下屬于絕對可逆,因此先對H進(jìn)行檢測,判斷H是否可逆,若H可逆,則系統(tǒng)實時監(jiān)測數(shù)據(jù)庫未發(fā)生數(shù)據(jù)篡改問題,若H不可逆,則系統(tǒng)實時監(jiān)測數(shù)據(jù)庫發(fā)生數(shù)據(jù)篡改。
在這一過程中,譯碼矩陣H未曾經(jīng)過檢測,難以判斷其譯碼結(jié)果是否準(zhǔn)確,為此將χ的編碼信息記為校驗元A,編碼矩陣記為二次生成元B,根據(jù)B通過下式得到編碼矩陣逆元C,則有:
QH-1=D1
(9)
D1B=C
(10)
式(9)、式(10)中,D1表示譯碼得到的原始信息。將式(10)得到的C與A進(jìn)行比較,若A=C,則認(rèn)為系統(tǒng)實時監(jiān)測數(shù)據(jù)庫嵌入水印后的數(shù)據(jù)未發(fā)生篡改;若A≠C,則認(rèn)為系統(tǒng)實時監(jiān)測數(shù)據(jù)庫嵌入水印后的數(shù)據(jù)發(fā)生篡改。
1.3.1 提取嵌入水印
根據(jù)圖1所示的水印加密公鑰和私鑰關(guān)系,將式(7)進(jìn)行反運算,則有:
E=E′cyb
(11)
根據(jù)式(11)可完成嵌入水印解密過程,此時即可提取解密后的嵌入水印。為此,假設(shè)可能被篡改的數(shù)據(jù)庫數(shù)據(jù)流為D″,針對式(5)進(jìn)行逆變換,得到逆變換加密響應(yīng)函數(shù)h-1,根據(jù)式(3)的計算結(jié)果,計算h-1與嵌入水印序列x的相關(guān)性r,則有:
(12)
1.3.2 恢復(fù)數(shù)據(jù)庫篡改數(shù)據(jù)
假設(shè)系統(tǒng)實時監(jiān)測數(shù)據(jù)庫中嵌入水印失效比例為P1,提取到系統(tǒng)實時監(jiān)測數(shù)據(jù)庫中嵌入水印比例為P2,劃分系統(tǒng)實時監(jiān)測數(shù)據(jù)庫,則有:
(13)
Dd=H(q1,H(vd,q1))ym
(14)
式(14)中,H(·)表示嘻哈函數(shù),vd表示元組d的主鍵值。若Dd中包含嵌入水印,需要確定水印屬性1和屬性2的索引X和Y,則有:
X=H(q2,H(vd,q2))yn
(15)
Y=H(q2,H(vd/2,q2))yn
(16)
式(15)、式(16)中,n表示數(shù)據(jù)中的屬性數(shù)。若式(15)、式(16)中的屬性2索引Y=Y+1yn=X,則得到的屬性2索引Y值加1。重復(fù)計算式(13)和式(14),不斷更新水印屬性1和屬性2的索引X和Y屬性值,得到恢復(fù)后的系統(tǒng)實時監(jiān)測數(shù)據(jù)庫數(shù)據(jù)D′,實現(xiàn)智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫防篡改。數(shù)據(jù)庫防篡改方法實現(xiàn)的流程圖如圖2所示。
圖2 數(shù)據(jù)庫防篡改方法流程圖
選擇文獻(xiàn)[6]方法和文獻(xiàn)[7]方法作為此次實驗比較方法,將智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫作為此次實驗研究對象,在MALTAB 2019a軟件上,驗證此次研究的智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫防篡改方法。實驗過程中選擇的計算機(jī)處理器為Intel(R)core(TM)i7-6600U@2.81 GHz型CPU,其內(nèi)存為512 GB。
此次實驗選擇的智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫被劃分為監(jiān)測、存儲、運維診斷、數(shù)據(jù)配置4個區(qū)域,根據(jù)這四個區(qū)域,采用MALTAB 2019a軟件仿真系統(tǒng)實時監(jiān)測數(shù)據(jù)庫,得到的智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫仿真圖,如圖3所示。
圖3 系統(tǒng)實時監(jiān)測數(shù)據(jù)庫數(shù)據(jù)仿真圖
2.2.1 數(shù)據(jù)傳輸過程加解密測試
在數(shù)據(jù)庫傳輸數(shù)據(jù)的過程中,數(shù)據(jù)庫服務(wù)器端會檢測數(shù)據(jù)庫在傳輸文件過程中的文件是否被篡改?;诖?將數(shù)據(jù)庫傳輸文件過程中的加解密時間作為數(shù)據(jù)傳輸過程加解密測試指標(biāo),其計算公式如式(17)所示:
T=T2-T1
(17)
式(17)中,T表示數(shù)據(jù)庫傳輸文件過程加解密時間;T1表示數(shù)據(jù)庫傳輸文件加解密預(yù)處理服務(wù)器收到數(shù)據(jù)時的時間;T2表示數(shù)據(jù)庫傳輸文件加解密結(jié)束時的時間。根據(jù)式(17),改變數(shù)據(jù)庫傳輸文件大小,比較3組防篡改方法數(shù)據(jù)庫傳輸文件過程加解密性能。其加解密時間越短,防篡改方法性能越優(yōu)。
2.2.2 數(shù)據(jù)庫響應(yīng)測試
使用http-load壓力測試工具,在系統(tǒng)實時監(jiān)測數(shù)據(jù)庫上生成不同的用戶并發(fā)數(shù),將每位用戶訪問數(shù)據(jù)庫持續(xù)時間設(shè)置為1 s。在測試過程中,http-load壓力測試工具共生成900位用戶,每間隔1 s增加一位用戶,直至用戶數(shù)達(dá)到900位用戶停止訪問數(shù)據(jù)庫,輸出數(shù)據(jù)庫在不同并發(fā)數(shù)下響應(yīng)訪問時間。
2.3.1 數(shù)據(jù)傳輸過程加解密測試結(jié)果
根據(jù)式(17)所示的計算過程,得到的數(shù)據(jù)庫傳輸文件過程加解密測試結(jié)果如圖4所示。
圖4 數(shù)據(jù)傳輸過程加解密測試結(jié)果
從圖4中可以看出,本文方法相較文獻(xiàn)方法,加解密數(shù)據(jù)庫傳輸不同大小文件平均時間分別少380 ms、560 ms。
2.3.2 數(shù)據(jù)庫響應(yīng)時間測試結(jié)果
根據(jù)此次實驗設(shè)計的數(shù)據(jù)庫響應(yīng)測試過程和評價標(biāo)準(zhǔn),得到的數(shù)據(jù)庫平均響應(yīng)時間測試結(jié)果如圖5所示。
圖5 數(shù)據(jù)庫平均響應(yīng)時間測試結(jié)果
從圖5中可以看出,3組防篡改方法分別放入如圖2所示的系統(tǒng)實時監(jiān)測數(shù)據(jù)庫中,均在不同程度上增加了系統(tǒng)平均響應(yīng)時間。其中,文獻(xiàn)[6]方法和文獻(xiàn)[7]方法,均在數(shù)據(jù)庫原有平均響應(yīng)時間基礎(chǔ)上增加了550 ms;而研究系統(tǒng)僅在數(shù)據(jù)庫原有平均響應(yīng)時間基礎(chǔ)上增加了350 ms,較基于信息共享的防篡改方法和基于RSA算法的防篡改方法減少了200 ms。
2.3.3 數(shù)據(jù)可用度測試結(jié)果
在本節(jié)中以數(shù)據(jù)可用度為指標(biāo),指標(biāo)的計算公式為
(18)
式(18)中,N表示可信數(shù)據(jù)總數(shù),M表示數(shù)據(jù)庫中存在的數(shù)據(jù)總數(shù)。
將上述數(shù)據(jù)作為測試指標(biāo),對文獻(xiàn)[6]方法、文獻(xiàn)[7]方法以及本文方法進(jìn)行測試,測試結(jié)果如圖6所示。
圖6 不同方法數(shù)據(jù)可用度
根據(jù)圖6可知,在用戶并發(fā)數(shù)逐漸增多過程中,文獻(xiàn)[6]方法和文獻(xiàn)[7]方法的數(shù)據(jù)可用度最高為85%,最低為72%;本文方法的數(shù)據(jù)可用度最高為100%,最低為92%。由此說明,本文方法應(yīng)用過程的數(shù)據(jù)可用度更高。
為了改善變電站系統(tǒng)數(shù)據(jù)庫訪問的平均響應(yīng)時間較長問題,本論文提出智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫防篡改方法。計算預(yù)處理后的數(shù)字水印容量和MD5值,建立數(shù)據(jù)庫嵌入水印加密函數(shù);提取嵌入水印,恢復(fù)數(shù)據(jù)庫篡改數(shù)據(jù),完成智能變電站運維系統(tǒng)實時監(jiān)測數(shù)據(jù)庫防篡改。實驗結(jié)果證明了所提方法提升了數(shù)據(jù)庫加密速度,且數(shù)據(jù)可用度更高,具有更理想的應(yīng)用效果。
但是此次研究并未考慮智能變電站運維系統(tǒng)被攻破的情況下,系統(tǒng)實時監(jiān)測數(shù)據(jù)庫數(shù)據(jù)被篡改情況。因此在今后研究中,還需要從智能變電站運維系統(tǒng)的安全性角度,研究系統(tǒng)實時監(jiān)測數(shù)據(jù)庫數(shù)據(jù)防篡改方法。