陳小娟,賀紅艷,張慧萍
(湖北工業(yè)大學工程技術學院,湖北 武漢430068)
近年來,大規(guī)模數(shù)據(jù)的快速發(fā)展成為學術界的熱門話題環(huán)境,由于傳統(tǒng)數(shù)據(jù)加密算法,并不能完全保障數(shù)據(jù)所有者利益最大化,值得注意的是,基于屬性加密可以靈活地實現(xiàn)訪問控制,為大數(shù)據(jù)應用提供了一種新的訪問管理方法。大數(shù)據(jù)主要來自不同的設備,但大多數(shù)終端沒有嵌入式存儲安全模塊的密鑰,如果在大型數(shù)據(jù)環(huán)境中使用屬性加密技術,就會很容易通過顯示密鑰或者其它秘密遠程參數(shù)的頁面通道進行攻擊,造成加密過程中只檢查密鑰是否泄漏,沒有嚴謹考慮到加密后隨機數(shù)是否安全。
因為海量數(shù)據(jù)一直在飛速增加,網絡客戶端中可以收集到用戶數(shù)據(jù),并提供一切隱私行為以及狀態(tài)等敏感信息,所以大數(shù)據(jù)的開發(fā)面臨著嚴峻的挑戰(zhàn)。這是因為具有訪問信息的大數(shù)據(jù)不僅包含保護用戶數(shù)據(jù)的信息,還包含其它敏感信息,如用戶習慣和偏好。大數(shù)據(jù)信息銷毀后,嚴重侵犯用戶隱私,而對個人財產和安全的數(shù)據(jù)保護和頁面加密的研究是非常重要的。傳統(tǒng)的加密模式對于用戶來說已經發(fā)展了很長一段時間,能夠保護涉及個人位置的數(shù)據(jù)的隱私用戶。但是,隨著數(shù)據(jù)量的增加,傳統(tǒng)的加密方法已經不能滿足現(xiàn)有的數(shù)據(jù)量需求。數(shù)據(jù)的采集往往存在嚴重的錯誤,數(shù)據(jù)保護水平不高,這嚴重限制了用戶編碼加密技術的進一步發(fā)展。文獻[1]利用云霧合作的多級聚合模型和同態(tài)加密算法,進行多層隱私保護,實時數(shù)據(jù)在網絡端通過加密獲得第一層隱私保護,在霧端進行細粒度聚合獲得第二層隱私保護,實現(xiàn)了整個網絡數(shù)據(jù)傳輸與處理的機密性和隱私性。霧級聚合數(shù)據(jù)在云節(jié)點作為系數(shù)嵌入符合霍納規(guī)則的一元多項式完成第三層隱私保護,最終電力服務機構將云級粗粒度聚合數(shù)據(jù)霍納分解與解密,獲得霧級與云級明文聚合數(shù)據(jù);文獻[2]等人利用角色對稱加密將用戶角色與密鑰相關聯(lián),構建角色密鑰樹,不同角色可根據(jù)訪問控制策略訪問對應權限的文件;同時,提出一種基于角色對稱加密的云數(shù)據(jù)安全去重方案,有效保護個人隱私信息,實現(xiàn)分層結構下的云數(shù)據(jù)授權去重,并通過群組密鑰協(xié)商解決角色與密鑰映射關系中密鑰更新與權限撤銷等帶來的安全問題。
由于數(shù)據(jù)網絡發(fā)展,網絡客戶端的數(shù)據(jù)也在海量增加,導致存儲空間急劇減少。雖然上述兩種文獻方法可以有效完成大數(shù)據(jù)加密,但因不能合理地消除數(shù)據(jù)的冗余性,產生加密效率不高等問題,基于此本文提出一種基于數(shù)據(jù)消冗技術的隱私大數(shù)據(jù)屬性加密仿真。
目前在數(shù)字信息快速增長的同時,還仍然存在著多樣性,盡管數(shù)據(jù)壓縮技術可以將文件中不必要數(shù)據(jù)占用空間降低,但數(shù)據(jù)增長是飛速的,依舊會占用較多運行內存,因此本文使用冗余數(shù)據(jù)消除法去除加密過程中不必要信息。
計算過程中,因Bloom filter是一個含有m的多維數(shù)據(jù)的集合,并且集合中每一組數(shù)據(jù)都為0,為了能夠更好地呈現(xiàn)n個數(shù)據(jù)元素的集合S={x1,x2,…,xn},利用k個hash函數(shù)將數(shù)據(jù)元素映射到1,…,m的范圍區(qū)間中[3]。
假設將某一數(shù)據(jù)段D中,一個有順序的序列判定為shingle,那么該數(shù)據(jù)段中,shingle集合就被描述為S(D,w),這樣即可構造出Bloom filter:
1)構建出一個m位的大數(shù)據(jù)bf,并將數(shù)據(jù)初始化設置,令其取值為0;
2)從數(shù)據(jù)集合中選取出兩個適用于映射函數(shù)的hash函數(shù),并將其進行初始化處理,計算后被描述為hash1,hash3;
3)數(shù)據(jù)集合中抽取出隨機的一個shingle,實現(xiàn)hash1,hash3計算大數(shù)據(jù)的摘要取值,然后將bf設置為1;
4)輸出bf,作為大數(shù)據(jù)文件的特征取值。
經過Bloom filter計算可以節(jié)省大量存儲空間,便允許出現(xiàn)少量錯誤,此外因為經過Bloom filter計算后,冗余數(shù)據(jù)大量減少,所以整體計算過程誤判率也會隨之下降,消除的冗余數(shù)據(jù)越多,精度越高,但相對應的儲藏空間使用越多[4]。
當S={x1,x2,…,xn}集合每個數(shù)據(jù)元素都被映射到對應數(shù)據(jù)范圍區(qū)間時,即可進一步獲取出某一位仍為0的概率p′,計算公式如下
(1)
如果要把集合S完全映射到數(shù)組中,那么便需要做kn次hash計算。本文采用e的常用近似計算,如下所示
(2)
根據(jù)上式計算結果得知,假設將β表示為集合中數(shù)據(jù)為0的比例,那么β的期望取值就有E(β)=p′。
為了便于后續(xù)計算,令p=e-nk/m,這樣即可得知,在已知β值的情況下,錯誤率的大小
(1-β)k≈(1-p′)k≈(1-p)k
(3)
f=(1-e-nk/m)k
(4)
根據(jù)計算結果得知,式中k被設置為2,如果需要通過上式得知數(shù)據(jù)y是否完全符合該集合的需求條件,即可針對y實現(xiàn)k次函數(shù)計算,計算結果顯示hi(y)均值為1(1≤i≤k),那么y則屬于這個集合,否則便為誤判結果。
Bloom filter計算過程中使用多個hash函數(shù)將集合映射到位數(shù)組中,同時存在一定的誤判率,因此需要在計算之前,選取出最優(yōu)擴列函數(shù)數(shù)量,便于后續(xù)數(shù)據(jù)搜索時,誤判率達到最小化。相同,如果計算時同時運用多個hash函數(shù),那么就會產生搜索不屬于該集合的數(shù)據(jù),來實現(xiàn)誤判為0的情況。此外搜索時hash函數(shù)量過少,會導致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)
根據(jù)上述計算,根據(jù)Hamming距離和余弦相似公式計算數(shù)據(jù)對象之間的相似度。如果這兩個值相同,則文件將被存儲文件的索引替換;如果這兩個值不同,則存儲文件并更新哈希表以向文件添加新的哈希值[6]。
由于隱私泄露問題主要出自訪問過程中,因此本文討論通用云訪問場景分析數(shù)據(jù)屬性,旨在實現(xiàn)加密數(shù)據(jù)訪問的安全性、可擴展性和精確控制。
充分利用屬性加密機制來控制對系統(tǒng)的訪問,實現(xiàn)一種有效的對稱加密。建立適當?shù)南到y(tǒng)和模塊模型如圖1所示。
圖1 數(shù)據(jù)共享訪問場景示意圖
大數(shù)據(jù)訪問網絡主要是由數(shù)據(jù)使用者、數(shù)據(jù)端用戶以及網絡傳輸服務器構成,為了能夠獲取使用者在網絡中搜索的訪問數(shù)據(jù)痕跡,就需要采用網絡端用戶所用的服務器,并且收集數(shù)據(jù)痕跡以及訪問痕跡。Abe選擇一組描述信息元素容器的屬性。
學生信息網絡包括學生類別、培養(yǎng)類別、專業(yè)和年級等屬性。假設計算機領域的研究人員是一個群體,那么培養(yǎng)類型屬性的取值則判定為不定項,因為大數(shù)據(jù)數(shù)據(jù)屬性取值是以計算機分類為標準的,所以屬性取值則是分類與取值的標準,第三類學生和屬性值為假期,加密系統(tǒng)中的密鑰是由數(shù)據(jù)所有者根據(jù)用戶計算出來的,屬于用戶屬性[7]?;趯傩约用艿脑茢?shù)據(jù)結構訪問如圖2所示。
圖2 基于屬性加密的數(shù)據(jù)共享訪問圖
根據(jù)系統(tǒng)設計的目的,采用Abe加密系統(tǒng)對數(shù)據(jù)進行精確的訪問控制,Abe屬于公共加密系統(tǒng)的密鑰。函數(shù)算法加密采用大代數(shù)結構,加解密運算量很大[8]。因此本文將對稱加密與非對稱結合,用于解決解密運算量過大的問題。通過設計目標,得出對應的系統(tǒng)功能架構,示意圖如圖3所示。
圖3 系統(tǒng)功能架構圖
如果令Setup(1k)表示為雙線映射的生成元,則至少具有一個安全參數(shù)1k,這樣便可獲取出任意輸出的參數(shù)集{q,G1,GT,g,e}。
3.2.1 密碼學加密
假設在網絡數(shù)據(jù)傳輸中,算法A用x作為數(shù)據(jù)輸入的參數(shù),那么m即可被描述為x的實際長度,若是在計算中具有一個多項式p,加密計算時便止步于p(m)。
加密計算過程中,具有加密特征的hash函數(shù)是一個特殊的擴列函數(shù),根據(jù)不同計算取值,可以任意調節(jié)符串長度,并將其固定為一個期望的長度。如果h表示hash函數(shù),n為數(shù)據(jù)輸出的實際符串長度,那么即可得知h具有下列特點:
擴散性:是指在加密計算中,根據(jù)不同的數(shù)據(jù)指向,hash函數(shù)的取值范圍在[0,2m]區(qū)間范圍內,并且令二進制數(shù)據(jù)與多項式時間相同;
單向性:如果經計算得知hash函數(shù)取值w,想要進一步得出x,這樣就必須滿足h(x)=w計算式的所有必要條件;
不可有效計算性:尋找出兩個不同的大數(shù)據(jù)進行加密計算,必要前提是x≠y,并且讓h(x)=h(y);
實際有效性:在已知加密數(shù)據(jù)取值前提下,利用h(x)即可獲取出實際計算時長。
3.2.2 CP-ABE加密流程
為了實現(xiàn)對云環(huán)境數(shù)據(jù)的安全、可擴展和細粒度的數(shù)據(jù)訪問,應用CP-ABE加密系統(tǒng),該系統(tǒng)主要用于基于屬性加密的云訪問控制。換句話說,包含由數(shù)據(jù)所有者控制的數(shù)據(jù)的訪問結構被添加到加密數(shù)據(jù)中。只有私鑰特性滿足加密訪問結構的用戶才能解密密碼Poni是通用cp-abe算法的官方定義[9]。
CP-ABE算法加密流程如下:
數(shù)據(jù)加密初始化Setup(1k):初始化計算中,首先輸入一個安全參數(shù),然后返回加密系統(tǒng)的主公鑰MP以及主私鑰的計算參數(shù)MS。
加密生成算法KeyGen(MS,U):該算法是在計算中,輸入與其對應的主私鑰MS以及該大數(shù)據(jù)的屬性集合U,并且相對應地生成屬性集合中每個數(shù)據(jù)解密密鑰。
大數(shù)據(jù)屬性加密算法Encrypt(MP,S,M):大數(shù)據(jù)加密算過程中,首先輸入MP,大數(shù)據(jù)消息M以及網絡訪問結構M,并在此基礎上構建只有數(shù)據(jù)使用者的私鑰SK,然后令與私鑰有關聯(lián)的屬性集合滿足U|=S的必要條件,便于解密的密文C[10]。
大數(shù)據(jù)屬性解密算法Decrypt(MP,C,SKU):在加密后對大數(shù)據(jù)解密,主要引用主公鑰MP、解密密文C以及使用者的私鑰SKu。
為了能夠進一步驗證本文加密方法的可行性,在仿真環(huán)境為:使用CPU為AMD Athlon(tm) Ⅱ X3,3.l0GHz,2GB內存的PC機,編程語言為C++。在忽略實驗環(huán)境差異的條件下,采用1TB大小的數(shù)據(jù)作為實驗對象,文件總數(shù)為905797,平均大小1105kB。分別針對本文方法與文獻[1]、[2]方法在數(shù)據(jù)消冗、加密過程生成密鑰時間開銷方面進行對比,對比結果如圖4所示。
圖4 仿真對比圖
從圖4可以看出在檢測方案的額外存儲開銷方面,本文方法消冗存儲最高,高達60%左右,文獻[1]方法次之,最多引入50%左右的額外存儲開銷,而文獻[2]方法檢測方案引入的存儲開銷相對最低。圖4(b)則是三種方法的加密誤差對比,可清楚看出,本文方法明顯優(yōu)于兩種文獻方法,因為本文方法的數(shù)據(jù)消冗效率是最高的,而文獻方法沒有及時消冗,導致加密過程中,可能會對重復數(shù)據(jù)加密,因此加密誤差高。
在效率對比基礎上,對加密和解密時間開銷進行對比,圖5呈現(xiàn)了三種方法在生成主公鑰以及主私鑰所用的時間對比。
圖5 加密公鑰私鑰生成時間對比
實驗結果表明,相對于CP-ABE,文獻[1]、[2]方法在生成主公鑰以及主私鑰時具有較長時間的耗時,導致加密解密效率不高。
由于人們對互聯(lián)網的依賴性越來越高,利用互聯(lián)網技術進行數(shù)據(jù)的交互和存儲也帶來了各個層面的安全問題。因此本文設計了大用戶數(shù)據(jù)的加密保護方法。但是,本研究還存在一些不足,例如,由于因據(jù)中會出現(xiàn)一些關于最終加密錯誤的噪聲,但對加密結果影響不大。此外,本文旨在有針對性地研究對大數(shù)據(jù)進行預處理,以不斷減少加密數(shù)據(jù)保護中的錯誤和無限解體,保證用戶隱私的保護,促進中國互聯(lián)網技術的進一步發(fā)展。