孫 帆 李曉光 張 勇 許廣虎 謝海疆
(1.國網(wǎng)新疆電力公司電力科學(xué)研究院設(shè)備狀態(tài)評價中心 烏魯木齊 830011)(2.北京恒泰實達科技股份有限公司南京研發(fā)中心 北京 100094)
云存儲的高效存儲是智能電網(wǎng)中多屬性數(shù)據(jù)處理的重要內(nèi)容[1]。智能電網(wǎng)中多屬性數(shù)據(jù)復(fù)雜多變,且數(shù)據(jù)隨時間處于動態(tài)變化中,數(shù)值差異很大[2]?;趥鹘y(tǒng)的云存儲技術(shù)已經(jīng)無法滿足日益增長的海量電網(wǎng)數(shù)據(jù)的客觀現(xiàn)實需求,并行優(yōu)化的數(shù)據(jù)處理模型逐漸成為未來數(shù)據(jù)挖掘存儲的發(fā)展方向[3]?,F(xiàn)有的數(shù)據(jù)并行優(yōu)化模式主要分為三種:多核并行[4]、異步并行[5]和劃分并行[6]。其中,常見的多核并行模式以終端硬件角度為立足點,僅通過增加處理器個數(shù)提升數(shù)據(jù)運行效率;異步并行主要針對異構(gòu)數(shù)據(jù)類型采用分布式計算方式提高計算速度;而劃分并行則以數(shù)據(jù)屬性特征為出發(fā)點,依據(jù)數(shù)據(jù)類型通過定義劃分準則分步進行數(shù)據(jù)的運算存儲。針對智能電網(wǎng)中同一問題的不同屬性數(shù)據(jù)類型,采用劃分并行的優(yōu)化處理方式不僅可以減少硬件成本的花費,同時又能減少云存儲的時間開銷。
本研究將在挑戰(zhàn)-響應(yīng)框架的基礎(chǔ)上對智能電網(wǎng)云計算存儲進行改進,首先采用數(shù)據(jù)的分片結(jié)構(gòu)來減少數(shù)據(jù)標識的數(shù)量,同時進行分塊處理計算得到哈希值和數(shù)據(jù)塊標識。其次構(gòu)建五個算法完成挑戰(zhàn)數(shù)據(jù)塊的完整性。最后設(shè)計相應(yīng)的Map和Re?duce函數(shù)實現(xiàn)數(shù)據(jù)標識產(chǎn)生算法的并行化,通過計算哈希值和標識作為輸出結(jié)果存儲于HBase云端數(shù)據(jù)庫。
現(xiàn)如今,一個云存儲的數(shù)據(jù)完整性驗證方案是建立在挑戰(zhàn)-響應(yīng)的方法來證明的數(shù)據(jù)占有模型方法[7],普遍的遠程云存儲的數(shù)據(jù)完整性驗證方案的模型圖就是采用該方案,如圖1所示。
圖1 遠程云存儲數(shù)據(jù)完整性驗證方案的模型架構(gòu)圖
基于挑戰(zhàn)—響應(yīng)的方案中共包括三大實體:
1)DO(Data Ower,數(shù)據(jù)源頭),在云存儲中擁有大量的數(shù)據(jù);
2)CSP(Cloud Service Provider,云服務(wù)供應(yīng)商),對于云存儲服務(wù)的用戶,存儲自身的數(shù)據(jù),可以提供訪問用戶的數(shù)據(jù)限制;
3)VS(Third-party Auditor,第三方驗證者),受DO委托有權(quán)并有能力對遠程云存儲中的數(shù)據(jù)進行完整性驗證。
驗證流程為假設(shè)VS是可靠的和獨立的,它能夠進行隨機抽樣的數(shù)據(jù)完整性驗證被DO授權(quán),并把結(jié)果反饋給DO[8]。
根據(jù)圖1所提出的模型,數(shù)據(jù)完整性驗證的大概流程為:
Step1:DO提出將數(shù)據(jù)存于云存儲,隨機生成公鑰和私鑰對數(shù)據(jù)的識別進行計算。
Step2:CSP承擔DO要存儲的數(shù)據(jù)及數(shù)據(jù)標識,用數(shù)據(jù)塊的形式將數(shù)據(jù)存儲。
Step3:VS存儲接受的數(shù)據(jù),DO把數(shù)據(jù)基本信息及產(chǎn)生的公鑰發(fā)送給VS。
Step4:根據(jù)數(shù)據(jù)的基本信息VS周期性地向CSP發(fā)起驗證并挑戰(zhàn)。
Step5:CSP把挑戰(zhàn)的證據(jù)以響應(yīng)的形式回饋給VS。
Step6:DO接受VS驗證數(shù)據(jù)的完整性發(fā)送出的結(jié)果。
通過對上述方案的分析,在智能電網(wǎng)環(huán)境下的應(yīng)用會有幾個方面限制的特例:
1)DO要存儲的數(shù)據(jù)云服務(wù)供應(yīng)商前進行數(shù)據(jù)標識計算,當數(shù)據(jù)量過大,DO會超負荷承擔計算和存儲的工作量,此時計算數(shù)據(jù)標識的任務(wù)應(yīng)該被轉(zhuǎn)移。
2)VS的安裝和部署的環(huán)境不明確,缺乏安全性和可信性的有效保障。此外,上述方案對VS的需求大,VS的計算和存儲工作量也會隨著數(shù)據(jù)量的增長而凸顯變化。
3)上述的方案未利用云計算的優(yōu)勢來提高驗證的效率,只是針對云存儲中的數(shù)據(jù)進行完整性驗證。然而智能電網(wǎng)利用云計算進行有效的數(shù)據(jù)處理和存儲是發(fā)展的趨勢,所以驗證方案的效率不能判斷是否能在智能電網(wǎng)環(huán)境下應(yīng)用的關(guān)鍵要素。
本文采用數(shù)據(jù)的分片結(jié)構(gòu)來減少數(shù)據(jù)標識的數(shù)量,如圖2所示為數(shù)據(jù)分片結(jié)構(gòu)詳解圖。首先,將文件M拆分為n個大小相同的數(shù)據(jù)塊{m1,m2,…,mn}再將每一個數(shù)據(jù)塊拆分為s個數(shù)據(jù)片 {mi,1,mi,2,…,mi,s} 。 通 過 安 全 參 數(shù) a={a1,a2,…,as}產(chǎn)生數(shù)據(jù)分片安全參數(shù) u={u1,u2,…,us},對于每一個數(shù)據(jù)塊mi計算得到哈希值hashi,并產(chǎn)生數(shù)據(jù)塊標識tagi,最后產(chǎn)生文件M的哈希值集合和數(shù)據(jù)標識集合H。
圖2 數(shù)據(jù)分片結(jié)構(gòu)圖
提出的數(shù)據(jù)完整性驗證方案由以下五個算法構(gòu)成。在進行本方案的算法設(shè)計前,首先定義算法中用到的符號。算法的符號定義如表1所示。
表1 算法符號
先采用數(shù)據(jù)分片結(jié)構(gòu)將文件M拆分為n個數(shù)據(jù)塊,每一個數(shù)據(jù)塊被分為s個數(shù)據(jù)片。G1、G2和Gr分別為階數(shù)為 p的乘法循環(huán)群,g1、g2分別是G1和G2的生成元,雙線性映射為e:G1×G2→Gr。函數(shù) h:{0,1}→G1為哈希值防止碰撞[9]。它將文件摘要信息Minf(由數(shù)據(jù)的某些屬性構(gòu)成)映射為G1中一點,利用上述的設(shè)計方案可以構(gòu)建五個算法的具體設(shè)計:
算法一:KeyGen(1k)→(pk,sk,skh):輸入 k(參數(shù)),隨機選擇sk,skh∈Zp作為標識私鑰和哈希私鑰[10],通過計算 pk=∈G2作為標識私鑰;
算法二:TagGen(M,sk,skh)→Ω :選擇 s個隨機值 aj∈Zp,a={a1,a2,…,an},計算 uj=∈G1,得到u={uj}j∈[1,s],利用 skh得到數(shù)據(jù)塊摘要信息的哈希值[11]:
其中Wi=Fname-i,代表云存儲系統(tǒng)中標記不同文件的文件名,得到 H={hashi}i∈[1,n]。最后計算數(shù)據(jù)標識[12]:
根據(jù)上式得到數(shù)據(jù)標識集 Φ ={tagi}i∈[1,n]。將P=(H,Φ,{ }miji∈[1,n],j∈[1,s],sk,skh,u)存儲在 CSP 端,將 Minf={Fname,n,pk,g2}發(fā)送給 VS存儲,輸出Ω =(Minfo,P)。
算法三:Challenge(Minfo)→C:驗證挑戰(zhàn)階段,VS根據(jù)文件摘要Minfo隨機選取挑戰(zhàn)集Q,隨機產(chǎn)生Q個安全參數(shù)xi∈,將挑戰(zhàn)集 C=({i,xi}i∈Q)發(fā)給CSP。
算法四:Proof(M,C,Φ,H)→Ψ :CSP接收到VS發(fā)來的挑戰(zhàn)c后,隨機選擇安全參數(shù)r∈和s個 λj∈,根據(jù)C計算標識證據(jù)TT,并利用隨機安全參數(shù)來保護數(shù)據(jù)片的線性組合,得到MMj,通過計算數(shù)據(jù)和挑戰(zhàn)數(shù)據(jù)塊分別得到證據(jù)PP和哈希值證據(jù)HH,并得到隨機安全參數(shù)確認證據(jù)UU[13]:
最后將驗證證據(jù)Ψ=(TT,PP,HH,UU)作為應(yīng)答發(fā)送給VS。
算法五:Verify(Ψ,pk)→0/1:VS 接收到應(yīng)答Ψ,并通過基于雙線性配對的等式來驗證被挑戰(zhàn)數(shù)據(jù)塊的完整性[14],若配對成功輸出為1,否則輸出為0:
在分析了智能電網(wǎng)環(huán)境下的數(shù)據(jù)特點及存儲要求,云服務(wù)器CSP端接收了已有方案的數(shù)據(jù)標識的計算任務(wù),解決標識產(chǎn)生階段過重的計算開銷的漏洞是利用已經(jīng)擁有的方案云計算的優(yōu)勢[15],巧妙地避免了數(shù)據(jù)標識產(chǎn)生完整性驗證算法的瓶頸擴大了其效率。
通過設(shè)計相應(yīng)的Map和Reduce函數(shù)實現(xiàn)了數(shù)據(jù)標識產(chǎn)生算法的并行化,首先在數(shù)據(jù)標識階段就應(yīng)用了MapReduce的編程框架,在taggen階段也采用了MapReduce分布式計算數(shù)據(jù)標識,下面列出了具體算法的步驟:
第一步:分塊文件數(shù)據(jù)M ,將分塊后的數(shù)據(jù)塊存放在分布式文件系統(tǒng)HDFS中,把每一數(shù)據(jù)塊作為Map函數(shù)的輸入。
第二步:Map函數(shù)中將數(shù)據(jù)塊進行分片,輸出數(shù)據(jù)片并存于HBase數(shù)據(jù)庫中[16]。
第三步:Map函數(shù)的輸出作為Reduce函數(shù)的輸入,在 Reduce函數(shù)中通過式(1)和式(2)分別計算哈希值hash和標識tag,作為輸出結(jié)果存儲于HBase數(shù)據(jù)庫中。
為了體現(xiàn)該算法驗證的計算效率,實現(xiàn)數(shù)據(jù)完整性測試使用了Java語言編程,并調(diào)用JPBC庫實現(xiàn)雙線性配對操作,使用SHA-1算法作為哈希函數(shù)映射出的哈希值,根據(jù)來自O(shè)racle數(shù)據(jù)庫的實驗數(shù)據(jù)所需要的電功率數(shù)據(jù)到HDFS,實現(xiàn)智能電網(wǎng)數(shù)據(jù)集成到處理數(shù)據(jù)完整性驗證所需的步驟。然后數(shù)據(jù)生成算法計算一起存儲在HBase的數(shù)據(jù)庫的數(shù)據(jù)標識,數(shù)據(jù)和識別信息的識別。
使用雙線性配對過程中,選用的橢圓曲線是域大小為159bits的MNT曲線,安全參數(shù)長度:|p|=160bits,其嵌入度為6。所選用的橢圓曲線安全參數(shù)|p|=160bits被實驗中數(shù)據(jù)分片的大小控制,為20字節(jié)。因此數(shù)據(jù)分片的大小是確定的,分片數(shù)s與分片大小相乘得出數(shù)據(jù)分塊大小,數(shù)據(jù)總大小除以數(shù)據(jù)分塊大小即為數(shù)據(jù)分塊數(shù)n,試驗過程將選取大小從1M到64M的數(shù)據(jù)進行對比。
現(xiàn)進行數(shù)據(jù)標識產(chǎn)生時的TagGen階段的計算開銷測試。主要測試數(shù)據(jù)從被提取后開始計算標識到存于HBase后的時間效率。規(guī)定所有大小的數(shù)據(jù)的分片數(shù)相同,都為400,即數(shù)據(jù)塊大小為20B*400=8KB。相同分塊大小下的單機情況和并行化情況的數(shù)據(jù)標識產(chǎn)生時間的對比實驗結(jié)果如圖3所示。
圖3 固定分塊帶下標識產(chǎn)生時間對比圖
由圖3可看出,當數(shù)據(jù)分塊大小一定時,在單機情況下TagGen階段的計算開銷隨著數(shù)據(jù)大小的增大而有相同倍數(shù)的增大。而在Hadoop并行化情況下,TagGen階段的計算開銷隨著數(shù)據(jù)大小的增大卻增長緩慢,當數(shù)據(jù)大小達到64M時,計算開銷依然很小。
通過分析,不僅在TagGen計算階段開銷時受數(shù)據(jù)分塊數(shù)大小的影響,還受到數(shù)據(jù)分片數(shù)s大小的影響,所以實驗選取2M的文件進行不同分片數(shù)的劃分,來驗證TagGen階段的計算開銷與s和n大小的關(guān)系,結(jié)果如圖4所示。
由圖4所示,對于大小一定的數(shù)據(jù),分片數(shù)大小的選取不僅影響了數(shù)據(jù)分塊數(shù),也限制標識產(chǎn)生的時間。為了提高數(shù)據(jù)標識產(chǎn)生階段的計算效率,對大小不同的數(shù)據(jù)進行不同數(shù)目的數(shù)據(jù)分類是有必要的,Hadoop并行化的結(jié)果如圖5所示。
圖4 固定數(shù)據(jù)大小,不同分塊大小情況下標識產(chǎn)生時間對比圖
圖5 固定分塊大小和變化分塊大小情況下標識產(chǎn)生時間對比
由圖5可見,不同數(shù)據(jù)大小進行固定大小分塊和變化大小分塊情況下標識產(chǎn)生時間對比,可見選取合適的s值使標識產(chǎn)生的效率也得到了提高。
進行數(shù)據(jù)完整性驗證過程的挑戰(zhàn)-響應(yīng)和驗證等階段的計算時間測試。數(shù)據(jù)的分塊、分片情況是由標識產(chǎn)生階段時決定的,所以在進行數(shù)據(jù)完整性驗證時也按照分塊情況進行挑戰(zhàn)-響應(yīng)。KeyGen階段所用時間是固定的,約為18.86ms左右,因為VS端發(fā)起的挑戰(zhàn)是根據(jù)一定的抽查比例進行的,試驗中選取抽查比例為40%的情況為例進行實驗,數(shù)據(jù)完整性驗證過程中各階段所用時間結(jié)果如表2所示。
表2 各階段數(shù)據(jù)完整性的時間開銷測試
由表2可見,挑戰(zhàn)階段的計算開銷隨著挑戰(zhàn)數(shù)據(jù)塊的增多而相應(yīng)的增大,但是整體增長幅度很?。豁憫?yīng)階段的計算開銷是由n和s之和決定的,隨著數(shù)據(jù)大小的變化也是采用不同的數(shù)據(jù)分片數(shù),所以此階段的計算開銷也成小幅度的增長;Verify階段的計算開銷是固定的,驗證方驗證時間,約為62.14ms左右,計算開銷非常小。
本研究以挑戰(zhàn)-響應(yīng)框架為基礎(chǔ)開發(fā)了一套智能電網(wǎng)條件下的云計算存儲并行優(yōu)化模型,采用數(shù)據(jù)分片和數(shù)據(jù)分塊的方式對海量電網(wǎng)數(shù)據(jù)進行劃分,減少了數(shù)據(jù)標識的數(shù)量并計算得到哈希值和數(shù)據(jù)塊標識。通過分別構(gòu)建KeyGen、TagGen、Chal?lenge、Proof和Verify五個算法完成挑戰(zhàn)數(shù)據(jù)塊的完整性,設(shè)計相應(yīng)的Map和Reduce函數(shù)實現(xiàn)數(shù)據(jù)標識產(chǎn)生算法的并行化,通過計算哈希值和標識作為輸出結(jié)果存儲于HBase云端數(shù)據(jù)庫。實現(xiàn)了劃分式的數(shù)據(jù)優(yōu)化并行云存儲處理,并且通過實驗分析結(jié)果說明了挑戰(zhàn)階段的計算開銷隨著挑戰(zhàn)數(shù)據(jù)塊的增多而相應(yīng)的增大,但是整體增長幅度很??;響應(yīng)階段的計算開銷是由數(shù)據(jù)塊數(shù)和數(shù)據(jù)片數(shù)之和決定的。因此,本研究提出的針對智能電網(wǎng)數(shù)據(jù)云存儲的并行優(yōu)化方式具有參考性意義。
[1]張少敏,李曉強,王保義.基于Hadoop的智能電網(wǎng)數(shù)據(jù)安全存儲設(shè)計[J].電力系統(tǒng)保護與控制,2013(14):136-140.ZHANG Shaomin,LI Xiaoqiang,WANG Baoyi.Design of Secure Data Storage for Smart Grid Based on Hadoop[J].Power System Protection and Control,2013(14):136-140.
[2]曹軍威,萬宇鑫,涂國煜.智能電網(wǎng)信息系統(tǒng)體系結(jié)構(gòu)研究[J].計算機學(xué)報,2013,36(22):45-45.CAO Junwei,WAN Yuxin,TU Guoyu.Research on Intelli?gent Power Grid Information System Architecture[J].Jour?nal of Computer Science,2013,36(22):45-45.
[3]劇樹春,李剛.數(shù)據(jù)挖掘方法在智能電網(wǎng)中的應(yīng)用[J].電子世界,2013(20):52-52.JU Shuchun,LI Gang.Application of Data Mining Method in Smart Grid[J].Electronic world,2013(20):52-52.
[4]袁琪,楊康,周建江.大點數(shù)FFT算法C6678多核DSP的并行實現(xiàn)[J].電子測量技術(shù),2015,38(2):74-80.YUAN Qi,YANG Kang.Parallel big point FFT algorithm C6678 multicore DSP implementation[J].Electronic mea?surement technology.2015,38(2):74-80.
[5]楊海濤,張傳斌,阮鎮(zhèn)江.大規(guī)模云同步歸集數(shù)據(jù)系統(tǒng)的異步并行優(yōu)化[J].計算機工程與應(yīng)用,2016(10):12-17.YANG Haibo,ZHANG Chuanbing,RUAN Zhenjiang.Asynchronous Parallel Optimization of Large Scale Cloud Synchronization Data System[J].Computer Engineering and Applications.2016(10):12-17.
[6]顧乃杰,趙增,呂亞飛.基于多GPU的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法[J].小型微型計算機系統(tǒng),2015,36(5):1042-1046.GU Naijie,ZHAO Zeng,LV Yafei.Depth Neural Network Training Algorithm Based on Multi-GPU[J].Small micro?computer system,2015,36(5):1042-1046.
[7]譚霜,賈焰,韓偉紅.云存儲中的數(shù)據(jù)完整性證明研究及進展[J].計算機學(xué)報,2015,38(1):164-177.TAN Shuang,JIA Yan,HAN Weihong.Research and De?velopment of Data Integrity in Cloud Storage[J].Journal of Computer Science,2015,38(1):164-177.
[8]李琳,錢進,張永新.軟件即服務(wù)模式下租戶多副本數(shù)據(jù)存儲完整性問題研究[J].南京大學(xué)學(xué)報(自然科學(xué)版),2016,52(2):324-334.LI Lin,QIAN Jin,ZHANG Yongxin.Research on Multicopy Data Storage Integrity of Tenants in Software-based Service Mode[J].Journal of Nanjing University(Natural Science Edition),2016,52(2):324-334.
[9]池子文,張豐,杜震洪.云環(huán)境下基于預(yù)分片的遙感數(shù)據(jù)并行重采樣方法[J].上海交通大學(xué)學(xué)報,2014,48(11):1627-1632.CHI Ziwen,ZHANG Feng,DU Zhenhong.Parallel Resa?mpling of Remote Sensing Data Based on Pre-slicing in Cloud Environment[J].Journal of Shanghai Jiaotong Uni?versity,2014,48(11):1627-1632.
[10]袁勇,王飛躍.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J].自動化學(xué)報,2016,42(4):481-494.YUAN Yong,WANG Feiyue.Development Status and Prospect of Block Chain Technology[J].Journal of Auto?mation,2016,42(4):481-494.
[11]王麗娜,鄧入弋,任正偉.基于網(wǎng)絡(luò)編碼的遠程數(shù)據(jù)驗證方法[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2014(11):17-22.WANG Lina,DENG Ruge,REN Zhengwei.Remote Data Verification Method Based on Network Coding[J].Jour?nal of Huazhong University of Science and Technology(Natural Science Edition),2014(11):17-22.
[12]陳曉,張龍軍,王謙.集群重復(fù)數(shù)據(jù)刪除策略的研究[J].電子制作,2016(4):40-41.CHEN Xiao,ZHANG Longjun,WANG Qian.Research on Cluster Deduplication Strategy[J].Electronic produc?tion,2016(4):40-41.
[13]李經(jīng)緯,賈春福,劉哲理.可搜索加密技術(shù)研究綜述[J].軟件學(xué)報,2015,26(1):109-128.LI Jingwei,JIA Chunfu,LIU Zheli.A Review of Search?able Encryption Technology[J].Journal of Software,2015,26(1):109-128.
[14]周海,吳麗珍,劉鵬輝.一種基于雙線性配對的移動通信認證組密鑰協(xié)商方案[J].計算機應(yīng)用與軟件.2012,29(4):151-155.ZHOU Hai,WU Lizhen,LIU Penghui.A Key Agreement for Mobile Communication Authentication Group Based on Bilinear Pairing[J].Computer Applications and Soft?ware,2012,29(4):151-155.
[15]張浩,趙磊,馮博.CACDP:適用于云存儲動態(tài)策略的密文訪問控制方法[J].計算機研究與發(fā)展,2014,51(7):1424-1435.ZHANG Hao,ZHAO Lei,F(xiàn)ENG Bo.CACDP:Crypto?graphic access control method for cloud storage dynamic policies[J].Computer Research and Development,2014,51(7):1424-1435.
[16]周相兵,馬洪江,苗放.云計算環(huán)境下的一種基于Hbase的ORM設(shè)計實現(xiàn)[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2013,38(8):130-135.ZHOU Xiangbing,MA Hongjiang,MIAO Fang.Design and Implementation of ORM Based on Hbase in Cloud Computing Environment[J].Journal of Southwest China Normal University(Natural Science Edition),2013,38(8):130-135.