本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,進(jìn)一步涉及信息安全技術(shù)領(lǐng)域中的一種云存儲(chǔ)中借助第三方完成的數(shù)據(jù)完整性驗(yàn)證方法。本發(fā)明中的用戶將加密數(shù)據(jù)上傳給第三方,第三方為這些加密數(shù)據(jù)生成標(biāo)簽,并將加密數(shù)據(jù)和標(biāo)簽發(fā)送給云服務(wù)提供商,隨后,第三方發(fā)送挑戰(zhàn)信息,云服務(wù)提供商返回響應(yīng)信息給第三方,第三方對響應(yīng)信息進(jìn)行驗(yàn)證,驗(yàn)證通過則表示用戶數(shù)據(jù)完整,否則用戶數(shù)據(jù)被破壞。
背景技術(shù):
云存儲(chǔ)作為一種新型的存儲(chǔ)模型,具有遠(yuǎn)程存儲(chǔ)數(shù)據(jù)的能力,已經(jīng)得到了廣泛的應(yīng)用。越來越多的公司和個(gè)人,將本地的數(shù)據(jù)存儲(chǔ)到云端,以減小本地?cái)?shù)據(jù)存儲(chǔ)的壓力。但是云存儲(chǔ)并不是完全值得信任的,可能會(huì)對云存儲(chǔ)中的數(shù)據(jù)造成損壞,給公司和個(gè)人帶來巨大的損失。因此,用戶需要對存儲(chǔ)在云中的數(shù)據(jù)進(jìn)行數(shù)據(jù)完整性驗(yàn)證。
M.Jogdand和R.H.Goudar在其發(fā)表的論文“Dynamic remote data auditing for securing big data storage in cloud computing”(Information Sciences,2015:101-116.)中提出了一種遠(yuǎn)程的數(shù)據(jù)完整性驗(yàn)證方法。該方法的具體步驟是:在預(yù)處理階段,用戶先對要上傳到云存儲(chǔ)中的數(shù)據(jù)進(jìn)行分塊處理,并為每個(gè)分塊的數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)標(biāo)簽,然后將數(shù)據(jù)上傳到云存儲(chǔ)中,在挑戰(zhàn)-響應(yīng)階段,用戶向云存儲(chǔ)服務(wù)器發(fā)起數(shù)據(jù)完整性驗(yàn)證挑戰(zhàn),云存儲(chǔ)服務(wù)器返回相應(yīng)的驗(yàn)證響應(yīng);在用戶驗(yàn)證階段,用戶對返回的響應(yīng)進(jìn)行驗(yàn)證,如果驗(yàn)證成功則輸出接受,否則輸出拒絕。該方法存在的不足之處是,在用戶驗(yàn)證階段,驗(yàn)證所需要的所有信息皆來源于不可信云服務(wù)提供商,因此云服務(wù)可以偽造證明信息來欺騙用戶。
北京航空航天大學(xué)在其申請的專利文獻(xiàn)“一種多重云環(huán)境下數(shù)據(jù)完整性驗(yàn)證方法”(申請?zhí)枺?01310631352.2,公開號(hào):103605784A)中公開了一種數(shù)據(jù)完整性驗(yàn)證的方法。該方法的具體步驟是:在預(yù)處理階段,由客戶端執(zhí)行,包括初始化,文件分塊,數(shù)據(jù)標(biāo)簽的生成,文件、標(biāo)簽、公開參數(shù)的存儲(chǔ)四個(gè)步驟;在挑戰(zhàn)-響應(yīng)階段,用戶與云服務(wù)提供商交互的一個(gè)過程,不管是在數(shù)據(jù)更新前,還是更新后,用戶向云服務(wù)提供商發(fā)起挑戰(zhàn),服務(wù)器做出相應(yīng)的回應(yīng),用戶根據(jù)服務(wù)器給的回應(yīng)進(jìn)行完整性驗(yàn)證;在用戶驗(yàn)證階段,當(dāng)用戶收到組織者返回的數(shù)據(jù)P={P1,P2}時(shí),從第三方處獲得存儲(chǔ)的公開參數(shù),驗(yàn)證云服務(wù)提供商存儲(chǔ)的數(shù)據(jù)是否是完整的,如果驗(yàn)證成功則輸出接受,否則輸出拒絕。該方法存在的不足之處是,該方法中,第三方僅為用戶進(jìn)行數(shù)據(jù)完整性的驗(yàn)證,而沒有為用戶初始化階段的數(shù)據(jù)標(biāo)簽生成做任何貢獻(xiàn),這在很大程度上并沒有降低用戶的計(jì)算和存儲(chǔ)花費(fèi)。除此之外,該方法也存在著驗(yàn)證過程中數(shù)據(jù)隱私泄露的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對上述現(xiàn)有技術(shù)的不足,提出了一種云存儲(chǔ)中基于第三方的完整性驗(yàn)證方法。
實(shí)現(xiàn)本發(fā)明目的的具體思路是:用戶先對要上傳到云存儲(chǔ)服務(wù)器的數(shù)據(jù)進(jìn)行分塊加密,然后將加密后的文件塊發(fā)送給第三方;第三方為每個(gè)加密的文件塊生成相應(yīng)的文件主標(biāo)簽和輔助標(biāo)簽,再將加密文件塊、主標(biāo)簽和輔助標(biāo)簽一起上傳到云服務(wù)器。在數(shù)據(jù)完整性驗(yàn)證過程中,第三方生成挑戰(zhàn)信息并發(fā)送給第三方;云服務(wù)生成對應(yīng)的響應(yīng)信息返回給第三方;第三方驗(yàn)證響應(yīng)信息,以判斷云中的數(shù)據(jù)是否完整。這個(gè)驗(yàn)證過程不僅保證了數(shù)據(jù)的隱私安全,而且抵抗云服務(wù)提供商發(fā)起的偽造攻擊,同時(shí)提高數(shù)據(jù)完整性驗(yàn)證方案的效率。
本發(fā)明的具體步驟包括:
(1)將待上傳到云服務(wù)器的文件進(jìn)行分塊:
用戶將待上傳到云存儲(chǔ)中的云服務(wù)器里進(jìn)行完整性驗(yàn)證的數(shù)據(jù)均等分塊生成長度為l的多個(gè)數(shù)據(jù)塊,當(dāng)最后一個(gè)數(shù)據(jù)塊長度小于l時(shí),對最后一個(gè)數(shù)據(jù)塊末尾補(bǔ)0,使最后一個(gè)數(shù)據(jù)塊長度為l;
(2)對數(shù)據(jù)塊進(jìn)行加密并傳給第三方:
(2a)按照下式,生成一個(gè)乘法循環(huán)群:
{gi}0≤i≤p-1→G1
其中,gi表示乘法循環(huán)群中的第i個(gè)元素,{}表示乘法循環(huán)群的集合符號(hào),p表示乘法循環(huán)群的階,→表示生成操作,G1表示乘法循環(huán)群;
(2b)從乘法循環(huán)群G1的元素中,隨機(jī)選擇一個(gè)元素,作為高級加密標(biāo)準(zhǔn)AES算法的加密密鑰ssk;
(2c)按照下式,用戶計(jì)算每一個(gè)數(shù)據(jù)塊的密文塊:
mj=Essk(F(j))
其中,mj表示第j個(gè)數(shù)據(jù)塊對應(yīng)的密文塊,Essk(·)表示加密密鑰為ssk的高級加密標(biāo)準(zhǔn)AES算法,F(xiàn)(j)表示第j個(gè)數(shù)據(jù)塊,j表示每一個(gè)數(shù)據(jù)塊對應(yīng)的標(biāo)號(hào),1≤j≤n,n表示數(shù)據(jù)塊的總數(shù);
(2d)將所有的密文塊集合后生成密文塊集合發(fā)送給第三方;
(3)生成密文塊的標(biāo)簽并傳給云服務(wù)器:
(3a)按照下式,第三方計(jì)算每一個(gè)密文塊的主標(biāo)簽:
Tt=Sγ(mt||IDF||t)
其中,Tt表示第t個(gè)密文塊的主標(biāo)簽,Sγ(·)表示代數(shù)簽名函數(shù),mt表示第t個(gè)密文塊,||表示級聯(lián)操作,IDF表示待上傳到云服務(wù)器的數(shù)據(jù)身份認(rèn)證標(biāo)號(hào),t表示密文塊的標(biāo)號(hào);
(3b)按照下式,第三方計(jì)算每個(gè)加密后的密文塊的輔助標(biāo)簽:
Ct=Sγ(IDF||t)
其中,Ct表示第三方計(jì)算的第t個(gè)密文塊的輔助標(biāo)簽,Sγ(·)表示代數(shù)簽名函數(shù),||表示級聯(lián)符號(hào),IDF表示待上傳到云服務(wù)器的數(shù)據(jù)身份認(rèn)證標(biāo)號(hào),t表示密文塊的標(biāo)號(hào);
(3c)將密文塊的標(biāo)簽集合后生成標(biāo)簽集合,連同密文塊集合傳送給云服務(wù)器;
(4)生成挑戰(zhàn)信息并發(fā)送給云服務(wù)器:
(4a)第三方從整數(shù)集合[1,q]中,隨機(jī)選擇一個(gè)含有c個(gè)元素的子集,其中,q表示上傳到云服務(wù)器的密文塊的總數(shù);
(4b)第三方將含有c個(gè)元素的子集作為挑戰(zhàn)信息發(fā)送給云服務(wù)器;
(5)生成響應(yīng)信息并返回給第三方:
(5a)按照下式,云服務(wù)器計(jì)算含有c個(gè)元素的子集對應(yīng)的密文塊的響應(yīng)值:
其中,σ表示含有c個(gè)元素的子集對應(yīng)的密文塊的響應(yīng)值,c表示所選擇的子集的元素總數(shù),Σ表示求和操作,k表示含有c個(gè)元素的子集中第k個(gè)元素對應(yīng)的標(biāo)號(hào),表示含有c個(gè)元素的子集中的第k個(gè)元素rk對應(yīng)的密文塊,·表示相乘操作,rk表示含有c個(gè)元素的子集中的第k個(gè)元素;
(5b)按照下式,云服務(wù)計(jì)算含有c個(gè)元素的子集對應(yīng)的密文塊標(biāo)簽的響應(yīng)值:
μ=(gβ)y
其中,μ表示含有c個(gè)元素的子集對應(yīng)的密文塊的標(biāo)簽響應(yīng)值,gβ表示第三方利用從乘法循環(huán)群G1中隨機(jī)選取的私鑰β生成的公鑰,y表示含有c個(gè)元素的子集對應(yīng)的密文塊標(biāo)簽的臨時(shí)響應(yīng)值;
(5c)云服務(wù)器將密文塊的響應(yīng)值集合、密文塊的標(biāo)簽響應(yīng)值集合作為響應(yīng)信息返回給第三方;
(6)第三方計(jì)算映射:
(6a)按照下式,第三方計(jì)算挑戰(zhàn)信息的映射結(jié)果:
Λ=e(μ,gα)
其中,Λ表示挑戰(zhàn)信息的映射結(jié)果,e(·)表示乘法循環(huán)群G1上的雙線性映射操作,gα表示用戶利用從乘法循環(huán)群G1中隨機(jī)選取的私鑰α生成的公鑰;
(6b)按照下式,第三方計(jì)算響應(yīng)信息的映射結(jié)果:
其中,Υ表示響應(yīng)信息的映射結(jié)果,表示第三方利用含有c個(gè)元素的子集對應(yīng)的密文塊的響應(yīng)值生成的響應(yīng)信息,gαβ表示第三方利用用戶的公鑰gα和自己從乘法循環(huán)群G1中隨機(jī)選取的私鑰β生成的共享密鑰;
(7)判斷挑戰(zhàn)信息映射結(jié)果是否等于響應(yīng)信息映射結(jié)果,若是,則執(zhí)行步驟(8),否則,執(zhí)行步驟(9);
(8)確定第三方驗(yàn)證云服務(wù)器中的數(shù)據(jù)未被破壞,數(shù)據(jù)是完整的;
(9)確定第三方驗(yàn)證云服務(wù)器中的數(shù)據(jù)被破壞,數(shù)據(jù)是不完整的。
本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
第一,由于本發(fā)明用戶對文件塊進(jìn)行加密并傳給第三方,克服了現(xiàn)有技術(shù)在數(shù)據(jù)完整性驗(yàn)證過程中數(shù)據(jù)隱私的泄露的問題,使得本發(fā)明在數(shù)據(jù)完整性驗(yàn)證過程數(shù)據(jù)隱私得到保護(hù)。
第二,由于本發(fā)明第三方生成文件塊標(biāo)簽并傳給云服務(wù)器的過程中,第三方計(jì)算每一個(gè)加密后文件塊的主標(biāo)簽和輔助標(biāo)簽,克服了現(xiàn)有技術(shù)給數(shù)據(jù)完整性驗(yàn)證的用戶帶來大量的計(jì)算和存儲(chǔ)負(fù)擔(dān)的缺陷,使得本發(fā)明在文件的標(biāo)簽生成的過程中數(shù)據(jù)完整性驗(yàn)證的用戶具有更低的存儲(chǔ)和計(jì)算費(fèi)用,提高了整個(gè)數(shù)據(jù)完整性驗(yàn)證的效率。
第三,由于本發(fā)明第三方在判斷挑戰(zhàn)信息映射結(jié)果是否等于響應(yīng)信息映射結(jié)果的過程中,第三方自己生成一個(gè)驗(yàn)證信息,克服了現(xiàn)有技術(shù)中在數(shù)據(jù)破壞的情況下,云服務(wù)器偽造一個(gè)假的響應(yīng)信息來欺騙用戶通過驗(yàn)證的問題,提高了驗(yàn)證云服務(wù)器中數(shù)據(jù)的完整性的準(zhǔn)確性。
附圖說明
圖1為本發(fā)明的流程圖。
具體實(shí)施方式
下面結(jié)合附圖1對本發(fā)明作進(jìn)一步的詳細(xì)描述。
步驟1,將待上傳到云服務(wù)器的文件進(jìn)行分塊。
用戶將待上傳到云存儲(chǔ)中的云服務(wù)器里進(jìn)行完整性驗(yàn)證的數(shù)據(jù)均等分塊生成長度為的多個(gè)數(shù)據(jù)塊,其中表示向下取整操作,L表示待上傳到云存儲(chǔ)中的云服務(wù)器里進(jìn)行完整性驗(yàn)證的數(shù)據(jù)長度,n表示用戶需要生成的數(shù)據(jù)塊個(gè)數(shù)。當(dāng)最后一個(gè)數(shù)據(jù)塊長度小于l時(shí),對最后一個(gè)數(shù)據(jù)塊末尾補(bǔ)0,使最后一個(gè)數(shù)據(jù)塊長度為l;
步驟2,對數(shù)據(jù)塊進(jìn)行加密并傳給第三方。
(2a)按照下式,生成一個(gè)乘法循環(huán)群:
{gi}0≤i≤p-1→G1
其中,gi表示乘法循環(huán)群中的第i個(gè)元素,{}表示乘法循環(huán)群的集合符號(hào),p表示乘法循環(huán)群的階,→表示生成操作,G1表示乘法循環(huán)群;
(2b)從乘法循環(huán)群G1的元素中,隨機(jī)選擇一個(gè)元素,作為高級加密標(biāo)準(zhǔn)AES算法的加密密鑰ssk;
(2c)按照下式,用戶計(jì)算每一個(gè)數(shù)據(jù)塊的密文塊:
mj=Essk(F(j))
其中,mj表示第j個(gè)數(shù)據(jù)塊對應(yīng)的密文塊,Essk(·)表示加密密鑰為ssk的高級加密標(biāo)準(zhǔn)AES算法,F(xiàn)(j)表示第j個(gè)數(shù)據(jù)塊,j表示每一個(gè)數(shù)據(jù)塊對應(yīng)的標(biāo)號(hào),1≤j≤n,n表示數(shù)據(jù)塊的總數(shù);
(2d)將所有的密文塊集合后生成密文塊集合發(fā)送給第三方;
步驟3,生成密文塊的標(biāo)簽并傳給云服務(wù)器。
(3a)按照下式,第三方計(jì)算每一個(gè)密文塊的主標(biāo)簽:
Tt=Sγ(mt||IDF||t)
其中,Tt表示第t個(gè)密文塊的主標(biāo)簽,Sγ(·)表示代數(shù)簽名函數(shù),代數(shù)簽名函數(shù)是一種具有代數(shù)性質(zhì)的哈希函數(shù),其代數(shù)性質(zhì)是指對于b個(gè)數(shù)據(jù)塊之和的代數(shù)簽名函數(shù)值等于b個(gè)數(shù)據(jù)塊代數(shù)簽名函數(shù)值之和。mt表示第t個(gè)密文塊,||表示級聯(lián)操作,IDF表示待上傳到云服務(wù)器的數(shù)據(jù)身份認(rèn)證標(biāo)號(hào),t表示密文塊的標(biāo)號(hào);
(3b)按照下式,第三方計(jì)算每個(gè)加密后的密文塊的輔助標(biāo)簽:
Ct=Sγ(IDF||t)
其中,Ct表示第三方計(jì)算的第t個(gè)密文塊的輔助標(biāo)簽,Sγ(·)表示代數(shù)簽名函數(shù),||表示級聯(lián)符號(hào),IDF表示待上傳到云服務(wù)器的數(shù)據(jù)身份認(rèn)證標(biāo)號(hào),t表示密文塊的標(biāo)號(hào);
(3c)將密文塊的標(biāo)簽集合后生成標(biāo)簽集合,連同密文塊集合傳送給云服務(wù)器;
步驟4,生成挑戰(zhàn)信息并發(fā)送給云服務(wù)器。
(4a)第三方從整數(shù)集合[1,q]中,隨機(jī)選擇一個(gè)含有c個(gè)元素的子集,其中,q表示上傳到云服務(wù)器的密文塊的總數(shù);
(4b)第三方將含有c個(gè)元素的子集作為挑戰(zhàn)信息發(fā)送給云服務(wù)器;
步驟5,生成響應(yīng)信息并返回給第三方。
(5a)按照下式,云服務(wù)器計(jì)算含有c個(gè)元素的子集對應(yīng)的密文塊的響應(yīng)值:
其中,σ表示含有c個(gè)元素的子集對應(yīng)的密文塊的響應(yīng)值,c表示所選擇的子集的元素總數(shù),Σ表示求和操作,k表示含有c個(gè)元素的子集中第k個(gè)元素對應(yīng)的標(biāo)號(hào),表示含有c個(gè)元素的子集中的第k個(gè)元素rk對應(yīng)的密文塊,·表示相乘操作,rk表示含有c個(gè)元素的子集中的第k個(gè)元素;
(5b)按照下式,云服務(wù)計(jì)算含有c個(gè)元素的子集對應(yīng)的密文塊標(biāo)簽的響應(yīng)值:
μ=(gβ)y
其中,μ表示含有c個(gè)元素的子集對應(yīng)的密文塊的標(biāo)簽響應(yīng)值,gβ表示第三方利用從乘法循環(huán)群G1中隨機(jī)選取的私鑰β生成的公鑰,y表示含有c個(gè)元素的子集對應(yīng)的密文塊標(biāo)簽的臨時(shí)響應(yīng)值,含有c個(gè)元素的子集對應(yīng)的密文塊標(biāo)簽的臨時(shí)響應(yīng)值是由下式計(jì)算得到的:
其中,c表示所選擇的子集的元素總數(shù),Σ表示求和操作,k表示含有c個(gè)元素的子集中第k個(gè)元素對應(yīng)的標(biāo)號(hào),表示含有c個(gè)元素的子集中的第k個(gè)元素rk對應(yīng)的密文塊的主標(biāo)簽,表示異或操作,表示含有c個(gè)元素的子集中的第k個(gè)元素rk對應(yīng)的密文塊的輔助標(biāo)簽,rk表示含有c個(gè)元素的子集中的第k個(gè)元素。
(5c)云服務(wù)器將密文塊的響應(yīng)值集合、密文塊的標(biāo)簽響應(yīng)值集合作為響應(yīng)信息返回給第三方;
步驟6,第三方計(jì)算映射。
(6a)按照下式,第三方計(jì)算挑戰(zhàn)信息的映射結(jié)果:
Λ=e(μ,gα)
其中,Λ表示挑戰(zhàn)信息的映射結(jié)果,e(·)表示乘法循環(huán)群G1上的雙線性映射操作,gα表示用戶利用從乘法循環(huán)群G1中隨機(jī)選取的私鑰α生成的公鑰;
(6b)按照下式,第三方計(jì)算響應(yīng)信息的映射結(jié)果:
其中,Υ表示響應(yīng)信息的映射結(jié)果,表示第三方利用含有c個(gè)元素的子集對應(yīng)的密文塊的響應(yīng)值生成的響應(yīng)信息,gαβ表示第三方利用用戶的公鑰gα和自己從乘法循環(huán)群G1中隨機(jī)選取的私鑰β生成的共享密鑰;
步驟7,判斷挑戰(zhàn)信息映射結(jié)果是否等于響應(yīng)信息映射結(jié)果,若是,則執(zhí)行步驟(8),否則,執(zhí)行步驟(9)。
步驟8,確定第三方驗(yàn)證云服務(wù)器中的數(shù)據(jù)未被破壞,數(shù)據(jù)是完整的。
步驟9,確定第三方驗(yàn)證云服務(wù)器中的數(shù)據(jù)被破壞,數(shù)據(jù)是不完整的。