一種密文云數(shù)據(jù)查詢方法
【專利摘要】本發(fā)明公開了一種密文云數(shù)據(jù)查詢方法,包括:數(shù)據(jù)擁有者對(duì)其文件集構(gòu)建二進(jìn)制向量索引,并使用對(duì)稱密碼機(jī)制加密文件集,然后將加密文件集以及所有文件的二進(jìn)制向量索引發(fā)送至云端。當(dāng)某用戶要求訪問包含某些關(guān)鍵詞的文件時(shí),向數(shù)據(jù)擁有者申請(qǐng)查詢令牌,查詢令牌中包含有關(guān)鍵詞集合。用戶根據(jù)查詢關(guān)鍵詞與關(guān)鍵詞集合構(gòu)建查詢二進(jìn)制向量,并將查詢二進(jìn)制向量發(fā)送至云端。云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算以判斷該文件是否包含用戶的查詢關(guān)鍵詞。本發(fā)明能實(shí)現(xiàn)比目前廣泛使用的倒排索引更高效的查詢。
【專利說明】一種密文云數(shù)據(jù)查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云存儲(chǔ)和信息檢索領(lǐng)域,具體涉及一種密文云數(shù)據(jù)查詢方法。
【背景技術(shù)】
[0002]在云存儲(chǔ)環(huán)境下,要保護(hù)用戶數(shù)據(jù)機(jī)密性和隱私性,加密是一種常用的方法,但是數(shù)據(jù)加密后,密文數(shù)據(jù)檢索問題亟待解決。
[0003]為解決密文云數(shù)據(jù)檢索問題,目前主要有兩種典型的方法:一種是直接對(duì)密文進(jìn)行線性搜索,即對(duì)密文中單詞逐個(gè)進(jìn)行比對(duì),確認(rèn)關(guān)鍵詞是否存在以及出現(xiàn)的次數(shù);第二種方法基于安全索引,即先對(duì)文檔建立關(guān)鍵詞索引,然后將文檔和索引加密后上傳至云端,搜索時(shí)從索引中查詢關(guān)鍵詞是否存在于某個(gè)文檔中。直接對(duì)密文線性搜索的方法缺點(diǎn)在于搜索效率不高,且無法應(yīng)對(duì)海量數(shù)據(jù)的搜索場(chǎng)景。基于索引的密文檢索方法是目前的研究主流,原因是其查詢效率更好,安全性能更高,適合用于大規(guī)模的云存儲(chǔ)密文檢索系統(tǒng)?;谒饕拿芪臋z索也可以分為兩類:第一類是針對(duì)結(jié)構(gòu)化的數(shù)據(jù),以數(shù)據(jù)庫為代表;第二類是針對(duì)非結(jié)構(gòu)化的數(shù)據(jù),以文件系統(tǒng)和Web網(wǎng)頁內(nèi)容為代表。
[0004]在已有的研究工作中,所有方案都是采用倒排索引機(jī)制,還沒有使用二進(jìn)制向量索引的方案。
[0005]采用二進(jìn)制向量索引在數(shù)據(jù)擁有者端只需要保留較少的信息,就可以實(shí)現(xiàn)高效安全的密文數(shù)據(jù)檢索。
[0006]密文云數(shù)據(jù)查詢是保證云存儲(chǔ)中數(shù)據(jù)機(jī)密性和可檢索性的關(guān)鍵技術(shù),對(duì)于推進(jìn)云存儲(chǔ)的快速發(fā)展具有重要的理論意義和實(shí)用價(jià)值。
【發(fā)明內(nèi)容】
[0007]針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種密文云數(shù)據(jù)查詢方法,旨在提高數(shù)據(jù)查詢效率與安全性。
[0008]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種密文云數(shù)據(jù)查詢方法,包括以下步驟:
步驟1.數(shù)據(jù)擁有者對(duì)其文件集構(gòu)建索引,使用二進(jìn)制向量索引,即索引中每一位代表一個(gè)關(guān)鍵詞,以O(shè)和I表示相應(yīng)關(guān)鍵詞是否存在于此文件中;
步驟2.數(shù)據(jù)擁有者使用對(duì)稱密碼機(jī)制加密文件集(可以基于單個(gè)文件或數(shù)據(jù)塊); 步驟3.數(shù)據(jù)擁有者將加密文件集,所有文件的二進(jìn)制向量索引發(fā)送至云端;
步驟4.用戶要求訪問包含某些關(guān)鍵詞的文件時(shí),向數(shù)據(jù)擁有者申請(qǐng)查詢令牌,查詢令牌中包含有關(guān)鍵詞集合;
步驟5.用戶根據(jù)查詢關(guān)鍵詞與關(guān)鍵詞集合構(gòu)建查詢二進(jìn)制向量,并將查詢二進(jìn)制向量發(fā)送至云端;
步驟6.云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算以判斷該文件是否包含用戶的查詢關(guān)鍵詞。
[0009]步驟I具體包括以下子步驟:1.1數(shù)據(jù)擁有者使用已有的分詞算法對(duì)其文件集提取關(guān)鍵詞,構(gòu)建關(guān)鍵詞集合;
1.2數(shù)據(jù)擁有者根據(jù)每個(gè)文件中是否包含關(guān)鍵詞集合中的對(duì)應(yīng)關(guān)鍵詞構(gòu)建二進(jìn)制向量索引,以I表示相應(yīng)關(guān)鍵詞存在于此文件中,以O(shè)表示相應(yīng)關(guān)鍵詞不存在于此文件中。
[0010]步驟4具體包括以下子步驟:
4.1用戶向數(shù)據(jù)擁有者發(fā)送查詢授權(quán)申請(qǐng),數(shù)據(jù)擁有者根據(jù)其安全策略決定是否向用戶以及針對(duì)哪些文件集頒發(fā)授權(quán)令牌,令牌中包含有授權(quán)文件集的關(guān)鍵詞集合;
4.2數(shù)據(jù)擁有者使用通用的安全傳輸機(jī)制將令牌發(fā)送給用戶。
[0011]步驟5中,構(gòu)建查詢二進(jìn)制向量方法如下:用戶根據(jù)查詢關(guān)鍵詞是否在關(guān)鍵詞集合中構(gòu)建查詢二進(jìn)制向量,以I表不相應(yīng)關(guān)鍵詞存在于關(guān)鍵詞集合中,以O(shè)表不相應(yīng)關(guān)鍵詞不存在于關(guān)鍵詞集合中。
[0012]步驟6中,云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算,當(dāng)內(nèi)積計(jì)算結(jié)果為非O時(shí),表明該文件包含查詢關(guān)鍵詞,當(dāng)內(nèi)積計(jì)算結(jié)果為O時(shí),表明該文件不包含查詢關(guān)鍵詞。并且內(nèi)積計(jì)算結(jié)果的值越大,表明包含的關(guān)鍵詞越多。
[0013]假設(shè)A是文檔A的二進(jìn)制索引向量,其中AC/] e {O, 1}表示關(guān)鍵詞K是否在文檔中存在W是一個(gè)查詢向量,其屮(6[/] e {0,1}表示關(guān)鍵詞~是否在查詢關(guān)鍵詞集合r中。文檔A與查詢關(guān)鍵詞集合r的相似性得分通過內(nèi)積方式計(jì)算出來,即rQ0 [0014]通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的優(yōu)勢(shì):
1.數(shù)據(jù)更新方便,建立索引的過程由數(shù)據(jù)擁有者完成,關(guān)鍵詞集合信息由數(shù)據(jù)擁有者保管,當(dāng)有文件需要更新時(shí),數(shù)據(jù)擁有者只需要更新文件的二進(jìn)制向量索引,并重新加密文件,然后將加密的文件以及二進(jìn)制向量索引發(fā)送至云端。
[0015]2.使用二進(jìn)制向量?jī)?nèi)積計(jì)算非常高效,只需要在用戶端增加少量的存儲(chǔ)就可以實(shí)現(xiàn)聞效的檢索。
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明所涉及的各實(shí)體關(guān)系圖。
[0017]圖2為本發(fā)明方法流程圖。
[0018]圖3為本發(fā)明二進(jìn)制向量索引圖。
【具體實(shí)施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]以下首先就本發(fā)明的技術(shù)術(shù)語進(jìn)行解釋和說明:
數(shù)據(jù)擁有者:指文件的擁有者,需要將文件存儲(chǔ)在云中,且制定文件的訪問控制策略; 用戶:需要讀取數(shù)據(jù)擁有者發(fā)布的文件;
云端或云存儲(chǔ):存儲(chǔ)數(shù)據(jù)擁有者的文件,會(huì)忠實(shí)執(zhí)行數(shù)據(jù)擁有者和合法用戶發(fā)出的操作請(qǐng)求,但在條件允許時(shí)會(huì)偷窺文件內(nèi)容;
文件:數(shù)據(jù)擁有者需要上傳至云端的數(shù)據(jù);
文件塊:文件分塊,數(shù)據(jù)擁有者對(duì)同一文件的不同分塊采用不同的加密密鑰;對(duì)稱密碼機(jī)制:是一種傳統(tǒng)密碼機(jī)制,加密和解密采用相同密鑰,效率較高,在本發(fā)明中采用該機(jī)制加密文件或文件塊;
對(duì)稱密鑰:對(duì)稱密碼機(jī)制中隨機(jī)生成的二進(jìn)制數(shù)據(jù);
以下結(jié)合實(shí)施例和附圖對(duì)本發(fā)明做進(jìn)一步說明。
[0021] 如圖1所示,本發(fā)明的密文云數(shù)據(jù)查詢方法是是應(yīng)用在加密云存儲(chǔ)系統(tǒng)中,該系統(tǒng)包括數(shù)據(jù)擁有者、用戶以及云端。
[0022]在本實(shí)施方式中,數(shù)據(jù)擁有者為某科研單位秘書,傳至云端的數(shù)據(jù)是該單位的科研項(xiàng)目文件,主要用于單位內(nèi)人員(包括有出差在外的人員)在項(xiàng)目申請(qǐng)以及開發(fā)過程中的數(shù)據(jù)共享。
[0023]如圖2所示,本發(fā)明的密文云數(shù)據(jù)查詢方法包括以下步驟:
步驟1.數(shù)據(jù)擁有者對(duì)其文件集構(gòu)建索引,使用二進(jìn)制向量索引,即索引中每一位代表一個(gè)關(guān)鍵詞,以O(shè)和I表示相應(yīng)關(guān)鍵詞是否存在于此文件中,如圖3所示。本步驟具體包括以下子步驟:
1.1數(shù)據(jù)擁有者使用已有的分詞算法對(duì)其文件集提取關(guān)鍵詞,構(gòu)建關(guān)鍵詞集合;
舉例而言,如圖3所示,關(guān)鍵詞集合{云計(jì)算,云存儲(chǔ),加密,數(shù)據(jù)檢索,二進(jìn)制向量}。
[0024]1.2數(shù)據(jù)擁有者根據(jù)每個(gè)文件中是否包含關(guān)鍵詞集合中的對(duì)應(yīng)關(guān)鍵詞構(gòu)建二進(jìn)制向量索引,以I表示相應(yīng)關(guān)鍵詞存在于此文件中,以O(shè)表示相應(yīng)關(guān)鍵詞不存在于此文件中。
[0025]舉例而言,如圖3所示,文件I包含關(guān)鍵詞{云計(jì)算,加密},其索引二進(jìn)制向量為/7=(1,O, I, O, O),文件2包含關(guān)鍵詞{云存儲(chǔ),加密,數(shù)據(jù)檢索,二進(jìn)制向量},其索引二進(jìn)制向量為厶=(0,I, I, I, I)。
[0026]步驟2.數(shù)據(jù)擁有者使用對(duì)稱密碼機(jī)制加密文件集(可以基于單個(gè)文件或數(shù)據(jù)塊);
步驟3.數(shù)據(jù)擁有者將加密文件集,所有文件的二進(jìn)制向量索引發(fā)送至云端;
步驟4.用戶要求訪問包含某些關(guān)鍵詞的文件時(shí),向數(shù)據(jù)擁有者申請(qǐng)查詢令牌,查詢令牌中包含有關(guān)鍵詞集合。本步驟具體包括以下子步驟:
4.1用戶向數(shù)據(jù)擁有者發(fā)送查詢授權(quán)申請(qǐng),數(shù)據(jù)擁有者根據(jù)其安全策略決定是否向用戶以及針對(duì)哪些文件集頒發(fā)授權(quán)令牌,令牌中包含有授權(quán)文件集的關(guān)鍵詞集合;
4.2數(shù)據(jù)擁有者使用通用的安全傳輸機(jī)制將令牌發(fā)送給用戶。
[0027]步驟5.用戶根據(jù)查詢關(guān)鍵詞與關(guān)鍵詞集合構(gòu)建查詢二進(jìn)制向量,并將查詢二進(jìn)制向量發(fā)送至云端;
其中,構(gòu)建查詢二進(jìn)制向量方法如下:用戶根據(jù)查詢關(guān)鍵詞是否在關(guān)鍵詞集合中構(gòu)建查詢二進(jìn)制向量,以I表不相應(yīng)關(guān)鍵詞存在于關(guān)鍵詞集合中,以O(shè)表不相應(yīng)關(guān)鍵詞不存在于關(guān)鍵詞集合中。
[0028]舉例而言,設(shè)查詢關(guān)鍵詞為{云存儲(chǔ),數(shù)據(jù)檢索},則查詢二進(jìn)制向量為= (O, I,O, I, O)。
[0029]步驟6.云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算以判斷該文件是否包含用戶的查詢關(guān)鍵詞。
[0030]舉例而言,將查詢向量與文件I的索引向量進(jìn)行內(nèi)積計(jì)算:./,二(0,I, O, I,O)-(1, O, I, O, O)-1 二O,將查詢向量與文件2的索引向量進(jìn)行內(nèi)積計(jì)算W厶二 (O,I, O,1,O).(O, I, I, I, I)-1 二2。
[0031]步驟6中,云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算,當(dāng)內(nèi)積計(jì)算結(jié)果為非O時(shí),表明該文件包含查詢關(guān)鍵詞,當(dāng)內(nèi)積計(jì)算結(jié)果為O時(shí),表明該文件不包含查詢關(guān)鍵詞。并且內(nèi)積計(jì)算結(jié)果的值越大,表明包含的關(guān)鍵詞越多。
[0032]設(shè)一個(gè)漢字占2個(gè)字節(jié),一個(gè)關(guān)鍵詞設(shè)為最多5個(gè)漢字,占10個(gè)字節(jié),假設(shè)有1000個(gè)關(guān)鍵詞,存儲(chǔ)關(guān)鍵詞集合只需要IOK字節(jié)的存儲(chǔ)空間。每個(gè)文件的二進(jìn)制向量索引大小為1000位,約12個(gè)字節(jié),1000個(gè)文件,只需要12K字節(jié)的索引存儲(chǔ)空間。
[0033]本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而己,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種密文云數(shù)據(jù)查詢方法,其特征在于,包括以下步驟: 步驟1.數(shù)據(jù)擁有者對(duì)其文件集構(gòu)建索引,使用二進(jìn)制向量索引,即索引中每一位代表一個(gè)關(guān)鍵詞,以O(shè)和I表示相應(yīng)關(guān)鍵詞是否存在于此文件中; 步驟2.數(shù)據(jù)擁有者使用對(duì)稱密碼機(jī)制加密文件集(可以基于單個(gè)文件或數(shù)據(jù)塊); 步驟3.數(shù)據(jù)擁有者將加密文件集,所有文件的二進(jìn)制向量索引發(fā)送至云端; 步驟4.用戶要求訪問包含某些關(guān)鍵詞的文件時(shí),向數(shù)據(jù)擁有者申請(qǐng)查詢令牌,查詢令牌中包含有關(guān)鍵詞集合; 步驟5.用戶根據(jù)查詢關(guān)鍵詞與關(guān)鍵詞集合構(gòu)建查詢二進(jìn)制向量,并將查詢二進(jìn)制向量發(fā)送至云端; 步驟6.云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算以判斷該文件是否包含用戶的查詢關(guān)鍵詞。
2.根據(jù)權(quán)利要求1所述的密文云數(shù)據(jù)查詢方法,其特征在于,步驟I具體包括以下子步驟: 1.1數(shù)據(jù)擁有者使用已有的分詞算法對(duì)其文件集提取關(guān)鍵詞,構(gòu)建關(guān)鍵詞集合; 1.2數(shù)據(jù)擁有者根據(jù)每個(gè)文件中是否包含關(guān)鍵詞集合中的對(duì)應(yīng)關(guān)鍵詞構(gòu)建二進(jìn)制向量索引,以I表示相應(yīng)關(guān)鍵詞存在于此文件中,以O(shè)表示相應(yīng)關(guān)鍵詞不存在于此文件中。
3.根據(jù)權(quán)利要求1所述的密文云數(shù)據(jù)查詢方法,其特征在于,步驟2中,如果是基于單個(gè)文件加密,數(shù)據(jù)擁有者根據(jù)文件集中文件數(shù)量,利用對(duì)稱密碼機(jī)制隨機(jī)生成對(duì)應(yīng)數(shù)目的對(duì)稱密鑰,并利用對(duì)稱密鑰對(duì)文件進(jìn)行加密生成密文,每個(gè)文件的加密密鑰均不同;如果是基于數(shù)據(jù)塊加密,數(shù)據(jù)擁有者根據(jù)設(shè)定數(shù)據(jù)塊大小將文件集中文件進(jìn)行分塊,利用對(duì)稱密碼機(jī)制隨機(jī)生成對(duì)應(yīng)數(shù)目的對(duì)稱密鑰,并利用對(duì)稱密鑰對(duì)數(shù)據(jù)塊進(jìn)行加密生成密文,每個(gè)數(shù)據(jù)塊的加密密鑰均不同。
4.根據(jù)權(quán)利要求1所述的密文云數(shù)據(jù)查詢方法,其特征在于,步驟4具體包括以下子步驟: .4.1用戶向數(shù)據(jù)擁有者發(fā)送查詢授權(quán)申請(qǐng),數(shù)據(jù)擁有者根據(jù)其安全策略決定是否向用戶以及針對(duì)哪些文件集頒發(fā)授權(quán)令牌,令牌中包含有授權(quán)文件集的關(guān)鍵詞集合; .4.2數(shù)據(jù)擁有者使用通用的安全傳輸機(jī)制將令牌發(fā)送給用戶。
5.根據(jù)權(quán)利要求1所述的密文云數(shù)據(jù)查詢方法,其特征在于,步驟5中,構(gòu)建查詢二進(jìn)制向量方法如下:用戶根據(jù)查詢關(guān)鍵詞是否在關(guān)鍵詞集合中構(gòu)建查詢二進(jìn)制向量,以I表示相應(yīng)關(guān)鍵詞存在于關(guān)鍵詞集合中,以O(shè)表示相應(yīng)關(guān)鍵詞不存在于關(guān)鍵詞集合中。
6.根據(jù)權(quán)利要求1所述的密文云數(shù)據(jù)查詢方法,其特征在于,步驟6中,云端將查詢二進(jìn)制向量與每個(gè)文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算,當(dāng)內(nèi)積計(jì)算結(jié)果為非O時(shí),表明該文件包含查詢關(guān)鍵詞,當(dāng)內(nèi)積計(jì)算結(jié)果為O時(shí),表明該文件不包含查詢關(guān)鍵詞。并且內(nèi)積計(jì)算結(jié)果的值越大,表明包含的關(guān)鍵詞越多。
7.—種密文云數(shù)據(jù)查詢方法,包括數(shù)據(jù)擁有者、用戶和云端,其特征在于數(shù)據(jù)擁有者用于使用已有分詞算法對(duì)其文件集提取關(guān)鍵詞,并構(gòu)建所有文件的二進(jìn)制向量索引; 數(shù)據(jù)擁有者還用于對(duì)文件使用對(duì)稱密碼機(jī)制進(jìn)行加密,如果是基于數(shù)據(jù)塊,還要將文件按設(shè)定數(shù)據(jù)塊大小進(jìn)行分塊,然后使用對(duì)稱密碼機(jī)制進(jìn)行加密,然后將加密的文件發(fā)送到云端;用戶用于向數(shù)據(jù)擁有者請(qǐng)求查詢授權(quán); 數(shù)據(jù)擁有者還用于按照指定安全策略向用戶發(fā)放授權(quán)令牌; 用戶還用于使用令牌信息構(gòu)建查詢二進(jìn)制向量; 用戶還用于向云端請(qǐng)求包含查詢關(guān)鍵詞的文件密文,并使用令牌中包含的文件密鑰解密文件; 云端用于使用查詢二進(jìn)制向量與所有文件的索引二進(jìn)制向量進(jìn)行內(nèi)積計(jì)算以判斷文件是否包含查詢關(guān)鍵詞; 云端還用于存放數(shù)據(jù),并響應(yīng)用戶的讀寫請(qǐng)求。
【文檔編號(hào)】G06F17/30GK103995900SQ201410254079
【公開日】2014年8月20日 申請(qǐng)日期:2014年6月10日 優(yōu)先權(quán)日:2014年6月10日
【發(fā)明者】陳蘭香 申請(qǐng)人:福建師范大學(xué)