本發(fā)明涉及云存儲(chǔ)環(huán)境下數(shù)據(jù)安全技術(shù)領(lǐng)域
技術(shù)背景
隨著云計(jì)算的發(fā)展,移動(dòng)數(shù)據(jù)存儲(chǔ)的研究,越來(lái)越多的人和企業(yè)選擇在云端存儲(chǔ)數(shù)據(jù),以打破以往智能在特定環(huán)境下訪(fǎng)問(wèn)某些信息的限制。但是,企業(yè)或者個(gè)人信息安全也出現(xiàn)的風(fēng)險(xiǎn),服務(wù)商被攻擊,個(gè)人網(wǎng)絡(luò)被攻擊導(dǎo)致隱私機(jī)密信息泄露,造成隱患。所以云環(huán)境下數(shù)據(jù)的加密技術(shù)和存儲(chǔ)技術(shù)收到越來(lái)越多的研究。
在開(kāi)放式云環(huán)境下,數(shù)據(jù)所有者(用戶(hù))將信息加密存儲(chǔ)于云端,并通過(guò)對(duì)稱(chēng)、非對(duì)稱(chēng)密鑰進(jìn)行數(shù)據(jù)的保護(hù)雖然可以數(shù)據(jù)隱私性,但是密鑰協(xié)商和管理過(guò)程復(fù)雜,增加了密鑰動(dòng)態(tài)更新和用戶(hù)細(xì)粒度訪(fǎng)問(wèn)控制的難度。現(xiàn)在發(fā)展最好的是基于CP-ABE基于屬性基的加密和訪(fǎng)問(wèn)結(jié)構(gòu)控制來(lái)實(shí)現(xiàn)數(shù)據(jù)安全,由用戶(hù)屬性集合生成的相關(guān)聯(lián)私鑰是解密共享數(shù)據(jù)的關(guān)鍵,而其私鑰的生成與分發(fā)需要依賴(lài)可信的密鑰托管中心,無(wú)法滿(mǎn)足開(kāi)放式云存儲(chǔ)中信任分散的安全需求。同時(shí),CP-ABE中的訪(fǎng)問(wèn)結(jié)構(gòu)是由屬性集合與邏輯運(yùn)算組成,在共享數(shù)據(jù)解密過(guò)程中,多個(gè)非授權(quán)用戶(hù)可以聯(lián)合自己在訪(fǎng)問(wèn)結(jié)構(gòu)中的合法屬性的相關(guān)聯(lián)私鑰,以聯(lián)合形成滿(mǎn)足訪(fǎng)問(wèn)結(jié)構(gòu)的解密私鑰,進(jìn)而解密密文以實(shí)施非法訪(fǎng)問(wèn)。此外,由于用戶(hù)私鑰與用戶(hù)屬性集合關(guān)聯(lián),不同用戶(hù)的屬性集合間存在共有屬性,云存儲(chǔ)環(huán)境下用戶(hù)的離開(kāi)將導(dǎo)致多個(gè)用戶(hù)私鑰的更新,增加了密鑰撤銷(xiāo)的復(fù)雜性。
基于以上問(wèn)題,本發(fā)明提出一種基于CP-ABE的數(shù)據(jù)安全共享方法,將用戶(hù)的私鑰分為對(duì)稱(chēng)密鑰和非對(duì)稱(chēng)密鑰兩部分,分別由云中心和代理機(jī)構(gòu)管理,并在密鑰中加入私人標(biāo)識(shí),以抵抗共謀攻擊和串謀攻擊。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述不足,本發(fā)明提出一種基于CP-ABE的數(shù)據(jù)安全共享方法,將用戶(hù)的私鑰分為對(duì)稱(chēng)密鑰和非對(duì)稱(chēng)密鑰兩部分,分別由云中心和代理機(jī)構(gòu)管理,并在密鑰中加入私人標(biāo)識(shí),以抵抗共謀攻擊和串謀攻擊。
本發(fā)明所采用的技術(shù)方案是:云環(huán)境下一種安全的數(shù)據(jù)共享方法,該方法是針對(duì)云存環(huán)境下的加密數(shù)據(jù)訪(fǎng)問(wèn)控制問(wèn)題,結(jié)合CP-ABE提出的一種數(shù)據(jù)安全共享方法。該方法首先通過(guò)聯(lián)合云存儲(chǔ)中心的對(duì)稱(chēng)密鑰和授權(quán)機(jī)構(gòu)的非對(duì)稱(chēng)私鑰解決CP-ABE算法中的可信第三方依賴(lài)問(wèn)題;其次,在用戶(hù)的屬性私鑰中添加用戶(hù)唯一標(biāo)識(shí)使共享機(jī)制可以抵制來(lái)自非法用戶(hù)的串謀攻擊;最后,通過(guò)對(duì)稱(chēng)密鑰的更新完成了用戶(hù)的撤銷(xiāo),保證了共享數(shù)據(jù)的后向安全性并提高了更新效率。
本發(fā)明的有益效果是:解決了密鑰存儲(chǔ)的信任問(wèn)題,提高了除了合法訪(fǎng)問(wèn)者外,不合法訪(fǎng)問(wèn)者攻擊數(shù)據(jù)的安全性,能抵抗共謀攻擊、猜測(cè)攻擊、提高了數(shù)據(jù)后向的安全性。
具體實(shí)施方式
用戶(hù),是數(shù)據(jù)所有者,其將需要共享的數(shù)據(jù)通過(guò)某個(gè)代理服務(wù)商上傳到云空間;代理服務(wù)商,稱(chēng)其為代理機(jī)構(gòu),其租用云空間來(lái)分發(fā)給他的用戶(hù);云空間所有者是云服務(wù)商,管理云空間的機(jī)構(gòu)稱(chēng)為云中心;合法訪(fǎng)問(wèn)者是用戶(hù)許可的訪(fǎng)問(wèn)者,從云存儲(chǔ)中心獲取加密的共享數(shù)據(jù)后使用自己的密鑰解密數(shù)據(jù)。
在本發(fā)明中,首先由授權(quán)機(jī)構(gòu)和云存儲(chǔ)中心結(jié)合用戶(hù)唯一標(biāo)識(shí)共同產(chǎn)生用戶(hù)密鑰;其次用戶(hù)混合使用授權(quán)機(jī)構(gòu)產(chǎn)生的非對(duì)稱(chēng)密鑰和云服務(wù)商產(chǎn)生的對(duì)稱(chēng)密鑰完成數(shù)據(jù)的加解密;最后,當(dāng)用戶(hù)注銷(xiāo)時(shí)完成相關(guān)密鑰和密文的更新,保護(hù)共享數(shù)據(jù)的后向安全性。本方法主要分為以下幾個(gè)步驟:
步驟一:系統(tǒng)初始化,代理機(jī)構(gòu)產(chǎn)生安全參數(shù)
通過(guò)雙線(xiàn)性映射發(fā),設(shè)g為生成元,階為p的雙線(xiàn)性群G和雙線(xiàn)性映射e:G×G→G1,隨機(jī)選取散列函數(shù)H和α,β∈Zp生成主密鑰(gα,β)和公鑰(G,g,gβ,H,e(g,g)α)云中心產(chǎn)生對(duì)稱(chēng)密鑰ε∈Zp和全體屬性集Ω={λ1,λ2,...,λn}。
步驟二:密鑰生成
當(dāng)用戶(hù)進(jìn)入云存儲(chǔ)系統(tǒng)注冊(cè)時(shí),云中心為其生成唯一標(biāo)識(shí)對(duì)稱(chēng)密鑰ε和屬性集Si={λ1,λ2,...,λm},用戶(hù)將自己的屬性集Si={λ1,λ2,...,λm}、標(biāo)識(shí)符對(duì)稱(chēng)密鑰ε發(fā)送給代理機(jī)構(gòu)申請(qǐng)關(guān)聯(lián)的私鑰,代理機(jī)構(gòu)為注冊(cè)用戶(hù)屬性集中的屬性選取參數(shù),計(jì)算私鑰發(fā)送給用戶(hù),私鑰SK計(jì)算方法為:
步驟三:共享數(shù)據(jù)加密
用戶(hù)在上傳需要共享的數(shù)據(jù)前,需要對(duì)數(shù)據(jù)進(jìn)行加密,首先構(gòu)造訪(fǎng)問(wèn)樹(shù),然后利用公鑰和密鑰完成數(shù)據(jù)加密。
以屬性作為葉子節(jié)點(diǎn),門(mén)限邏輯運(yùn)算作為中間節(jié)點(diǎn)構(gòu)造訪(fǎng)問(wèn)樹(shù)T,從根節(jié)點(diǎn)開(kāi)始,每個(gè)非葉子節(jié)點(diǎn)x定義一個(gè)(kx-1))次多項(xiàng)式fx并隨機(jī)選取s∈Zp作為根節(jié)點(diǎn)R的值,設(shè)置fR(0)=s,設(shè)置fx(0)=fparent(x)(inde(x)),inde(x)為節(jié)點(diǎn)編碼值。對(duì)共享數(shù)據(jù)M進(jìn)行加密,密文數(shù)據(jù)為CT存放在云存儲(chǔ)中心。
步驟四:合法訪(fǎng)問(wèn)者訪(fǎng)問(wèn)共享數(shù)據(jù)
所有的云存儲(chǔ)用戶(hù)均可向云存儲(chǔ)中心查詢(xún)下載加密后的共享數(shù)據(jù),并使用自己的密鑰解密數(shù)據(jù)。數(shù)據(jù)的解密操作分為2個(gè)部分:使用嵌套方式計(jì)算訪(fǎng)問(wèn)樹(shù)根節(jié)點(diǎn)尺的節(jié)點(diǎn)值,然后使用根的節(jié)點(diǎn)值解密數(shù)據(jù)。
對(duì)訪(fǎng)問(wèn)樹(shù)的每個(gè)葉子節(jié)點(diǎn)x,請(qǐng)求用戶(hù)使用CP-ABE私鑰執(zhí)行解密操作:
如果λx∈S,則計(jì)算Tx,如果不是,則設(shè)置Tx=0,
對(duì)訪(fǎng)問(wèn)樹(shù)的每個(gè)非葉子節(jié)點(diǎn)y自底向上依次執(zhí)行解密操作,如果y的所有子節(jié)點(diǎn)集合N中滿(mǎn)足條件
|(z∈N)&Tz≠0)|≥ky則計(jì)算Ty,如果不滿(mǎn)足則Ty=0,當(dāng)|(z∈N)&Tz≠0)|≥ky時(shí):
當(dāng)用戶(hù)私鑰滿(mǎn)足訪(fǎng)問(wèn)樹(shù),得到根節(jié)點(diǎn)否則TR=0;
根據(jù)根節(jié)點(diǎn)的值和用戶(hù)私鑰,恢復(fù)數(shù)據(jù)M,
步驟五:用戶(hù)動(dòng)態(tài)更新
為保護(hù)共享數(shù)據(jù)不被注銷(xiāo)后的用戶(hù)獲取,共享機(jī)制提出用戶(hù)撤銷(xiāo)算法,保護(hù)共享數(shù)據(jù)的后向安全性。當(dāng)用戶(hù)注銷(xiāo)時(shí),云存儲(chǔ)中心重新生成對(duì)稱(chēng)密ε′,進(jìn)行重新加密:
云存儲(chǔ)中心將新的對(duì)稱(chēng)密鑰ε′分配給現(xiàn)有用戶(hù),用戶(hù)更新私鑰,
以此新的私鑰可以還原共享數(shù)據(jù)。
通過(guò)上述方法,用戶(hù)上傳共享數(shù)據(jù)后,制定的合法訪(fǎng)問(wèn)者可以隨時(shí)隨地訪(fǎng)問(wèn)數(shù)據(jù),并不擔(dān)心數(shù)據(jù)安全問(wèn)題,并且,隨時(shí)可以更換訪(fǎng)問(wèn)者名單,取消權(quán)限的訪(fǎng)問(wèn)者不能在依據(jù)原來(lái)的密鑰攻擊到數(shù)據(jù),保障了數(shù)據(jù)的向后安全性。