本發明涉及加密技術領域,尤其涉及一種基于云服務器的數據存取方法及系統。
背景技術:
云存儲是云計算中的一個重要的設備,它允許數據用戶將他們的本地數據移交給云服務器,并且在保證了云服務器正確存儲了本地數據之后本地用戶可以刪除該數據。數據用戶可能會擔心數據有沒有在云服務器丟失的風險,這是因為無論云服務器的可靠性有多高,它都有被外界攻擊的可能性,并且有時候甚至云服務器也有可能是惡意云,即一個惡意云,當它處理數據時,審計查詢對其都是透明的,因此,該惡意云知道用戶是否接收到了驗證信息,此時惡意云就可以偽造審計信息讓用戶誤以為存儲的數據是正確的??偠灾?,云存儲技術一方面為數據用戶節省了存儲空間,另一方面聲明了外包給云服務器的數據是被正確存儲的。
傳統的云存儲,用戶檢測數據的完整性是基于兩方存儲審計協議的。然而,在云服務器端或是在用戶端產生審計查詢都是不合適的,因為它們二者都不能保證可以提供公正的審計結果。在這種情況下,在云存儲中利用三方審計就成了一個最佳的選擇。一個好的三方審計是通過它的審計效率和是否能保證云服務器和數據用戶正確交互來衡量的。
對于三方審計,已經有很多人提出來了相關理論,總結出來可以概括為三點:1)保密性,即審計協議應該保證用戶數據對三方審計保密;2)動態審計,即審計協議應該支持數據在云端動態更新;3)批量審計,即審計協議支持應該允許多用戶多云服務器進行批量審計。三方審計模型如圖1所示:
其中包括三個實體,即數據用戶終端100、云服務器200和第三方審計300。本地的數據用戶終端100用來生成數據并將其數據存儲在云服務器200,云服務器200存儲用戶的數據并可供用戶隨時提取數據,第三方審計300可為數據用戶終端100和云服務器200提供數據存儲審計服務,例如可在數據用戶終端100向云服務器200存儲數據后,向云服務器200發起挑戰,并接收云服務器200返回的證明,以驗證數據用戶終端100外包給云服務器200的數據是否保持完整。因為若云服務器200保存的數據不完整,用戶再提取數據也就沒有意義了;同時使用第三方審計300作為一個獨立的實體,也可以減輕云服務器200的壓力。
然而,在實際操作中,不是只有本地用戶來提取云服務器200的外包數據,非本地用戶由于實際需要也會提取該外包數據,而現有技術中缺乏對非本地用戶提取數據的安全有效的方案。
技術實現要素:
本發明要解決的技術問題是,針對現有技術中缺乏對非本地用戶提取數據的安全有效方案的缺陷,提供一種基于云服務器的數據存取方法及系統,通過對加密密鑰的次數進行驗證來提供非本地的授權用戶提取數據方案。
為了解決上述技術問題,本發明采用如下技術方案:
本發明第一方面,提供了一種基于云服務器的數據存取方法,包括:
數據存儲步驟:數據用戶終端生成加密密鑰,并使用所述加密密鑰對文件分塊加密后將加密數據存儲到云服務器;
數據用戶提取步驟:所述數據用戶終端向云服務器發送提取數據請求以及所述加密密鑰的次數t,所述云服務器將解密數據返還給數據用戶終端;
授權用戶提取步驟:授權用戶終端向所述數據用戶終端發出授權請求;所述數據用戶終端對加密密鑰的次數t進行加密得到加密授權請求標簽t_sign后返還給所述授權用戶終端;所述授權用戶終端向云服務器發送提取數據請求以及所述加密授權請求標簽t_sign,云服務器對接收的加密授權請求標簽t_sign進行解密后得到次數t′,在判斷t′與存儲的次數t相等時將解密數據返還給授權用戶終端,否則不解密數據。
優選地,所述方法還包括:
存儲審計步驟:所述數據用戶終端在向云服務器存儲數據后將所述加密文件的抽象信息發送給第三方審計,所述第三方審計根據所述加密文件的抽象信息向所述云服務器發起挑戰,并根據云服務器返回的該挑戰的相應證明驗證存儲在云服務器的數據是否完整,并將驗證結果反饋給所述數據用戶終端。
優選地,所述方法還包括:
提取審計步驟:所述數據用戶終端或者授權用戶終端在接收解密數據后將解密文件的抽象信息發送給第三方審計,所述第三方審計根據接收的解密文件的抽象信息判斷與原始數據用戶終端加密時發送的加密文件的抽象信息是否相等,是則發送無需重新加密的驗證信息給所述數據用戶終端,否則發送需要重新加密的驗證信息給所述數據用戶終端。
優選地,所述數據存儲步驟包括:
密鑰生成子步驟:將文件F分成n個數據塊,記為mi∈Zp,i∈I,I=[1,n];生成加密密鑰,所述加密密鑰包括文件的加密密鑰key_cml,以及文件分塊后每一個數據塊的標簽密鑰skt、哈希密鑰skh和標簽公鑰pkt=(gx,ux);其中,x∈Zp為隨機數,skt=ytag,ytag是一個隨機素數,ytag1,ytag2,.....,ytagn是與ytag互質的素數,并找到一個隨機數s,使得e是一個素數;
文件加密子步驟:文件F分塊后每一個數據塊的標簽記為ti∈Zp,總的標簽記為T={ti}i∈[1,n];將生成后的標簽附加在對應的數據塊上實現數據致盲,記為mi'=mi+ti;
數據發送子步驟:將加密數據發送至云服務器,所述加密數據包括文件的加密數據、加密文件的抽象信息和帶標簽的認證信息;所述文件的加密數據為F′={mi′}i∈[1,n],所述帶標簽的認證信息為其中Ri=FID||i,FID為識別文件的標識信息,“||”為串聯標志。
優選地,所述存儲審計步驟包括:
請求發送子步驟:數據用戶終端在執行數據存儲步驟后將審計請求發送給第三方審計,該審計請求中含有加密文件的抽象信息以及標簽公鑰pkt;
發起挑戰子步驟:第三方審計定義挑戰并向云服務器發起挑戰;其中,vi為加密數據每一塊對應產生的隨機數,Q=pktq是一個挑戰集,q∈Zp是一個隨機數;
證明子步驟:所述云服務器接收所述挑戰后生成相應證明P=(ρ,ω,ε,τ)返回給所述第三方審計;其中,認證信息ρi為所述加密數據中每一塊的去標簽認證信息,
驗證子步驟:所述第三方審計收到云服務器返回的相應證明后通過公式驗證審計證明的正確性,若該等式成立,則判斷存儲在云服務器的數據是完整的,否則不完整。
本發明第二方面,提供了一種基于云服務器的數據存取系統,至少包括云服務器、數據用戶終端和授權用戶終端;
所述數據用戶終端用于生成加密密鑰,并使用所述加密密鑰對文件分塊加密后將加密數據存儲到云服務器;所述數據用戶終端還用于在提取數據時向云服務器發送提取數據請求以及所述加密密鑰的次數t,并接收所述云服務器返還的解密數據;所述數據用戶終端還用于在在接收數據用戶終端發送的授權請求時對加密密鑰的次數t進行加密后得到加密授權請求標簽t_sign后返還給所述授權用戶終端;
所述授權用戶終端用于向所述數據用戶終端發出授權請求以及所述加密授權請求標簽t_sign;
所述云服務器用于存儲所述數據用戶終端發送的加密數據;所述云服務器還用于接收數據用戶終端發送的提取數據請求以及所述加密密鑰的次數t后將解密數據返還給數據用戶終端;所述云服務器還用于在接收授權用戶終端發送的提取數據請求和加密授權請求標簽t_sign后進行解密后得到次數t′,在判斷t′與存儲的次數t相等時將解密數據返還給授權用戶終端,否則不解密數據。
優選地,所述系統還包括第三方審計,包括:
存儲審計模塊,用于根據數據用戶終端在向云服務器存儲數據后提供的加密文件的抽象信息向所述云服務器發起挑戰,并根據云服務器返回的該挑戰的相應證明驗證存儲在云服務器的數據是否完整,并將驗證結果反饋給數據用戶終端;和/或
提取審計模塊,用于接收所述數據用戶終端或者授權用戶終端在接收解密數據后發送的解密文件的抽象信息,并根據接收的解密文件的抽象信息判斷與原始數據用戶終端加密時發送的加密文件的抽象信息是否相等,是則發送無需重新加密的驗證信息給所述數據用戶終端,否則發送需要重新加密的驗證信息給所述數據用戶終端。
優選地,所述數據用戶終端包括:
密鑰生成模塊,用于將文件F分成n個數據塊,記為mi∈Zp,i∈I,I=[1,n];生成加密密鑰,所述加密密鑰包括文件的加密密鑰key_cml,以及文件分塊后每一個數據塊的標簽密鑰skt、哈希密鑰skh和標簽公鑰pkt=(gx,ux);其中,x∈Zp為隨機數,skt=ytag,ytag是一個隨機素數,ytag1,ytag2,.....,ytagn是與ytag互質的素數,并找到一個隨機數s,使得e是一個素數;
文件加密模塊,用于將文件F分塊后每一個數據塊的標簽記為ti∈Zp,總的標簽記為T={ti}i∈[1,n];將生成后的標簽附加在對應的數據塊上實現數據致盲,記為mi'=mi+ti;
通信模塊,用于將加密數據發送至云服務器,所述加密數據包括文件的加密數據、加密文件的抽象信息和帶標簽的認證信息;所述文件的加密數據為F′={mi′}i∈[1,n],所述帶標簽的認證信息為其中Ri=FID||i,FID為識別文件的標識信息,“||”為串聯標志;所述通信模塊還用于將審計請求發送給第三方審計,該審計請求中含有加密文件的抽象信息以及標簽公鑰pkt。
優選地,所述存儲審計模塊包括:
發起挑戰單元,用于定義挑戰并向云服務器發起挑戰;其中,vi為加密數據每一塊對應產生的隨機數,Q=pktq是一個挑戰集,q∈Zp是一個隨機數;
驗證單元,用于在所述第三方審計收到云服務器返回的相應證明后通過公式驗證審計證明的正確性,若該等式成立,則判斷存儲在云服務器的數據是完整的,否則不完整。
優選地,所述云服務器包括:
存儲模塊,用于存儲所述數據用戶終端發送的加密數據;
證明模塊,用于接收第三方審計發送的所述挑戰后生成相應證明P=(ρ,ω,ε,τ)返回給所述第三方審計;其中,認證信息ρi為所述加密數據中每一塊的去標簽認證信息,
解密模塊,用于接收數據用戶終端發送的提取數據請求以及所述加密密鑰的次數t后將解密數據返還給授權用戶;所述解密模塊還用于在接收授權用戶終端發送的提取數據請求和加密授權請求標簽t_sign后進行解密后得到次數t′,在判斷t′與存儲的t相等時將解密數據返還給授權用戶終端,否則不解密數據。
實施本發明的基于云服務器的數據存取方法和系統,具有以下有益效果:
1、本發明提供了授權用戶終端的數據提取方案,并利用加密密鑰的次數對授權用戶終端的身份進行驗證,一方面使該驗證與加密密鑰相關,另一方面實施起來更為簡單有效,在提高數據存取方法安全性的同時又不會增大運算量。
2、本發明采用的挑戰集是在文件分塊后將所有標簽提取出來,由所有標簽組成的挑戰集,該計算在一定程度上增加了復雜度,提高了數據傳輸的安全性,避免了因為密鑰被輕易解析而造成數據被截獲。另一方面,該挑戰的計算復雜度不會過高,以保障運算量在合理的范圍內。
3、本發明中數據的解密操作由云服務器來完成,由于云服務器的計算能力遠大于用戶端,可以在很大程度上減輕用戶端的計算量。
附圖說明
圖1為現有技術中三方審計模型圖;
圖2為根據本發明優選實施例的基于云服務器的數據存取系統的模型圖;
圖3為根據本發明優選實施例的基于云服務器的數據存取方法的流程圖;
圖4為根據本發明優選實施例的基于云服務器的數據存取方法的交互圖;
圖5為根據本發明優選實施例的第三方審計的功能模塊圖;
圖6為根據本發明優選實施例的數據用戶終端的功能模塊圖;
圖7為根據本發明優選實施例的云服務器的功能模塊圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明的一部分實施例,而不是全部的實施例?;诒景l明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參閱圖2,為根據本發明優選實施例的基于云服務器的數據存取系統的模型圖。如圖2所示,該基于云服務器的數據存取系統至少包括數據用戶終端100、云服務器200和授權用戶終端400。其中數據用戶終端100為向云服務器200存儲原始數據的本地用戶,授權用戶終端
請結合參閱圖3,為根據本發明優選實施例的基于云服務器的數據存取方法的流程圖。該基于云服務器的數據存取方法基于上述數據存取系統實現。如圖3所示,本發明優選實施例提供的基于云服務器的數據存取方法至少包括以下步驟:
首先,在步驟S1中,執行數據存儲步驟,由數據用戶終端100生成加密密鑰,并使用所述加密密鑰對文件分塊加密后將加密數據存儲到云服務器200。該加密數據又稱為外包數據。
隨后,在步驟S2中,執行數據用戶提取步驟,由數據用戶終端100向云服務器200發送提取數據請求以及所述加密密鑰的次數t,該提取數據請求含有前述加密密鑰。云服務器200在接收該請求后利用該加密密鑰對數據進行解密后得到解密數據,并將解密數據返還給數據用戶終端100,同時存儲所述加密密鑰的次數t備用。
最后,在步驟S3中,執行授權用戶提取步驟,由授權用戶終端400向數據用戶終端100發出授權請求。數據用戶終端100確認授權用戶終端400的身份后,對所述加密密鑰的次數t進行加密得到加密授權請求標簽t_sign,并將加密授權請求標簽t_sign返還給授權用戶終端400。優選地,該數據用戶終端100還將加密密鑰一并發送給授權用戶終端400。之后,授權用戶終端400向云服務器200發送提取數據請求以及所述加密授權請求標簽t_sign,云服務器200對接收的加密授權請求標簽t_sign進行解密后得到次數t′,在判斷t′與存儲的t相等時將解密數據返還給授權用戶終端400,否則不解密數據。本發明利用加密密鑰的次數t進行授權用戶終端的驗證,一方面是與加密密鑰相關,另一方面實施起來簡單有效,在提高數據存取方法安全性的同時又不會增大運算量。
在本發明更優選的實施方式中,還具有第三方審計功能。相應地,基于云服務器的數據存取系統還包括第三方審計300。該第三方審計300具有存儲審計功能和/或提取審計功能。因此,對應地,該基于云服務器的數據存取方法還包括存儲審計步驟和/或提取審計步驟。
其中存儲審計步驟可在前述步驟S1中數據用戶終端100向云服務器200存儲數據后執行,該存儲審計步驟包括:數據用戶終端100在向云服務器200存儲數據后將加密文件的抽象信息發送給第三方審計300。第三方審計300根據所述加密文件的抽象信息向云服務器200發起挑戰,并根據云服務器返回的該挑戰的相應證明驗證存儲在云服務器200的數據是否完整,并將驗證結果反饋給數據用戶終端100。
提取審計步驟可在前述步驟S2和/或S3后執行,該提取審計步驟包括:由數據用戶終端100或者授權用戶終端400在接收解密數據后將解密文件的抽象信息發送給第三方審計300。第三方審計300根據接收的解密文件的抽象信息判斷與原始數據用戶終端100加密時發送的加密文件的抽象信息是否相等,是則發送無需重新加密的驗證信息給數據用戶終端100,否則發送需要重新加密的驗證信息給數據用戶終端100。
請結合參閱圖4,為根據本發明優選實施例的基于云服務器的數據存取方法的交互圖。設本發明中需要存儲的數據為文件F,包括圖像、文本等各種形式文件,下面以文件F為圖像舉例進行具體說明。如圖4所示,該基于云服務器的數據存取方法具體包括以下步驟:
首先,在步驟S401-S403中執行數據存儲步驟,具體包括:
S401、執行密鑰生成子步驟KeyGen→(key_cml,pkt,skt,skh):由數據用戶終端100將文件F例如輸入的圖像分成n個數據塊,記為mi∈Zp,i∈I,I=[1,n]。數據用戶終端100要將本地的圖像存儲到云服務器200,需要先對圖像進行加密,加密后的圖像每一塊都對應一塊標簽,標簽也需要進行加密,然后再存儲到云端,因此該步驟中需要先生成加密密鑰,該加密密鑰包括文件的加密密鑰key_cml,以及文件分塊后每一個數據塊的標簽密鑰skt、哈希密鑰skh和標簽公鑰pkt=(gx,ux);其中,x∈Zp為一個隨機數,skt=ytag,ytag是一個隨機素數,ytag1,ytag2,.....,ytagn是與ytag互質的素數,并找到一個隨機數s,使得e是一個素數。在標簽公鑰pkt=(gx,ux)中,若G為一個群,若G中存在一個元素g,對于屬于G中的任意x,都存在整數k,使x=gk,則稱G為G生成的循環群,g為群的生成元。
若存在最小正整數n,使得e=gn,稱n為生成元的階。G1,G2都是循環乘法群。g,u分別為G1,G2的生成元。
S402、執行文件加密子步驟TagGen→T:文件F分塊后每一個數據塊的標簽記為ti∈Zp,總的標簽記為T={ti}i∈[1,n];數據用戶終端100將生成后的標簽附加在對應的數據塊上實現數據致盲,記為m′i=mi+ti。
S403、執行數據發送子步驟:數據用戶終端100將加密數據發送至云服務器200,所述加密數據包括文件的加密數據、加密文件的抽象信息和帶標簽的認證信息。所述文件的加密數據為F′={mi′}i∈[1,n],所述帶標簽的認證信息為其中Ri=FID||i,FID為識別文件的標識信息,“||”為串聯標志。其中,H(skh,Ri)為哈希函數,skh和Ri均為該哈希函數的輸入參數。本發明中加密文件或者解密文件的抽象信息為文件的名稱、文件分塊的個數n、標簽的個數和用戶終端的類別。由于本發明中對每塊數據設立一個標簽,所以此處標簽的個數與文件分塊的個數相等,也為n。
隨后,在步驟S404-S407中執行存儲審計步驟,具體包括:
S404、執行請求發送子步驟:數據用戶終端100在執行數據存儲步驟后將審計請求發送給第三方審計300,優選地,該審計請求中含有加密文件的抽象信息以及標簽公鑰pkt。
S405、執行發起挑戰子步驟第三方審計300定義挑戰并向云服務器200發起挑戰;其中,vi為加密數據每一塊對應產生的隨機數,Q=pktq是一個挑戰集,q∈Zp是一個隨機數。本發明的另一個創新之處在于此處優化了挑戰的生成方法,本發明挑戰的構成不一樣,并且生成挑戰的輸入中含有標簽公鑰。傳統的Q是在文件分塊后取出部分數據的標簽構成挑戰集,而本發明采用的挑戰集是在文件分塊后將所有標簽提取出來,由所有標簽組成的挑戰集,該計算在一定程度上增加了復雜度,提高了數據傳輸的安全性,避免了因為密鑰被輕易解析而造成數據被截獲。另一方面,該挑戰的計算復雜度不會過高,以保障運算量在合理的范圍內。
S406、執行證明子步驟Proof→Ρ:云服務器200接收所述挑戰后,對這個挑戰做出響應,生成相應證明P=(ρ,ω,ε,τ)返回給所述第三方審計;其中,認證信息ρi為所述加密數據中每一塊的去標簽認證信息:
S407、驗證子步驟Verify→ν(0/1),第三方審計300收到云服務器200返回的相應證明后通過以下公式驗證審計證明的正確性,得到相應的驗證結果:
若該等式成立,則判斷存儲在云服務器200的數據是完整的,否則不完整。
數據用戶終端100根據云服務器200返回的驗證結果選擇是否刪除本地數據。
當外界需要提取云服務器200的外包數據時,需要有加密數據的密鑰才能獲取外包數據,此時分兩種情況,即數據用戶提取步驟和授權用戶提取步驟,分別對應本地用戶和非本地用戶提取的情況。
當本地的數據用戶終端100需要向云服務器200提取數據時,在步驟S408-S409中執行數據用戶提取步驟,具體包括:
S408、由數據用戶終端100向云服務器200發送提取數據請求以及所述加密密鑰的次數t,該提取數據請求中還含有前述加密密鑰。
S409、云服務器200在接收該請求后利用該加密密鑰對數據進行解密后得到解密數據,并將解密數據返還給數據用戶終端100,同時存儲所述加密密鑰的次數t備用。傳統的云存儲數據方法中數據的加密和解密均是由用戶終端來完成,而本發明中數據的解密操作由云服務器200來完成,由于云服務器200的計算能力遠大于用戶端,可以在很大程度上減輕用戶端的計算量。
隨后,在步驟S410-S411中執行提取審計步驟,具體包括:
S410、由數據用戶終端100在接收解密數據后將解密文件的抽象信息發送給第三方審計300。
S411、第三方審計300根據接收的解密文件的抽象信息判斷與原始數據用戶終端100加密時發送的加密文件的抽象信息是否相等,是則發送無需重新加密的驗證信息給數據用戶終端100,否則發送需要重新加密的驗證信息給數據用戶終端100。第三方審計300主要通過抽象信息中用戶終端的類別,例如id號,來判斷該發送抽象信息的用戶是否為本地的數據用戶終端100。如果是數據用戶終端100,則抽象信息必然相等,第三方審計300返回一個提取的驗證信息extract=0。數據用戶終端100收到extract=0時,保持不變。
當非本地的授權用戶終端400需要向云服務器200提取數據時,在步驟S412-S415中執行授權用戶提取步驟,具體包括:
S412、授權用戶終端400需要獲取外包數據時,首先需要向數據用戶終端100發出授權請求。
S413、數據用戶終端100在接收授權請求后確認授權用戶終端400的身份,當給予授權時,對數據存儲步驟中采用的原始加密文件的加密密鑰的次數t進行加密得到加密授權請求標簽t_sign,并將加密授權請求標簽t_sign返還給授權用戶終端400。優選地,數據用戶終端100可以使用標簽密鑰skt對次數t進行加密得到加密授權請求標簽t_sign。該數據用戶終端100還將加密密鑰一并發送給授權用戶終端400。
S414、授權用戶終端400向云服務器200發送提取數據請求以及所述加密授權請求標簽t_sign。該授權用戶終端400發送的提取數據請求中含有數據用戶終端100發送的加密密鑰。
S415、云服務器200對接收的加密授權請求標簽t_sign進行解密后得到次數t′,并判斷次數t′與預先存儲的次數t是否相等,若相等則利用授權用戶終端400發送的加密密鑰解密外包數據,然后將解密數據返還給授權用戶終端400。如果次數t′與預先存儲的次數t不相等,則不解密數據。
最后,在步驟S416-S417中執行提取審計步驟,具體包括:
S416、由授權用戶終端400在接收解密數據后將解密文件的抽象信息發送給第三方審計300。
S417、第三方審計300根據接收的解密文件的抽象信息判斷與原始數據用戶終端100加密時發送的加密文件的抽象信息是否相等,是則發送無需重新加密的驗證信息給數據用戶終端100,否則發送需要重新加密的驗證信息給數據用戶終端100。如果是授權用戶終端400發送的解密文件的抽象信息,由于用戶終端的類別不同,則該抽象信息必然與原始加密文件的抽象信息不相同,第三方審計300返回一個提取的驗證信息extract=1。數據用戶終端100收到extract=1時,重新生成密鑰對原始的文件數據進行加密。因此,本發明充分地考慮了本地用戶和非本地用戶的安全性需求,當是本地的數據用戶終端100提取云服務器200的加密數據時,保持與云服務器的加密數據不變;當是非本地的授權用戶終端400提取云服務器200的加密數據時,本地的數據用戶終端100會重新生成新的加密密鑰對數據進行加密,然后將加其存儲在云端。
本發明相應地提供了一種基于云服務器的數據存取系統,該數據存取系統至少包括云服務器200、數據用戶終端100和授權用戶終端400。
其中,數據用戶終端100用于生成加密密鑰,并使用所述加密密鑰對文件分塊加密后將加密數據存儲到云服務器200;所述數據用戶終端100還用于在提取數據時向云服務器200發送提取數據請求以及所述加密密鑰的次數t,并接收所述云服務器200返還的解密數據;所述數據用戶終端100還用于在在接收數據用戶終端100發送的授權請求時對加密密鑰的次數t進行加密后得到加密授權請求標簽t_sign后返還給所述授權用戶終端400。
授權用戶終端400用于向數據用戶終端100發出授權請求以及所述加密授權請求標簽t_sign。
云服務器200用于存儲所述數據用戶終端100發送的加密數據。云服務器200還用于接收數據用戶終端100發送的提取數據請求以及所述加密密鑰的次數t后將解密數據返還給數據用戶終端100。云服務器200還用于在接收授權用戶終端400發送的提取數據請求和加密授權請求標簽t_sign后進行解密后得到次數t′,在判斷t′與存儲的次數t相等時將解密數據返還給授權用戶終端400,否則不解密數據。
在本發明更優選的實施方式中,基于云服務器的數據存取系統還包括第三方審計300。本發明也相應提供了一種第三方審計300。請參閱圖5,為根據本發明優選實施例的第三方審計的功能模塊圖。如圖5所示,該第三方審計300包括存儲審計模塊310和/或提取審計模塊320。
其中存儲審計模塊310用于根據數據用戶終端100在向云服務器200存儲數據后提供的加密文件的抽象信息向所述云服務器200發起挑戰,并根據云服務器200返回的該挑戰的相應證明驗證存儲在云服務器200的數據是否完整,并將驗證結果反饋給數據用戶終端100。
存儲審計模塊310可以進一步包括發起挑戰單元和驗證單元。其中發起挑戰單元用于定義挑戰并向云服務器200發起挑戰;其中,vi為加密數據每一塊對應產生的隨機數,Q=pktq是一個挑戰集,q∈Zp是一個隨機數。驗證單元用于在所述第三方審計300收到云服務器200返回的相應證明后通過公式驗證審計證明的正確性,若該等式成立,則判斷存儲在云服務器200的數據是完整的,否則不完整。
提取審計模塊320用于接收所述數據用戶終端100或者授權用戶終端400在接收解密數據后發送的解密文件的抽象信息,并根據接收的解密文件的抽象信息判斷與原始數據用戶終端100加密時發送的加密文件的抽象信息是否相等,是則發送無需重新加密的驗證信息給所述數據用戶終端100,否則發送需要重新加密的驗證信息給所述數據用戶終端100。
請參閱圖6,為根據本發明優選實施例的數據用戶終端的功能模塊圖。本發明也相應提供了該數據用戶終端100。如圖6所示,該數據用戶終端100包括密鑰生成模塊110、文件加密模塊120和通信模塊130。
其中密鑰生成模塊110用于將文件F分成n個數據塊,記為mi∈Zp,i∈I,I=[1,n];密鑰生成模塊110生成加密密鑰,所述加密密鑰包括文件的加密密鑰key_cml,以及文件分塊后每一個數據塊的標簽密鑰skt、哈希密鑰skh和標簽公鑰pkt=(gx,ux);其中,x∈Zp為隨機數,skt=ytag,ytag是一個隨機素數,ytag1,ytag2,.....,ytagn是與ytag互質的素數,并找到一個隨機數s,使得e是一個素數。
文件加密模塊120用于將文件F分塊后每一個數據塊的標簽記為ti∈Zp,總的標簽記為T={ti}i∈[1,n];并將生成后的標簽附加在對應的數據塊上實現數據致盲,記為mi'=mi+ti。
通信模塊130用于將加密數據發送至云服務器200,所述加密數據包括文件的加密數據、加密文件的抽象信息和帶標簽的認證信息;所述文件的加密數據為F′={mi′}i∈[1,n],所述帶標簽的認證信息為其中Ri=FID||i,FID為識別文件的標識信息,“||”為串聯標志;所述通信模塊130還用于將審計請求發送給第三方審計300,該審計請求中含有加密文件的抽象信息以及標簽公鑰pkt。
請參閱圖7,為根據本發明優選實施例的云服務器的功能模塊圖。本發明也相應提供了該云服務器200。如圖7所示,該云服務器200包括存儲模塊210、證明模塊220和解密模塊230。
其中,存儲模塊210用于存儲所述數據用戶終端100發送的加密數據。
證明模塊220用于接收第三方審計300發送的所述挑戰后生成相應證明P=(ρ,ω,ε,τ)返回給所述第三方審計300;其中,認證信息ρi為所述加密數據中每一塊的去標簽認證信息,
解密模塊230用于接收數據用戶終端100發送的提取數據請求以及所述加密密鑰的次數t后將解密數據返還給授權用戶;所述解密模塊230還用于在接收授權用戶終端400發送的提取數據請求和加密授權請求標簽t_sign后進行解密后得到次數t′,在判斷t′與存儲的t相等時將解密數據返還給授權用戶終端400,否則不解密數據。
本發明還相應提供了上述授權用戶終端400,用于發送授權請求和數據用戶終端100,并將數據用戶終端100返回的加密授權請求標簽t_sign和加密密鑰后發送提取數據請求給云服務器200,并接收云服務器200返回的解密數據。
綜上所述,本發明增添了一個實體即授權用戶終端400,授權用戶終端400要獲取云服務器200的本地數據,必須主動向本地的數據用戶終端100請求授權,經本地用戶授權后才能向云服務器200發出請求獲取數據。出于安全性的考慮,當是本地的數據用戶終端100提取云服務器200的加密數據時,保持與云服務器200的加密數據不變;當是授權用戶終端400提取云服務器200的加密數據時,本地的數據用戶終端100重新生成新的密鑰對數據進行加密,然后將加其存儲在云服務器200。
應該理解地是,本發明的基于云服務器的數據存取方法和系統的原理和實現過程相同,因此對基于云服務器的數據存取方法的實施例的詳細闡述也適用于基于云服務器的數據存取系統。
最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。