王林 何映軍 向華偉 呂垚
摘 要:隨著社會的發(fā)展和用戶的需求多樣化,電網(wǎng)的開放性和交互性和網(wǎng)導(dǎo)致電網(wǎng)的各種應(yīng)用系統(tǒng)越來越多,從而使智能電網(wǎng)數(shù)據(jù)量增長速度很快,尤其是非結(jié)構(gòu)化數(shù)據(jù),存在數(shù)據(jù)量大、存儲空間占用率高、數(shù)據(jù)安全風(fēng)險高等特點,進(jìn)而對非結(jié)構(gòu)化數(shù)據(jù)安全提出了更高的要求。本文重點從數(shù)據(jù)加密和解密兩方面對非結(jié)構(gòu)化數(shù)據(jù)處理,實現(xiàn)電網(wǎng)非結(jié)構(gòu)化數(shù)據(jù)安全的目標(biāo)。
關(guān)鍵詞:非結(jié)構(gòu)化數(shù)據(jù);數(shù)據(jù)安全;k近鄰算法;聚類算法
中圖分類號:TM76 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2019)19-0143-02
0 引言
隨著社會的快速發(fā)展,加速了大數(shù)據(jù)發(fā)展的步伐,據(jù)IDC和EMC估計,到了2020年,數(shù)據(jù)會突破40000EB。且以兩年翻倍的速度快速增長,而企業(yè)約80%是非結(jié)構(gòu)化數(shù)據(jù)。尤其在電力行業(yè),非結(jié)構(gòu)化數(shù)據(jù)增加速度越來越快。各種新技術(shù)的引入以及電網(wǎng)的開放性和交互性和網(wǎng)絡(luò)通訊更加復(fù)雜,增加了電網(wǎng)內(nèi)部的安全風(fēng)險。非結(jié)構(gòu)化數(shù)據(jù)安全在電力企業(yè)中變得非常重要,雖然在結(jié)構(gòu)化數(shù)據(jù)加密方面取得了進(jìn)步,但是非結(jié)構(gòu)化數(shù)據(jù)安全滿足不了用戶和電力部門的實際需求,因此在非結(jié)構(gòu)化數(shù)據(jù)加密的的基礎(chǔ)上實現(xiàn)檢索效率的優(yōu)化已經(jīng)成為一個研究課題,本文利用中科院ICTCLA分詞技術(shù)和開源hadoop體系結(jié)構(gòu)中的HDFS文件系統(tǒng)和HBASE等開源技術(shù)對非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分詞和存儲,引入以下算法提高非結(jié)構(gòu)化數(shù)據(jù)的安全性和檢索效率。本文采用多層聚類的多分類SVM方法對數(shù)據(jù)進(jìn)行聚類[1],利用線性同態(tài)加密算法對非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行加密,利用HBASE對非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行列式存儲,運用k近鄰查詢算法實現(xiàn)查詢效率的提高。
1 相關(guān)算法
本文改進(jìn)了同態(tài)加密算法,文獻(xiàn)5提出了基于ECC的同態(tài)加密算法,本文為了提高檢索效率,提出線性同態(tài)加密方法。引入多層聚類svm算法先對數(shù)據(jù)聚類,利用改進(jìn)的同態(tài)加密算法對數(shù)據(jù)的進(jìn)行加密,運用k近鄰算法實現(xiàn)查詢效率的提高[2,3]。
1.1 線性相關(guān)加密算法
同態(tài)加密是一類具有特殊自然屬性的加密方法,此概念是Rivest等人在20世紀(jì)70年代首先提出的,與一般加密算法相比,同態(tài)加密除了能實現(xiàn)基本的加密操作之外,還能實現(xiàn)密文間的多種計算功能,即先計算后解密可等價于先解密后計算。同態(tài)加密算法的缺點只能進(jìn)行加運算和乘運算,容易被竊取,造成數(shù)據(jù)泄露。直到2009年,IBM的研究人員Gentry首次設(shè)計出一個真正的全同態(tài)加密體制,即可以在不解密的條件下對加密數(shù)據(jù)進(jìn)行任何可以在明文上進(jìn)行的運算,使得對加密信息仍能進(jìn)行深入和無限的分析,而不會影響其保密性。但是由于全同態(tài)加密算法非常耗時,只適應(yīng)理論研究,不適應(yīng)大數(shù)據(jù)領(lǐng)域。鑒于同態(tài)加密算法的和全同態(tài)加密算法的不足之處,提出了線性加密算法:
步驟1:甲用戶在直角坐標(biāo)系任選一點A(x,y),確定一個私鑰k,并生成對應(yīng)公鑰y=kx+b,并將A發(fā)送到乙。
步驟2:乙收到A(x,y),產(chǎn)生隨機(jī)數(shù)z(z 步驟3:乙收到密文傳給甲,甲收到密文C后,用k解密C。 1.2 k近鄰算法 K近鄰(k-Nearest Neighbor,KNN)分類算法,是一個機(jī)器學(xué)習(xí)算法。該方法的思路是:如果一個樣本在特征空間中的k個很類似的樣本中的絕大多數(shù)樣本屬于某一個類別,那么該樣本也屬于這個類別。k的選取,距離和分類決策規(guī)則是該算法的三個基本要素:k的選取會影響算法的結(jié)果,如果k值選取小,發(fā)生過擬合的概率比較大;如果k值設(shè)定大,優(yōu)點是縮小學(xué)習(xí)的誤差,缺陷是學(xué)習(xí)的誤差會擴(kuò)大,使預(yù)測不準(zhǔn)確。本文中k值一般選取比較小的數(shù)值,通常采用驗證的方法來查找最佳的k值。如果訓(xùn)練實例數(shù)目趨向于無窮和k等于1時,該誤差率不會超過貝葉斯誤差率的2倍,如果k趨向于無窮大,則誤差率趨向于貝葉斯誤差率。該算法中的分類決策規(guī)則:即由輸入實例的k個最臨近的訓(xùn)練實例中的多數(shù)類。決定輸入實例的類別距離度量,設(shè)定Lp距離,當(dāng)p=2時,即為歐氏距離,在度量以前,本文將每個屬性的值規(guī)范化,防止具有較大初始值域的屬性比具有較小初始值域的屬性的權(quán)重過大。 2 加密技術(shù)實現(xiàn) 加密和檢索技術(shù)實現(xiàn)從平臺搭建、檢索算法實現(xiàn)和安全性能分析分析三個步驟實現(xiàn),首先描述了平臺環(huán)境,其次是檢索算法的實現(xiàn)流程,最后從安全性能和檢索效率分析驗證該技術(shù)的可行性[4,5]。 2.1 平臺環(huán)境 本文的加密和檢索系統(tǒng)采用hadoop搭建分布集群,作為本文的云存儲平臺,存儲密文文檔,密文索引采用倒排的索引方式,由于apache hadoop是基于java的平臺,基于平臺更好的兼容性,本文實驗環(huán)境的分詞算法使用中科院ICTCLA分詞算是,使用java語言來實現(xiàn)密文全文檢索。并對hadoop集群進(jìn)行了相應(yīng)的配置。本文實驗環(huán)境是兩臺部署hadoop的Linux服務(wù)器。本文為了描述方便,其中非結(jié)構(gòu)化加密數(shù)據(jù)在甲服務(wù)器上,另外一臺相互協(xié)作的服務(wù)器稱作乙。 2.2 算法實現(xiàn) 非結(jié)構(gòu)化數(shù)據(jù)按照多層次聚類SVM算法流程進(jìn)行聚類(聚類的目的為密文檢索做準(zhǔn)備,目的是方便找出最短距離),然后把聚類后的數(shù)據(jù)進(jìn)行加密,其中加密的數(shù)據(jù)包括在聚類過程中產(chǎn)生的新數(shù)據(jù)和原數(shù)據(jù)以及用戶提交的查詢數(shù)據(jù)。數(shù)據(jù)加密的索引項在甲服務(wù)器上,數(shù)據(jù)解密的密鑰在乙服務(wù)器上,甲與乙配合處理檢索內(nèi)容查詢和數(shù)據(jù),最終返回查詢結(jié)果(具體流程參見圖1所示)。該算法將所有數(shù)據(jù)分成m份,設(shè)k值設(shè)為m,這樣聚類后的數(shù)據(jù)就會產(chǎn)生m份,對于每一份數(shù)據(jù),再依次分裂成m份,直到葉子節(jié)點不再滿足分裂要求則停止,對數(shù)據(jù)數(shù)量的最大值和最小值做限制和規(guī)定。當(dāng)節(jié)點中數(shù)據(jù)數(shù)量大于最大值,則節(jié)點可以繼續(xù)分裂。若分裂后數(shù)據(jù)數(shù)量小于預(yù)定的值,則將該節(jié)點與其同時分裂產(chǎn)生的另外節(jié)點進(jìn)行合并。若節(jié)點內(nèi)的數(shù)據(jù)數(shù)量小于最大預(yù)定值,并大于最小預(yù)定值,則該節(jié)點為葉子末端節(jié)點。采用以上規(guī)則進(jìn)行剪枝,剪枝的過程中去掉不滿足結(jié)果的數(shù)據(jù),提高檢索效率。 在整個查詢過程中用戶只進(jìn)行一次操作,將數(shù)據(jù)聚類、加密的數(shù)據(jù)以及將加密用的公鑰發(fā)送甲。甲服務(wù)器上存儲的是非結(jié)構(gòu)化加密數(shù)據(jù),可以得知甲服務(wù)器上的數(shù)據(jù)無法被解析,即使知道查詢數(shù)據(jù)相對最短距離時也無法獲得密鑰,達(dá)到安全保護(hù)的目的。乙服務(wù)器作用將數(shù)據(jù)解密,解密后的數(shù)據(jù)是經(jīng)過甲處理過的數(shù)據(jù),這些數(shù)據(jù)在解密后在其原有數(shù)據(jù)的基礎(chǔ)上都加入了隨機(jī)值,這樣乙即使擁有隨機(jī)值,但也無法還原原始數(shù)據(jù)值,從而使原數(shù)據(jù)得到保護(hù)。甲只需要把處理方式發(fā)送給用戶(什么形式的數(shù)據(jù)),隨機(jī)生成的數(shù)據(jù)以及原始真實數(shù)據(jù)是如何加入隨機(jī)值的等。用戶在收到這些信息以后,就可以確定哪些數(shù)據(jù)是符合要求,以及下一步如何還原出真實數(shù)據(jù),乙在最后解密距離是甲加入擾動值以后的距離,這樣可以減少乙接觸到關(guān)于數(shù)據(jù)間距離的信息。 2.3 安全性能分析 通過對基于線性的同態(tài)加密算法進(jìn)行實驗分析。通過對比RSA/DSA密鑰試驗效果,在保證安全性的同時,提高了同態(tài)加密方法的計算效率如表1所示。 3 結(jié)語 本文基于電網(wǎng)環(huán)境下提出智能電網(wǎng)非結(jié)構(gòu)化數(shù)據(jù)安全技術(shù)方案。首先,先按照多層聚類SVM的方法對要數(shù)據(jù)進(jìn)行聚類,接著對關(guān)鍵字和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行加密,加密算法使用改進(jìn)的線性加密算法,保證了數(shù)據(jù)的安全性,利用k近鄰算算法實現(xiàn)檢索效率的提高。本文的研究只是對密文檢索做出了初步嘗試,仍有許多問題有待改進(jìn)。 參考文獻(xiàn) [1] 張春艷,倪世宏,張鵬,查翔.基于多層聚類的多分類SVM快速學(xué)習(xí)方法[J].計算機(jī)工程與設(shè)計,2017(2):522-527. [2] 馬力.實基于云計算的智能電網(wǎng)數(shù)據(jù)存儲安全研究[D].華北電力大學(xué),2016. [3] 辛立杰.加密數(shù)據(jù)的k近鄰查詢算法研究[D].哈爾濱工程大學(xué),2016. [4] 張克君,張國亮,姜琛,楊云松.云環(huán)境下基于可搜索加密技術(shù)的密文全文檢索研究[J].計算機(jī)應(yīng)用與軟件,2017(4):35-41. [5] 王全福,宋文愛,楊順民.云環(huán)境中數(shù)據(jù)安全的同態(tài)加密方法[J].計算機(jī)工程與設(shè)計,2017(1):42-46.