本發(fā)明涉及云數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種云存儲的密鑰生成方法。本發(fā)明還涉及一種云數(shù)據(jù)存儲方法以及相關(guān)的云存儲數(shù)據(jù)審計方法。
背景技術(shù):
在云平臺應(yīng)用中,將數(shù)據(jù)外包到云端在經(jīng)濟(jì)上和管理上具有很大的吸引力,但如果不能保證數(shù)據(jù)的完整性和可用性,將會阻礙云平臺的廣泛應(yīng)用。在云存儲中,由于用戶的數(shù)據(jù)脫離了用戶的控制,任何云端的錯誤都可能導(dǎo)致用戶數(shù)據(jù)的修改或丟失,云服務(wù)提供商的硬件故障或存在的內(nèi)外部攻擊會使得用戶存儲于云端的數(shù)據(jù)可能被修改甚至刪除。因此,從用戶角度,完全有理由懷疑自己存儲在云端的數(shù)據(jù)是否仍然完整,就有必要采取一定的方法來驗證數(shù)據(jù)的完整性和正確性。云數(shù)據(jù)審計就是用戶不需從云端恢復(fù)下載自己全部的數(shù)據(jù)而可以檢查存儲在云端的數(shù)據(jù)是否完整的方法。
簡單來說,一個云數(shù)據(jù)審計方案包含4個過程,具體包括以下幾個步驟:
(1)用戶對其要上傳到云端的數(shù)據(jù)文件進(jìn)行預(yù)處理。用戶使用自己的私鑰對數(shù)據(jù)塊進(jìn)行運算,得到這些數(shù)據(jù)塊的認(rèn)證標(biāo)簽,并將所有數(shù)據(jù)塊及其對應(yīng)的認(rèn)證標(biāo)簽上傳到云端;
(2)為了驗證用戶在云端數(shù)據(jù)的完整性,用戶自己或者某獨立的第三方審計者(Third-party auditor,TPA)隨機(jī)生成一些質(zhì)詢消息,將這些質(zhì)詢消息發(fā)送給云端,質(zhì)詢消息中包括了審計者所選取了哪些消息塊進(jìn)行審計的信息;
(3)當(dāng)云端收到審計者的質(zhì)詢消息后,根據(jù)質(zhì)詢消息和所存儲的消息塊生成用來證明數(shù)據(jù)塊正確存儲的證據(jù),并將其發(fā)送給審計者;
(4)當(dāng)審計者收到云端的證據(jù)后,驗證云端是否正確存儲了用戶數(shù)據(jù)。
在多用戶云數(shù)據(jù)存儲的數(shù)據(jù)審計方面,可能出現(xiàn)這樣的情況:一個多用戶群體的成員在云端存儲一組數(shù)據(jù)供群體所有成員訪問和修改,即群體中的任何成員都可以對該組數(shù)據(jù)進(jìn)行讀和寫的操作。但是如果該群體中的某個成員撤銷了,他的密鑰就應(yīng)該不能再生成有效的認(rèn)證標(biāo)簽。因此就引出如何解決這種場景中用戶的撤銷問題。
現(xiàn)有的審計方案解決這一問題是基于代理重簽名技術(shù),當(dāng)出現(xiàn)群中的一個用戶被撤銷的情況,云端便將這個用戶之前的全部簽名進(jìn)行重簽名,即將這個用戶之前的簽名轉(zhuǎn)化到群中目前正常存在的用戶的簽名,在此更新處理中,云端需要進(jìn)行大量的計算,尤其在大數(shù)據(jù)環(huán)境下,會產(chǎn)生更大量的計算量,會給云端產(chǎn)生巨大的計算負(fù)擔(dān)和經(jīng)濟(jì)負(fù)擔(dān)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種云存儲的密鑰生成方法、云數(shù)據(jù)存儲方法以及相關(guān)的云存儲數(shù)據(jù)審計方法,使群中在當(dāng)前時間在注冊的群用戶才可生成私鑰,撤銷的群用戶將不再更新私鑰,將不能生成云數(shù)據(jù)標(biāo)簽,因此對于群中撤銷用戶,云端無需再更新撤銷用戶之前產(chǎn)生的標(biāo)簽,極大地緩解了云端的計算壓力。
為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種云存儲的密鑰生成方法,包括步驟:
S10:系統(tǒng)劃分為z個時間段,私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,z為大于零的正整數(shù);
S11:所述私鑰產(chǎn)生中心基于所述主密鑰生成所述群的群身份密鑰,并將所述群身份密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶;
S12:所述群的群管理員基于所述時間主密鑰,結(jié)合時間段參數(shù),生成所述群的群當(dāng)前時間更新密鑰,并將所述群當(dāng)前時間更新密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶;
S13:所述群中在注冊的群用戶根據(jù)所述群身份密鑰、所述群當(dāng)前時間更新密鑰生成當(dāng)前私鑰。
可選地,還包括:所述群的在當(dāng)前時間在注冊的群用戶在接收到所述群身份密鑰時,驗證所述群身份密鑰的正確性,若驗證正確,則群用戶接收所述群身份密鑰;若驗證錯誤,則群用戶拒絕接收所述群身份密鑰。
可選地,還包括:所述群的在當(dāng)前時間在注冊的群用戶在接收到所述群當(dāng)前時間更新密鑰時,驗證所述群當(dāng)前時間更新密鑰的正確性,若驗證正確,則群用戶接收所述群當(dāng)前時間更新密鑰,若驗證錯誤,則群用戶要求所述群管理員重新發(fā)送群當(dāng)前時間更新密鑰。
可選地,所述步驟S10還包括設(shè)定系統(tǒng)參數(shù),具體包括:所述私鑰產(chǎn)生中心選擇兩個階為素數(shù)q>2λ的乘法循環(huán)群G1和G2,g是G1的一個生成元,同時選擇一個雙線性映射e:G1×G1→G2,一個隨機(jī)元素u∈G1,以及三個加密哈希函數(shù):
所述私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰具體包括:隨機(jī)選擇作為主密鑰,隨機(jī)選擇作為時間主密鑰。
可選地,所述私鑰產(chǎn)生中心基于所述主密鑰生成所述群的群身份密鑰,具體包括:隨機(jī)選擇并基于所述主密鑰計算群的群身份密鑰IDKID=(R1,σ1),其中σ1=r1+xH1(ID,R1)mod q。
可選地,所述群的群管理員基于所述時間主密鑰,結(jié)合時間段參數(shù),生成所述群的群當(dāng)前時間更新密鑰,具體包括:當(dāng)前處于時間段t,t∈[1,z],隨機(jī)選擇時間段參數(shù)基于所述時間主密鑰計算群當(dāng)前時間更新密鑰,TID=(Rt,σt),其中σt=rt+yH2(ID,Rt,t)modq。
可選地,所述步驟S13具體包括:計算當(dāng)前私鑰SKID,t=(R,σ),其中R=R1·Rt,σ=(σ1+σt)mod q。
一種云數(shù)據(jù)存儲方法,包括步驟:
S20:系統(tǒng)劃分為z個時間段,私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,z為大于零的正整數(shù);
S21:群向私鑰產(chǎn)生中心發(fā)送群身份標(biāo)識,所述私鑰產(chǎn)生中心基于所述主密鑰生成所述群的群身份密鑰,將所述群身份密鑰發(fā)送給所述群中在當(dāng)前時間在注冊的群用戶;
S22:所述群中在當(dāng)前時間在注冊的群用戶基于所述時間主密鑰,結(jié)合時間段參數(shù)生成群當(dāng)前時間更新密鑰,并根據(jù)所述群身份密鑰、所述群當(dāng)前時間更新密鑰生成當(dāng)前私鑰;
S23:所述群中在注冊的群用戶采用所述當(dāng)前私鑰,為共享文件的每一數(shù)據(jù)塊生成認(rèn)證標(biāo)簽,并將所述共享文件的數(shù)據(jù)塊、對應(yīng)的認(rèn)證標(biāo)簽、所處時間段上傳到云存儲端。
可選地,包括步驟:
S30:群中在注冊的群用戶采用當(dāng)前私鑰,為共享文件的每一數(shù)據(jù)塊生成認(rèn)證標(biāo)簽,并將所述共享文件的數(shù)據(jù)塊、對應(yīng)的認(rèn)證標(biāo)簽、所處時間段上傳到云存儲端,所述當(dāng)前私鑰為采用如上所述的云存儲的密鑰生成方法生成;
S31:第三方審計者向云存儲端發(fā)送審計質(zhì)詢;
S32:所述云存儲端根據(jù)所述審計質(zhì)詢生成證明,所述證明包括認(rèn)證標(biāo)簽、數(shù)據(jù)塊和生成所述認(rèn)證標(biāo)簽的時間段;
S33:所述第三方審計者通過驗證所述證明,以驗證存儲在所述云存儲端的數(shù)據(jù)是否完整。
可選地,包括步驟:
S40:群IDk中在注冊的群用戶采用其當(dāng)前私鑰,為共享文件Fk的每一數(shù)據(jù)塊生成認(rèn)證標(biāo)簽,將所述共享文件Fk的數(shù)據(jù)塊、對應(yīng)的認(rèn)證標(biāo)簽、所處的時間段上傳到云存儲端,所述共享文件Fk來自所述群IDk,所述當(dāng)前私鑰采用如上所述的云存儲的密鑰生成方法生成;
S41:第三方審計者向云存儲端發(fā)送審計質(zhì)詢;
S42:所述云存儲端根據(jù)所述審計質(zhì)詢生成證明,所述證明包括聚合認(rèn)證標(biāo)簽、聚合數(shù)據(jù)塊、各認(rèn)證標(biāo)簽對應(yīng)生成的時間段;
S43:所述第三方審計者通過驗證所述證明,以驗證存儲在所述云存儲端的數(shù)據(jù)是否完整。
由上述技術(shù)方案可以看出,本發(fā)明所提供的云存儲的密鑰生成方法,系統(tǒng)劃分為z個時間段,由私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,并基于主密鑰生成群的群身份密鑰,發(fā)送給群中在當(dāng)前時間在注冊的群用戶;群的群管理員基于時間主密鑰,結(jié)合時間段參數(shù)生成群的群當(dāng)前時間更新密鑰,并將群當(dāng)前時間更新密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶;群中在注冊的群用戶根據(jù)群身份密鑰、群當(dāng)前時間更新密鑰生成當(dāng)前私鑰,從而實現(xiàn)更新群中在注冊用戶的當(dāng)前私鑰。因此,只有群中在當(dāng)前時間在注冊的群用戶才可生成當(dāng)前私鑰,才能為云數(shù)據(jù)生成標(biāo)簽,而群中撤銷的用戶將不能生成私鑰,之前的私鑰也變得無效,不能再為云數(shù)據(jù)生成標(biāo)簽,從而該群用戶安全撤銷,因此云端也無需再更新該撤銷用戶之前產(chǎn)生的簽名,為云端極大地緩解了計算壓力。
本發(fā)明提供的云數(shù)據(jù)存儲方法、云存儲數(shù)據(jù)審計方法及云存儲數(shù)據(jù)批量審計方法,基于當(dāng)前更新的當(dāng)前私鑰為共享文件加密,只有群中在當(dāng)前時間在注冊的群用戶才可生成當(dāng)前私鑰,才能為云數(shù)據(jù)生成標(biāo)簽,而群中撤銷的用戶將不能生成私鑰,之前的私鑰也變得無效,不能再為云數(shù)據(jù)生成標(biāo)簽。與現(xiàn)有技術(shù)相比,對于群中撤銷用戶,避免了云端需要更新該撤銷用戶之前產(chǎn)生的簽名,因此極大地減少計算量,為云端極大地緩解了計算壓力和經(jīng)濟(jì)負(fù)擔(dān)。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種云存儲的密鑰生成方法的流程圖;
圖2為本發(fā)明實施例提供的一種云數(shù)據(jù)存儲方法的流程圖;
圖3為本發(fā)明實施例提供的一種云存儲數(shù)據(jù)審計方法的流程圖;
圖4為本發(fā)明實施例提供的一種云存儲數(shù)據(jù)批量審計方法的流程圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實施例提供的一種云存儲的密鑰生成方法,包括:
S10:系統(tǒng)劃分為z個時間段,私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,z為大于零的正整數(shù);
S11:所述私鑰產(chǎn)生中心基于所述主密鑰生成所述群的群身份密鑰,并將所述群身份密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶;
S12:所述群的群管理員基于所述時間主密鑰,結(jié)合時間段參數(shù),生成所述群的群當(dāng)前時間更新密鑰,并將所述群當(dāng)前時間更新密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶;
S13:所述群中在注冊的群用戶根據(jù)所述群身份密鑰、所述群當(dāng)前時間更新密鑰生成當(dāng)前私鑰。
由上述內(nèi)容可以看出,本實施例提供的云存儲的密鑰生成方法,系統(tǒng)劃分為z個時間段,由私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,并基于主密鑰生成群的群身份密鑰,發(fā)送給群中在當(dāng)前時間在注冊的群用戶;群的群管理員基于時間主密鑰,結(jié)合時間段參數(shù)生成群的群當(dāng)前時間更新密鑰,并將群當(dāng)前時間更新密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶;群中在注冊的群用戶根據(jù)群身份密鑰、群當(dāng)前時間更新密鑰生成當(dāng)前私鑰,從而實現(xiàn)更新群中在注冊用戶的當(dāng)前私鑰。因此,只有群中在當(dāng)前時間在注冊的群用戶才可生成當(dāng)前私鑰,才能為云數(shù)據(jù)生成標(biāo)簽,而群中撤銷的用戶將不能生成私鑰,之前的私鑰也變得無效,不能再為云數(shù)據(jù)生成標(biāo)簽,從而該群用戶安全撤銷,因此云端也無需再更新該撤銷用戶之前產(chǎn)生的簽名,為云端極大地緩解了計算壓力。
下面對本實施例提供的云存儲的密鑰生成方法進(jìn)行詳細(xì)說明。
請參考圖1,為本實施例提供的一種云存儲的密鑰生成方法的流程圖。本實施例云存儲的密鑰生成方法,包括步驟:
S10:系統(tǒng)劃分為z個時間段,私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,z為大于零的正整數(shù)。
群用戶的密鑰用于群向云存儲端存儲數(shù)據(jù)時對數(shù)據(jù)進(jìn)行加密,生成認(rèn)證標(biāo)簽。本實施例中,一個由群用戶共享的文件F被劃分為n等塊,即F=(m1,…,mn),其中mi表示文件F的第i個塊,并且系統(tǒng)被劃分為z個時間段,z為大于零的正整數(shù)。
私鑰產(chǎn)生中心(PKG)為一個被群用戶和云端所信任的權(quán)威實體,在云數(shù)據(jù)審計方案中產(chǎn)生系統(tǒng)參數(shù),具體包括:私鑰認(rèn)證中心選擇兩個階為素數(shù)q>2λ的乘法循環(huán)群G1和G2,g是G1的一個生成元,同時還選擇一個雙線性映射e:G1×G1→G2,一個隨機(jī)元素u∈G1,以及三個加密哈希函數(shù):
PKG隨機(jī)選擇作為主密鑰,隨機(jī)選擇作為時間主密鑰,并計算相應(yīng)的公鑰:Y1=gx,Y2=gy。PKG公開系統(tǒng)參數(shù)(G1,G2,e,q,g,u,Y1,Y2,H1,H2,h),將主密鑰x以及時間主密鑰y保密。
S11:所述私鑰產(chǎn)生中心基于所述主密鑰生成所述群的群身份密鑰,并將所述群身份密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶。
私鑰產(chǎn)生中心(PKG)隨機(jī)選擇并基于所述主密鑰計算群的群身份密鑰IDKID=(R1,σ1),其中PKG將計算好的群身份密鑰IDKID=(R1,σ1)通過安全信道發(fā)送給所述群中沒有撤銷的群用戶,即在注冊的群用戶,并將R1通過安全信道發(fā)送給第三方審計者(TPA)。
進(jìn)一步的,所述群在當(dāng)前時間在注冊的群用戶在接收到所述群身份密鑰時,可驗證所述群身份密鑰的正確性,若驗證正確,則群用戶接收所述群身份密鑰;若驗證錯誤,則群用戶拒絕接收所述群身份密鑰。驗證所述群身份密鑰的正確性具體包括:驗證等式是否成立,若所述等式成立,則群身份密鑰正確;若所述等式不成立,則群身份密鑰錯誤,群用戶拒絕接收所述群身份密鑰。
S12:所述群的群管理員基于所述時間主密鑰,結(jié)合時間段參數(shù),生成所述群的群當(dāng)前時間更新密鑰,并將所述群當(dāng)前時間更新密鑰發(fā)送給群中在當(dāng)前時間在注冊的群用戶。
群管理員從私鑰產(chǎn)生中心接收到時間主密鑰當(dāng)前處于時間段t,t∈[1,z]。在當(dāng)前時間段t,群管理員隨機(jī)選擇時間段參數(shù)基于時間主密鑰計算群當(dāng)前時間更新密鑰TID,t=(Rt,σt),其中σt=rt+yH2(ID,Rt,t)mod q。
然后,可通過安全信道將生成的群當(dāng)前時間更新密鑰TID,t=(Rt,σt)發(fā)送給群中在當(dāng)前時間在注冊的群用戶。并將Rt通過安全信道發(fā)送給第三方審計者TPA。在系統(tǒng)不同時間段內(nèi),群當(dāng)前時間更新密鑰可更新生成。因此對于群中新加入的群用戶,在加入群時可獲得群當(dāng)前時間更新密鑰,以生成私鑰;對于群撤銷用戶,則不能再獲得群當(dāng)前時間更新密鑰,將不能更新私鑰。
進(jìn)一步的,所述群的在當(dāng)前時間在注冊的群用戶在接收到所述群當(dāng)前時間更新密鑰時,可以驗證所述群當(dāng)前時間更新密鑰的正確性,若驗證正確,則群用戶接收所述群當(dāng)前時間更新密鑰,若驗證錯誤,則群用戶要求所述群管理員重新發(fā)送群當(dāng)前時間更新密鑰。群用戶驗證群當(dāng)前時間更新密鑰的正確性具體包括:驗證等式是否成立,若該等式成立,則所述群當(dāng)前時間更新密鑰正確;若該等式不成立,則所述群當(dāng)前時間更新密鑰錯誤,群用戶可以要求群管理員重新發(fā)送群當(dāng)前時間更新密鑰。
S13:所述群中在注冊的群用戶根據(jù)所述群身份密鑰、所述群當(dāng)前時間更新密鑰生成當(dāng)前私鑰。
群中在注冊的群用戶在接收到群身份密鑰IDKID=(R1,σ1)和群當(dāng)前時間更新密鑰TID,t=(Rt,σt)之后,計算在當(dāng)前時間段t(t∈[1,z])時的當(dāng)前私鑰SKID,t=(R,σ),其中R=R1·Rt,σ=(σ1+σt)modq。
可以看出,本實施例云存儲的密鑰生成方法,系統(tǒng)劃分為z個時間段,群用戶根據(jù)群身份密鑰和群當(dāng)前時間更新密鑰更新當(dāng)前私鑰,,在系統(tǒng)時間段內(nèi)群管理員更新群當(dāng)前時間更新密鑰,只發(fā)送給群中在當(dāng)前時間在注冊的群用戶,因此只有群中在當(dāng)前時間在注冊的群用戶才可生成當(dāng)前私鑰,才能為云數(shù)據(jù)生成標(biāo)簽,而群中撤銷的用戶將不能生成私鑰,之前的私鑰也變得無效,不能再為云數(shù)據(jù)生成簽名,從而該群用戶安全撤銷,本實施例云存儲的密鑰生成方法與現(xiàn)有技術(shù)相比,云端也無需再更新該撤銷用戶之前產(chǎn)生的簽名,降低了計算量,為云端極大地緩解了計算壓力。
相應(yīng)的,本發(fā)明實施例還提供一種云數(shù)據(jù)存儲方法,請參考圖2,為本實施例提供的一種云存儲的密鑰生成方法的流程圖,包括步驟:
S20:系統(tǒng)劃分為z個時間段,私鑰產(chǎn)生中心為群設(shè)定主密鑰和時間主密鑰,z為大于零的正整數(shù)。
一個由群用戶共享的文件F被劃分為n等塊,即F=(m1,…,mn),其中mi表示文件F的第i個塊,并且系統(tǒng)被劃分為z個時間段,z為大于零的正整數(shù)。
私鑰產(chǎn)生中心(PKG)產(chǎn)生系統(tǒng)參數(shù),具體包括:私鑰產(chǎn)生中心選擇兩個階為素數(shù)q>2λ的乘法循環(huán)群G1和G2,g是G1的一個生成元,同時還選擇一個雙線性映射e:G1×G1→G2,一個隨機(jī)元素u∈G1,以及三個加密哈希函數(shù):
PKG隨機(jī)選擇作為主密鑰,隨機(jī)選擇作為時間主密鑰,并計算相應(yīng)的公鑰:Y1=gx,Y2=gy。PKG公開系統(tǒng)參數(shù)(G1,G2,e,q,g,u,Y1,Y2,H1,H2,h),將主密鑰x以及時間主密鑰y保密。
S21:群向私鑰產(chǎn)生中心發(fā)送群身份標(biāo)識,所述私鑰產(chǎn)生中心基于所述主密鑰生成所述群的群身份密鑰,將所述群身份密鑰發(fā)送給所述群中在當(dāng)前時間在注冊的群用戶。
群向私鑰產(chǎn)生中心發(fā)送群身份標(biāo)識,即群ID。私鑰產(chǎn)生中心在接收到群身份標(biāo)識后,隨機(jī)選擇并基于群的主密鑰計算群的群身份密鑰IDKID=(R1,σ1),其中σ1=r1+xH1(ID,R1)mod q。PKG將計算好的群身份密鑰IDKID=(R1,σ1)通過安全信道發(fā)送給所述群中在注冊的群用戶,并將R1通過安全信道發(fā)送給第三方審計者(TPA)。
進(jìn)一步的,所述群的在當(dāng)前時間在注冊的群用戶在接收到所述群身份密鑰時,可驗證所述群身份密鑰的正確性,若驗證正確,則群用戶接收所述群身份密鑰;若驗證錯誤,則群用戶拒絕接收所述群身份密鑰。驗證所述群身份密鑰的正確性具體包括:驗證等式是否成立,若所述等式成立,則所述群身份密鑰正確;若所述等式不成立,則所述群身份密鑰錯誤,群用戶拒絕接收所述群身份密鑰。
S22:所述群中在當(dāng)前時間在注冊的群用戶基于所述時間主密鑰,結(jié)合時間段參數(shù)生成群當(dāng)前時間更新密鑰,并根據(jù)所述群身份密鑰、所述群當(dāng)前時間更新密鑰生成當(dāng)前私鑰。
群管理員從私鑰產(chǎn)生中心接收到時間主密鑰在當(dāng)前時間段t,t∈[1,z],群管理員隨機(jī)選擇時間段參數(shù)基于時間主密鑰計算群當(dāng)前時間更新密鑰TID,t=(Rt,σt),其中σt=rt+yH2(ID,Rt,t)mod q。
可通過安全信道將生成的群當(dāng)前時間更新密鑰TID,t=(Rt,σt)發(fā)送給群中在當(dāng)前時間在注冊的群用戶。并將Rt通過安全信道發(fā)送給第三方審計者TPA。
群中在注冊的群用戶在接收到群身份密鑰IDKID=(R1,σ1)和群當(dāng)前時間更新密鑰TID,t=(Rt,σt)之后,計算在當(dāng)前時間段t(t∈[1,z])時的當(dāng)前私鑰SKID,t=(R,σ),其中R=R1·Rt,σ=(σ1+σt)modq。
進(jìn)一步的,所述群的在當(dāng)前時間在注冊的群用戶在接收到所述群當(dāng)前時間更新密鑰時,可以驗證所述群當(dāng)前時間更新密鑰的正確性,若驗證正確,則群用戶接收所述群當(dāng)前時間更新密鑰,若驗證錯誤,則群用戶要求所述群管理員重新發(fā)送群當(dāng)前時間更新密鑰。群用戶驗證群當(dāng)前時間更新密鑰的正確性具體包括:驗證等式是否成立,若該等式成立,則所述群當(dāng)前時間更新密鑰正確;若等式不成立,則所述群當(dāng)前時間更新密鑰錯誤,群用戶可以要求群管理員重新發(fā)送群當(dāng)前時間更新密鑰。
S23:所述群中在注冊的群用戶采用所述當(dāng)前私鑰,為共享文件的每一數(shù)據(jù)塊生成認(rèn)證標(biāo)簽,并將所述共享文件的數(shù)據(jù)塊、對應(yīng)的認(rèn)證標(biāo)簽、所處時間段上傳到云存儲端。
在當(dāng)前時間段t,群中在注冊的群用戶為文件F中的每一個數(shù)據(jù)塊mi產(chǎn)生標(biāo)簽,具體為:計算認(rèn)證標(biāo)簽其中i是數(shù)據(jù)塊mi的索引,是由群隨機(jī)選擇的一個元素。群將(mi,Ti,t)上傳到云存儲端,同時刪除本地數(shù)據(jù)F=(m1,…,mn)。
本實施例云數(shù)據(jù)存儲方法,基于群當(dāng)前私鑰為共享文件加密,只有群中在當(dāng)前時間在注冊的群用戶才可生成當(dāng)前私鑰,才能為云數(shù)據(jù)生成標(biāo)簽,而群中撤銷的用戶將不能生成私鑰,之前的私鑰也變得無效,不能再為云數(shù)據(jù)生成標(biāo)簽,從而該群用戶安全撤銷,這樣與現(xiàn)有技術(shù)相比,云端也無需再更新該撤銷用戶之前產(chǎn)生的簽名,為云端極大地緩解了計算壓力。
并且現(xiàn)有技術(shù)中,有成員撤銷功能的數(shù)據(jù)審計方案是基于公鑰基礎(chǔ)設(shè)施(PKI)環(huán)境下的,這種方法使得云存儲端必須在用戶上傳數(shù)據(jù)之前認(rèn)證用戶的證書。而在大數(shù)據(jù)環(huán)境下,大量的用戶可能頻繁的向云端傳輸數(shù)據(jù),頻繁的新用戶加入群體或是舊用戶的撤銷,這些都將會產(chǎn)生一系列的證書頒發(fā)或是撤銷操作,使得系統(tǒng)變得十分龐大并且效率低。本實施例云數(shù)據(jù)存儲方法,基于群身份,并結(jié)合當(dāng)前時間段更新當(dāng)前私鑰,不再基于PKI環(huán)境下認(rèn)證身份證書,大大簡化了一系列證書操作,提高了效率。
因此,本實施例云數(shù)據(jù)存儲方法,基于群身份密鑰和群當(dāng)前時間更新密鑰更新當(dāng)前私鑰,對于撤銷用戶,云端也無需再更新該撤銷用戶之前產(chǎn)生的簽名,與現(xiàn)有技術(shù)相比減少了計算量,尤其在大數(shù)據(jù)環(huán)境下,極大地緩解了云端的計算負(fù)擔(dān)和經(jīng)濟(jì)負(fù)擔(dān);并且大大簡化了一系列證書操作,提高了系統(tǒng)效率。本實施例云數(shù)據(jù)存儲方法非常適用于大數(shù)據(jù)環(huán)境下,以此來緩解云端的壓力。
相應(yīng)的,本發(fā)明實施例還提供一種云存儲數(shù)據(jù)審計方法,請參考圖3,為本實施例提供的云存儲數(shù)據(jù)審計方法的流程圖,包括步驟:
S30:群中在注冊的群用戶采用當(dāng)前私鑰,為共享文件的每一數(shù)據(jù)塊生成認(rèn)證標(biāo)簽,并將所述共享文件的數(shù)據(jù)塊、對應(yīng)的認(rèn)證標(biāo)簽、所處時間段上傳到云存儲端,所述當(dāng)前私鑰為采用如上所述的方法生成。
在時間段t,群中在注冊的群用戶為共享文件F中的每一個數(shù)據(jù)塊mi產(chǎn)生標(biāo)簽,具體為:計算認(rèn)證標(biāo)簽其中i是數(shù)據(jù)塊mi的索引,是由群隨機(jī)選擇的一個元素。群將(mi,Ti,t)上傳到云存儲端,同時刪除本地數(shù)據(jù)F=(m1,…,mn)。
S31:第三方審計者向云存儲端發(fā)送審計質(zhì)詢。
具體包括:隨機(jī)選擇c個元素的集合I,其中對每一個i∈I,隨機(jī)選擇vi∈Zp*,將審計質(zhì)詢chal={i,vi}i∈I發(fā)送給云存儲端。
S32:所述云存儲端根據(jù)所述審計質(zhì)詢生成證明,所述證明包括認(rèn)證標(biāo)簽、數(shù)據(jù)塊和生成所述認(rèn)證標(biāo)簽的時間段。
云存儲端在接收到第三方審計者發(fā)送的審計質(zhì)詢后,計算生成證明,具體包括:計算生成證明將其發(fā)送給第三方審計者,其中t是這個群上傳文件F=(m1,…,mn)及相應(yīng)標(biāo)簽的時間段。
S33:所述第三方審計者通過驗證所述證明,以驗證存儲所述云存儲端的數(shù)據(jù)是否完整。
第三方審計者在接收到證明后,檢查等式是否成立,若成立,則表明存儲在云存儲端的數(shù)據(jù)完整;若不成立,則表明存儲在云存儲端的數(shù)據(jù)不完整。上述等式的正確性如下:
可以看出,本實施例云存儲數(shù)據(jù)審計方法,在該審計方案中,對于群中撤銷用戶,云端無需再更新撤銷用戶之前產(chǎn)生的認(rèn)證標(biāo)簽,在大數(shù)據(jù)環(huán)境中,用戶撤銷會是很頻繁的,本實施例審計方法不再需要云端更新大量的認(rèn)證標(biāo)簽,這便極大地緩解了云端的計算壓力。同時,本實施例審計方法是基于身份的密碼體制,直接使用用戶的身份作為公鑰(本方法中群中的每個用戶都使用同一個公鑰,即群的身份ID),不再是基于PKI環(huán)境下的,避免了一系列復(fù)雜的證書操作,可提高系統(tǒng)效率。本實施例審計方法十分適合大數(shù)據(jù)環(huán)境中。
本發(fā)明實施例還提供一種云存儲數(shù)據(jù)的批量審計方法,請參考圖4,為本實施例提供的云存儲數(shù)據(jù)批量審計方法的流程圖,包括步驟:
S40:群IDk中在注冊的群用戶采用其當(dāng)前私鑰,為共享文件Fk的每一數(shù)據(jù)塊生成認(rèn)證標(biāo)簽,將所述共享文件Fk的數(shù)據(jù)塊、對應(yīng)的認(rèn)證標(biāo)簽、所處的時間段上傳到云存儲端,所述共享文件Fk來自所述群IDk,所述當(dāng)前私鑰采用如上所述的云存儲的密鑰生成方法生成。
在該方案中,包括K個共享文件,被審計的共享文件為Fk=(mk,1,mk,2,...,mk,n),其中1≤k≤K.文件Fk來自群IDk,并且群IDk在時間段tk時為共享文件Fk生成認(rèn)證標(biāo)簽,并將文件Fk上傳到云存儲端。群IDk在時間段tk時的當(dāng)前私鑰為其中Rk=R1,k·Rt,k,σk=(σ1,k+σt,k)modq。公開密鑰為Y1,k、Y2,k,其中每一個文件Fk相應(yīng)的認(rèn)證標(biāo)簽為{Tk,i}1≤i≤n,其中uk∈G1是由群IDk隨機(jī)選擇的元素。
本實施例中,K個共享文件可來自不同的群體,也可以是來自同一個群體。
S41:第三方審計者向云存儲端發(fā)送審計質(zhì)詢。
S42:所述云存儲端根據(jù)所述審計質(zhì)詢生成證明,所述證明包括:聚合認(rèn)證標(biāo)簽、聚合數(shù)據(jù)塊、各認(rèn)證標(biāo)簽生成的時間段。
第三方審計者在接收到云存儲端發(fā)送的審計質(zhì)詢后,計算一個聚合的簽名以及一個聚合的數(shù)據(jù)塊將生成的證明發(fā)送給第三方審計者TPA。
S43:所述第三方審計者通過驗證所述證明,以驗證存儲在所述云存儲端的數(shù)據(jù)是否完整。
第三方審計者通過驗證以下等式是否成立:
若等式成立,則表明存儲在云存儲端的數(shù)據(jù)完整;若不成立,則表明存儲在云存儲端的數(shù)據(jù)不完整。上述等式的正確性如下:
因此,本實施例云存儲數(shù)據(jù)的批量審計方法,可以實現(xiàn)第三方審計者TPA同時處理來自不同群用戶的、對不同數(shù)據(jù)文件的審計工作,這樣大大減少了審計過程中的計算和通信開銷。
以上對本發(fā)明所提供的云存儲的密鑰生成方法、云數(shù)據(jù)存儲方法以及相關(guān)的云存儲數(shù)據(jù)審計方法進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。