一種數(shù)據(jù)安全存儲(chǔ)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及云安全,特別設(shè)及一種云數(shù)據(jù)安全存儲(chǔ)方法。
【背景技術(shù)】
[0002] 云存儲(chǔ)作為一種新興的服務(wù)形式W其彈性配置、按需購(gòu)買、易于維護(hù)等優(yōu)點(diǎn)成為 眾多組織的存儲(chǔ)選擇。然而在云存儲(chǔ)模式下,數(shù)據(jù)脫離了用戶的控制范圍,該引起了用戶對(duì) 服務(wù)器可靠性W及數(shù)據(jù)安全性的擔(dān)憂。舉例而言,隨著智慧醫(yī)療的發(fā)展,基于云計(jì)算的醫(yī)療 平臺(tái)被醫(yī)療機(jī)構(gòu)廣泛使用,醫(yī)學(xué)和醫(yī)療中產(chǎn)生的敏感數(shù)據(jù)需要保證存儲(chǔ)安全,此時(shí)密文訪 問(wèn)控制是云存儲(chǔ)模式下提高醫(yī)務(wù)工作者數(shù)據(jù)機(jī)密性和實(shí)現(xiàn)細(xì)粒度訪問(wèn)控制的重要方法。在 人員規(guī)模龐大且部口內(nèi)部人員對(duì)資源的訪問(wèn)權(quán)限基本一致的組織中,如果依然將每個(gè)用戶 作為單獨(dú)的訪問(wèn)控制單元會(huì)浪費(fèi)大量的計(jì)算資源和存儲(chǔ)資源。高安全級(jí)別數(shù)據(jù)可能存在 頻繁的權(quán)限更新操作,此時(shí)數(shù)據(jù)擁有者需從服務(wù)器取回?cái)?shù)據(jù)和密鑰密文并更新上傳到服務(wù) 器,并分發(fā)新密鑰給用戶,顯然數(shù)據(jù)再次加密和密鑰重新生成給數(shù)據(jù)庫(kù)端帶來(lái)了嚴(yán)重的性 能開(kāi)銷,降低系統(tǒng)整體處理效率。因此,如何有效降低龐大用戶規(guī)模下高安全數(shù)據(jù)頻繁策略 更新給數(shù)據(jù)庫(kù)端帶來(lái)的密鑰管理和數(shù)據(jù)更新性能開(kāi)銷是密文訪問(wèn)控制亟待解決的問(wèn)題。現(xiàn) 有的支持動(dòng)態(tài)策略的方案中密鑰索引樹(shù)雖然有效減少了部分權(quán)限更新的代價(jià),但用戶的密 鑰維護(hù)量代價(jià)依舊很高,同時(shí)在權(quán)限更新情況下,高安全級(jí)別數(shù)據(jù)的更新依然需要由數(shù)據(jù) 庫(kù)端完成,并未安全且有效地減少數(shù)據(jù)管理的代價(jià)。
【發(fā)明內(nèi)容】
[0003] 為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種數(shù)據(jù)安全存儲(chǔ)方法,包 括:
[0004] 在密鑰索引樹(shù)中上將資源和用戶分別歸類為資源組和角色,利用密鑰運(yùn)算機(jī)制保 護(hù)節(jié)點(diǎn)密鑰及文件加密密鑰,將再次加密任務(wù)從數(shù)據(jù)庫(kù)端轉(zhuǎn)移到服務(wù)器執(zhí)行,數(shù)據(jù)庫(kù)端只 維護(hù)新生成密鑰的任務(wù)。
[0005] 優(yōu)選地,在所述將資源和用戶分別歸類為資源組和角色之前,該方法還包括:
[0006] 利用基于鑒權(quán)的密鑰運(yùn)算方法構(gòu)建索引樹(shù)架構(gòu),并為用戶分配唯一的角色密鑰, 構(gòu)建基于密鑰運(yùn)算的密鑰索引樹(shù),所述密鑰索引樹(shù)中,對(duì)于父節(jié)點(diǎn)Vi與子節(jié)點(diǎn)Vj.的密鑰ki 和kj,生成鑒權(quán)Tw=kJ?h(ki),其中?為異或操作,h為一個(gè)單向化sh函數(shù),w使任何持 有父節(jié)點(diǎn)密鑰ki的用戶,利用計(jì)算獲得h(ki),并通過(guò)計(jì)算kj.=h化i) ?Ty獲得子節(jié)點(diǎn)VJ 的密鑰kj。
[0007] 優(yōu)選地,所述再次加密用于將文件密鑰再次加密代價(jià)轉(zhuǎn)移到服務(wù)器執(zhí)行,更新葉 節(jié)點(diǎn)非對(duì)稱密鑰加密的文件密鑰;文件密鑰密文長(zhǎng)度不隨文件再次加密次數(shù)的增加而增 加,并且使服務(wù)器在執(zhí)行再次加密的過(guò)程中無(wú)法獲取明文的相關(guān)信息;
[000引所述再次加密的公式如下:
[0009]k' f (gb mod P) r mod P = kf (gS mod巧%〇(! P kf/k' f (gt mod巧a-b,
[0010] 式中,p為大素?cái)?shù)、Z>p為模P的乘法循環(huán)群,g為循環(huán)群Ztp生成元,kf,k'f為密鑰 明文信息,參數(shù)a,b,r滿足條件1《a,b,r《P-2,其中a,b為私鑰,r為加密隨機(jī)參數(shù),其 中k'f(gbmodP)rmodP,kf(gamodP)rmodP為加密kf,k'f所得到的密文的后半部分, 前半部分均為gtmodp;用公鑰gamodP所加密的kf密文轉(zhuǎn)換成使用公鑰gbmodP加密 k'f所得到的密文;再次加密密鑰公式為
[0011] rk = kf/k,f (gt mod F〇a-b;
[0012] 當(dāng)策略發(fā)生改變時(shí),數(shù)據(jù)庫(kù)端生成再次加密密鑰的相關(guān)參數(shù)kf,k'-IfW及a-b,并 將其傳遞給服務(wù)器對(duì)文件密鑰進(jìn)行重新加密即可完成密鑰的更新。
[0013] 優(yōu)選地,所述再次加密包括參數(shù)初始化,文件發(fā)布,密鑰分布和獲取文件步驟;
[0014] 在在參數(shù)初始化階段,數(shù)據(jù)庫(kù)端生成系統(tǒng)初始化公開(kāi)參數(shù)大素?cái)?shù)P,域Z>p、生成元 g、隨機(jī)參數(shù)rW及gfmodP;在文件發(fā)布階段,由密鑰樹(shù)構(gòu)建模塊構(gòu)建密鑰樹(shù)并實(shí)現(xiàn)文件的 加密發(fā)布功能;在數(shù)據(jù)庫(kù)端新增文件f到服務(wù)器過(guò)程中,首先向服務(wù)器請(qǐng)求W根節(jié)點(diǎn)為起 點(diǎn)、路徑為文件f的訪問(wèn)控制向量ACS訊的鑒權(quán)鏈,然后利用數(shù)據(jù)庫(kù)端的密鑰化和鑒權(quán)鏈 計(jì)算尾節(jié)點(diǎn)密鑰vk;獲得密鑰vk之后:首先如果鏈的長(zhǎng)度與ACS(f)長(zhǎng)度相等,則直接利 用vk加密f的對(duì)稱密鑰kf,由文件加密模塊完成文件f的加密和簽名后上傳至服務(wù)器;否 貝1J,根據(jù)ACS(f)創(chuàng)建索引樹(shù)的分支,同時(shí)創(chuàng)建索引樹(shù)節(jié)點(diǎn)和對(duì)節(jié)點(diǎn)分發(fā)密鑰由上至下構(gòu)建 鑒權(quán)鏈,并利用根節(jié)點(diǎn)的非對(duì)稱密鑰加密文件密鑰kf,最后利用文件加密模塊實(shí)現(xiàn)文件的 加密和簽名,將索引樹(shù)節(jié)點(diǎn)信息、鑒權(quán)鏈、數(shù)據(jù)及密鑰密文上傳至服務(wù)器;
[0015] 在文件上傳過(guò)程中:1)字符為1代表其對(duì)應(yīng)的角色具有該文件的訪問(wèn)權(quán)限需要 增加對(duì)應(yīng)角色到該節(jié)點(diǎn)之間的角色鑒權(quán);2)密鑰索引樹(shù)葉節(jié)點(diǎn)對(duì)應(yīng)的密鑰為公私鑰對(duì)(gx modP,X),非葉節(jié)點(diǎn)是隨機(jī)產(chǎn)生的對(duì)稱密鑰所W在創(chuàng)建新的節(jié)點(diǎn)時(shí)需要判斷該節(jié)點(diǎn)是否為 葉節(jié)點(diǎn);
[0016] 所述文件發(fā)布步驟進(jìn)一步包括,其中訪問(wèn)控制矩陣經(jīng)過(guò)算法轉(zhuǎn)換成密鑰索引樹(shù):
[0017] W訪問(wèn)控制矩陣ACS(f),數(shù)據(jù)庫(kù)端的對(duì)稱密鑰化作為輸入,
[001引 1)根據(jù)ACS訊獲取文件f對(duì)應(yīng)的鑒權(quán)鏈;
[0019] 2)計(jì)算出鏈尾節(jié)點(diǎn)的密鑰vk;
[0020] 3)如果ACS(f)〉鏈長(zhǎng),執(zhí)行步驟4),否則執(zhí)行步驟6);
[0021] 4)計(jì)算出鏈相對(duì)于ACS(f)缺少的控制向量ACS(f)';
[002引 5)依次根據(jù)ACS(f)'對(duì)應(yīng)的字符生成索引樹(shù)左右節(jié)點(diǎn),并為新節(jié)點(diǎn)分發(fā)密鑰,最 后的葉節(jié)點(diǎn)分發(fā)公私鑰對(duì),由上至下形成鑒權(quán),如果為右節(jié)點(diǎn)則同時(shí)生成對(duì)應(yīng)角色與該右 節(jié)點(diǎn)的角色鑒權(quán),最后隨機(jī)生成文件f的對(duì)稱密鑰kf;
[0023] 6)調(diào)用文件加密模塊實(shí)現(xiàn)文件和文件密鑰的加密和簽名,并將新創(chuàng)建的索引樹(shù)節(jié) 點(diǎn)、鑒權(quán)鏈、角色鑒權(quán)、文件f及密鑰kf的密文上傳到服務(wù)器;在密鑰分布階段數(shù)據(jù)庫(kù)端根 據(jù)用戶所屬的角色,通過(guò)安全信道將用戶對(duì)應(yīng)的角色密鑰rk發(fā)送給所有用戶,服務(wù)器為每 個(gè)角色對(duì)應(yīng)的用戶分發(fā)對(duì)應(yīng)的外層密鑰rk';
[0024] 在獲取文件階段,利用文件訪問(wèn)模塊獲取文件的明文;用戶向服務(wù)器發(fā)送用戶角 色信息R及文件f的訪問(wèn)控制向量ACS(f),服務(wù)器返回文件對(duì)應(yīng)的鑒權(quán)鏈W及文件密鑰密 文Ckf、文件加密參數(shù)flag、文件密文Cf;在flag為0的情況下,用戶利用持有的角色密鑰 解析鑒權(quán)鏈獲取加密文件密鑰kf的密鑰,此密鑰為非對(duì)稱密鑰(私鑰為a,公鑰為gamod P),進(jìn)而利用解密算法獲取文件密鑰kf,最后根據(jù)kf獲得文件f的明文;在flag為1的情 況下,首先根據(jù)角色外層密鑰解密外層加密獲取文件的密文,進(jìn)而獲得文件f的密鑰kf,進(jìn) 行解密獲取文件f明文數(shù)據(jù)。
[002引本發(fā)明相比現(xiàn)有技術(shù),具有W下優(yōu)點(diǎn):
[0026] 該方法降低了數(shù)據(jù)庫(kù)端維護(hù)密鑰的復(fù)雜度,提高了密鑰安全性;將加密任務(wù)轉(zhuǎn)移 到服務(wù)器執(zhí)行,降低密鑰更新的開(kāi)銷。同時(shí),本發(fā)明利用改進(jìn)的加密策略盡量降低數(shù)據(jù)的返 回頻率,從密鑰和數(shù)據(jù)兩個(gè)方面節(jié)省計(jì)算開(kāi)銷和通信開(kāi)銷。
【附圖說(shuō)明】
[0027] 圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)安全存儲(chǔ)方法的流程圖。
【具體實(shí)施方式】
[002引下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描 述。結(jié)合該樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán) 利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié) W便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供該些細(xì)節(jié),并且無(wú)該些具體細(xì)節(jié)中 的一些或者所有細(xì)節(jié)也可W根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。
[0029] 本發(fā)明的一方面提供了一種數(shù)據(jù)安全存儲(chǔ)方法。圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù) 安全存儲(chǔ)方法流程圖。針對(duì)服務(wù)器的可靠性問(wèn)題,本發(fā)明采用主流應(yīng)用情景服務(wù)器,服務(wù)器 正確執(zhí)行實(shí)施例中所提出的訪問(wèn)控制策略,但是會(huì)嘗試獲取數(shù)據(jù)的明文信息。同時(shí)用戶中 可能存在惡意的用戶,嘗試越權(quán)訪問(wèn)不屬于自己的文件信息。因此,本發(fā)明主要是防止服務(wù) 器獲取數(shù)據(jù)庫(kù)端數(shù)據(jù)的明文信息和用戶越權(quán)訪問(wèn)文件該兩種攻擊方式。
[0030] 本發(fā)明利用索引樹(shù)保留其策略更新優(yōu)勢(shì),并在其基礎(chǔ)上對(duì)資源和用戶進(jìn)行歸類為 資源組和角色,并結(jié)合