本技術(shù)涉及網(wǎng)絡(luò)與信息安全領(lǐng)域,具體涉及一種云計算環(huán)境下以用戶為中心的數(shù)據(jù)檢索和共享方案。
背景技術(shù):
1、云計算領(lǐng)域的快速發(fā)展,為許多算力有限的用戶和設(shè)備提供了便利。用戶和設(shè)備可以把讓云服務(wù)器承擔(dān)一部分計算的責(zé)任來實(shí)現(xiàn)更復(fù)雜的功能。但是,云服務(wù)器一般是半可信的,在這種情況下,對于直接將沒有進(jìn)行任何處理的數(shù)據(jù)外包到云服務(wù)器,相當(dāng)于放棄了對數(shù)據(jù)的控制。由于數(shù)據(jù)通常包含敏感信息,因此存在隱私泄露的風(fēng)險。所以為了保護(hù)數(shù)據(jù),數(shù)據(jù)擁有者通常在將數(shù)據(jù)外包到云服務(wù)器之前對其進(jìn)行加密。
2、外包數(shù)據(jù)加密的方式有很多,其中一個典型的方案是基于屬性的加密,其可以進(jìn)行精確的訪問控制。在基于云的系統(tǒng)中,用戶上傳信息到云端之前,使用特定屬性對其進(jìn)行加密,從而保護(hù)數(shù)據(jù)的機(jī)密性,確保只有授權(quán)用戶可以訪問。但當(dāng)需要授權(quán)的用戶增多時,如何安全高效地進(jìn)行數(shù)據(jù)共享成為一項(xiàng)挑戰(zhàn)。一種做法是用戶為每個需要授權(quán)的用戶解密并重新加密數(shù)據(jù),但這種方法明顯增加了用戶本身的計算負(fù)擔(dān)。另一種方法是將用戶的屬性密鑰委托給云服務(wù)器,由其代替用戶進(jìn)行解密并重新加密。這種方法需要云服務(wù)器完全可信,但在實(shí)際中云服務(wù)器通常是半可信的,因此這種方法對云服務(wù)器的信任要求過高,而代理重加密為解決這些問題提供了可行的方案。
3、在數(shù)據(jù)共享過程中,數(shù)據(jù)檢索也是關(guān)鍵的步驟。對明文數(shù)據(jù)的搜索過程相對簡單。當(dāng)數(shù)據(jù)以密文形態(tài)存儲在云端時,數(shù)據(jù)的檢索變得復(fù)雜。一種常見的解決方案是創(chuàng)建一個數(shù)據(jù)表來記錄數(shù)據(jù)信息,但隨著數(shù)據(jù)量的增加,維護(hù)數(shù)據(jù)表的成本也隨之上升?;诠€的可搜索加密以及基于屬性的可搜索加密為解決這一問題提供了途徑。盡管在數(shù)據(jù)共享方面的研究已有諸多進(jìn)展,但是當(dāng)前的研究仍無法完全滿足數(shù)據(jù)用戶在數(shù)據(jù)搜索和共享中的需求。例如,用戶希望獲取他們感興趣的所有數(shù)據(jù),這不僅包括他們有權(quán)限訪問的數(shù)據(jù),還包括他們感興趣但沒有權(quán)限訪問的數(shù)據(jù)。此外,用戶希望能夠以非常低的成本解密獲取的數(shù)據(jù),這也是有待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)為了解決上述技術(shù)問題,提出了如下技術(shù)方案:
2、權(quán)威機(jī)構(gòu)調(diào)用算法,輸入安全參數(shù)和屬性空間進(jìn)行初始化,得到系統(tǒng)主密鑰并公開系統(tǒng)參數(shù),用戶向權(quán)威機(jī)構(gòu)提交一個屬性集,權(quán)威機(jī)構(gòu)調(diào)用(),輸入主密鑰和屬性集,得到屬性密鑰發(fā)送給數(shù)據(jù)擁有者和數(shù)據(jù)使用者。
3、數(shù)據(jù)擁有者選擇一組關(guān)鍵字,調(diào)用算法生成索引和中間秘密值;之后,數(shù)據(jù)擁有者使用明文、訪問策略和中間秘密值,調(diào)用算法生成密文,并將索引和密文上傳到云存儲服務(wù)器。
4、數(shù)據(jù)使用者想要獲得感興趣的數(shù)據(jù)時,調(diào)用算法,使用屬性密鑰生成預(yù)解密密鑰和解密密鑰;數(shù)據(jù)使用者調(diào)用算法生成陷門;之后,數(shù)據(jù)使用者向云查詢服務(wù)器發(fā)送查詢請求。
5、云查詢服務(wù)器在接收到數(shù)據(jù)使用者的請求后,調(diào)用算法使用陷門、數(shù)據(jù)索引和匹配閾值生成,將符合數(shù)據(jù)使用者興趣的數(shù)據(jù)條目記錄在列表1中;若成功輸出,則調(diào)用算法先判斷屬性是否符合訪問策略后,不符合則在列表1中刪除數(shù)據(jù)條目;若符合則輸入、預(yù)解密密鑰生成和原始密文生成預(yù)解密密文;需要注意的是,列表1和列表2符合數(shù)據(jù)使用者的興趣匹配到的所有數(shù)據(jù);列表1包含與數(shù)據(jù)使用者的興趣匹配并且他們可以訪問的數(shù)據(jù),而列表2包含與數(shù)據(jù)使用者的興趣匹配但他們無法訪問的數(shù)據(jù)。
6、數(shù)據(jù)擁有者收到數(shù)據(jù)使用者的請求后,調(diào)用算法輸入自己的屬性密鑰和訪問策略,輸出重加密密鑰發(fā)送給云存儲服務(wù)器。
7、云查詢服務(wù)器收到數(shù)據(jù)使用者的重加密密鑰后,調(diào)用算法,輸入預(yù)解密密鑰、重加密密文和重加密密鑰生成預(yù)解密密文并發(fā)送給數(shù)據(jù)使用者。
8、數(shù)據(jù)使用者收到原始密文的預(yù)解密密文和重加密密文的預(yù)解密密文后,將兩份密文和解密密鑰分別作為和算法的輸入來驗(yàn)證原始密文和重加密密文是否被篡改,并輸出明文。
9、流程中提到的算法具體為:
10、算法1、初始化:權(quán)威機(jī)構(gòu)au將安全參數(shù)和屬性空間作為輸入,算法選擇階為素數(shù)的雙線性群,定義雙線性映射為;定義,,,,,,作為哈希函數(shù);隨機(jī)選擇、、;輸出系統(tǒng)主密鑰和公開參數(shù)。
11、算法2、密鑰生成:當(dāng)用戶提交一個屬性集時,權(quán)威機(jī)構(gòu)au使用主密鑰和屬性集作為算法的輸入;此算法隨機(jī)選擇,計算對于屬性集中的每個屬性計算再計算,。
12、最終輸出屬性密鑰。
13、算法3、索引生成:當(dāng)數(shù)據(jù)擁有者do將數(shù)據(jù)上傳到云端時,選擇一組關(guān)鍵字作為算法的輸入算法隨機(jī)選擇,,令計算對中的每個關(guān)鍵字計算,最終輸出索引和中間秘密值。
14、算法4、數(shù)據(jù)加密:生成索引后,數(shù)據(jù)擁有者do將明文、訪問策略、中間秘密值和作為算法輸入,其中為的矩陣;算法隨機(jī)選擇,計算,隨機(jī)選擇構(gòu)成向量,對于計算,隨機(jī)選擇,計算,,然后計算,,,,,最終輸出運(yùn)行算法3和4后,數(shù)據(jù)擁有者do將索引和密文上傳到云存儲服務(wù)器css。
15、算法5、預(yù)解密密鑰生成:當(dāng)數(shù)據(jù)使用者du希望獲取與感興趣的數(shù)據(jù)時,將其屬性密鑰作為輸入;算法隨機(jī)選擇,計算,對于屬性密鑰中屬性集的每個屬性計算,令?;最終輸出預(yù)解密密鑰和解密密鑰。
16、算法6、陷門生成:生成預(yù)解密密鑰和解密密鑰之后,數(shù)據(jù)使用者du將其屬性密鑰,解密密鑰,關(guān)鍵字作為輸入;算法隨機(jī)選擇,對于的關(guān)鍵字依次計算,,,;然后隨機(jī)選擇,對于的關(guān)鍵字依次計算,,,;之后計算,設(shè);最終輸出陷門。
17、數(shù)據(jù)使用者du向云查詢服務(wù)器cqs提交查詢請求,請求包括陷門、預(yù)解密密鑰和匹配閾值。
18、算法7、陷門匹配:云查詢服務(wù)器cqs接收到數(shù)據(jù)使用者du的請求后,將陷門、不同的數(shù)據(jù)索引以及匹配閾值作為輸入;算法定義計數(shù)器和分別記錄最后一個陷門中關(guān)鍵字和索引中關(guān)鍵字匹配成功的一項(xiàng);算法計算并判斷與是否相等,如果不相等則繼續(xù)檢索直到全部檢索完畢,如果相等,令計數(shù)器?+1,并記錄匹配項(xiàng)陷門關(guān)鍵字位置和索引關(guān)鍵字位置;檢索完畢后判斷計數(shù)器的值是否達(dá)到閾值,如果沒有達(dá)到,則輸出,如果達(dá)到閾值,則計算,。
19、算法最終輸出,同時云查詢服務(wù)器cqs將符合數(shù)據(jù)使用者興趣的數(shù)據(jù)條目記錄在列表1中。
20、算法8、預(yù)解密原始密文:如果算法7成功輸出,那么云查詢服務(wù)器cqs將和預(yù)解密密鑰、原始密文一起作為此算法的輸入;算法判斷中的屬性是否滿足中的訪問策略。
21、如果不滿足則直接輸出;此時云查詢服務(wù)器cqs將列表1中數(shù)據(jù)條目刪除,將其添加到列表2中;如果滿足,則設(shè),隨機(jī)選擇,使得;計算,,;算法輸出原始密文預(yù)解密密文。
22、算法9、重加密密鑰生成:當(dāng)數(shù)據(jù)擁有者do收到數(shù)據(jù)使用者du的請求之后,do將自己的屬性密鑰和滿足du屬性密鑰的訪問策略作為算法的輸入;算法隨機(jī)選擇,計算,,,對于屬性密鑰中的每個屬性計算;然后計算,;隨機(jī)選擇,對于中的所有列計算,隨機(jī)選擇,計算最終輸出重加密密鑰。
23、算法10、密文重加密:云查詢服務(wù)器cqs收到數(shù)據(jù)使用者du從數(shù)據(jù)擁有者do手中獲取到的重加密密鑰之后,將原始密文和重加密密鑰作為算法的輸入;算法設(shè)。
24、隨機(jī)選擇,使得;計算;最終輸出重加密密文。
25、算法11、預(yù)解密重加密密文:云查詢服務(wù)器cqs通過算法10獲取到重加密密文后將預(yù)解密密鑰、重新加密密文以及重新加密密鑰作為此算法的輸入;算法判斷中的屬性是否滿足中的訪問策略,如果不滿足則直接輸出;如果滿足,則設(shè),隨機(jī)選擇,使得;計算;令,最終輸出重加密密文的預(yù)解密密文。
26、算法12、解密原始密文的預(yù)解密密文:數(shù)據(jù)使用者du接收到云查詢服務(wù)器cqs返回的原始密文的預(yù)解密密文和解密密鑰作為算法輸入;算法進(jìn)行以下計算,,。
27、若則表明密文未被篡改,輸出明文,否則輸出。
28、算法13、解密重加密密文的預(yù)解密密文:數(shù)據(jù)使用者du接收到云查詢服務(wù)器cqs返回的重加密密文的預(yù)解密密文和解密密鑰作為算法輸入。算法進(jìn)行計算,,,。
29、若,則表明密文未被篡改,輸出明文,否則輸出。
30、本方案設(shè)計了獨(dú)特的數(shù)據(jù)檢索、驗(yàn)證以及共享方案,方案確保數(shù)據(jù)使用者可以獲取到他們感興趣的所有數(shù)據(jù),從而提升云計算環(huán)境中對用戶的加密數(shù)據(jù)檢索操作與共享操作的友好性。
31、在保證數(shù)據(jù)安全的情況下利用云計算服務(wù)器對數(shù)據(jù)進(jìn)行預(yù)解密,從而減少數(shù)據(jù)使用者的解密計算時間,同時方案支持細(xì)粒度的訪問控制,允許數(shù)據(jù)擁有者在不損害數(shù)據(jù)安全性的情況下將重新加密任務(wù)委托給云服務(wù)器,從而減少數(shù)據(jù)擁有者的計算負(fù)擔(dān)。
32、與現(xiàn)有技術(shù)相比,本發(fā)明具有以下技術(shù)效果:
33、現(xiàn)有數(shù)據(jù)共享和加密方案中,無法在保證云服務(wù)器對數(shù)據(jù)有效檢索和共享的同時,保證安全性;本發(fā)明采用代理重加密和基于屬性和關(guān)鍵字的加密策略,設(shè)計了獨(dú)特的數(shù)據(jù)檢索、驗(yàn)證以及共享方案,方案確保數(shù)據(jù)使用者可以獲取到他們感興趣的所有數(shù)據(jù),從而提升云計算環(huán)境中對用戶的加密數(shù)據(jù)檢索操作與共享操作的友好性;在保證數(shù)據(jù)安全的情況下利用云計算服務(wù)器對數(shù)據(jù)進(jìn)行預(yù)解密,從而減少數(shù)據(jù)使用者的解密計算時間,同時方案支持細(xì)粒度的訪問控制,允許數(shù)據(jù)擁有者在不損害數(shù)據(jù)安全性的情況下將重新加密任務(wù)委托給云服務(wù)器,從而減少數(shù)據(jù)擁有者的計算負(fù)擔(dān)。