国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

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



      背景技術(shù):

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

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



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

      針對(duì)現(xiàn)有技術(shù)存在的問題,本發(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)建陷門,從而實(shí)現(xiàn)亞線性級(jí)的查詢時(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滿足以下條件: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,滿足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,滿足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)建出索引樹,具體包括:

      第一步,對(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è)查詢q={qx,qy},生成對(duì)應(yīng)的陷門,具體包括:

      第一步,把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,客戶端利用陷門生成方法生成對(duì)應(yīng)的陷門發(fā)送給服務(wù)器,服務(wù)器通過(guò)計(jì)算返回給客戶端加密的最近鄰點(diǎn),具體算法如下:

      輸入:索引樹i,陷門

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

      s104:采用安全最近鄰查詢算法,客戶端利用陷門生成方法生成對(duì)應(yīng)的陷門,發(fā)送給服務(wù)器,服務(wù)器通過(guò)計(jì)算返回給客戶端加密的最近鄰點(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滿足以下條件: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,滿足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,滿足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)建出一顆索引樹,用來(lái)保證本發(fā)明實(shí)現(xiàn)亞線性級(jí)的查詢時(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í)行第一步。

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

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

      輸入:索引樹i,陷門

      輸出: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)用戶;

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

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

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

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

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