一種密文云數(shù)據(jù)復雜查詢方法
【專利摘要】密文云數(shù)據(jù)復雜查詢方法,包括:數(shù)據(jù)擁有者對其文件集構建二進制向量索引,并使用對稱密碼機制加密文件集,然后將加密文件集發(fā)送至云端。當某用戶要求訪問包含某些關鍵詞的文件時,向數(shù)據(jù)擁有者申請查詢令牌,查詢令牌中包含有關鍵詞集合和所有文件的二進制向量索引。用戶根據(jù)查詢關鍵詞與關鍵詞集合構建查詢二進制向量,并將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算判斷該文件是否包含用戶的查詢關鍵詞。若該文件包含有查詢關鍵詞,則進一步構建與查詢關鍵詞對應的新索引二進制向量。用戶將查詢關鍵詞根據(jù)邏輯表達式生成LSSS矩陣,并將新索引二進制向量與LSSS矩陣進行內(nèi)積計算以進一步判斷該文件是否滿足查詢邏輯表達式。本發(fā)明能實現(xiàn)精確的復雜查詢,并能實現(xiàn)比目前廣泛使用的倒排索引更高的查詢效率。
【專利說明】一種密文云數(shù)據(jù)復雜查詢方法
【技術領域】
[0001]本發(fā)明屬于云存儲和信息檢索領域,具體涉及一種密文云數(shù)據(jù)復雜查詢方法。
【背景技術】
[0002]在云存儲環(huán)境下,要保護用戶數(shù)據(jù)機密性和隱私性,加密是一種常用的方法,但是數(shù)據(jù)加密后,密文數(shù)據(jù)檢索問題亟待解決。
[0003]為解決密文云數(shù)據(jù)檢索問題,目前主要有兩種典型的方法:一種是直接對密文進行線性搜索,即對密文中單詞逐個進行比對,確認關鍵詞是否存在以及出現(xiàn)的次數(shù);第二種方法基于安全索引,即先對文檔建立關鍵詞索引,然后將文檔和索引加密后上傳至云端,搜索時從索引中查詢關鍵詞是否存在于某個文檔中。直接對密文線性搜索的方法缺點在于搜索效率不高,且無法應對海量數(shù)據(jù)的搜索場景?;谒饕拿芪臋z索方法是目前的研究主流,原因是其查詢效率更好,安全性能更高,適合用于大規(guī)模的云存儲密文檢索系統(tǒng)。
[0004]在已有的研究工作中,所有方案都是采用倒排索引機制,還沒有使用二進制向量索引的方案。并且目前關于復雜查詢的方案比較少,而查詢結果的準確性更是亟待提高。
[0005]采用二進制向量索引在數(shù)據(jù)擁有者端只需要保留較少的信息,就可以實現(xiàn)高效安全的密文數(shù)據(jù)檢索。采用LSSS矩陣可以實現(xiàn)精確的復雜查詢。
[0006]密文云數(shù)據(jù)查詢是保證云存儲中數(shù)據(jù)機密性和可檢索性的關鍵技術,對于推進云存儲的快速發(fā)展具有重要的理論意義和實用價值。
【發(fā)明內(nèi)容】
[0007]針對現(xiàn)有技術的缺陷,本發(fā)明的目的在于提供一種密文云數(shù)據(jù)復雜查詢方法,旨在提高數(shù)據(jù)查詢準確性、查詢效率與安全性。
[0008]為實現(xiàn)上述目的,本發(fā)明提供了一種密文云數(shù)據(jù)復雜查詢方法,包括以下步驟: 步驟1.數(shù)據(jù)擁有者對其文件集構建索引,使用二進制向量索引,即索引中每一位代表
一個關鍵詞,以O和I表示相應關鍵詞是否存在于此文件中;
步驟2.數(shù)據(jù)擁有者基于單個文件或數(shù)據(jù)塊使用對稱密碼機制加密文件集;
步驟3.數(shù)據(jù)擁有者將加密文件集發(fā)送至云端;
步驟4.用戶要求訪問包含某些關鍵詞的文件時,向數(shù)據(jù)擁有者申請查詢令牌,查詢令牌中包含有關鍵詞集合和所有文件的二進制向量索引;
步驟5.用戶根據(jù)查詢關鍵詞與關鍵詞集合構建查詢二進制向量,并將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算判斷該文件是否包含用戶的查詢關鍵詞;步驟6.若該文件包含有查詢關鍵詞,則進一步構建與查詢關鍵詞對應的新索引二進制向量;
步驟7.用戶將查詢關鍵詞根據(jù)邏輯表達式生成LSSS (Linear Secret Sharing Scheme,線性秘密共享方案)矩陣,并將新索引二進制向量與LSSS矩陣進行內(nèi)積計算以進一步判斷該文件是否滿足查詢邏輯表達式。[0009]步驟I具體包括以下子步驟:
1.1數(shù)據(jù)擁有者使用已有的分詞算法對其文件集提取關鍵詞,構建關鍵詞集合;
1.2數(shù)據(jù)擁有者根據(jù)每個文件中是否包含關鍵詞集合中的對應關鍵詞構建二進制向量索引,以I表示相應關鍵詞存在于此文件中,以O表示相應關鍵詞不存在于此文件中。
[0010]步驟2中,如果是基于單個文件加密,數(shù)據(jù)擁有者根據(jù)文件集中文件數(shù)量,利用對稱密碼機制隨機生成對應數(shù)目的對稱密鑰,并利用對稱密鑰對文件進行加密生成密文,每個文件的加密密鑰均不同;如果是基于數(shù)據(jù)塊加密,數(shù)據(jù)擁有者根據(jù)設定數(shù)據(jù)塊大小將文件集中文件進行分塊,利用對稱密碼機制隨機生成對應數(shù)目的對稱密鑰,并利用對稱密鑰對數(shù)據(jù)塊進行加密生成密文,每個數(shù)據(jù)塊的加密密鑰均不同。
[0011]步驟4具體包括以下子步驟:
4.1用戶向數(shù)據(jù)擁有者發(fā)送查詢授權申請,數(shù)據(jù)擁有者根據(jù)其安全策略決定是否向用戶以及針對哪些文件集頒發(fā)授權令牌,令牌中包含有授權文件集的關鍵詞集合以及授權文件的二進制向量索引;
4.2數(shù)據(jù)擁有者使用通用的安全傳輸機制將令牌發(fā)送給用戶。
[0012]步驟5具體包括以下子步驟:
5.1首先構建查詢二進制向量,其方法如下:用戶根據(jù)查詢關鍵詞是否在關鍵詞集合中構建查詢二進制向量,以I表不相應關鍵詞存在于關鍵詞集合中,以O表不相應關鍵詞不存在于關鍵詞集合中。
5.2將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算,當內(nèi)積計算結果為非O時,表明該文件包含查詢關鍵詞,當內(nèi)積計算結果為O時,表明該文件不包含查詢關鍵詞。并且內(nèi)積計算結果的值越大,表明包含的關鍵詞越多。
假設A是文檔Fi的二進制索引向量,其中ri[j] e {0,1}表示關鍵詞Wi是否在文檔中存在;Q是一個查詢向量,其屮Q[j] e {0,1}表示關鍵詞%是否在查詢關鍵詞集合W中。文檔Fi與查詢關鍵詞集合W的相似性得分通過內(nèi)積方式計算出來,即rQ。
[0013]步驟6中,構建與查詢關鍵詞對應的新索引二進制向量方法如下:在文件的索引二進制向量中,將查詢關鍵詞對應位置的二進制位保留,將其它非查詢關鍵詞對應位去掉。
[0014]步驟7具體包括以下子步驟:
7.1首先根據(jù)查詢邏輯表達式構建LSSS矩陣,其方法如下:首先將根節(jié)點向量設為(1),其向量長度為1,并將變量C初始化為1,父節(jié)點使用向量V標記。如父節(jié)點為OR門,則孩子節(jié)點由V標記;如父節(jié)點為AND門,則左孩子節(jié)點為V I 11,右孩子節(jié)點為(0,……O) I |_1,0的個數(shù)為C,并且C = C+1。完成整棵樹的標記后,葉子節(jié)點組成LSSS矩陣M的行,若長度不等,則填充O。
7.2將新索引二進制向量與LSSS矩陣進行內(nèi)積計算,當且僅當計算結果為(I, O, O,…,O)時,表明文件滿足查詢條件,否則不滿足查詢條件。
[0015]一種密文云數(shù)據(jù)復雜查詢方法,包括數(shù)據(jù)擁有者、用戶和云端,數(shù)據(jù)擁有者用于使用已有分詞算法對其文件集提取關鍵詞,并構建所有文件的二進制向量索引;數(shù)據(jù)擁有者還用于對文件使用對稱密碼機制進行加密,如果是基于數(shù)據(jù)塊,還要將文件按設定數(shù)據(jù)塊大小進行分塊,然后使用對稱密碼機制進行加密,然后將加密的文件發(fā)送到云端;用戶用于向數(shù)據(jù)擁有者請求查詢授權;數(shù)據(jù)擁有者還用于按照指定安全策略向用戶發(fā)放授權令牌;用戶還用于使用令牌信息構建查詢二進制向量;用戶還用于使用查詢二進制向量與所有文件的索引二進制向量進行內(nèi)積計算以判斷文件是否包含查詢關鍵詞;用戶還用于構建與查詢關鍵詞對應的新索引二進制向量;用戶還用于將查詢關鍵詞根據(jù)邏輯表達式生成LSSS矩陣,并將新索引二進制向量與LSSS矩陣進行內(nèi)積計算;用戶還用于向云端請求包含查詢關鍵詞的文件密文,并使用令牌中包含的文件密鑰解密文件;云端用于存放數(shù)據(jù),并響應用戶的讀寫請求。
[0016]通過本發(fā)明所構思的以上技術方案,與現(xiàn)有技術相比,本發(fā)明具有以下的優(yōu)勢:
1.查詢準確度高,使用查詢邏輯表達式可以表示復雜的查詢條件,使用LSSS矩陣可以得到與查詢邏輯表達式完全相符的查詢結果。
2.數(shù)據(jù)更新方便,建立索引的過程由數(shù)據(jù)擁有者完成,關鍵詞集合信息由數(shù)據(jù)擁有者保管,當有文件需要更新時,數(shù)據(jù)擁有者只需要更新文件的二進制向量索引,并重新加密文件,然后將加密的文件發(fā)送至云端。
3.使用二進制向量內(nèi)積計算非常高效,只需要在用戶端增加少量的存儲就可以實現(xiàn)高效的檢索。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明所涉及的各實體關系圖。
圖2為本發(fā)明方法流程圖。
圖3為本發(fā)明二進制向量索引圖。
圖4為本發(fā)明LSSS矩陣構造圖。
【具體實施方式】
[0018]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019]以下首先就本發(fā)明的技術術語進行解釋和說明:
數(shù)據(jù)擁有者:指文件的擁有者,需要將文件存儲在云中,且制定文件的訪問控制策略; 用戶:需要讀取數(shù)據(jù)擁有者發(fā)布的文件;
云端或云存儲:存儲數(shù)據(jù)擁有者的文件,會忠實執(zhí)行數(shù)據(jù)擁有者和合法用戶發(fā)出的操作請求,但在條件允許時會偷窺文件內(nèi)容;
文件:數(shù)據(jù)擁有者需要上傳至云端的數(shù)據(jù);
文件塊:文件分塊,數(shù)據(jù)擁有者對同一文件的不同分塊采用不同的加密密鑰;
對稱密碼機制:是一種傳統(tǒng)密碼機制,加密和解密采用相同密鑰,效率較高,在本發(fā)明中采用該機制加密文件或文件塊;
對稱密鑰:對稱密碼機制中隨機生成的二進制數(shù)據(jù);
LSSS:線性秘密共享方案,是其英文全稱Linear Secret Sharing Scheme的縮寫。
[0020]以下結合實施例和附圖對本發(fā)明做進一步說明。
[0021]如圖1所示,本發(fā)明的密文云數(shù)據(jù)復雜查詢方法是應用在加密云存儲系統(tǒng)中,該系統(tǒng)包括數(shù)據(jù)擁有者、用戶以及云端。
[0022]在本實施方式中,數(shù)據(jù)擁有者為某科研單位秘書,傳至云端的數(shù)據(jù)是該單位的科研項目文件,主要用于單位內(nèi)人員包括有出差在外的人員在項目申請以及開發(fā)過程中的數(shù)
據(jù)共享。
[0023]如圖2所示,本發(fā)明的密文云數(shù)據(jù)復雜查詢方法包括以下步驟:
步驟1.數(shù)據(jù)擁有者對其文件集構建索引,使用二進制向量索引,即索引中每一位代表一個關鍵詞,以O和I表示相應關鍵詞是否存在于此文件中,如圖3所示。本步驟具體包括以下子步驟:
1.1數(shù)據(jù)擁有者使用已有的分詞算法對其文件集提取關鍵詞,構建關鍵詞集合;舉例而言,如圖3所示,關鍵詞集合{云計算,云存儲,加密,數(shù)據(jù)檢索,二進制向量}。
1.2數(shù)據(jù)擁有者根據(jù)每個文件中是否包含關鍵詞集合中的對應關鍵詞構建二進制向量索引,以I表示相應關鍵詞存在于此文件中,以O表示相應關鍵詞不存在于此文件中。 [0024]舉例而言,如圖3所示,文件I包含關鍵詞{云計算,加密},其索引二進制向量為f! = (1,0, 1,0,O),文件2包含關鍵詞{云存儲,加密,數(shù)據(jù)檢索,二進制向量},其索引二進制向量為 f2 = (O, I, I, I, I)。
[0025]步驟2.數(shù)據(jù)擁有者使用對稱密碼機制加密文件集(可以基于單個文件或數(shù)據(jù)塊);
[0026]步驟3.數(shù)據(jù)擁有者將加密文件集發(fā)送至云端;
[0027]步驟4.用戶要求訪問包含某些關鍵詞的文件時,向數(shù)據(jù)擁有者申請查詢令牌,查詢令牌中包含有關鍵詞集合和所有文件的二進制向量索引。本步驟具體包括以下子步驟:
4.1用戶向數(shù)據(jù)擁有者發(fā)送查詢授權申請,數(shù)據(jù)擁有者根據(jù)其安全策略決定是否向用戶以及針對哪些文件集頒發(fā)授權令牌,令牌中包含有授權文件集的關鍵詞集合以及授權文件的二進制向量索引;
4.2數(shù)據(jù)擁有者使用通用的安全傳輸機制將令牌發(fā)送給用戶。
[0028]步驟5.用戶根據(jù)查詢關鍵詞與關鍵詞集合構建查詢二進制向量,并將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算判斷該文件是否包含用戶的查詢關鍵詞。本步驟具體包括以下子步驟:
5.1首先構建查詢二進制向量,其方法如下:用戶根據(jù)查詢關鍵詞是否在關鍵詞集合中構建查詢二進制向量,以I表不相應關鍵詞存在于關鍵詞集合中,以O表不相應關鍵詞不存在于關鍵詞集合中。
5.2將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算,當內(nèi)積計算結果為非O時,表明該文件包含查詢關鍵詞,當內(nèi)積計算結果為O時,表明該文件不包含查詢關鍵詞。并且內(nèi)積計算結果的值越大,表明包含的關鍵詞越多。
[0029]舉例而言,設查詢關鍵詞為=W1 = “云計算”,W2 = “云存儲”,W3 = “加密”,W4 = “數(shù)據(jù)檢索”,查詢表達式為:(W1Or w2) and w3and W4,貝U查詢二進制向量為q = (I, I, I, 1,0)。
[0030]舉例而言,如圖3所示,文件I包含關鍵詞{云計算,加密},其索引二進制向量為f! = (1,0, 1,0,O),文件2包含關鍵詞{云存儲,加密,數(shù)據(jù)檢索,二進制向量},其索引二進制向量為f2= (0,1,1,1,I)。將查詢向量與文件I的索引向量進行內(nèi)積計算:q.fi =(I, 1,1,1,0) -(1,0, I, O, O)^1 = 2,將查詢向量與文件2的索引向量進行內(nèi)積計算:q*f2 =(1,1,1,1,0).(O, I, I, I, I)-1 = 3。
[0031]步驟6.若該文件包含有查詢關鍵詞,則進一步構建與查詢關鍵詞對應的新索引二進制向量;
步驟6中,構建與查詢關鍵詞對應的新索引二進制向量方法如下:在文件的索引二進制向量中,將查詢關鍵詞對應位置的二進制位保留,將其它非查詢關鍵詞對應位去掉。
[0032]舉例而言,文件I的新索引二進制向量為f/ = (1,0,1,0),文件2的新索引二進制向量為 f2’ = (O, I, I, I)。
[0033]步驟7.用戶將查詢關鍵詞根據(jù)邏輯表達式生成LSSS矩陣,并將新索引二進制向量與LSSS矩陣進行內(nèi)積計算以進一步判斷該文件是否滿足查詢邏輯表達式。本步驟具體包括以下子步驟:
7.1首先根據(jù)查詢邏輯表達式構建LSSS矩陣,其方法如下:首先將根節(jié)點向量設為(I),其向量長度為1,并將變量C初始化為1,父節(jié)點使用向量V標記。如父節(jié)點為OR門,則孩子節(jié)點由V標記;如父節(jié)點為AND門,則左孩子節(jié)點為V I 11,右孩子節(jié)點為(0,……O) I |_1,0的個數(shù)為C,并且C = C+1。完成整棵樹的標記后,葉子節(jié)點組成LSSS矩陣M的行,若長度不等,則填充O。
7.2將新索引二進制向量與LSSS矩陣進行內(nèi)積計算,當且僅當計算結果為(I, O, O,…,O)時,表明文件滿足查詢條件,否則不滿足查詢條件。
[0034]舉例而言,要找到滿足查詢條件的文件,首先構造LSSS矩陣,見圖4。構造方法如下:首先將根節(jié)點向量設為(1),其向量長度為1,并將變量C初始化為1,父節(jié)點使用向量V標記。如父節(jié)點為OR門,則孩子節(jié)點由V標記;如父節(jié)點為AND門,則左孩子節(jié)點為v| 11,右孩子節(jié)點為(0,……O) 1-1,0的個數(shù)為C,并且c = c+1。完成整棵樹的標記后,葉子節(jié)點組成LSSS矩陣M的行,若長度不等,則填充O。
[0035]矩陣M構造完成后,逐條查詢每個文件的索引向量,文件I的新索引二進制向量為f/ = (1,0,1,0),計算41= (1,0,I),因此文件I不滿足查詢條件。文件2的新索引二進制向量為f2’ = (O, I, I, I),計算f2’M = (I, O, O),因此文件2滿足查詢條件。
【權利要求】
1.一種密文云數(shù)據(jù)復雜查詢方法,其特征在于,包括以下步驟: 步驟1.數(shù)據(jù)擁有者對其文件集構建索引,使用二進制向量索引,即索引中每一位代表一個關鍵詞,以O和I表示相應關鍵詞是否存在于此文件中; 步驟2.數(shù)據(jù)擁有者基于單個文件或數(shù)據(jù)塊使用對稱密碼機制加密文件集; 步驟3.數(shù)據(jù)擁有者將加密文件集發(fā)送至云端; 步驟4.用戶要求訪問包含某些關鍵詞的文件時,向數(shù)據(jù)擁有者申請查詢令牌,查詢令牌中包含有關鍵詞集合和所有文件的二進制向量索引; 步驟5.用戶根據(jù)查詢關鍵詞與關鍵詞集合構建查詢二進制向量,并將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算判斷該文件是否包含用戶的查詢關鍵詞;步驟6.若該文件包含有查詢關鍵詞,則進一步構建與查詢關鍵詞對應的新索引二進制向量; 步驟7.用戶將查詢關鍵詞根據(jù)邏輯表達式生成LSSS矩陣,并將新索引二進制向量與LSSS矩陣進行內(nèi)積計算以進一步判斷該文件是否滿足查詢邏輯表達式。
2.根據(jù)權利要求1所述的密文云數(shù)據(jù)復雜查詢方法,其特征在于,步驟I具體包括以下子步驟: 1.1數(shù)據(jù)擁有者使用已有的分詞算法對其文件集提取關鍵詞,構建關鍵詞集合; 1.2數(shù)據(jù)擁有者根據(jù)每個文件中是否包含關鍵詞集合中的對應關鍵詞構建二進制向量索引,以I表示相應關鍵詞存在于此文件中,以O表示相應關鍵詞不存在于此文件中。
3.根據(jù)權利要求1所述的密文云數(shù)據(jù)復雜查詢方法,其特征在于,步驟2中,如果是基于單個文件加密,數(shù)據(jù)擁有者根據(jù)文件集中文件數(shù)量,利用對稱密碼機制隨機生成對應數(shù)目的對稱密鑰,并利用對稱密鑰對文件進行加密生成密文,每個文件的加密密鑰均不同;如果是基于數(shù)據(jù)塊加密,數(shù)據(jù)擁有者根據(jù)設定數(shù)據(jù)塊大小將文件集中文件進行分塊,利用對稱密碼機制隨機生成對應數(shù)目的對稱密鑰,并利用對稱密鑰對數(shù)據(jù)塊進行加密生成密文,每個數(shù)據(jù)塊的加密密鑰均不同。
4.根據(jù)權利要求1所述的密文云數(shù)據(jù)復雜查詢方法,其特征在于,步驟4具體包括以下子步驟: .1.1用戶向數(shù)據(jù)擁有者發(fā)送查詢授權申請,數(shù)據(jù)擁有者根據(jù)其安全策略決定是否向用戶以及針對哪些文件集頒發(fā)授權令牌,令牌中包含有授權文件集的關鍵詞集合以及授權文件的二進制向量索引; .1.2數(shù)據(jù)擁有者使用通用的安全傳輸機制將令牌發(fā)送給用戶。
5.根據(jù)權利要求1所述的密文云數(shù)據(jù)復雜查詢方法,其特征在于,步驟5具體包括以下子步驟: .1.1首先構建查詢二進制向量,其方法如下:用戶根據(jù)查詢關鍵詞是否在關鍵詞集合中構建查詢二進制向量,以I表不相應關鍵詞存在于關鍵詞集合中,以O表不相應關鍵詞不存在于關鍵詞集合中; .1.2將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算,當內(nèi)積計算結果為非O時,表明該文件包含查詢關鍵詞,當內(nèi)積計算結果為O時,表明該文件不包含查詢關鍵詞,并且內(nèi)積計算結果的值越大,表明包含的關鍵詞越多。
6.根據(jù)權利要求1所述的密文云數(shù)據(jù)復雜查詢方法,其特征在于,步驟6中,構建與查詢關鍵詞對應的新索引二進制向量方法如下:在文件的索引二進制向量中,將查詢關鍵詞對應位置的二進制位保留,將其它非查詢關鍵詞對應位去掉。
7.根據(jù)權利要求1所述的密文云數(shù)據(jù)復雜查詢方法,其特征在于,步驟7具體包括以下子步驟: 1.1首先根據(jù)查詢邏輯表達式構建LSSS矩陣,其方法如下:首先將根節(jié)點向量設為(I),其向量長度為1,并將變量c初始化為I,父節(jié)點使用向量r標記;如果父節(jié)點為OR門,則孩子節(jié)點由^標記;如父節(jié)點為AND門,則左孩子節(jié)點為ιΗ 11,右孩子節(jié)點為(0,……O) 11-1,0的個數(shù)為C,并且c=c+l ;完成整棵樹的標記后,葉子節(jié)點組成LSSS矩陣#的行,若長度不等,則填充O; 1.2將新索引二進制向量與LSSS矩陣進行內(nèi)積計算,當且僅當計算結果為(1,O,0,...,O)時,表明文件滿足查詢條件,否則不滿足查詢條件。
8.—種密文云數(shù)據(jù)復雜查詢方法,包括數(shù)據(jù)擁有者、用戶和云端,其特征在于, 數(shù)據(jù)擁有者用于使用已有分詞算法對其文件集提取關鍵詞,并構建所有文件的二進制向量索引; 數(shù)據(jù)擁有者還用于對文件使用對稱密碼機制進行加密,如果是基于數(shù)據(jù)塊,還要將文件按設定數(shù)據(jù)塊大小進行分塊,然后使用對稱密碼機制進行加密,然后將加密的文件發(fā)送到云端; 用戶用于向數(shù)據(jù)擁有者請求查詢授權; 數(shù)據(jù)擁有者還用于按照指定安全策略向用戶發(fā)放授權令牌; 用戶還用于使用令牌信息構建查詢二進制向量; 用戶還用于使用查詢二進制向量與所有文件的索引二進制向量進行內(nèi)積計算以判斷文件是否包含查詢關鍵詞; 用戶還用于構建與查詢關鍵詞對應的新索引二進制向量; 用戶還用于將查詢關鍵詞根據(jù)邏輯表達式生成LSSS矩陣,并將新索引二進制向量與LSSS矩陣進行內(nèi)積計算; 用戶還用于向云端請求包含查詢關鍵詞的文件密文,并使用令牌中包含的文件密鑰解密文件; 云端用于存放數(shù)據(jù),并響應用戶的讀寫請求。
【文檔編號】G06F17/30GK104036050SQ201410316970
【公開日】2014年9月10日 申請日期:2014年7月4日 優(yōu)先權日:2014年7月4日
【發(fā)明者】陳蘭香 申請人:福建師范大學