陳小娟,賀紅艷,張慧萍
(湖北工業大學工程技術學院,湖北 武漢430068)
近年來,大規模數據的快速發展成為學術界的熱門話題環境,由于傳統數據加密算法,并不能完全保障數據所有者利益最大化,值得注意的是,基于屬性加密可以靈活地實現訪問控制,為大數據應用提供了一種新的訪問管理方法。大數據主要來自不同的設備,但大多數終端沒有嵌入式存儲安全模塊的密鑰,如果在大型數據環境中使用屬性加密技術,就會很容易通過顯示密鑰或者其它秘密遠程參數的頁面通道進行攻擊,造成加密過程中只檢查密鑰是否泄漏,沒有嚴謹考慮到加密后隨機數是否安全。
因為海量數據一直在飛速增加,網絡客戶端中可以收集到用戶數據,并提供一切隱私行為以及狀態等敏感信息,所以大數據的開發面臨著嚴峻的挑戰。這是因為具有訪問信息的大數據不僅包含保護用戶數據的信息,還包含其它敏感信息,如用戶習慣和偏好。大數據信息銷毀后,嚴重侵犯用戶隱私,而對個人財產和安全的數據保護和頁面加密的研究是非常重要的。傳統的加密模式對于用戶來說已經發展了很長一段時間,能夠保護涉及個人位置的數據的隱私用戶。但是,隨著數據量的增加,傳統的加密方法已經不能滿足現有的數據量需求。數據的采集往往存在嚴重的錯誤,數據保護水平不高,這嚴重限制了用戶編碼加密技術的進一步發展。文獻[1]利用云霧合作的多級聚合模型和同態加密算法,進行多層隱私保護,實時數據在網絡端通過加密獲得第一層隱私保護,在霧端進行細粒度聚合獲得第二層隱私保護,實現了整個網絡數據傳輸與處理的機密性和隱私性。霧級聚合數據在云節點作為系數嵌入符合霍納規則的一元多項式完成第三層隱私保護,最終電力服務機構將云級粗粒度聚合數據霍納分解與解密,獲得霧級與云級明文聚合數據;文獻[2]等人利用角色對稱加密將用戶角色與密鑰相關聯,構建角色密鑰樹,不同角色可根據訪問控制策略訪問對應權限的文件;同時,提出一種基于角色對稱加密的云數據安全去重方案,有效保護個人隱私信息,實現分層結構下的云數據授權去重,并通過群組密鑰協商解決角色與密鑰映射關系中密鑰更新與權限撤銷等帶來的安全問題。
由于數據網絡發展,網絡客戶端的數據也在海量增加,導致存儲空間急劇減少。雖然上述兩種文獻方法可以有效完成大數據加密,但因不能合理地消除數據的冗余性,產生加密效率不高等問題,基于此本文提出一種基于數據消冗技術的隱私大數據屬性加密仿真。
目前在數字信息快速增長的同時,還仍然存在著多樣性,盡管數據壓縮技術可以將文件中不必要數據占用空間降低,但數據增長是飛速的,依舊會占用較多運行內存,因此本文使用冗余數據消除法去除加密過程中不必要信息。
計算過程中,因Bloom filter是一個含有m的多維數據的集合,并且集合中每一組數據都為0,為了能夠更好地呈現n個數據元素的集合S={x1,x2,…,xn},利用k個hash函數將數據元素映射到1,…,m的范圍區間中[3]。
假設將某一數據段D中,一個有順序的序列判定為shingle,那么該數據段中,shingle集合就被描述為S(D,w),這樣即可構造出Bloom filter:
1)構建出一個m位的大數據bf,并將數據初始化設置,令其取值為0;
2)從數據集合中選取出兩個適用于映射函數的hash函數,并將其進行初始化處理,計算后被描述為hash1,hash3;
3)數據集合中抽取出隨機的一個shingle,實現hash1,hash3計算大數據的摘要取值,然后將bf設置為1;
4)輸出bf,作為大數據文件的特征取值。
經過Bloom filter計算可以節省大量存儲空間,便允許出現少量錯誤,此外因為經過Bloom filter計算后,冗余數據大量減少,所以整體計算過程誤判率也會隨之下降,消除的冗余數據越多,精度越高,但相對應的儲藏空間使用越多[4]。
當S={x1,x2,…,xn}集合每個數據元素都被映射到對應數據范圍區間時,即可進一步獲取出某一位仍為0的概率p′,計算公式如下

(1)
如果要把集合S完全映射到數組中,那么便需要做kn次hash計算。本文采用e的常用近似計算,如下所示

(2)
根據上式計算結果得知,假設將β表示為集合中數據為0的比例,那么β的期望取值就有E(β)=p′。
為了便于后續計算,令p=e-nk/m,這樣即可得知,在已知β值的情況下,錯誤率的大小
(1-β)k≈(1-p′)k≈(1-p)k
(3)
f=(1-e-nk/m)k
(4)
根據計算結果得知,式中k被設置為2,如果需要通過上式得知數據y是否完全符合該集合的需求條件,即可針對y實現k次函數計算,計算結果顯示hi(y)均值為1(1≤i≤k),那么y則屬于這個集合,否則便為誤判結果。
Bloom filter計算過程中使用多個hash函數將集合映射到位數組中,同時存在一定的誤判率,因此需要在計算之前,選取出最優擴列函數數量,便于后續數據搜索時,誤判率達到最小化。相同,如果計算時同時運用多個hash函數,那么就會產生搜索不屬于該集合的數據,來實現誤判為0的情況。此外搜索時hash函數量過少,會導致bits表中會有更多的零[5]。
令g=kln(1-e-nk/m),式中當g取最小值時,相對地f將會達到最高取值,這樣p=e-nk/m時就可以與g進行轉換,便有

(5)
對上式等號兩邊進行求導運算,結果如下式所示

(6)

f=(1/2)k≈(1/2)ln2·(m/n)≈(0.6185)m/n
(7)
根據上述計算,根據Hamming距離和余弦相似公式計算數據對象之間的相似度。如果這兩個值相同,則文件將被存儲文件的索引替換;如果這兩個值不同,則存儲文件并更新哈希表以向文件添加新的哈希值[6]。
由于隱私泄露問題主要出自訪問過程中,因此本文討論通用云訪問場景分析數據屬性,旨在實現加密數據訪問的安全性、可擴展性和精確控制。
充分利用屬性加密機制來控制對系統的訪問,實現一種有效的對稱加密。建立適當的系統和模塊模型如圖1所示。

圖1 數據共享訪問場景示意圖
大數據訪問網絡主要是由數據使用者、數據端用戶以及網絡傳輸服務器構成,為了能夠獲取使用者在網絡中搜索的訪問數據痕跡,就需要采用網絡端用戶所用的服務器,并且收集數據痕跡以及訪問痕跡。Abe選擇一組描述信息元素容器的屬性。
學生信息網絡包括學生類別、培養類別、專業和年級等屬性。假設計算機領域的研究人員是一個群體,那么培養類型屬性的取值則判定為不定項,因為大數據數據屬性取值是以計算機分類為標準的,所以屬性取值則是分類與取值的標準,第三類學生和屬性值為假期,加密系統中的密鑰是由數據所有者根據用戶計算出來的,屬于用戶屬性[7]。基于屬性加密的云數據結構訪問如圖2所示。

圖2 基于屬性加密的數據共享訪問圖
根據系統設計的目的,采用Abe加密系統對數據進行精確的訪問控制,Abe屬于公共加密系統的密鑰。函數算法加密采用大代數結構,加解密運算量很大[8]。因此本文將對稱加密與非對稱結合,用于解決解密運算量過大的問題。通過設計目標,得出對應的系統功能架構,示意圖如圖3所示。

圖3 系統功能架構圖

如果令Setup(1k)表示為雙線映射的生成元,則至少具有一個安全參數1k,這樣便可獲取出任意輸出的參數集{q,G1,GT,g,e}。
3.2.1 密碼學加密
假設在網絡數據傳輸中,算法A用x作為數據輸入的參數,那么m即可被描述為x的實際長度,若是在計算中具有一個多項式p,加密計算時便止步于p(m)。
加密計算過程中,具有加密特征的hash函數是一個特殊的擴列函數,根據不同計算取值,可以任意調節符串長度,并將其固定為一個期望的長度。如果h表示hash函數,n為數據輸出的實際符串長度,那么即可得知h具有下列特點:
擴散性:是指在加密計算中,根據不同的數據指向,hash函數的取值范圍在[0,2m]區間范圍內,并且令二進制數據與多項式時間相同;
單向性:如果經計算得知hash函數取值w,想要進一步得出x,這樣就必須滿足h(x)=w計算式的所有必要條件;
不可有效計算性:尋找出兩個不同的大數據進行加密計算,必要前提是x≠y,并且讓h(x)=h(y);
實際有效性:在已知加密數據取值前提下,利用h(x)即可獲取出實際計算時長。
3.2.2 CP-ABE加密流程
為了實現對云環境數據的安全、可擴展和細粒度的數據訪問,應用CP-ABE加密系統,該系統主要用于基于屬性加密的云訪問控制。換句話說,包含由數據所有者控制的數據的訪問結構被添加到加密數據中。只有私鑰特性滿足加密訪問結構的用戶才能解密密碼Poni是通用cp-abe算法的官方定義[9]。
CP-ABE算法加密流程如下:
數據加密初始化Setup(1k):初始化計算中,首先輸入一個安全參數,然后返回加密系統的主公鑰MP以及主私鑰的計算參數MS。
加密生成算法KeyGen(MS,U):該算法是在計算中,輸入與其對應的主私鑰MS以及該大數據的屬性集合U,并且相對應地生成屬性集合中每個數據解密密鑰。
大數據屬性加密算法Encrypt(MP,S,M):大數據加密算過程中,首先輸入MP,大數據消息M以及網絡訪問結構M,并在此基礎上構建只有數據使用者的私鑰SK,然后令與私鑰有關聯的屬性集合滿足U|=S的必要條件,便于解密的密文C[10]。
大數據屬性解密算法Decrypt(MP,C,SKU):在加密后對大數據解密,主要引用主公鑰MP、解密密文C以及使用者的私鑰SKu。
為了能夠進一步驗證本文加密方法的可行性,在仿真環境為:使用CPU為AMD Athlon(tm) Ⅱ X3,3.l0GHz,2GB內存的PC機,編程語言為C++。在忽略實驗環境差異的條件下,采用1TB大小的數據作為實驗對象,文件總數為905797,平均大小1105kB。分別針對本文方法與文獻[1]、[2]方法在數據消冗、加密過程生成密鑰時間開銷方面進行對比,對比結果如圖4所示。

圖4 仿真對比圖
從圖4可以看出在檢測方案的額外存儲開銷方面,本文方法消冗存儲最高,高達60%左右,文獻[1]方法次之,最多引入50%左右的額外存儲開銷,而文獻[2]方法檢測方案引入的存儲開銷相對最低。圖4(b)則是三種方法的加密誤差對比,可清楚看出,本文方法明顯優于兩種文獻方法,因為本文方法的數據消冗效率是最高的,而文獻方法沒有及時消冗,導致加密過程中,可能會對重復數據加密,因此加密誤差高。
在效率對比基礎上,對加密和解密時間開銷進行對比,圖5呈現了三種方法在生成主公鑰以及主私鑰所用的時間對比。

圖5 加密公鑰私鑰生成時間對比
實驗結果表明,相對于CP-ABE,文獻[1]、[2]方法在生成主公鑰以及主私鑰時具有較長時間的耗時,導致加密解密效率不高。
由于人們對互聯網的依賴性越來越高,利用互聯網技術進行數據的交互和存儲也帶來了各個層面的安全問題。因此本文設計了大用戶數據的加密保護方法。但是,本研究還存在一些不足,例如,由于因據中會出現一些關于最終加密錯誤的噪聲,但對加密結果影響不大。此外,本文旨在有針對性地研究對大數據進行預處理,以不斷減少加密數據保護中的錯誤和無限解體,保證用戶隱私的保護,促進中國互聯網技術的進一步發展。