劉 嘯,劉玉龍
(江蘇師范大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇 徐州221116)
科學(xué)技術(shù)的突飛猛進(jìn),互聯(lián)網(wǎng)技術(shù)被廣泛應(yīng)于各個領(lǐng)域,在云計算系統(tǒng)中可通過云存儲實現(xiàn)對數(shù)據(jù)的儲存和管理,滿足用戶的數(shù)據(jù)訪問需求,實現(xiàn)云存儲的關(guān)鍵是利用存儲硬件和相關(guān)云服務(wù)軟件共同完成數(shù)據(jù)的存儲,為用戶提供高質(zhì)量的服務(wù)[1,2]。在當(dāng)下以及未來,將會有更多用戶使用云存儲服務(wù),云存儲不僅可以降低用戶對移動硬盤、U盤等固定設(shè)備的使用率,同時在網(wǎng)絡(luò)條件下,也可使用戶隨時隨地存儲數(shù)據(jù)、利用數(shù)據(jù),既方便又快捷。云存儲興起雖短,但已有較好的發(fā)展勢頭,擁有較大規(guī)模的潛在用戶群體。在云計算快速發(fā)展的前提下,云存儲技術(shù)應(yīng)運而生,它是企業(yè)或個人用戶將重要數(shù)據(jù)文件存儲于云服務(wù)器,并支付相關(guān)費用,由云服務(wù)器提供數(shù)據(jù)管理服務(wù)的技術(shù)[3,4]。
云存儲廣泛應(yīng)用的同時,其用戶為節(jié)約存儲空間,更高效地管理數(shù)據(jù),要求云存儲技術(shù)更具安全性、高效性。特別對于企業(yè)而言,數(shù)據(jù)信息安全對高新技術(shù)企業(yè)至關(guān)重要,涉及企業(yè)的商業(yè)機密和研究成果[5],關(guān)系企業(yè)的經(jīng)濟發(fā)展。傳統(tǒng)云存儲加密方式的劣勢在于密鑰管理需花費高昂的費用以及在訪問數(shù)據(jù)時其控制粒度太寬泛,且私密性不高,存在數(shù)據(jù)信息泄露的風(fēng)險[6]。
云存儲用戶的急速增長,云服務(wù)器空間占用增大,且存儲空間存在大量基于相同明文的不同密文,造成數(shù)據(jù)冗余,大規(guī)模的冗余數(shù)據(jù)致使存儲成本高昂,因此,將冗余重復(fù)數(shù)據(jù)刪除十分必要。劉竹松等人[7]研究利用Merkle哈希樹方案對云存儲數(shù)據(jù)去重處理,該方法雖使加密數(shù)據(jù)免于字典攻擊,但云存儲空間利用率不高;劉紅燕等人[8]為避免用戶隱私發(fā)生泄露,研究了利用用戶定義安全條件實現(xiàn)數(shù)據(jù)安全刪重的算法。該方法雖可使數(shù)據(jù)免于惡意用戶的信道監(jiān)聽攻擊,但該方法的去重效率還有待提高。
為解決數(shù)據(jù)冗余,提高云存儲空間的利用率,本文提出基于屬性基的云存儲數(shù)據(jù)安全刪重算法,在實現(xiàn)重復(fù)數(shù)據(jù)刪除的基礎(chǔ)上,又確保數(shù)據(jù)更加安全,保護(hù)用戶數(shù)據(jù)免受攻擊。
屬性基加密是利用多個屬性標(biāo)志身份信息,并將其與系統(tǒng)的訪問結(jié)構(gòu)關(guān)聯(lián),使之訪問控制性能更加細(xì)粒化,運用CP-ABE密文策略和KP-ABE密鑰策略判斷用戶是否有權(quán)訪問數(shù)據(jù)信息,提高數(shù)據(jù)信息的安全性能[9]?;趯傩缘募用?ABE)的原理是一組屬性與密文有某種聯(lián)系,一組屬性和私鑰具有某種聯(lián)系,對于某用戶而言,用一閾值描述其私鑰屬性和密文屬性的適合度,當(dāng)閾值大于某設(shè)定值時,此用戶方可對密文解密。密文策略CP-ABE是發(fā)展后的ABE算法中的一種,由于其屬性與密鑰產(chǎn)生聯(lián)系,密文決定用戶訪問策略,更適用于云存儲的應(yīng)用范圍。
CP-ABE由四部分組成。
第一部分:Setup()??僧a(chǎn)生主密鑰MK和公鑰PK。
第二部分:CT=Encrypt(PK,M,T)。密文CT是利用PK和訪問結(jié)構(gòu)樹T加密明文M獲得。
第三部分:SKs=KeyGen(MK,S)。私鑰SKs可利用MK及用戶屬性值S產(chǎn)生。
第四部分:M=Decrypt(CT,SKs)。利用私鑰SKs對密文CT解密獲得明文M。Decrypt()能夠解密需滿足條件:S符合T。
屬性:所有屬性集合表示為P={P1,P2…,Pn},A表示用戶私鑰相關(guān)的屬性集,用AP表示P的屬性子集,且AP不為空。
訪問結(jié)構(gòu)樹:對數(shù)據(jù)的訪問管理可通過訪問結(jié)構(gòu)樹體現(xiàn),每個屬性都可用訪問結(jié)構(gòu)樹的葉子表示,關(guān)系函數(shù)用樹內(nèi)各節(jié)點表示,可用and、or、nofm門限?;诿孛芊窒?,將各個節(jié)點都視為一個秘密,在進(jìn)行加密操作時按從上到下順序?qū)⒚孛苜x予各個節(jié)點,按從下至上順序?qū)Ω?jié)點進(jìn)行解密操作。訪問結(jié)構(gòu)樹是數(shù)據(jù)訪問管理方法的闡述,欲實現(xiàn)解密操作,需使用戶私鑰相關(guān)的屬性集與訪問策略相匹配。
CP-ABE算法:
第一步Setup():W1為雙線性群,w為W1的生成元,e:W1×W1→W2為W1的雙線性映射。
A={a1,a2,a3,…,an}為屬性集,針對各屬性ai∈A(1≤i≤n)任意選取xiW1(1≤i≤n),隨機選擇相關(guān)系數(shù)α、β,PK={W0,w,wβ,e(w,w)α}為公鑰,向用戶公布,MK={β,wα}為主密鑰,主密鑰不可公開,需私下保存。
第二步Encrypt(PK,M,T):利用PK和訪問結(jié)構(gòu)樹T對明文M進(jìn)行加密。首先構(gòu)建訪問結(jié)構(gòu)樹,原理是:用lx表示節(jié)點x的門限值,qx表示x節(jié)點經(jīng)過lx-1次選擇后的任意多項式,節(jié)點x的秘密為qx(0)。任意選取秘密s∈Zp,Zp為任意數(shù)集合,使qV(0)=s,根節(jié)點為V,而訪問樹上的其余節(jié)點x,使qx(0)=qparent(x)(index(x)),parent(x)退回到節(jié)點x的上一級節(jié)點,index(x)退回到節(jié)點x的序號。葉子集合表示為F,密文CT的描述為:
(1)
式中:退回葉子節(jié)點的屬性為att(f)。
第三步KeyGen(MK,S):產(chǎn)生屬性集S的私鑰。用S表示私鑰相關(guān)的屬性集,其為u的子集。r∈Zp為產(chǎn)生的一個任意數(shù),將任意數(shù)rj∈Zp賦予各個屬性j∈S,私鑰SK可描述為
(2)
第四步Decrypt(CT,SK):利用私鑰SKs對密文CT解密獲得明文M。DecryptNode(CT,SK,x)為遞歸運算,當(dāng)i=att(f)時,針對各個葉子節(jié)點x進(jìn)行計算。
DecryptNode(CT,SK,x)=
(3)
針對各非葉子節(jié)點x,拉格朗日多項式的差值節(jié)點e(w,w)rqx(0)最少要使用lx個,通過節(jié)點x的子節(jié)點{Zj}可獲得e(w,w)rqx(0),通過計算e(w,w)rqx(0)獲得e(w,w)rqzj(0),當(dāng)A=e(w,w)rqR(0)=e(w,w)rs,可獲得明文M=/(e(C,D)/A)。
基于屬性基加密的存儲數(shù)據(jù)安全刪重算法可實現(xiàn)重復(fù)數(shù)據(jù)的刪除處理。首先分類處理存儲數(shù)據(jù),在此前提下建立數(shù)據(jù)引用度標(biāo)簽區(qū)分?jǐn)?shù)據(jù)屬于非頻繁引用數(shù)據(jù)還是頻繁引用數(shù)據(jù),該標(biāo)簽依據(jù)橢圓曲線進(jìn)行構(gòu)建。非頻繁引用數(shù)據(jù)刪重通過驗證加密數(shù)據(jù)的明文是否重復(fù),以保證明文數(shù)據(jù)與其密文一一對應(yīng),頻繁引用數(shù)據(jù)采用改進(jìn)的收斂加密算法,以確保云服務(wù)器數(shù)據(jù)安全存儲前提下,將數(shù)據(jù)刪除效率提升。通過非頻繁引用數(shù)據(jù)和頻繁引用數(shù)據(jù)的刪除共同完成云服務(wù)器數(shù)據(jù)安全刪重。
云服務(wù)器CSP和用戶構(gòu)成加密的主體,(X1,X2)為云存儲信息,{Uz}z∈(1,2,…,n)為任意數(shù)據(jù)集合,利用X3=X1+X2加密數(shù)據(jù),{CT(X3,Uz)}為加密后的密文集合,存儲于CSP。設(shè)定E(a,b)GF(2m)為橢圓曲線,GF(2m)為特征為2的有限域,點(x,y)∈GF(p)×GF(p)滿足條件為
y2+xy=x3+ax2+b(a,b∈GF(2m)∧b≠0)
(4)
O為橢圓曲線原點,用橢圓曲線表示滿足式(4)的點(x,y)和無數(shù)O的集合,G∈E(a,b)GF(2m)為所選基點,將a、b、G公布,經(jīng)CP-ABE加密后的密文為CT,以T為數(shù)據(jù)的流行度閾值。
第一步:Cj傳輸數(shù)據(jù)mj至云服務(wù)器,通過shj=SH(mj)對mi的短哈希值進(jìn)行計算,并上傳至CSP。
第三步:CSP計算sj數(shù)量,得到count(sj),與引用度閾值T比較,如果大于T,數(shù)據(jù)mi是頻繁引用數(shù)據(jù),小于T是非頻繁引用數(shù)據(jù)。
用戶將數(shù)據(jù)的密文CT(X3,Kmi-ei)、CT(Kmi-mi)儲存于云服務(wù)器CSP內(nèi),其中ei=SHA-1(mi)。mi的加密密鑰為Kmi,通過ei使Kmi盲化,獲得Kmi-ei,采用X3對其加密獲得的密文為CT(X3,Kmi-ei),數(shù)據(jù)mi的密文為CT(Kmi-mi)。
當(dāng)數(shù)據(jù)mi為非頻繁引用數(shù)據(jù)時,可作如下處理:
第一:當(dāng)sj與si相匹配,sj=si時,那么mj=mi,云服務(wù)器CSP向用戶傳送密文CT(X3,Kmi-ei),用戶根據(jù)X3=X1+X2解密密文獲得Kmi-ei,算出Kmi=Kmi-ei+ej,接著用Kmi加密數(shù)據(jù)mi,獲得密文CT(Kmi-mj),并傳送至CSP,CSP對CT(Kmi-mj)=CT(Kmi-mi)進(jìn)行判斷,當(dāng)?shù)仁匠闪?,刪除CT(Kmi-mj),并生成CT(Kmi-mi)的鏈接允許用戶訪問。
第二:當(dāng)不存在與sj相同標(biāo)簽時,說明數(shù)據(jù)mi的初始傳輸用戶就是Cj,CSP會向用戶Cj傳送選取于{CT(X3,Uz)}密文集合的任意密文CT(X3,U),用戶通過X3解密密文獲得U,通過Kmj=U+ej加密mj,獲取密文CT(Kmj,mj),并存儲于CSP。
數(shù)據(jù)m的私密度因其數(shù)量的增多而處于下降狀態(tài),上傳該數(shù)據(jù)的用戶數(shù)量表示為count(m),如果count(m)=T時,用戶先對數(shù)據(jù)m的哈希值進(jìn)行計算,e=SHA-1(m),X3=X1+X2,選取數(shù)據(jù)m的加密密鑰為Km=X3+e,通過計算獲得CT(Km,m),并在CSP中存儲,如果count(m)>T,向CSP傳輸e′=SHA-1(CT(Km,m))即可,密文CT(Km,m)無需傳送,CSP會為用戶提供CT(Km,m)的訪問鏈接,實現(xiàn)頻繁引用數(shù)據(jù)m的刪重。
設(shè)定實驗環(huán)境:服務(wù)器端運行平臺采用某云服務(wù)器,內(nèi)存8GB,以某臺計算機為客服端,i5處理器,內(nèi)存8GB,運用C++語言編程實現(xiàn)本文算法的云存儲數(shù)據(jù)的安全刪重,設(shè)置數(shù)據(jù)引用度閾值為8。首先對用戶上傳數(shù)據(jù)的查詢標(biāo)簽數(shù)量與引用度閾值進(jìn)行比較,當(dāng)查詢標(biāo)簽數(shù)量小于閾值8時,為非頻繁引用數(shù)據(jù),當(dāng)大于8時為頻繁引用數(shù)據(jù)。
云存儲數(shù)據(jù)在向云服務(wù)器CSP傳送和用戶下載過程中,大致可包括以下主要操作:產(chǎn)生查詢標(biāo)簽、檢驗標(biāo)簽、引用度查詢、屬性基加密、收斂加密、傳送數(shù)據(jù)等。通過設(shè)置文件數(shù)據(jù)規(guī)模檢測云存儲數(shù)據(jù)加密、刪重中各主要操作的耗用時間,云存儲數(shù)據(jù)各操作的時間耗用情況如圖1所示。
圖1 本文算法各步驟耗時對比
分析圖1可知,云存儲數(shù)據(jù)在傳送和下載的過程中,不斷增大傳送文件的數(shù)據(jù)量,運行以上各操作所花費的時間開銷呈現(xiàn)逐步增大的態(tài)勢。其中,傳送數(shù)據(jù)操作耗用時間最大,約為全部運行時間的60%以上,該實驗結(jié)果表明云平臺傳送文件的耗時最高,因此,為突出本文所提算法的應(yīng)用效果,下面針對云存儲數(shù)據(jù)的傳送耗時進(jìn)行測試。
比較本文算法、文獻(xiàn)[7]算法、文獻(xiàn)[8]算法對云存儲300MB文件傳送耗時,實驗結(jié)果如圖2所示。
圖2 不同算法的數(shù)據(jù)傳送時間開銷對比
分析圖2可知,本文算法下云服務(wù)傳送數(shù)據(jù)的時間變化幅度最小,耗時最短原因是本文算法可執(zhí)行非頻繁引用數(shù)據(jù)的刪重,當(dāng)數(shù)據(jù)數(shù)量低于引用度閾值時,本文算法可去除重復(fù)密文,大大節(jié)約計算時間,使數(shù)據(jù)的云存儲時間很少,節(jié)省云服務(wù)器的存儲空間。
假定云服務(wù)CSP中存儲5萬個數(shù)據(jù)信息,設(shè)定重復(fù)數(shù)據(jù)比例分別為3%、8%、15%、20%,利用本文算法對云存儲中的重復(fù)數(shù)據(jù)作刪除處理,驗證本文算法數(shù)據(jù)刪除能力,結(jié)果參見圖3所示。
圖3 重復(fù)數(shù)據(jù)刪除
分析圖3可知,隨著云存儲數(shù)據(jù)信息數(shù)量的增多,3%、8%、15%、20%比例的重復(fù)數(shù)據(jù)的成功刪除概率呈現(xiàn)上升趨勢,其中重復(fù)率為3%的云儲存數(shù)據(jù),在數(shù)據(jù)量較小時,該曲線的成功刪除率呈線性快速增長,隨著數(shù)據(jù)量的逐步增大,曲線走勢慢慢趨于平緩,最終實現(xiàn)數(shù)據(jù)的100%刪除,與重復(fù)率3%曲線相比,重復(fù)率8%的云存儲數(shù)據(jù),在數(shù)據(jù)量相對較少時,該曲線的成功刪除率上升趨勢同樣呈線性增長,但增長速度明顯慢于3%曲線,后期隨著數(shù)據(jù)量的增大,走勢慢慢緩和,重復(fù)數(shù)據(jù)100%刪除。相比之下,云存儲數(shù)據(jù)重復(fù)率為15%和云存儲數(shù)據(jù)重復(fù)率為20%的重復(fù)數(shù)據(jù)刪除速度稍慢,由于該云存儲中存在重復(fù)數(shù)據(jù)較多,曲線的上升趨勢最慢,但也均能實現(xiàn)重復(fù)數(shù)據(jù)的完全刪除。本實驗結(jié)果表明本文算法的重復(fù)數(shù)據(jù)刪重能力較強,具有較強的適用能力。
為解決現(xiàn)有的云存儲數(shù)據(jù)刪重算法存在的時間開銷較大問題,提出基于屬性基加密的云存儲數(shù)據(jù)安全刪重算法。為增強云存儲數(shù)據(jù)傳送的安全性,采用屬性基加密的CP-ABE密文策略作為云存儲數(shù)據(jù)的加密算法。劃分加密數(shù)據(jù)為非頻繁引用數(shù)據(jù)和頻繁引用數(shù)據(jù)兩種類型,全面實現(xiàn)云存儲重復(fù)數(shù)據(jù)刪重。實驗結(jié)果證明了采用本文算法存儲文件,可高效率完成數(shù)據(jù)刪重。通過對不同比例重復(fù)數(shù)據(jù)作刪除處理,表明本文算法具有顯著的刪重效果。