本發(fā)明涉及云存儲,云加密,訪問控制技術(shù)領(lǐng)域。
背景技術(shù):
隨著云技術(shù)的發(fā)展,云存儲服務(wù)面向越來越多的用戶,用戶隨時隨地遠(yuǎn)程訪問存儲在云空間中的數(shù)據(jù),其成本低、易于使用和接口高擴展性在商業(yè)中也受到了廣泛應(yīng)用和關(guān)注,然后,用戶在享受這種便利的同時,也面臨數(shù)據(jù)存儲脫離自身控制,產(chǎn)生了安全問題,許多著名的云服務(wù)商也面臨過云存儲的安全問題,導(dǎo)致了嚴(yán)重的后果,所以云存儲的安全問題是當(dāng)下研究的熱點。
訪問控制是實現(xiàn)用戶數(shù)據(jù)機密性和進行隱私保護的主要工具之一,然而云存儲的外包存儲服務(wù)模式導(dǎo)致特權(quán)用戶的存在,其具有非授權(quán)訪問用戶數(shù)據(jù)的權(quán)利,導(dǎo)致用戶數(shù)據(jù)信息和隱私泄露等內(nèi)部攻擊問題。
針對上述安全問題,現(xiàn)有技術(shù)引入基于模糊身份加密的加密訪問控制技術(shù)。一種方法是將用戶私鑰關(guān)聯(lián)到訪問控制結(jié)構(gòu)樹,密文關(guān)聯(lián)到屬性集,若用戶的屬性集滿足訪問控制樹,則該用戶可以解密數(shù)據(jù),否則,該用戶無法解密數(shù)據(jù)。另一種方法是將用戶私鑰關(guān)聯(lián)到屬性集,密文關(guān)聯(lián)到訪問控制樹,屬性集滿足該訪問控制樹的用戶具有解密數(shù)據(jù)的能力,上述方案中的加密者不能直接控制哪些用戶能訪問密文數(shù)據(jù),還需要繼續(xù)進行深入研究。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的上述問題,本發(fā)明提出一種用于云存儲的加密和訪問控制方法,本方法由加密算法的訪問控制結(jié)構(gòu)樹轉(zhuǎn)為策略規(guī)則,應(yīng)用訪問控制架構(gòu)實現(xiàn)細(xì)粒度多權(quán)限訪問控制機制。
本發(fā)明所采用的技術(shù)方案是:一種用于云存儲的加密和訪問控制方法,首先,該方法用雙線性對稱加密算法對明文數(shù)據(jù)進行加密,得到數(shù)據(jù)密文;其次對對稱密鑰采取再次加密,生成密鑰密文;最后,將數(shù)據(jù)密文和密鑰密文按照系統(tǒng)設(shè)計格式保存至云存儲中,當(dāng)用戶需要對存儲數(shù)據(jù)訪問時,采用訪問控制結(jié)構(gòu)的策略規(guī)則控制用戶的多重權(quán)限,只有當(dāng)訪問者的主題屬性通過訪問規(guī)則策略控制,才可以訪問密鑰密文,才能解密密鑰密文得到對稱密鑰用以解密密文得到數(shù)據(jù)明文,策略規(guī)則可以從加密方法訪問控制結(jié)構(gòu)樹轉(zhuǎn)換來,也可以單獨進行添加和修改。
本發(fā)明的有益效果是:該方法結(jié)合加密手段和訪問結(jié)構(gòu)控制,保證只有合法用戶在權(quán)限范圍內(nèi)才能訪問、操作資源,保障了數(shù)據(jù)的機密性,同時對合謀攻擊具有更好的抗性,并且該訪問控制方案具有后向安全性。
具體實施方式
本方法由加密算法的訪問控制結(jié)構(gòu)樹轉(zhuǎn)為策略規(guī)則,應(yīng)用訪問控制架構(gòu)實現(xiàn)細(xì)粒度多權(quán)限訪問控制機制,只有當(dāng)訪問者的主題屬性通過訪問規(guī)則策略控制,才可以訪問密鑰密文和解密密鑰密文得到對稱密鑰用以解密密文得到數(shù)據(jù)明文,策略規(guī)則可以從加密方法訪問控制結(jié)構(gòu)樹轉(zhuǎn)換來。
加密方案中采用屬性加密的方式,屬性包括主體屬性、資源屬性和環(huán)境屬性,主體屬性包括用戶名、用戶ID、用戶所在企業(yè)名稱部門職位等用戶固有屬性,資源屬性包括資源名稱、主題、資源大小、創(chuàng)建者等,環(huán)境屬性包括時間、網(wǎng)絡(luò)、資源使用率等。
該方法的具體實施步驟如下:
步驟1:生成主密鑰MK和公共參數(shù)PK
設(shè)G和GT是p(p為素數(shù))階的群,他們之間存在可有效計算的雙線性映射e:G×G→GT,在映射中,若a,b∈Zp和g,h∈G,滿足e(ga,hb)=e(g,h)ab,并且存在g,h∈G使e(g,h)≠1,也就是不是所有G×G的元素都能映射到GT中,但是g,h∈G,e(g,h)都是可有效計算的;
設(shè)P={P1,P2,…,Pn}為所有屬性集合,某個用戶u的屬性集合A是P的非空子集,則N個屬性是可以區(qū)別2N個用戶的;
設(shè)主密鑰為MK,公共參數(shù)為PK,如果
|Pr[β(g,ga,gb,gs,e(g,g)abs)=0-Pr[β(g,ga,gb,gs,z)=0|≥ε
則有:
PK={G0,g,h=gβ,e(g,g)α}
MK=(β,gα)
其中,G0為生成元,α,β∈Zp,b∈{0,1}
使用MK和用戶屬性集A生成用戶密碼SK
SK=(PK,M,T),T為訪問結(jié)構(gòu)樹,M為明文數(shù)據(jù)。
步驟2:數(shù)據(jù)上傳時加密處理:
設(shè)DO為文件F的唯一標(biāo)識號,隨機選擇對稱密鑰KeyF加密F得到密文CF,DO制定訪問控制結(jié)構(gòu)樹T并調(diào)用1)中的加密算法,加密對稱密鑰KeyF得到密文密鑰CT;
設(shè)Y是訪問結(jié)構(gòu)樹T所有葉子節(jié)點的集合,r為訪問結(jié)構(gòu)樹T的根節(jié)點,節(jié)點t的門限值為kt,qt為節(jié)點t生成一個kt-1次的隨機多項式;qt(0)代表該節(jié)點的私密屬性;定義函數(shù)ind(x)返回節(jié)點的索引編號,函數(shù)par(x)為返回節(jié)點x的父節(jié)點,函數(shù)att(y)為葉子節(jié)點對應(yīng)的屬性,隨機參數(shù)s∈Zp,令qt(0)=s,則qx(0)=q(ind(x)),此時可以得到密鑰密文為:
數(shù)據(jù)加密后上傳到云服務(wù)器,存儲方式為:(IDF,CF,CT);云服務(wù)提供商根據(jù)DO上傳數(shù)據(jù)中的訪問控制樹T,解析并生成策略規(guī)則文件并存儲于策略數(shù)據(jù)庫中。
步驟3:數(shù)據(jù)訪問過程的解密處理
用戶申請訪問數(shù)據(jù)時,首先云服務(wù)器驗證用戶的有效性,有效則對用戶的數(shù)據(jù)訪問請求按照訪問策略進行決策,否則拒絕訪問,用戶通過驗證后,根據(jù)用戶主題屬性集A生成對應(yīng)的私人訪問密鑰SK:
SK=(D=g(α+γ)/β,其中隨機參數(shù)γ∈Zp,屬性j∈A;
執(zhí)行解密算法得到對稱密鑰KeyF,使用該密鑰解密密文得到明文,解密過程為:
(1)一種情況:定義歸運算DecryptNode(CT,SK,x),令i=attr(y),每個葉子節(jié)點為x時的計算:
1):當(dāng)i不屬于A時DecryptNode(CT,SK,x)=⊥;
2):當(dāng)i屬于A時,
(2)另一種情況:對于非葉子節(jié)點z,利用kx個葉子節(jié)點DecryptNode(CT,SK,x)作為拉格朗日插值定理的插值點,計算得到
訪問控制樹T的根節(jié)點R,令則解密明文
得到明文后,用戶可以自由瀏覽數(shù)據(jù),操作數(shù)據(jù)。
步驟4:用戶訪問權(quán)限變更
對于用戶變更或者撤銷對文件的訪問權(quán)限,可以通過跟新文件的訪問控制策略,在訪問控制結(jié)構(gòu)樹T上進行修改,生成新的對稱密鑰進行加密,重加密方案采用云服務(wù)器端代理重加密機制。