本發(fā)明涉及云計(jì)算安全領(lǐng)域,是一種面向云計(jì)算的可驗(yàn)證單關(guān)鍵詞top-k檢索方法。
背景技術(shù):
隨著云計(jì)算技術(shù)的成熟,以amazonec2、googleappengine等為代表的云服務(wù)模式得到快速發(fā)展和應(yīng)用普及。越來(lái)越多的企業(yè)和個(gè)人通過(guò)將存儲(chǔ)、計(jì)算等資源外包至云服務(wù)提供商(cloudserviceprovider,云服務(wù)器p)來(lái)降低運(yùn)營(yíng)成本。it資源服務(wù)化的思想日益普及,呈現(xiàn)“一切皆服務(wù)”(xasaservice,xaas)的趨勢(shì),“服務(wù)”成為云計(jì)算的核心概念。然而在云計(jì)算蓬勃發(fā)展的同時(shí),云安全也成為被廣泛關(guān)注的問(wèn)題。在云計(jì)算環(huán)境中,用戶(hù)對(duì)放置在云服務(wù)器(cloudserver,云服務(wù)器)中的數(shù)據(jù)和計(jì)算失去控制,對(duì)于數(shù)據(jù)是否受到保護(hù)、計(jì)算任務(wù)是否被正確執(zhí)行都無(wú)法確定,因此需要設(shè)計(jì)相應(yīng)的安全機(jī)制和體系結(jié)構(gòu)來(lái)保護(hù)用戶(hù)數(shù)據(jù)的機(jī)密性和完整性。前者主要通過(guò)隱私保護(hù)等密碼手段實(shí)現(xiàn)數(shù)據(jù)的不可窺探性;而后者主要是指用戶(hù)對(duì)查詢(xún)結(jié)果進(jìn)行驗(yàn)證,防止數(shù)據(jù)被篡改、偽造或丟棄。
當(dāng)前,研究者們主要考慮半誠(chéng)實(shí)模型(honest-but-curious)框架下的安全檢索問(wèn)題,即假設(shè)云服務(wù)器能夠嚴(yán)格按照約定的協(xié)議來(lái)對(duì)客戶(hù)提供數(shù)據(jù)檢索服務(wù),但可能會(huì)竊取數(shù)據(jù)信息。針對(duì)云計(jì)算環(huán)境中文檔檢索的隱私保護(hù)問(wèn)題已經(jīng)成為現(xiàn)有研究工作關(guān)注的熱點(diǎn)問(wèn)題,其中,同態(tài)加密技術(shù)和可搜索加密技術(shù)是該類(lèi)研究工作常用的安全技術(shù)手段。然而,云服務(wù)器并不一定總是遵守半誠(chéng)實(shí)模型,云服務(wù)器可能不按照既定的協(xié)議提供數(shù)據(jù),或者數(shù)據(jù)的計(jì)算過(guò)程可能由于負(fù)載過(guò)重、軟件漏洞等問(wèn)題而出現(xiàn)差錯(cuò),導(dǎo)致返回給用戶(hù)的檢索結(jié)果不正確或不全面。針對(duì)檢索結(jié)果完整性問(wèn)題較少被研究者關(guān)注,事實(shí)上,在某些領(lǐng)域,檢索結(jié)果的完整性要求極為重要,而數(shù)據(jù)私密性有時(shí)卻不是必須的。例如,在證券交易領(lǐng)域,任何一只股票的對(duì)價(jià)成交數(shù)據(jù)都是公開(kāi)的,并不具備私密性要求,每個(gè)用戶(hù)都可以查看這些數(shù)據(jù);而能否返回符合特定檢索模式要求的正確且完整的檢索結(jié)果才是用戶(hù)最為關(guān)心的。隨著越來(lái)越多的政府、企業(yè)和個(gè)人將自己的數(shù)據(jù)托管到云服務(wù)器,云服務(wù)器被攻擊造成的檢索結(jié)果不完整也越來(lái)越引起業(yè)界的關(guān)注。因此,在不考慮數(shù)據(jù)隱私性前提下,如何確保檢索結(jié)果的完整性是云計(jì)算技術(shù)研究和應(yīng)用中的一個(gè)重要問(wèn)題。
現(xiàn)有技術(shù)中有的方法是基于云服務(wù)器按照“半誠(chéng)實(shí)模型”方式提供服務(wù)這一假設(shè)的,不能驗(yàn)證由于系統(tǒng)錯(cuò)誤或者主動(dòng)減少計(jì)算開(kāi)銷(xiāo)等原因?qū)е碌挠?jì)算結(jié)果不完整;有的構(gòu)造驗(yàn)證碼信息復(fù)雜,并且當(dāng)數(shù)據(jù)使用者檢索top-k文檔時(shí),返回的驗(yàn)證碼信息冗余大,導(dǎo)致通信效率和重構(gòu)驗(yàn)證碼效率都比較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種面向云計(jì)算的可驗(yàn)證單關(guān)鍵詞top-k檢索方法。通過(guò)本發(fā)明提供的方法,數(shù)據(jù)使用者可以對(duì)檢索結(jié)果的k個(gè)文檔進(jìn)行驗(yàn)證,從而確定檢索結(jié)果是否被篡改或丟棄,確定結(jié)果的真實(shí)性和完整性。
一種面向云計(jì)算的可驗(yàn)證單關(guān)鍵詞top-k檢索方法,包括以下步驟:
數(shù)據(jù)擁有者構(gòu)造驗(yàn)證碼信息;對(duì)于關(guān)鍵詞集合中的每個(gè)關(guān)鍵詞,計(jì)算文檔集合中每個(gè)文檔與所述關(guān)鍵詞的相關(guān)度并排序,按照相關(guān)度排序順序構(gòu)造驗(yàn)證碼信息;
數(shù)據(jù)擁有者將文檔集合和驗(yàn)證碼信息發(fā)送到云服務(wù)器,供數(shù)據(jù)使用者檢索,所述云服務(wù)器處理所述數(shù)據(jù)使用者的檢索請(qǐng)求的過(guò)程如下:
s1、所述云服務(wù)器接收到所述數(shù)據(jù)使用者發(fā)來(lái)的檢索指令,所述檢索指令的參數(shù)為指定的文檔集合、關(guān)鍵詞和所述數(shù)據(jù)使用者需要檢索的文檔數(shù)量;
s2、所述云服務(wù)器根據(jù)所述指定的文檔集合和所述關(guān)鍵詞計(jì)算所述指定的文檔集合中與所述關(guān)鍵詞最相關(guān)的k個(gè)文檔,將所述文檔添加到檢索結(jié)果集合中;
s3、判斷所述檢索結(jié)果集合中的top-k文檔數(shù)量是否滿(mǎn)足數(shù)據(jù)使用者需要的文檔數(shù)量,如果是則將檢索結(jié)果文檔集合和文檔對(duì)應(yīng)的驗(yàn)證碼信息一起發(fā)送至數(shù)據(jù)使用者;否則返回步驟s2;
s4、數(shù)據(jù)使用者接收云服務(wù)器返回的檢索結(jié)果文檔集合,進(jìn)行以下操作:
s4-1、提取出top-k文檔和驗(yàn)證碼信息;
s4-2、檢查檢索結(jié)果中的文檔是否是k個(gè),如果是則繼續(xù)執(zhí)行步驟s4-3;否則檢索結(jié)果驗(yàn)證失敗,檢索結(jié)果遭到篡改、丟棄等攻擊,top-k檢索及驗(yàn)證過(guò)程結(jié)束;
s4-3、數(shù)據(jù)使用者計(jì)算返回的檢索結(jié)果文檔和檢索使用的關(guān)鍵詞之間的相關(guān)度得分并排序,根據(jù)該順序重構(gòu)驗(yàn)證碼信息;
s4-4、數(shù)據(jù)使用者比較云服務(wù)返回的檢索結(jié)果中的驗(yàn)證碼信息和重構(gòu)得到的驗(yàn)證碼信息是否相等,若不相等則檢索結(jié)果驗(yàn)證失敗,檢索結(jié)果遭到篡改、丟棄等攻擊,top-k檢索及驗(yàn)證過(guò)程結(jié)束;若相等則檢索結(jié)果驗(yàn)證通過(guò),是真實(shí)且完整的檢索結(jié)果,沒(méi)有經(jīng)過(guò)篡改、丟棄等攻擊,top-k檢索及驗(yàn)證過(guò)程結(jié)束。
本發(fā)明還提供一種面向云計(jì)算的可驗(yàn)證單關(guān)鍵詞top-k檢索方法,包括以下步驟:
云服務(wù)器接收數(shù)據(jù)擁有者發(fā)來(lái)的文檔集合和驗(yàn)證碼信息,所述的驗(yàn)證碼信息由以下步驟得到:對(duì)于關(guān)鍵詞集合中的每個(gè)關(guān)鍵詞,數(shù)據(jù)擁有者計(jì)算文檔集合中每個(gè)文檔與所述關(guān)鍵詞的相關(guān)度并排序,按照相關(guān)度排序順序構(gòu)造驗(yàn)證碼信息;
云服務(wù)器接收并處理數(shù)據(jù)使用者的檢索請(qǐng)求:
s1、所述云服務(wù)器接收到所述數(shù)據(jù)使用者發(fā)來(lái)的檢索指令,所述檢索指令的參數(shù)為指定的文檔集合、關(guān)鍵詞和所述數(shù)據(jù)使用者需要檢索的文檔數(shù)量;
s2、所述云服務(wù)器根據(jù)所述指定的文檔集合和所述關(guān)鍵詞計(jì)算所述指定的文檔集合中與所述關(guān)鍵詞最相關(guān)的k個(gè)文檔,將所述文檔添加到檢索結(jié)果集合中;
s3、判斷所述檢索結(jié)果集合中的top-k文檔數(shù)量是否滿(mǎn)足數(shù)據(jù)使用者需要的文檔數(shù)量,如果是則將檢索結(jié)果文檔集合和文檔對(duì)應(yīng)的驗(yàn)證碼信息一起發(fā)送至數(shù)據(jù)使用者;否則返回步驟s2;
s4、數(shù)據(jù)使用者接收云服務(wù)器返回的檢索結(jié)果文檔集合,進(jìn)行以下操作:
s4-1、提取出top-k文檔和驗(yàn)證碼信息;
s4-2、檢查檢索結(jié)果中的文檔是否是k個(gè),如果是則繼續(xù)執(zhí)行步驟s4-3;否則檢索結(jié)果驗(yàn)證失敗,檢索結(jié)果遭到篡改、丟棄等攻擊,top-k檢索及驗(yàn)證過(guò)程結(jié)束;
s4-3、數(shù)據(jù)使用者計(jì)算返回的檢索結(jié)果文檔和檢索使用的關(guān)鍵詞之間的相關(guān)度得分并排序,根據(jù)該順序重構(gòu)驗(yàn)證碼信息;
s4-4、數(shù)據(jù)使用者比較云服務(wù)返回的檢索結(jié)果中的驗(yàn)證碼信息和重構(gòu)得到的驗(yàn)證碼信息是否相等,若不相等則檢索結(jié)果驗(yàn)證失敗,檢索結(jié)果遭到篡改、丟棄等攻擊,top-k檢索及驗(yàn)證過(guò)程結(jié)束;若相等則檢索結(jié)果驗(yàn)證通過(guò),是真實(shí)且完整的檢索結(jié)果,沒(méi)有經(jīng)過(guò)篡改、丟棄等攻擊,top-k檢索及驗(yàn)證過(guò)程結(jié)束。
本發(fā)明的有益效果:
一、安全性分析
本發(fā)明考慮的是明文數(shù)據(jù)檢索結(jié)果的可驗(yàn)證性,因此本發(fā)明方法的安全性即為可驗(yàn)證性。
在top-k檢索與驗(yàn)證過(guò)程中,由于云服務(wù)器并不一定總是遵守半誠(chéng)實(shí)模型,可能不按照既定的協(xié)議提供數(shù)據(jù),或者數(shù)據(jù)的計(jì)算過(guò)程可能由于負(fù)載過(guò)重、軟件漏洞等問(wèn)題而出現(xiàn)差錯(cuò),導(dǎo)致返回給用戶(hù)的檢索結(jié)果不正確或不全面。而這種不完整的檢索結(jié)果要想通過(guò)數(shù)據(jù)使用者的完整性驗(yàn)證,必須修改對(duì)應(yīng)的驗(yàn)證碼信息,然而構(gòu)造驗(yàn)證碼信息使用的hmac密鑰是由數(shù)據(jù)使用者和數(shù)據(jù)擁有者共享,對(duì)云服務(wù)器保密,在云服務(wù)器不知道存儲(chǔ)密鑰的情況下,破解top-k文檔驗(yàn)證碼信息的復(fù)雜度等同于破解hmac算法復(fù)雜度。因此,合理選擇hmac算法(如sha-256等),就能保證云服務(wù)器無(wú)法破解檢索結(jié)果的完整性而不被數(shù)據(jù)使用者識(shí)別,從而保證數(shù)據(jù)使用者對(duì)檢索結(jié)果top-k文檔完整性驗(yàn)證。
二、通信代價(jià)分析
對(duì)于面向云計(jì)算的top-k檢索服務(wù),數(shù)據(jù)使用者真正需要的數(shù)據(jù)是根據(jù)檢索請(qǐng)求q=(ds,wq,k)返回的和wq最相關(guān)的k個(gè)文檔集合,而返回的驗(yàn)證碼信息hq,i是為了保證檢索結(jié)果top-k文檔的完整性,相對(duì)于數(shù)據(jù)使用者真正需要的top-k文檔來(lái)說(shuō),hq,i是為了完成檢索結(jié)果完整性驗(yàn)證而必須的冗余信息,因此,數(shù)據(jù)使用者希望達(dá)到相同安全性的同時(shí),驗(yàn)證碼信息要盡可能少。本發(fā)明使用檢索結(jié)果冗余度δr衡量驗(yàn)證碼信息長(zhǎng)度占返回檢索結(jié)果總長(zhǎng)度的比值。冗余度越低,額外通信開(kāi)銷(xiāo)越小。設(shè)數(shù)據(jù)使用者接收到云服務(wù)器返回的檢索結(jié)果數(shù)據(jù)為<ds,h’>,根據(jù)top-k檢索及驗(yàn)證部分可知云服務(wù)器返回k個(gè)檢索結(jié)果文檔和1個(gè)驗(yàn)證碼信息。與現(xiàn)有的方法相比,由于本發(fā)明返回的驗(yàn)證碼信息只包含1個(gè)hmac信息,而上述論文中提到方法需要返回k個(gè)hmac信息,若驗(yàn)證碼信息采用sha-256構(gòu)造,則每次節(jié)省通信開(kāi)銷(xiāo)為(k-1)×256bit,從而本發(fā)明有效地降低了由于添加驗(yàn)證碼信息在云服務(wù)器和du之間的帶來(lái)的冗余通信代價(jià)。
三、驗(yàn)證碼信息重構(gòu)代價(jià)分析
由通信代價(jià)分析部分可知,數(shù)據(jù)使用者每次檢索,返回的是k個(gè)最相關(guān)的文檔和1個(gè)驗(yàn)證碼信息,驗(yàn)證碼信息基于hmac構(gòu)造。那么在數(shù)據(jù)使用者接收到檢索結(jié)果后只需要重構(gòu)1個(gè)驗(yàn)證碼信息,相比于原有方法,可以減少(k-1)次驗(yàn)證碼信息構(gòu)建,因此本發(fā)明使得每次檢索驗(yàn)證碼信息的重構(gòu)代價(jià)有效降低。
附圖說(shuō)明
圖1為面向云計(jì)算的可驗(yàn)證單關(guān)鍵詞top-k檢索框架;
圖2為數(shù)據(jù)上傳過(guò)程的流程示意圖;
圖3為top-k檢索及驗(yàn)證過(guò)程的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本實(shí)施方式研究云環(huán)境下根據(jù)單關(guān)鍵詞進(jìn)行top-k文檔檢索,驗(yàn)證云端返回的k個(gè)文檔是否是和檢索使用的關(guān)鍵詞最相關(guān)的k個(gè)文檔,并且這k個(gè)文檔沒(méi)有被篡改或丟棄。假設(shè)云服務(wù)器記為cs,文檔集合中包含n個(gè)文檔,記為ds={d1,d2,…,dn},熱點(diǎn)關(guān)鍵詞集合中包含m個(gè)關(guān)鍵詞,記為w={w1,w2,w3,…,wm}。數(shù)據(jù)擁有者記為do,數(shù)據(jù)使用者記為du,g為生成驗(yàn)證碼信息使用的hmac密鑰,g由do和du共享,對(duì)cs保密。針對(duì)關(guān)鍵詞wq的文檔di的驗(yàn)證碼信息記為hq,i,score(wq,di)表示wq和di的相關(guān)度得分,
在實(shí)際應(yīng)用中,k<<n。顯然,對(duì)于任意兩個(gè)不同文檔di和dj,如果將文檔的id、創(chuàng)建時(shí)間等信息考慮進(jìn)來(lái),則能夠確保di和dj對(duì)于檢索關(guān)鍵詞的相關(guān)度不相等。因此,設(shè)ds中各文檔對(duì)于關(guān)鍵詞wq的相關(guān)度具有嚴(yán)格偏序關(guān)系,即對(duì)于查詢(xún)關(guān)鍵詞wq,任何兩個(gè)文檔和wq的相關(guān)度都不相等,且可以比較大小。
面向云計(jì)算的可驗(yàn)證單關(guān)鍵詞top-k檢索方法包括數(shù)據(jù)上傳和top-k檢索及驗(yàn)證兩個(gè)過(guò)程:
1、數(shù)據(jù)上傳
為了實(shí)現(xiàn)針對(duì)檢索結(jié)果完整性的驗(yàn)證,do在上傳文檔集合數(shù)據(jù)到cs時(shí),同時(shí)要附帶相關(guān)驗(yàn)證碼信息。在du獲得檢索結(jié)果文檔集合時(shí),能夠利用該驗(yàn)證碼信息驗(yàn)證檢索結(jié)果的完整性。下面給出了利用文檔與檢索關(guān)鍵詞之間相關(guān)度得分的偏序關(guān)系構(gòu)造驗(yàn)證碼信息的方法,并基于該方法給出數(shù)據(jù)上傳的具體過(guò)程,如圖2所示。
(1)采用詞頻(termfrequency,tf)度量一個(gè)關(guān)鍵詞wq和文檔di的相關(guān)度,詞頻反映的是單詞在單個(gè)文檔中的出現(xiàn)次數(shù),考慮到文檔長(zhǎng)度的不同,我們將詞頻標(biāo)準(zhǔn)化,得到關(guān)鍵詞w與文檔di相關(guān)度計(jì)算公式為:
其中,|di|是文檔長(zhǎng)度,di,w是w在di中出現(xiàn)次數(shù)。
(2)設(shè)ds={d1,d2,…,dn}中各文檔對(duì)于關(guān)鍵詞wq的相關(guān)度得分排序后得到
(3)按照(2)中的方法對(duì)關(guān)鍵詞集合w={w1,w2,…,wm}中的每一關(guān)鍵詞,分別構(gòu)造針對(duì)ds中每一個(gè)文檔的驗(yàn)證碼信息,并將文檔以及相應(yīng)的針對(duì)關(guān)鍵詞的驗(yàn)證碼信息一起上傳至cs,即:
(4)cs接收并存儲(chǔ)do發(fā)來(lái)的數(shù)據(jù)信息。
2.top-k檢索及驗(yàn)證
top-k檢索及驗(yàn)證主要由du和cs協(xié)作完成,du發(fā)送檢索指令至cs,然后cs根據(jù)指令要求執(zhí)行檢索處理,并返回相關(guān)結(jié)果,最后du驗(yàn)證返回結(jié)果的完整性,如圖3所示。具體過(guò)程如下:
(1)du將檢索指令q=(ds,wq,k)提交給cs,然后等待cs的返回結(jié)果。
(2)cs接收到q,查找包含關(guān)鍵詞wq的文檔編號(hào)列表,通過(guò)計(jì)算相關(guān)度得分最大的前k個(gè)文檔,構(gòu)成檢索結(jié)果文檔集合r,設(shè)r={d1,d2…,dk},且對(duì)于wq滿(mǎn)足
cs→du:<r,hq,k>
(3)du接收到cs返回的結(jié)果消息<ds,h>,其中ds為檢索結(jié)果文檔集合,h為驗(yàn)證碼信息,du執(zhí)行如下針對(duì)檢索結(jié)果的驗(yàn)證過(guò)程:
①檢查ds中是否包含k個(gè)文檔,若|ds|=k成立則轉(zhuǎn)驗(yàn)證步驟②,否則ds即為不滿(mǎn)足完整性要求的檢索結(jié)果,檢索失敗退出;
②設(shè)ds={d1,d2…,dk},對(duì)于wq滿(mǎn)足
在闡釋以上流程的基礎(chǔ)上,舉一典型實(shí)施例。設(shè)文檔集合ds={d1,d2,d3,d4},關(guān)鍵詞集合w={w1,w2},對(duì)于w1有