本發(fā)明涉及一種數(shù)據(jù)存儲(chǔ)和檢索方法,尤其涉及一種基于散列表方法的多公共云上的文件存儲(chǔ)及其檢索方法。
背景技術(shù):
::出于經(jīng)濟(jì)、效率和安全等方面的考慮,中小型經(jīng)濟(jì)社會(huì)組織正在把日漸增長的業(yè)務(wù)數(shù)據(jù)外包給專業(yè)的存儲(chǔ)服務(wù)供應(yīng)商,并選擇多個(gè)云服務(wù)商以獲得更好數(shù)據(jù)安全可用性。數(shù)據(jù)擁有者和實(shí)際操作者的分離情況促使了安全的分布式存儲(chǔ)和檢索需求的產(chǎn)生,同時(shí)也對信息安全保密技術(shù)提出了更高的要求。尤其是現(xiàn)在量子計(jì)算技術(shù)日新月異,并逐步實(shí)用化,發(fā)展抗量子攻擊并能高效存儲(chǔ)和檢索的技術(shù)越來越迫切?;诖耍哂锌沽孔庸粜蕴攸c(diǎn)的秘密共享技術(shù)成為基礎(chǔ)的數(shù)據(jù)分發(fā)及檢索方法成為后量子密碼研究中的一個(gè)重要方向。hadavi等人在2010年的一篇文章探索了“將數(shù)據(jù)庫外包作為一種服務(wù)”的框架模型。并用構(gòu)建b+樹的形式實(shí)現(xiàn)搜索。之后的文章改用了劃分多項(xiàng)式系數(shù)區(qū)間的形式來保證安全。但是這些文章檢索效率比較低,且已經(jīng)有文章指出來不安全,能被敵手攻破。技術(shù)實(shí)現(xiàn)要素:為克服現(xiàn)有技術(shù)的不足,本發(fā)明提出基于散列表方法的多公共云上的文件存儲(chǔ)及其檢索方法。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種基于散列表方法的多公共云上的文件存儲(chǔ)方法,包括步驟:s1:數(shù)據(jù)所有者將需要共享的文件加密后,上傳至客戶端;s2:客戶端對所有文件生成文件號(hào),并提取關(guān)鍵詞,得到包含關(guān)鍵詞和文件號(hào)關(guān)系的“關(guān)鍵詞/文件號(hào)”表;s3:將關(guān)鍵詞字符串轉(zhuǎn)換為整數(shù),并把該整數(shù)轉(zhuǎn)化后對應(yīng)到一個(gè)有限域的一個(gè)區(qū)間內(nèi);s4:對于第i個(gè)關(guān)鍵詞,在有限域的某一個(gè)區(qū)間內(nèi)隨機(jī)取得第i個(gè)關(guān)鍵詞存儲(chǔ)在第一個(gè)服務(wù)器端和第二個(gè)云服務(wù)器端的份額,通過關(guān)鍵密鑰計(jì)算第i個(gè)關(guān)鍵詞對應(yīng)的密鑰,定義一個(gè)二元哈希函數(shù)該函數(shù)有兩個(gè)輸入:{0,1}*為01形式的密鑰串,即關(guān)鍵詞對應(yīng)的密鑰,為整數(shù),即關(guān)鍵字的值,映射到的有限域中;隨機(jī)取一個(gè)數(shù)s*,計(jì)算hf2(第i個(gè)密鑰對應(yīng)的密鑰,第i個(gè)關(guān)鍵詞的值),得到s*對應(yīng)的關(guān)鍵詞的份額,以(第一個(gè)服務(wù)器號(hào),第i個(gè)關(guān)鍵詞在存儲(chǔ)在第一個(gè)服務(wù)器的份額)、(第二個(gè)服務(wù)器號(hào),第i個(gè)關(guān)鍵詞在存儲(chǔ)在第一個(gè)服務(wù)器的份額)和(s*,s*對應(yīng)的關(guān)鍵詞的份額)三個(gè)坐標(biāo)點(diǎn),通過拉格朗日插值構(gòu)建二階多項(xiàng)式,通過所述二階多項(xiàng)式,計(jì)算第i個(gè)關(guān)鍵詞存儲(chǔ)在其它云服務(wù)器端的份額,并將第i個(gè)關(guān)鍵詞存儲(chǔ)在每個(gè)云服務(wù)器端的份額上傳至對應(yīng)的云服務(wù)器,將s*存儲(chǔ)在本地客戶端;s5:將對應(yīng)的區(qū)間替換為整個(gè)有限域區(qū)間,將關(guān)鍵詞替換為文件號(hào),重復(fù)步驟s4,把每個(gè)文件號(hào)存儲(chǔ)在在每個(gè)云服務(wù)器端的份額上傳至對應(yīng)的云服務(wù)器;s6:將文件加密并分割,上傳到對應(yīng)的云服務(wù)器,同時(shí)生成文件號(hào)/服務(wù)器表,并將文件號(hào)/服務(wù)器表存儲(chǔ)在本地。進(jìn)一步地,步驟s1中需要共享的文件用aes進(jìn)行加密。進(jìn)一步地,步驟s3中關(guān)鍵詞字符串轉(zhuǎn)換為整數(shù)包括步驟s311:隨機(jī)取l比特的素?cái)?shù)p;s312:通過ascii對應(yīng)表,將第i個(gè)關(guān)鍵詞字符串的各個(gè)字母轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),并前后對應(yīng)拼接在一起組合成關(guān)鍵詞字符串二進(jìn)制數(shù)據(jù);s313:如所述關(guān)鍵詞字符串二進(jìn)制數(shù)據(jù)長度不是l的倍數(shù),則在所述關(guān)鍵詞字符串二進(jìn)制數(shù)據(jù)前補(bǔ)1直至其長度恰好為l的倍數(shù),并稱該數(shù)為關(guān)鍵詞二進(jìn)制數(shù)據(jù);s314:將所述關(guān)鍵詞二進(jìn)制數(shù)據(jù)的每l比特轉(zhuǎn)換為十進(jìn)制數(shù);s315:將得到的所有十進(jìn)制數(shù)相乘,得到轉(zhuǎn)換后的關(guān)鍵詞整形數(shù)據(jù);s316:將所述關(guān)鍵詞整形數(shù)據(jù)modp,即得到關(guān)鍵詞轉(zhuǎn)換的整數(shù)。更近一步地,步驟s3中把所述整數(shù)轉(zhuǎn)化后對應(yīng)到一個(gè)有限域的一個(gè)區(qū)間內(nèi)包括步驟s321:取與所述步驟s311相同的素?cái)?shù)p;s322:隨機(jī)取得素?cái)?shù)mp>m·p,作為有限域,其中m為關(guān)鍵詞個(gè)數(shù);s323:將dom|mp|=[0,mp-1]分割為m個(gè)相等的連續(xù)分區(qū),包括s324:定義一個(gè)函數(shù)hf1,使得將第i個(gè)關(guān)鍵詞的值對應(yīng)到區(qū)間范圍內(nèi)。一種基于散列表方法的多公共云上的文件查詢方法,包括步驟s1:用戶提交查詢第i個(gè)關(guān)鍵詞,并從數(shù)據(jù)所有者處獲取所述第i個(gè)關(guān)鍵詞對應(yīng)的密鑰;s2:代理服務(wù)器將關(guān)鍵詞轉(zhuǎn)換為數(shù)值,翻譯成查詢請求,查找對應(yīng)區(qū)間內(nèi)的上界和下界之中是否有該數(shù)值,并將所述查詢請求發(fā)送至服務(wù)器1和服務(wù)器2;s3:服務(wù)器1和服務(wù)器2返回存儲(chǔ)在服務(wù)器1和服務(wù)器2的關(guān)鍵詞份額和文件號(hào)份額;s4:通過(第一個(gè)服務(wù)器號(hào),第i個(gè)關(guān)鍵詞在存儲(chǔ)在第一個(gè)服務(wù)器的份額)、(第二個(gè)服務(wù)器號(hào),第i個(gè)關(guān)鍵詞在存儲(chǔ)在第一個(gè)服務(wù)器的份額)和(s*,s*對應(yīng)的關(guān)鍵詞的份額)三個(gè)坐標(biāo)點(diǎn),重構(gòu)二階多項(xiàng)式,計(jì)算出第i個(gè)關(guān)鍵詞存儲(chǔ)在其它云服務(wù)器端的份額,對應(yīng)的云服務(wù)器端返回對應(yīng)的文件號(hào)存儲(chǔ)在該云服務(wù)器端的份額;s5:由第i個(gè)關(guān)鍵詞在所有云服務(wù)器短的份額,計(jì)算第i個(gè)關(guān)鍵詞對應(yīng)的文件號(hào);s6:由“文件號(hào)/服務(wù)器”表,從相應(yīng)的云服務(wù)器取回分割的文件數(shù)據(jù),整合并解密;s7:代理服務(wù)器將處理好的文件返回給用戶。本發(fā)明的有益效果在于,與現(xiàn)有技術(shù)相比,本發(fā)明能保證上傳到云端服務(wù)器里的文件的安全,且能防止云端服務(wù)器供應(yīng)商偷窺文件信息,且能通過存在服務(wù)器的虛擬點(diǎn),驗(yàn)證是否有惡意服務(wù)器篡改數(shù)據(jù)。附圖說明圖1是本發(fā)明一種基于散列表方法的多公共云上的文件存儲(chǔ)方法流程圖;圖2是本發(fā)明一種基于散列表方法的多公共云上的文件查詢方法流程圖;圖3是本發(fā)明一個(gè)實(shí)施例的系統(tǒng)框架圖;圖4是本發(fā)明中關(guān)鍵詞轉(zhuǎn)換示例圖;圖5是本發(fā)明中有限域分割示例圖;圖6是本發(fā)明中關(guān)鍵詞共享示例圖;圖7是本發(fā)明中文件號(hào)共享示例圖;圖8是本發(fā)明一個(gè)應(yīng)用示例圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。請參見圖1,本發(fā)明一種基于散列表方法的多公共云上的文件存儲(chǔ)方法,包括步驟:s1:數(shù)據(jù)所有者將需要共享的文件加密后,上傳至客戶端;s2:客戶端對所有文件生成文件號(hào),并提取關(guān)鍵詞,得到包含關(guān)鍵詞和文件號(hào)關(guān)系的“關(guān)鍵詞/文件號(hào)”表;s3:將關(guān)鍵詞字符串轉(zhuǎn)換為整數(shù),并把該整數(shù)轉(zhuǎn)化后對應(yīng)到一個(gè)有限域的一個(gè)區(qū)間內(nèi);s4:對于第i個(gè)關(guān)鍵詞,在第i個(gè)關(guān)鍵詞字符串對應(yīng)的區(qū)間內(nèi),隨機(jī)取得第i個(gè)關(guān)鍵詞存儲(chǔ)在第一個(gè)服務(wù)器端和第二個(gè)云服務(wù)器端的份額,通過關(guān)鍵密鑰計(jì)算第i個(gè)關(guān)鍵詞對應(yīng)的密鑰,定義一個(gè)二元哈希函數(shù)該函數(shù)有兩個(gè)輸入:{0,1}*為01形式的密鑰串,即關(guān)鍵詞對應(yīng)的密鑰,為整數(shù),即關(guān)鍵字的值,映射到的有限域中;隨機(jī)取一個(gè)數(shù)s*,計(jì)算hf2(第i個(gè)密鑰對應(yīng)的密鑰,第i個(gè)關(guān)鍵詞的值),得到s*對應(yīng)的關(guān)鍵詞的份額,以(第一個(gè)服務(wù)器號(hào),第i個(gè)關(guān)鍵詞在存儲(chǔ)在第一個(gè)服務(wù)器的份額)、(第二個(gè)服務(wù)器號(hào),第i個(gè)關(guān)鍵詞在存儲(chǔ)在第一個(gè)服務(wù)器的份額)和(s*,s*對應(yīng)的關(guān)鍵詞的份額)三個(gè)坐標(biāo)點(diǎn),通過拉格朗日插值構(gòu)建二階多項(xiàng)式,通過所述二階多項(xiàng)式,計(jì)算第i個(gè)關(guān)鍵詞存儲(chǔ)在其它云服務(wù)器端的份額,并將第i個(gè)關(guān)鍵詞存儲(chǔ)在每個(gè)云服務(wù)器端的份額上傳至對應(yīng)的云服務(wù)器,將s*存儲(chǔ)在本地客戶端;s5:將對應(yīng)的區(qū)間替換為有限域,將關(guān)鍵詞替換為文件號(hào),重復(fù)步驟s4,把每個(gè)文件號(hào)存儲(chǔ)在在每個(gè)云服務(wù)器端的份額上傳至對應(yīng)的云服務(wù)器;s6:將文件加密并分割成與云服務(wù)器相同數(shù)量的份數(shù),上傳到對應(yīng)的云服務(wù)器,同時(shí)生成文件號(hào)/服務(wù)器表,并將文件號(hào)/服務(wù)器表存儲(chǔ)在本地。本發(fā)明涉及ses_fs,ses_fs是基于(k,n)門限秘密共享方案的分布式云上的外包文件系統(tǒng),如圖3所示。數(shù)據(jù)所有者將多個(gè)文件加密后上傳至n個(gè)云服務(wù)器上。授權(quán)用戶將需要查詢的關(guān)鍵詞發(fā)送至客戶端,客戶端對關(guān)鍵詞進(jìn)行處理后,分別向n個(gè)云服務(wù)器發(fā)送不同的查詢請求,再將云服務(wù)器返回的結(jié)果進(jìn)行處理,得到用戶需要查詢的文件返回給用戶。表1列出了ses_fs中所要用到的參數(shù)。表1ses_fs參數(shù)本發(fā)明的“關(guān)鍵詞表”是實(shí)現(xiàn)加密后可搜索的關(guān)鍵。假設(shè)有多個(gè)文件f1,f2,f3…,每個(gè)文件有唯一對應(yīng)的文件號(hào)碼,每個(gè)文件又對應(yīng)有相應(yīng)的關(guān)鍵詞,則構(gòu)造如下關(guān)鍵詞與文件號(hào)的對應(yīng)表(簡稱“關(guān)鍵詞表”(key/valuetable)),表2是一個(gè)關(guān)鍵詞所對應(yīng)文件號(hào)的查詢檢索表。假設(shè)“kw1”是關(guān)鍵詞“學(xué)?!保瑒t搜索“學(xué)?!睂?yīng)的關(guān)鍵詞在1、2號(hào)文件里。該表的生成不是本文討論的重點(diǎn)。表2key/value表的例子關(guān)鍵詞文件號(hào)kw11,2kw23,4kw35,6...…在ses_fs中,用aes加密每個(gè)文件f1,f2,f3…,并上傳到云服務(wù)器上,由于在服務(wù)器中每個(gè)文件是加密的,只會(huì)顯示該文件的文件號(hào),云服務(wù)器供應(yīng)商所能看到的只有加密的文件和文件號(hào),而無法得知任何信息。因此實(shí)現(xiàn)可搜索的關(guān)鍵就是用2.1節(jié)中的“關(guān)鍵詞表”。為了方便理解,后文都采用三個(gè)云服務(wù)器作例子。表3是一個(gè)例子,表示“加密后的文件”上傳到相應(yīng)服務(wù)器的對應(yīng)表,在搜索查詢文件的過程中,會(huì)使用該表在云服務(wù)器中取回要查詢的文件。如表2所示,“1”代表加密后的文件已經(jīng)上傳到了對應(yīng)的服務(wù)器上,0代表沒有上傳到該服務(wù)器。如文件f1存在了云服務(wù)器server1和server3上。每個(gè)加密后的文件存在哪些服務(wù)器上,所形成的對應(yīng)表,不是本文討論的重點(diǎn)。表3file/server表的例子文件server1server2server3f1101f2011…………fn110“關(guān)鍵詞表”是云端服務(wù)器中的文件號(hào)與關(guān)鍵詞的唯一聯(lián)系,要想在云端服務(wù)器中搜索關(guān)鍵詞,就需要通過在“關(guān)鍵詞表”中,搜索第一列關(guān)鍵詞來取得第二列對應(yīng)的文件號(hào),得到文件號(hào)后,再通過file/server表,從不同的服務(wù)器中拿到關(guān)鍵詞對應(yīng)的文件。因此“關(guān)鍵詞表”的保密性非常重要,我們就需要對“關(guān)鍵詞表”使用秘密共享的方法進(jìn)行加密?!瓣P(guān)鍵詞表”有兩個(gè)屬性:“關(guān)鍵詞”和“文件號(hào)”。在實(shí)際情況中我們只會(huì)通過“關(guān)鍵詞”來檢索“文件號(hào)”,因此,“關(guān)鍵詞和文件號(hào)”使用了不同的共享和重構(gòu)方法。關(guān)鍵詞共享重構(gòu)和驗(yàn)證:假設(shè)有m個(gè)關(guān)鍵詞kwi(1≤i≤m),在大多數(shù)情況下,關(guān)鍵詞的數(shù)據(jù)類型為string,而秘密共享所構(gòu)造的多項(xiàng)式是都是數(shù)值形式,因此我們需要將關(guān)鍵詞的數(shù)據(jù)類型全部轉(zhuǎn)換為數(shù)值型。我們給出一個(gè)算法hfstoi用以將每個(gè)關(guān)鍵字轉(zhuǎn)換為整數(shù)值。且對轉(zhuǎn)化后的數(shù)值modp,即轉(zhuǎn)化對應(yīng)到有限域中(表示一個(gè)有限域,是整數(shù),p為素?cái)?shù))。關(guān)鍵詞字符串轉(zhuǎn)換為整數(shù)包括步驟s311:隨機(jī)取l比特的素?cái)?shù)p;s312:通過ascii對應(yīng)表,將kw的各個(gè)字母轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),并前后對應(yīng)拼接在一起組合成bkw;s313:若bkw的值不是l比特的倍數(shù),在bkw前補(bǔ)1直至其長度恰好為l的倍數(shù)。稱該數(shù)為fbkw;s314:將fbkw每l比特轉(zhuǎn)換為十進(jìn)制數(shù);s315:將所有得到的十進(jìn)制數(shù)相乘,得到ikwi;s316:ikwimodp即為kw轉(zhuǎn)換后的整型數(shù)值。請參見圖4,圖4是關(guān)鍵詞轉(zhuǎn)換示例圖,展示了一個(gè)string類型的“kw”轉(zhuǎn)換成數(shù)值559的例子:1.其中素?cái)?shù)p取2017,l為11-bit;2.通過ascii,“k”轉(zhuǎn)化成了01101011,“w”轉(zhuǎn)化成了01110111,bkw為0110101101110111;3.一共16bit,則補(bǔ)上6個(gè)1,組合1111110110101101110111,湊齊到22bit,且是l的11-bit的倍數(shù);4.2029乘以887得到1799723;5.1799723mod2017得到559.把所述整數(shù)轉(zhuǎn)化后對應(yīng)到一個(gè)有限域的一個(gè)區(qū)間內(nèi)包括步驟:s321:置p的值與上一節(jié)中的p相同。s322:隨機(jī)取得素?cái)?shù)mp>m·p,作為s323:將dom|mp|=[0,mp-1]分割為m個(gè)相等的連續(xù)分區(qū),包括s324:定義一個(gè)函數(shù)hf1,使得即kwi對應(yīng)到了區(qū)間范圍內(nèi)。例如:即kw1經(jīng)過hf1后,對應(yīng)到了區(qū)間其余關(guān)鍵詞kw一一對應(yīng),如此類推,該步驟是為了方便查詢,因?yàn)槊總€(gè)關(guān)鍵詞對應(yīng)到唯一的區(qū)間里。圖5是本發(fā)明中有限域分割示例圖,它類似于高效查詢過程的相應(yīng)關(guān)系表。關(guān)鍵詞共享的過程如下:為了在n個(gè)云服務(wù)器之間加密和共享記錄,我們需要n個(gè)點(diǎn)來構(gòu)造k-1階多項(xiàng)式f(x),使得f(x)的某個(gè)值等于記錄。為(k,n)門限秘密共享選擇k和n的值對系統(tǒng)的可用性和容錯(cuò)方面具有一些影響。為了方便說明,用三個(gè)服務(wù)器作為例子,因此,我們定義一個(gè)(3,3)門限秘密共享方案,以及一般形式為f(x)=ax2+bx+c的2階多項(xiàng)式,并隨機(jī)定義分配向量x={s1,s2,s*,s3},其中s1,s2,s3分別作為三個(gè)云服務(wù)器的橫坐標(biāo)值。s*是一個(gè)特殊的橫坐標(biāo)點(diǎn),用于計(jì)算構(gòu)造。如圖6所示,用如下算法algosskeyword獨(dú)立地對關(guān)鍵字kwi進(jìn)行加密:1.在kwi對應(yīng)的區(qū)間domi內(nèi)隨機(jī)選取兩個(gè)值2.計(jì)算keyi=h0(masterkey,kwi)。masterkey是一個(gè)關(guān)鍵密鑰,通過該masterkey計(jì)算出每個(gè)kw所對應(yīng)的密鑰3.定義一個(gè)二元哈希函數(shù)該函數(shù)有兩個(gè)輸入:{0,1+*為01形式的密鑰串,即key密鑰,為整數(shù),即kw,映射到的有限域中4.計(jì)算通過第2節(jié)得到的key,計(jì)算對應(yīng)關(guān)鍵詞的份額。5.通過拉格朗日插值構(gòu)建二階多項(xiàng)式其中6.計(jì)算第3個(gè)份額再代入s3的坐標(biāo),得到存在第三個(gè)服務(wù)器上的份額7.作為kwi的份額共享到3個(gè)云服務(wù)器server1,server2,server3上。關(guān)鍵詞的查詢和驗(yàn)證:主要用于驗(yàn)證云服務(wù)器是否是惡意的。所有的記錄kwi會(huì)由如下算法algostringtoint單獨(dú)地重構(gòu)。1.授權(quán)用戶從數(shù)據(jù)所有者處獲取keyi。2.從server1,server2,上獲取3.借助哈希函數(shù)hf2計(jì)算出hf2(keyi,kwi)。4.通過{(s*,hf2(keyi,kwi))}3個(gè)點(diǎn)重構(gòu)二階多項(xiàng)式(equation1)。5.計(jì)算出并且發(fā)送到server3,如果服務(wù)器3上檢索到了即查詢成功,則返回correct,驗(yàn)證了服務(wù)器沒有惡意篡改數(shù)值,返回的是正確的數(shù)值,否則返回fail。filenumberfn_j表示關(guān)鍵字所對應(yīng)的文件號(hào),因此我們檢索關(guān)鍵字名稱,而不檢索文件號(hào)。為了簡便,我們同樣構(gòu)造一個(gè)一般式為f(x)=ax2+bx+c的2階多項(xiàng)式,將文件號(hào)共享到3個(gè)云服務(wù)器上,如圖7所示。文件號(hào)的共享過程為:1.獲取分配向量x={s1,s2,s*,s3}作為每個(gè)云服務(wù)器的橫坐標(biāo)值。2.從中隨機(jī)選取兩個(gè)值3.通過(s*,fnj)3個(gè)點(diǎn)拉格朗日插值構(gòu)造一個(gè)二階多項(xiàng)式4.計(jì)算第3個(gè)份額5.將作為fnj的份額共享到3個(gè)云服務(wù)器上。文件號(hào)重構(gòu)過程包括步驟:1.從server1,server2,server3上取得2.通過拉格朗日插值公式計(jì)算所以整個(gè)ses_fs文件上傳具體步驟如下:s1:數(shù)據(jù)所有者將需要共享的用aes加密后,上傳至客戶端。s2:客戶端對所有文件生成文件號(hào)并提取關(guān)鍵詞,得到包含關(guān)鍵詞和文件號(hào)關(guān)系的key/value表(如表3)。s3:將關(guān)鍵詞字符串kw轉(zhuǎn)換為整數(shù),映射到對應(yīng)的區(qū)間。s4:在kw對應(yīng)區(qū)間內(nèi)隨機(jī)取得的值。取分配向量x={s1,s2,s*,s3},由(s*,hf2(keyi,kwi))3點(diǎn)構(gòu)造一個(gè)二階多項(xiàng)式,再代入s3的值從而得到的值。將分別上傳至云服務(wù)器。s5:分配向量x不變,有限域內(nèi)隨機(jī)取得由(s*,fnj)3點(diǎn)構(gòu)造二階多項(xiàng)式,計(jì)算得將分別上傳至云服務(wù)器。s6:將文件加密并分割成k份,上傳至k個(gè)云服務(wù)器,同時(shí)生成file/server表(如表1)存儲(chǔ)在本地。查詢?yōu)樯蟼鞯哪孢^程,ses_fs文件查詢的具體流程如下:s1:用戶提交關(guān)鍵詞查詢請求,并從數(shù)據(jù)所有者處獲取keyi。s2:代理服務(wù)器將關(guān)鍵詞轉(zhuǎn)換成數(shù)值,翻譯成查詢請求并發(fā)送至server1,server2。s3:服務(wù)器返回s4:通過(s*,hf2(keyi,kwi))3個(gè)點(diǎn)重構(gòu)二階多項(xiàng)式計(jì)算并檢索server3得到s5:由計(jì)算得到kw對應(yīng)的文件號(hào)。s6:由file/server表(如表4)從相應(yīng)服務(wù)器取回分割的文件數(shù)據(jù),整合并解密。表4file/server表的例子文件server1server2server3f1101f2011…………fn110s7:代理服務(wù)器將處理好的文件返回用戶。圖8是本發(fā)明的一個(gè)應(yīng)用示例:某醫(yī)院有醫(yī)患數(shù)據(jù)共15t,為了節(jié)約成本,方便管理,將所有數(shù)據(jù)分別共享在百度云、阿里云、華為云三個(gè)服務(wù)商的云服務(wù)器上,其中每個(gè)云存放5t的數(shù)據(jù)。院方通過客戶端上傳數(shù)據(jù)文件后,客戶端基于ses_fs對數(shù)據(jù)進(jìn)行處理并分別存至云服務(wù)器中。本醫(yī)院所有授權(quán)的醫(yī)護(hù)人員可以通過客戶端查詢各種病癥的治療方案記錄及患者的病歷資料,而授權(quán)管理人員可以檢索醫(yī)院相關(guān)管理信息。此外,該醫(yī)院可將部分病癥治療記錄與其余醫(yī)院共享,授權(quán)醫(yī)院同樣可通過客戶端查詢到需要的信息。該過程中,在云服務(wù)商無法知曉數(shù)據(jù)內(nèi)容,患者的所有隱私都是受到保護(hù)的。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本
技術(shù)領(lǐng)域:
:的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。當(dāng)前第1頁12當(dāng)前第1頁12