亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種加密云數(shù)據(jù)下基于Simhash的模糊排序搜索方法與流程

文檔序號(hào):11134177閱讀:603來源:國知局
一種加密云數(shù)據(jù)下基于Simhash的模糊排序搜索方法與制造工藝

本發(fā)明涉及模糊排序搜索領(lǐng)域,特別是涉及一種加密云數(shù)據(jù)下基于Simhash的模糊排序搜索方法。



背景技術(shù):

云計(jì)算的發(fā)展使得越來越多的用戶將自己的數(shù)據(jù)外包給云服務(wù)器,并享受方便快捷的服務(wù)。但云服務(wù)器不是完全可信的,可能會(huì)對(duì)用戶的數(shù)據(jù)隱私產(chǎn)生很大的威脅。為了保障敏感數(shù)據(jù)不被泄露,用戶會(huì)先對(duì)數(shù)據(jù)進(jìn)行加密,再將數(shù)據(jù)存儲(chǔ)到云服務(wù)器。然而數(shù)據(jù)加密使得高效的數(shù)據(jù)利用成為挑戰(zhàn),如何在密文數(shù)據(jù)中檢索用戶感興趣的資料成為亟待解決的問題。可搜索加密技術(shù)就是為了解決密文檢索的難題而提出的。該技術(shù)是指用戶將加密后的數(shù)據(jù)存儲(chǔ)到云服務(wù)器中,云服務(wù)器可以根據(jù)用戶提交的關(guān)鍵詞陷門進(jìn)行搜索,并返回相關(guān)文檔給用戶,而不泄露相關(guān)的明文信息。

最早提出的可搜索加密方案,為解決密文檢索的問題提供了思路,引起了學(xué)術(shù)界的普遍關(guān)注。隨后提出為文檔創(chuàng)建索引來提高檢索效率,每個(gè)索引中包含了一篇文檔的關(guān)鍵詞陷門信息;以及構(gòu)造了加密的哈希表索引,表中包含關(guān)鍵詞陷門和關(guān)鍵詞的文檔標(biāo)識(shí)集合;以及提出了關(guān)鍵詞排序搜索方案,主要通過對(duì)相關(guān)度分?jǐn)?shù)進(jìn)行保序加密,實(shí)現(xiàn)對(duì)搜索結(jié)果的精確排序;并引入向量空間模型和安全KNN(secure k-nearest neighbor)方法,提出了多關(guān)鍵詞排序可搜索加密方案,通過矩陣對(duì)索引向量進(jìn)行加密,對(duì)索引向量和搜索向量計(jì)算內(nèi)積相似度,實(shí)現(xiàn)了對(duì)搜索結(jié)果的排序;再通過引入雙線性對(duì)的方式,提出了公鑰可搜索加密方案,利用公鑰可以加密文檔并生成索引,私鑰擁有者可以生成關(guān)鍵詞陷門并進(jìn)行搜索。

然而以上方案只支持關(guān)鍵詞精確搜索,在實(shí)際應(yīng)用中,用戶輸入的搜索請(qǐng)求經(jīng)常會(huì)出現(xiàn)拼寫錯(cuò)誤或格式不匹配的情況。隨后提出了密文關(guān)鍵詞模糊搜索,主要是利用通配符構(gòu)造關(guān)鍵詞模糊集合;隨后提出了更加節(jié)省存儲(chǔ)空間的克方法來構(gòu)造模糊集合,并引入符號(hào)索引樹提高搜索效率;通過基于字典的模糊集構(gòu)造方案,雖然減少了模糊集的存儲(chǔ)開銷,但是卻降低了搜索精確度;通過提取索引樹結(jié)構(gòu)的路徑信息,實(shí)現(xiàn)了可驗(yàn)證的模糊搜索方案。然而在這些模糊搜索方案中,需要對(duì)每個(gè)關(guān)鍵詞構(gòu)造模糊集合,這些模糊集合將占用云服務(wù)器大量的存儲(chǔ)空間。例如,在基于通配符的模糊集構(gòu)造方法中,隨著編輯距離的增加,模糊集合的大小會(huì)呈指數(shù)增長(zhǎng),因此構(gòu)造模糊集合會(huì)耗費(fèi)大量的計(jì)算和存儲(chǔ)開銷。并且這些方案只能通過編輯距離對(duì)搜索結(jié)果進(jìn)行排序,排序效果比較粗糙,無法返回精確的搜索結(jié)果。雖然在一些方案中提到引入布隆過濾器可以有效減少存儲(chǔ)空間,但由于針對(duì)模糊集合中的每個(gè)關(guān)鍵詞,都需要用多個(gè)哈希函數(shù)來將其插入到布隆過濾器中,因此會(huì)增加計(jì)算開銷。

起先Simhash算法這個(gè)技術(shù)運(yùn)用于海量網(wǎng)頁的去重,隨后也被運(yùn)用到可搜索加密領(lǐng)域,但主要是針對(duì)整篇文檔生成指紋索引。由于該指紋索引是由文檔的多個(gè)關(guān)鍵詞映射得到的,因此如果只用一個(gè)或者少量關(guān)鍵詞進(jìn)行查詢會(huì)出現(xiàn)較大誤差,所以并不適用于關(guān)鍵詞搜索。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的是提供一種加密云數(shù)據(jù)下基于Simhash的模糊排序搜索方法,可以減少索引存儲(chǔ)空間,并實(shí)現(xiàn)精確排序的密文關(guān)鍵詞模糊搜索。

本發(fā)明采用以下方案實(shí)現(xiàn):一種加密云數(shù)據(jù)下基于Simhash的模糊排序搜索方法,所述方法中包括數(shù)據(jù)擁有者,授權(quán)用戶和云存儲(chǔ)服務(wù)器,具體模糊排序搜索方法包括以下步驟:

步驟S1:輸入一個(gè)安全參數(shù)λ,生成文檔加密密鑰sk、單向哈希函數(shù)h的密鑰hk;將密鑰sk、hk發(fā)送給授權(quán)用戶;

步驟S2:數(shù)據(jù)擁有者從文檔集合F=(f1,f2,…,fm)中抽取關(guān)鍵詞集合W=(w1,w2,…,wn),通過基于Simhash的關(guān)鍵詞指紋生成算法sim(hk,wi),生成每個(gè)關(guān)鍵詞wi∈W對(duì)應(yīng)的指紋Si,并為每篇文檔創(chuàng)建唯一的文檔標(biāo)識(shí)符FIDj,(1≤j≤m);計(jì)算關(guān)鍵詞在文檔中的相關(guān)度分?jǐn)?shù)Scorej,并對(duì)其進(jìn)行保序加密OPE(ek,Scorej);

步驟S3:每一個(gè)授權(quán)用戶都能夠獲得數(shù)據(jù)擁有者分發(fā)的密鑰hk;當(dāng)授權(quán)用戶需要搜索感興趣的關(guān)鍵詞w時(shí),首先通過關(guān)鍵詞指紋生成算法sim(hk,w)計(jì)算關(guān)鍵詞w的指紋值,該指紋值即陷門Tw;然后將產(chǎn)生的陷門Tw提交至云存儲(chǔ)服務(wù)器進(jìn)行查詢;

步驟S4:云存儲(chǔ)服務(wù)器在接收到授權(quán)用戶的搜索請(qǐng)求后,根據(jù)雙因子排序方法對(duì)搜索結(jié)果進(jìn)行排序,將top-k篇密文文檔的集合C'=(c1,c2,…,ck)返回給用戶;

步驟S5:授權(quán)用戶使用密鑰sk,將返回的top-k篇密文文檔C'=(c1,c2,…,ck)進(jìn)行解密,獲得所需的明文文件集。

進(jìn)一步地,所述步驟S2中,對(duì)所有所述關(guān)鍵詞創(chuàng)建倒排索引每個(gè)包含兩部分內(nèi)容,第一部分是關(guān)鍵詞wi的指紋值Si;第二部分是含有關(guān)鍵詞wi的文檔的信息集合,這些信息包括文檔的標(biāo)識(shí)符與保序加密后的相關(guān)度分?jǐn)?shù),表示為(1≤i≤n)(1≤j≤m),則每個(gè)關(guān)鍵詞對(duì)應(yīng)索引即包含指紋Si和j篇文檔的相關(guān)信息;最后將倒排索引I、密文文檔集C=(c1,c2,…,cm)上傳至云服務(wù)器端。

進(jìn)一步地,所述步驟S2,所述關(guān)鍵詞指紋生成算法sim(hk,w)具體包括以下步驟:

步驟S21:輸入需要處理的關(guān)鍵詞w,并將一個(gè)τ維的向量V初始化為0,一個(gè)τ維的向量S初始化為0,τ的值與哈希函數(shù)h產(chǎn)生哈希值的位數(shù)相同;

步驟S22:將關(guān)鍵詞w做n-gram處理,獲得關(guān)鍵詞w的多個(gè)特征;

步驟S23:使用帶密鑰的單向哈希函數(shù)h,對(duì)gramset中的每個(gè)元素計(jì)算哈希值;

步驟S24:將每個(gè)元素的哈希值逐個(gè)映射到向量V,如果哈希值的第i位為1,則向量V的第i位加1,如果哈希值的第i位為0,則向量V的第i位減1;

步驟S25:將向量V映射到向量S,如果向量V的第i位大于0,則向量S第i位的值為1,如果向量V的第i位小于0,則向量S第i位的值為0;

步驟S26:輸出S作為這個(gè)關(guān)鍵詞的指紋。

進(jìn)一步地,當(dāng)所述w為encrypt時(shí),經(jīng)過2-gram處理得到gramset={en,nc,cr,ry,yp,pt},gramset中的各個(gè)元素即為關(guān)鍵詞w的特征。

進(jìn)一步地,所述哈希函數(shù)h選擇使用Hmac-SHA1或Hmac-MD5,不同的h產(chǎn)生不同位數(shù)的哈希值。

進(jìn)一步地,所述步驟S2中,基于tf-idf權(quán)值計(jì)算方法計(jì)算關(guān)鍵詞在文檔中的相關(guān)度分?jǐn)?shù)Scorej,具體為:

首先計(jì)算詞頻權(quán)重wft,f

再計(jì)算逆文檔頻率idft

最后計(jì)算關(guān)鍵詞在文檔中的相關(guān)度分?jǐn)?shù)Scorej,(1≤j≤m):Scorej=wft,f×idft。

進(jìn)一步地,所述步驟S4中,所述雙因子排序方法根據(jù)漢明距離和相關(guān)度分?jǐn)?shù)進(jìn)行排序選擇,具體包括以下步驟:

步驟S41:計(jì)算搜索陷門Tw和關(guān)鍵詞索引中的指紋值Si之間的漢明距離

步驟S42利用對(duì)搜索結(jié)果進(jìn)行初步排序,得到粗糙的排序結(jié)果集合且集合I'中的是按照漢明距離從小到大排序的;

步驟S43:對(duì)每個(gè)中各自的進(jìn)行排序;

步驟S44:按照優(yōu)先,次之的設(shè)定,從排序結(jié)果中選出前k篇文檔返回給用戶。

在本發(fā)明中,針對(duì)目前的密文關(guān)鍵詞模糊搜索方案中,索引結(jié)構(gòu)計(jì)算和存儲(chǔ)開銷大,排序結(jié)果不夠精確等問題,設(shè)計(jì)了基于Simhash的關(guān)鍵詞指紋生成算法,實(shí)現(xiàn)了模糊搜索的功能,并極大減少了索引的計(jì)算和存儲(chǔ)開銷;通過引入相關(guān)度分?jǐn)?shù),提高了排序結(jié)果的準(zhǔn)確性,并使用保序加密保障相關(guān)度分?jǐn)?shù)的隱私;通過雙因子排序方法能夠?qū)λ阉鹘Y(jié)果進(jìn)行排序優(yōu)化,提高了搜索結(jié)果的正確率與召回率。本發(fā)明的用途如下:由于公有云服務(wù)器不是完全可信的第三方,因此為了保障數(shù)據(jù)安全和個(gè)人隱私,用戶會(huì)將部分敏感數(shù)據(jù),例如私密郵件、個(gè)人電子醫(yī)療記錄、公司財(cái)務(wù)報(bào)表等,加密后再存儲(chǔ)到云服務(wù)器。當(dāng)需要使用這些數(shù)據(jù)時(shí),用戶可以使用本發(fā)明對(duì)云端數(shù)據(jù)進(jìn)行密文關(guān)鍵詞檢索。即使用戶輸入的搜索請(qǐng)求出現(xiàn)拼寫錯(cuò)誤或格式不匹配的情況,也能搜索到相關(guān)數(shù)據(jù)并且排序后返回給用戶。

與現(xiàn)有技術(shù)相比,本發(fā)明的顯著優(yōu)點(diǎn)在于:

(1)高效的模糊關(guān)鍵詞索引存儲(chǔ):本發(fā)明改進(jìn)了Simhash算法,能夠針對(duì)關(guān)鍵詞(而不是文檔)生成指紋索引,使得該索引結(jié)構(gòu)適用于關(guān)鍵詞搜索。通過對(duì)關(guān)鍵詞做n-gram處理,再利用Simhash的降維思想,能夠?qū)㈥P(guān)鍵詞處理成Simhash指紋。由于Simhash指紋本身的特性,授權(quán)用戶在拼寫錯(cuò)誤的情況下也可以匹配到正確的關(guān)鍵詞,從而實(shí)現(xiàn)了密文模糊檢索。不同于傳統(tǒng)模糊搜索方案,本發(fā)明無需構(gòu)造龐大的關(guān)鍵詞模糊集合,而只需要將一個(gè)關(guān)鍵詞處理為一個(gè)對(duì)應(yīng)的指紋,再構(gòu)造成索引存儲(chǔ)在云服務(wù)器即可,因此極大減少了計(jì)算和存儲(chǔ)開銷。

(2)精確返回排序結(jié)果:本發(fā)明通過結(jié)合漢明距離和相關(guān)度分?jǐn)?shù),設(shè)計(jì)了高效的雙因子排序方法,云服務(wù)器能夠?qū)λ阉鹘Y(jié)果進(jìn)行精確的排序并返回給搜索用戶。

(3)相關(guān)度分?jǐn)?shù)的隱私保護(hù):引入保序加密方法對(duì)相關(guān)度分?jǐn)?shù)進(jìn)行加密,既保護(hù)了相關(guān)度分?jǐn)?shù)的隱私安全,又能夠?qū)⑴判虿僮鹘唤o云服務(wù)器完成,減少了用戶查詢文檔的時(shí)間開銷,節(jié)約了帶寬資源。

附圖說明

圖1為本發(fā)明的方法系統(tǒng)框圖。

圖2為本發(fā)明中關(guān)鍵詞指紋生成算法的示意圖。

圖3為本發(fā)明中雙因子排序方法的流程示意圖。

具體實(shí)施方式

下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明做進(jìn)一步說明。

本實(shí)施例提供一種加密云數(shù)據(jù)下基于Simhash的模糊排序搜索方法,如圖1所示,所述方法中包括數(shù)據(jù)擁有者,授權(quán)用戶和云存儲(chǔ)服務(wù)器,具體模糊排序搜索方法包括以下步驟:

步驟S1:輸入一個(gè)安全參數(shù)λ,生成文檔加密密鑰sk、單向哈希函數(shù)h的密鑰hk;將密鑰sk、hk發(fā)送給授權(quán)用戶;

步驟S2:數(shù)據(jù)擁有者從文檔集合F=(f1,f2,…,fm)中抽取關(guān)鍵詞集合W=(w1,w2,…,wn),通過基于Simhash的關(guān)鍵詞指紋生成算法sim(hk,wi),生成每個(gè)關(guān)鍵詞wi∈W對(duì)應(yīng)的指紋Si,并為每篇文檔創(chuàng)建唯一的文檔標(biāo)識(shí)符FIDj,(1≤j≤m);計(jì)算關(guān)鍵詞在文檔中的相關(guān)度分?jǐn)?shù)Scorej,并對(duì)其進(jìn)行保序加密OPE(ek,Scorej);

步驟S3:每一個(gè)授權(quán)用戶都能夠獲得數(shù)據(jù)擁有者分發(fā)的密鑰hk;當(dāng)授權(quán)用戶需要搜索感興趣的關(guān)鍵詞w時(shí),首先通過關(guān)鍵詞指紋生成算法sim(hk,w)計(jì)算關(guān)鍵詞w的指紋值,該指紋值即陷門Tw;然后將產(chǎn)生的陷門Tw提交至云存儲(chǔ)服務(wù)器進(jìn)行查詢;

步驟S4:云存儲(chǔ)服務(wù)器在接收到授權(quán)用戶的搜索請(qǐng)求后,根據(jù)雙因子排序方法對(duì)搜索結(jié)果進(jìn)行排序,將top-k篇密文文檔的集合C'=(c1,c2,…,ck)返回給用戶;

步驟S5:授權(quán)用戶使用密鑰sk,將返回的top-k篇密文文檔C'=(c1,c2,…,ck)進(jìn)行解密,獲得所需的明文文件集。

在本實(shí)施例中,所述步驟S2中,對(duì)所有所述關(guān)鍵詞創(chuàng)建倒排索引每個(gè)包含兩部分內(nèi)容,第一部分是關(guān)鍵詞wi的指紋值Si;第二部分是含有關(guān)鍵詞wi的文檔的信息集合,這些信息包括文檔的標(biāo)識(shí)符與保序加密后的相關(guān)度分?jǐn)?shù),表示為(1≤i≤n)(1≤j≤m),則每個(gè)關(guān)鍵詞對(duì)應(yīng)索引即包含指紋Si和j篇文檔的相關(guān)信息;最后將倒排索引I、密文文檔集C=(c1,c2,…,cm)上傳至云服務(wù)器端。

在本實(shí)施例中,所述步驟S2中,如圖2所示,所述關(guān)鍵詞指紋生成算法sim(hk,w)具體包括以下步驟:

步驟S21:輸入需要處理的關(guān)鍵詞w,并將一個(gè)τ維的向量V初始化為0,一個(gè)τ維的向量S初始化為0,τ的值與哈希函數(shù)h產(chǎn)生哈希值的位數(shù)相同;

步驟S22:將關(guān)鍵詞w做n-gram處理,獲得關(guān)鍵詞w的多個(gè)特征;

步驟S23:使用帶密鑰的單向哈希函數(shù)h,對(duì)gramset中的每個(gè)元素計(jì)算哈希值;

步驟S24:將每個(gè)元素的哈希值逐個(gè)映射到向量V,如果哈希值的第i位為1,則向量V的第i位加1,如果哈希值的第i位為0,則向量V的第i位減1;

步驟S25:將向量V映射到向量S,如果向量V的第i位大于0,則向量S第i位的值為1,如果向量V的第i位小于0,則向量S第i位的值為0;

步驟S26:輸出S作為這個(gè)關(guān)鍵詞的指紋。

在本實(shí)施例中,當(dāng)所述w為encrypt時(shí),經(jīng)過2-gram處理得到gramset={en,nc,cr,ry,yp,pt},gramset中的各個(gè)元素即為關(guān)鍵詞w的特征。

在本實(shí)施例中,所述哈希函數(shù)h選擇使用Hmac-SHA1或Hmac-MD5,不同的h產(chǎn)生不同位數(shù)的哈希值,這會(huì)對(duì)最后搜索的精確度造成影響,位數(shù)越多精確度越高。

在本實(shí)施例中,所述步驟S2中,基于tf-idf權(quán)值計(jì)算方法計(jì)算關(guān)鍵詞在文檔中的相關(guān)度分?jǐn)?shù)Scorej,具體為:

首先計(jì)算詞頻權(quán)重wft,f

再計(jì)算逆文檔頻率idft

最后計(jì)算關(guān)鍵詞在文檔中的相關(guān)度分?jǐn)?shù)Scorej,(1≤j≤m):Scorej=wft,f×idft

其中,為了減輕用戶在本地的計(jì)算壓力,進(jìn)而提高搜索效率,讓排序操作全部由云服務(wù)器完成會(huì)更加符合用戶需求,引入非線性保序加密對(duì)Scorej進(jìn)行加密操作OPE(ek,Scorej)。

在本實(shí)施例中,為了減少排序時(shí)間和提高搜索效率,所述步驟S4中,所述雙因子排序方法根據(jù)漢明距離和相關(guān)度分?jǐn)?shù)進(jìn)行排序選擇,如圖3所示,具體包括以下步驟:

步驟S41:計(jì)算搜索陷門Tw和關(guān)鍵詞索引中的指紋值Si之間的漢明距離

步驟S42利用對(duì)搜索結(jié)果進(jìn)行初步排序,得到粗糙的排序結(jié)果集合且集合I'中的是按照漢明距離從小到大排序的;

步驟S43:由于同一個(gè)關(guān)鍵詞可能會(huì)被多篇文檔所包含,此時(shí)的排序結(jié)果還不能夠?qū)嗤P(guān)鍵詞的文檔區(qū)分開來,需要利用相關(guān)度分?jǐn)?shù)進(jìn)行更精確的排序,對(duì)每個(gè)中各自的進(jìn)行排序;

步驟S44:按照優(yōu)先,次之的設(shè)定,從排序結(jié)果中選出前k篇文檔返回給用戶。

其中,詳細(xì)的步驟參考算法一。

在本實(shí)施例中,針對(duì)目前的密文關(guān)鍵詞模糊搜索方案中,索引結(jié)構(gòu)計(jì)算和存儲(chǔ)開銷大,排序結(jié)果不夠精確等問題,設(shè)計(jì)了基于Simhash的關(guān)鍵詞指紋生成算法,實(shí)現(xiàn)了模糊搜索的功能,并極大減少了索引的計(jì)算和存儲(chǔ)開銷;通過引入相關(guān)度分?jǐn)?shù),提高了排序結(jié)果的準(zhǔn)確性,并使用保序加密保障相關(guān)度分?jǐn)?shù)的隱私;通過雙因子排序方法能夠?qū)λ阉鹘Y(jié)果進(jìn)行排序優(yōu)化,提高了搜索結(jié)果的正確率與召回率。本發(fā)明的用途如下:由于公有云服務(wù)器不是完全可信的第三方,因此為了保障數(shù)據(jù)安全和個(gè)人隱私,用戶會(huì)將部分敏感數(shù)據(jù),例如私密郵件、個(gè)人電子醫(yī)療記錄、公司財(cái)務(wù)報(bào)表等,加密后再存儲(chǔ)到云服務(wù)器。當(dāng)需要使用這些數(shù)據(jù)時(shí),用戶可以使用本發(fā)明對(duì)云端數(shù)據(jù)進(jìn)行密文關(guān)鍵詞檢索。即使用戶輸入的搜索請(qǐng)求出現(xiàn)拼寫錯(cuò)誤或格式不匹配的情況,也能搜索到相關(guān)數(shù)據(jù)并且排序后返回給用戶。

以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1