本發明屬于信息安全技術,具體涉及一種支持可搜索加密和密文數據去重的設備增強云存儲系統。
背景技術:
1、云存儲服務允許用戶將數據外包存儲到云服務器以減輕用戶本地存儲負擔。在現實生活中,數據通常包含敏感的隱私信息,因此在沒有任何數據機密性保證的情況下進行數據外包是不可取的。一種可行的方法是在外包之前對數據進行加密。然而,傳統的加密算法會阻礙對外包數據進行進一步操作的可行性,例如數據去重和關鍵詞搜索。一方面,云服務器通常會檢查用戶之間的重復數據,并僅保留一個數據副本以降低存儲成本。當使用傳統加密算法時,不同的用戶會選擇不同的加密密鑰,這樣即便對于相同的數據,用戶們也會產生不同的密文,使得云服務器無法進行有效去重。另一方面,數據通常與一組關鍵詞一同外包,便于用戶隨后使用特定關鍵詞檢索所需的數據。如果數據被加密,對密文進行檢索將變得十分困難。
2、消息鎖加密mle和公鑰可搜索加密peks可以在保證數據機密性的同時分別支持數據去重和關鍵詞搜索。mle是一種特定類型的確定性對稱加密算法。其密鑰(稱為mle密鑰)由待加密的數據確定性派生而來。mle允許擁有相同數據的用戶生成相同的mle密鑰以及相同的密文,使得云服務器可以在密文上執行去重。在peks中,多個用戶(稱為發送者)使用一個用戶(稱為接收者)的公鑰加密數據和關鍵詞,并將密文外包存儲到云服務器上。接收者可以使用自己的私鑰創建特定關鍵詞的陷門。給定陷門和加密的關鍵詞,云服務器可以測試它們的對應關鍵詞是否一致以進行數據檢索。然而,mle和peks均面臨潛在的安全問題。攻擊者(如好奇的云服務器)可能對數據發起暴力字典攻擊,并對關鍵詞進行關鍵詞猜測攻擊。在前一種攻擊中,給定一個加密數據,攻擊者利用mle加密所有可能的數據候選項,并識別與給定加密數據相匹配的密文以揭露其對應的數據。在后一種攻擊中,攻擊者窮舉所有可能的關鍵詞,使用接收者的公鑰生成相應密文,并識別與給定陷門相匹配的密文以得到其關鍵詞。
3、抵抗暴力字典攻擊和關鍵詞猜測攻擊最實用的方法是引入一個獨立的密鑰服務器協助用戶產生mle密鑰和待加密的關鍵詞(稱為盲化關鍵詞)。在這種服務器協助的(mle和peks)方案中,mle密鑰(或盲化關鍵詞)由待加密的數據(或原始關鍵詞)與密鑰服務器共同決定,使得攻擊者無法獨自計算mle密鑰或盲化關鍵詞,從而有效抵御暴力字典攻擊和關鍵詞猜測攻擊。此外,用戶和密鑰服務器之間以一種盲化的方式進行交互,不會泄露任何數據信息或原始關鍵詞信息給密鑰服務器。
4、需要注意的是,該服務器協助方案的安全性依賴于單個密鑰服務器的可靠性,存在單點失效的風險。為了解決該問題,可以采用多個密鑰服務器以門限的方式輔助用戶生成mle密鑰和盲化關鍵詞。只要被攻破的密鑰服務器數量小于門限值,方案安全性就能得到保證。
技術實現思路
1、本發明所要解決的問題是,為了支持安全的數據去重和安全的可搜索加密,本發明將服務器協助的mle和服務器協助的peks集成到一個云存儲系統集成有,其中發送者使用mle密鑰加密數據,并進一步使用接收者的公鑰加密mle密鑰。加密的數據和加密的mle密鑰以及多個盲化關鍵詞的密文將被外包存儲。當接收者通過關鍵詞檢索到密文數據后,她/他可以使用自己的私鑰解密相應的mle密鑰密文,并進一步訪問數據。然而,這種外包方法具有密鑰管理問題。具體而言,在實際的云存儲系統中,接收者總是需要通過不同的客戶端訪問外包數據。為了執行關鍵詞搜索查詢和解密mle密鑰密文,接收者需要在所有可能的客戶端中存儲其私鑰,這會引發潛在的安全問題,例如不同客戶端間的密鑰遷移問題和多個客戶端中的密鑰存儲問題。因此,本發明為了完善集成了mle與peks的云存儲系統中用戶的密鑰管理問題而提供的一套設備增強云存儲系統的解決方案。
2、本發明為解決上述問題所采用的技術方案是,支持可搜索加密和密文數據去重的設備增強云存儲系統,包括發送者、接收者使用的客戶端和個人設備、密鑰服務器群組和云服務器;執行以下步驟:
3、初始化階段:
4、系統參數生成步驟:根據安全參數生成系統的公共參數集;
5、密鑰服務器端秘密值生成步驟:密鑰服務器群組中的若干密鑰服務器利用公共參數共同生成以門限方式共享的第一秘密值和第二秘密值;
6、接收者密鑰生成步驟:接收者生成口令和密鑰,再基于公共參數、口令和密鑰生成口令派生公私鑰對;隨后,接收者刪除口令派生私鑰,公開口令派生公鑰,并將密鑰保存在個人設備中;
7、數據外包階段:
8、mle密鑰與盲化關鍵詞生成步驟:發送者確定待外包給云服務器的數據文件m及其對應的關鍵詞后,計算并發送數據文件m的盲化值和關鍵詞的盲化值至密鑰服務器群組;密鑰服務器群組中的若干密鑰服務器利用第一秘密值的子秘密生成數據文件m的盲化值的簽名,利用第二秘密值的子秘密生成關鍵詞的盲化值的簽名,并將這兩種簽名發送至發送者進行驗證;發送者對兩種簽名驗證通過后,利用這兩種簽名生成mle密鑰和盲化關鍵詞;
9、加密步驟:發送者使用mle密鑰加密數據文件m得到m的密文,利用接收者公開的口令派生公鑰加密mle密鑰得到密鑰密文,再基于公共參數和口令派生公鑰得到盲化關鍵詞的密文;最后將密鑰密文、m的密文和盲化關鍵詞的密文一同外包到云服務器上;
10、密文數據去重步驟:云服務器在接收到密鑰密文、m的密文和盲化關鍵詞的密文后,對m的密文執行密文數據去重;
11、數據訪問階段:
12、私鑰恢復步驟:接收者將口令輸入任意一個客戶端中,客戶端與設備以一種盲化的方式交互,同時結合sas-ma協議來恢復接收者的口令派生私鑰;
13、關鍵詞搜索步驟:客戶端確定需要檢索的關鍵詞,再生成待檢索的關鍵詞的盲化值發送至密鑰服務器群組,密鑰服務器群組中的若干密鑰服務器利用第二秘密值的子秘密生成檢索關鍵詞的盲化值的簽名,并將這檢索關鍵詞的盲化值的簽名發送至客戶端進行驗證;客戶端對檢索關鍵詞的盲化值的簽名驗證通過后,利用該簽名生成盲化檢索關鍵詞以及對應的陷門;將陷門發送至云服務器,云服務器根據陷門檢索出包含檢索關鍵詞的數據文件的密文以及相應的密鑰密文并發送至客戶端;
14、解密步驟:客戶端接收到數據文件的密文以及相應的密鑰密文后,先使用口令派生私鑰解密密鑰密文得到mle密鑰,再使用mle密鑰解密數據文件的密文得到檢索到的數據文件。
15、本發明基于服務器協助的mle和服務器協助的peks進行構建,將服務器協助的消息鎖加密mle與服務器協助的peks集成到一個云存儲系統,能夠支持抵御暴力字典攻擊的密文數據去重和抵抗關鍵詞猜測攻擊的關鍵詞可搜索加密。本發明使用多個密鑰服務器以一種門限的方式輔助用戶生成mle密鑰和盲化關鍵詞,有效解決了單點失效問題。基于一種盲化的協議和sas-ma協議的設備協助的私鑰恢復方法,能允許用戶使用口令和設備在任意客戶端安全地恢復自己的口令派生私鑰以訪問外包數據,有效解決了現有方法存在的密鑰管理問題。
16、本發明的有益效果是:
17、(1)能在實現抵抗暴力字典攻擊的密文數據去重和抵抗關鍵詞猜測攻擊的關鍵詞可搜索加密兩個功能的同時避免單點失效;
18、(2)有效消除了因密鑰管理引發的潛在安全問題。