本發(fā)明具體涉及一種云環(huán)境下多用戶文件共享控制方法。
背景技術(shù):
:云存儲(chǔ)服務(wù)已經(jīng)被IT行業(yè)公認(rèn)為最具有發(fā)展前景的數(shù)據(jù)存儲(chǔ)方式,各個(gè)領(lǐng)域的用戶都可以將海量數(shù)據(jù)存儲(chǔ)在云服務(wù)器中,并可以讓其他合法的用戶共享這些數(shù)據(jù),讓這些數(shù)據(jù)產(chǎn)生更大的應(yīng)用價(jià)值。例如,在醫(yī)療系統(tǒng)中,將病人的電子病歷存放到云服務(wù)器中,并提供在線病歷檢索與調(diào)用,既可以減少病人體檢費(fèi)用,也可以幫助其他醫(yī)生選擇更好的醫(yī)療方案等。表1是經(jīng)過(guò)簡(jiǎn)化的某醫(yī)療單位電子病例信息表,表的內(nèi)容包括個(gè)人基本信息(姓名、性別、年齡)、病情陳述、病檢數(shù)據(jù)、診斷結(jié)果、治療,共7個(gè)字段。對(duì)統(tǒng)計(jì)部門(mén)來(lái)說(shuō),性別或年齡、診斷結(jié)果可以作為某種疾病的分析和預(yù)測(cè)。對(duì)某個(gè)醫(yī)生來(lái)說(shuō),病情陳述、病檢數(shù)據(jù)等可以作為診斷的依據(jù)。表1某醫(yī)療機(jī)構(gòu)電子病歷樣本NameAgeSex病情陳述病檢數(shù)據(jù)診斷結(jié)果治療張三20男偏頭痛CT未見(jiàn)異常血管性頭痛天麻蜜環(huán)菌片…………………李四50女咳嗽X光照射,肺紋理增粗肺炎青霉素當(dāng)文件擁有者FO(FileOwner)將文件加密后存儲(chǔ)到云服務(wù)器中,并交給云服務(wù)提供商CSP(CloudServiceProvider)管理時(shí),由于FO的文件不是對(duì)所有人開(kāi)放的,包括CSP,只有經(jīng)過(guò)FO授權(quán)的文件使用者FU(FileUser)才能共享文件中的內(nèi)容,因此,這需要建立一個(gè)有效的安全機(jī)制來(lái)保護(hù)存儲(chǔ)在云服務(wù)器中的共享數(shù)據(jù)不被非授權(quán)用戶訪問(wèn)。例如醫(yī)生只能看到屬于本人專業(yè)下的病人病歷,某個(gè)病人只能看到屬于本人的病歷,其他人的病例就成為了一種隱私,應(yīng)該是保密的。近年來(lái),國(guó)內(nèi)外學(xué)者利用代理重加密等技術(shù),解決了上面多個(gè)文件使用者FU共享同一個(gè)文件的問(wèn)題。1998年,Blaze等學(xué)者首次提出了代理重加密概念。在代理重加密方案中,文件擁有者FO先將明文加密,再用自己的私鑰和文件使用者FU的公鑰生成一個(gè)重加密密鑰,接著FO將密文和重加密密鑰存放到半可信的代理服務(wù)器中。當(dāng)FU申請(qǐng)共享文件時(shí),代理服務(wù)器用FU的重加密密鑰對(duì)密文再加密,將重加密的密文發(fā)送給FU。FU只要用自己的私鑰解密密文就可以直接得到明文了。在這個(gè)過(guò)程中,明文、FO和FU的私鑰都不會(huì)暴露給代理服務(wù)器。在FU共享文件時(shí),F(xiàn)O也不需要保持在線狀態(tài)。通過(guò)代理重加密方案可以防止明文和用戶的私鑰泄露,同時(shí)也提高了共享文件的效率。目前,在利用代理重加密技術(shù)實(shí)現(xiàn)文件的多個(gè)用戶共享方案中,大都是使用Elgamal加密算法或RSA加密算法,以及雙線性對(duì)運(yùn)算。Elgamal加密算法和RSA加密算法主要使用的是有限域的模冪運(yùn)算,計(jì)算成本高,不能抵抗量子計(jì)算攻擊。隨著智能手機(jī)、平板電腦等資源受限的移動(dòng)終端在云計(jì)算環(huán)境中的廣泛應(yīng)用,針對(duì)云環(huán)境下多用戶文件共享問(wèn)題,現(xiàn)有方案中密文占用的存儲(chǔ)空間、計(jì)算效率等方面還需要進(jìn)一步改進(jìn)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供了一種新的云環(huán)境下多用戶文件共享控制方法,將文件分割成若干個(gè)文件塊,為各FU建立各文件塊的訪問(wèn)權(quán)限表,利用NTRU加密算法和代理重加密技術(shù)實(shí)現(xiàn)文件塊共享,此方法能抗量子計(jì)算攻擊,計(jì)算成本低,通信量少。為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種云環(huán)境下多用戶文件共享控制方法,其特征是,包括以下步驟:步驟S1,F(xiàn)O首先將文件F分割成若干個(gè)文件塊,利用NTRU加密算法生成自身的密鑰對(duì),利用公鑰對(duì)各文件塊進(jìn)行加密獲得原始密文傳送至CSP;步驟S2,F(xiàn)O為各FU分配一個(gè)身份標(biāo)識(shí),利用NTRU加密算法為各FU生成密鑰對(duì),然后將各密鑰對(duì)和身份標(biāo)識(shí)發(fā)送至對(duì)應(yīng)的FU;為每個(gè)FU設(shè)定各文件塊訪問(wèn)權(quán)限生成訪問(wèn)權(quán)限表,然后將各FU的身份標(biāo)識(shí)和訪問(wèn)權(quán)限表發(fā)送至CSP;步驟S3,F(xiàn)O為各FU生成重加密密鑰;然后將各FU的重加密密鑰發(fā)送至CSP;步驟S4,當(dāng)某FU訪問(wèn)共享文件時(shí),首先向CSP發(fā)送身份標(biāo)識(shí)和訪問(wèn)請(qǐng)求,CPS依據(jù)其身份標(biāo)識(shí)查詢?cè)L問(wèn)權(quán)限表獲取允許其訪問(wèn)的文件塊,利用重加密密鑰對(duì)允許訪問(wèn)的文件塊的原始密文進(jìn)行加密獲得重加密密文,將重加密密文發(fā)送至此FU;步驟S5,F(xiàn)U對(duì)獲得對(duì)應(yīng)其訪問(wèn)權(quán)限的重加密密文,利用其私鑰進(jìn)行解密獲得最終明文。進(jìn)一步的,步驟S1中,F(xiàn)O在向云服務(wù)器上傳文件F前,首先將文件F分割成不同的文件塊,分割方法如下:FO按記錄的順序,并以每個(gè)記錄的屬性值的個(gè)數(shù)為單位,將F分割成n*m個(gè)文件塊,每個(gè)文件塊用fij(1<=i<=n,1<=j(luò)<=m)表示,其中n表示文件共有n個(gè)記錄,m表示每個(gè)記錄共有m個(gè)屬性值;把文件F看成是一個(gè)n*m二維矩陣,即:FO先將文件F分割成若干個(gè)不同的文件塊fij,將每個(gè)文件塊fij看成一個(gè)單位元文件,這樣每個(gè)FU訪問(wèn)F中的內(nèi)容是由若干個(gè)文件塊fij組成的新文件。進(jìn)一步的,利用公鑰對(duì)各文件塊進(jìn)行加密過(guò)程為:文件擁有者FO選擇任意填充值w∈R,方法如下:rij=H(fij||w),Eij=pkO*rij,令文件塊fij進(jìn)行加密后密文cfij=(Eij,Yij),則對(duì)文件F中各文件塊加密后的矩陣CF為:其中1<=i<=n,1<=j(luò)<=m,F(xiàn)O將CF發(fā)送至CPS中,以供不同的FU使用。進(jìn)一步的,在步驟S3中,訪問(wèn)權(quán)限表的建立過(guò)程如下:FO將文件F分割成n*m個(gè)文件塊,F(xiàn)O為第k個(gè)FU生成權(quán)限訪問(wèn)表TUk={tk11,tk12,…,tkij,…,tknm},其中tkij=1時(shí),表示第k個(gè)FU可以訪問(wèn)CF中第i行,第j列的元素,tkij=0時(shí),表示第k個(gè)FU不可以訪問(wèn)CF中第i行,第j列的元素;已知有t個(gè)FU,用T表示FU訪問(wèn)權(quán)限表的集合,則T={TU1,…,TUk,…TUt}FO將訪問(wèn)權(quán)限表T發(fā)送給CSP。進(jìn)一步的,F(xiàn)O為第k個(gè)FU生成重加密密鑰RkO→Uk的過(guò)程如下:vUk=H(idUk,pkUk),VUk=pkUk*vUk,hkUk=H(VUk,pgUk*vUk),rkO→UK=hkUk*skO根據(jù)第k個(gè)FU的權(quán)限訪問(wèn)表TUk,當(dāng)tkij=1時(shí),計(jì)算:cij=rij*hkUk。令CUk={…,cij,…},其中1<=i<=n,1<=j(luò)<=m。針對(duì)FU的重加密密鑰為RkO→Uk=(rkO→Uk,VUk,CUk);已知有t個(gè)FU,用RkO→U表示各FU重加密密鑰的集合,則:RKO→U={RkO→U1,…,RkO→Uk,…,RkO→Ut}FO將RKo→U發(fā)送給CSP。進(jìn)一步的,在步驟S4中,CSP完成代理重加密的過(guò)程以第k個(gè)FU向CSP請(qǐng)求共享文件為例,其具體重加密過(guò)程如下:CSP在訪問(wèn)權(quán)限表集合T中查找第k個(gè)FU的訪問(wèn)權(quán)限TUk;根據(jù)TUk={tk11,tk12,…,tkij,…,tknm},CSP逐一從CF中取出允許FU訪問(wèn)的文件塊cfij,這里的i、j取決于TUk中的tkij值,當(dāng)tkij=1時(shí),取出cfij,并對(duì)該cfij進(jìn)行重加密,否則放棄該cfij;假設(shè)FU可以訪問(wèn)CF中文件塊cfij,CSP用RkO→Uk的rkO→Uk對(duì)每個(gè)文件塊cfij進(jìn)行重加密,重加密后的密文用Cke表示,CSP計(jì)算:E′ij=Eij*rkO→Uk,Cke=(E′ij,Yij)令FU可以訪問(wèn)CF中f個(gè)文件塊cfij,針對(duì)f個(gè)文件塊的重加密密文集合CKUk為:CKUk={Ck1,…,Cke,…Ckf},其中1<=e<=f;CSP將(CKUk,VUk,CUk)發(fā)送給FU。進(jìn)一步的,在步驟S5中,第k個(gè)FU收到密文后解密過(guò)程如下:FU收到CSP發(fā)送的CkUk={Ck1,…,Cke,…Ckf},VUk和CUk后,用自己的私鑰skUk對(duì)CkUk中的每個(gè)元素Cke=(E′ij,Yij)進(jìn)行解密,解密后明文文件塊fij的集合用FUk表示,F(xiàn)U計(jì)算:hk′Uk=H(VUk,H(skUk)*VUk),驗(yàn)證cij=H(f′ij||w')*hk'是否成立,如果成立,則有:(f′ij||w')=(fij||w),除卻w,F(xiàn)U獲得自己所需要明文文件塊fij;令第e個(gè)元素Cke解密后獲得的明文記為fije;當(dāng)FU對(duì)CkUk中的f個(gè)元素解密后,最終獲得明文文件塊的集合FUk為:FUk={fij1,…,fije,…fijf},其中1<=i<=n,1<=j(luò)<=m,1<=e<=f。與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果是:1)提出一種在云環(huán)境下無(wú)雙線性對(duì)、無(wú)模冪運(yùn)算的多用戶文件共享控制方法,減少計(jì)算量;2)利用訪問(wèn)權(quán)限表,云服務(wù)提供商可以快速找到文件使用者所需要的文件塊,減少因多用戶因訪問(wèn)文件中相同內(nèi)容產(chǎn)生的計(jì)算量、通信量和存儲(chǔ)開(kāi)銷;3)加密算法采用NTRU密碼算法,具有抵抗量子攻擊的優(yōu)點(diǎn),所以本方法安全性更好。附圖說(shuō)明圖1是云環(huán)境下多用戶文件共享應(yīng)用場(chǎng)景圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。以下實(shí)施例僅用于更加清楚地說(shuō)明本發(fā)明的技術(shù)方案,而不能以此來(lái)限制本發(fā)明的保護(hù)范圍。如圖1所示為云環(huán)境下多用戶文件共享的應(yīng)用場(chǎng)景圖。此應(yīng)用場(chǎng)景中有文件擁有者FO、若干個(gè)文件使用者FU和云服務(wù)提供商CSP三個(gè)角色,它們之間的關(guān)系如圖1所示,F(xiàn)O與多個(gè)FU共享文件F,由于FU的角色不同,每個(gè)FU可以訪問(wèn)F中的內(nèi)容也不一定相同。本實(shí)施例中假設(shè)FO、FU、CSP之間的通信信道是安全,他們?cè)谕ㄐ艜r(shí),不會(huì)發(fā)生文件塊等信息丟失或泄漏等現(xiàn)象。FO的任務(wù)是:將文件F分割成不同的文件塊,并將各文件塊進(jìn)行加密后,上傳到云服務(wù)器中,供不同的FU使用;為FU分發(fā)密鑰和身份ID等授權(quán)信息,便于FU通過(guò)云服務(wù)器訪問(wèn)屬于自己的文件塊;為CSP提供每個(gè)FU的重加密密鑰,用于重加密屬于FU訪問(wèn)的文件塊;為CSP提供每個(gè)FU的訪問(wèn)權(quán)限表,便于CSP在加密文件塊中快速找到FU所需要的文件塊。FU的任務(wù)是:向FO提出共享文件申請(qǐng);在獲得FO授權(quán)后,F(xiàn)U可以按照自己身份角色,向CSP提交身份標(biāo)識(shí)和訪問(wèn)請(qǐng)求等信息,經(jīng)過(guò)CSP驗(yàn)證后,可以獲得屬于自己需要的加密文件塊,并對(duì)加密文件塊進(jìn)行解密,得到明文文件塊。CSP的任務(wù)是:按照FO要求存儲(chǔ)FO的文件塊、FU的訪問(wèn)權(quán)限表、重加密密鑰等信息;按照FU要求,用FU的重加密密鑰,先加密FU所需要的文件塊,然后再傳送給FU。本發(fā)明的云環(huán)境下多用戶文件共享控制方法,包括以下步驟:步驟S1,F(xiàn)O首先將文件F分割成若干個(gè)文件塊,利用NTRU加密算法生成自身的密鑰對(duì),利用公鑰對(duì)各文件塊進(jìn)行加密獲得原始密文傳送至CSP;步驟S2,有若干個(gè)FU先向FO申請(qǐng)文件訪問(wèn)權(quán)限,F(xiàn)O為各FU分配一個(gè)身份標(biāo)識(shí),利用NTRU加密算法為各FU生成密鑰對(duì),并將各密鑰對(duì)和身份標(biāo)識(shí)發(fā)送至對(duì)應(yīng)的FU,同時(shí)將各FU的身份標(biāo)識(shí)發(fā)送至CSP;FO基于自身的私鑰和FU的公鑰為各FU生成重加密密鑰,并將重加密密鑰上傳至CSP;步驟S3,F(xiàn)O為每個(gè)FU設(shè)定各文件塊訪問(wèn)權(quán)限,建立訪問(wèn)權(quán)限表發(fā)送至CSP;步驟S4,當(dāng)某FU預(yù)訪問(wèn)共享文件時(shí),首先向CSP發(fā)送身份ID和訪問(wèn)請(qǐng)求,CPS依據(jù)其身份ID查詢?cè)L問(wèn)權(quán)限表獲取允許其訪問(wèn)的文件塊,利用重加密密鑰對(duì)允許訪問(wèn)的文件塊的原始密文進(jìn)行加密獲得重加密密文,將重加密密文發(fā)送至此FU;步驟S5,F(xiàn)U對(duì)獲得對(duì)應(yīng)其訪問(wèn)權(quán)限的重加密密文,利用其私鑰進(jìn)行解密獲得最終明文。實(shí)施例本發(fā)明基于NTRU(NumberTheoryResearchUnit)公開(kāi)密鑰加密算法和代理重加密技術(shù),提出了一種高效、安全的多用戶共享文件控制方法。已知用Z表示整數(shù)環(huán),用Z[X]表示在Z上的卷積多項(xiàng)式環(huán),N次卷積多項(xiàng)式環(huán)可以表示為R=Z[X]/(XN-1),模q的N次卷積多項(xiàng)式環(huán)可以表示為Rq=Zq[X]/(XN-1)。在NTRU算法中,Df、Dg為私鑰空間,分別表示一個(gè)多項(xiàng)式的集合,從這兩個(gè)多項(xiàng)式集合中選擇出私鑰。Dr為眩值空間,是一個(gè)多項(xiàng)式集合,在NTRU算法加密時(shí),從該集合中選擇出臨時(shí)眩值。NTRU算法運(yùn)行在多項(xiàng)式環(huán)R=Z[X]/(XN-1)上,所有多項(xiàng)式的次數(shù)等于N-1,所有多項(xiàng)式的系數(shù)為整數(shù)。NTRU算法需要初始化三個(gè)整數(shù)參數(shù)(N,p,q)和三個(gè)具有N-1階多項(xiàng)式sk'∈Dsk、g∈Dg、r∈Dr。其中N為整數(shù),p可以是多項(xiàng)式或整數(shù),q通常為整數(shù)。NTRU算法產(chǎn)生密鑰方法如下:隨機(jī)選擇2個(gè)多項(xiàng)式sk'∈Dsk、g∈Dg,計(jì)算私鑰sk:sk=1+p*sk',sk*skq=1(modq)(1)其中,skq表示sk的模q逆,*表示卷積運(yùn)算;然后計(jì)算公鑰pk:pk=p*g*skq(modq)(2)得到NTRU算法的密鑰對(duì)為(sk,pk)。假設(shè)文件擁有者FO擁有文件F,多個(gè)FU共享文件F需完成的過(guò)程如下:1)FO密鑰生成在滿足應(yīng)用場(chǎng)景安全的條件下,文件擁有者FO選擇單向散列函數(shù)H、NTRU算法所需要的參數(shù)N、p、q。FO隨機(jī)選擇2個(gè)多項(xiàng)式sk'O∈Dsk,gO∈Dg,根據(jù)以上公式(1)和(2),計(jì)算密鑰對(duì)(skO,pkO),并計(jì)算pkO*skO=pgO,保留pgO,公開(kāi)pkO;這里“保留”的意思是pgO只供FO使用,對(duì)其他角色(如FU、CSP角色)是保密;“公開(kāi)”的意思是pkO對(duì)所有角色是公開(kāi)的,不要保密。2)分割文件FO在向云服務(wù)器上傳文件F前,首先將文件F分割成不同的文件塊,分割方法如下:FO按記錄的順序,并以每個(gè)記錄的屬性值的個(gè)數(shù)為單位,將F分割成n*m個(gè)文件塊,每個(gè)文件塊用fij(1<=i<=n,1<=j(luò)<=m)表示,其中n表示文件共有n個(gè)記錄,m表示每個(gè)記錄共有m個(gè)屬性值。這樣,就可以把文件F看成是一個(gè)n*m二維矩陣,即:按照以上所述方法,將文件F按二維矩陣的方式組織起來(lái)。FO先將文件F分割成若干個(gè)不同的文件塊fij,將每個(gè)文件塊fij看成一個(gè)單位元文件,這樣每個(gè)FU訪問(wèn)F中的內(nèi)容是由若干個(gè)文件塊fij組成的新文件。3)加密文件塊然后采用NTRU加密算法對(duì)各文件塊fij進(jìn)行加密。加密文件塊的目的是防止非法用戶看到文件的內(nèi)容,本過(guò)程由文件擁有者FO完成。文件擁有者FO選擇任意填充值w∈R,計(jì)算:rij=H(fij||w),Eij=pkO*rij,令文件塊fij進(jìn)行加密后密文cfij=(Eij,Yij),則對(duì)文件F中各文件塊加密后的矩陣CF為:其中1<=i<=n,1<=j(luò)<=m,F(xiàn)O將CF發(fā)送至CPS中,以供不同的FU使用。4)FU密鑰生成文件使用者FU先要向文件擁有者FO申請(qǐng)文件訪問(wèn)權(quán)限,才可以通過(guò)云服務(wù)提供商CSP訪問(wèn)共享文件。本過(guò)程由FO完成,方法如下:假設(shè)有t個(gè)FU,用ID表示FU的身份標(biāo)識(shí)集合,則ID={idU1,…,idUk,…idUt};其中1<=k<=t。FO收到FU發(fā)出的文件訪問(wèn)申請(qǐng)消息后,F(xiàn)O為FU分配一個(gè)身份標(biāo)識(shí)idUk;表示是第k個(gè)FU。然后FO隨機(jī)選擇2個(gè)多項(xiàng)式sk'Uk∈Dsk,gUk∈Dg,根據(jù)公式(1)、(2),為FU生成密鑰對(duì)(skUk,pkUk),并計(jì)算pkUk*skUk=pgUk,保留pgUk。FO將(skUk,pkUk)、idUk通過(guò)安全通道發(fā)送給申請(qǐng)文件訪問(wèn)的FU。同時(shí)將ID發(fā)送給CSP。5)生成訪問(wèn)權(quán)限表設(shè)計(jì)訪問(wèn)權(quán)限表的目的是限定文件使用者FU訪問(wèn)CF中文件塊的權(quán)限,便于云服務(wù)提供商CSP能夠快速查找到FU所需要的文件塊,本過(guò)程由FO完成,方法如下:已知FO將文件F分割成n*m個(gè)文件塊,令FO為第k個(gè)FU生成權(quán)限訪問(wèn)表為T(mén)Uk={tk11,tk12,…,tkij,…,tknm},其中k表示第k個(gè)FU,tkij=1時(shí),表示第k個(gè)FU可以訪問(wèn)CF中第i行,第j列的文件塊,tkij=0時(shí),表示第k個(gè)FU不可以訪問(wèn)CF中第i行,第j列的文件塊。共有t個(gè)FU,用T表示FU訪問(wèn)權(quán)限表的集合,則T={TU1,…,TUk,…TUt}FO將訪問(wèn)權(quán)限表T發(fā)送給CSP。6)生成重加密密鑰文件擁有者FO為每個(gè)文件使用者FU生成一個(gè)重加密密鑰,本過(guò)程由FO完成。FO為第k個(gè)FU生成重加密密鑰RkO→Uk的過(guò)程如下:vUk=H(idUk,pkUk),VUk=pkUk*vUk,hkUk=H(VUk,pgUk*vUk),rkO→UK=hkUk*skO根據(jù)第k個(gè)FU的權(quán)限訪問(wèn)表TUk,當(dāng)tkij=1時(shí),計(jì)算:cij=rij*hkUk令CUk={…,cij,…},其中1<=i<=n,1<=j(luò)<=m。針對(duì)第k個(gè)FU生成的重加密密鑰為RkO→Uk=(rkO→Uk,VUk,CUk)。已知有t個(gè)FU,用RkO→U表示重加密密鑰的集合,則:RKO→U={RkO→U1,…,RkO→Uk,…,RkO→Ut}FO將RKo→U發(fā)送給CSP。7)代理重加密此過(guò)程由云服務(wù)提供商CSP完成,CSP完成代理重加密過(guò)程以第k個(gè)FU向CSP請(qǐng)求共享文件為例,其具體重加密過(guò)程如下:(1)如果共享用戶第k個(gè)FU已經(jīng)獲得文件訪問(wèn)權(quán)限,F(xiàn)U可以直接將身份idUk和訪問(wèn)請(qǐng)求發(fā)給CSP。否則,F(xiàn)U必須先向文件擁有者FO申請(qǐng)?jiān)L問(wèn)權(quán)限。(2)CSP確認(rèn)FU身份后,根據(jù)其身份標(biāo)識(shí)idUk在訪問(wèn)權(quán)限表集合T中查找此FU的訪問(wèn)權(quán)限TUk。根據(jù)訪問(wèn)權(quán)限TUk={tk11,tk12,…,tkij,…,tknm},CSP逐一從加密后的文件塊CF中取出允許FU訪問(wèn)的文件塊cfij,這里的文件塊下標(biāo)i、j取決于TUk中的tkij值,當(dāng)tkij=1時(shí),取出cfij,并對(duì)該cfij進(jìn)行重加密,否則放棄該cfij。(3)假設(shè)第k個(gè)FU可以訪問(wèn)CF中文件塊cfij,CSP用RkO→Uk的rkO→Uk對(duì)文件塊cfij進(jìn)行重加密,重加密后的密文用Cke表示,計(jì)算過(guò)程如下:E′ij=Eij*rkO→Uk,Cke=(E′ij,Yij)(4)令第k個(gè)FU共可以訪問(wèn)CF中f個(gè)文件塊cfij,針對(duì)f個(gè)文件塊的重加密文件塊的密文集合CKUk為:CKUk={Ck1,…,Cke,…Ckf};其中1<=e<=f。CSP將其訪問(wèn)的文件塊內(nèi)容(CKUk,VUk,CUk)發(fā)送給此FU。8)解密此過(guò)程由文件使用者FU完成,以第k個(gè)FU從CSP收到文件塊進(jìn)行解密的過(guò)程為例,詳述解密過(guò)程:第k個(gè)FU收到CSP發(fā)送的CkUk={Ck1,…,Cke,…Ckf},VUk和CUk后,用自己的私鑰skUk對(duì)CkUk中的每個(gè)元素Cke=(E′ij,Yij)進(jìn)行解密,解密后明文文件塊fij的集合用FUk表示,過(guò)程如下:hk'Uk=H(VUk,H(skUk)*VUk),其中w'為填充值;驗(yàn)證cij=H(f′ij||w')*hk'是否成立,如果不成立,解密失敗,輸出無(wú)效標(biāo)志⊥。否則有:(f′ij||w')=(fij||w),除卻w,F(xiàn)U獲得自己所需要明文文件塊fij。令第e個(gè)元素Cke解密后獲得的明文記為fije。當(dāng)FU對(duì)CkUk中的f個(gè)元素解密后,最終FU獲得明文文件塊的集合FUk:FUk={fij1,…,fije,…fijf},其中1<=i<=n,1<=j(luò)<=m,1<=e<=f。方案正確性分析(1)本方案對(duì)文件塊fij加密后,可以正確的解密。證明:文件擁有者FO用自己的公鑰pkO對(duì)文件塊fij加密的密文cfij=(Eij,Yij)。已知:rij=H(fij||w),Eij=pkO*rij,(1<=i<=n,1<=j(luò)<=m)FO用自己私鑰skO對(duì)加密文件cfij進(jìn)行解密,過(guò)程如下:所以,在沒(méi)有任何干擾的情況下,本方案對(duì)文件塊fij加密后得到密文cfij是可以正確解密的。證明完畢。(2)本方案對(duì)cfij重加密后,可以正確的解密。證明:已知CSP用rkO→Uk對(duì)cfij進(jìn)行重加密,重加密后的密文Cke=(E′ij,Yij)。FO用自己私鑰skO對(duì)加密文件Cke進(jìn)行解密,過(guò)程如下:已知:vUk=H(idUk,pkUk),VUk=pkUk*vUk,hkUk=H(VUk,pgUk*vUk)。計(jì)算:hk'Uk=H(VUk,skUk*VUk)=H(VUk,skUk*pkUk*vUk)=H(VUk,pgUk*vUk)=hkUk即:在沒(méi)有干擾的情況下:hk'Uk=hkUk已知:rij=H(fij||w),Eij=pkO*rij,rkO→UK=hkUk*skO,E′ij=Eij*rkO→Uk,其中1<=i<=n,1<=j(luò)<=m。計(jì)算:所以,在沒(méi)有任何干擾的情況下,本方案對(duì)密文cfij重加密后得到密文Cke是可以正確解密的。證明完畢。安全性分析定理1,假設(shè)云服務(wù)提供商CSP是半誠(chéng)實(shí)的,CSP會(huì)按照FO的要求存儲(chǔ)FO的加密文件,但,CSP企圖解密FO的密文,窺測(cè)到明文的概率幾乎為零。證明:在CSP上存有對(duì)文件F加密后矩陣CF,其中cfij=(Eij,Yij),rij=H(fij||w),Eij=pkO*rij,情況1,在已知Eij、pkO的條件下,CSP要想從Eij分解出rij,從rij分解出(fij||w),CSP必須解決在格中求解最短向量問(wèn)題,以及在抗碰撞的hash函數(shù)中找到一個(gè)碰撞問(wèn)題,這將破壞NTRU算法的安全性和hash函數(shù)單向性。事實(shí)是,在多項(xiàng)式時(shí)間內(nèi)解決格中求解最短向量問(wèn)題,以及在抗碰撞的hash函數(shù)中找到一個(gè)碰撞是很困難的。情況2,在已知Yij的情況下,CSP企圖從Yij分解出(fij||w)也是幾乎不可能的,因?yàn)?,在多?xiàng)式時(shí)間內(nèi),在H(pgO*rij)未知的情況下,企圖從Yij分解出(fij||w)幾乎不可能。除非CSP采用窮舉法。情況3,假如文件使用者FU與CSP合謀,F(xiàn)U將自己解密后明文(fij||w)交給CSP,在已知Yij和(fij||w)情況下,CSP計(jì)算得到了H(pgO*rij)。CSP企圖從H(pgO*rij)得到pgO,并利用pkO*skO=pgO,試圖分解出FO的私鑰skO也是乎不可能的。因?yàn)椋珻SP必須解決在抗碰撞的hash函數(shù)中找到一個(gè)碰撞問(wèn)題,以及在格中求解最短向量問(wèn)題。所以CSP在沒(méi)有獲得Owner的私鑰skO的情況下,成功解密cfij=(Eij,Yij)概率幾乎為零,也就無(wú)法得到(fij||w)。證明完畢。推理1:假如文件使用者CSP與FU合謀,CSP直接將cfij發(fā)送給FU,F(xiàn)U企圖從cfij得到明文快(fij||w)的概率幾乎為零。推理2,CSP從重加密密鑰RkO→Uk的rkO→UK中企圖得到文件擁有者FO私鑰skO的概率幾乎為零。定理2,假設(shè)云服務(wù)提供商CSP是半誠(chéng)實(shí)的,CSP會(huì)按照FO的要求重加密文件塊cfij,并將重加密后的文件塊Cke發(fā)送給指定的文件共享用戶FU,F(xiàn)U企圖從Cke中窺測(cè)到FO私鑰skO的概率幾乎為零。證明:FU從CSP獲得信息包括Cke=(E′ij,Yij),VUk,cij和FO的公鑰pkO。其中E′ij=Eij*rkO→Uk=Eij*hkUk*skO,包含了FO的私人密鑰skO,顯然要從E′ij中分解出skO必須接在格格中求解最短向量等問(wèn)題,所以FU企圖從Cke中窺測(cè)到FO私鑰skO的概率幾乎為零。證明完畢。推理3,假設(shè)文件共享著FU與云服務(wù)提供商CSP共謀,F(xiàn)U將自己的私鑰skUk泄露給CSP,CSP企圖得到其他文件使用者的明文和私鑰skO的概率幾乎為零。定理3,假設(shè)文云服務(wù)提供商CSP是半誠(chéng)實(shí)的,CSP會(huì)按照FO的要求存儲(chǔ)FO的加密文件,當(dāng)文件使用者FU需要訪問(wèn)文件塊時(shí),企圖解密其他文件使用者的文件塊的概率幾乎為零。證明:假如CSP與FU合謀,CSP將其他文件使用者的文件塊Cke'=(E″ij,Y′ij),V′Uk,c′ij泄露給FU,F(xiàn)U計(jì)算hk'Uk=H(V′Uk,skUk*V′Uk),而FO計(jì)算的hkUk=H(V′Uk,pg'Uk*v'Uk)中包含有其他文件使用者的私鑰等,pg'Uk≠pgUk,所以hk'Uk≠hkUk,c′ij≠H(f′ij||w')*hk'即FU利用解密是不可能得到正確的密文。證明完畢。推理4,假如CSP與FU合謀,CSP將其他文件使用者的文件塊Cke'=(E″ij,Y′ij)和FU的VUk,cij泄露給FU,F(xiàn)U企圖解密其他文件使用者的文件塊的概率幾乎為零。推理5,假如CSP與FU合謀,CSP用FU的RkO→Uk對(duì)其他文件使用者的文件塊加密,并將加密后的Cke'=(E″ij,Y′ij)和FU的VUk,cij泄露給FU,F(xiàn)U企圖解密其他文件使用者的文件塊的概率幾乎為零。計(jì)算開(kāi)銷分析目前,有關(guān)代理重加密方案的研究成果大多數(shù)都是利用雙線性對(duì)、RSA加密算法、Elgamal加密算法,方案中需要大量?jī)邕\(yùn)算。本方案使用了NTRU算法,方案中只包括乘法運(yùn)算等,避開(kāi)計(jì)算量大的冪運(yùn)算,提高整個(gè)方案計(jì)算速度。設(shè)TG表示一次群上的冪運(yùn)算所用的時(shí)間,TM表示一次群上的乘法運(yùn)算所用的時(shí)間,TN表示一次格上的乘法運(yùn)算所用的時(shí)間,TH表示一次hash運(yùn)算所用的時(shí)間,與冪運(yùn)算、乘法相比,異或等運(yùn)算代價(jià)非常小,在此忽略不計(jì)。本方案中,分割文件和生成文件塊訪問(wèn)權(quán)限表時(shí),不需要任何計(jì)算;加密分割文件塊時(shí),分別進(jìn)行1次TN和2次TH運(yùn)算;代理重加密文件塊時(shí),分別進(jìn)行4次TN和2次TH運(yùn)算運(yùn)算;文件使用者解密時(shí),包括驗(yàn)證在內(nèi),分別進(jìn)行3次TN和TH運(yùn)算,整個(gè)方案中沒(méi)有TG運(yùn)算。在本方案中,F(xiàn)O的計(jì)算量比較小,CSP計(jì)算成本相對(duì)較高,充分利用了CSP海量計(jì)算能力。由于CSP只將FU所需的重加密文件塊發(fā)送給FU,F(xiàn)U的計(jì)算開(kāi)銷也比較低。存儲(chǔ)開(kāi)銷分析本方案存儲(chǔ)開(kāi)銷主要是加密的共享文件塊,以及針對(duì)每個(gè)文件使用者的文件訪問(wèn)權(quán)限表。文件訪問(wèn)權(quán)限表集合實(shí)際上是一個(gè)稀疏矩陣,在實(shí)際應(yīng)用中只需要存儲(chǔ)非零數(shù)據(jù)就可以。本方案占用的存儲(chǔ)開(kāi)銷也比較小。通信開(kāi)銷分析本方案通信開(kāi)銷主要是上傳加密文件塊和文件塊權(quán)限表,本方案中CSP只將FU所需要的文件塊發(fā)送給FU。所以,本方案的通信開(kāi)銷也比較小。本文提出了一種基于NTRU算法的多用戶文件共享控制方法,給出了方案的正確性和安全證明。與文獻(xiàn)《云環(huán)境下多用戶文件共享方案》(計(jì)算機(jī)研究與發(fā)展,2014,王中華)等現(xiàn)有的解決多用戶文件共享方案相比,本方案在確保安全的前提下,利用了NTRU算法,避免了大量的指數(shù)運(yùn)算,減少了計(jì)算開(kāi)銷、存儲(chǔ)開(kāi)銷和通信開(kāi)銷,適合資源受限的客戶端設(shè)備。文件使用者FU每次訪問(wèn)文件時(shí),并不一定需要訪問(wèn)屬于自己權(quán)限下的所有文件塊,有時(shí)只需要訪問(wèn)其中的部分文件塊。這時(shí)可以在本方案的基礎(chǔ)上,利用云環(huán)境下關(guān)鍵字密文檢索技術(shù),即FU在訪問(wèn)文件時(shí),提交加密后的關(guān)鍵字等信息,CSP會(huì)根據(jù)FU提供的關(guān)鍵字,在FU可訪問(wèn)權(quán)限下的文件塊中查找FU所需要的文件塊,這將進(jìn)一步減少FU的計(jì)算成本,同時(shí)也可以減少CSP與FU通信成本。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變型,這些改進(jìn)和變型也應(yīng)視為本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)1 2 3