亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種云計(jì)算中安全最近鄰檢索方法與流程

文檔序號(hào):11432270閱讀:336來(lái)源:國(guó)知局
一種云計(jì)算中安全最近鄰檢索方法與流程

本發(fā)明屬于云計(jì)算、信息安全領(lǐng)域,尤其涉及一種云計(jì)算中安全最近鄰檢索方法。



背景技術(shù):

最近鄰查詢(xún)是很多領(lǐng)域中的基礎(chǔ)問(wèn)題之一,隨著云計(jì)算和大數(shù)據(jù)時(shí)代的到來(lái),把數(shù)據(jù)外包到云服務(wù)器變得非常流行,但是存儲(chǔ)在云中的數(shù)據(jù)有可能被泄露和篡改,給數(shù)據(jù)的安全和隱私帶來(lái)了巨大威脅,因此如何安全高效地進(jìn)行最近鄰查詢(xún)是迫切需要解決的難題。在現(xiàn)有技術(shù)中,如基于保序加密的安全最近鄰查詢(xún)方法、一種非對(duì)稱(chēng)數(shù)量積保持的加密方法(aspe)等,都不可以抵抗選擇性明文攻擊,數(shù)據(jù)的安全與隱私得不到保證;還有一類(lèi)方法基于非對(duì)稱(chēng)加密并且需要線性級(jí)的查詢(xún)時(shí)間,有的方法執(zhí)行一次查詢(xún)需要用戶(hù)和云服務(wù)器進(jìn)行多次通訊,隨著數(shù)據(jù)量的增大,查詢(xún)所需時(shí)間會(huì)越來(lái)越長(zhǎng),給用戶(hù)帶來(lái)不好的體驗(yàn),還有一類(lèi)方法需要依賴(lài)于安全的硬件,使得這類(lèi)方法很難被推廣。

綜上所述,現(xiàn)有技術(shù)存在的問(wèn)題是:現(xiàn)有的技術(shù)無(wú)法同時(shí)保證安全性和高效性。安全最近鄰查詢(xún)的主要難點(diǎn)在于:為了保證數(shù)據(jù)安全性,數(shù)據(jù)擁有者需要先對(duì)數(shù)據(jù)進(jìn)行編碼和加密,然后外包給云服務(wù)器。用戶(hù)在需要查詢(xún)數(shù)據(jù)的時(shí)候,同樣需要對(duì)查詢(xún)條件進(jìn)行加密,云服務(wù)器需要在密文條件下進(jìn)行計(jì)算,最后返回給用戶(hù)加密的查詢(xún)結(jié)果。由于數(shù)據(jù)量非常大,需要設(shè)計(jì)安全高效的索引結(jié)構(gòu),構(gòu)建出不可區(qū)分的加密索引?,F(xiàn)有的技術(shù)不能夠保證安全性和高效性的原因一方面是其數(shù)據(jù)結(jié)構(gòu)和算法不夠安全,攻擊者能通過(guò)選擇性明文攻擊等方式獲取數(shù)據(jù)信息或者查詢(xún)信息,另一方面就是其索引不夠高效,執(zhí)行查詢(xún)操作的時(shí)間復(fù)雜度高,導(dǎo)致用戶(hù)在查詢(xún)數(shù)據(jù)的時(shí)候需要很長(zhǎng)時(shí)間。



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

針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供了一種云計(jì)算中安全最近鄰檢索方法。

本發(fā)明是這樣實(shí)現(xiàn)的,一種云計(jì)算中安全最近鄰檢索方法,所述云計(jì)算中安全最近鄰檢索方法采用voronoi圖對(duì)2-d空間劃分;采用兩個(gè)數(shù)組構(gòu)建單窩布魯姆過(guò)濾器和多窩魯姆過(guò)濾器兩種安全數(shù)據(jù)結(jié)構(gòu),用多窩布魯姆過(guò)濾器來(lái)構(gòu)建不可區(qū)分的索引,單窩布魯姆過(guò)濾器用來(lái)構(gòu)建陷門(mén),從而實(shí)現(xiàn)亞線性級(jí)的查詢(xún)時(shí)間,并達(dá)到ind-cpa的安全要求;

所述voronoi圖對(duì)2-d空間劃分記2-d空間數(shù)據(jù)集s={d1,d2,···,dn},2-d空間為ω;具體包括:

第一步,根據(jù)已有數(shù)據(jù)集s,構(gòu)建出voronoi圖v,v由n個(gè)不相交的凸多邊形構(gòu)成,記為{p1,p2,···,pn};

第二步,待劃分的區(qū)域?yàn)閞,r的初始值為ω,隨機(jī)選取x維或者y維,把r劃分為兩個(gè)矩形r1和r2,保證max(p(r1∩ω),p(r2∩ω))最小,其中p(ri∩ω)表示ω中被ri覆蓋的凸多邊形的個(gè)數(shù),i=1或i=2;

第三步,遞歸執(zhí)行第二步,對(duì)于每個(gè)矩形r,和劃分后的矩形r1,r2滿(mǎn)足以下條件:max(p(r1∩ω),p(r2∩ω))=p(r),則終止劃分,其中p(r)表示ω中被r覆蓋的凸多邊形的個(gè)數(shù);

采用q和d表示兩個(gè)數(shù)組,長(zhǎng)度都為nc,q用來(lái)構(gòu)建布魯姆過(guò)濾器,d用來(lái)構(gòu)建布魯姆過(guò)濾器,sq表示待存入q中的元素集合,sd表示待存入d中的元素集合;nc≥1.2×|sq|;用h1,h2,···,hm表示m個(gè)hash函數(shù)(m≥2),對(duì)于一個(gè)輸入的元素,每個(gè)hash函數(shù)都輸出[0,nc-1]中的一個(gè)位置id,用h1,h2,···,hk表示另外k個(gè)不同的hash函數(shù),對(duì)于一個(gè)輸入的元素,輸出[0,w-1]中的一個(gè)位置id,其中w表示一個(gè)整數(shù)的位數(shù)。

進(jìn)一步,所述q的構(gòu)建方法如下:

第一步,把q中的每個(gè)單元qi都初始化為0;

第二步,對(duì)于sq中的每個(gè)元素ei,計(jì)算出h1(ei),h2(ei),···,hm(ei),即ei的m個(gè)可能存儲(chǔ)的位置,其中,0≤i<|sq|;

第三步,建立一個(gè)從sq到q的二部圖bigraph,利用匈牙利算法,為sq中的每一個(gè)元素找到在q中的一個(gè)唯一的位置;

第四步,對(duì)于q中的每個(gè)單元qi,如果e,滿(mǎn)足i=bigraph(e),計(jì)算h1(e),h2(e),···,hk(e),把qi中這k位設(shè)為1,其中,0≤i<nc,e為sq中任意元素。

進(jìn)一步,所述d的構(gòu)建方法如下:

第一步,把d中的每個(gè)單元di都初始化為0;

第二步,對(duì)于sd中的每個(gè)元素ei,計(jì)算出h1(ei),h2(ei),···,hm(ei),其中,0≤i<|sq|;

第三步,對(duì)于d中的每個(gè)單元di,如果e,滿(mǎn)足i=hj(e),計(jì)算h1(e),h2(e),···,hk(e),把di中這k個(gè)位置設(shè)為1,其中,0≤i<nc,1≤j<m,e為sq中任意元素。

進(jìn)一步,采用安全索引構(gòu)建方法,構(gòu)建出索引樹(shù),具體包括:

第一步,對(duì)于待劃分的區(qū)域r,用前面介紹的2-d空間劃分方法劃分,r被按t維劃分為r1和r2,t為x或者y,r1和r2在t維上的范圍為r1:r2:對(duì)于每一個(gè)范圍r,r1和r2,把r轉(zhuǎn)化為一個(gè)前綴集合s,然后對(duì)于s中的每一個(gè)元素p,都與t的標(biāo)簽連接起來(lái),構(gòu)建一個(gè)布魯姆過(guò)濾器,內(nèi)部節(jié)點(diǎn)中兩個(gè)multi-homing布魯姆過(guò)濾器的左右順序是隨機(jī)排列的,左邊的用表示,右邊的用表示;如果r1和r2不需要繼續(xù)劃分,則分別把r1和r2中所覆蓋的凸多邊形所對(duì)應(yīng)的點(diǎn)用cpa加密算法進(jìn)行加密,構(gòu)建葉子節(jié)點(diǎn),分別指向所表示區(qū)域?qū)?yīng)的加密的葉子節(jié)點(diǎn);如果r1和r2需要繼續(xù)劃分,分別指向所表示區(qū)域,然后執(zhí)行第二步;

第二步,對(duì)r1和r2分別繼續(xù)執(zhí)行第一步。

進(jìn)一步,給定一個(gè)查詢(xún)q={qx,qy},生成對(duì)應(yīng)的陷門(mén),具體包括:

第一步,把qx和qy轉(zhuǎn)為為兩個(gè)前綴集合f(qx)和f(qy);

第二步,把f(qx)中的每一個(gè)前綴和x維的標(biāo)簽連接起來(lái),把f(qy)中的每一個(gè)前綴和y維的標(biāo)簽連接起來(lái),運(yùn)用前面提出的single-homing布魯姆過(guò)濾器的構(gòu)建方法,創(chuàng)建出布魯姆過(guò)濾器

進(jìn)一步,給定一個(gè)q,客戶(hù)端利用陷門(mén)生成方法生成對(duì)應(yīng)的陷門(mén)發(fā)送給服務(wù)器,服務(wù)器通過(guò)計(jì)算返回給客戶(hù)端加密的最近鄰點(diǎn),具體算法如下:

輸入:索引樹(shù)i,陷門(mén)

輸出:q的最近鄰。

進(jìn)一步包括:

(1)首先計(jì)算如果執(zhí)行(2),然后計(jì)算如果執(zhí)行(3);

(2)如果i是葉子節(jié)點(diǎn),輸出i.left->data,否則,把i.left作為索引,執(zhí)行(1);

(3)如果i是葉子節(jié)點(diǎn),輸出i.right->data,否則,把i.right作為索引,執(zhí)行(1)。

本發(fā)明的優(yōu)點(diǎn)及積極效果為:為了保證數(shù)據(jù)的安全性,將2-d安全最近鄰查詢(xún)問(wèn)題轉(zhuǎn)為判斷點(diǎn)是否在某個(gè)范圍內(nèi)的問(wèn)題,進(jìn)而轉(zhuǎn)化為了兩個(gè)集合是否相交的問(wèn)題。本發(fā)明基于voronoi圖的2-d空間劃分方案、單窩布魯姆過(guò)濾器和多窩布魯姆過(guò)濾器兩種數(shù)據(jù)結(jié)構(gòu),保證服務(wù)器在不知道數(shù)據(jù)真實(shí)值和查詢(xún)的真實(shí)值的情況下進(jìn)行最近鄰查詢(xún),滿(mǎn)足了ind-cpa安全要求,并且達(dá)到亞線性級(jí)查詢(xún)時(shí)間(在1000萬(wàn)條數(shù)據(jù)的情況下查詢(xún)時(shí)間小于1毫秒),現(xiàn)有的方法無(wú)法滿(mǎn)足ind-cpa安全級(jí)別,同時(shí)需要較長(zhǎng)的查詢(xún)時(shí)間(如一種現(xiàn)有的基于非對(duì)稱(chēng)加密的技術(shù),對(duì)于一個(gè)僅有1萬(wàn)條數(shù)據(jù)記錄的數(shù)據(jù)集,查詢(xún)時(shí)間就需要幾個(gè)小時(shí))。

附圖說(shuō)明

圖1是本發(fā)明實(shí)施例提供的云計(jì)算中安全最近鄰檢索方法流程圖。

圖2是本發(fā)明實(shí)施例提供的云計(jì)算中安全最近鄰檢索方法具體應(yīng)用示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。

如圖1所示,本發(fā)明實(shí)施例提供的云計(jì)算中安全最近鄰檢索方法包括以下步驟:

s101:采用voronoi圖對(duì)2-d空間劃分;

s102:采用兩個(gè)數(shù)組構(gòu)建單窩(single-homing)布魯姆過(guò)濾器和多窩(multi-homingzh)布魯姆過(guò)濾器兩種安全數(shù)據(jù)結(jié)構(gòu);

s103:構(gòu)建出一顆索引樹(shù),保證實(shí)現(xiàn)亞線性級(jí)的查詢(xún)時(shí)間;

s104:采用安全最近鄰查詢(xún)算法,客戶(hù)端利用陷門(mén)生成方法生成對(duì)應(yīng)的陷門(mén),發(fā)送給服務(wù)器,服務(wù)器通過(guò)計(jì)算返回給客戶(hù)端加密的最近鄰點(diǎn)。

本發(fā)明實(shí)施例提供的云計(jì)算中安全最近鄰檢索方法具體包括以下步驟:

(1)首先提出了基于voronoi圖的2-d空間劃分方案:

記2-d空間數(shù)據(jù)集s={d1,d2,···,dn},2-d空間為ω;

第一步,根據(jù)已有數(shù)據(jù)集s,構(gòu)建出voronoi圖v,v由n個(gè)不相交的凸多邊形構(gòu)成,記為{p1,p2,···,pn};

第二步,設(shè)待劃分的區(qū)域?yàn)閞,r的初始值為ω,隨機(jī)選取x維或者y維,把r劃分為兩個(gè)矩形r1和r2,保證max(p(r1∩ω),p(r2∩ω))最小,其中p(ri∩ω)表示ω中被ri覆蓋的凸多邊形的個(gè)數(shù)(i=1或i=2);

第三步,遞歸執(zhí)行第二步,對(duì)于每個(gè)矩形r,如果和劃分后的矩形r1,r2滿(mǎn)足以下條件:max(p(r1∩ω),p(r2∩ω))=p(r),則終止劃分,其中p(r)表示ω中被r覆蓋的凸多邊形的個(gè)數(shù)。

(2)其次,提出單窩(single-homing)布魯姆過(guò)濾器和多窩(multi-homingzh)布魯姆過(guò)濾器兩種安全數(shù)據(jù)結(jié)構(gòu)。本發(fā)明用q和d表示兩個(gè)數(shù)組,長(zhǎng)度都為nc,q用來(lái)構(gòu)建single-homing布魯姆過(guò)濾器,d用來(lái)構(gòu)建multi-homing布魯姆過(guò)濾器,sq表示待存入q中的元素集合,sd表示待存入d中的元素集合;本發(fā)明設(shè)置nc≥1.2×|sq|.用h1,h2,···,hm表示m個(gè)hash函數(shù)(m≥2),對(duì)于一個(gè)輸入的元素,每個(gè)hash函數(shù)都輸出[0,nc-1]中的一個(gè)位置id,用h1,h2,···,hk表示另外k個(gè)不同的hash函數(shù),對(duì)于一個(gè)輸入的元素,輸出[0,w-1]中的一個(gè)位置id,其中w表示一個(gè)整數(shù)的位數(shù)。

q的構(gòu)建方法如下:

第一步:把q中的每個(gè)單元qi都初始化為0;

第二步,對(duì)于sq中的每個(gè)元素ei,計(jì)算出h1(ei),h2(ei),···,hm(ei),即ei的m個(gè)可能存儲(chǔ)的位置,其中,0≤i<|sq|;

第三步,建立一個(gè)從sq到q的二部圖bigraph,利用匈牙利算法,為sq中的每一個(gè)元素找到在q中的一個(gè)唯一的位置;

第四步,為了做到不可區(qū)分性,對(duì)于q中的每個(gè)單元qi,如果e,滿(mǎn)足i=bigraph(e),計(jì)算h1(e),h2(e),···,hk(e),把qi中這k位設(shè)為1,其中,0≤i<nc,e為sq中任意元素。

d的構(gòu)建方法如下:

第一步:把d中的每個(gè)單元di都初始化為0;

第二步,對(duì)于sd中的每個(gè)元素ei,計(jì)算出h1(ei),h2(ei),···,hm(ei),其中,0≤i<|sq|;

第三步,對(duì)于d中的每個(gè)單元di,如果e,滿(mǎn)足i=hj(e),計(jì)算h1(e),h2(e),···,hk(e),把di中這k個(gè)位置設(shè)為1,其中,0≤i<nc,1≤j<m,e為sq中任意元素。

(3)再次,提出安全索引構(gòu)建方法,構(gòu)建出一顆索引樹(shù),用來(lái)保證本發(fā)明實(shí)現(xiàn)亞線性級(jí)的查詢(xún)時(shí)間。

第一步,對(duì)于待劃分的區(qū)域r,用前面介紹的2-d空間劃分方法劃分,r被按t維劃分為r1和r2(t為x或者y),r1和r2在t維上的范圍為r1:r2:對(duì)于每一個(gè)范圍r(r1和r2),把r轉(zhuǎn)化為一個(gè)前綴集合s,然后對(duì)于s中的每一個(gè)元素p,都與t的標(biāo)簽連接起來(lái),構(gòu)建一個(gè)multi-homing布魯姆過(guò)濾器。為了做到不可區(qū)分,內(nèi)部節(jié)點(diǎn)中兩個(gè)multi-homing布魯姆過(guò)濾器的左右順序是隨機(jī)排列的,左邊的用表示,右邊的用表示。如果r1和r2不需要繼續(xù)劃分,則分別把r1和r2中所覆蓋的凸多邊形所對(duì)應(yīng)的點(diǎn)用cpa加密算法進(jìn)行加密,構(gòu)建葉子節(jié)點(diǎn),分別指向所表示區(qū)域?qū)?yīng)的加密的葉子節(jié)點(diǎn);如果r1和r2需要繼續(xù)劃分,分別指向所表示區(qū)域,然后執(zhí)行第二步;

第二步,對(duì)r1和r2分別繼續(xù)執(zhí)行第一步。

然后,提出了陷門(mén)生成方法,給定一個(gè)查詢(xún)q={qx,qy},生成對(duì)應(yīng)的陷門(mén)。

第一步,把qx和qy轉(zhuǎn)為為兩個(gè)前綴集合f(qx)和f(qy);

第二步,把f(qx)中的每一個(gè)前綴和x維的標(biāo)簽連接起來(lái),把f(qy)中的每一個(gè)前綴和y維的標(biāo)簽連接起來(lái),然后運(yùn)用前面提出的single-homing布魯姆過(guò)濾器的構(gòu)建方法,創(chuàng)建出一個(gè)single-homing布魯姆過(guò)濾器

(4)最后,提出了安全最近鄰查詢(xún)查詢(xún)算法。給定一個(gè)q,客戶(hù)端利用陷門(mén)生成方法生成對(duì)應(yīng)的陷門(mén)發(fā)送給服務(wù)器,服務(wù)器通過(guò)計(jì)算返回給客戶(hù)端加密的最近鄰點(diǎn),具體算法如下:

輸入:索引樹(shù)i,陷門(mén)

輸出:q的最近鄰;

step1:首先計(jì)算如果執(zhí)行step2,然后計(jì)算如果執(zhí)行step3;

step2:如果i是葉子節(jié)點(diǎn),輸出i.left->data,否則,把i.left作為索引,執(zhí)行step1;

step3:如果i是葉子節(jié)點(diǎn),輸出i.right->data,否則,把i.right作為索引,執(zhí)行step1。

下面結(jié)合具體實(shí)施例對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步的描述。

如圖2所示:

(1)數(shù)據(jù)擁有者將數(shù)據(jù)集按照所提出的安全索引構(gòu)建方案生成加密的索引;

(2)數(shù)據(jù)擁有者將加密的索引發(fā)送給云服務(wù)器,并將秘鑰發(fā)送給授權(quán)用戶(hù);

(3)用戶(hù)利用提出的陷門(mén)生成方法,生成查詢(xún)條件對(duì)應(yīng)的陷門(mén),向云服務(wù)器發(fā)起最近鄰查詢(xún)請(qǐng)求;

(4)云服務(wù)器收到用戶(hù)的請(qǐng)求后,運(yùn)行提出的安全最近鄰查詢(xún)算法,將查詢(xún)后加密的結(jié)果返回給用戶(hù);

(5)用戶(hù)將加密的查詢(xún)結(jié)果解密,得到明文下的結(jié)果。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

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