谷保平 馬建紅
1(鄭州信息科技職業(yè)學院信息工程學院 河南 鄭州 450046) 2(鄭州大學軟件學院 河南 鄭州 450002)
多維大數(shù)據(jù)聚類期間的數(shù)據(jù)安全性是安全數(shù)據(jù)聚類的重要方面之一。通過編碼方案進行不同類型的安全攻擊,使用各種軟件以及各種非法病毒和蠕蟲是數(shù)據(jù)丟失的主要原因。因此,無論是從數(shù)據(jù)存儲還是數(shù)據(jù)利用的角度來看,數(shù)據(jù)安全都是需要解決的問題。
國內外學者圍繞非結構化大數(shù)據(jù)安全加密的問題展開了深入的研究。文獻[1-2]利用k均值算法對大數(shù)據(jù)進行聚類,可以方便地挖掘有用信息,但由于算法可擴展性的限制,提出的有序聚類和期望最大方法不能直接用于大數(shù)據(jù)分類。文獻[3]在文獻[2]的基礎上,使用無監(jiān)督聚類法和模糊概率模型擴展了大數(shù)據(jù)聚類方法的應用,然而,當數(shù)據(jù)大小超過實際存儲的大小時,所采用的算法在計算時間方面的擴展性很差,容易受硬件條件的限制。文獻[4]提出通過自然語言處理對非結構化和結構化大數(shù)據(jù)進行情感分析,使用MapReduce技術處理非結構化數(shù)據(jù),并通過協(xié)同過濾自動預測用戶的品味,但該方法不能防止數(shù)據(jù)檢索期間的數(shù)據(jù)丟失。文獻[5]利用Trillion Particle Scale聚類技術擴展了新代碼生成的最大數(shù)據(jù)集,有助于推斷等離子體物理中粒子的加速,但其錯誤率較高,且作者沒有提出任何有效的錯誤控制技術。為了減少數(shù)據(jù)開銷以及多維大數(shù)據(jù)傳輸期間的安全開銷,文獻[6]采用BIRCH聚類算法對閾值進行自動估計,根據(jù)數(shù)據(jù)計算BIRCH的最佳閾值參數(shù),使得大數(shù)據(jù)可以進行適當?shù)木垲?,但該方法依然犧牲了?shù)據(jù)處理時間。文獻[7]使用HDFS和MapReduce為Hadoop集群提出了一種內存利用技術,減少了Mappers的不同內存使用量以及Hadoop集群上數(shù)據(jù)存儲和處理的減速器。然而,該技術不適用于復雜的時間序列數(shù)據(jù),并且該算法的復雜性相對較高,這對于復雜的大數(shù)據(jù)應用來說并不完美。文獻[8]用特征化和子集化技術來處理大數(shù)據(jù)工作負載,使用從PCA獲得的主要模塊來應用聚類技術進而研究大數(shù)據(jù)工作負載之間的相似性,提高了大數(shù)據(jù)處理的兼容性,但該技術不支持大量基準數(shù)據(jù)。除此之外,該技術不適合用于聚類它們的多維大數(shù)據(jù)文件。文獻[9]提出了一個共同目標框架Petuum技術,通過感知機器學習程序,加速了迭代收斂的速度,可以分析大規(guī)模機器學習中的數(shù)據(jù)和模型。然而,就功能集而言,與Hadoop和Spark相比,Petuum技術仍然相對不發(fā)達。文獻[10]采用SkeVa算法對數(shù)據(jù)進行k均值聚類,減少了大數(shù)據(jù)的維數(shù)和特征向量,但它不支持MapReduce框架,也不適合大數(shù)據(jù)文件的聚類,并且在聚類過程中可能會發(fā)生數(shù)據(jù)丟失[11]。
因此,為了減小非結構化大數(shù)據(jù)在組合聚類過程中的時間開銷和防止大數(shù)據(jù)在傳輸過程中出現(xiàn)數(shù)據(jù)丟失以及安全攻擊,提出了可撤銷屬性加密結合快速密度聚類算法的非結構化大數(shù)據(jù)安全存儲方法,主要創(chuàng)新點總結如下:
(1) 本文算法采用輸入非結構化文件,利用可撤銷屬性方法為非結構化大數(shù)據(jù)提供安全的存儲結構,通過區(qū)分安全攻擊和傳輸錯誤來防止大數(shù)據(jù)的誤傳和避免安全攻擊,提高了數(shù)據(jù)傳輸和存儲的安全性。
(2) 本文算法利用霍夫曼壓縮技術對數(shù)據(jù)進行壓縮,降低了數(shù)據(jù)傳輸、存儲和聚類期間的開銷。
(3) 由于傳輸錯誤、各種安全攻擊、時間開銷,以及空間開銷而容易發(fā)生數(shù)據(jù)丟失現(xiàn)象,本文算法通過錯誤控制技術為潛在丟失的數(shù)據(jù)提供了備份系統(tǒng),可有效防止數(shù)據(jù)丟失。
(4) 提出一種新的快速密度聚類技術,可有效處理多維大數(shù)據(jù)文件。
實驗結果表明,相比于其他幾種現(xiàn)有算法,本文算法在處理非結構化大數(shù)據(jù)問題方面具有更高的聚類效率、更低的開銷和更好的兼容性。
本文方法有四個部分。第一部分采用輸入非結構化文件,如文本文件,利用可撤銷屬性方法為非結構化大數(shù)據(jù)進行加密,輸入數(shù)據(jù)可以是任何類型,例如結構化[12]、非結構化或半結構化[13]。因此,這種大輸入數(shù)據(jù)的類別也可能是不確定的。第二部分結合了霍夫曼壓縮技術來控制實際數(shù)據(jù)以及該技術的安全開銷,控制數(shù)據(jù)傳輸和存儲或集群期間的數(shù)據(jù)錯誤。第三部分通過結合獨特的錯誤控制技術作為集成技術,提供用于意外數(shù)據(jù)丟失的備份系統(tǒng)。第四部分中,在實施錯誤控制技術之后,應用了高效的快速密度聚類算法。本文方法執(zhí)行過程如圖1所示。
圖1 本文方法執(zhí)行過程
根據(jù)可撤銷屬性加密技術的工作原理[14],輸入數(shù)據(jù)大小為8位。 為了執(zhí)行可撤銷屬性加密技術,每個單個字符取自輸入文本文件,并在每次單次迭代期間通過其ASCII值轉換為8位字符串。在遍歷輸入文本的所有字符后,從輸入文本生成m個密文,并將其轉換為4位密文[15]。從輸入文本的每個原始字符生成每個4位密文CodeTextm,每個8位秘密密鑰Mysm和相應的4位密碼文本相互連接,通過式(1)生成12位加密字符串Strm。
(1)
將所有連接的加密字符串連接成單個隱含字符串Ste,最后進入的單個隱含字符串為:
Stem=Stem×(10)l(Strm)+Strm
(2)
由于在加密期間添加了額外的位,增加了數(shù)據(jù)開銷,因此,為了減少數(shù)據(jù)開銷,將連接的單個隱含字符串Ste作為輸入字符串來執(zhí)行霍夫曼壓縮[16]。
通過將輸入的隱含字符串Ste分成多個8位字符串來啟動壓縮操作。然后將所有8位字符串轉換為相應的ASCII字符并將它們存儲在數(shù)組中?;舴蚵鼧渫ㄟ^以下算法進行創(chuàng)建。
算法1霍夫曼樹
1.Ch←n個字符組;
//字符k的頻率由F|k|定義
2.Seq←F的最小優(yōu)先隊列;
//Seq是一個列表,按頻率升序排列
3.n=Ch;
//導入所有Ch到最小優(yōu)先隊列(Seq)
4.Seq=Ch;
5. 對于(i=1 ton-1);
//創(chuàng)建一個新節(jié)點z到n-1
6. 分配新節(jié)點z;
//z的左子結點是x,右子節(jié)點是y
//左子結點z是最不常見的彈出形式的ChSeq
7.left[z]=x=Extract_Min(Seq);
//從charSeq中彈出另外一個字符來創(chuàng)建新的右子節(jié)點
8.left[z]=y=Extract_Min(Seq);
//子節(jié)點的頻率總和
9.F(z)=F(x)+F(y);
//將新創(chuàng)建的對象導入最小優(yōu)先級隊列
10. 導入(Seq,z);
11. 結束;
//返回到樹的根源
12. 返回Extract_Min(Seq)
算法1中,步驟1和步驟2聲明在制作霍夫曼樹時所需的變量。步驟3至步驟4根據(jù)頻率按升序創(chuàng)建非冗余排序字符列表,消除冗余字符。步驟5至步驟11收集每個字符的頻率,并根據(jù)頻率分布形成霍夫曼樹。根據(jù)頻率,霍夫曼樹的左右子集已被決定并放置在新生成的霍夫曼樹中。步驟12重復相同的過程以完成所需的霍夫曼樹的形成。在創(chuàng)建壓縮代碼之后,遍歷了完整的字符列表Ch,并且所有相應的字符已被壓縮的代碼替換。之后,壓縮代碼在式(2)的幫助下連接成單個字符串Temp。以同樣的方式,將頻率表作為字符串Sta和短路字符表在式(2)的幫助下連接成字符串Ch′。然后,通過為每個分隔符連接100位二進制分隔符來創(chuàng)建一對分隔符Fen和Fen′。在下一步中,將Temp、Ch′、Fen和Fen′連接成單個最終壓縮字符串CStr。通過在最終壓縮字符串CStr中添加壓縮代碼字符串Sta來初始化連接操作,如下:
CStr=CStr×(10)l(Temp)+Temp
(3)
在第二階段,第一個分隔符Fen已添加最終壓縮字符串CStr,如下:
CStr=CStr×(10)l(Fen)+Fen
(4)
在將第一個分隔符Fen與最終壓縮字符串CStr連接后,頻率字符串Fen已被添加,如下:
CStr=CStr×(10)l(Fen)+Fen
(5)
在添加完頻率字符串Fen后,第二個分隔符Fen′添加了最終壓縮字符串CStr:
CStr=CStr×(10)l(Fen′)+Fen′
(6)
最后的連接字符串Char′在最后階段添加了最終壓縮字符串CStr以獲得競爭壓縮字符串:
CStr=CStr×(10)l(Ch′)+Ch′
(7)
這里添加兩個分隔符Fen和Fen′的目的是在最終壓縮字符串CStr中的壓縮代碼Temp、字符和頻率字符串之間建立空格?;谶@兩個分隔符,壓縮代碼、字符和頻率字符串將在解壓縮操作期間分離。
將最終的壓縮字符串作為輸入,并將其分成8位字符串,以執(zhí)行建議的錯誤控制位生成以及合并操作。 所有新分離的8位字符串都存儲在字符串數(shù)組Ec中,并按照算法2進行操作。
算法2錯誤控制位生成和合并技術
1. 設置Ec中的元素總數(shù)量為n;
2.m1、n1、k1為整型變量,并且k1=0;
3. 聲明Ec′為字符數(shù)列,Xs為字符變量;
4. 運行每兩個Ec元素之間的異或操作并將它們以及最終錯誤控制數(shù)列Ec′中生成的Xr用字符串Xs儲存起來;
5. 當(intm1=0;m=m+2)時
Xs=″″;
Ec′[k1]=Ec[m1]
Ec′[k1+1]=Ec[k1+1]
6. 當(intn1=0;n1=m1+1)時
Xs=Ec[n1][m1]⊕Ec[m1+1][n1]
Ec′[k1+2]=Xs
7. 結束。
算法2中,步驟1到步驟3聲明變量、數(shù)組并初始化整數(shù)變量p。 因此,步驟4和步驟5在字符串數(shù)組Ec的每個雙連續(xù)元素之間執(zhí)行Xr運算,并將得到的Xr字符串存儲在字符串變量Xs上。同時,步驟5將每兩個連續(xù)元素存儲到最終的錯誤控制數(shù)組Ec′上。步驟6在連接每個雙輸入字符串后,將每個結果Xr用字符串Xs存儲在字符串數(shù)組Ec的第三位,且每個雙輸入字符串取自字符串數(shù)組Ec。所提出的錯誤控制技術可以解決每個單獨的比特。在任何情況下,如果任何比特被破壞,則可以通過相應比特之間的Xr操作來檢索該比特,取自其他兩個串,即得到的Xr串和第二個原始串。除此之外,如果任何原始字符串在任何意外情況下完全損壞或丟失,則可以通過在第二個原始字符串和結果Xr字符串之間執(zhí)行Xr操作來檢索整個字符串。此后,所提出的錯誤控制技術也可以為意外數(shù)據(jù)丟失提供備份系統(tǒng)。
本文提出一種快速聚類算法,用于處理和存儲加密數(shù)據(jù)。在檢索加密數(shù)據(jù)時,已經應用了低復雜搜索算法。通過算法3更精確地顯示所提出的多維聚類技術。
算法3快速聚類算法
輸入:聚類數(shù)量Num,數(shù)據(jù)集Ser,數(shù)據(jù)對象Opt,屬性集Att;Ser={Ser1,Ser2,…,Serm};Att={Att1,Att2,…,Attm};其中0≤Num,Opt<∞并且Num≤Opt。
輸出:一組聚類N。
1. 從原始數(shù)據(jù)組(Ser)中繪制多個子樣本(Ser1,Ser2,…,Serm);
2. 將每一組的中間點作為形心;
3. 計算每一組數(shù)據(jù)點和所有起始形心之間的距離;
4. 找到距離形心最近的點并且將其納入最近的聚類;
5. 選擇從聚類到形心的最小距離;
6. 將步驟1到步驟5應用到聚類Num的數(shù)據(jù)組;
7. 將兩個聚類合并為一個聚類;
8. 重新計算組合聚類的新的聚類中心直到聚類的數(shù)量縮減到Num。
算法3展示了所提出的快速聚類算法,并展示出了如何利用該算法處理輸入數(shù)據(jù)。使用連接的搜索關鍵字搜索加密文本[17],如果搜索失敗,則混合搜索技術需要申請搜索。在該預先搜索方法中,使用可撤銷屬性加密技術將搜索技術的關鍵值轉換為隱藏文本,然后執(zhí)行搜索。因此,所提出的快速密度聚類技術可以執(zhí)行不確定和非結構化以及多維大數(shù)據(jù)文件。
進行實驗的硬件配置包括:英特爾酷睿i5處理器、4 GB DDR3內存和2 TB大小的HDD;軟件包括:Ubuntu 12.4 LTS作為操作系統(tǒng),核心JAVA作為編程語言。將純文本(.txt)文件作為輸入數(shù)據(jù),將.WAV文件作為輸入音頻文件,生成stego音頻文件。輸入文件大小可能在50 GB到1 TB之間。所有實驗都是在無線環(huán)境中進行的。
2.2.1信息丟失(IL)
在群集和存儲期間,某些部分信息可能被修改或損壞或丟失。大多數(shù)情況下,這些信息無法在接收端檢索,即永久丟失,這種現(xiàn)象被稱為信息丟失。任何傳輸系統(tǒng)產生數(shù)據(jù)完整性的能力可以通過計算信息丟失的總量來測量。除了數(shù)據(jù)完整性之外,它還確保了對各種數(shù)據(jù)錯誤的穩(wěn)定性。信息丟失被公式化如下[18]:
(8)
通常在數(shù)據(jù)檢索期間,永久損壞或不可恢復的信息會被丟棄[19]。因此,如果在數(shù)據(jù)檢索期間發(fā)生信息丟失,則檢索到的文件大小必須小于原始文件。這就是為什么通過找到原始文件和檢索到的文件大小的差異來測量信息丟失的原因。因此,IL對于計算聚類過程中的數(shù)據(jù)丟失非常重要[20]。
2.2.2信噪比
信噪比是所需模擬或數(shù)字數(shù)據(jù)樣本相對于背景噪聲的幅度或長度方面的強度[21]。它主要是為了顯示產生對各種聲道噪聲的穩(wěn)定性的能力。任何誤差控制技術產生的信噪比(Signal Noise Ratio,SNR)都可以用分貝(dB)對數(shù)表示,并表示為:
(9)
式中:w(n)是原始輸入樣本長度;v(n)是輸出樣本文件的樣本長度。本文技術結合了獨特的錯誤檢查技術,以增強數(shù)據(jù)的穩(wěn)定性和機密性。如果樣本的Snr高,那么可以說樣本錯誤較少,如果任何樣本的Snr都很低,那么它就說明樣本是高度錯誤的。
2.2.3壓縮比
數(shù)據(jù)壓縮比,也稱為壓縮功率,用于量化數(shù)據(jù)壓縮算法產生的數(shù)據(jù)表示大小的減少。數(shù)據(jù)壓縮比類似于用于測量物質的物理壓縮的物理壓縮比。任何壓縮技術的壓縮比可以計算為:
(10)
通常,壓縮比表示減小任何壓縮技術的文件大小的能力。因此,如果任何壓縮技術產生高Cdr,那么該壓縮技術不能有效地減小輸入文件大小,反之亦然。
2.2.4通量
通常在計算系統(tǒng)中,每項工作都需要在指定的時間內完成。完成此類工作的時間要求隨計算系統(tǒng)的處理速度和工作的性質而變化。與數(shù)據(jù)傳輸系統(tǒng)相同,時間是一個重要因素; 整個數(shù)據(jù)需要在指定的時間內傳輸。因此,需要在時間上測量任何計算系統(tǒng)或傳輸系統(tǒng)的性能。通量是指在給定時間內完成的工作量,反映了某種技術的時間效率。任何技術產生的通量可以計算為:
(11)
通量是衡量任何安全數(shù)據(jù)傳輸系統(tǒng)的時間效率的重要參數(shù)。通量與文件大小成正比,與處理速度成反比。因此,如果任何計算系統(tǒng)在執(zhí)行某項工作期間產生高吞吐量,則表示該工作具有較高的時間效率,反之亦然。
2.2.5環(huán)路復雜度
任何技術的時間復雜度決定了它的時間效率。 如果任何技術的時間復雜度很高,則說明它的時間效率很低,反之亦然。在確定任何技術或算法的時間復雜度的各種方法中,環(huán)路復雜度的計算是其中之一。環(huán)路復雜度是源代碼復雜度測量,其與許多編碼錯誤相關聯(lián)。它是通過開發(fā)代碼的控制流圖來計算的,該代碼的測量是通過程序模塊的線性無關路徑的數(shù)量。 任何技術或算法的環(huán)路復雜度Cplx可以確定為:
Cplx=(Length-Node+(2×Pnum))
(12)
式中:Length表示控制流圖的各種邊;Node是節(jié)點數(shù);Pnum是圖的連通分量數(shù)。本文的集成模型的時間復雜度是通過計算其環(huán)路復雜度來得到的。如果任何技術的環(huán)路復雜度很高,則認為它是高度時間復雜的,反之亦然。通常,環(huán)路復雜度隨著環(huán)路復雜度的不同技術范圍而變化,表1對比了不同環(huán)路復雜度下的特性。
表1 環(huán)路復雜度的特性
2.3.1信息丟失的效率
通過測量導入文件產生的信噪比和信息損失百分比,可以確定由于各種類型的錯誤以及安全攻擊而在聚類期間保護信息丟失的本文方法的性能。如果任何安全系統(tǒng)產生更高的信噪比值,則所使用的安全系統(tǒng)被認為對數(shù)據(jù)錯誤和各種安全攻擊具有穩(wěn)定性。同時,如果任何安全系統(tǒng)提供較低百分比的信息丟失,則所使用的安全技術被認為有效地增強了數(shù)據(jù)完整性。此后,由集成技術提供的信息損失百分比和信噪比如圖2和圖3所示。
圖2 本文提出的合成技術的信息損失百分比
圖3 本文提出的錯誤控制技術的信噪比
實驗中默認數(shù)據(jù)大小變化范圍為100 TB到3 400 TB,將集成技術的性能與文獻[4-5,7,9]中的各種現(xiàn)有的聚類技術進行了比較,結果表明本文提出的聚類技術能明顯降低信息丟失的百分比。
如圖2所示,文獻[9]方法無論在小尺寸文件還是較大尺寸文件下都具有較高的信息丟失率,文獻[4-5,7]中的聚類技術對信息損失百分比控制大體相近,但都隨著數(shù)據(jù)包尺寸的增大而減小,而相對于本文方法仍然具有較高的信息丟失率;因此,從結果可以得出結論,與文獻[4-5,7,9]中的聚類技術相比,本文方法通過保護各種數(shù)據(jù)錯誤和安全攻擊來保護聚類期間的信息丟失更加有效。
此外誤控制技術的性能可以通過其控制各種數(shù)據(jù)錯誤的能力來檢查,這些數(shù)據(jù)錯誤是由不同硬件和軟件限制以及通過計算信噪比而導致的各種安全攻擊所引起的,因此對本文方法在誤差控制過程中的信噪比與文獻[4-5,7,9]中的誤差控制技術進行了比較,結果如圖3所示。
在不同導入文件尺寸下,不同方法有著不同的信噪比,但所有方法的信噪比都隨著導入文件的增大而增加;其中:文獻[9]方法信噪比始終保持最小,文獻[4]和文獻[5]方法信噪比相近,但較文獻[7]低,本文方法則具有最高信噪比。因此可以看出,本文提出的差錯控制技術比文獻[4-5,7,9]中的誤差錯控制技術具有更高的信噪比,即本文提出的錯誤控制技術比現(xiàn)有錯誤控制技術更有效,并且在由于各種硬件、軟件、其他明顯的限制和安全攻擊而引起的錯誤控制過程中,本文方法具有更高的保護各種數(shù)據(jù)錯誤的能力。
綜合圖2和圖3所示結果,本文方法在聚類過程中相比于文獻[4-5,7,9]中的相關技術具有更高的數(shù)據(jù)保護效率。
2.3.2數(shù)據(jù)和安全開銷的效率
在表2中,將提出的霍夫曼壓縮技術的性能與文獻[4-5,7,9]中的壓縮技術的性能進行了比較。這些壓縮技術的比較是根據(jù)它們產生壓縮比的能力來完成的。可以看出,提出的霍夫曼壓縮技術提供了比文獻[4-5,7,9]中的壓縮技術更高的壓縮比。根據(jù)定義,如果使用的壓縮技術提供更高的壓縮比,則稱壓縮技術對于壓縮數(shù)據(jù)是有效的。由于霍夫曼壓縮與文獻[4-5,7,9]中的壓縮技術相比,能夠產生更高的壓縮比,因此提出的壓縮技術能夠明顯地、有效地減少數(shù)據(jù)以及安全開銷。
表2 各種壓縮技術的壓縮比
2.3.3時間開銷的效率
表3比較了本文方法的執(zhí)行速度與文獻[4-5,7,9]中的聚類技術在聚類和數(shù)據(jù)檢索期間的通量??梢钥闯?,本文方法聚類速度通量和數(shù)據(jù)檢索通量分別為5.56和5.71,即相比于文獻[4-5,7,9]中的聚類技術有更好的時間性能。
表3 聚類技術的通量
表4給出了聚類和數(shù)據(jù)檢索時間期間的環(huán)路復雜度,可以看出,在聚類和數(shù)據(jù)檢索時間的兩種情況下,本文方法比文獻[4-5,7,9]中的聚類技術具有更低的環(huán)路復雜度,分別為3和3,而文獻[5]和文獻[9]方法環(huán)路復雜度最高,文獻[4]文獻[7]則具有相同的聚類和檢索復雜度,分別為4和3。因此可以得出結論,提出的集成聚類技術比文獻[4-5,7,9]中的聚類技術具有更好的時間效率。
表4 不同技術的環(huán)路復雜性
本文提出一種可撤銷屬性加密結合快速密度聚類算法的非結構化大數(shù)據(jù)安全存儲方法,研究了多維大數(shù)據(jù)快速分類和有效避免遭受安全攻擊的問題。本文算法提高了數(shù)據(jù)的處理速度和安全加密的可靠性,降低了信息損失百分比,提高了壓縮比和信噪比。
后期研究重點包括兩點:1) 通過研究尋找可用于多維大數(shù)據(jù)聚類的集成安全機制,進一步提高大數(shù)據(jù)聚類的速度;2) 將組合的集成技術用于保護數(shù)據(jù)免受各種安全攻擊的大數(shù)據(jù)加密技術,進一步減少數(shù)據(jù)和安全開銷的壓縮技術。