趙國杰,文華,劉成浩
(南方電網(wǎng)深圳數(shù)字電網(wǎng)研究院有限公司,廣東深圳 518055)
在電力物聯(lián)網(wǎng)終端中,溫度、濕度、電壓等各種傳感器的應(yīng)用日益廣泛,由于大多數(shù)的電力數(shù)據(jù)采集終端都是在無人監(jiān)視環(huán)境下進(jìn)行的,有些終端因?yàn)樽陨淼臄?shù)據(jù)處理能力或者是歷史遺留問題,并未對其進(jìn)行加密,不能保障數(shù)據(jù)安全。因此在通信過程中,必須要解決電力物聯(lián)網(wǎng)裝置的數(shù)據(jù)安全傳輸問題。
在以往通信過程中,文獻(xiàn)[1]提出了基于區(qū)塊鏈且支持驗(yàn)證的加密方法,該方法結(jié)合共享密鑰加密數(shù)據(jù)訪問過程,依據(jù)區(qū)塊鏈的不可篡改性保護(hù)用戶隱私。雖然使用該方法能夠?qū)⒚芪募用芎蟛虐l(fā)送,但是收信方若想讀取原文,需要使用加密密鑰才能解密,該過程需要使用同樣的密鑰鑰匙,無法保證通信安全;文獻(xiàn)[2]提出了基于生成對抗網(wǎng)絡(luò)的加密方法,構(gòu)建模糊密鑰通信模型,對通信雙方進(jìn)行對抗訓(xùn)練,但是加解密速度較慢。由于電力物聯(lián)網(wǎng)終端是一個存儲容量較小的設(shè)備,節(jié)點(diǎn)資源受限,單純地使用上述兩種方法都無法滿足電力物聯(lián)網(wǎng)設(shè)備在資源受限條件下對通信的要求。為此,提出了基于混沌映射算法的電力物聯(lián)網(wǎng)加密通信認(rèn)證方法。
混沌映射算法采用位置置亂的方法,整個加密過程如圖1 所示。

圖1 基于混沌映射算法通信認(rèn)證加密過程
由圖1 可知,對于密鑰的設(shè)計,首先假設(shè)存在兩個密鑰λ1、λ2,其中,λ1是通信標(biāo)識位置置亂密鑰,λ2是混沌映射初值密鑰。通信標(biāo)識位置置亂采用了混沌映射,其迭代次數(shù)可以作為密鑰[3-4]。若密鑰值設(shè)置為1、2、3、4,則分別表示對原始圖像映射迭代1~4 次。
由于通信標(biāo)識是有限的數(shù)據(jù)集集合,數(shù)據(jù)排列組合是有限的,所以在有限次迭代處理后,加密通信認(rèn)證會恢復(fù)到原來的狀態(tài),但不能抵御外界明文攻擊[5-7]。因此,為了提高通信認(rèn)證的安全性,需要在二維混沌映射基礎(chǔ)上增加擴(kuò)散函數(shù)[8]。所采用的擴(kuò)散函數(shù)如式(1)所示:
式中,xk表示每一次通信的標(biāo)識數(shù)據(jù);xk′表示擴(kuò)散后通信的標(biāo)識數(shù)據(jù);r表示混沌映射產(chǎn)生的混沌序列;s表示通信的標(biāo)識數(shù)據(jù)[9]。
在擴(kuò)散函數(shù)中引入偽隨機(jī)序列,提高了通信認(rèn)證加密的安全性[10]。基于該原理,設(shè)計通信認(rèn)證加密步驟如下:
步驟1:選取通信標(biāo)識位置置亂密鑰的第一個位置作為置亂位置,使用二維映射方法對原始通信標(biāo)識進(jìn)行位置置亂,并迭代一次[11];
步驟2:轉(zhuǎn)換置亂順序,選取混沌映射初值密鑰λ2的第二個位置作為置亂位置,使用二維映射方法對原始通信標(biāo)識進(jìn)行位置置亂,并迭代二次;
步驟3:選取通信標(biāo)識位置置亂密鑰的第三個位置作為置亂位置,通過混沌映射對以上得到的置亂圖像進(jìn)行三次迭代;
步驟4:選取通信標(biāo)識位置置亂密鑰的最后一個位置作為置亂位置,對置亂后的通信標(biāo)識進(jìn)行混沌映射迭代處理后,獲取擴(kuò)散處理后的加密通信認(rèn)證序列,由此完成整個通信認(rèn)證過程的加密[12]。
為了提高電力物聯(lián)網(wǎng)加密通信過程中的安全性和隱私性,需要首先發(fā)送和接收數(shù)據(jù),同時添加明文處理隱私數(shù)據(jù),并結(jié)合混沌映射算法設(shè)計電力物聯(lián)網(wǎng)加密通信認(rèn)證流程[13-14]。由于不可預(yù)測性和對初始值的敏感依賴性,加密過程十分嚴(yán)謹(jǐn),其中,混沌映射公式為:
式中,δ表示控制參量;xn表示任意初始值。對于混沌映射迭代處理過程中隨意出現(xiàn)的一個確定時間序列,式(2)將呈現(xiàn)不同的特性。隨著控制參數(shù)的增加,式(2)呈現(xiàn)不斷地周期分叉,最終達(dá)到混沌狀態(tài)[15]。在該狀態(tài)下,設(shè)計電力物聯(lián)網(wǎng)加密通信認(rèn)證流程如下:
步驟1:獲取由隨機(jī)數(shù)組成的密鑰,該密鑰能夠同時接收和發(fā)送數(shù)據(jù);
步驟2:獲取傳輸過程中的關(guān)鍵數(shù)值代碼,得到密鑰:
1)提取傳輸時間日期內(nèi)的時間比特,將小時間比特和發(fā)送方的標(biāo)識代碼長度值相加,從而獲得標(biāo)識代碼的指數(shù)值;
2)從發(fā)送者的標(biāo)識代碼中查找相應(yīng)的數(shù)字,并將其作為密鑰指數(shù)基本值;
3)將密鑰指數(shù)基本值加上發(fā)送方識別的代碼作為密鑰索引值;
4)從密鑰本中查找與索引值相對應(yīng)的密鑰數(shù)值,由此獲取由若干個密鑰關(guān)鍵數(shù)值組成的密鑰。
密鑰可設(shè)計為:在確定混沌映射結(jié)果的基礎(chǔ)上,對其進(jìn)行分段線性處理,如式(3)所示:
式中,γ表示控制參數(shù);Cn表示迭代項(xiàng)。定義的分段線性混沌映射所屬的映射空間是混沌的,并且映射結(jié)果在連續(xù)軌道上顯示確定的隨機(jī)性[16]。
為了避免混沌特性退化,抵抗已知攻擊,加入擾動機(jī)制,即bn數(shù)列,可表示為:
式中,Z表示模數(shù)。流密碼計算公式為:
式中,mod 256 的作用是將當(dāng)前計算結(jié)果映射到字節(jié)空間中,形成一個字節(jié)的流密碼。
步驟3:發(fā)送端整合密鑰本、接收唯一標(biāo)識、發(fā)送時間等信息,并將這些信息傳送給接收端;
步驟4:接收端接收到加密文本的索引值后,根據(jù)步驟3 整合的信息,實(shí)現(xiàn)發(fā)送端到接收端的數(shù)據(jù)加密通信。
1)在接收時間日期內(nèi)抽取時間比特,在時間比特和發(fā)送方標(biāo)識代碼的長度值之間進(jìn)行相加,從而獲得標(biāo)識代碼的指數(shù)值;
2)從發(fā)送端的標(biāo)識代碼中查找相應(yīng)的數(shù)字,并將其作為密鑰指數(shù)基本值;
3)將密鑰索引值與密鑰本身長度相加,獲取該部分的索引值;
4)以密鑰數(shù)值作為對稱密鑰,使密文恢復(fù)為明文,由此完成電力物聯(lián)網(wǎng)加密通信認(rèn)證。
由于傳統(tǒng)的以用戶名/密碼為基礎(chǔ)的身份驗(yàn)證方法可能會遭到黑客入侵或者被竊聽,采用混沌映射技術(shù)進(jìn)行通信驗(yàn)證是一種非常有效的方法。因此,提出了結(jié)合具有挑戰(zhàn)性的握手驗(yàn)證機(jī)制,以改善通信認(rèn)證的穩(wěn)定性與安全性,以避免重放攻擊。
基于挑戰(zhàn)握手認(rèn)證協(xié)議的增強(qiáng)通信認(rèn)證過程如圖2 所示。

圖2 基于挑戰(zhàn)握手認(rèn)證協(xié)議的增強(qiáng)通信認(rèn)證過程
由圖2 可知,發(fā)送端和接收端的通信識別需要以下三次交互過程來確認(rèn)。第一次交互過程:在訪問者要求識別通信身份時,認(rèn)證人員隨機(jī)向訪問者發(fā)出“挑戰(zhàn)”信息;第二次交互過程:在接受挑戰(zhàn)后,利用其私人密鑰的簽名挑戰(zhàn)值產(chǎn)生“響應(yīng)”值;第三次交互過程:認(rèn)證用戶根據(jù)訪問用戶的簽名信息,對應(yīng)答值中的挑戰(zhàn)值進(jìn)行認(rèn)證。若簽署驗(yàn)證是正確的,通信識別就會被證實(shí)。否則,存取要求將被終止。采用“挑戰(zhàn)握手”驗(yàn)證機(jī)制對傳統(tǒng)的身份驗(yàn)證方法進(jìn)行了改進(jìn)。基于挑戰(zhàn)握手認(rèn)證協(xié)議,電力物聯(lián)網(wǎng)服務(wù)器能夠通過更改可變挑戰(zhàn)值,對電源或應(yīng)用系統(tǒng)的通信識別進(jìn)行安全驗(yàn)證,避免第三方的重放攻擊,從而證實(shí)了與電力物聯(lián)網(wǎng)相連的“人機(jī)物”身份的正確性及合法性。
為了驗(yàn)證基于混沌映射算法的電力物聯(lián)網(wǎng)加密通信認(rèn)證方法設(shè)計的合理性,進(jìn)行實(shí)驗(yàn)驗(yàn)證分析。
實(shí)驗(yàn)使用一臺Intel Core 2 的CPU,通過計算機(jī)來模擬系統(tǒng)的監(jiān)測中心。該監(jiān)測中心采用Visual C語言,并使用該語言進(jìn)行編寫,終端通過使用嵌入式設(shè)備使監(jiān)測中心與串口進(jìn)行通信。
在上述實(shí)驗(yàn)環(huán)境下,設(shè)置一種威脅電力物聯(lián)網(wǎng)通信認(rèn)證的情況:遠(yuǎn)程控制行為或特征出現(xiàn)極大異常,一般為主機(jī)上的惡意程序使用SSL/TLS 協(xié)議對服務(wù)器發(fā)起回連,小部分由某些對SSL/TLS 協(xié)議不規(guī)范使用的軟件產(chǎn)生。該情況下,通信認(rèn)證過程產(chǎn)生的報文,具體內(nèi)容如圖3 所示。

圖3 通信認(rèn)證過程產(chǎn)生的報文
由圖3 可知,在這段報文中,通信認(rèn)證過程產(chǎn)生的報文,即為響應(yīng)報文。
在通信認(rèn)證過程受到威脅的情況下,上、下行包數(shù)統(tǒng)計結(jié)果如表1 所示。

表1 上、下行包數(shù)統(tǒng)計結(jié)果
由表1 可知,通信認(rèn)證過程中,受到威脅影響,上行和下行包數(shù)變化情況變化不大。
分別使用基于區(qū)塊鏈且支持驗(yàn)證的加密方法、文獻(xiàn)[1]基于生成對抗網(wǎng)絡(luò)的加密方法和文獻(xiàn)[2]基于混沌映射算法的通信認(rèn)證方法,對比分析上、下行包數(shù)變化情況,得到結(jié)果如圖4 所示。

圖4 三種方法上、下行包數(shù)變化情況對比分析
由圖4 可知,使用基于區(qū)塊鏈、基于生成對抗網(wǎng)絡(luò)的加密方法,上、下行包數(shù)變化情況與表1 數(shù)據(jù)不符,最大誤差分別為三個和七個。使用所設(shè)計方法的上、下行包數(shù)變化情況與表1 數(shù)據(jù)相符,誤差為0。
通過上述分析結(jié)果可知,所設(shè)計方法能夠獲取全部數(shù)據(jù)包。截取通信認(rèn)證過程中的一段報文如下所示:→TXD:90 12 12 95 75 02 00 72 02 04 00 00 00 16;→RXD:90 14 14 95 24 02 00 72 02 04 00 00 00 14。在這段報文中,對象標(biāo)識符字段值與請求報文一樣,即為響應(yīng)報文。如果響應(yīng)報文與通信認(rèn)證過程的報文一致,則說明通信認(rèn)證成功。
文中結(jié)合混沌映射算法,設(shè)計電力物聯(lián)網(wǎng)加密通信認(rèn)證方法流程,該方法采用了基于混沌映射的對稱密碼,實(shí)現(xiàn)了用戶間的相互驗(yàn)證和密鑰協(xié)商,保證了從發(fā)送端到接收端的訪問驗(yàn)證、全業(yè)務(wù)鏈路數(shù)據(jù)傳送以及信任的安全性。提出的具有挑戰(zhàn)性的握手驗(yàn)證機(jī)制,增強(qiáng)了電力物聯(lián)網(wǎng)通信認(rèn)證效率,避免了對稱加密解密操作導(dǎo)致的效率低的問題。