專利名稱:一種面向云存儲(chǔ)的高效數(shù)據(jù)加密、更新和訪問控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向云存儲(chǔ)的高效數(shù)據(jù)加密、更新和訪問控制方法,可用于對(duì)存儲(chǔ)在云服務(wù)器上的密文數(shù)據(jù)進(jìn)行直接更新和訪問控制,屬于網(wǎng)絡(luò)信息安全和計(jì)算機(jī)軟件技術(shù)領(lǐng)域
背景技術(shù):
隨著信息時(shí)代的來臨,如何實(shí)現(xiàn)海量數(shù)據(jù)的安全存儲(chǔ)成為ー個(gè)亟待解決的重要問題。云存儲(chǔ)技術(shù)的出現(xiàn)為解決這ー問題提供了良好契機(jī),采用云存儲(chǔ)可以降低企業(yè)的存儲(chǔ)成本,規(guī)避數(shù)據(jù)丟失和損毀等安全風(fēng)險(xiǎn),提高數(shù)據(jù)管理效率和利用率,因而被認(rèn)為是信息技術(shù)領(lǐng)域的下ー個(gè)重要增長(zhǎng)點(diǎn),具有巨大的市場(chǎng)前景。但由于數(shù)據(jù)的遠(yuǎn)程異地存儲(chǔ)也導(dǎo)致了涉及機(jī)密性、加密數(shù)據(jù)更新以及權(quán)限控制等較為棘手的安全問題。云存儲(chǔ)服務(wù)一般由不可信的第三方服務(wù)商提供,因此如何防止服務(wù)商泄漏用戶隱私信息,或者對(duì)用戶數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析挖掘,從而保障數(shù)據(jù)的機(jī)密性就成為云用戶所重點(diǎn)關(guān)注的首要問題。ー種較為簡(jiǎn)單的解決方法是將所有數(shù)據(jù)進(jìn)行常規(guī)加密后存儲(chǔ),但這樣將對(duì)數(shù)據(jù)的修改和檢索操作帶來不便,因此較少被采用。集中信息流控制(DIFC)和差分隱私保護(hù)技術(shù)可以用于防止云計(jì)算過程中的隱私信息泄露,同時(shí)還支持對(duì)計(jì)算結(jié)果的自動(dòng)除密。以用戶信任模型為基礎(chǔ)的隱私管理工具也有助于用戶控制存儲(chǔ)在云服務(wù)器上的敏感信息,但主要用于數(shù)據(jù)存儲(chǔ)和使用階段。目前為止尚未發(fā)現(xiàn)面向云存儲(chǔ)的并且能夠兼顧機(jī)密性、效率和可操作性的數(shù)據(jù)加密方法。如何對(duì)存儲(chǔ)在云服務(wù)器上的加密數(shù)據(jù)進(jìn)行相關(guān)操作是云存儲(chǔ)服務(wù)面臨的另外一個(gè)問題。一方面,考慮到無法信任第三方云服務(wù)器,為了保證數(shù)據(jù)機(jī)密性,一般要求對(duì)數(shù)據(jù)進(jìn)行加密存儲(chǔ);但另一方面,密文存儲(chǔ)形式也對(duì)相關(guān)數(shù)據(jù)操作帶來較大難度。如果直接對(duì)修改后的明文數(shù)據(jù)進(jìn)行重新加密后上傳存儲(chǔ),但相應(yīng)的明文數(shù)據(jù)改動(dòng)又非常小,這樣無疑會(huì)帶來較大的時(shí)間和帶寬損耗,進(jìn)而降低了系統(tǒng)效率。目前對(duì)密文處理的研究主要集中在秘密同態(tài)加密算法設(shè)計(jì)上。早期的同態(tài)算法被證明安全性存在缺陷,因此相關(guān)研究一度陷入停頓。近期IBM研究員Gentry等人利用“理想格(ideal lattice) ”的數(shù)學(xué)對(duì)象構(gòu)造隱私同態(tài)(privacy homomorphism)算法,使人們可以充分地操作加密狀態(tài)的數(shù)據(jù)。雖然相關(guān)研究在理論上取得了一定突破,并重新得到研究者的關(guān)注,但與實(shí)用化階段仍有較大距離。對(duì)第三方云服務(wù)器的不信任還引發(fā)了對(duì)所存儲(chǔ)數(shù)據(jù)的訪問控制問題。由于無法信賴云存儲(chǔ)服務(wù)商執(zhí)行用戶定義的訪問控制策略,通過非傳統(tǒng)訪問控制類手段特別是密碼學(xué)技術(shù)實(shí)施數(shù)據(jù)對(duì)象的訪問控制成為解決該問題的主流研究方向。目前的主要研究成果包括基于層次密鑰生成與分配策略實(shí)施訪問控制的方法、基于屬性的加密算法、基于代理重加密的方法、以及在用戶密鑰或密文中嵌入訪問控制樹的方法等。該類方法的ー個(gè)主要問題是無法解決權(quán)限撤銷,因此需要對(duì)授權(quán)附加時(shí)間約束或引入第三方可信機(jī)構(gòu)實(shí)現(xiàn)授權(quán)管理,目前仍存在較多問題有待解決。綜上所述,云存儲(chǔ)服務(wù)中明文數(shù)據(jù)的遠(yuǎn)程異地存儲(chǔ)方式要求數(shù)據(jù)加密方法同時(shí)兼顧機(jī)密性和可操作性,對(duì)第三方存儲(chǔ)服務(wù)商的不信任也使得密文數(shù)據(jù)更新和數(shù)據(jù)訪問控制面臨較大困難,因此需要提出能夠解決上述問題的高效方法。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明設(shè)計(jì)了“一種面向云存儲(chǔ)的高效數(shù)據(jù)加密、更新和訪問控制方法”,能夠以相對(duì)較小的代價(jià)實(shí)現(xiàn)對(duì)數(shù)據(jù)的高效加密、密文更新和訪問控制等目標(biāo),具體包括三項(xiàng)技術(shù)明文數(shù)據(jù)的分塊加密置換技術(shù)、密文數(shù)據(jù)的直接更新技術(shù)和對(duì)云端數(shù)據(jù)的訪問控制技術(shù)。為實(shí)現(xiàn)本發(fā)明的目標(biāo)之一,采用的技術(shù)方案概述如下一種面向云存儲(chǔ)的數(shù)據(jù)分塊加密置換技術(shù),該加密算法的主要目標(biāo)是對(duì)固定長(zhǎng)度的明文數(shù)據(jù)塊進(jìn)行快速加密處理,使得除第一數(shù)據(jù)塊之外的任何數(shù)據(jù)塊加密結(jié)果同時(shí)依賴于隨機(jī)密鑰和前ー個(gè)數(shù)據(jù)塊,再通過隨機(jī)置換操作混淆各加密數(shù)據(jù)塊的順序關(guān)系。其步驟包括I)明文數(shù)據(jù)M被分割為N個(gè)長(zhǎng)度為L(zhǎng)字節(jié)的明文-MpM2........Mn,若Mn不足
L字節(jié)則填充至L字節(jié)。2)生成長(zhǎng)度為L(zhǎng)字節(jié)的ニ進(jìn)制偽隨機(jī)比特串Ke作為初始明文加密密鑰,隨后計(jì)算
各明文塊對(duì)應(yīng)的密文塊M1), i = 2,3,......,N0其中θ為ニ進(jìn)
制逐位異或操作,H(m)為安全雜湊函數(shù),E(k,m)為輸出長(zhǎng)度為L(zhǎng)字節(jié)的加密算法。3)構(gòu)造隨機(jī)置換Pc,在該隨機(jī)置換作用下原密文塊序列C1X2Xp......、CN轉(zhuǎn)變
為新密文塊序列C'2、C' 3........C1 N。4)構(gòu)造該數(shù)據(jù)文件的訪問控制列表ACL,經(jīng)數(shù)據(jù)所有者私鑰簽字后連同新密文塊序列被依次發(fā)送到云服務(wù)器進(jìn)行存儲(chǔ),服務(wù)器存儲(chǔ)成功后向數(shù)據(jù)所有者反饋ー個(gè)唯一的數(shù)據(jù)文件標(biāo)識(shí)ID。本發(fā)明內(nèi)容之一的關(guān)鍵點(diǎn)是將明文數(shù)據(jù)進(jìn)行分割處理,對(duì)各明文塊單獨(dú)進(jìn)行加密而不是對(duì)明文數(shù)據(jù)整體加密,這種分治策略消除了傳統(tǒng)加密方法中各明文塊間的相關(guān)性和依賴性,使得在不改動(dòng)其它密文塊的情況下修改某個(gè)密文塊成為可能。隨機(jī)置換操作的引入則進(jìn)ー步保護(hù)了加密數(shù)據(jù)在不可信云存儲(chǔ)服務(wù)器上的安全性。為實(shí)現(xiàn)本發(fā)明的目標(biāo)之ニ,采用的技術(shù)方案概述如下ー種面向云存儲(chǔ)的密文數(shù)據(jù)更新技術(shù),該方法允許在明文發(fā)生變化時(shí)直接對(duì)相應(yīng)密文進(jìn)行修改,而不是重新加密整個(gè)明文數(shù)據(jù)并上傳。根據(jù)對(duì)明文操作的不同情況,密文更新方式可分為三種情況明文塊插入、明文塊修改和明文塊刪除。其步驟包括A.在第i個(gè)位置插入新的明文塊M' 1:I)若i = !,則新的ロニん^^い新的。=!^ ^^”1,),M丨),其余新的C1為原來的
j = 3,4,......,N+1,向服務(wù)器發(fā)送新的C1,C2,同時(shí)更新隨機(jī)置換Pc= [L1,L2^L3........
Ln」為[Ln+i、Li、L2、し3、.......Ln」;2)若 i = N+1,則新的CN+1= Ke Θ E(H(Mn), M’,),其余新的 C」.為原來的 Cj, j = I,
2,......,N,向服務(wù)器發(fā)送新的CN+1,同時(shí)更新隨機(jī)置換Pc= [L1^a3........LJ為[Li、
し2、し3、......、Ln、Ln+i」;3)除上述兩種情況外,新的C1= Ke E(H(M,.,), Μ’,),新的C1+,= KeeE(H(M_,),M1),其余新的或?yàn)樵瓉淼膓(j < i)或?yàn)樵瓉淼?V1G > i+i),向服務(wù)器發(fā)送新的Ci、ci+1,同時(shí)
更新隨機(jī)置換 Pc = [U、L2........Lh、L1^ Li+1......Ln]為[Li、L2........Li^1 > LN+1、L1^
Lj+i......Ln]。 B.修改第i個(gè)位置的明文塊M1為IT II)若 i = l,則新的C1=Ke M’,,新的C2=KeθE(H(M'1), M2),其余新的 Cj 為原來的 Cj,j = 3,4,......,N,向服務(wù)器發(fā)送新的C:、C2 ;2)若 i = N,則新的 Cn= Ke E(H(Mn.,), M',),其余新的 C」.為原來的 Cj, j = I,2,......,N-1,向服務(wù)器發(fā)送新的CN;3)除上述兩種情況外,新的M\),新的C1+1= Ke E(H(M\), M,+1),其
余新的Cj或?yàn)樵瓉淼腃j, j = 1,2,......, N,同時(shí)j關(guān)i且j關(guān)i+1 ;向服務(wù)器發(fā)送新的
Ci> Ci+1。修改明文塊時(shí)隨機(jī)置換P。保持不變。C.刪除第i個(gè)位置的明文塊Mi I)若 i = 1,則新的M3),其余新的 Cj 為原來的 CJ+1,
j = 3,4,......,N-I,命令服務(wù)器刪除原來的C1,并將原來的C2、C3替換為新發(fā)送的CpC2,
同時(shí)更新隨機(jī)置換 Pc = [U、L2、L3........Ln]為[L2、L3........Ln];2)若i = N,命令服務(wù)器刪除原來的CN,其余新的も為原來的も,j = 1,2,......,
N-I,同時(shí)更新隨機(jī)置換 Pc = [L^L2.........Ln-^Ln]為[L2、L3........LN_J ;3)除上述兩種情況外,新的(;=Κ6 Ε(Η(Μ,_,), Μ,+1),其余新的も或?yàn)樵瓉淼腃j(j< i)或?yàn)樵瓉淼腃VJj > i),命令服務(wù)器刪除原來的Ci,并將原來的Ci+1替換為新發(fā)送的
Ci,同時(shí)更新隨機(jī)置換 Pc = [L1, L2........Lh、Li, Li+1......LJ 為[Lp L2........Lh、
Lj+i......Ln]。本發(fā)明內(nèi)容之ニ的關(guān)鍵點(diǎn)是將各明文塊所對(duì)應(yīng)的密文塊視作相對(duì)獨(dú)立的個(gè)體,這樣當(dāng)明文塊局部發(fā)生變化時(shí)對(duì)應(yīng)的密文變化結(jié)果受到限制,影響范圍不會(huì)超過兩個(gè)連續(xù)的密文塊,從而方便直接對(duì)所存儲(chǔ)的密文數(shù)據(jù)進(jìn)行更新。由于隨機(jī)置換操作的存在,服務(wù)器也無從得知發(fā)生變化的具體明文位置。為實(shí)現(xiàn)本發(fā)明的目標(biāo)之三,采用的技術(shù)方案概述如下一種面向云存儲(chǔ)的數(shù)據(jù)訪問控制技術(shù),若其他用戶申請(qǐng)使用該加密數(shù)據(jù),則首先由服務(wù)器檢查該用戶是否具備相應(yīng)訪問權(quán)限,然后將加密數(shù)據(jù)再次處理后發(fā)給申請(qǐng)者,并且通知數(shù)據(jù)所有者向中請(qǐng)者提供解密數(shù)據(jù)所需要的材料,最終由根據(jù)密鑰材料解密得到明文數(shù)據(jù)。其步驟包括I)用戶向服務(wù)器申請(qǐng)?jiān)L問加密數(shù)據(jù)文件,服務(wù)器比對(duì)用戶身份和數(shù)據(jù)文件訪問列表若無相應(yīng)權(quán)限則拒絕用戶申請(qǐng)并結(jié)束此過程;否則繼續(xù)以下步驟。2)服務(wù)器生成長(zhǎng)度為L(zhǎng)字節(jié)的ニ進(jìn)制偽隨機(jī)比特串Ks,對(duì)于所存儲(chǔ)的各密文塊C' i 計(jì)算Cn1= KsφC’,,i = 1,2,......,N。3)服務(wù)器構(gòu)造偽隨機(jī)置換Ps,在該置換作用下序列C" i、C" 2、C" 3.......C" N
轉(zhuǎn)變?yōu)樾蛄衏" ' i、C" ' 2、C" ' 3........C" ' N,該新密文塊序列隨后被依次發(fā)送到
用戶端進(jìn)行存儲(chǔ)。4)服務(wù)器向數(shù)據(jù)所有者發(fā)送申請(qǐng)數(shù)據(jù)的用戶ID、所申請(qǐng)的數(shù)據(jù)文件ID、隨機(jī)生成的密鑰Ks、以及偽隨機(jī)置換Ps,上述數(shù)據(jù)經(jīng)服務(wù)器私鑰簽名并用數(shù)據(jù)所有者公鑰加密后發(fā)送給數(shù)據(jù)所有者。5)數(shù)據(jù)所有者再次檢查數(shù)據(jù)申請(qǐng)者權(quán)限是否匹配,若匹配則計(jì)算密文塊序列
c" ' pC" ' 2、C" ' 3........C" ' N相對(duì)于密文塊序列CpC2J3........Cn的最終置
換ら=P-1C Θ ΡΛ,其中Θ表示兩個(gè)置換的級(jí)聯(lián)操作。6)數(shù)據(jù)所有者將密鑰KeeKs、最終置換Pf簽名并用數(shù)據(jù)申請(qǐng)者公鑰加密后發(fā)送給數(shù)據(jù)申請(qǐng)者。明文數(shù)據(jù)的加密過程如圖I所示。明文數(shù)據(jù)文件首先被分割為N個(gè)固定長(zhǎng)度的明文塊,計(jì)算除最后ー個(gè)明文塊外的其它明文塊的雜湊值,每個(gè)雜湊值均作為用以加密下一 個(gè)明文塊的加密密鑰,從而得到第一個(gè)明文塊和其余N-I個(gè)密文塊。隨后通過選定的偽隨機(jī)比特串對(duì)上一歩得到的結(jié)果進(jìn)行逐位ニ進(jìn)制比特異或,并通過隨機(jī)置換操作得到N個(gè)密文塊,但與明文塊間的對(duì)應(yīng)次序已經(jīng)被打亂。這些密文塊被發(fā)送到云服務(wù)器存儲(chǔ),但數(shù)據(jù)所有者需要保密所采用的偽隨機(jī)比特串和置換操作。在第一個(gè)位置插入明文塊所對(duì)應(yīng)的密文更新過程如圖2所示。此時(shí)明文數(shù)據(jù)由N個(gè)明文塊變?yōu)镹+1個(gè)明文塊,新明文塊變?yōu)榈谝粋€(gè)明文塊,原第i個(gè)明文塊變?yōu)榈趇+Ι個(gè)明文塊。首先使用選定的偽隨機(jī)比特串對(duì)新明文塊進(jìn)行逐位ニ進(jìn)制比特異或操作得到新的第ー個(gè)密文塊,使用新明文塊的雜湊值和偽隨機(jī)比特串對(duì)原第一個(gè)明文塊加密得到新的第二個(gè)密文塊。然后更新置換操作,并通過置換更新存儲(chǔ)第一個(gè)密文塊并更新第二個(gè)密文塊。在最后ー個(gè)位置插入明文塊所對(duì)應(yīng)的密文更新過程如圖3所示。此時(shí)明文數(shù)據(jù)由N個(gè)明文塊變?yōu)镹+1個(gè)明文塊,新明文塊變?yōu)樽詈螬`個(gè)明文塊,其它明文塊序位不變。首先計(jì)算原最后ー個(gè)明文塊的雜湊值,使用該雜湊值和偽隨機(jī)比特串對(duì)最后ー個(gè)明文塊加密得到新的最后ー個(gè)密文塊。然后更新置換操作,并通過置換更新存儲(chǔ)最后ー個(gè)密文塊。在中間位置插入明文塊所對(duì)序的密文更新過程如圖4所示。此時(shí)明文數(shù)據(jù)由N個(gè)明文塊變?yōu)镹+1個(gè)明文塊,新明文塊變?yōu)榈趇個(gè)明文塊,第i至N個(gè)明文塊依次變?yōu)榈趇+1至N+1個(gè)明文塊,其它明文塊序位不變。首先計(jì)算原第i個(gè)明文塊的雜湊值,使用第i+Ι和第i個(gè)雜湊值和偽隨機(jī)比特串分別對(duì)第i和第i+Ι個(gè)明文塊加密得到兩個(gè)新的密文塊。然后更新置換操作,并通過置換更新存儲(chǔ)第i個(gè)密文塊并更新第i+Ι個(gè)密文塊。修改第一個(gè)位置明文塊所對(duì)應(yīng)的密文更新過程如圖5所示。首先使用選定的偽隨機(jī)比特串重新對(duì)第一個(gè)明文塊進(jìn)行逐位ニ進(jìn)制比特異或操作得到第一個(gè)密文塊,使用第一個(gè)明文塊的雜湊值和偽隨機(jī)比特串對(duì)第ニ個(gè)明文塊重新加密得到第ニ個(gè)密文塊。然后更新置換操作,并通過置換更新替換存儲(chǔ)第一個(gè)和第二個(gè)密文塊。修改其它位置明文塊所對(duì)應(yīng)的密文更新過程如圖6所示。首先計(jì)算原第i個(gè)明文塊的雜湊值,使用第i_l和第i個(gè)雜湊值和偽隨機(jī)比特串分別對(duì)第i和第i+Ι個(gè)明文塊加密得到兩個(gè)新的密文塊。然后更新置換操作,并通過置換更新替換存儲(chǔ)第i個(gè)和第i+Ι個(gè)密文塊。刪除第一個(gè)位置明文塊所對(duì)應(yīng)的密文更新過程如圖7所示。此時(shí)明文數(shù)據(jù)由N個(gè)明文塊變?yōu)镹-I個(gè)明文塊,原第二個(gè)明文塊變?yōu)榈谝粋€(gè)明文塊,原第i個(gè)明文塊變?yōu)榈趇_l個(gè)明文塊。首先使用選定的偽隨機(jī)比特串對(duì)第一個(gè)明文塊進(jìn)行逐位ニ進(jìn)制比特異或操作得到第一個(gè)密文塊,使用第一個(gè)明文塊的雜湊值和偽隨機(jī)比特串對(duì)原第三個(gè)明文塊加密得到第二個(gè)密文塊。然后更新置換操作,并通過置換更新刪除原第一個(gè)密文塊并更新新的第一個(gè)密文塊。刪除中間位置明文塊所對(duì)應(yīng)的密文更新過程如圖8所示。此時(shí)明文數(shù)據(jù)由N個(gè)明文塊變?yōu)镹-I個(gè)明文塊,原第i+Ι至第N個(gè)明文塊變?yōu)榈趇至第N-I個(gè)明文塊,i為刪除位置,其它明文塊序位不變。首先使用第i_l個(gè)明文塊的雜湊值和偽隨機(jī)比特串對(duì)原第i+1個(gè)明文塊加密得到第i個(gè)密文塊。然后更新置換操作,并通過置換更新刪除原第i個(gè)密文塊并更新新的第i個(gè)密文塊。密文數(shù)據(jù)的解密過程如圖9所示。作為前提條件,數(shù)據(jù)申請(qǐng)者應(yīng)該通過服務(wù)器獲得數(shù)據(jù)密文,并通過數(shù)據(jù)所有者獲得密鑰材料(包括兩個(gè)偽隨機(jī)比特串的異或Ks Ke和組合置換P—1。οΡΛ)。首先使用組合置 7)數(shù)據(jù)申請(qǐng)者根據(jù)最終置換ら先找出第一加密塊C",i,,利用密鑰Kj Ks計(jì)算出對(duì)應(yīng)明文M, = C"V Ke Ks= C"r Ks Ke Ks = Ke M1 田 Ks Ke Ks= M1,同時(shí)計(jì)算 H(M1)。8)數(shù)據(jù)申請(qǐng)者根據(jù)最終置換Pf先找出第i個(gè)加密塊
C " ' i , (i = 2,3,......,N),利用H(Mh)和密鑰Ke Ks計(jì)算出對(duì)應(yīng)明
文MfD^M,),C"V Ke lCs) = D(H(M,,). C", Ks Ke Ks) = DCH(Mm),
Ke E(H(M,.,). M1) KseKe Ks) = D(H(M,.i),0, M1)) = M1, M=M1HM2H……||MN’ 其中
D(k, c)為輸出長(zhǎng)度為L(zhǎng)字節(jié)的解密算法,I I為數(shù)據(jù)塊的級(jí)聯(lián)操作。本發(fā)明內(nèi)容之三的關(guān)鍵點(diǎn)是采用了雙重異或運(yùn)算和置換操作,使得數(shù)據(jù)的解密不僅依賴服務(wù)器,更多的還依賴于數(shù)據(jù)所有者,后者從而掌握了更多的主動(dòng)性,可以實(shí)現(xiàn)除訪問控制列表外的靈活授權(quán)。這ー方法還確保了每次對(duì)相同數(shù)據(jù)的訪問申請(qǐng)總會(huì)得到不同的加密反饋結(jié)果,其對(duì)應(yīng)的解密密鑰和組合置換也是唯一的。與現(xiàn)有結(jié)果相比,本發(fā)明具有以下特點(diǎn)I)分塊加密置換技術(shù)將數(shù)據(jù)分成固定長(zhǎng)度的比特串,然后再依次單獨(dú)進(jìn)行加密并置換次序,從而消除了不同數(shù)據(jù)塊間的空間關(guān)聯(lián)性,增強(qiáng)了數(shù)據(jù)的機(jī)密性,也有利于對(duì)數(shù)據(jù)進(jìn)行局部修改。2)密文更新技術(shù)可以直接修改變動(dòng)的明文所對(duì)應(yīng)的密文塊,避免了重新加密整個(gè)數(shù)據(jù)文件并上傳至云服務(wù)器端,提高了帶寬利用和存儲(chǔ)效率。3)對(duì)云服務(wù)器端數(shù)據(jù)的訪問控制技術(shù)通過雙重加密運(yùn)算和二次置換操作強(qiáng)化了數(shù)據(jù)所有者對(duì)于云端數(shù)據(jù)的控制能力,任何對(duì)明文數(shù)據(jù)的訪問最終都需要獲得數(shù)據(jù)所有者的許可,同時(shí)也較大程度的緩解了云服務(wù)器濫用用戶數(shù)據(jù)的風(fēng)險(xiǎn)。4)對(duì)數(shù)據(jù)的訪問控制由云服務(wù)器和數(shù)據(jù)所有者同時(shí)參與,前者根據(jù)后者制定的訪問控制列表決定用戶對(duì)密文的訪問權(quán)限,后者則最終決定已經(jīng)獲取密文的用戶是否最終獲得對(duì)應(yīng)的明文數(shù)據(jù)結(jié)果。由于密鑰材料數(shù)據(jù)傳輸量相對(duì)較小,這種分級(jí)控制模式有利于捉高系統(tǒng)的傳輸效率,權(quán)限控制方式也更加靈活方便。
圖I明文數(shù)據(jù)加密算法流程圖2在第一個(gè)位置插入明文塊的密文更新圖3在最后ー個(gè)位置插入明文塊的密文更新圖4在中間位置插入明文塊的密文更新
圖5修改第一個(gè)位置明文塊的密文更新圖6修改其它位置明文塊的密文更新圖7刪除第一個(gè)位置明文塊的密文更新圖8刪除中間位置明文塊的密文更新圖9密文數(shù)據(jù)解密算法流程
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明做進(jìn)ー步詳細(xì)的說明,但不以任何方式限制本發(fā)明的范圍。換對(duì)從服務(wù)器獲得的密文進(jìn)行操作得到與N個(gè)明文塊對(duì)應(yīng)次序一致的N個(gè)密文塊,然后使用1^ん對(duì)N個(gè)密文塊進(jìn)行逐位ニ進(jìn)制比特異或操作得到第一個(gè)明文塊和N-I后續(xù)密文塊,最后使用前ー個(gè)明文塊的雜湊值對(duì)后一個(gè)密文塊依次進(jìn)行解密就可以得到完整的明文數(shù)據(jù)。
權(quán)利要求
1.一種面向云存儲(chǔ)的高效數(shù)據(jù)加密、更新和訪問控制方法,步驟包括 1)數(shù)據(jù)所有者對(duì)數(shù)據(jù)進(jìn)行分塊、加密及置換處理,然后將密文塊存儲(chǔ)至云服務(wù)器; 2)數(shù)據(jù)所有者根據(jù)對(duì)明文數(shù)據(jù)的修改結(jié)果直接修改云服務(wù)器上的相關(guān)密文塊; 3)數(shù)據(jù)使用者向云服務(wù)器申請(qǐng)對(duì)數(shù)據(jù)的訪問,若具備相應(yīng)權(quán)限則獲取對(duì)應(yīng)密文塊; 4)數(shù)據(jù)使用者向數(shù)據(jù)所有者申請(qǐng)對(duì)密文的解密,若具備相應(yīng)權(quán)限則獲取對(duì)應(yīng)解密參數(shù); 5)數(shù)據(jù)使用者用解密參數(shù)對(duì)密文進(jìn)行解密和置換,從而得到原始明文數(shù)據(jù)。
2.如權(quán)利要求I所述的方法,其特征在于,所述步驟I)對(duì)數(shù)據(jù)的加密過程包括以下步驟 1-1)將明文數(shù)據(jù)文件劃分為等長(zhǎng)的明文數(shù)據(jù)塊,最后一個(gè)明文塊根據(jù)需要作適當(dāng)填充。
1-2)除第一數(shù)據(jù)塊外,用前一數(shù)據(jù)塊的雜湊值作為密鑰對(duì)當(dāng)前數(shù)據(jù)塊進(jìn)行分組加密。
1-3)生成二進(jìn)制偽隨機(jī)序列,用以和第一明文塊和其它密文塊進(jìn)行二進(jìn)制異或運(yùn)算。
1-4)設(shè)定數(shù)據(jù)訪問控制列表.選擇置換操作,將各密文塊按隨機(jī)次序發(fā)送到云服務(wù)器進(jìn)行存儲(chǔ)。
3.如權(quán)利要求I所述的方法,其特征在于,所述步驟2)對(duì)密文的更新包括以下幾種情況 2-1)明文塊插入時(shí)的密文更新方式 2-1-1)如果要插入的明文塊位于明文數(shù)據(jù)的第一個(gè)位置; 2-1-1-1)將新的明文塊作為第一明文塊,用所生成的二進(jìn)制偽隨機(jī)序列對(duì)其進(jìn)行二進(jìn)制異或 2-1-1-2)將原第一明文塊作為第二明文塊,用新明文塊的雜湊值對(duì)其進(jìn)行分組加密; 2-1-1-3)用所生成的二進(jìn)制偽隨機(jī)序列對(duì)第二明文塊的分組加密結(jié)果進(jìn)行二進(jìn)制異或. 2-1-1-4)更新原隨機(jī)置換,上傳兩個(gè)新的密文塊及對(duì)應(yīng)置換位置; 2-1-1-5)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置替換原第一密文塊,并增加新的第一密文塊的存儲(chǔ)。
2-1-2)如果要插入的明文塊位于明文數(shù)據(jù)的最后一個(gè)位置 2-1-2-1)將原新的明文塊作為最后明文塊,用原最后用文塊的雜湊值對(duì)其進(jìn)行分組加密; 2-1-2-2)用所生成的二進(jìn)制偽隨機(jī)序列對(duì)新的明文塊的分組加密結(jié)果進(jìn)行二進(jìn)制異或· 2-1-2-3)更新原隨機(jī)置換,上傳新的密文塊及對(duì)應(yīng)位置; 2-1-2-4)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置替換增加新的最后密文塊的存儲(chǔ)。
2-1-3)如果要插入的明文塊位于明文數(shù)據(jù)的中間位置 2-1-3-1)將當(dāng)前位置明文塊作為下一明文塊,新的明文塊作為當(dāng)前位置明文塊; 2-1-3-2)用前一明文塊的雜湊值對(duì)當(dāng)前明文塊進(jìn)行分組加密,再用當(dāng)前明文塊的雜湊值對(duì)下一明文塊進(jìn)行分組加密 2-1-3-3)用二進(jìn)制偽隨機(jī)序列對(duì)當(dāng)前明文塊和下一明文塊的分組加密結(jié)果進(jìn)行二進(jìn)制異或; 2-1-3-4)更新原隨機(jī)置換,上傳兩個(gè)新的密文塊及對(duì)應(yīng)置換位置; 2-1-3-5)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置替換兩密文塊。
2-2)明文塊修改時(shí)的密文更新方式 2-2-1)如果被修改的明文塊為第一個(gè)明文塊 2-2-1-1)用所生成的二進(jìn)制偽隨機(jī)序列對(duì)修改明文塊進(jìn)行二進(jìn)制異或; 2-2-1-2)用修改明文塊的雜湊值對(duì)第二個(gè)明文塊進(jìn)行分組加密,然后進(jìn)行二進(jìn)制異或. 2-2-1-3)上傳新的密文塊及對(duì)應(yīng)置換位置; 2-2-1-4)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置替換原來的兩個(gè)密文塊。
2-2-2)如果被修改的明文塊為其它位置明文塊 2-2-2-1)用前一明文塊的雜湊值加密修改明文塊,用修改明文塊的雜湊值加密下一明文塊; 2-2-2-2)用所生成的二進(jìn)制偽隨機(jī)序列對(duì)兩個(gè)明文塊的分組加密結(jié)果進(jìn)行二進(jìn)制異或. 2-2-2-3)上傳新的密文塊及對(duì)應(yīng)置換位置,云服務(wù)器根據(jù)對(duì)應(yīng)置換位置替換兩個(gè)新的密文塊。
2-3)明文塊刪除時(shí)的密文更新方式; 2-3-1)如果被刪除的明文塊為第一個(gè)明文塊 2-3-1-1)第一明文塊更新為第一明文塊,用二進(jìn)制偽隨機(jī)序列對(duì)原第二明文塊進(jìn)行二進(jìn)制異或; 2-3-1-2)更新原隨機(jī)置換,上傳新的第一密文塊及對(duì)應(yīng)置換位置; 2-3-1-3)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置刪除原第一密文塊并替換原第二密文塊。
2-3-2)如果被刪除的明文塊位于明文數(shù)據(jù)的最后一個(gè)位置 2-3-2-1)更新原隨機(jī)置換,刪除最后密文塊并給出對(duì)應(yīng)置換位置; 2-3-2-2)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置刪除原來的最后密文塊。
2-3-3)如果被刪除的明文塊為其它位置明文塊 2-3-3-1)用前一明文塊的雜湊值分組加密下一明文塊; 2-3-3-2)用所生成的二進(jìn)制偽隨機(jī)序列對(duì)下一明文塊的分組加密結(jié)果進(jìn)行二進(jìn)制異或. 2-3-3-3)更新原隨機(jī)置換,上傳新的下一密文塊、刪除當(dāng)前密文塊并給出對(duì)應(yīng)置換位置; 2-3-3-4)云服務(wù)器根據(jù)對(duì)應(yīng)置換位置刪除當(dāng)前密文塊,并替換下一新的密文塊。
4.如權(quán)利要求I所述的方法,其特征在于,所述步驟3)對(duì)密文的獲取過程包括以下步驟 3-1)申請(qǐng)者向云服務(wù)器提出數(shù)據(jù)訪問請(qǐng)求,服務(wù)器檢查申請(qǐng)者是否具備指定訪問權(quán)限; 3-2)服務(wù)器生成二進(jìn)制偽隨機(jī)序列,用以對(duì)所有密文塊進(jìn)行二進(jìn)制異或運(yùn)算; 3-3)服務(wù)器選擇隨機(jī)置換,再次將密文數(shù)據(jù)塊以隨機(jī)次序發(fā)送給申請(qǐng)者。
5.如權(quán)利要求I所述的方法,其特征在于,所述步驟4)對(duì)解密材料的獲取過程包括以下步驟 4-1)服務(wù)器向數(shù)據(jù)所有者發(fā)送申請(qǐng)者ID、所用二進(jìn)制隨機(jī)序列以及置換操作等相關(guān) 信息; 4-2)數(shù)據(jù)所有者檢查申請(qǐng)者訪問權(quán)限,根據(jù)服務(wù)器反饋信息向申請(qǐng)者提供解密密鑰和最終置換。
6.如權(quán)利要求I所述的方法,其特征在于,所述步驟5)對(duì)密文的解密過程包括以下步驟 5-1)數(shù)據(jù)申請(qǐng)者根據(jù)最終置換先找出第一加密塊,利用解密密鑰計(jì)算出對(duì)應(yīng)明文,同時(shí)計(jì)算雜湊值。
5-2)數(shù)據(jù)申請(qǐng)者根據(jù)最終置換找出每個(gè)加密塊,利用前一明文塊的雜湊值和解密密鑰計(jì)算出對(duì)應(yīng)明文。
全文摘要
本發(fā)明公開了一種面向云存儲(chǔ)的高效數(shù)據(jù)加密、更新和訪問控制方法,屬于網(wǎng)絡(luò)信息安全和計(jì)算機(jī)軟件技術(shù)領(lǐng)域。本發(fā)明所設(shè)計(jì)方法可以實(shí)現(xiàn)對(duì)明文數(shù)據(jù)的快速分塊加密置換,既保證了數(shù)據(jù)的機(jī)密性,又可以防止云服務(wù)器對(duì)用戶數(shù)據(jù)進(jìn)行濫用;可以實(shí)現(xiàn)對(duì)密文數(shù)據(jù)的高效更新,而不用重新加密并上傳整個(gè)數(shù)據(jù)文件,提高了系統(tǒng)傳輸和存儲(chǔ)效率;可以實(shí)現(xiàn)對(duì)數(shù)據(jù)文件的雙重權(quán)限控制,密文訪問權(quán)限由數(shù)據(jù)所有者制定但由云服務(wù)器執(zhí)行,解密密文所需要的密鑰材料則由數(shù)據(jù)所有者控制,從而加強(qiáng)了對(duì)數(shù)據(jù)文件的控制,并且可以靈活實(shí)現(xiàn)權(quán)限撤銷。本發(fā)明的方法能以較小的代價(jià)實(shí)現(xiàn)對(duì)明文數(shù)據(jù)的加密和對(duì)密文數(shù)據(jù)的處理,而對(duì)明文數(shù)據(jù)的雙重置換也使得數(shù)據(jù)申請(qǐng)者每次申請(qǐng)都得到全然不同的密文結(jié)果并防止了云服務(wù)器對(duì)用戶數(shù)據(jù)的濫用,進(jìn)一步增強(qiáng)了數(shù)據(jù)的保密性,因此在數(shù)據(jù)云存儲(chǔ)方面具有較好的應(yīng)用前景。
文檔編號(hào)H04L29/08GK102624708SQ20121004259
公開日2012年8月1日 申請(qǐng)日期2012年2月23日 優(yōu)先權(quán)日2012年2月23日
發(fā)明者余斌霄, 劉君強(qiáng), 甘志剛, 蔣曉寧 申請(qǐng)人:浙江工商大學(xué)